[Bug 763711] splitmuxsink: deadlock when one streams doesn't have regular buffers
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Mon Mar 21 07:15:17 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=763711
--- Comment #11 from Jan Schmidt <thaytan at noraisin.net> ---
(In reply to Xavier Claessens from comment #10)
> (In reply to Jan Schmidt from comment #8)
> > Review of attachment 324300 [details] [review] [review]:
> >
> > Please put some explanation in the commit message. It's always easier to
> > find things in the commit history with better commit messages.
>
> Right, done.
>
> > ::: gst/multifile/gstsplitmuxsink.c
> > @@ +1141,3 @@
> > + splitmux->max_in_running_time);
> > + event = gst_event_new_gap (pos, GST_CLOCK_TIME_NONE);
> > + gst_pad_send_event (ctx->sinkpad, event);
> >
> > How well did you test this, and with which mux formats? I'm not entirely
> > sure it won't introduce actual gaps in the playback of the resulting pieces
> > with at least some formats
>
> I tested with the command from comment #5. It reliably deadlock without the
> patch, and works fine with it. I didn't notice problems with GAPs recorded,
> but you're right that we should drop those dummy events. Updated the patch
> doing that.
>
> > @@ +1273,2 @@
> > (GstPadProbeCallback) handle_mq_input, ctx, (GDestroyNotify)
> > _pad_block_destroy_sink_notify);
> >
> > Why did you move the pad probe from the multiqueue sink pad to the ghostpad?
>
> Added a comment explaining why. I have to send an event into the mq without
> triggering handle_mq_input().
I don't think that's needed - handle_mq_input() will just pass the custom event
anyway (and works here if I just revert those 2 lines). Moving the probe to the
externally visible pad can cause problems if the app or other plugins install
their own probes and interfere with the internal one.
There's a different stall I found which we should also address if pads don't
all EOS in the same fragment - if pads are already EOS when the new fragment
starts, the EOS isn't repeated into the muxer things never finish up.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list