RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
For HLS, AAMP uses software demux which is a part of AAMP code by default. If codec info is not in the manifest, AAMP does not demux the TS fragments, which causes h/w demux gstreamer element of the platform to be used by playbin to demux the TS fragments. In summary, AAMP outputs elementary streams on using s/w demux, else output mpeg TS buffers which results in hardware demux to be used.
...
AAMP manages the pipeline. For audio and video there are separate playbins. AAMP provides audio/video elementary stream to the playbins using appsrc. Playbin connects platform decoder and sink elements using the capability of the appsrc src pads.
...
AAMP manages the pipeline. AAMP provides TS to the playbins using appsrc. Playbin connects platform ts-demux, decoder and sink elements.
...
AAMP manages the pipeline. For audio and video there are separate playbins. AAMP provides audio/video fragmented mp4 buffers to the playbins using appsrc. Playbin connects qtdemux, platform decoder and sink elements using the capability of the src pads.
...
For DASH streams, AAMP downloads and injects ISO-BMFF fragments to gstreamer pipeline. Demuxing is done by opensource qtdemux gstreamer plugin. To achieve PTS re-stamping to achieve desired rate/ continuity across period boundaries, AAMP has added custom patches to qtdemux gstreamer plugin. These patches support custom events from AAMP.
...
.
...
https://gerrit.teamccp.com/plugins/gitiles/rdk/yocto_oe/layers/meta-rdk-ext/+/refs/heads/stable2/recipes-multimedia/gstreamer/files/
This patch adds support for PTS restamping of outgoing buffers from qtdemux based on a custom event aamp_override. App can override the base PTS which is to be used as base for restamping using property "basePTS". If it is not proved, PTS of first fragment will be used as base PTS.
...
On period transition during trickmode, PTS of the new fragment changes. To ensure smooth trickplay experience, PTS restamping should be continuous. This patch ensures this using aamp-tm-disc event. Fragments after this event has PTS very different from previous fragments. So base PTS has to be recalculated to have continuous trick play experience at this point. PTS offset is calculated by adding last restamped PTS prior to the event and expected delay between Iframes. Base PTS is reset. PTS offset is added to the recalculated PTS on next fragments.
...
If content is encrypted with Widevine or Playready DRM, aamp decryptor elements )aampplayreadydecryptor or aampwidevinedecryptor) are automatically plugged in after qtdemux by playbin. These elements decrypt samples using opencdm interface.
...
Here Webkit manages the pipeline. aampsrc is a dummy gstreamer source just to handle aamp:// protocol. aamp element fetches manifets/playlists and fragments, demuxes TS fragment in case of HLS, injects buffers to the downstream element using srcpads. RDK WPE uses Westeros sink gstreamer element as video sink.
...
Element | Property | Description |
---|---|---|
brcmvideosink | rectangle | Set video output rectangle |
brcmvideosink | zoom-mode | Set video zoom |
brcmvideosink | show-video-window | Hide/Show video window |
brcmvideosink | enable-reject-preroll | Not used anymore |
brcmaudiodecoder | limit_buffering | Limit buffering to avoid audio drops during VG on/off |
brcmaudiodecoder | limit_buffering_ms | Buffering duration in milliseconds. Used along with limit_buffering property. |
brcmaudiosink | mute | mute/unmute audio |
brcmaudiosink | volume | Set audio volume |
brcmvideodecoder | video-pts | PTS of last decoded stream. Used to identify EOS/ stall detection |
brcmvideodecoder | buffered_bytes | Get buffered bytes from decoder. Used for buffering logic |
brcmvideodecoder | queued_frames | Get number of queued frames from decoder. Used for buffering logic |
brcmvideodecoder | videodecoder | Get videodecoder handle to be used by CC module |
Element | Property | Description |
---|---|---|
ismdgstaudiosink | sync | Ensure audio/video synchronisation with playbin playback. |
ismdgstaudiosink | input-gain | mute/unmute audio |
ismdgstvidsink | stop-keep-frame | Hide/ continue to show last frame after stop. |
ismdgstvidsink | rectangle | Set the video output rectangle |
ismdgstvidsink | scale-mode | Set the video zoom |
ismdgstvidsink | crop-lines | Disable cropping. Cropping enabled results in glitches during ABR transitions. |
ismdgstvidsink | mute | Hide/Show video window |
ismdgstvidsink | reuse-vidrend | Reuse video renderer to avoid glitches during seek. |
ismdgsth264viddec | decode-handle | Get videodecoder handle to be used by CC module |
ismdgstaudiosink | volume | Set audio volume |