diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/video_out/video_out_vdpau.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c index e80458d19..6472e21da 100644 --- a/src/video_out/video_out_vdpau.c +++ b/src/video_out/video_out_vdpau.c @@ -215,12 +215,12 @@ typedef struct { uint32_t argb_overlay_height; int has_argb_overlay; - VdpVideoSurface soft_surface; + VdpVideoSurface soft_surface; uint32_t soft_surface_width; uint32_t soft_surface_height; int soft_surface_format; - VdpOutputSurface output_surface[2]; + VdpOutputSurface output_surface[2]; uint8_t current_output_surface; uint32_t output_surface_width[2]; uint32_t output_surface_height[2]; @@ -396,6 +396,7 @@ static void vdpau_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, i if ( !changed ) return; + this->has_overlay = this->has_unscaled = 0; this->has_argb_overlay = 0; ++this->ovl_changed; } @@ -433,6 +434,7 @@ static void vdpau_overlay_end (vo_driver_t *this_gen, vo_frame_t *frame) if ( !(this->ovl_changed-1) ) { this->ovl_changed = 0; this->has_overlay = 0; + this->has_unscaled = 0; return; } @@ -1276,6 +1278,7 @@ static vo_driver_t *vdpau_open_plugin (video_driver_class_t *class_gen, const vo this->overlay_unscaled_width = this->overlay_unscaled_height = 0; this->ovl_changed = 0; this->has_overlay = 0; + this->has_unscaled = 0; this->argb_overlay = VDP_INVALID_HANDLE; this->argb_overlay_width = this->argb_overlay_height = 0; @@ -1469,7 +1472,7 @@ static vo_driver_t *vdpau_open_plugin (video_driver_class_t *class_gen, const vo return NULL; } - this->capabilities = VO_CAP_YV12 | VO_CAP_YUY2 | VO_CAP_CROP; + this->capabilities = VO_CAP_YV12 | VO_CAP_YUY2 | VO_CAP_CROP | VO_CAP_UNSCALED_OVERLAY; ok = 0; uint32_t mw, mh, ml, mr; st = vdp_decoder_query_capabilities( vdp_device, VDP_DECODER_PROFILE_H264_MAIN, &ok, &ml, &mr, &mw, &mh ); @@ -1488,8 +1491,6 @@ static vo_driver_t *vdpau_open_plugin (video_driver_class_t *class_gen, const vo else this->capabilities |= VO_CAP_VDPAU_MPEG12; - this->capabilities |= VO_CAP_UNSCALED_OVERLAY; - for ( i=0; i<NUM_FRAMES_BACK; i++) this->back_frame[i] = NULL; |