<div dir="ltr">I'm currently using a timer to wait for a second instead of capturing the EOS. Any idea what could be missing? Thanks,<div>-David</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 26, 2015 at 10:25 AM, David Cottrell <span dir="ltr"><<a href="/user/SendEmail.jtp?type=node&node=4672957&i=0" target="_top" rel="nofollow" link="external">[hidden email]</a>></span> wrote:<br><blockquote style='border-left:2px solid #CCCCCC;padding:0 1em' class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The sending of the EOS closes out the file if I just sent it by itself without the block (Half way there!). But I can't get the sink in order to place the probe and capture the callback. How do you obtain the sink pad on the splitmuxsink? I get null back from gst_element_get_static_pad in the code below. <span class=""><div><br></div><div>>> <span style="font-size:12.8000001907349px">What I would do is to place a probe on the splitmuxsink sink pad, with the flag GST_PAD_PROBE_TYPE_EVENT_</span><span style="font-size:12.8000001907349px">DOWNSTREAM and then verify the EOS in the callback with </span></div><div><br></div></span><div>(Note, I also tried to obtain the actual sink in hopes of getting the pad off that, but the sink property is only the provided sink. )<div><br></div><div><div><br></div><div><div><b>void PipelineManager::stopPipeline_writerImpl()</b></div><div>{</div><div> g_print("stopPipeline_writerImpl, stopping\n");</div><div><br></div><div> if (!gPipelineMgr->m_writeSink) {</div><div> g_critical("stopPipeline_writerImpl: m_writeSink is NULL!!\n");</div><div> exit(-1);</div><div> }</div><div><br></div><div> // Block all transmissions past m_queueWriterTee</div><div> GstPad* writerSinkPad = gst_element_get_static_pad(gPipelineMgr->m_writeSink, "sink");</div><div> if (!writerSinkPad) {</div><div> g_critical("stopPipeline_writerImpl: Could not obtain the writer sinkpad!!\n"); // <---- fails here!</div><div> exit(-1);</div><div> }</div><div><br></div><div> gst_pad_add_probe(writerSinkPad,</div><div> (GstPadProbeType)(GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM),</div><div> writer_eos_cb,</div><div> m_loop,</div><div> NULL);</div><div> gst_object_unref(writerSinkPad);</div><div><br></div><div> // Send an EOS on the queue</div><div> GstPad* queueSinkPad = gst_element_get_static_pad (gPipelineMgr->m_queueWriterTee, "sink");</div><div> gst_pad_send_event(queueSinkPad, gst_event_new_eos ());</div><div> gst_object_unref(queueSinkPad);</div><div><br></div><div> g_print("stopPipeline_writerImpl, done...\n");</div><div>}</div></div></div></div><div><br></div><div><br></div><div>Thanks again for your help!</div><span class="HOEnZb"><font color="#888888"><div>-David</div><div><br></div></font></span></div>
</blockquote></div><br></div>
<br/><hr align="left" width="300" />
View this message in context: <a href="http://gstreamer-devel.966125.n4.nabble.com/splitmuxsink-arbitrary-close-tp4672799p4672957.html">Re: splitmuxsink arbitrary close</a><br/>
Sent from the <a href="http://gstreamer-devel.966125.n4.nabble.com/">GStreamer-devel mailing list archive</a> at Nabble.com.<br/>