summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWang Xin-yu (王昕宇) <comicfans44@gmail.com>2016-02-24 10:45:17 +0800
committerMatthew Waters <matthew@centricular.com>2016-02-24 18:27:44 +1100
commit96ac4af7bfda488a44eb2fe99c48091361e5918f (patch)
tree2575ce77fee72487cb78200177e085c1744bd8b0
parentfd42320ec18a82e9c578c9639a4cefb6f02d786e (diff)
glmixer: iterator didn't advance in continue statement
Leading to a deadlock. https://bugzilla.gnome.org/show_bug.cgi?id=760873
-rw-r--r--ext/gl/gstglmosaic.c1
-rw-r--r--ext/gl/gstglstereomix.c1
-rw-r--r--ext/gl/gstglvideomixer.c2
3 files changed, 4 insertions, 0 deletions
diff --git a/ext/gl/gstglmosaic.c b/ext/gl/gstglmosaic.c
index 83ac79810..377f71869 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 fee1080c2..ed604b2c8 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 e48151bd0..72ad8c232 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;
}