You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

I-frame trick play support

AAMP supports fast forward/ rewind at multiple rates if asset has an I-frame track. Target frame rate is determined by configuration variables vodTrickplayFPS (VOD - defaults to 4fps) and linearTrickplayFPS ( linear IPTV channels - defaults to 8fps).

Video decoder decodes and presents the I-frames at normal speed. Desired rate is achieved by PTS re-stamping of elementary stream buffers before sending to the decoder, skipping more iframes at higher speeds.

If multiple iframe tracks are available, AAMP will only use one.  This is configurable.  By default, AAMP picks 2nd lowest iframe track as compromise between maintaining desired framerate while doing ff/rew and providing "good enough" quality.


HLS (MPEG-TS fragments)

MPEG-TS fragments are demuxed by AAMP before injected into the gstreamer pipeline. So PTS re-stamping of elementary stream is done in AAMP itself.

DASH (ISO-BMFF fragments)

For DASH streams, AAMP downloads and injects fragments to gstreamer pipeline. Demuxing is done by opensource qtdemux gstreamer plugin. To achieve PTS re-stamping to achieve desired rate, AAMP has added custom patches to qtdemux gstreamer plugin. These patches support custom events from AAMP. After receiving aamp_override event, qtdemux re-stamps PTS of ES packets based on the rate received from the event and using first buffer's PTS as base PTS. In case of a period transition, aamp-tm-disc event is sent by AAMP. On receiving this event, qtdemux re-calculate the PTS to be re-stamped based on last PTS used and FPS value received from the event to ensure smooth playback of period boundaries.

  • No labels