RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Configuration Options as currently supported, detailed in AAMP README.txt file file.
Configuration can be manually defined via presence of /opt/aamp.cfg (for VBN builds), or applied remotely (to any build, including PROD) via Remote Feature Control (RFC).
/opt/aamp.cfg is optional file that supports changes to default logging/behavior and channel remappings to alternate content
name | default | usage | semantics |
---|---|---|---|
info | off | info | Enable info-class logging. This includes logging of all fragments downloaded. |
gst | off | get | Enable lower-level g-streamer logging including pipeline dumps. |
progress | off | progress | Enable periodic logging of play position while streaming. |
trace | off | trace | Enable noisy trace-level logging. This includes dumps of manifests. |
curl | off | curl | Enable verbose curl logging. |
debug | off | debug | Enable "debug" class logging - unused? |
abr | on | abr | Disable ABR (profile switching). This is useful for isolating problems with specific profiles. |
default-bitrate | 2500000 | default-bitrate=<#> | Specify initial bitrate while tuning, or target bitrate while abr disabled |
default-bitrate-4k | 13000000 | default-bitrate-4k=<#> | Specify initial bitrate while tuning 4K contents, or target bitrate while abr disabled for 4K contents |
throttle | 1 | throttle=0 | Software demuxer behavior (used with HLS ts). |
flush | 1 | flush=0 | Allows pipeline to be preserved during channel changes. |
demux-hls-audio-track | 1 | demux-hls-audio-track=0 | Set to zero to use hardware demuxer. |
demux-hls-video-track | 1 | demux-hls-video-track=0 | Set to zero to use hardware demuxer. |
demux-hls-video-track-tm | 1 | demux-hls-video-track-tm=0 | Set to zero to use hardware demuxer. |
live-tune-event | 0 | live-tune-event=<#> | 0: send streamplaying when playlist acquired (default) 1: send streamplaying when first fragment decrypted 2: send streamplaying when first frame visible |
vod-tune-event | 0 | vod-tune-event=<#> | 0: send streamplaying when playlist acquired (default) 1: send streamplaying when first fragment 2: send streamplaying when first frame visible |
appSrcForProgressivePlayback | off | appSrcForProgressivePlayback | Enables appsrc for playing progressive AV type |
decoderunavailablestrict | off | decoderunavailablestrict | Reports decoder unavailable GST Warning as aamp error |
demuxed-audio-before-video | 0 | demuxed-audio-before-video=1 | send audio es before video in case of s/w demux |
forceEC3 | 0 | forceEC3=1 | inserts "-eac3" before .m3u8 in main manifest url. Useful to test Dolby track. |
disableEC3 | 0 | disableEC3=1 | removes "-eac3" before .m3u8 in main manifest url. Useful to disable Dolby track makes AAC preferred over ATMOS and DD+ |
disableATMOS | 0 | disableATMOS=1 | playback makes DD+ or AAC preferred over ATMOS (EC+3) |
live-offset | 15 | live-offset=<#> | live offset time in seconds, aamp starts live playback this much time before the live point |
cdvrlive-offset | 30 | cdvrlive-offset=<#> | live offset time in seconds for cdvr, aamp starts live playback this much time before the live point |
disablePlaylistIndexEvent | 1 | disablePlaylistIndexEvent=0 | enable generation of playlist indexed event by AAMP on tune/trickplay/seek |
enableSubscribedTags | 1 | enableSubscribedTags=0 | specifies if subscribedTags[] and timeMetadata events are enabled during HLS parsing |
map-mpd | 0 | map-mpd=1 | remap production linear/vod content to corresponding dash lanes 1 //Just m3u8 to mpd substitution, base URL remains same 2 //Old style COAM re-mapping 3 //Replace all national channels' hostnames with `ctv-nat-slivel4lb-vip.cmc.co.ndcwest.comcast.net` |
dash-ignore-base-url-if-slash | off | dash-ignore-base-url-if-slash | disables dash BaseUrl value if it is / . Sample - http://assets.player.xcal.tv/super8sapcc/index.mpd |
fog-dash | 1 | fog-dash=0 | Optional "de-fogging" for DASH locators |
min-vod-cache | 0 | min-vod-cache=<#> | VOD duration to be cached before playing in seconds |
networkTimeout | 10 | networkTimeout=<#> | Specify download time out in seconds |
manifestTimeout | 10 | manifestTimeout=<#> | Specify manifest download time out in seconds |
license-anonymous-request | off | license-anonymous-request | Makes PlayReady/WideVine license requests without access token |
abr-cache-life | 5 | abr-cache-life=<#> | lifetime value for abr cache for network bandwidth calculation |
abr-cache-length | 3 | abr-cache-length=<#> | length of abr cache for network bandwidth calculation |
abr-cache-outlier | 5mb | abr-cache-outlier=<#> | Outlier difference which will be ignored from network bandwidth calculation |
abr-nw-consistency | 2 | abr-nw-consistency=<#> | Number of checks before profile incr/decr by 1.This is to avoid frequenct profile switching with network change |
abr-skip-duration | 6s | abr-skip-duration=<#> | minimum duration of fragment to be downloaded before triggering abr |
buffer-health-monitor-delay | 10 | buffer-health-monitor-delay=<#> | Override for buffer health monitor start delay after tune/ seek |
buffer-health-monitor-interval | 5 | buffer-health-monitor-interval=<#> | Override for buffer health monitor interval |
hls-av-sync-use-start-time | off | hls-av-sync-use-start-time=1 | Use EXT-X-PROGRAM-DATE to synchronize audio and video playlists |
playlists-parallel-fetch | off | playlists-parallel-fetch=1 | Fetch audio and video playlists in parallel. Disabled in default configuration |
pre-fetch-iframe-playlist | off | pre-fetch-iframe-playlist=1 | Disable iframe playlist pre-fetch for VOD |
license-server-url | n/a | license-server-url=<serverUrl> | URL to be used for license requests for encrypted(PR/WV) assets |
ck-license-server-url | n/a | ck-license-server-url=<serverUrl> | URL to be used for Clear Key license requests |
license-retry-wait-time | 500 | license-retry-wait-time=<#> | Wait time (ms) before retrying again for DRM license, having value <=0 would disable retry |
vod-trickplay-fps | 4 | vod-trickplay-fps=<#> | Specify the framerate for VOD trickplay |
linear-trickplay-fps | 8 | linear-trickplay-fps=<#> | Specify the framerate for Linear trickplay |
http-proxy | off | http-proxy=<scheme> | <SCHEME>://<HTTP PROXY IP:HTTP PROXY PORT> Specify the HTTP Proxy with schemes such as http, sock, https <USERNAME:PASSWORD>@<HTTP PROXY IP:HTTP PROXY PORT> Specify the HTTP Proxy with Proxy Authentication Credentials. Make sure to encode special characters if present in username or password (URL Encoding) |
mpd-discontinuity-handling | 1 | mpd-discontinuity-handling=0 | Disable discontinuity handling during MPD period transition |
mpd-discontinuity-handling-cdvr | 1 | mpd-discontinuity-handling-cdvr=0 | Disable discontinuity handling during MPD period transition for cDvr |
force-http | 0 | force-http=1 | Allow forcing of HTTP protocol for HTTPS URLs |
internal-retune | 1 | internal-retune=0 | Disable internal reTune logic on underflows/ pts errors |
re-tune-on-buffering-timeout | 1 | re-tune-on-buffering-timeout=0 | Disable internal re-tune on buffering time-out |
gst-buffering-before-play | 1 | gst-buffering-before-play=0 | Disable pre buffering logic which ensures minimum buffering is done before pipeline play |
audioLatencyLogging | off | audioLatencyLogging | Enable Latency logging for Audio fragment downloads |
videoLatencyLogging | off | videoLatencyLogging | Enable Latency logging for Video fragment downloads |
iframeLatencyLogging | off | iframeLatencyLogging | Enable Latency logging for Video fragment downloads |
iframeLatencyLogging | off | iframeLatencyLogging | Enable Latency logging for Iframe fragment downloads |
pts-error-threshold | 4 | pts-error-threshold=<#> | aamp maximum number of back-to-back pts errors to be considered for triggering a retune |
fragment-cache-length | 3 | fragment-cache-length=<#> | aamp fragment cache length |
iframe-default-bitrate | 0 | iframe-default-bitrate=<#> | specify bitrate threshold for selection of iframe track in non-4K assets (less than or equal to X) |
iframe-default-bitrate-4k | 0 | iframe-default-bitrate-4k=<#> | specify bitrate threshold for selection of iframe track in 4K assets (less than or equal to X) |
curl-stall-timeout | 0 | curl-stall-timeout=<#> | specify the value in seconds for a CURL download to be deemed as stalled after download freezes, 0 to disable |
curl-download-start-timeout | 0 | curl-download-start-timeout=<#> | specify the value in seconds for after which a CURL download is aborted if no data is received after connect, 0 to disable |
playready-output-protection | 0 | playready-output-protection=1 | enable HDCP output protection for DASH-PlayReady playback |
max-playlist-cache | 3MB | max-playlist-cache=<#> | Max Size of Cache to store the VOD Manifest/playlist |
wait-time-before-retry-http-5xx-ms | 1s | wait-time-before-retry-http-5xx-ms=<#> | wait time before retry for 5xx http errors |
sslverifypeer | off | sslverifypeer=1 | Enable TLS certificate verification |
subtitle-language | en | subtitle-language=<#> | ISO 639-1 code of preferred subtitle language |
enable_videoend_event | 1 | enable_videoend_event=0 | Disable Video End event generation |
dash-max-drm-sessions | 2 | dash-max-drm-sessions=<#> | Max drm sessions that can be cached by AampDRMSessionManager. Expected value range is 2 to 30 |
enable_setvideorectangle | off | enable_setvideorectangle | Enable AAMP to set rectangle property to sink |
discontinuity-timeout | 3000 | discontinuity-timeout=<#> | Value in MS after which AAMP will try recovery for discontinuity stall after detecting empty buffer 0 disables feature |
aamp-abr-threshold-size | 25000 | aamp-abr-threshold-size=<#> | Specify min fragment size threshold for ABR estimation contribution |
harvestpath | off | harvestpath=<#> | Specify the path where fragments should be harvested,check folder permissions specifying the path |
descriptiveaudiotrack | off | descriptiveaudiotrack | if present, audio tracks will be advertised and selected using syntax <langcode>-<role> instead of just <langcode> |
langcodepref | 0 | langcodepref=<#> | 0: NO_LANGCODE_PREFERENCE (pass through language codes from manifest - default) 1: ISO639_PREFER_3_CHAR_BIBLIOGRAPHIC_LANGCODE language codes normalized to 3-character iso639-2 bibliographic encoding(i.e. "ger") 2: ISO639_PREFER_3_CHAR_TERMINOLOGY_LANGCODE langguage codes normalized to 3-character iso639-2 terminology encoding (i.e. "deu") 3: ISO639_PREFER_2_CHAR_LANGCODE language codes normalized to 2-character iso639-1 encoding (i.e. "de") |
reportbufferevent | 1 | reportbufferevent=0 | Optionally disable reporting buffer event for buffer underflow |
enable-tune-profiling | 0 | enable-tune-profiling=1 | Enable "MicroEvent" tune profiling using - both in splunk (for receiver-integrated aamp) and via console logging. |
Example adding the following in aamp.cfg will make tune to the given url (Spring_4Ktest) on tuning to url with USAHD in it
This can be done for n number of channels.
*USAHD https://dash.akamaized.net/akamai/streamroot/050714/Spring_4Ktest.mpd
*FXHD http://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-playready.ism/.mpd
Name | Description |
---|---|
TUNE_MICRO_EVENTS | Generate "MicroEvents" profiling for initiated tunes |
AAMP_WESTEROS_SINK | Enable use of Westerossink |
DISABLE_NONCOMPOSITED_WEBGL_FOR_IPVIDEO | Combine with AAMP_WESTEROS_SINK as workaround in RDK3.14 to allow easter-egg triggered diagnostics feature to again work. |
Name | Description |
---|---|
tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AAMP_CFG.DashPlaybackExclusions | For enabling dash using URL conversion by JSP : Value = VOD:LINEAR_TV:CDVR:IVOD |
tr181.Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AAMP_CFG.b64Config | For bulk setting one or more aamp config parameters : Value = Base64 encoded aamp.cfg file content |
Currently, use of Westeros is default-disabled, and can be enabled via RFC as described above. Alternately, to apply, Developers can add below
flag in SetEnv.sh under /opt, then restart the receiver process:
export AAMP_ENABLE_WESTEROS_SINK=true
Note: Above is now used as a common FLAG by AAMP and Receiver module to configure Westeros direct rendering
instead of going through browser rendering. This allows for smoother video zoom animations
However, note that with this optimization applied, the AAMP Diagnostics overlays cannot be made visible.
As a temporary workaround, the following flag can be used by developers which will make diagnostic overlay
again visible at expense of zoom smoothness:
export DISABLE_NONCOMPOSITED_WEBGL_FOR_IPVIDEO=1