I'm using the Nitrogen board to evaluate imx6 multimedia capabilities. I've been given the LTIB source and freescale IMX_MMCODECS but I'm not using LTIB. I'm using openembedded the Poky distribution.
So far I've integrated the MMCODECS and the necessary packages from LTIB into Yocto project and everything builds successfully. The basic Linux functionality is working fine but gstreamer is not.
I can't play any audio or video files and each media type has different errors.
For example this is the output when I try to play mp3 file:
gst-launch filesrc location=recit.mp3 ! queue max-size-time=0 ! mfw_mp3decoder ! audioconvert ! 'audio/x-raw-int, channels=2' ! alsasink
BLN_MAD-MMCODECS_MP3D_ARM_02.11.00_CORTEX-A8 build on Mar 21 2012 17:11:36.
MFW_GST_MP3_DECODER_PLUGIN 2.0.8 build on Aug 31 2012 04:33:06.
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: CODEC ERROR code 0x192, please consult Freescale codec team for more information
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
There are few differences between my image and the LTIB, mainly I'm using higher versions of gstreamer and libx11 because that's what comes with poky.
Can anyone please help debugging this problem?
Thanks
Hi Tarek,
Did you get this resolved?
If so, can you tell us what you did?
I suspect that at a minimum, you'll need to install the VPU firmware into /lib/firmware/vpu, but I'd be surprised if you don't need to re-compile the gstreamer components from the MM_CODECs package.
Hi Eric,
Yes, this was resolved. I needed to install the correct libraries into the correct locations. I've benefited from the information given in this thread https://community.freescale.com/thread/300387
So I modified the openembedded recipes accordingly and that's how I got it working.
I'm not sure why other video or audios can't be played.
But for the ERROR list above, it should be a issue related to watermark protection,
please check if /dev/mxc_mem -> mxs_viim these 2 files are existed.
i'm afraid some BSP modules are not correctly installed.
Thanks Jialiang for the information. I have followed the instructions given in another thread and I think the installation is correct now but I can't get gstreamer up and running.
I have checked my /dev directory and I don't see the mxc_mem. this is what I found:
root@imx6qsabrelite:~# ls /dev/mx*
/dev/mxc_asrc /dev/mxc_ipu /dev/mxc_vpu /dev/mxs_viim
if that's not right can you please let me know what package provides mxc_mem?
The error I'm get at the moment is:
root@imx6qsabrelite:~# gst-launch playbin2 uri=file:///home/root/big_buck_bunny.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: Quicktime demuxer
WARNING: from element /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: No decoder available for type 'video/quicktime, variant=(string)iso'.
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 ...
Freeing pipeline ...
Thanks
/dev/mxc_mem is a symbol linkage, you can create it by yourself
# ln -s mxs_viim /dev/mxc_mem
Thanks Wei that was very helpful.
I will install the udev extra rules to get the symlink done for me at start up