AAMP Configuration Options

Created on June 21, 2022
  • Configuration Options as currently supported, detailed in AAMP README.txt 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

General Configuration Options

name

default

usage

semantics

infooffinfoEnable info-class logging. This includes logging of all fragments downloaded.
gstoffgetEnable lower-level g-streamer logging including pipeline dumps.
progressoffprogressEnable periodic logging of play position while streaming.
traceofftraceEnable noisy trace-level logging. This includes dumps of manifests.
curloffcurlEnable verbose curl logging.
debugoffdebugEnable “debug” class logging – unused?
abronabrDisable ABR (profile switching). This is useful for isolating problems with specific profiles.
default-bitrate2500000default-bitrate=<#>Specify initial bitrate while tuning, or target bitrate while abr disabled
default-bitrate-4k13000000default-bitrate-4k=<#>Specify initial bitrate while tuning 4K contents, or target bitrate while abr disabled for 4K contents
throttle1throttle=0Software demuxer behavior (used with HLS ts).
flush1flush=0Allows pipeline to be preserved during channel changes.
demux-hls-audio-track1demux-hls-audio-track=0Set to zero to use hardware demuxer.
demux-hls-video-track1demux-hls-video-track=0Set to zero to use hardware demuxer.
demux-hls-video-track-tm1demux-hls-video-track-tm=0Set to zero to use hardware demuxer.
live-tune-event0

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-event0vod-tune-event=<#>

0: send streamplaying when playlist acquired (default)

1: send streamplaying when first fragment 

2: send streamplaying when first frame visible

appSrcForProgressivePlaybackoffappSrcForProgressivePlaybackEnables appsrc for playing progressive AV type
decoderunavailablestrictoffdecoderunavailablestrictReports decoder unavailable GST Warning as aamp error
demuxed-audio-before-video0demuxed-audio-before-video=1send audio es before video in case of s/w demux
forceEC30forceEC3=1inserts “-eac3” before .m3u8 in main manifest url. Useful to test Dolby track.
disableEC30disableEC3=1

removes “-eac3” before .m3u8 in main manifest url. Useful to disable Dolby track

makes AAC preferred over ATMOS and DD+

disableATMOS0disableATMOS=1playback makes DD+ or AAC preferred over ATMOS (EC+3)
live-offset15live-offset=<#>live offset time in seconds, aamp starts live playback this much time before the live point
cdvrlive-offset30cdvrlive-offset=<#>live offset time in seconds for cdvr, aamp starts live playback this much time before the live point
disablePlaylistIndexEvent1disablePlaylistIndexEvent=0enable generation of playlist indexed event by AAMP on tune/trickplay/seek
enableSubscribedTags1enableSubscribedTags=0specifies if subscribedTags[] and timeMetadata events are enabled during HLS parsing
map-mpd0map-mpd=1

<domain / host to map> Remap HLS playback url to DASH url for matching domain/host string (.m3u8 to .mpd)

dash-ignore-base-url-if-slashoffdash-ignore-base-url-if-slashdisables dash BaseUrl value if it is / . Sample – http://assets.player.xcal.tv/super8sapcc/index.mpd
fog-dash1fog-dash=0Optional “de-fogging” for DASH locators
min-vod-cache0min-vod-cache=<#>VOD duration to be cached before playing in seconds
networkTimeout10networkTimeout=<#>Specify download time out in seconds
manifestTimeout10manifestTimeout=<#>Specify manifest download time out in seconds
license-anonymous-requestofflicense-anonymous-requestMakes PlayReady/WideVine license requests without access token
abr-cache-life5abr-cache-life=<#>lifetime value for abr cache  for network bandwidth calculation
abr-cache-length3abr-cache-length=<#>length of abr cache for network bandwidth calculation
abr-cache-outlier5mbabr-cache-outlier=<#>Outlier difference which will be ignored from network bandwidth calculation
abr-nw-consistency2abr-nw-consistency=<#>Number of checks before profile incr/decr by 1.This is to avoid frequenct profile switching with network change
abr-skip-duration6sabr-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-interval5buffer-health-monitor-interval=<#>Override for buffer health monitor interval
hls-av-sync-use-start-timeoffhls-av-sync-use-start-time=1Use EXT-X-PROGRAM-DATE to synchronize audio and video playlists
playlists-parallel-fetchoffplaylists-parallel-fetch=1Fetch audio and video playlists in parallel. Disabled in default configuration
pre-fetch-iframe-playlistoffpre-fetch-iframe-playlist=1Disable iframe playlist pre-fetch for VOD
license-server-urln/alicense-server-url=<serverUrl>URL to be used for license requests for encrypted(PR/WV) assets
ck-license-server-urln/ack-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-fps4vod-trickplay-fps=<#>Specify the framerate for VOD trickplay
linear-trickplay-fps8linear-trickplay-fps=<#>Specify the framerate for Linear trickplay
http-proxyoffhttp-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-handling1mpd-discontinuity-handling=0Disable discontinuity handling during MPD period transition
mpd-discontinuity-handling-cdvr1mpd-discontinuity-handling-cdvr=0Disable discontinuity handling during MPD period transition for cDvr
force-http0force-http=1Allow forcing of HTTP protocol for HTTPS URLs
internal-retune1internal-retune=0Disable internal reTune logic on underflows/ pts errors
re-tune-on-buffering-timeout1re-tune-on-buffering-timeout=0Disable internal re-tune on buffering time-out
gst-buffering-before-play1gst-buffering-before-play=0Disable pre buffering logic which ensures minimum buffering is done before pipeline play
audioLatencyLoggingoffaudioLatencyLoggingEnable Latency logging for Audio fragment downloads
videoLatencyLoggingoffvideoLatencyLoggingEnable Latency logging for Video fragment downloads
iframeLatencyLoggingoffiframeLatencyLoggingEnable Latency logging for Video fragment downloads
iframeLatencyLoggingoffiframeLatencyLoggingEnable Latency logging for Iframe fragment downloads
pts-error-threshold4pts-error-threshold=<#>aamp maximum number of back-to-back pts errors to be considered for triggering a retune
fragment-cache-length3fragment-cache-length=<#>aamp fragment cache length
iframe-default-bitrate0iframe-default-bitrate=<#>specify bitrate threshold for selection of iframe track in non-4K assets (less than or equal to X)
iframe-default-bitrate-4k0iframe-default-bitrate-4k=<#>specify bitrate threshold for selection of iframe track in 4K assets (less than or equal to X)
curl-stall-timeout0curl-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-timeout0curl-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-protection0playready-output-protection=1enable HDCP output protection for DASH-PlayReady playback
max-playlist-cache3MBmax-playlist-cache=<#>Max Size of Cache to store the VOD Manifest/playlist
wait-time-before-retry-http-5xx-ms1swait-time-before-retry-http-5xx-ms=<#>wait time before retry for 5xx http errors
sslverifypeeroffsslverifypeer=1Enable TLS certificate verification
subtitle-languageensubtitle-language=<#>ISO 639-1 code of preferred subtitle language
enable_videoend_event1enable_videoend_event=0Disable Video End event generation
dash-max-drm-sessions2dash-max-drm-sessions=<#>Max drm sessions that can be cached by AampDRMSessionManager. Expected value range is 2 to 30
enable_setvideorectangleoffenable_setvideorectangleEnable AAMP to set rectangle property to sink
discontinuity-timeout3000discontinuity-timeout=<#>

Value in MS after which AAMP will try recovery for discontinuity stall after detecting empty buffer

0 disables feature

aamp-abr-threshold-size25000aamp-abr-threshold-size=<#>Specify min fragment size threshold for ABR estimation contribution
harvestpathoffharvestpath=<#>Specify the path where fragments should be harvested,check folder permissions specifying the path
descriptiveaudiotrackoffdescriptiveaudiotrackif present, audio tracks will be advertised and selected using syntax <langcode>-<role> instead of just <langcode>
langcodepref0langcodepref=<#>

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”)

reportbufferevent1reportbufferevent=0Optionally disable reporting buffer event for buffer underflow
enable-tune-profiling0enable-tune-profiling=1Enable “MicroEvent” tune profiling using – both in splunk (for receiver-integrated aamp) and via console logging.

Channel Override Feature

Remote Feature Control (RFC) List

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.

Tr181 Parameter List

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

Westerossink Notes

  • 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


Go To Top