gstreamer: mfw_vpudecoder not being selected by playbin2

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

gstreamer: mfw_vpudecoder not being selected by playbin2

Jump to solution
1,349 Views
jhollister
Contributor II

I'm working on a new product design based on the i.MX535 MCU and I've been using the i.MX53 Quick Start Board (QSB) for software development. For about a year now I've been running videos on the QSB using "gst-launch playbin2 uri=…", which has been selecting the mfw_vpudecoder plugin for video decoding and mfw_v4lsink for video output. This is the behavior I want.

Now I've transferred my software development efforts to my new target board that also uses the i.MX535 and was designed, as much as practical, to be similar to the QSB's reference design. However, on my target board, "gst-launch playbin2 uri=…" appears to ignore mfw_vpudecoder and selects mfw_h264decoder instead.

As far as I can tell, I'm running the same video files, same Linux BSP (11.04 Lucid), same version of gstreamer, Freescale codecs (2.0.4), etc. on the QSB and on my target board. I've used gst-inspect to look at the registered plugins and mfw_vpudecoder is registered and not blacklisted. On both boards, mfw_vpudecoder has a plugin rank of 257 (Unknown) and mfw_h264decoder has a plugin rank of 256 (Primary). I've also checked, using ldd, that the mfw_vpudecoder plugin .so encoder and decoder files are finding all of the shared libraries they depend upon. My understanding is that, given all this, mfw_vpudecoder should be selected by playbin2.

Can anyone give me some suggestions about why playbin2 is not choosing to use mfw_vpudecoder on my target board, and choosing mfw_h264decoder instead?

Labels (2)
1 Solution
926 Views
fabio_estevam
NXP Employee
NXP Employee

Hi Jim,

I have met the same issue you described.

It seems that vpu library searches for a harcoded "MX53" string in the machine definition name.

For example: Look at arch/arm/mach-mx5/board-mx53_loco.c , where the machine name is defined as:

MACHINE_START(MX53_LOCO, "Freescale MX53 LOCO Board")

On your own board file, try also adding "MX53" into the string of MACHINE_START.

Hope this helps.

Regards,

Fabio Estevam

View solution in original post

1 Reply
927 Views
fabio_estevam
NXP Employee
NXP Employee

Hi Jim,

I have met the same issue you described.

It seems that vpu library searches for a harcoded "MX53" string in the machine definition name.

For example: Look at arch/arm/mach-mx5/board-mx53_loco.c , where the machine name is defined as:

MACHINE_START(MX53_LOCO, "Freescale MX53 LOCO Board")

On your own board file, try also adding "MX53" into the string of MACHINE_START.

Hope this helps.

Regards,

Fabio Estevam