AnsweredAssumed Answered

Playing low-latency H.264 video with i.MX6Q

Question asked by rebelalliance on Apr 16, 2013



Ok I am running into an issue which I haven’t been able to surmount and which I need the answers to in order to qualify this chip for our use:


1) Is this decoder able to play low-latency streams aka "intra-refresh"?  There is some confusion about this so let me clarify.  A low latency stream, as we call it, is one which has no "I" frame per se but only "P" frames.  The "I" Frame is actually embedded inside the "P" frame in slices.  This is not nonstandard but is uncommon because it is used mostly in broadcast mode.  We generate these low-latency streams so we need a decoder which is able to decode such streams. 

What I did was save the streams to a TS file and playback using playbin2.  This works and we have been able to qualify many different streams and observe their error resiliency.  However, the low-latency stream have not worked using playbin2 (they don’t play).  Here is their errored output:

root@freescale ~/test$ gst-launch-0.10 filesrc location=./1080p30_low_latency.ts typefind=true ! queue ! aiurdemux ! queue max-size-time=0 max-size-buffers=0 ! vpudec low-latency=true frame-plus=1 framedrop=false ! mfw_v4lsink


MFW_GST_V4LSINK_PLUGIN 3.0.5 build on Mar 26 2013 11:49:26.

Setting pipeline to PAUSED ...

[INFO]  Product Info: i.MX6Q/D/S

vpudec versions

        plugin: 3.0.5

        wrapper: 1.0.28(VPUWRAPPER_ARM_LINUX Build on Mar 26 2013 11:48:15)

        vpulib: 5.4.10


Pipeline is PREROLLING ...

Aiur: 3.0.5

Core: BLN_MAD-MMLAYER_MPG2PARSER_04.04.04  build on Dec 11 2012 13:39:16

  mime: video/mpeg, mpegversion=(int)[1,2]; video/mpegts, systemstream=true; video/x-cdxa

  file: /usr/lib/imx-mm/parser/

Content Info:



        Idx File:


        Seekable  : Yes

        Size(byte): 21366012



Mpeg2CreateParser:parser created successfully

Movie Info:

        Seekable  : Yes

        Live      : No

        Duration  : 0:00:30.800000000

        ReadMode  : File

        programs    : 1

        Track     : 1



Track 00 [video_001031] Enabled

        ppid: 1, ppid 49

        Duration: 0:00:30.800000000



              video/x-h264, parsed=(boolean)true, width=(int)1920, height=(int)1088, framerate

              =(fraction)30/1, codec_data=(buffer)000001674d00299a6280f0044fcb80b5010101400000




** (gst-launch-0.10:3380): CRITICAL **: gst_vpudec_chain: assertion `vpudec->context.handle' failed

Pipeline is PREROLLED ...

Setting pipeline to PLAYING ...

New clock: GstSystemClock

Got EOS from element "pipeline0".

Execution ended after 446333 ns.

Setting pipeline to PAUSED ...

Running time 0:00:00.001071000 render fps 0.000

Setting pipeline to READY ...

Setting pipeline to NULL ...

Total rendered:0

Freeing pipeline ...

[--->FINALIZE v4l_sink

[--->FINALIZE aiurdemux


Can someone verify if the decoder with the i.MX6Q able to decode these low-latency streams?  Or is the above definitive conclusion that it cannot do it?


PS: Attached is the low latency TS file which I'm attempting to play back.

PPS: Using a Sabre SDB Development Board with Linux.


Best Regards,


Original Attachment has been moved to: