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
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