xbmc: add PR4518

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2014-04-05 03:36:50 +02:00
parent 4e0cdaf226
commit 24bbd00a25

View File

@ -0,0 +1,59 @@
From f3070359e2114b14b3d7097d2fe35ca1e788bc02 Mon Sep 17 00:00:00 2001
From: Oleg Oshmyan <chortos@inbox.lv>
Date: Fri, 4 Apr 2014 22:05:00 +0300
Subject: [PATCH 1/2] overlays: don't reduce ASS texture width unnecessarily
Fixes OpenELEC/OpenELEC.tv#3059 on GitHub, where an ASS subtitle
texture could become too narrow to fit subtitle bitmaps in full,
causing them to be inappropriately clipped. This issue has become
obvious lately due to changes in libass that make it output wider
(but fewer) images than it used to.
---
xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp b/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp
index 72478ab..45861b8 100644
--- a/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp
+++ b/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp
@@ -205,8 +205,8 @@ bool convert_quad(ASS_Image* images, SQuads& quads)
if (quads.count == 0)
return false;
- while(quads.size_x > (int)g_Windowing.GetMaxTextureSize())
- quads.size_x /= 2;
+ if (quads.size_x > (int)g_Windowing.GetMaxTextureSize())
+ quads.size_x = g_Windowing.GetMaxTextureSize();
int curr_x = 0;
int curr_y = 0;
--
1.9.1
From 87e0250eaa5103f39054d678920dc42a7b7979c3 Mon Sep 17 00:00:00 2001
From: Oleg Oshmyan <chortos@inbox.lv>
Date: Fri, 4 Apr 2014 22:39:18 +0300
Subject: [PATCH 2/2] overlays: include padding in initial ASS texture width
computation
---
xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp b/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp
index 45861b8..ef473e4 100644
--- a/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp
+++ b/xbmc/cores/VideoRenderers/OverlayRendererUtil.cpp
@@ -198,7 +198,7 @@ bool convert_quad(ASS_Image* images, SQuads& quads)
if((img->color & 0xff) == 0xff || img->w == 0 || img->h == 0)
continue;
- quads.size_x += img->w;
+ quads.size_x += img->w + 1;
quads.count++;
}
--
1.9.1