gstreamer on imx6: erroneous pipeline: could not link queue0 to beepdec0

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

gstreamer on imx6: erroneous pipeline: could not link queue0 to beepdec0

6,164 Views
varsmolta
Contributor V

I am using yocto "danny" with 3.0.35 linux kernel

When trying to play mp3 file on imx6 sabre lite board, i run the following (ref https://community.freescale.com/docs/DOC-93446) :

gst-launch -vvv filesrc location=BachGavotteShort.mp3 ! queue ! beepdec ! audioconvert ! 'audio/x-raw-int, channels=2' ! alsasink

and I get the following error:

(gst-launch-0.10:2349): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-launch-0.10:2349): GStreamer-CRITICAL **: gst_pad_new_from_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed

(gst-launch-0.10:2349): GStreamer-CRITICAL **: gst_pad_set_setcaps_function: assertion `GST_IS_PAD (pad)' failed

(gst-launch-0.10:2349): GStreamer-CRITICAL **: gst_pad_set_chain_function: assertion `GST_IS_PAD (pad)' failed

(gst-launch-0.10:2349): GStreamer-CRITICAL **: gst_pad_set_event_function: assertion `GST_IS_PAD (pad)' failed

(gst-launch-0.10:2349): GStreamer-CRITICAL **: gst_element_add_pad: assertion `GST_IS_PAD (pad)' failed

WARNING: erroneous pipeline: could not link queue0 to beepdec0

I've also tried the following:

gst-launch -vvv playbin2 uri=file:///home/root/BachGavotteShort.mp3

and I get an error complaining that I am missing a plugin:

Setting pipeline to PAUSED ...

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-size = -1

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-duration = -1

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: use-buffering = FALSE

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: download = FALSE

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: uri = "file:///home/root/BachGavotteShort.mp3"

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: connection-speed = 0

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: source = (GstFileSrc) source

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = application/x-id3

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstID3Demux:id3demux0.GstPad:sink: caps = application/x-id3

Pipeline is PREROLLING ...

Missing element: MPEG-1 Layer 3 (MP3) decoder

WARNING: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: No decoder available for type 'audio/mpeg, mpegversion=(int)1, layer=(int)3'.

Additional debug info:

gsturidecodebin.c(874): unknown_type_cb (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0

ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20: Your GStreamer installation is missing a plug-in.

Additional debug info:

gstdecodebin2.c(3576): gst_decode_bin_expose (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20:

no suitable plugins found

ERROR: pipeline doesn't want to preroll.

Setting pipeline to NULL ...

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstID3Demux:id3demux0.GstPad:src: caps = NULL

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstID3Demux:id3demux0.GstPad:sink: caps = NULL

/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = NULL

Freeing pipeline ...

But I have double checked that I have the beepdec plugin via gst-inspect command: gst-inspect | grep -i beep

beep.imx: ac3: ac3

beep.imx: 3ca: ac3

beep.imx:  beepdec: beep audio decoder

beep.imx:  beepdec.vorbis: Vorbis decoder

beep.imx:  beepdec.ac3: AC3 decoder

beep.imx:  beepdec.wma: WMA decoder

beep.imx:  beepdec.mp3: MP3 decoder

beep.imx:  beepdec.aac: AAC LC decoder

Has anyone encountered this? Can someone please run the above commands and check if they get audio output from mp3 file and post their results? FYI, I am able to play hd video using gstreamer but audio is again missing. Thanks

Labels (3)
0 Kudos
1 Reply

1,880 Views
LeonardoSandova
Specialist I

Please try your pipeline as in the example (remove the queue and add the typefind=true property)

gst-launch filesrc location=sample.mp3 typefind=true ! beepdec ! audioconvert ! 'audio/x-raw-int, channels=2' ! alsasink

If you still finding issues, please send an email to the meta-freescale mailing list ( https://lists.yoctoproject.org/listinfo/meta-freescale). You may end up raising a bug on https://bugzilla.yoctoproject.org/

Leo