From 648fd334da992d3d21a7cb13afa0e6c8e2152c7c Mon Sep 17 00:00:00 2001 From: Yuqing Zhu Date: Mon, 4 Jul 2016 13:46:33 +0800 Subject: gstreamer1.0-plugins-bad: Fix little rectangel appears at the center when use squeeze and tunnel effects (From OE-Core rev: 061990f9aa97f2dac88e473b9852aed6f3f00f32) Signed-off-by: Yuqing Zhu Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- ...effects-fix-little-rectangel-appears-at-t.patch | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0007-glplugin-gleffects-fix-little-rectangel-appears-at-t.patch (limited to 'meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad') diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0007-glplugin-gleffects-fix-little-rectangel-appears-at-t.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0007-glplugin-gleffects-fix-little-rectangel-appears-at-t.patch new file mode 100755 index 0000000000..90bfba990c --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0007-glplugin-gleffects-fix-little-rectangel-appears-at-t.patch @@ -0,0 +1,46 @@ +From 43549773608b4f58dc664b7115a1ef0dcb32f251 Mon Sep 17 00:00:00 2001 +From: Haihua Hu +Date: Tue, 14 Jun 2016 13:48:09 +0800 +Subject: [PATCH 1/2] [glplugin]gleffects: fix little rectangel appears at the + center when use squeeze and tunnel effects + +These two shader will calculate the verctor length and use it as denominator. +But length could be zero which will cause undefine behaviour. Add protection for +this condition + +Upstream-Status: Backport [1.8.3] + +https://bugzilla.gnome.org/show_bug.cgi?id=767635 + +Signed-off-by: Haihua Hu +--- + ext/gl/effects/gstgleffectssources.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/ext/gl/effects/gstgleffectssources.c b/ext/gl/effects/gstgleffectssources.c +index 6bdc155..3e87b8b 100644 +--- a/ext/gl/effects/gstgleffectssources.c ++++ b/ext/gl/effects/gstgleffectssources.c +@@ -100,7 +100,8 @@ const gchar *squeeze_fragment_source_gles2 = + "void main () {" + " vec2 texturecoord = v_texcoord.xy;" + " vec2 normcoord = texturecoord - 0.5;" +- " float r = length (normcoord);" ++ /* Add a very small value to length otherwise it could be 0 */ ++ " float r = length (normcoord)+0.01;" + " r = pow(r, 0.40)*1.3;" + " normcoord = normcoord / r;" + " texturecoord = (normcoord + 0.5);" +@@ -136,7 +137,8 @@ const gchar *tunnel_fragment_source_gles2 = + * rect textures */ + " normcoord = (texturecoord - 0.5);" + " float r = length(normcoord);" +- " normcoord *= clamp (r, 0.0, 0.275) / r;" ++ " if (r > 0.0)" ++ " normcoord *= clamp (r, 0.0, 0.275) / r;" + " texturecoord = normcoord + 0.5;" + " gl_FragColor = texture2D (tex, texturecoord);" + "}"; +-- +1.9.1 + -- cgit v1.2.3-54-g00ecf