From 35765bec0eec4d6f2d59092dbe13b34d0ead2694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wang=20Xin-yu=20=28=E7=8E=8B=E6=98=95=E5=AE=87=29?= Date: Wed, 24 Feb 2016 10:45:17 +0800 Subject: [PATCH] glmixer: iterator didn't advance in continue statement Leading to a deadlock. https://bugzilla.gnome.org/show_bug.cgi?id=760873 --- ext/gl/gstglmosaic.c | 1 + ext/gl/gstglstereomix.c | 1 + ext/gl/gstglvideomixer.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/ext/gl/gstglmosaic.c b/ext/gl/gstglmosaic.c index 83ac79810e..377f71869f 100644 --- a/ext/gl/gstglmosaic.c +++ b/ext/gl/gstglmosaic.c @@ -299,6 +299,7 @@ gst_gl_mosaic_callback (gpointer stuff) GST_DEBUG ("skipping texture:%u pad:%p width:%u height %u", in_tex, pad, width, height); count++; + walk = g_list_next (walk); continue; } diff --git a/ext/gl/gstglstereomix.c b/ext/gl/gstglstereomix.c index fee1080c26..ed604b2c81 100644 --- a/ext/gl/gstglstereomix.c +++ b/ext/gl/gstglstereomix.c @@ -505,6 +505,7 @@ gst_gl_stereo_mix_process_frames (GstGLStereoMix * mixer) if (!pad || !pad->current_buffer) { GST_DEBUG ("skipping texture, null frame"); + walk = g_list_next (walk); continue; } diff --git a/ext/gl/gstglvideomixer.c b/ext/gl/gstglvideomixer.c index e48151bd04..72ad8c232d 100644 --- a/ext/gl/gstglvideomixer.c +++ b/ext/gl/gstglvideomixer.c @@ -1437,11 +1437,13 @@ gst_gl_video_mixer_callback (gpointer stuff) || pad->alpha == 0.0f) { GST_DEBUG ("skipping texture:%u pad:%p width:%u height:%u alpha:%f", mix_pad->current_texture, pad, in_width, in_height, pad->alpha); + walk = g_list_next (walk); continue; } if (!_set_blend_state (video_mixer, pad)) { GST_FIXME_OBJECT (pad, "skipping due to incorrect blend parameters"); + walk = g_list_next (walk); continue; }