How to detect when all packets in pipeline are fully processed

bojan74 bojan.flander at gmail.com
Fri Sep 4 08:41:02 UTC 2020


In a bit simplified version I have pipeline like this:
appsrc->rtpvp8depay->webmmux->filesink

I have already stored files with RTP packets.
With this pipeline I like to process those RTP packets and create webm file.

Before I have in the pipeline also rtpjitterbuffer. In that case I simulate
delays as in real time RTP packet sending. Since I simulate real timings I
know that after last RTP packet I can send EOS with a bit delay and it was
working ok. I got webm file as I wanted.

But now I want to speed this processing, so I remove jitterbuffer and now I
am pushing RTP buffers in for loop without delays.

My current problem is how do I know when all packets are processed because
this for loop sends packets very fast but it takes quite a bit time when all
are processed.
I am asking this because I saw that if I send to pipeline event EOS too soon
then I got only a part of video file because EOS come too soon when packets
are still processing.

So my question is how to know when all packets come to destination
(filesink) so I will send EOS at that moment and not before?

Thanks





--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list