splitmuxsink in a dynamic pipeline deadlocks
Jesper Larsen
knorr.jesper at gmail.com
Mon Sep 21 03:43:16 PDT 2015
Hello All,
I was wondering if anybody has had any success using splitmuxsink in a
dynamic pipeline?
When I insert a splitmuxsink into a running pipeline I seem to be getting a
deadlock. This is with version 1.5.91.
The pipeline starts in this configuration
videotestsrc ! x264enc ! h264parse !
video/x-h264,alignment=au,stream-format=avc ! queue ! fakesink
audiotestsrc ! faac ! aacparse ! audio/mpeg,stream-format=raw ! queue !
fakesink
After ~10s I change the fakesinks to splitmuxsink doing:
1. Blocking both queue src pads
2. Remove fakesinks, and set their state to NULL
3. Create a new splitmuxsink, add it and link the queues to the `video` and
`audio_0` pads on the mux
4. Set the splitmuxsink state to PLAYING
5. Unblock the queue src pads
The source can be seen here http://pastebin.com/3KJdYvkT
The video pad will accept some amount of data, until it receives an
allocation query which blocks. For testing, I tried discarding queries
going into the muxsink, and that causes the video queue to keep getting
data.
The audio pad is stuck waiting for a GOP completion, eventhough multiple
GOPs are queued in the muxsink.
If I start the pipeline with the splitmuxsink instead of the fakesinks, the
pipeline runs just fine.
Should I be able to insert the splitmuxsink element in a running pipeline
like this? Does it sound like a bug in the element?
If it does sound like a bug, I'll create a bug report with some more
details.
Best Regards
Jesper Larsen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150921/5bcf2342/attachment-0001.html>
More information about the gstreamer-devel
mailing list