diff --git a/packages/mediacenter/xbmc/patches/xbmc-999.80.009-PR4518.patch b/packages/mediacenter/xbmc/patches/xbmc-999.80.009-PR4518.patch new file mode 100644 index 0000000000..98de79e639 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-999.80.009-PR4518.patch @@ -0,0 +1,59 @@ +From f3070359e2114b14b3d7097d2fe35ca1e788bc02 Mon Sep 17 00:00:00 2001 +From: Oleg Oshmyan +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 +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 +