<div dir="ltr">Thanks Matt!<div><br></div><div>Regarding the playbin-option: Is it possible to create a "custom video branch" (GstBin) as part of a textual pipeline description? (that is being fed to gst_parse_launch)</div><div><br></div><div>Or do I need to create a new bin in code, set it up with glupload ! capsfilter ! fakesink (like in testegc [1]), and later use gst_pipeline_new() and gst_parse_bin_from_description() to create a custom pipeline that references the video bin created earlier?</div><div><br></div><div>Best</div><div>G</div><div><br></div><div>[1] <a href="https://cgit.freedesktop.org/gstreamer/gst-omx/tree/examples/egl/testegl.c#n1079">https://cgit.freedesktop.org/gstreamer/gst-omx/tree/examples/egl/testegl.c#n1079</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 16, 2016 at 2:26 PM, Matthew Waters <span dir="ltr"><<a href="mailto:ystreet00@gmail.com" target="_blank">ystreet00@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 16/09/16 20:10, Gottfried Haider wrote:<br>
> Hello all,<br>
><br>
> I have this pipeline as part of Processing's glvideo library, that<br>
> works great - but doesn't play audio:<br>
><br>
> uridecodebin uri=... ! glupload name=glup ! glcolorconvert !<br>
> capsfilter name=filter ! fakesink name=vsink<br>
><br>
> So I tried this instead<br>
><br>
> uridecodebin uri=... name=decoder ! queue ! audioconvert !<br>
> audioresample ! autoaudiosink sync=false decoder. ! queue ! glupload<br>
> name=glup ! glcolorconvert ! capsfilter name=filter ! fakesink<br>
> name=vsink sync=false<br>
><br>
> which just hang. (The particular mp4 file I was testing this with had<br>
> not audio track if that matters.)<br>
><br>
><br>
> Should the second pipeline work in theory? Any other things I could<br>
> try to get something like a playbin-like source element that would<br>
> also play audio tracks, if the source has one? I uploaded a dot file<br>
> of the second pipeline on OS X  for you to look at[1].<br>
<br>
</span>If the file didn't have an audio track that means that the audio output<br>
part of the pipeline would not be linked to uridecodebin and thus when<br>
prerolling would never get a buffer and would never complete the state<br>
change to paused.  A backtrace of all threads would probably show that<br>
the audiosink is stuck on the preroll cond/lock.<br>
<br>
Your options are to either use playbin with the video-sink property set<br>
to your custom video branch or if you're set on using uridecodebin, you<br>
will have to selectively add the audio part of the pipeline if there is<br>
an audio pad exposed by uridecodebin.  See the following example which<br>
uses decodebin but the same idea is valid for uridecodebin:<br>
<a href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-components-decodebin.html" rel="noreferrer" target="_blank">https://gstreamer.freedesktop.<wbr>org/data/doc/gstreamer/head/<wbr>manual/html/section-<wbr>components-decodebin.html</a>.<br>
<br>
Cheers<br>
-Matt<br>
<div class="HOEnZb"><div class="h5"><br>
> (If the pipeline looks right it might just be that the audio decoding<br>
> hits this bug [2] on OS X.)<br>
><br>
><br>
> Thanks in advance<br>
> Gottfried<br>
><br>
><br>
> [1] <a href="https://bugzilla.gnome.org/show_bug.cgi?id=768630" rel="noreferrer" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=768630</a><br>
> [2] <a href="https://sukzessiv.net/~gohai/gstreamer/uridecode-audio.png" rel="noreferrer" target="_blank">https://sukzessiv.net/~gohai/<wbr>gstreamer/uridecode-audio.png</a><br>
><br>
<br>
<br>
</div></div></blockquote></div><br></div>