<div dir="ltr">Hi everyone, Tim,<div><br></div><div>I have made an attempt to implement that approach with concat elements (see my previous email in the chain). Well, ... unfortunately, it does not want to work out of the box, but I want to understand why. May I ask you to take a look at my pipeline snapshots at two different points -- after initialization and after the input is added. Can you tell why the hell are the autosinks stalled in the READY state???</div><div><br></div><div>The post-init pipeline: <a href="https://drive.google.com/open?id=0Bz5JvqnApX6Wc2JpZGh6S1ZzRXM">https://drive.google.com/open?id=0Bz5JvqnApX6Wc2JpZGh6S1ZzRXM</a></div><div>The pipeline with an input added: <a href="https://drive.google.com/open?id=0Bz5JvqnApX6Wd29MMkI2NlZoT0k">https://drive.google.com/open?id=0Bz5JvqnApX6Wd29MMkI2NlZoT0k</a></div><div><br></div><div>Here are some lines from the debug output that say that the sinks are kind of going to change the state (during initialization), but this never happens.</div><div><br></div><div>--------------------</div><div><div>0:00:00.094213487 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2521:gst_bin_element_set_state:<autoaudiosink0-actual-sink-pulse> current READY pending VOID_PENDING, desired next PAUSED</div><div>0:00:00.094243110 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2975:gst_bin_change_state_func:<autoaudiosink0> child 'autoaudiosink0-actual-sink-pulse' is changing state asynchronously to PAUSED</div><div>0:00:00.094255412 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2975:gst_bin_change_state_func:<encoder_bin> child 'autoaudiosink0' is changing state asynchronously to PAUSED</div><div>0:00:00.094262285 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2521:gst_bin_element_set_state:<autovideosink0> current READY pending VOID_PENDING, desired next PAUSED</div><div>0:00:00.094270350 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2521:gst_bin_element_set_state:<autovideosink0-actual-sink-xvimage> current READY pending VOID_PENDING, desired next PAUSED</div><div>0:00:00.094279694 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2975:gst_bin_change_state_func:<autovideosink0> child 'autovideosink0-actual-sink-xvimage' is changing state asynchronously to PAUSED</div><div>0:00:00.094299766 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2975:gst_bin_change_state_func:<encoder_bin> child 'autovideosink0' is changing state asynchronously to PAUSED</div></div><div>--------------------</div><div><br></div><div>later on, when I dump the state of the pipeline (as pipeline-init), here is what I see in the log:</div><div><br></div><div>--------------------</div><div><div>0:00:01.095350817 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2110:gst_bin_get_state_func:<pipeline> getting state</div><div>0:00:01.095771643 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2137:gst_element_get_state_func:<pipeline> waiting for element to commit state</div><div>0:00:01.095819139 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2151:gst_element_get_state_func:<pipeline> timed out</div><div>0:00:01.095897058 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2110:gst_bin_get_state_func:<encoder_bin> getting state</div><div>0:00:01.095945534 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2137:gst_element_get_state_func:<encoder_bin> waiting for element to commit state</div><div>0:00:01.095986413 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2151:gst_element_get_state_func:<encoder_bin> timed out</div><div>0:00:01.096129980 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2110:gst_bin_get_state_func:<autoaudiosink0> getting state</div><div>0:00:01.096175755 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2137:gst_element_get_state_func:<autoaudiosink0> waiting for element to commit state</div><div>0:00:01.096217180 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2151:gst_element_get_state_func:<autoaudiosink0> timed out</div><div>0:00:01.096324883 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2137:gst_element_get_state_func:<autoaudiosink0-actual-sink-pulse> waiting for element to commit state</div><div>0:00:01.096371078 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2151:gst_element_get_state_func:<autoaudiosink0-actual-sink-pulse> timed out</div><div>0:00:01.096837925 14344 0x563aa7545400 INFO              GST_STATES gstbin.c:2110:gst_bin_get_state_func:<autovideosink0> getting state</div><div>0:00:01.096894019 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2137:gst_element_get_state_func:<autovideosink0> waiting for element to commit state</div><div>0:00:01.096936085 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2151:gst_element_get_state_func:<autovideosink0> timed out</div><div>0:00:01.097035379 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2137:gst_element_get_state_func:<autovideosink0-actual-sink-xvimage> waiting for element to commit state</div><div>0:00:01.097078770 14344 0x563aa7545400 INFO              GST_STATES gstelement.c:2151:gst_element_get_state_func:<autovideosink0-actual-sink-xvimage> timed out</div></div><div>--------------------</div><div><br></div><div><br></div><div><br></div><div>Thank you so much for your help!</div><div><br></div><div><br></div><div>Best,</div><div>Vlad</div><div><br></div><div class="gmail_extra"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font color="#666666"><br></font><div><div><br></div></div></div></div></div></div>
<br><div class="gmail_quote">2017-06-05 22:49 GMT+03:00 Vladislavs Zaluckis <span dir="ltr"><<a href="mailto:v.zaluckis@gmail.com" target="_blank">v.zaluckis@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>Hi Tim,</div><div id="m_-8262652025321380801AppleMailSignature"><br></div><div id="m_-8262652025321380801AppleMailSignature">After sleeping on the example app for some time, I don't get why it needs to be so complicated. Could you (or anybody) explain, why can't I just use concat element in each of the streams to stitch the adjacent items? Say I prepare (preroll) the next item and connect its video and audio streams to corresponding concat elements. Then concat will do the rest -- switch to the next item as soon as the current one ends with EOS, each in its own stream. Don't you think it could work?</div><div id="m_-8262652025321380801AppleMailSignature"><br></div><div id="m_-8262652025321380801AppleMailSignature">Thank you so much!<br><br>--<div>Best regards,</div><div>Vlad </div><div><br></div><div><br></div></div><div><br>30 мая 2017 г., в 12:24, Vladislavs Zaluckis <<a href="mailto:v.zaluckis@gmail.com" target="_blank">v.zaluckis@gmail.com</a>> написал(а):<br><br></div><div><div class="h5"><blockquote type="cite"><div><div>Hi Tim,</div><div id="m_-8262652025321380801AppleMailSignature"><br></div><div id="m_-8262652025321380801AppleMailSignature">Thank you for the pointer! Indeed, it looks precisely what I need. Will give it a try shortly. </div><div id="m_-8262652025321380801AppleMailSignature"><br></div><div id="m_-8262652025321380801AppleMailSignature">--</div><div id="m_-8262652025321380801AppleMailSignature">Best regards,</div><div id="m_-8262652025321380801AppleMailSignature">Vlad</div><div id="m_-8262652025321380801AppleMailSignature"><br></div><div><br>30 мая 2017 г., в 11:46, Tim Müller <<a href="mailto:tim@centricular.com" target="_blank">tim@centricular.com</a>> написал(а):<br><br></div><blockquote type="cite"><div><div>On Tue, 2017-05-30 at 11:22 +0300, Vladislavs Zaluckis wrote:</div><div><br></div><div>Hi Vlad,</div><div><br></div><blockquote type="cite"><div>I've been struggling with this problem for some time now, with no sucess. What I am trying to do is to play two container files with multiple streams inside (I take one video and just one audio) one after another without a gap. I am using filesrc/decodebin for input, then some simple processing, then playing to autosinks. As one file ends, I am relinking the pipeline dynamically, following the procedure described in the app dev guide. So far so good, but when I try to run the actual production-like pipeline, it gets stuck on EOS processing. The "production" pipeline is encoding to x264/AAC, then muxing to MPEGTS, then packetizing using RTP, then sending to UDP.</div></blockquote><div><br></div><div>There's this example which may come in handy:</div><div><a href="https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/tests/examples/playout.c" target="_blank">https://cgit.freedesktop.org/<wbr>gstreamer/gst-plugins-bad/<wbr>tree/tests/examples/playout.c</a></div><div><br></div><div>It should do what you want, minus the encoding/streaming parts.</div><div><br></div><div>Cheers</div><div> -Tim</div><div><span><pre>-- <br></pre><div class="m_-8262652025321380801-x-evo-paragraph" style="font-family:monospace;width:71ch;word-wrap:break-word;word-break:break-word">Tim Müller, Centricular Ltd - <a href="http://www.centricular.com" target="_blank">http://www.centricular.com</a></div>
</span></div></div></blockquote><blockquote type="cite"><div><span>______________________________<wbr>_________________</span><br><span>gstreamer-devel mailing list</span><br><span><a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.<wbr>freedesktop.org</a></span><br><span><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/gstreamer-<wbr>devel</a></span><br></div></blockquote></div></blockquote></div></div></div></blockquote></div><br></div></div>