How to send EOS to close the record pipeline

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

How to send EOS to close the record pipeline

Michelle Guo
Hi everyone:
I create a pipeline to play and record the h264 stream come from rtp/udp, I
use the following pipeline in C program:

udpsrc -> rtpbin -> rtph264depay -> tee -> queue -> … ->ximagesink
                                                             -> queue ->
splitmuxsink

The play branch and the record branch can work both well, and I save the
stream as several mp4 files. The problem is that the last mp4 file is
unplayable. I know this is because I need to send EOS down the pipeline.
When I close this software, I use
                 gst_element_send_event (m_pipeline, gst_event_new_eos());

however, the bus_call() can not receive EOS message, can anybody give me
some idea to send EOS event and close the pipeline in the valid way and make
the last mp4 file in the playable state ?




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to send EOS to close the record pipeline

Gst-Geek
Generally EOS takes some time to propagate from source to sink. It may take
long if there are buffering elements. If no then you have to trace which
element is holding the EOS.

Also you can use use-robust-muxing property of splitmuxsink and respective
muxer configuration. In that case only few seconds of last fragment data is
lost.





--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel