gstreamer: mfw_vpudecoder not being selected by playbin2

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

gstreamer: mfw_vpudecoder not being selected by playbin2

跳至解决方案
1,313 次查看
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?

标签 (2)
1 解答
890 次查看
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

在原帖中查看解决方案

1 回复
891 次查看
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