summaryrefslogtreecommitdiff
path: root/src/xine-engine/video_out.c
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-01-10 19:15:16 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2003-01-10 19:15:16 +0000
commit84016d72f4b91bae918551bd5501123088e826f5 (patch)
treeeeffcfbad60306d9c891fb3c52969caad11bf5fb /src/xine-engine/video_out.c
parent519cd1f3de64e2992d3d7c2509f6c6e6ba575849 (diff)
downloadxine-lib-84016d72f4b91bae918551bd5501123088e826f5.tar.gz
xine-lib-84016d72f4b91bae918551bd5501123088e826f5.tar.bz2
protect update of current_extra_info
CVS patchset: 3854 CVS date: 2003/01/10 19:15:16
Diffstat (limited to 'src/xine-engine/video_out.c')
-rw-r--r--src/xine-engine/video_out.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c
index 1336a6315..7610a5a07 100644
--- a/src/xine-engine/video_out.c
+++ b/src/xine-engine/video_out.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: video_out.c,v 1.131 2003/01/10 13:12:20 miguelfreitas Exp $
+ * $Id: video_out.c,v 1.132 2003/01/10 19:15:16 miguelfreitas Exp $
*
* frame allocation / queuing / scheduling / output functions
*/
@@ -357,7 +357,9 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
#ifdef LOG
printf ("video_out: bad_frame\n");
#endif
+ pthread_mutex_lock( &stream->current_extra_info_lock );
extra_info_merge( stream->current_extra_info, img->extra_info );
+ pthread_mutex_unlock( &stream->current_extra_info_lock );
this->num_frames_skipped++;
}
@@ -491,7 +493,9 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) {
img = vo_remove_from_img_buf_queue_int (this->display_img_buf_queue);
+ pthread_mutex_lock( &img->stream->current_extra_info_lock );
extra_info_merge( img->stream->current_extra_info, img->extra_info );
+ pthread_mutex_unlock( &img->stream->current_extra_info_lock );
/* when flushing frames, keep the first one as backup */
if( this->flush_frames ) {
@@ -656,7 +660,9 @@ static void overlay_and_display_frame (vos_t *this,
if( img->copy && !img->copy_called )
vo_frame_driver_copy(img);
+ pthread_mutex_lock( &img->stream->current_extra_info_lock );
extra_info_merge( img->stream->current_extra_info, img->extra_info );
+ pthread_mutex_unlock( &img->stream->current_extra_info_lock );
if (this->overlay_source) {
this->overlay_source->multiple_overlay_blend (this->overlay_source,