Video decoding and playing performance decrease

Hi,

I play a video of a USB device on the HDMI output with the Apalis iMX6Q 2GB IT with the Ixora V1.0A Carrier board.

With the following environment, I have good performance, the video is playing smoothly :
Apalis_iMX6_LinuxImageV2.4Beta1_2150518

U-Boot 2015.04

Linux-3.10.17

gstreamer 0.10

gst-launch filesrc location=/media/USB\ DISK/FILE03_capsule_H264_1920-1080_25fps_6449kbps_AAC_5-1_317kbps.mp4 typefind=true ! aiurdemux ! queue ! vpudec  ! mfw_v4lsink

But when I have upgrading the board to the following environment, the video is not playing smoothly.

Apalis_iMX6_LinuxImageV2.6.1_20160929

U-Boot 2015.04

Linux-3.14.52-v2.6.1b1+g3894f6d

gstreamer 1.4.5

gst-launch-1.0 filesrc location=/media/sda1/FILE03_capsule_H264_1920-1080_25fps_6449kbps_AAC_5-1_317kbps.mp4 ! video/quicktime ! aiurdemux ! queue ! vpudec ! imxv4l2sink

Is this performance decrease normal ?

Any idea ?
Do I have to downgrade to the version 2.4, which can exit gst-launch with “Illegal instruction” when playing a video with a AAC_5 audio track over hdmi ?

We will get back to you on this shortly.

Any news ?
We are waiting for a solution before ordering our first production.

I tried out a number of different solutions. While I can see lower performance on the image with gstreamer V1.0 it does not go from good to unusable.

I use the following file:
http://bbb3d.renderfarming.net/download.html
http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4

It can not be played on any of the combination without dropping frames (and keeping the timing)

The following two pipelines do not drop frames but rather slow down playback:

gst-launch-1.0 filesrc location=bbb_sunflower_1080p_60fps_normal.mp4 typefind=true ! video/quicktime ! aiurdemux ! vpudec frame-drop=false ! queue max-size-buffers=3 ! imxv4l2sink sync=false

gst-launch filesrc location=bbb_sunflower_1080p_60fps_normal.mp4 typefind=true ! video/quicktime ! aiurdemux ! vpudec framedrop=false ! queue max-size-buffers=3 ! mfw_v4lsink  sync=false

I get the follwing playback framerates:

gstreamer 0.10 based images

Linux Image V2.4 Beta 1, with older 2014.04 U-Boot
U-Boot started from Recovery Mode
U-Boot 2014.04 (Jan 12 2015 - 18:52:30)
Linux apalis-imx6 3.10.17 #1 SMP Mon May 18 13:10:16 CEST 2015 armv7l GNU/Linux

Running time 0:17:49.198061578 render fps 35.608

.

Linux Image V2.4 Beta 1
U-Boot started from Recovery Mode
U-Boot 2015.04 (May 18 2015 - 13:08:37)
Linux apalis-imx6 3.10.17 #1 SMP Mon May 18 13:10:16 CEST 2015 armv7l GNU/Linux

Running time 0:17:48.928729214 render fps 35.617

.

Linux Image V2.4 Beta 1, with newer 2015.04 U-Boot
U-Boot 2015.04+fslc+g46aa70c (Sep 29 2016 - 21:46:54)
Linux apalis-imx6 3.10.17 #1 SMP Mon May 18 13:10:16 CEST 2015 armv7l GNU/Linux

Running time 0:17:38.303630680 render fps 35.975

gstreamer 1.0 based images

Linux Image V2.6.1 Beta 1
U-Boot 2015.04+fslc+g46aa70c (Sep 29 2016 - 21:46:54)
Linux apalis-imx6 3.14.52-v2.6.1b1+g3894f6d #1 SMP Thu Sep 29 22:05:37 CEST 2016 armv7l GNU/Linux

Total showed frames (38072), playing for (0:20:20.009498150), fps (31.206).

.

Linux Image V2.6.1 Beta 1, Kernelconfig with CONFIG_MX6_VPU_352M=y
U-Boot 2015.04+fslc+g46aa70c (Sep 29 2016 - 21:46:54)
Linux apalis-imx6 3.14.52-00001-gde9ebb8 #67 SMP Thu Nov 24 15:38:13 CET 2016 armv7l GNU/Linux

Total showed frames (38072), playing for (0:19:43.883178182), fps (32.159).

.

Upcoming release
U-Boot 2016.11-rc3+fslc+g404a98f (Nov 12 2016 - 22:58:22 +0100)
Linux apalis-imx6 4.1.35-v2.6.2b1+gb81ca43 #1 SMP Sat Nov 12 23:01:32 CET 2016 armv7l GNU/Linux

Total showed frames (38072), playing for (0:18:57.307596842), fps (33.476).

So the performance went back from around 36fps to around 31fps.

Did you change anything else between the different setups? e.g. the color depth of your display, the video source material, screen resolution?

Thanks for letting us know @5CoFrancois

Glad you were able to get this resolved. Just let us know should you have any further questions or comments.

Thanks a lot @max.tx

It seems that parameter frame-drop=false solves the problem.
By adding only this parameter, I switch from 15,213 fps to 25,000 fps (the correct video speed).