Hello,
I am trying to have this pipeline end correctly, recorded files being corrupted (invalid duration):
appsrc format=time is-live=true do-timestamp=true name=src ! application/x-rtp,encoding-name=H264 ! tee name=teein ! queue max-size-buffers=0 max-size-bytes=0 max-size-time=5000000000 ! rtpjitterbuffer latency=100 ! rtph264depay ! h264parse ! matroskamux ! filesink location=logs/raw.mkv teein. ! queue max-size-buffers=0 max-size-bytes=0 ! appsink name=sink qos=true
At some point the pipeline is stopped by a:
gst_element_send_event(pipeline, gst_event_new_eos());
Then a bus watch callback stops the pipeline: gst_element_set_state(pipeline, GST_STATE_NULL); on GST_MESSAGE_EOS
(I thought that when a bus watch callback receives a GST_MESSAGE_EOS it meant EOS has been propagated to all sinks)
I am wondering if this may be due to tee and queue in the pipeline.
I could also catch EOS(s) on every appsink and filesink before ending the pipeline but that seems weird.
Two additional observations:
- on rare occasions, the recorded file does have a duration
- I've tried waiting (g_usleep) between receiving GST_MESSAGE_EOS and setting pipeline state to GST_STATE_NULL with no effect
Would you have any suggestions?
Thanks,
Guillaume
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel