Restarting GstSplitMuxSink
Presseau, Michael
mpresseau at rheinmetall.ca
Fri Jun 4 02:00:15 UTC 2021
Hi,
We want to record a stream that can be interrupted. So we want to end the file at that time and create a new file only when it will be requested. The "split-now" command is not working well since I want to stop and create my next file later. I try by changing the state of the pipeling but I am having hard time trying to "reset" a GstSplitMuxSink. This is my pipeline: GstAppSrc --> GstVideoConvert --> GstVp8Enc --> GstSplitMuxSink( queue --> GstMatroskaMux --> GstFileSink).
When I send a EOS in pipeline, I am unable to start it again. Here my sequence:
gst_element_send_event(m_pGstPipeline, gst_event_new_eos());
// Waiting callback
cb_busWatch() { if (GST_MESSAGE_TYPE (p_pMsg) == GST_MESSAGE_EOS) { gst_element_set_state (pData->m_pGstPipeline, GST_STATE_NULL); } }
// later
gst_element_set_state (m_pGstPipeline, GST_STATE_PLAYING);
Result: new file is created but previous file is "cleared" to 0K. The previous file was valid before "gst_element_set_state (m_pGstPipeline, GST_STATE_PLAYING);"
Tested using: GStreamer 1.18.4
Best regards
More information about the gstreamer-devel
mailing list