From cb91c779d3d11d91044714ef97545bbf3cffded6 Mon Sep 17 00:00:00 2001 From: Johns Date: Mon, 5 Nov 2012 12:03:50 +0100 Subject: [PATCH] Correct offsets for 3D OSD. Allow 1920x1200 OSD. --- video.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/video.c b/video.c index 3bbdeb5..c54ea01 100644 --- a/video.c +++ b/video.c @@ -7493,11 +7493,13 @@ static void VdpauMixOsd(void) switch (Osd3DMode) { case 1: output_rect.x1 = output_rect.x1 / 2; - output_double_rect.x0 = output_rect.x1; + output_double_rect.x0 = output_rect.x0 + (VideoWindowWidth / 2); + output_double_rect.x1 = output_rect.x1 + (VideoWindowWidth / 2); break; case 2: output_rect.y1 = output_rect.y1 / 2; - output_double_rect.y0 = output_rect.y1; + output_double_rect.y0 = output_rect.y0 + (VideoWindowHeight / 2); + output_double_rect.y1 = output_rect.y1 + (VideoWindowHeight / 2); break; default: break; @@ -8339,7 +8341,7 @@ static void VdpauSetOutputPosition(VdpauDecoder * decoder, int x, int y, // VDPAU OSD //---------------------------------------------------------------------------- -static const uint8_t OsdZeros[1920 * 1080 * 4]; ///< 0 for clear osd +static const uint8_t OsdZeros[1920 * 1200 * 4]; ///< 0 for clear osd /// /// Clear subpicture image. @@ -8367,7 +8369,7 @@ static void VdpauOsdClear(void) } #endif - if (OsdWidth * OsdHeight > 1920 * 1080) { + if (OsdWidth * OsdHeight > 1920 * 1200) { Error(_("video/vdpau: osd too big: unsupported\n")); return; }