From 061990f9aa97f2dac88e473b9852aed6f3f00f32 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 Signed-off-by: Yuqing Zhu Signed-off-by: Ross Burton --- ...effects-fix-little-rectangel-appears-at-t.patch | 46 ++++++++++++++++++++++ .../gstreamer/gstreamer1.0-plugins-bad_1.8.2.bb | 1 + 2 files changed, 47 insertions(+) create mode 100755 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0007-glplugin-gleffects-fix-little-rectangel-appears-at-t.patch 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 + diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.2.bb index 49b3677ddf..d0912b2a8c 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.2.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.2.bb @@ -17,6 +17,7 @@ SRC_URI = " \ file://0004-glcolorconvert-don-t-use-the-predefined-variable-nam.patch \ file://0005-glshader-add-glBindFragDataLocation.patch \ file://0006-glcolorconvert-GLES3-deprecates-texture2D-and-it-doe.patch \ + file://0007-glplugin-gleffects-fix-little-rectangel-appears-at-t.patch \ " SRC_URI[md5sum] = "83abc2e70684e7b195f18ca2992ef6e8" SRC_URI[sha256sum] = "d7995317530c8773ec088f94d9320909d41da61996b801ebacce9a56af493f97" -- cgit 1.2.3-korg