summaryrefslogtreecommitdiff
path: root/src/video_out
diff options
context:
space:
mode:
authorChristophe Thommeret <hftom@free.fr>2008-12-12 06:49:08 +0000
committerChristophe Thommeret <hftom@free.fr>2008-12-12 06:49:08 +0000
commit65ae9896ac134cad57835d5dcf8ec5594efe7d2c (patch)
treec398c3eb035c894c0e65263013797b485897cd9e /src/video_out
parent4890018b8474b2a6c746e9de66da585c6ed016e6 (diff)
downloadxine-lib-65ae9896ac134cad57835d5dcf8ec5594efe7d2c.tar.gz
xine-lib-65ae9896ac134cad57835d5dcf8ec5594efe7d2c.tar.bz2
Locking fixes.
Diffstat (limited to 'src/video_out')
-rw-r--r--src/video_out/video_out_vdpau.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c
index 7e7026080..4f5b7d73e 100644
--- a/src/video_out/video_out_vdpau.c
+++ b/src/video_out/video_out_vdpau.c
@@ -412,7 +412,6 @@ static vo_frame_t *vdpau_alloc_frame (vo_driver_t *this_gen)
frame->vdpau_accel_data.vdp_device = vdp_device;
frame->vdpau_accel_data.surface = VDP_INVALID_HANDLE;
frame->vdpau_accel_data.vdp_video_surface_create = vdp_video_surface_create;
- frame->vdpau_accel_data.vdp_video_surface_destroy = vdp_video_surface_destroy;
frame->vdpau_accel_data.vdp_decoder_create = vdp_decoder_create;
frame->vdpau_accel_data.vdp_decoder_destroy = vdp_decoder_destroy;
frame->vdpau_accel_data.vdp_decoder_render = vdp_decoder_render;
@@ -722,8 +721,8 @@ static int vdpau_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *
case XINE_GUI_SEND_EXPOSE_EVENT: {
if ( this->init_queue ) {
- int previous = this->current_output_surface ^ 1;
XLockDisplay( this->display );
+ int previous = this->current_output_surface ^ 1;
vdp_queue_display( vdp_queue, this->output_surface[previous], 0, 0, 0 );
XUnlockDisplay( this->display );
}
@@ -739,11 +738,13 @@ static int vdpau_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *
st = vdp_queue_target_create_x11( vdp_device, this->drawable, &vdp_queue_target );
if ( st != VDP_STATUS_OK ) {
printf( "vo_vdpau: FATAL !! Can't recreate presentation queue target after drawable change !!\n" );
+ XUnlockDisplay( this->display );
break;
}
st = vdp_queue_create( vdp_device, vdp_queue_target, &vdp_queue );
if ( st != VDP_STATUS_OK ) {
printf( "vo_vdpau: FATAL !! Can't recreate presentation queue after drawable change !!\n" );
+ XUnlockDisplay( this->display );
break;
}
VdpColor backColor;