videomixer: fix double unlock in segment seek segment code path

We only want to unlock if we push an event downstream and
jump to done_unlock label afterwards. We would also unlock
in case of a segment seek and then unlock again later, and
nothing good can come of that.

(This code looks a bit dodgy anyway though, shouldn't it
also bail out with FLOW_EOS here in case of a segment seek
scenario, just without the event?)
This commit is contained in:
Tim-Philipp Müller 2014-07-04 20:22:10 +01:00
parent 46f6687bf6
commit deeef84d2c

View file

@ -1246,8 +1246,8 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix)
if (output_end_time >= mix->segment.stop) { if (output_end_time >= mix->segment.stop) {
GST_DEBUG_OBJECT (mix, "Segment done"); GST_DEBUG_OBJECT (mix, "Segment done");
GST_VIDEO_MIXER2_UNLOCK (mix);
if (!(mix->segment.flags & GST_SEGMENT_FLAG_SEGMENT)) { if (!(mix->segment.flags & GST_SEGMENT_FLAG_SEGMENT)) {
GST_VIDEO_MIXER2_UNLOCK (mix);
gst_pad_push_event (mix->srcpad, gst_event_new_eos ()); gst_pad_push_event (mix->srcpad, gst_event_new_eos ());
ret = GST_FLOW_EOS; ret = GST_FLOW_EOS;