What am I doing to cause appsrc to hang my pipeline?

Ben Rush ben at ben-rush.net
Fri Aug 30 19:48:33 UTC 2019


I have made a self-contained example here:
https://github.com/kwende/GStreamerExamples/blob/master/Examples/RunInALoop/RunInALoop.cpp.
The same repo includes a VS2019 solution/project to build it. I hope this
helps someone understand my question better.

Here is my problem: I think am I doing something wrong in how I'm tearing
down the pipeline when using appsrc. If USEAPPSRC is defined in my code,
what eventually happens is the code hangs on line 147 (after several
iterations):

gst_element_send_event(state.pipeline, gst_event_new_eos());

In addition, I will sporadically get zero-length MP4 files before the hang
eventually happens.

On the other hand, if USEAPPSRC isn't defined, and I use videotestsrc, then
everything works as planned: no zero-length files and no hangs ever occur:
the loop continues and I keep generating files ad nauseam. I've seen a
number of discussions about flushing the pipeline, but I'm unsure how this
works exactly in the scenario I've got going on with this code. I feel like
something isn't getting the EOS signal properly, but how or why, I can't
shake out. The heart of the issue is that I'm trying to tear down and
rebuild my pipeline in an infinite loop, I've never witnessed this issue
unless I'm in a loop like that.

It's worth noting that I'm using the Intel Media SDK h264 plugin, and so
that might be a variable, but everything certainly works fine when using
videotestsrc, so I feel like it's got to be something I'm doing in my code.

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190830/e0d51421/attachment.html>


More information about the gstreamer-devel mailing list