summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristophe Thommeret <hftom@free.fr>2008-12-30 10:33:15 +0000
committerChristophe Thommeret <hftom@free.fr>2008-12-30 10:33:15 +0000
commitb891020134094b26d2e4ad797ecfac87be593847 (patch)
tree2dca9f6736cb801e4dd7ef000cd77ab1f03c41bc /src
parent36d8e9fb947602066b0b5853d84e97344e7b359d (diff)
downloadxine-lib-b891020134094b26d2e4ad797ecfac87be593847.tar.gz
xine-lib-b891020134094b26d2e4ad797ecfac87be593847.tar.bz2
Unscaled overlay.
Diffstat (limited to 'src')
-rw-r--r--src/video_out/video_out_vdpau.c11
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;