Switching from playbin to uridecodebin (glupload & audio)
Matthew Waters
ystreet00 at gmail.com
Fri Sep 16 13:05:48 UTC 2016
On 16/09/16 22:53, Gottfried Haider wrote:
> Thanks Matt!
>
> 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)
You can create a bin as the video-sink for gst-launch-1.0. You just
need to enclose the video-sink parameter in double quotes and a bin
should be created with your elements inside.
e.g. gst-launch-1.0 playbin uri=file:///path/to/file
video-sink="glupload ! glcolorconvert ! glfiltercube !
glimagesinkelement" will cubify the video.
Cheers
-Matt
> 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?
>
> Best
> G
>
> [1] https://cgit.freedesktop.org/gstreamer/gst-omx/tree/examples/egl/testegl.c#n1079
>
> On Fri, Sep 16, 2016 at 2:26 PM, Matthew Waters <ystreet00 at gmail.com
> <mailto:ystreet00 at gmail.com>> wrote:
>
> On 16/09/16 20:10, Gottfried Haider wrote:
> > Hello all,
> >
> > I have this pipeline as part of Processing's glvideo library, that
> > works great - but doesn't play audio:
> >
> > uridecodebin uri=... ! glupload name=glup ! glcolorconvert !
> > capsfilter name=filter ! fakesink name=vsink
> >
> > So I tried this instead
> >
> > uridecodebin uri=... name=decoder ! queue ! audioconvert !
> > audioresample ! autoaudiosink sync=false decoder. ! queue ! glupload
> > name=glup ! glcolorconvert ! capsfilter name=filter ! fakesink
> > name=vsink sync=false
> >
> > which just hang. (The particular mp4 file I was testing this
> with had
> > not audio track if that matters.)
> >
> >
> > Should the second pipeline work in theory? Any other things I could
> > try to get something like a playbin-like source element that would
> > also play audio tracks, if the source has one? I uploaded a dot file
> > of the second pipeline on OS X for you to look at[1].
>
> If the file didn't have an audio track that means that the audio
> output
> part of the pipeline would not be linked to uridecodebin and thus when
> prerolling would never get a buffer and would never complete the state
> change to paused. A backtrace of all threads would probably show that
> the audiosink is stuck on the preroll cond/lock.
>
> Your options are to either use playbin with the video-sink
> property set
> to your custom video branch or if you're set on using
> uridecodebin, you
> will have to selectively add the audio part of the pipeline if
> there is
> an audio pad exposed by uridecodebin. See the following example which
> uses decodebin but the same idea is valid for uridecodebin:
> https://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-components-decodebin.html
> <https://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-components-decodebin.html>.
>
> Cheers
> -Matt
>
> > (If the pipeline looks right it might just be that the audio
> decoding
> > hits this bug [2] on OS X.)
> >
> >
> > Thanks in advance
> > Gottfried
> >
> >
> > [1] https://bugzilla.gnome.org/show_bug.cgi?id=768630
> <https://bugzilla.gnome.org/show_bug.cgi?id=768630>
> > [2] https://sukzessiv.net/~gohai/gstreamer/uridecode-audio.png
> <https://sukzessiv.net/%7Egohai/gstreamer/uridecode-audio.png>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160916/6c794402/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 484 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160916/6c794402/attachment.sig>
More information about the gstreamer-devel
mailing list