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?)
if (output_end_time >= mix->segment.stop) {
GST_DEBUG_OBJECT (mix, "Segment done");
- GST_VIDEO_MIXER2_UNLOCK (mix);
if (!(mix->segment.flags & GST_SEGMENT_FLAG_SEGMENT)) {
+ GST_VIDEO_MIXER2_UNLOCK (mix);
gst_pad_push_event (mix->srcpad, gst_event_new_eos ());
ret = GST_FLOW_EOS;