iMX6 How to accellerate color space conversion using gstreamer and playbin2

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

iMX6 How to accellerate color space conversion using gstreamer and playbin2

跳至解决方案
2,225 次查看
henkfijnvandraa
Contributor II

Given two possible ways to launch a video:

gst-launch filesrc location=sintel-1024-surround.mp4 typefind=true ! aiurdemux ! vpudec frame-plus=1 ! mfw_ipucsc ! mfw_v4lsink

and

gst-launch filesrc location=sintel-1024-surround.mp4 typefind=true ! aiurdemux ! vpudec frame-plus=1 ! mfw_v4lsink

Both of these pipelines work, however the first containing mfw_ipucsc should be using hardware to convert the vpudec yuv output to RGB that is used to write the output

into the framebuffer /dev/fb0

The second form is identical to the pipe that is created (automatically) when using playbin2.

This raises the question of how mfw_v4lsink handles color space conversion when it is fed yuv on its input? In software?

This question is triggered by the following observation:

We have an application written in Qt5 that uses the webkit to open e.g. a YouTube page and then playing a movie.

With GST_DEBUG=2 we see a lot of frame buffers being dropped and the movie plays "bad" and the iMX6 runs hot until the point that the "cooling" device reduces the cpu frequency.

Webkit uses playbin2 to launch the video.

So somehow I guess that the vpudec yuv output gets software converted to be merged in the framebuffer output and that takes a lot of cpu effort.

If the above holds, why does mfw_4vlsink not automatically use the ipucsc when it is fed yuv on a iMX6?

As an experiment I removed the yuv formats from the mfw_v4lsink. playbin2 then generates an invalid pipe error. It is unable to automatically incorporate the mfw_ipucsc that provides yuv to RGB conversion.

The gst-launch with mfw_ipuscs still functions correctly with this modification.

Is there another way to force playbin2 to use mfw_ipuscs?

标签 (2)
0 项奖励
回复
1 解答
1,405 次查看
karina_valencia
NXP Apps Support
NXP Apps Support

Qiang LiEmployee

In this case, you don't need use mfw_ipucsc, the mfw_v4lsink supports hardware CSC too.

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,406 次查看
karina_valencia
NXP Apps Support
NXP Apps Support

Qiang LiEmployee

In this case, you don't need use mfw_ipucsc, the mfw_v4lsink supports hardware CSC too.

0 项奖励
回复