MP3 playback problem on imx6sabresd in Yocto build

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

MP3 playback problem on imx6sabresd in Yocto build

3,983 Views
sumanranjan
Contributor III

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

Labels (1)
Tags (4)
8 Replies

1,361 Views
LeonardoSandova
Specialist I

Are you using Dora to build the image? Can you run the same pipeline inside gdb?

0 Kudos

1,361 Views
sumanranjan
Contributor III

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]

0 Kudos

1,361 Views
LeonardoSandova
Specialist I

So this means that using gdb the fault is not produced and running the pipeline directly does, right? Have you tried other mp3?

0 Kudos

1,361 Views
sumanranjan
Contributor III

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.

0 Kudos

1,361 Views
YixingKong
Senior Contributor IV

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

0 Kudos

1,361 Views
YixingKong
Senior Contributor IV

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

0 Kudos

1,361 Views
LeonardoSandova
Specialist I

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?

1,362 Views
OtavioSalvador
Senior Contributor II

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.