From 0f269c5e7b593eb29d5c1058dcd53fc6476871a9 Mon Sep 17 00:00:00 2001 From: Christian König Date: Thu, 14 Jun 2012 17:52:20 +0200 Subject: st/vdpau: use template size as default for source_rect. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes alignment problems with flash player. Signed-off-by: Christian König --- src/gallium/state_trackers/vdpau/mixer.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/gallium/state_trackers/vdpau/mixer.c') diff --git a/src/gallium/state_trackers/vdpau/mixer.c b/src/gallium/state_trackers/vdpau/mixer.c index e3c9349bfc4..81a5c293685 100644 --- a/src/gallium/state_trackers/vdpau/mixer.c +++ b/src/gallium/state_trackers/vdpau/mixer.c @@ -216,7 +216,7 @@ VdpStatus vlVdpVideoMixerRender(VdpVideoMixer mixer, VdpLayer const *layers) { enum vl_compositor_deinterlace deinterlace; - struct u_rect rect, clip; + struct u_rect rect, clip, *prect; unsigned i, layer = 0; vlVdpVideoMixer *vmixer; @@ -281,8 +281,15 @@ VdpStatus vlVdpVideoMixerRender(VdpVideoMixer mixer, pipe_mutex_unlock(vmixer->device->mutex); return VDP_STATUS_INVALID_VIDEO_MIXER_PICTURE_STRUCTURE; }; - vl_compositor_set_buffer_layer(&vmixer->cstate, compositor, layer, surf->video_buffer, - RectToPipe(video_source_rect, &rect), NULL, deinterlace); + prect = RectToPipe(video_source_rect, &rect); + if (!prect) { + rect.x0 = 0; + rect.y0 = 0; + rect.x1 = surf->templat.width; + rect.y1 = surf->templat.height; + prect = ▭ + } + vl_compositor_set_buffer_layer(&vmixer->cstate, compositor, layer, surf->video_buffer, prect, NULL, deinterlace); vl_compositor_set_layer_dst_area(&vmixer->cstate, layer++, RectToPipe(destination_video_rect, &rect)); for (i = 0; i < layer_count; ++i) { -- cgit v1.2.3