IMX6 Video Decode and Playback in QT

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

IMX6 Video Decode and Playback in QT

3,735 Views
stevezilla
Contributor II

We are starting a new product and are investigating the use of the IMX6 Solo processor.  The key element in our product is full HD (1920x1080) video playback, which must be able to be played within QT.  We will also be displaying other elements on the screen at the same time as the video playback.  (Images, Text, etc)  Before proceeding further I'd like to know if anyone in the community can answer the following regarding the IMX6 Solo:

(1)  Has anyone achieved 1920x1080 decoding and playback on the IMX6 Solo?  How was performance?  What type of CPU usage did you see?

(2)  Has anyone achieved 1920x1080 video playback within QT5 on a IMX6 Solo?  (EX-  QML Video Element)  How was performance?  What type of CPU usage did you see?

(3)  If you have successfully achieved either of these items, what build system did you use?  (Yocto, LTIB, etc.)  Do you have any tips on getting this working?

(4)  Has anyone compared decoding/playback of IMX6 Solo to Dual or Quad?  Do the 2X VPUs found in Dual/Quad make a significant difference in decoding/playback of a single video?

Any thoughts/feedback would be much appreciated as we evaluate the IMX6 for our application.

5 Replies

1,074 Views
RobertSchwebel
Contributor IV

Hi Steve,

> The key element in our product is full HD (1920x1080) video playback, which must be able to be played within QT.

Where does the video come from? File, CSI, USB-UVC?

In general, performance should work, because we already did something similar on MX53 in the past (Full-HD video + graphics plane); on MX53, this was absolutely close to the memory bandwidth border, but on MX6 it should be easily possible. However, it is something that can be tested.

> We will also be displaying other elements on the screen at the same time as the video playback. (Images, Text, etc)

Some questions:

  • This "other elements" are all done in Qt, so you basically have a single fullscreen application scenario, right?
  • Do you have overlay requirements, do you intend to use other Qt elements "above" the video?

We are currently working on a Qt extension which makes it possible to use GStreamer pipelines from within QML. In combination with the latest GStreamer components and the kernel video infrastructure, it will be possible to use that with the mainline IPU drivers. Note that not all of the kernel patches are in the kernel.org tree yet, but this is something which is actively being worked on. Additionally, we have a Wayland prototype which makes use of KMS planes for video, but this is in a pretty early state (and doesn't have any GL acceleration yet).

One important question is if you want to use Qt with GL acceleration, which still has it's issues.

Btw, if you happen to be at ELC-E next month, we will have a talk there about the current state of the i.MX graphics/video infrastructure in mainline.

> (2)  Has anyone achieved 1920x1080 video playback within QT5 on a IMX6 Solo?  (EX-  QML Video Element)

> How was performance?  What type of CPU usage did you see?

Could be tested, we have MX6S hardware around. I'm not sure if we have one which can easily be connected to a full-hd panel.

> (3)  If you have successfully achieved either of these items, what build system did you use?

> (Yocto, LTIB, etc.)

PTXdist, linux-3.12-rc1 plus a stack of patches which are coming right out of the kernel team's kitchen :-)

> (4)  Has anyone compared decoding/playback of IMX6 Solo to Dual or Quad?

> Do the 2X VPUs found in Dual/Quad make a significant difference in decoding/playback of a single video?

I don't think so; however, note that often MX6S boards have other/slower memory than MX6Q boards; it doesn't have to do with the chips, but with the fact that people who want to make the systems cheaper don't only replace the CPU...

Regards,

Robert

0 Kudos

1,074 Views
daiane_angolini
NXP Employee
NXP Employee

Regarding all imx6S comparison, I cannot say anything, I don´t have this board.

0 Kudos

1,074 Views
LeonardoSandova
Specialist I

Regarding the builder, you should use Yocto for the following reasons

1. It will (or does?) support QT5

2. Playbacks on QT are hardware accelerated (meta-fsl-arm/recipes-qt/qt4/qt4/0001-Add-support-for-i.MX-codecs-to-phonon.patch)

There is one problem: Yocto does not have a specific machine for MX6Solo, but what you can do is try the uImage and rootfs generated with the image imx6dlsabresd machine and the u-boot.bin generated by LTIB.

Leo

0 Kudos

1,074 Views
2gigeng
Contributor II

When will Yocto have QT5 support?

0 Kudos

1,074 Views
daiane_angolini
NXP Employee
NXP Employee

yocto has already QT5 support.

The problem is the QT and imx6 integration that is not done, as I know.

0 Kudos