summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Thommeret <hftom@free.fr>2008-12-19 14:05:04 +0000
committerChristophe Thommeret <hftom@free.fr>2008-12-19 14:05:04 +0000
commit2f42a48d16e7003c778938b3a72842e785f0cd80 (patch)
tree6311a393ef6b342b026e8ab6364334f2598e3049
parent0d8107bfcdb50dbc0f389f4646d6e026133b03b2 (diff)
downloadxine-lib-2f42a48d16e7003c778938b3a72842e785f0cd80.tar.gz
xine-lib-2f42a48d16e7003c778938b3a72842e785f0cd80.tar.bz2
Fix mixer size.
-rw-r--r--src/video_out/video_out_vdpau.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c
index b58438169..4b163ed74 100644
--- a/src/video_out/video_out_vdpau.c
+++ b/src/video_out/video_out_vdpau.c
@@ -605,13 +605,12 @@ static void vdpau_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
if ( (frame->format == XINE_IMGFMT_YV12) || (frame->format == XINE_IMGFMT_YUY2) ) {
//printf( "vo_vdpau: got a yuv image -------------\n" );
- surface = this->soft_surface;
chroma = ( frame->format==XINE_IMGFMT_YV12 )? VDP_CHROMA_TYPE_420 : VDP_CHROMA_TYPE_422;
if ( (frame->width > this->soft_surface_width) || (frame->height > this->soft_surface_height) || (frame->format != this->soft_surface_format) ) {
printf( "vo_vdpau: soft_surface size update\n" );
/* recreate surface and mixer to match frame changes */
- mix_w = this->soft_surface_width = frame->width;
- mix_h = this->soft_surface_height = frame->height;
+ this->soft_surface_width = frame->width;
+ this->soft_surface_height = frame->height;
this->soft_surface_format = frame->format;
vdp_video_surface_destroy( this->soft_surface );
vdp_video_surface_create( vdp_device, chroma, this->soft_surface_width, this->soft_surface_height, &this->soft_surface );
@@ -629,6 +628,9 @@ static void vdpau_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
if ( st != VDP_STATUS_OK )
printf( "vo_vdpau: vdp_video_surface_putbits_ycbcr YUY2 error : %s\n", vdp_get_error_string( st ) );
}
+ surface = this->soft_surface;
+ mix_w = this->soft_surface_width;
+ mix_h = this->soft_surface_height;
}
else if (frame->format == XINE_IMGFMT_VDPAU) {
//printf( "vo_vdpau: got a vdpau image -------------\n" );