AnsweredAssumed Answered

Gstreamer aiurdemux parser takes long time with TS RTP Streams

Question asked by Otto Blom on May 19, 2014
Latest reply on Sep 24, 2014 by Glen Fine
Branched to a new discussion

Hi There,


We are using the following pipeline to play (live) TS RTP Streams


gst-launch udpsrc port=5000 caps="application/x-rtp, media=video, clock-rate=90000, encoding-name=MP2T-ES, payload=33" ! .recv_rtp_sink_0 gstrtpbin latency=10 ! rtpmp2tdepay ! aiurdemux ! vpudec low-latency=true ! mfw_v4lsink


It plays fine, however it takes over 10 seconds before the playback begins. Latency is low, so we are not looking at the system buffering 10 seconds worth of data and then starting the playback. See log below




MFW_GST_V4LSINK_PLUGIN 3.0.11 build on May 12 2014 16:13:01.

Setting pipeline to PAUSED ...

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

vpudec versions

    plugin: 3.0.11

    wrapper: 1.0.46(VPUWRAPPER_ARM_LINUX Build on May 19 2014 10:13:37)

    vpulib: 5.4.23


Pipeline is live and does not need PREROLL ...

Setting pipeline to PLAYING ...

New clock: GstSystemClock

Aiur: 3.0.11

Core: BLN_MAD-MMLAYER_MPG2PARSER_04.04.19  build on Jan 20 2014 02:03:56

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

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

Content Info:

    Seekable  : No

    Size(byte): -1


<--- 10 Second delay here


Mpeg2CreateParser:parser created successfully

Movie Info:

    Seekable  : No

    Live      : Yes

    Duration  : 0:00:00.000000000

    ReadMode  : File

    programs    : 1

    Track     : 2


Track 00 [audio_001034] Enabled

    ppid: 1, ppid 52

    Duration: 0:00:00.000000000

    Language: und


          audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)48000, bitrate=(int)7

          1625, framed=(boolean)true

Track 01 [video_001031] Enabled

    ppid: 1, ppid 49

    Duration: 0:00:00.000000000

    Language: und



I’ve narrowed the delay down to this function call in aiurdemux.c


CORE_API (inf, createParser, goto fail, core_ret,

(bool) (demux->, file_cbks, mem_cbks, buf_cbks,

(void *) demux, &handle);


However, it is my understanding that the parser is provided as a binary library which means its not very practical for me to troubleshoot further. I've tried the 4.1.0 LTIB BSP & the 1.0.0 Yocto with the same results.


Any ideas on how to solve this problem ?


Thanks in advance,