Hi All,
We are using Yocto build system for IMX6 platform and testing on imx6sabresd Quad Core board. Image is built using 'bitbake fsl-image-gui' and we are able to run Audio/Video test using the default QT application i.e. default built image.
However, when we try to play MP3 file it fails with following error. Is there some problem with 'beepdec' in this particular release. MP4 video files (h264+aac) does not give any issue.
root@imx6:~# gst-launch playbin2 uri=file:///home/root/I_know_it.mp3
Setting pipeline to PAUSED ...
BLN_MAD-MMCODECS_MP3D_ARM_02.13.00_CORTEX-A8 build on Dec 5 2012 09:45:19.
MFW_GST_MP3_DECODER_PLUGIN 3.0.5 build on Feb 18 2014 18:23:01.
Pipeline is PREROLLING ...
Caught SIGSEGV accessing address (nil)
#0 0x4a9817d4 in ?? ()
#1 0x4a9817c4 in ?? ()
#2 0x4a9817c4 in ?? ()
Spinning. Please run 'gdb gst-launch 2067' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
^CCaught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
root@imx6:~# gst-launch filesrc location=sample.mp3 typefind=true ! beepdec ! audioconvert ! 'audio/x-raw-int, channels=2' ! alsasink
(gst-launch-0.10:1972): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_d
(gst-launch-0.10:1972): GStreamer-CRITICAL **: gst_pad_new_from_template: assertion `GST_IS_PAD_TEMPLATE d
(gst-launch-0.10:1972): GStreamer-CRITICAL **: gst_pad_set_setcaps_function: assertion `GST_IS_PAD (pad)'d
(gst-launch-0.10:1972): GStreamer-CRITICAL **: gst_pad_set_chain_function: assertion `GST_IS_PAD (pad)' fd
(gst-launch-0.10:1972): GStreamer-CRITICAL **: gst_pad_set_event_function: assertion `GST_IS_PAD (pad)' fd
(gst-launch-0.10:1972): GStreamer-CRITICAL **: gst_element_add_pad: assertion `GST_IS_PAD (pad)' failed
WARNING: erroneous pipeline: could not link filesrc0 to beepdec0
GPLAY is also throwing similar error as above.
root@imx6magik2:~# gst-inspect beepdec
(gst-inspect-0.10:2052): GStreamer-CRITICAL **: gst_element_class_add_pad_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-inspect-0.10:2052): GStreamer-CRITICAL **: gst_pad_new_from_template: assertion `GST_IS_PAD_TEMPLATE (templ)' failed
(gst-inspect-0.10:2052): GStreamer-CRITICAL **: gst_pad_set_setcaps_function: assertion `GST_IS_PAD (pad)' failed
(gst-inspect-0.10:2052): GStreamer-CRITICAL **: gst_pad_set_chain_function: assertion `GST_IS_PAD (pad)' failed
(gst-inspect-0.10:2052): GStreamer-CRITICAL **: gst_pad_set_event_function: assertion `GST_IS_PAD (pad)' failed
(gst-inspect-0.10:2052): GStreamer-CRITICAL **: gst_element_add_pad: assertion `GST_IS_PAD (pad)' failed
Factory Details:
Long name: beep audio decoder
Class: Codec/Decoder/Audio
Description: Decode compressed audio to raw data
Author(s): Multimedia Team <shmmmw@freescale.com>
Rank: secondary + 1 (129)
Plugin Details:
Name: beep.imx
Description: universal audio codec
Filename: /usr/lib/gstreamer-0.10/libmfw_gst_beep.so
Version: 3.0.5
License: LGPL
Source module: gst-fsl-plugins
Binary package: Freescle Gstreamer Multimedia Plugins
Origin URL: http://www.freescale.com
GObject
+----GstObject
+----GstElement
+----GstBeepDec
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
audio/x-raw-int
width: { 16, 24, 32 }
depth: { 16, 24, 32 }
rate: { 7350, 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }
channels: [ 1, 8 ]
Element Flags:
no flags set
Element Implementation:
Has change_state() function: gst_beepdec_state_change
Has custom save_thyself() function: gst_element_save_thyself
Has custom restore_thyself() function: gst_element_restore_thyself
Element has no clocking capabilities.
Element has no indexing capabilities.
Element has no URI handling capabilities.
Pads:
SRC: 'src'
Implementation:
Has custom eventfunc(): gst_pad_event_default
Has custom queryfunc(): gst_pad_query_default
Provides query types:
(2): duration (Total duration)
Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
Has getcapsfunc(): gst_pad_get_fixed_caps_func
Has acceptcapsfunc(): gst_pad_acceptcaps_default
Pad Template: 'src'
Element Properties:
name : The name of the object
flags: readable, writable
String. Default: "beepdec0"
resync-threshold : set threshold for resync timestamp: -1, disable resync
flags: readable, writable
Integer64. Range: -1 - 9223372036854775807 Default: 2000000000
reset-when-resync : enable/disable reset when resync
flags: readable, writable
Boolean. Default: true
set-layout : enable/disable set output channel layout
flags: readable, writable
Boolean. Default: true
Are you using Dora to build the image? Can you run the same pipeline inside gdb?
Dylan was used to build the image.
Segmentation Fault is coming with only one MP3 file, but with others it is giving error as "Missing element: APE tag demuxer"
root@imx6qsabresd:~# gdb gst-launch
GNU gdb (GDB) 7.5.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-poky-linux-gnueabi".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/gst-launch...(no debugging symbols found)...done.
(gdb) set args playbin2 uri=file:///home/root/
.dbus/ .ssh/ output.mp3 sample.wav
.gstreamer-0.10/ enrique.mp3 sample.mp3
(gdb) set args playbin2 uri=file:///home/root/sample.mp3
(gdb) run
Starting program: /usr/bin/gst-launch playbin2 uri=file:///home/root/sample.mp3
warning: File "/lib/libthread_db-1.0.so" auto-loading has been declined by your `auto-load safe-path' set to "$debugdi r:$datadir/auto-load".
To enable execution of this file add
add-auto-load-safe-path /lib/libthread_db-1.0.so
line to your configuration file "/home/root/.gdbinit".
To completely disable this security protection add
set auto-load safe-path /
line to your configuration file "/home/root/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual. E.g., run from the shell:
info "(gdb)Auto-loading safe path"
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
process 694 is executing new program: /usr/bin/gst-launch-0.10
warning: File "/lib/libthread_db-1.0.so" auto-loading has been declined by your `auto-load safe-path' set to "$debugdi r:$datadir/auto-load".
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: APE tag demuxer
WARNING: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: No decoder available for type 'application /x-apetag'.
Additional debug info:
/home/vivek/projects/magik-2/svn/trunk/i.MX6/linux/yocto/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnue abi/gst-plugins-base/0.10.36-r8/gst-plugins-base-0.10.36/gst/playback/gsturidecodebin.c(874): unknown_type_cb (): /Gst PlayBin2:playbin20/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20: Your GStreamer ins tallation is missing a plug-in.
Additional debug info:
/home/vivek/projects/magik-2/svn/trunk/i.MX6/linux/yocto/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnue abi/gst-plugins-base/0.10.36-r8/gst-plugins-base-0.10.36/gst/playback/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 ...
Freeing pipeline ...
[LWP 694 exited]
[Inferior 1 (process 694) exited normally]
GPLAY too fails to play the file.
root@imx6qsabresd:~# gplay enrique.mp3
playbin2 is employed!
fsl_player_init(): Successfully initialize!
fsl_player_set_media_location(): filename=enrique.mp3
[Stopped ][Vol=01][00:00:00/00:00:00][fps:0]state change failed from 2 to 4
try to play failed
FSL_PLAYER_01.00_LINUX build on Feb 18 2014 18:23:17
[h]display the operation Help
[p]Play
[s]Stop
[e]Seek
[a]Pause when playing, play when paused
[v]Volume
[m]Switch to mute or not
[>]Play next file
[<]Play previous file
[r]Switch to repeated mode or not
[f]Set full screen or not
[z]resize the width and height
[t]Rotate
[c]Setting play rate
[i]Display the metadata
[x]eXit
[Stopped ][Vol=01][00:00:00/00:00:00][fps:0]
So this means that using gdb the fault is not produced and running the pipeline directly does, right? Have you tried other mp3?
The MP3 segmentation problem is with only one specific MP3 file. Unfortunately, I cannot provide gdb logs with that file right now..will provide later when I have it.
I have tried with many different MP3 files but nothing plays, so I wonder if anyone has ever tried to play MP3 on imx6sabresd board using Dylan branch and faced similar issue.
Suman
This discussion is closed since no activity. If you still need help, please feel free to reply with an update to this discussion, or create another discussion.
Thanks,
Yixing
Suman
Had your issue got resolved? If yes, we are going to close the discussion in 3 days. If you still need help, please feel free to reply with an update to this discussion.
Thanks,
Yixing
Got it. Please use Dora instead of Dylan. Dora is the latest stable set of branches. In case you are tied to Dylan, you need to find what are the changes on the beepdec on dora and backport them to dylan (and send the patch to the community :smileyhappy: ). OtavioSalvador, are you aware of this issue on dylan?
Hello LeonardoSandovalGonzalez, yes. We used to have severe issues with the multimedia codecs. sumanranjan, as advised please move to Dora as this provide working codecs and you should have no problems there.
Another possibility is you to use the GStreamer codecs and skip Freescale ones. This shouldn't show performance difference for your use-case.