
{"id":10122,"date":"2022-06-21T09:10:49","date_gmt":"2022-06-21T09:10:49","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/documentation\/rdk_video_documentation\/components\/open-sourced_components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/"},"modified":"2025-03-25T05:18:35","modified_gmt":"2025-03-25T05:18:35","slug":"aamp_uve_-_api","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/","title":{"rendered":"AAMP UVE &#8211; API"},"content":{"rendered":"\n <div class=\"contentLayout2\">\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"toc-macro client-side-toc-macro  conf-macro output-block\" data-headerelements=\"H1,H2\" data-hasbody=\"false\" data-macro-name=\"toc\"> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h2 class=\"wp-main-header wp-block-heading\">Unified Video Engine (UVE) APIs<\/h2><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Overview<\/h3><hr><\/div><br><p>AAMP is an open source native video engine that is built on top of GStreamer and optimized for performance, memory use, and&nbsp;<br>code size. AAMP Reference Player demonstrates how to use the Unified Video Engine (UVE) JavaScript binding APIs to&nbsp;<br>interact with an AAMP player.&nbsp;<br>The bindings are made available in JavaScript with the help of the injectedbundle component once the DOM elements are&nbsp;<br>loaded by WebKit.<\/p><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Target Audience<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>This document is targeted towards OTT app vendors and HTML5 developers who are interested in evaluating\/adopting AAMP for&nbsp;<br>their media player applications on set-tops running RDKV based firmware.&nbsp;<\/p><h3 id=\"AAMPUVEAPI-Features\">Features&nbsp;<\/h3><ul><li>Formats: HLS, DASH, Fragmented MP4 HLS&nbsp;<\/li><li>DRM Systems: Clear Key, Adobe Access, Vanilla AES-128, PlayReady, Widevine&nbsp;<\/li><li>Captions: CEA-608\/708 Captions , WebVTT&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Roadmap<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Video Guard (VGC) DRM&nbsp;<\/li><li>DVB, EBU-TT captions<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Release Version<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 13.7536%\"><col style=\"width: 14.7763%\"><col style=\"width: 71.4986%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">S.No.<\/th><th class=\"confluenceTh\">Release Version<\/th><th class=\"confluenceTh\">Release Notes&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">1<\/td><td class=\"confluenceTd\">0.7&nbsp;<\/td><td class=\"confluenceTd\">Initial draft of UVE APIs implemented&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">2<\/td><td class=\"confluenceTd\">0.8&nbsp;<\/td><td class=\"confluenceTd\">CDAI support, configuration options for tune optimization&nbsp;<br>API:&nbsp;<br><ul><li>setAlternateContent&nbsp;<\/li><li>notifyReservationCompletion&nbsp;<\/li><li>addCustomHTTPHeader&nbsp;<\/li><\/ul><p><br><\/p><p>Configuration:&nbsp;<\/p><ul><li>stereoOnly&nbsp;<\/li><li>bulkTimedMetadata&nbsp;<\/li><li>useWesterosSink&nbsp;<\/li><li>parallelPlaylistDownload&nbsp;<\/li><\/ul><p><br><\/p><p>Events:&nbsp;<\/p><ul><li>bufferingChanged&nbsp;<\/li><li>timedMetadata&nbsp;<\/li><li>adResolved&nbsp;<\/li><li>reservationStart&nbsp;<\/li><li>reservationEnd&nbsp;<\/li><li>placementStart&nbsp;<\/li><li>placementEnd&nbsp;<\/li><li>placementProgress&nbsp;<\/li><li>placementError<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">3<\/td><td class=\"confluenceTd\">0.9&nbsp;<\/td><td class=\"confluenceTd\">&ldquo;Player Switching&rdquo; Feature<br><ul><li>load (autoplay=false support)&nbsp;<\/li><li>detach() method<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">4<\/td><td class=\"confluenceTd\">1.0<\/td><td class=\"confluenceTd\"><p>Added support to get available audio track and closed captioning info<\/p><p>API:&nbsp;<\/p><ul><li>getAvailableAudioTracks<\/li><li>&nbsp;getAvailableTextTracks&nbsp;<\/li><\/ul><p><br>Configuration:&nbsp;<\/p><ul><li>playlistTimeout<\/li><li>parallelPlaylistRefresh<\/li><li>useAverageBandwidth<\/li><li>preCachePlaylistTime<\/li><li>progressReportingInterval<\/li><li>useRetuneForUnpairedDiscontinuity<\/li><li>drmDecryptFailThreshold&nbsp;<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">5<\/td><td class=\"confluenceTd\">2.4&nbsp;<\/td><td class=\"confluenceTd\"><p>April 2020 Release Update&nbsp;<\/p><p>Configuration:<\/p><ul><li>initialBuffer<\/li><li>useMatchingBaseUrl<\/li><li>initFragmentRetryCount<\/li><\/ul><p>Event Notification&nbsp;<\/p><\/td><\/tr><tr><td class=\"confluenceTd\">6<\/td><td class=\"confluenceTd\">2.6&nbsp;<\/td><td class=\"confluenceTd\"><p>June 2020 Release Update&nbsp;<br>Seek while paused, get\/set audio and text track supported&nbsp;<\/p><p>API:<\/p><ul><li>getAudioTrack<\/li><li>setAudioTrack<\/li><li>getTextTrack<\/li><li>setTextTrack<\/li><li>setClosedCaptionStatus<\/li><li>setTextStyleOptions<\/li><li>getTextStyleOptions&nbsp;<\/li><\/ul><p>Configuration:<\/p><ul><li>nativeCCRendering<\/li><li>langCodePreferenc<\/li><li>descriptiveTrackName&nbsp;&nbsp;<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">7<\/td><td class=\"confluenceTd\">2.7&nbsp;<\/td><td class=\"confluenceTd\"><p>Aug 2020 Release Update&nbsp;<\/p><p>Configuration:<\/p><ul><li>Deprecated useWesterosSink&nbsp;<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">8<\/td><td class=\"confluenceTd\">2.9&nbsp;<\/td><td class=\"confluenceTd\"><p>Sept 2020 Release Update&nbsp;<\/p><p>Configuration:<\/p><ul><li>authToken<\/li><li>useRetuneForGstInternalError<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">9<\/td><td class=\"confluenceTd\">3<\/td><td class=\"confluenceTd\"><p>Oct 2020 Release update.&nbsp;<\/p><ul><li>Updated getAvailableAudioTracks \/ getAvailableTextTracks&nbsp;<\/li><\/ul><p>API:&nbsp;<\/p><ul><li>setAudioLanguage&nbsp;<\/li><\/ul><p>Configuration:&nbsp;<\/p><ul><li>propagateUriParameters&nbsp;<br>reportVideoPTS<\/li><\/ul><p><span>ATSC &ndash; UVE Features Added .&nbsp;&nbsp;<\/span><\/p><\/td><\/tr><tr><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">3.1<\/td><td class=\"confluenceTd\"><p>Jan 2021 Release update.&nbsp;<br>ATSC New APIs \/ Events<\/p><p>API:&nbsp;<\/p><ul><li>getAvailableThumbnailTracks<\/li><li>setThumbnailTrack<\/li><li>getThumbnail&nbsp;<\/li><\/ul><p>Configuration:&nbsp;<\/p><ul><li>sslVerifyPeer<\/li><li>persistBitrateOverSeek<\/li><li>setLicenseCaching<\/li><li>maxPlaylistCacheSize<\/li><li>enableSeekableRange&nbsp;&nbsp;<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">11<\/td><td class=\"confluenceTd\">3.2<\/td><td class=\"confluenceTd\"><p>Mar 2021 Release update&nbsp;<br>API:&nbsp;<\/p><ul><li>setPreferredAudioLanguage<\/li><li>setAudioTrack&nbsp;<\/li><\/ul><p>Configuration:&nbsp;&nbsp;<\/p><ul><li>livePauseBehavior<\/li><li>limitResolution&nbsp;<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">12<\/td><td class=\"confluenceTd\">3.3<\/td><td class=\"confluenceTd\"><p>May 2021 Release update&nbsp;<br>Configuration:<\/p><ul><li>useAbsoluteTimeline asyncTune&nbsp;<\/li><\/ul><p>Events :&nbsp;<\/p><ul><li>Updated bitrateChanged for ATSC&nbsp;<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">13<\/td><td class=\"confluenceTd\">3.4<\/td><td class=\"confluenceTd\"><p>Events :&nbsp;&nbsp;<\/p><ul><li>audioTracksChanged<\/li><li>textTracksChanged<\/li><li>seeked<\/li><li>vttCueDataListener<\/li><li>id3Metadata<\/li><\/ul><\/td><\/tr><tr><td class=\"confluenceTd\">14<\/td><td class=\"confluenceTd\">3.5<\/td><td class=\"confluenceTd\"><p>Aug 2021 Release update&nbsp;<br>API:<\/p><ul><li>load (updated)<\/li><li>setPreferredAudioLanguage (updated)<\/li><li>getAvailableAudioTracks (updated)<\/li><li>getAvailableTextTracks (updated)<\/li><li>downloadBuffer default value(updated)&nbsp;<\/li><\/ul><p>Events :<\/p><p>&nbsp;id3Metadata<\/p><\/td><\/tr><tr><td class=\"confluenceTd\">15<\/td><td class=\"confluenceTd\">3.6&nbsp;<\/td><td class=\"confluenceTd\"><p>Sept 2021 Release update&nbsp;<\/p><p>Configuration:<\/p><ul><li>disable4K<\/li><li>sharedSSL<\/li><li>preferredAudioRendition<\/li><li>preferredAudioCodec&nbsp;&nbsp;<\/li><\/ul><p>Events:&nbsp;<\/p><ul><li>mediaMetadata (updated)&nbsp;<\/li><\/ul><\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Minimal Sample Player<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;html&gt;&lt;head&gt;&lt;title&gt;IP Video Playback in WPE browser using UVE API&lt;\/title&gt;&lt;\/head&gt;\n&lt;script&gt;\nwindow.onload = function() { \nvar player = new AAMPMediaPlayer(); \nvar url = \"https:\/\/cpetestutility.stb.r53.xcal.tv\/multilang\/main.m3u8\"; \n player.load(url); \n} \n&lt;\/script&gt;\n&lt;body&gt;\n &lt;div id=\"videoContainer\"&gt;\n &lt;video style=\"height:100%; width:100%; position:absolute; bottom:0; left:0\"&gt;\n &lt;source src=\"dummy.mp4\" type=&rdquo;video\/ave&rdquo;&gt; &lt;!-- hole punching --&gt;\n &lt;\/video&gt;\n &lt;\/div&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Folder Structure: Full Reference Player<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>-icons \/\/ UI elements of reference players and homepage&nbsp;<br>&nbsp;-UVE&nbsp;<br>&nbsp; -index.html \/\/ Homepage of UVE reference player&nbsp;<br>&nbsp; -UVEMediaPlayer.js \/\/ Includes &#8220;AAMPPlayer&#8221; JS class which wraps UVE binding object AAMPMediaPlayer&nbsp;<br>&nbsp; -UVEPlayerUI.js \/\/ JS code for the UI elements and their functionality&nbsp;<br>&nbsp; -UVERefPlayer.js \/\/ Main JS file&nbsp;<br>&nbsp; -UVERefPlayerStyle.js \/\/ JS code for reference player and its UI&nbsp;<br>&nbsp;-index.html \/\/ Homepage of reference player&nbsp;<br>&nbsp;-ReferencePlayer.js \/\/ JS code for Homepage and redirection to respective reference players&nbsp;<br>&nbsp;-URLs.js \/\/ list of selectable streams&nbsp;<br>&nbsp;-ReferencePlayerStyle.css \/\/ CSS for Homepage and its UI<\/p><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h2 class=\"wp-main-header wp-block-heading\">Universal Video Engine APIs&nbsp;&nbsp;<\/h2><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Properties<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 18.2174%\"><col style=\"width: 19.8011%\"><col style=\"width: 61.8967%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">version&nbsp;<\/td><td class=\"confluenceTd\">number<\/td><td class=\"confluenceTd\">May be used to confirm if RDKV&nbsp;<br>build in use supports a newer&nbsp;<br>feature&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP.version&nbsp;<\/td><td class=\"confluenceTd\">number<\/td><td class=\"confluenceTd\">Global variable for applications to&nbsp;<br>get UVE API version without&nbsp;<br>creating a player instance. Value&nbsp;<br>will be same as player.version.&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Methods<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-load(uri,autoplay,tuneParams)\">load( uri, autoplay, tuneParams)&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Begin streaming<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 15.6354%\"><col style=\"width: 21.1809%\"><col style=\"width: 63.2114%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">Uri<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">URI of the Media to be played by the Video Engine<\/td><\/tr><tr><td class=\"confluenceTd\">autoplay<\/td><td class=\"confluenceTd\">Boolean<\/td><td class=\"confluenceTd\">optional 2nd parameter (defaults to true)&nbsp;<br>If false, causes stream to be prerolled\/prebuffered only, but not immediately&nbsp;<br>automatically presented. Available starting with version 0.8.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">tuneParams<\/td><td class=\"confluenceTd\">Object<\/td><td class=\"confluenceTd\">optional 3rd parameter&nbsp;<br>The tuneParams Object includes four elements contentType, traceId,&nbsp;<br>isInitialAttempt and isFinalAttempt. Details provided in below table&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 14.8265%\"><col style=\"width: 21.3553%\"><col style=\"width: 63.7353%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">contentType&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Content Type of the asset taken for playback.&nbsp;<br>Eg: CDVR, VOD, LINEAR_TV, IVOD, EAS, PPV, OTT, OTA, HDMI_IN,&nbsp;<br>COMPOSITE_IN, SLE&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">traceId<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Trace ID which is unique for a tune.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">isInitialAttempt&nbsp;<\/td><td class=\"confluenceTd\">Boolean<\/td><td class=\"confluenceTd\">Flag indicates if it&rsquo;s the first tune initiated, tune is neither a retry nor a&nbsp;<br>rollback.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">isInitialAttempt&nbsp;<\/td><td class=\"confluenceTd\">Boolean&nbsp;<\/td><td class=\"confluenceTd\">Flag indicates if it&rsquo;s the first tune initiated, tune is neither a retry nor a&nbsp;<br>rollback.&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-play()\">play()&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Start playback (if stream is in prebuffered state), or resume playback at normal speed. Equivalent to&nbsp;<br>setPlaybackRate(1).&nbsp;&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-pause()\">pause()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Pauses playback. Equivalent to setPlaybackRate(0).&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-stop()\">stop()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Stop playback and free resources associated with playback.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-seek(offset)\">seek( offset )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Specify initial or new stream playback position. May be called prior to first load() call (or implicitly using&nbsp;<br>initConfig&rsquo;s &ldquo;offset&rdquo; parameter), or while streaming.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 14.146%\"><col style=\"width: 18.7129%\"><col style=\"width: 67.0576%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">offset&nbsp;<\/td><td class=\"confluenceTd\">Number (s)<\/td><td class=\"confluenceTd\">Offset from beginning of VOD asset. For live playback, offset is relative to&nbsp;<br>eldest portion of initial window. Offset value should be in seconds&nbsp;<br>Note that ability to seek is currently limited to fragment granularity.<\/td><\/tr><tr><td class=\"confluenceTd\">keepPause<\/td><td class=\"confluenceTd\">Boolean<\/td><td class=\"confluenceTd\">Flag indicates if player was in paused state before seek then maintain the&nbsp;<br>same state post seek&nbsp;<br>Available starting with version 2.6&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getCurrentPosition()\">getCurrentPosition()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li><p>Supported UVE version 0.7 and above.<\/p><\/li><li>Returns current playback position in seconds.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getCurrentState()\">getCurrentState()&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Returns one of below logical player states as number:&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 11.3066%\"><col style=\"width: 9.67618%\"><col style=\"width: 23.7013%\"><col style=\"width: 55.3442%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">State Name<\/th><th class=\"confluenceTh\">Value&nbsp;<\/th><th class=\"confluenceTh\">Semantics<\/th><th class=\"confluenceTh\">Remarks&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">idle<\/td><td class=\"confluenceTd\">0<\/td><td class=\"confluenceTd\">eSTATE_IDLE&nbsp;<\/td><td class=\"confluenceTd\">Player is idle<\/td><\/tr><tr><td class=\"confluenceTd\">initializing<\/td><td class=\"confluenceTd\">1<\/td><td class=\"confluenceTd\">eSTATE_INITIALIZING<\/td><td class=\"confluenceTd\">Player is initializaing resources to&nbsp;<br>start playback&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">2<\/td><td class=\"confluenceTd\">eSTATE_INITIALIZED<\/td><td class=\"confluenceTd\">Player is initializaing resources to&nbsp;<br>start playback&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">3<\/td><td class=\"confluenceTd\">eSTATE_PREPARING<\/td><td class=\"confluenceTd\">Create internal resources required&nbsp;<br>for DRM decryption and playback&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">4<\/td><td class=\"confluenceTd\">eSTATE_PREPARED&nbsp;<\/td><td class=\"confluenceTd\">Required resources are initialized&nbsp;<br>successfully<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">5<\/td><td class=\"confluenceTd\">eSTATE_BUFFERING<\/td><td class=\"confluenceTd\">When player does internal buffering&nbsp;<br>mid-playback. Note -send out in&nbsp;<br>initial buffering<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">6<\/td><td class=\"confluenceTd\">eSTATE_PAUSED<\/td><td class=\"confluenceTd\">Indicates player is paused&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">7<\/td><td class=\"confluenceTd\">eSTATE_SEEKING<\/td><td class=\"confluenceTd\">Indicates player is seeking<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">8<\/td><td class=\"confluenceTd\">eSTATE_PLAYING<\/td><td class=\"confluenceTd\">Indicates player is seeking<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">9<\/td><td class=\"confluenceTd\">eSTATE_STOPPING<\/td><td class=\"confluenceTd\">Not supported, for future&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">eSTATE_STOPPED<\/td><td class=\"confluenceTd\">Not supported, for future&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">11<\/td><td class=\"confluenceTd\">eSTATE_COMPLETE&nbsp;<\/td><td class=\"confluenceTd\">When the media reaches end.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">12<\/td><td class=\"confluenceTd\">eSTATE_ERROR<\/td><td class=\"confluenceTd\">In case any error occurred<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><br><\/td><td colspan=\"1\" class=\"confluenceTd\">13<\/td><td colspan=\"1\" class=\"confluenceTd\">eSTATE_RELEASED&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Not supported, for future&nbsp;&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getDurationSec()\">getDurationSec()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Returns current duration of content in seconds. Duration is fixed for VOD content, but may grow with DVR&nbsp;<br>content.&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getVolume()\">getVolume()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Get current volume (value between 0 and 100). Default audio volume is 100. Volume is normally mapped from&nbsp;<br>remote directly to TV, with video engine used to manage an independent mute\/unmute state for parental&nbsp;<br>control.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setVolume(volume)\">setVolume ( volume )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Sets the current volume (value between 0 and 100). Updated value reflected in subsequent calls to getVolume()&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.4884%\"><col style=\"width: 16.9209%\"><col style=\"width: 60.6174%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">volume<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Pass zero to mute audio.&nbsp;<br>Pass 100 for normal (max) audio volume.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setVideoMute(enabled)\">setVideoMute( enabled )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Enable or black out video for parental control purposes, default is false<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 24.4725%\"><col style=\"width: 16.3852%\"><col style=\"width: 59.1689%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">volume&nbsp;<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Pass false to black out video.&nbsp;<br>Pass true to resume presenting video.&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getPlaybackRate()\">getPlaybackRate()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Returns the current playback rate.&nbsp;&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setPlaybackRate(rate)\">setPlaybackRate( rate )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Change playback rate, supported speeds are given below &#8211;&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 17.057%\"><col style=\"width: 82.9715%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Value<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">0<\/td><td class=\"confluenceTd\">Pause<\/td><\/tr><tr><td class=\"confluenceTd\">1<\/td><td class=\"confluenceTd\">Normal Play&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">4<\/td><td class=\"confluenceTd\">2x Fast Forward (using iframe track)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">16<\/td><td class=\"confluenceTd\">4x Fast Forward (using iframe track)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">32<\/td><td class=\"confluenceTd\">8x Fast Forward (using iframe track)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">64<\/td><td class=\"confluenceTd\">16x Fast Forward (using iframe track)<\/td><\/tr><tr><td class=\"confluenceTd\">-4<\/td><td class=\"confluenceTd\">2x Rewind (using iframe track)<\/td><\/tr><tr><td class=\"confluenceTd\">-16<\/td><td class=\"confluenceTd\">4x Rewind (using iframe track)<\/td><\/tr><tr><td class=\"confluenceTd\">-32<\/td><td class=\"confluenceTd\">4x Rewind (using iframe track)<\/td><\/tr><tr><td class=\"confluenceTd\">-64<\/td><td class=\"confluenceTd\">16x Rewind (using iframe track)&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getVideoBitrates()\">getVideoBitrates()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Return array of available video bitrates across profiles.&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getCurrentVideoBitrate()\">getCurrentVideoBitrate()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Return current video bitrate, as bits per second.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setVideoBitrate(bitrate)\">setVideoBitrate( bitrate )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 14.2681%\"><col style=\"width: 14.5563%\"><col style=\"width: 71.06%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">bitrate&nbsp;<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Pass bitrate from getVideoBitrates to disable ABR and lock playback to single&nbsp;<br>profile.&nbsp;<br>Pass zero to (re)enable ABR, allowing Video Engine to select from available&nbsp;<br>bitrates based on network bandwidth.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getCurrentAudioBitrate()\">getCurrentAudioBitrate()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Return current audio bitrate, as bits per second.&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setVideoRect(x,y,w,h)\">setVideoRect( x, y, w, h )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Set display video rectangle coordinates. Note that by default video will be fullscreen.<\/li><li>Rectangle specified in &ldquo;graphics resolution&rdquo; coordinates (coordinate space used by graphics overlay).<\/li><li>Window size is typically 1280&#215;720, but can be queried at runtime as follows:&nbsp;<br>var w = window.innerWidth || document.documentElement.clientWidth ||document.body.clientWidth;&nbsp;<br>var h = window.innerHeight|| document.documentElement.clientHeight|| document.body.clientHeight;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 13.4973%\"><col style=\"width: 17.0499%\"><col style=\"width: 69.4809%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">X&nbsp;<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Left position for video&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">Y<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Top position for video<\/td><\/tr><tr><td class=\"confluenceTd\">W<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Video width<\/td><\/tr><tr><td class=\"confluenceTd\">H<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Video height<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setVideoZoom(videoZoom)\">setVideoZoom( videoZoom )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.7 and above.<\/li><li>Set video zoom, by default its set to &ldquo;full&rdquo;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 12.8409%\"><col style=\"width: 15.6089%\"><col style=\"width: 71.578%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">videoZoom<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">&ldquo;none&rdquo; to disable video zoom mode. &ldquo;full&rdquo; to enable video zoom mode.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-addCustomHTTPHeader(headerName,headerValue,isLicenseRequest)\">addCustomHTTPHeader( headerName, headerValue, isLicenseRequest )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.8 and above.<\/li><li>Add custom headers to HTTP requests<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 17.8714%\"><col style=\"width: 14.9613%\"><col style=\"width: 67.0562%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">headerName&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">HTTP header name<\/td><\/tr><tr><td class=\"confluenceTd\">headerValue isLicenseRequest<\/td><td class=\"confluenceTd\">String Array Boolean<\/td><td class=\"confluenceTd\"><p>HTTP header value<\/p><p><span>(defaults to false) indicates if the HTTP header is for exclusive use with <\/span><span>PlayReady\/Widevine license requests&nbsp;<\/span><\/p><\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-removeCustomHTTPHeader(headerName)\">removeCustomHTTPHeader( headerName )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.8 and above.<\/li><li>Remove a custom header set previously. If called with no arguments, will remove all custom headers.&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 17.9988%\"><col style=\"width: 15.2515%\"><col style=\"width: 66.6409%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">headerName&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">HTTP header name<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getAvailableAudioTracks()\">getAvailableAudioTracks()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 1.0 and above.<\/li><li>Returns the available audio tracks information in the content.<\/li><\/ul><p>DASH&nbsp;<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.1524%\"><col style=\"width: 24.4622%\"><col style=\"width: 53.4137%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">name&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Human readable language name&nbsp;<br>e.g: Spanish, English<\/td><\/tr><tr><td class=\"confluenceTd\">language<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Specifies dominant language of the audio<br>e.g: spa, eng<\/td><\/tr><tr><td class=\"confluenceTd\">rendition<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Role for DASH&nbsp;<br>If not present, the role is assumed to be main&nbsp;<br>e.g: caption, subtitle, main<\/td><\/tr><tr><td class=\"confluenceTd\">characteristics&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Not mapped<\/td><\/tr><tr><td class=\"confluenceTd\">Channels&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Indicates the maximum number of audio channels&nbsp;<br>1 = mono, 2=stereo, up to 8 for DD+<\/td><\/tr><tr><td class=\"confluenceTd\">bandwidth<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Represents variants of the bitrates available for the media type&nbsp;<br>e.g: 288000<\/td><\/tr><tr><td class=\"confluenceTd\">codec&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">codec associated with Adaptation Set.<br>e.g: mp4a.40.2&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">accessibilityType<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Accessibility value for descriptive, visually impaired signaling&nbsp;<br>e.g: description, captions&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Example<\/b><\/div><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{ \n\"name\": \"5\", \n\"language\": \"ger\", \n\"codec\": \"mp4a.40.2\", \n\"rendition\": \"german\", \n\"accessibiltyType\": \"description\", \n\"bandwidth\": 288000 \n} \n<\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Reference<\/b><\/div><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"> &lt;AdaptationSet id=\"3\" contentType=\"audio\" segmentAlignment=\"true\" bitstreamSwitching=\"true\" lang=\"ger\"&gt; \n&lt;Role schemeIdUri=\"urn:mpeg:dash:role:2011\" value=\"german\"\/&gt; \n&lt;Accessibility schemeIdUri=\"urn:mpeg:dash:role:2011\" value=\"description\" \/&gt; \n&lt;Representation id=\"5\" mimeType=\"audio\/mp4\" codecs=\"mp4a.40.2\" bandwidth=\"288000\" audioSamplingRate=\"48000\"\n&gt; \n&lt;AudioChannelConfiguration schemeIdUri=\"urn:mpeg:dash:23003:3:audio_channel_configuration:2011\" value=\"1\"\/&gt; \n&lt;\/AdaptationSet&gt; <\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>HLS<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 14.582%\"><col style=\"width: 14.5017%\"><col style=\"width: 70.8143%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">name<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Human-readable description of the Rendition.<br>e.g:english, spanish<\/td><\/tr><tr><td class=\"confluenceTd\">type&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Specifies the media type. Valid strings are AUDIO, VIDEO, SUBTITLES&nbsp;<br>and CLOSED-CAPTIONS. This attribute is REQUIRED.&nbsp;<br>e.g: CLOSED-CAPTIONS&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">language&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Identifies the primary language used in the Rendition. This attribute&nbsp;<br>is OPTIONAL.&nbsp;<br>e.g: es<\/td><\/tr><tr><td class=\"confluenceTd\">rendition&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Specifies the group to which the Rendition belongs.&nbsp;<br>GROUP-ID for HLS.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">instreamId&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Specifies a Rendition within the segments in the Media Playlist. This&nbsp;<br>attribute is REQUIRED if the TYPE attribute is CLOSED-CAPTIONS&nbsp;<br>e.g: &#8220;CC1&#8221;, &#8220;CC2&#8221;, &#8220;CC3&#8221;, &#8220;CC4&#8221;, or &#8220;SERVICEn&#8221; where n MUST be an&nbsp;<br>integer between 1 and 63<\/td><\/tr><tr><td class=\"confluenceTd\">codec<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Comma-delimited list of formats, where each format specifies a media&nbsp;<br>sample type that is present in one or more Renditions specified by&nbsp;<br>the Variant Stream.<\/td><\/tr><tr><td class=\"confluenceTd\">characteristics&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Pne or more comma-delimited Uniform Type Identifiers [UTI]. This&nbsp;<br>attribute is OPTIONAL.&nbsp;&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Example<\/b><\/div><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"> { \n \"name\": \"Deutsch\", \n \"type\": \"SUBTITLES\", \n \"language\": \"de\", \n \"rendition\": \"subs\" \n } \nReference \n#EXT-X-MEDIA:TYPE=SUBTITLES,GROUPID=\"subs\",NAME=\"Deutsch\",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE=\"de\",URI=\"subtitles_de.m3u8\" \n#EXT-X-STREAM-INF:PROGRAMID=1,BANDWIDTH=258157,CODECS=\"avc1.4d400d,mp4a.40.2\",AUDIO=\"stereo\",RESOLUTION=422x180,SUBTITLES=\"subs\" <\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getVideoRectangle()\">getVideoRectangle()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 1.0 and above.<\/li><li>Returns the current video rectangle co-ordinates.&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getAudioTrack()\">getAudioTrack( )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 2.6 and above.<\/li><li>Returns the index of current audio track in available audio track list.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setAudioTrack(index)\">setAudioTrack(index )&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 2.6 and above.<\/li><li>Set the audio track language from available audio track list.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 14.1843%\"><col style=\"width: 20.6186%\"><col style=\"width: 65.0783%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">index<\/td><td class=\"confluenceTd\">Number&nbsp;<\/td><td class=\"confluenceTd\">Track Index of desired audio track in available audio track list&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setAudioTrack(trackDescriptorObj)\">setAudioTrack( trackDescriptorObj )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 3.2 and above.<\/li><li>Set the audio track by language and rendition from available audio track list.<\/li><li>&ldquo;language&rdquo; match always takes precedence over &ldquo;rendition&rdquo; match.<\/li><li>While playing passively to new periods with different track order\/availability, or when tuning to new locator,&nbsp;<br>heuristic for track selection is automatically re-applied.<\/li><li>Note that for now, &ldquo;best&rdquo; codec (ATMOS &gt; DD+ &gt; Stereo) is always selected, subject to filtering configuration.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 19.1906%\"><col style=\"width: 17.5918%\"><col style=\"width: 63.2449%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">language<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Language of desired audio track in available audio track list&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">rendition<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Rendition of desired audio track in available audio track list<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Example<\/b><\/div><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">var trackDescriptorObject = \n{ \n\"language\": \"ger\", \n\"rendition\": \"commentary\" \n} \nplayerInstance.setAudioTrack( trackDescriptorObject ); <\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setPreferredAudioLanguage(languages,rendition,accessibility)\">setPreferredAudioLanguage( languages, rendition, accessibility)<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 3.2 and above.<\/li><li>Set the audio track preference by languages, rendition and accessibility.<\/li><li>This is functionally equivalent to passing a trackDescriptorObject to setAudioTrack above.<\/li><li>May be called pre-tune or post tune.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 20.6097%\"><col style=\"width: 23.9253%\"><col style=\"width: 55.4935%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">languages&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">ISO-639 audio language preference; for more than one language, provide comma delimited list from highest to lowest priority: &lsquo;,&lt;&#8230;&gt;,&rsquo;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">rendition&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Optional preferred rendition for automatic audio selection.<\/td><\/tr><tr><td class=\"confluenceTd\">accessibility<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Optional preferred accessibility type for descriptive audio.&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setAudioLanguage(language)\">setAudioLanguage ( language )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 3.0 and above.<\/li><li>Set the audio track language from available audio track list.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 20.8979%\"><col style=\"width: 23.6371%\"><col style=\"width: 55.4935%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">language<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Language of desired audio track in the available audio track list.&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getTextTrack()\">getTextTrack( )&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 2.6 and above.<\/li><li>Returns the index of current text track in available text track list.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setTextTrack(trackIndex)\">setTextTrack( trackIndex )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 2.6 and above.<\/li><li>Set the text track at trackIndex in available text track list.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 18.8965%\"><col style=\"width: 23.7275%\"><col style=\"width: 57.2621%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">trackIndex<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Index of desired text track in available text track list<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setClosedCaptionStatus(status)\">setClosedCaptionStatus ( status )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 2.6 and above.<\/li><li>Set the ClosedCaption rendering to on\/off.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 19.5269%\"><col style=\"width: 22.1969%\"><col style=\"width: 58.1636%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">&nbsp;Status&nbsp;<\/td><td class=\"confluenceTd\">Boolean&nbsp;<\/td><td class=\"confluenceTd\">To turn on\/off ClosedCaption rendering.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getTextStyleOptions()\">getTextStyleOptions ( )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 2.6 and above.<\/li><li>Returns the JSON formatted string of current ClosedCaption style options and values.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setTextStyleOptions(options)\">setTextStyleOptions ( options )&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 2.6 and above.<\/li><li>Set the ClosedCaption style options to be used for rendering.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 16.6268%\"><col style=\"width: 20.8498%\"><col style=\"width: 62.5508%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">options&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">JSON formatted string of different rendering style options and its values.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getAvailableThumbnailTracks()\">getAvailableThumbnailTracks ( )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>&nbsp;Returns json array of each thumbnail track&#8217;s metadata.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 16.108%\"><col style=\"width: 20.2652%\"><col style=\"width: 63.5254%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">Resolution&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">String indicating the width x height of the thumbnail images.<\/td><\/tr><tr><td class=\"confluenceTd\">Bandwidth&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Decimal-Integer encoding &#8211; bits per second. Represents bit rate of the&nbsp;<br>thumbnail track.&nbsp;&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Example<\/b><\/div><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[{ \n \"RESOLUTION\": \"416x234\", \n \"BANDWIDTH\": 71416 \n }, { \n \"RESOLUTION\": \"336x189\", \n \"BANDWIDTH\": 52375 \n }, { \n \"RESOLUTION\": \"224x126\", \n \"BANDWIDTH\": 27413 \n }] \n\n<\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setThumbnailTrack(index)\">setThumbnailTrack(index)<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Set the desired thumbnail track from the list of available thumbnail track metadata.<\/li><li>Returns Boolean value true or false to indicate Success or Failure configuring the thumbnail track.&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 15.74%\"><col style=\"width: 19.6753%\"><col style=\"width: 64.6124%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">Index<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Index value based on the available thumbnail tracks.&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-getThumbnail(startPosition,endPosition)\">getThumbnail(startPosition, endPosition)&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>&nbsp;Get the thumbnail data for the time range &ldquo;startPosition&rdquo; till &ldquo;endPosition&rdquo;.&nbsp;&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 16.4181%\"><col style=\"width: 20.4598%\"><col style=\"width: 63.0235%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">startPosition<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">Start value from which the thumbnail data is fetched.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">endPosition<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">End value till which the thumbnail data is fetched.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">baseUrl&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">The base url which is appended to tile url to fetch the required thumbnail&nbsp;<br>image.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">raw_w&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Original width of the thumbnail sprite sheet.&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">raw_h&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">String&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Original height of the thumbnail sprite sheet.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">width&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Width of each thumbnail tile present in the sprite sheet.<\/td><\/tr><tr><td class=\"confluenceTd\">height&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Height of each thumbnail tile present in the sprite sheet.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">tile&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">JSON array of multiple thumbnail tile information.<\/td><\/tr><tr><td class=\"confluenceTd\">url&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Url for each tile, which is appended with base url to form complete url.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">t&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Presentation time for each tile.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">d&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Duration value of each tile.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">x<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">X co-ordinate position to locate the tile from sprite sheet.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">y&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Y co-ordinate position to locate the tile from sprite sheet.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Example<\/b><\/div><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{ \n \"baseUrl\": \"https:\/\/g004-c-13a10cpeacockvodstg.s.llnwi.net\/pub\/global\/aOb\/kIc\/PCK_1604349987778_01\/cmaf_thumbtest_segtime_d\/mpeg_2sec\/\nimages\/416x234\/\", \n \"raw_w\": 3744, \n \"raw_h\": 3978, \n \"width\": 416, \n \"height\": 234, \n \"tile\": [{ \n \"url\": \"pckimage-1.jpg\", \n \"t\": 328.0, \n &ldquo;d&rdquo;: 2, \n \"x\": 832, \n \"y\": 234 \n }] \n} \n\n<\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Events<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.5598%\"><col style=\"width: 22.4778%\"><col style=\"width: 54.8633%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Event Name&nbsp;<\/th><th class=\"confluenceTh\">Event Payload<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">playbackStarted&nbsp;<\/td><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired when playback starts<\/td><\/tr><tr><td class=\"confluenceTd\">playbackStateChanged<\/td><td class=\"confluenceTd\">state: number<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired as state changes across play\/pause&nbsp;<br>seek\/not-seek quadruplet&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">playbackProgressUpdate&nbsp;<\/td><td class=\"confluenceTd\">durationMiliseconds:&nbsp;<br>number,&nbsp;<br>positionMiliseconds:&nbsp;<br>number,&nbsp;<br>playbackSpeed:&nbsp;<br>number,&nbsp;<br>startMiliseconds:&nbsp;<br>number,&nbsp;<br>endMiliseconds:&nbsp;<br>number,&nbsp;<br>currentPTS: number,&nbsp;<br>videoBufferedMiliseco<br>nds : number&nbsp;<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired based on the interval set&nbsp;<br>&#8211; Added video PTS reporting if enabled&nbsp;<br>with reportVideoPTS config&nbsp;<br>&#8211; Added video buffer value (2.4 version)<\/td><\/tr><tr><td class=\"confluenceTd\">bufferingChanged&nbsp;<\/td><td class=\"confluenceTd\">buffering: bool&nbsp;<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; fired when AAMP encounters buffering&nbsp;<br>mid-playback, buffering flag indicates&nbsp;<br>buffer status&nbsp;<br>FALSE -&gt; No buffer for&nbsp;<br>playback(Underflow)&nbsp;<br>TRUE -&gt; Buffer available for playback&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">playbackCompleted<\/td><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.<br>&#8211; fired when there is nothing left to play&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">playbackSpeedChanged<\/td><td class=\"confluenceTd\">speed: number,&nbsp;<br>reason: string<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">playbackFailed<\/td><td class=\"confluenceTd\">shouldRetry: boolean,<br>code: number,&nbsp;<br>description: string<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.<br>&#8211; fired when an error occurs.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">decoderAvailable&nbsp;<\/td><td class=\"confluenceTd\">decoderHandle:&nbsp;<br>number&nbsp;<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.<br>&#8211; fired when video decoder handle&nbsp;<br>becomes available, required for&nbsp;<br>closedcaption parsing + rendering by RDK&nbsp;<br>ClosedCaptions module<\/td><\/tr><tr><td class=\"confluenceTd\">mediaMetadata&nbsp;<\/td><td class=\"confluenceTd\"><p>durationMiliseconds:&nbsp;<br>number,&nbsp;<br>languages: string[],&nbsp;<br>bitrates: number[],&nbsp;&nbsp;<\/p><p>playbackSpeeds:&nbsp;<br>number[],&nbsp;<br>width: number,&nbsp;<br>height: number,&nbsp;<br>hasDrm: boolean&nbsp;<br>isLive: boolean&nbsp;<br>programStartTime:&nbsp;<br>DRM: string[]&nbsp;&nbsp;<\/p><\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired with metadata of the asset&nbsp;<br>currently played, includes duration(in&nbsp;<br>ms), audio language list, available bitrate&nbsp;<br>list, hasDrm, supported playback speeds.<\/td><\/tr><tr><td class=\"confluenceTd\">speedsChanged<\/td><td class=\"confluenceTd\">playbackSpeeds:&nbsp;<br>number[]&nbsp;<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired when supported playback speeds&nbsp;<br>changes (based on iframe availability).<\/td><\/tr><tr><td class=\"confluenceTd\">id3Metadata&nbsp;<\/td><td class=\"confluenceTd\">schemeIdUri : string&nbsp;<br>value : string&nbsp;<br>timescale : number&nbsp;<br>presentationTime :&nbsp;<br>number&nbsp;<br>eventDuration :&nbsp;<br>number&nbsp;<br>id : number&nbsp;<br>timestampOffset :&nbsp;<br>number&nbsp;<br>data : array&nbsp;<br>length: number&nbsp;<\/td><td class=\"confluenceTd\">&#8211; This event is fired when&nbsp;<br>ID3Metadata is parsed from the&nbsp;<br>stream playlist.&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">vttCueDataListener<\/td><td class=\"confluenceTd\"><p>start : number&nbsp;<\/p><p>duration: number&nbsp;<br>text:string<\/p><\/td><td class=\"confluenceTd\"><p>&#8211; This event is fired for VTT cue.<\/p><p>parsed from the WebVTT playlist.&nbsp;<\/p><\/td><\/tr><tr><td class=\"confluenceTd\">audioTracksChanged<\/td><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">&#8211; fired when Audio track is changed&nbsp;<br>during playback.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">textTracksChanged&nbsp;<\/td><td class=\"confluenceTd\">Position: number<\/td><td class=\"confluenceTd\">&#8211; fired when Seek is triggered with a&nbsp;<br>position.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">vttCueDataListener<\/td><td class=\"confluenceTd\">code: number,&nbsp;<br>description: string<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired for VTT cue parsed from the&nbsp;<br>WebVTT playlist in the asset.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">drmMetadata&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">code: number,&nbsp;<br>description: string<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired when there is a change in DRM&nbsp;<br>metadata (especially expiration of DRM&nbsp;<br>auth data).<\/td><\/tr><tr><td class=\"confluenceTd\">enteringLive<\/td><td class=\"confluenceTd\"><br><\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired when entering live point of a live&nbsp;<br>playlist during\/after a seek\/trickplay&nbsp;<br>operation.<\/td><\/tr><tr><td class=\"confluenceTd\">timedMetadata<\/td><td class=\"confluenceTd\"><p>time: number,&nbsp;<br>duration: number,&nbsp;<br>name: string,&nbsp;<br>content: string,&nbsp;<br>type: number,&nbsp;<br>metadata: object,<\/p><p><span>id: string&nbsp;<\/span><\/p><\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.&nbsp;<br>&#8211; fired when a subscribed tag is found in&nbsp;<br>the playlist.<\/td><\/tr><tr><td class=\"confluenceTd\">bitrateChanged&nbsp;<\/td><td class=\"confluenceTd\">time: number,&nbsp;<br>bitRate: number,&nbsp;<br>description: string,&nbsp;<br>width: number,&nbsp;<br>height: number,&nbsp;<br>framerate: number&nbsp;<br>position: number&nbsp;<br>cappedProfile:bool&nbsp;<br>displayWidth:number&nbsp;<br>displayHeight:number&nbsp;&nbsp;<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.7 and above.&nbsp;<br>&#8211; fired when video profile is switched by&nbsp;<br>ABR with the metadata associated with&nbsp;<br>newly selected profile.<\/td><\/tr><tr><td class=\"confluenceTd\">adResolved&nbsp;<\/td><td class=\"confluenceTd\">resolvedStatus: bool,&nbsp;<br>placementId: string,&nbsp;<br>placementStartTime:&nbsp;<br>number,&nbsp;<br>placementDuration:&nbsp;<br>number&nbsp;&nbsp;<\/td><td class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; Confirmation that an upcoming ad&#8217;s main&nbsp;<br>manifest has been successfully&nbsp;<br>downloaded and parsed.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">reservationStart&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">adbreakId: string,&nbsp;<br>time: number&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; Sent upon playback into an ad break (one&nbsp;<br>or more ads).<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">reservationEnd<\/td><td colspan=\"1\" class=\"confluenceTd\">adbreakId: string,&nbsp;<br>time: number<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; Sent upon completion of an ad break&nbsp;<br>(back to main content) &#8211; it is NOT sent&nbsp;<br>(per previously agreed contract) if user&nbsp;<br>does trickplay or seek to abort ad&nbsp;<br>playback.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">placementStart<\/td><td colspan=\"1\" class=\"confluenceTd\">adId: string,&nbsp;<br>time: number<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; This is sent in real time when injecting&nbsp;<br>first frame of a new ad on content-&gt;ad or&nbsp;<br>ad-&gt;ad transition. Should be accurate&nbsp;<br>compared to onscreen frames.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">placementEnd<\/td><td colspan=\"1\" class=\"confluenceTd\">adId: string,&nbsp;<br>time: number&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; This is sent in real time after passively&nbsp;<br>playing to end of an ad &#8211; it is NOT sent (per&nbsp;<br>previously agreed contract) if user does&nbsp;<br>trickplay or seek to abort ad playback.&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">placementProgress&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">adId: string,<br>time: number&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; Sent periodically while ad is being played&nbsp;<br>out, giving an estimate percentagewatched metric. It&#8217;s interpolated based on&nbsp;<br>elapsed time, and should repeat same&nbsp;<br>value if paused.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">placementError<\/td><td colspan=\"1\" class=\"confluenceTd\">adId: string,&nbsp;<br>time: number,&nbsp;<br>error: number&nbsp;&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211; Supported UVE version 0.8 and above.<br>&#8211; Generated only for exception while&nbsp;<br>attempting to play out ad content.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-addEventListener(name,handler)\">addEventListener( name, handler )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.5493%\"><col style=\"width: 23.0531%\"><col style=\"width: 54.4251%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">name&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Event Name<\/td><\/tr><tr><td class=\"confluenceTd\">handler<\/td><td class=\"confluenceTd\">Function<\/td><td class=\"confluenceTd\">Callback for processing event.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-removeEventListener(name,handler)\">removeEventListener( name, handler )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.8815%\"><col style=\"width: 23.2565%\"><col style=\"width: 53.7656%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">Name<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">Event Name<\/td><\/tr><tr><td class=\"confluenceTd\">handler&nbsp;<\/td><td class=\"confluenceTd\">Function&nbsp;<\/td><td class=\"confluenceTd\">Callback for processing event.<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">CDAI Mechanism#1 &ndash; Engine Managed CDAI&nbsp;&nbsp;<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>Supported for DASH Linear, working with period structure and SCTE35 markers, with optional replacement&nbsp;<br>for like-amount of content.&nbsp;<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setSubscribedTags(tagNames)\">setSubscribedTags( tagNames )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.8 and above.<\/li><li>Subscribe to specific tags \/ metadata in manifest.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 23.0164%\"><col style=\"width: 23.0164%\"><col style=\"width: 53.9956%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">tagNames&nbsp;<\/td><td class=\"confluenceTd\">String Array&nbsp;<\/td><td class=\"confluenceTd\">List of tag names of interest.<br>Examples:<br>#EXT-X-IDENTITY-ADS&nbsp;<br>#EXT-X-MESSAGE-REF&nbsp;<br>#EXT-X-CUE&nbsp;<br>#EXT-X-ASSET-ID&nbsp;<br>#EXT-X-TRICKMODE-RESTRICTION&nbsp;<br>#EXT-X-CONTENT-IDENTIFIER&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setAlternateContent(reservationObject,promiseCallback)\">setAlternateContent( reservationObject, promiseCallback )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>&nbsp;Supported UVE version 0.8 and above.&nbsp;&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 19.7848%\"><col style=\"width: 23.4123%\"><col style=\"width: 56.8315%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">reservationObject&nbsp;<\/td><td class=\"confluenceTd\">Object<\/td><td class=\"confluenceTd\"><div class=\"content-wrapper\"><p>reservationObject provides context for alternate content to be played out at ad&nbsp;<br>opportunities.&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{&nbsp;\n&nbsp;\"reservationId\": \"1234\", \/\/ period id from DASH manifest&nbsp;\n&nbsp;\"reservationBehavior\": number,&nbsp;\n&nbsp;\"placementRequest\":&nbsp;\n&nbsp;{&nbsp;\n&nbsp;\/\/ uuid generated to identify this placement&nbsp;\n&nbsp;\"id\": string,&nbsp;\n&nbsp;\/\/ position at which placement will begin playback on the main timeline&nbsp;\n&nbsp;\"pts\": number,&nbsp;\n&nbsp;\"url\": \"\",&nbsp;\n&nbsp;},&nbsp;\n}<\/pre>\n<\/div><\/div><\/div><\/td><\/tr><tr><td class=\"confluenceTd\">promiseCallback<\/td><td class=\"confluenceTd\">Function<\/td><td class=\"confluenceTd\">Signals success\/failure while retrieving ad manifest and preparing for&nbsp;<br>playback.&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-notifyReservationCompletion(reservationId,time)\">notifyReservationCompletion( reservationId, time )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.8 and above.<\/li><li>Notify video engine when all ad placements for a particular reservation have been set via setAlternateContent.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 19.4369%\"><col style=\"width: 25.116%\"><col style=\"width: 55.3664%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\">reservationId&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\"><span>Period ID of reservation of Ad placed.<\/span><\/td><\/tr><tr><td class=\"confluenceTd\">Time<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\"><span>Time of Ad reservation done.<\/span><\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">CDAI Mechanism#2 &ndash; &ldquo;Player Prebuffering&rdquo; Feature&nbsp;<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>Can be leveraged for quick stream transitions. Suitable for preroll, and midroll insertions. No limitations&nbsp;<br>with respect to content type &ndash; can transition between DASH and HLS.&nbsp;<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-detach()\">detach()<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Supported UVE version 0.9 and above.<\/li><li>Optional API that can be used to quickly stop playback of active stream before transitioning to 2nd prebuffered stream.&nbsp;<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>Example use of detach and buffering:<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">var player = new AAMPMediaPlayer();&nbsp;\nplayer.load( &ldquo;http:\/\/test.com\/content.m3u8&rdquo; ); \/\/ begin streaming main content&nbsp;\n&hellip;&nbsp;\nvar adPlayer = new AAMPMediaPlayer(); \/\/ create background player&nbsp;\nadPlayer.load( &ldquo;http:\/\/test.com\/ad.m3u8&rdquo;, false ); \/\/ preroll&nbsp;\n&hellip;&nbsp;\nplayer.detach(); \/\/ stop playback of active player&nbsp;\nadPlayer.play(); \/\/ activate background player (fast transition)&nbsp;\nplayer.stop(); \/\/ release remaining resources for initial player instance<\/pre>\n<\/div><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>Example of midroll Ad insertions and resume main content playback:<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 19.5343%\"><col style=\"width: 26.3603%\"><col style=\"width: 24.4767%\"><col style=\"width: 29.5392%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Main content&nbsp;<br>(0 &ndash; 180 Sec)&nbsp;&nbsp;<\/th><th class=\"confluenceTh\">AD1&nbsp;<br>(0 -40 Sec)&nbsp;<\/th><th class=\"confluenceTh\">AD2&nbsp;<br>&nbsp;(0 &ndash; 30 Sec)&nbsp;<\/th><th class=\"confluenceTh\">Main Content&nbsp;<br>(180 &ndash; 600 Sec)&nbsp;&nbsp;<\/th><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 16.5681%\"><col style=\"width: 83.4598%\"><\/colgroup><tbody><tr><td class=\"confluenceTd\">Main Content&nbsp;<br>(0 &ndash; 180 sec)&nbsp;&nbsp;<\/td><td class=\"confluenceTd\"><strong>create foreground player and start streaming of main content&nbsp;<\/strong><br>var player = new AAMPMediaPlayer();&nbsp;<br>player.load( &ldquo;<a href=\"http:\/\/test.com\/content.mpd\" class=\"rdk-inside-table\" rel=\"nofollow\">http:\/\/test.com\/content.mpd<\/a>&rdquo; );&nbsp;<br><strong>create background player and preload AD1&nbsp;<\/strong><br>var adPlayer1 = new AAMPMediaPlayer();&nbsp;<br>adPlayer1.load( &ldquo;<a href=\"http:\/\/test.com\/ad1.mpd\" class=\"rdk-inside-table\" rel=\"nofollow\">http:\/\/test.com\/ad1.mpd<\/a>&rdquo;, false );&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AD1&nbsp;<br>(0 &ndash; 40 sec)&nbsp;&nbsp;<\/td><td class=\"confluenceTd\"><strong>time of AD1 start, stop active player and activate background player for AD1&nbsp;<\/strong><br>var position = Player. getCurrentPosition() \/\/ get current playback position&nbsp;<br>player.detach();&nbsp;<br>adPlayer1.play();&nbsp;<br>player.stop();&nbsp;<br><strong>preload AD2 in background player&nbsp;<\/strong><br>var adPlayer2 = new AAMPMediaPlayer();&nbsp;<br>adPlayer2.load( &ldquo;<a href=\"http:\/\/test.com\/ad2.mpd\" class=\"rdk-inside-table\" rel=\"nofollow\">http:\/\/test.com\/ad2.mpd<\/a>&rdquo;, false );&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AD2&nbsp;<br>(0 &ndash; 30 sec)&nbsp;<\/td><td class=\"confluenceTd\"><strong>EOS of AD1, stop active player and activate background player for AD2<\/strong><br>adPlayer1.detach();&nbsp;<br>adPlayer2.play();&nbsp;<br>adPlayer1.stop();&nbsp;<br><strong>preload Main content in background and set last playback position&nbsp;<\/strong><br>var player = new AAMPMediaPlayer();&nbsp;<br>player. Seek (position)&nbsp;<br>player.load( &ldquo;<a href=\"http:\/\/test.com\/content.mpd\" class=\"rdk-inside-table\" rel=\"nofollow\">http:\/\/test.com\/content.mpd<\/a>&rdquo;, false );&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">Main Content&nbsp;<br>(180 &ndash; 600 sec)&nbsp;&nbsp;<\/td><td class=\"confluenceTd\"><strong>EOS of AD2, stop active player and activate background player for main content&nbsp;<\/strong><br>adPlayer2.detach();&nbsp;<br>player.play();&nbsp;<br>adPlayer2.stop();&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Configuration<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-initConfig(config)\">initConfig( config )<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>Configuration options are passed to AAMP using the UVE initConfig method. This allows the application override&nbsp;<br>default configuration used by AAMP player to give more control over player behavior. Parameter is a JSON Object with&nbsp;<br>one or more attribute\/value pairs as follows:&nbsp;&nbsp;<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 26.6137%\"><col style=\"width: 13.7582%\"><col style=\"width: 13.1557%\"><col style=\"width: 46.5006%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Property&nbsp;<\/th><th class=\"confluenceTh\">Type&nbsp;<\/th><th class=\"confluenceTh\">Default&nbsp;<br>Value<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">initialBitrate&nbsp;<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">2500000&nbsp;<\/td><td class=\"confluenceTd\">max initial bitrate (bps)<\/td><\/tr><tr><td class=\"confluenceTd\">initialBitrate4K&nbsp;<\/td><td class=\"confluenceTd\"><p>Number<\/p><\/td><td class=\"confluenceTd\"><p>13000000<\/p><\/td><td class=\"confluenceTd\">max initial bitrate for 4k video playback (bps)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">Offset<\/td><td class=\"confluenceTd\">Number (s)&nbsp;<\/td><td class=\"confluenceTd\">0<\/td><td class=\"confluenceTd\">start position offset in seconds(same as seek() method)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">networkTimeout<\/td><td class=\"confluenceTd\">Number (s)<\/td><td class=\"confluenceTd\">10&nbsp;<\/td><td class=\"confluenceTd\">network request timeout for fragment\/playlist\/manifest&nbsp;<br>downloads (in seconds)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">manifestTimeout&nbsp;<\/td><td class=\"confluenceTd\">Number (s)&nbsp;<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">Manifest download timeout; overrides networkTimeout if both present; available starting with version 0.8 . Applied to Main manifest in HLS and DASH manifest download. (in seconds)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">playlistTimeout<\/td><td class=\"confluenceTd\">playlistTimeout<\/td><td class=\"confluenceTd\">10&nbsp;<\/td><td class=\"confluenceTd\">HLS playlist download timeout; overrides networkTimeout if&nbsp;<br>both present; available starting with version 1.0 (in seconds)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">downloadBuffer<\/td><td class=\"confluenceTd\">Number&nbsp;<\/td><td class=\"confluenceTd\">4<\/td><td class=\"confluenceTd\">max amount of time to download ahead of playhead&nbsp;<br>(fragments)&nbsp;<br>example:&nbsp;<br>&#8211; with a downloadBuffer of 4 (default) there will be 4&nbsp;<br>fragments (typically 2s each) of video or audio harvested and&nbsp;<br>buffered in advance, in additional to internal playback&nbsp;<br>buffering&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">minBitrate&nbsp;<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">&#8211;&nbsp;<\/td><td class=\"confluenceTd\">Optional profile clamping (in bps)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">maxBitrate<\/td><td class=\"confluenceTd\">Number&nbsp;<\/td><td class=\"confluenceTd\">&#8211;<\/td><td class=\"confluenceTd\">Optional profile clamping (in bps)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">preferredAudioLanguage&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">en<\/td><td class=\"confluenceTd\"><p>ISO-639 audio language preference; for more than one language, provide comma delimited list from highest to lowest priority: &lsquo;&lt;HIGHEST&gt;,<span>&lt;&#8230;&gt;,&lt;LOWEST&gt;&rsquo;&nbsp;<\/span><\/p><\/td><\/tr><tr><td class=\"confluenceTd\">timeShiftBufferLength<\/td><td class=\"confluenceTd\">Number<\/td><td class=\"confluenceTd\">&#8211;<\/td><td class=\"confluenceTd\">(not supported, for future)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">stereoOnly&nbsp;<\/td><td class=\"confluenceTd\">Boolean&nbsp;<\/td><td class=\"confluenceTd\">False&nbsp;<\/td><td class=\"confluenceTd\">Optional forcing of playback to only select stereo audio track&nbsp;<br>available starting with version 0.8&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">liveOffset<\/td><td class=\"confluenceTd\">Number (s)&nbsp;<\/td><td class=\"confluenceTd\">15<\/td><td class=\"confluenceTd\">Allows override default\/stream-defined distance from live&nbsp;<br>point for live stream playback (in seconds)<\/td><\/tr><tr><td class=\"confluenceTd\">bulkTimedMetadata<\/td><td class=\"confluenceTd\">Boolean<\/td><td class=\"confluenceTd\">False<\/td><td class=\"confluenceTd\">Send timed metadata using single stringified JSON array&nbsp;<br>instead of individual events available starting with version 0.8<\/td><\/tr><tr><td class=\"confluenceTd\">networkProxy<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">&#8211;<\/td><td class=\"confluenceTd\"><p>Network proxy to use (Format &lt;SCHEME&gt;:\/\/&lt;PROXY<\/p><p>IP:PROXY PORT&gt;)&nbsp;<\/p><\/td><\/tr><tr><td class=\"confluenceTd\">licenseProxy<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">&#8211;&nbsp;<\/td><td class=\"confluenceTd\">Network proxy to use for license requests (Format same as&nbsp;<br>network proxy)<\/td><\/tr><tr><td class=\"confluenceTd\">downloadStallTimeout<\/td><td class=\"confluenceTd\">Number (s)&nbsp;<\/td><td class=\"confluenceTd\">&#8211;<\/td><td class=\"confluenceTd\">Optional optimization &#8211; Allow fast-failure for class of curl-detectable mid-download stalls (in seconds)<\/td><\/tr><tr><td class=\"confluenceTd\">downloadStartTimeout<\/td><td class=\"confluenceTd\">Number (s)&nbsp;<\/td><td class=\"confluenceTd\">&#8211;<\/td><td class=\"confluenceTd\">Optional optimization &#8211; Allow fast-failure for class of curl-detectable stall at start of download (in seconds)<\/td><\/tr><tr><td class=\"confluenceTd\">preferredSubtitleLanguage&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">en<\/td><td class=\"confluenceTd\">ISO-639 language code used with VTT OOB captions<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">parallelPlaylistDownload<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">True<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional optimization &ndash; download audio and video playlists in&nbsp;<br>parallel for HLS; available starting with version 0.8<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">parallelPlaylistRefresh&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">True<\/td><td colspan=\"1\" class=\"confluenceTd\">Optionally disable audio video playlist parallel download for&nbsp;<br>linear (only for HLS)<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">useAverageBandwidth&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional Average bandwidth for ABR switching ( version 1.0)&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">preCachePlaylistTime<\/td><td colspan=\"1\" class=\"confluenceTd\">Number (s)&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211;&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optionally enable PreCaching of Playlist and TimeWindow for&nbsp;<br>Cache(minutes) ( version 1.0)&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">progressReportingInterval&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Number (s)<\/td><td colspan=\"1\" class=\"confluenceTd\">1&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optionally change Progress Report Interval (in seconds)<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">useRetuneForUnpairedDiscont<br>inuity<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">True&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional unpaired discontinuity retune config ( version 1.0)<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">drmDecryptFailThreshold<\/td><td colspan=\"1\" class=\"confluenceTd\">Number<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional pre-tune buffering (in seconds) before playback start&nbsp;<br>(version 2.4)<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">useMatchingBaseUrl&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">use DASH main manifest hostname to select from multiple&nbsp;<br>base urls in DASH (when present). By default, will always&nbsp;<br>choose first (version 2.4)&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">initFragmentRetryCount<\/td><td colspan=\"1\" class=\"confluenceTd\">Number&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">1&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Maximum number of retries for MP4 header fragment&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">nativeCCRendering&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Use native ClosedCaption support in AAMP (version 2.6)<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">langCodePreference<\/td><td colspan=\"1\" class=\"confluenceTd\">Number<\/td><td colspan=\"1\" class=\"confluenceTd\">0&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Set the preferred format for language codes in other&nbsp;<br>events\/APIs (version 2.6)&nbsp;<br>NO_LANGCODE_PREFERENCE = 0,&nbsp;<br>3_CHAR_BIBLIOGRAPHIC_LANGCODE = 1,&nbsp;<br>3_CHAR_TERMINOLOGY_LANGCODE = 2,&nbsp;<br>2_CHAR_LANGCODE = 3<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">descriptiveTrackName<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">False&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Use descriptive audio track naming format which is a combination of &#8211; (version 2.6)&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">authToken<\/td><td colspan=\"1\" class=\"confluenceTd\">String<\/td><td colspan=\"1\" class=\"confluenceTd\">&#8211;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to set AuthService token for license&nbsp;<br>acquisition (version 2.7)&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">useRetuneForGstInternalError&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">True&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to disable propagating URI parameters from&nbsp;<br>Main manifest to segment downloads&nbsp;&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">reportVideoPTS<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to enable Video PTS reporting along with&nbsp;<br>progressReport (version 3.0)<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">propagateUriParameters&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">True&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to disable propagating URI parameters from&nbsp;<br>Main manifest to segment downloads&nbsp;&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">enableSeekableRange<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to enable reporting of seekable range for linear&nbsp;<br>scrubbing<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">maxPlaylistCacheSize<\/td><td colspan=\"1\" class=\"confluenceTd\">Number&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">0&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to configure maximum cache size in Kbytes to&nbsp;<br>store different profile HLS VOD playlist<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">setLicenseCaching&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">True<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to disable License Caching in player. By default&nbsp;<br>3 DRM Sessions are Cached<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">persistBitrateOverSeek<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">To enable AAMP persisting video profile during&nbsp;<br>Seek\/Trickplay\/Audio switching operation<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">sslVerifyPeer<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to enable SSL peer verification&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">livePauseBehavior&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Number<\/td><td colspan=\"1\" class=\"confluenceTd\">0<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to configure player live pause behavior on linear&nbsp;<br>streams when live window touches eldest position.&nbsp;<br>Options:&nbsp;<br>0 &ndash; Autoplay immediate&nbsp;<br>1 &ndash; Live immediate&nbsp;<br>2 &ndash; Autoplay defer&nbsp;<br>3 &ndash; Live defer&nbsp;<br>Default &ndash; Autoplay immediate&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">limitResolution<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to set maximum video profile resolution based&nbsp;<br>on TV display resolution setting . Default Off.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">asyncTune&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to enable asynchronous player API processing.&nbsp;<br>Application \/ UI caller threads returned immediately without&nbsp;<br>any processing delays.&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">useAbsoluteTimeline<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to enable progress reporting based on&nbsp;<br>Availability Start Time of stream (DASH Only)<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">sharedSSL<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">True<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to disable sharing SSL context for all download&nbsp;<br>sessions, across manifest, playlist and segments.&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">disable4K<\/td><td colspan=\"1\" class=\"confluenceTd\">Boolean<\/td><td colspan=\"1\" class=\"confluenceTd\">False<\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to disable 4K profile playback and restrict only&nbsp;<br>to non-4k video profiles.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">preferredAudioRendition<\/td><td colspan=\"1\" class=\"confluenceTd\">String<\/td><td colspan=\"1\" class=\"confluenceTd\"><br><\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to set preferred Audio rendition setting&nbsp;<br>DASH : caption,subtitle,main&nbsp;<br>HLS : GROUP-ID&nbsp;&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">preferredAudioCodec&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">String&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\"><br><\/td><td colspan=\"1\" class=\"confluenceTd\">Optional field to set preferred Audio Codec&nbsp;<br>Comma-delimited list of formats, where each format specifies a&nbsp;<br>media sample type that is present in one or more Renditions&nbsp;<br>specified by the Variant Stream.&nbsp;<br>e.g: mp4a.40.2,avc1.4d401e<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-setDRMConfig(config)\">setDRMConfig( config )&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>DRM configuration options are passed to AAMP using the setDRMConfig method. Parameter is JSON object with pairs of&nbsp;<br>protectionScheme: licenseServerUrl pairs, along with preferredKeySystem specifying a preferred protectionScheme.<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 26.6673%\"><col style=\"width: 14.1883%\"><col style=\"width: 59.1727%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Property<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">com.microsoft.playready<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">License server endpoint to use with PlayReady DRM.&nbsp;<br>Example:&nbsp;<br><a href=\"http:\/\/test.playready.microsoft.com\/service\/rightsmanager.asmx\" class=\"rdk-inside-table\" rel=\"nofollow\">http:\/\/test.playready.microsoft.com\/service\/rightsmanager.asmx<\/a><\/td><\/tr><tr><td class=\"confluenceTd\">com.widevine.alpha<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">License server endpoint to use with Widevine DRM.<br>Example: https:\/\/widevine-proxy.appspot.com\/proxy<\/td><\/tr><tr><td class=\"confluenceTd\">preferredKeysystem&nbsp;<\/td><td class=\"confluenceTd\">String<\/td><td class=\"confluenceTd\">Used to disambiguate which DRM type to use, when manifest advertises&nbsp;<br>multiple supported DRM systems.&nbsp;<br>Example: com.widevine.alpha<\/td><\/tr><\/tbody><\/table> <\/div><p><br><\/p><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Universal Video Engine Player Errors<\/h3><\/div><br><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 40.73%\"><col style=\"width: 9.28352%\"><col style=\"width: 49.9148%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Error code<\/th><th class=\"confluenceTh\">Code&nbsp;<\/th><th class=\"confluenceTh\">Error String<\/th><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FAILED<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init failed&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FAILED_MANIFEST_DNLD_ERROR&nbsp;<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init failed (unable to download manifest)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FAILED_MANIFEST_CONTENT_ERROR<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init failed (manifest missing tracks)<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FAILED_MANIFEST_PARSE_ERROR&nbsp;<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init failed (corrupt\/invalid manifest)<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FAILED_TRACK_SYNC_ERROR&nbsp;<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init failed (unsynchronized tracks)&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_MANIFEST_REQ_FAILED&nbsp;<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: Manifest Download failed&nbsp;<br>Playlist refresh failed<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FAILED_PLAYLIST_VIDEO_DNLD_ERR<br>OR<\/td><td class=\"confluenceTd\">10&nbsp;<\/td><td class=\"confluenceTd\">AAMP: init failed (unable to download video playlist)<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FAILED_PLAYLIST_AUDIO_DNLD_ERR<br>OR<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init failed (unable to download audio playlist)<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_FRAGMENT_DOWNLOAD_FAILURE&nbsp;<\/td><td class=\"confluenceTd\">10&nbsp;<\/td><td class=\"confluenceTd\">AAMP: fragment download failures<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INIT_FRAGMENT_DOWNLOAD_FAILURE<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init fragment download failed<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_INVALID_MANIFEST_FAILURE<\/td><td class=\"confluenceTd\">10&nbsp;<\/td><td class=\"confluenceTd\">AAMP: Invalid Manifest, parse failed&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_MP4_INIT_FRAGMENT_MISSING&nbsp;<\/td><td class=\"confluenceTd\">10<\/td><td class=\"confluenceTd\">AAMP: init fragments missing in playlist<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_CONTENT_NOT_FOUND<\/td><td class=\"confluenceTd\">20&nbsp;<\/td><td class=\"confluenceTd\">AAMP: Resource was not found at the URL(HTTP 404)&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_AUTHORISATION_FAILURE&nbsp;<\/td><td class=\"confluenceTd\">40<\/td><td class=\"confluenceTd\">AAMP: Authorization failure&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_UNTRACKED_DRM_ERROR<\/td><td class=\"confluenceTd\">50<\/td><td class=\"confluenceTd\">AAMP: DRM error untracked error<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_DRM_INIT_FAILED&nbsp;<\/td><td class=\"confluenceTd\">50&nbsp;<\/td><td class=\"confluenceTd\">AAMP: DRM Initialization Failed&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_DRM_DATA_BIND_FAILED<\/td><td class=\"confluenceTd\">50&nbsp;<\/td><td class=\"confluenceTd\">AAMP: InitData-DRM Binding Failed<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_DRM_SESSIONID_EMPTY<\/td><td colspan=\"1\" class=\"confluenceTd\">50&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: DRM Session ID Empty<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_DRM_CHALLENGE_FAILED<\/td><td colspan=\"1\" class=\"confluenceTd\">50<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: DRM License Challenge Generation Failed<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_LICENCE_TIMEOUT&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">50&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: DRM License Request Timed out<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_LICENCE_REQUEST_FAILED&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">50&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: DRM License Request Failed<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_INVALID_DRM_KEY&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">50<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Invalid Key Error, from DRM<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_UNSUPPORTED_STREAM_TYPE<\/td><td colspan=\"1\" class=\"confluenceTd\">50<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Unsupported Stream Type&nbsp;<br>Unable to determine stream type for DRM Init&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_UNSUPPORTED_AUDIO_TYPE<\/td><td colspan=\"1\" class=\"confluenceTd\">50&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: No supported Audio Types in Manifest&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_FAILED_TO_GET_KEYID<\/td><td colspan=\"1\" class=\"confluenceTd\">50&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Failed to parse key id from PSSH<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_FAILED_TO_GET_ACCESS_TOKEN<\/td><td colspan=\"1\" class=\"confluenceTd\">50<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Failed to get access token from Auth Service<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_CORRUPT_DRM_METADATA&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">50<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: DRM failure due to Bad DRMMetadata in&nbsp;<br>stream&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_DRM_DECRYPT_FAILED<\/td><td colspan=\"1\" class=\"confluenceTd\">50<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: DRM Decryption Failed for Fragments<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_DRM_KEY_UPDATE_FAILED<\/td><td colspan=\"1\" class=\"confluenceTd\">50&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Failed to process DRM key<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_CORRUPT_DRM_DATA&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">51<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: DRM failure due to Corrupt DRM files&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_DEVICE_NOT_PROVISIONED<\/td><td colspan=\"1\" class=\"confluenceTd\">52&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Device not provisioned<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_HDCP_COMPLIANCE_ERROR<\/td><td colspan=\"1\" class=\"confluenceTd\">53<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: HDCP Compliance Check Failure<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_GST_PIPELINE_ERROR<\/td><td class=\"confluenceTd\">80<\/td><td class=\"confluenceTd\">AAMP: Error from gstreamer pipeline<\/td><\/tr><tr><td class=\"confluenceTd\">AAMP_TUNE_FAILED_PTS_ERROR<\/td><td class=\"confluenceTd\">80<\/td><td class=\"confluenceTd\">AAMP: Playback failed due to PTS error<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_PLAYBACK_STALLED<\/td><td colspan=\"1\" class=\"confluenceTd\">7600<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Playback was stalled due to lack of new&nbsp;<br>fragments&nbsp;<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">AAMP_TUNE_FAILURE_UNKNOWN&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">100&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">AAMP: Unknown Failure<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><p><br><\/p><div class=\" conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"bgcolor\"><h3 class=\"wp-sub-header\">Inband Closed Caption Management<\/h3><\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>To use inband closed captions, first register an event listener to discover decoder handle:&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">player.addEventListener(\"decoderAvailable\", decoderHandleAvailable);<\/pre>\n<\/div><\/div><p><br><\/p><p>Along with corresponding event handler to publish the decoder handle to CC subsystem as follows:<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">function decoderHandleAvailable(event) {&nbsp;\nconsole.log(\"decoderHandleAvailable \" + event.decoderHandle);&nbsp;\nXREReceiver.onEvent(\"onDecoderAvailable\", { decoderHandle: event.decoderHandle });&nbsp;\n}<\/pre>\n<\/div><\/div><p><br><\/p><p><span>Toggle CC display on or off at runtime:<\/span><\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">XREReceiver.onEvent(\"onClosedCaptions\", { enable: true });&nbsp;\nXREReceiver.onEvent(\"onClosedCaptions\", { enable: false });&nbsp;<\/pre>\n<\/div><\/div><p><br><\/p><p>Set CC track at runtime:<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">XREReceiver.onEvent(\"onClosedCaptions\", { setTrack: trackID });<\/pre>\n<\/div><\/div><p><br><\/p><p>Set CC style options at runtime:&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">XREReceiver.onEvent(\"onClosedCaptions\", { setOptions: defaultCCOptions});&nbsp;<\/pre>\n<\/div><\/div><p><br><\/p><p>defaultCCOptions is a JSON object of various style options and its values.<\/p><p>When closing stream, detach decoder handle:&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">XREReceiver.onEvent(\"onDecoderAvailable\", { decoderHandle: null });&nbsp;<\/pre>\n<\/div><\/div><p>Environments without the XREReceiver JS object may exist in future. Applications may use alternate CC rendering methods to&nbsp;<br>avoid dependency on XREReceiver object.&nbsp;<\/p><p>To use, turn on nativeCCRendering init configuration value to true as follows:<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">player.initConfig( { nativeCCRendering: true } );&nbsp;<\/pre>\n<\/div><\/div><p><br><\/p><p>Toggle CC display on or off at runtime:<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">player.setClosedCaptionStatus(true);&nbsp;\nplayer.setClosedCaptionStatus(false); <\/pre>\n<\/div><\/div><p><br><\/p><p>Get\/Set CC track at runtime:&nbsp;&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">player.getTextTrack();\nplayer.setTextTrack(trackIndex);&nbsp;&nbsp;<\/pre>\n<\/div><\/div><p><br><\/p><p>Get\/Set CC style options at runtime:<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">player.getTextStyleOptions();&nbsp;\nplayer.setTextStyleOptions(options);&nbsp;<\/pre>\n<\/div><\/div><p><span>options in a JSON formatted string of style options and its values.<\/span><\/p><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p><br><\/p><h2 class=\"wp-main-header wp-block-heading\">ATSC &#8211; Unified Video Engine Features<\/h2><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<p>Support for ATSC-UVE is included from 3.0 version.&nbsp;<br>A subset of UVE APIs and Events are available when using UVE JS APIs for ATSC playback.&nbsp;&nbsp;<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-APIMethods\">API Methods<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.5233%\"><col style=\"width: 77.5043%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">APIs Supported<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">load&nbsp;<\/td><td class=\"confluenceTd\"><p>URI of the Media to be played by the Video Engine. Optional 2nd<br>parameter.&nbsp;<\/p><p>Examples for new URLs Supported:<\/p>live:\/\/\/75 &ndash; ATSC Channel&nbsp;<br>hdmiin:\/\/localhost\/deviceid\/0 &#8211; HDMI Input&nbsp;<br>cvbsin:\/\/localhost\/deviceid\/0 &#8211; Composite Input&nbsp;<br>tune:\/\/atsc?frequency=5700000&amp;serviceid=3 &ndash; Direct tune to ATSC Channel<\/td><\/tr><tr><td class=\"confluenceTd\">play&nbsp;<\/td><td class=\"confluenceTd\">Start Playback \/ Resume playback.<\/td><\/tr><tr><td class=\"confluenceTd\">stop&nbsp;<\/td><td class=\"confluenceTd\">Stop playback and free resources.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">getAudioTrack&nbsp;<\/td><td class=\"confluenceTd\">Get the index of the currently selected Audio track.<\/td><\/tr><tr><td class=\"confluenceTd\">setAudioTrack<\/td><td class=\"confluenceTd\">Set the index of the Audio track to be selected.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">setAudioTrack<\/td><td class=\"confluenceTd\"><div class=\"content-wrapper\">Set the Audio track to be selected by Language and Rendition.<br>JSON formatted argument.&nbsp;<br><ul><li>language&nbsp;<\/li><li>rendition&nbsp;&nbsp;<\/li><\/ul><p>Example:&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{\"language\":\"ger\",\"rendition\":\"commentary\"}<\/pre>\n<\/div><\/div><\/div><\/td><\/tr><tr><td class=\"confluenceTd\">setAudioLanguage<\/td><td class=\"confluenceTd\">Set the language of the Audio track to be selected.<\/td><\/tr><tr><td class=\"confluenceTd\">setVideoRect&nbsp;<\/td><td class=\"confluenceTd\">Set display video rectangle coordinates. Default configuration&nbsp;<br>(0,0,1280,720)&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">getAvailableAudioTracks<\/td><td class=\"confluenceTd\"><div class=\"content-wrapper\">Returns the available audio tracks information in&nbsp;<br>JSON formatted list. Subset of parameters returned&nbsp;<br><ul><li>name&nbsp;<\/li><li>language&nbsp;<\/li><li>codec&nbsp;&nbsp;<\/li><\/ul><p>Example:&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{\"name\": \"English (AC3)\",\"language\":\"eng\",\"codec\":\"AC3\"}&nbsp;&nbsp;<\/pre>\n<\/div><\/div><\/div><\/td><\/tr><tr><td class=\"confluenceTd\">setClosedCaptionStatus<\/td><td class=\"confluenceTd\">Set the Closed Caption rendering to on\/off.&nbsp;&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">getAvailableTextTracks&nbsp;<\/td><td class=\"confluenceTd\"><div class=\"content-wrapper\">Returns the available text track (CC) information in&nbsp;<br>JSON formatted list.&nbsp;<br>Subset of parameters returned&nbsp;<br><ul><li>name&nbsp;<\/li><li>type&nbsp;<\/li><li>language&nbsp;<\/li><li>instreamId&nbsp;&nbsp;<\/li><\/ul><p>Example:&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[{\"name\":\"English (Closed Caption)\",\"type\":\"CLOSED-CAPTIONS\",\"language\":&nbsp;\n\"eng\",&rdquo;instreamId\":\"CC1\"},&nbsp;\n&nbsp;{\"name\":\"Spanish (Closed Caption)\",\"type\":\"CLOSED-CAPTIONS\",\"language\":&nbsp;\n\"spa\",\"instreamId\":\"CC2\"},&nbsp;\n&nbsp;{\"name\":\"English (Closed Caption)\",\"type\":\"CLOSED-CAPTIONS\",\"language\":&nbsp;\n\"eng\",\"instreamId\":\"SERVICE1\"},&nbsp;\n&nbsp;{\"name\":\"Spanish (Closed Caption)\",\"type\":\"CLOSED-CAPTIONS\",\"language\":&nbsp;\n\"spa\",\"instreamId\":\"SERVICE2\"}]&nbsp;<\/pre>\n<\/div><\/div><\/div><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">getTextTrack<\/td><td colspan=\"1\" class=\"confluenceTd\">Get the Index of the currently selected Text track.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">setTextTrack&nbsp;<\/td><td colspan=\"1\" class=\"confluenceTd\">Set the Index of the Text track to be selected.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">getTextStyleOptions<\/td><td colspan=\"1\" class=\"confluenceTd\">Returns the JSON formatted string of current ClosedCaption style&nbsp;<br>options and values.<\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\">setTextStyleOptions<\/td><td colspan=\"1\" class=\"confluenceTd\">Set the ClosedCaption style options to be used for rendering.&nbsp;&nbsp;<\/td><\/tr><\/tbody><\/table> <\/div><p><br><\/p><p><br><\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-NewSetofAPIsaddedforATSCParentalControlSettings\">New Set of APIs added for ATSC Parental Control Settings&nbsp;&nbsp;<\/h3><h3 id=\"AAMPUVEAPI-disableContentRestrictions(until)\"><span>disableContentRestrictions (until)&nbsp;&nbsp;<\/span><\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>Temporarily disable content restriction based on the control input provided by the &lsquo;until&rsquo; parameter.<\/li><li>Can be used for unlocking a locked channel (Channel locked due to Restrictions set)<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 23.7889%\"><col style=\"width: 20.9128%\"><col style=\"width: 55.2152%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Name&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Description&nbsp;<\/th><\/tr><tr><td class=\"confluenceTd\"><div class=\"content-wrapper\"><p>until<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{\"time\": &lt; seconds&gt;}&nbsp;<\/pre>\n<\/div><\/div><p>Or&nbsp;<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{\"programChange\":true};<\/pre>\n<\/div><\/div><\/div><\/td><td class=\"confluenceTd\">Json Object<\/td><td class=\"confluenceTd\">Provides control for automatic re-locking conditions.<br><ul><li>If &lsquo;time&rsquo; is set, the seconds will be considered as relative to current time until which the program will be unlocked.&nbsp;<\/li><li>If &lsquo;programChange&rsquo; is set, the program will be unlocked, but re-enable restriction handling on next program boundary.&nbsp;<\/li><li>If neither specified, parental control locking will be disabled until set-top reboot, or explicit call to enableContentRestrictions().&nbsp;<\/li><li>If both specified, parental control locking will be re-enabled depending on which condition occurs first.<\/li><\/ul><\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-enableContentRestrictions()\">enableContentRestrictions ()&nbsp;&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<ul><li>&nbsp;To re-enable parental control locks based on restrictions.<\/li><\/ul><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-EventsSupported\">Events Supported&nbsp;<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.3626%\"><col style=\"width: 13.9902%\"><col style=\"width: 63.6759%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Events Supported<\/th><th class=\"confluenceTh\">Value<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">playbackStarted&nbsp;<\/td><td class=\"confluenceTd\">1&nbsp;<\/td><td class=\"confluenceTd\">Tune Success [OTA , HDMIIN,COMPOSITE IN]&nbsp;<\/td><\/tr><tr><td class=\"confluenceTd\">playbackStateChanged<\/td><td class=\"confluenceTd\">14&nbsp;<\/td><td class=\"confluenceTd\"><div class=\"content-wrapper\"><p>Event when player state changes.&nbsp;<br>Valid AAMP States for ATSC OTA Playback:&nbsp;<br>: &#8220;idle&#8221;:0, &#8220;initializing&#8221;:1, &#8220;initialized&#8221;:2, &#8220;preparing&#8221;:3, &#8220;prepared&#8221;:4,&nbsp;<br>&#8220;playing&#8221;:8, &#8220;blocked&#8221;:14<br>Valid AAMP States for HDMIIN :&nbsp;<\/p><p><br><\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\"playing\":8,&ldquo;stopped&rdquo;:10<\/pre>\n<\/div><\/div><\/div><\/td><\/tr><tr><td class=\"confluenceTd\">blocked&nbsp;<\/td><td class=\"confluenceTd\">38<\/td><td class=\"confluenceTd\"><p>Blocked event is generated when player status switches to&nbsp;<br>eSTATE_BLOCKED.&nbsp;<br>The Event payload is a string to describe the reason for the&nbsp;<br>blocked state.&nbsp;<br>Event Payload:&nbsp;<br>Type : reason &ndash; string&nbsp;<br>&nbsp;Reason for restriction&nbsp;<\/p><p>Example:&nbsp;<br>&ldquo;reason&rdquo;: (ATSC Playback)&nbsp;<br>&#8220;STATUS|Low or No Signal&#8221;&nbsp;<br>&#8220;Service Pin Locked&#8221;&nbsp;<br>&#8220;STATUS|Unable to decode&#8221;&nbsp;<br>If a program is Blocked due to Restrictions set by the Application, the&nbsp;<br>&lsquo;blocked&rsquo; event&rsquo;s reason will be &#8220;Service Pin Locked&#8221;&nbsp;<br>&ldquo;reason&rdquo;: (HDMIIN)&nbsp;<br>&#8220;NO_SIGNAL&#8221;&nbsp;<br>&#8220;UNSTABLE_SIGNAL&#8221;&nbsp;<br>&#8220;NOT_SUPPORTED_SIGNAL&#8221;<\/p><\/td><\/tr><tr><td class=\"confluenceTd\">bitrateChanged&nbsp;<\/td><td class=\"confluenceTd\">11&nbsp;<\/td><td class=\"confluenceTd\"><p>Event notified when bitrate change happens. The event&nbsp;<br>payload provides video stream info Will be notified after&nbsp;<br>first tuned event for OTA and and after display settings&nbsp;<br>change.&nbsp;<\/p><p>Event Payload:&nbsp;<br>time: number,&nbsp;<br>bitRate: number,&nbsp;<br>description: string,&nbsp;<br>width: number,&nbsp;<br>height: number,&nbsp;<br>framerate: number,&nbsp;<br>position: number(not used),&nbsp;<br>cappedProfile:number (not used),&nbsp;<br>displayWidth:number (not used),&nbsp;<br>displayHeight:number (not used),&nbsp;<br>progressive:bool,&nbsp;<br>aspectRatioWidth:number,&nbsp;<br>aspectRatioHeight:number&nbsp;&nbsp;<\/p><\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<h3 id=\"AAMPUVEAPI-InitConfig\">InitConfig<\/h3><\/div>\n<\/div>\n<\/div>\n<div class=\"columnLayout single\" data-layout=\"single\">\n<div class=\"cell normal\" data-type=\"normal\">\n<div class=\"innerCell\">\n<div class=\"table-wrap\"> <table class=\"relative-table wrapped confluenceTable\"><colgroup><col style=\"width: 22.8629%\"><col style=\"width: 13.0804%\"><col style=\"width: 12.5309%\"><col style=\"width: 51.5545%\"><\/colgroup><tbody><tr><th class=\"confluenceTh\">Property&nbsp;<\/th><th class=\"confluenceTh\">Type<\/th><th class=\"confluenceTh\">Default&nbsp;<br>Value<\/th><th class=\"confluenceTh\">Description<\/th><\/tr><tr><td class=\"confluenceTd\">preferredAudioLanguage&nbsp;<\/td><td class=\"confluenceTd\">String&nbsp;<\/td><td class=\"confluenceTd\">en<\/td><td class=\"confluenceTd\"><p>ISO-639 audio language preference; for more than one language, provide comma delimited list from highest to lowest priority:<\/p><p>&lsquo;&lt;HIGHEST&gt;,&lt;&#8230;&gt;,&lt;LOWEST&gt;&rsquo;<\/p><\/td><\/tr><tr><td class=\"confluenceTd\">nativeCCRendering&nbsp;<\/td><td class=\"confluenceTd\">Boolean&nbsp;<\/td><td class=\"confluenceTd\">False&nbsp;<\/td><td class=\"confluenceTd\">Use native Closed Caption support in AAMP<\/td><\/tr><\/tbody><\/table> <\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Unified Video Engine (UVE) APIs Overview AAMP is an open source native video engine that [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":10015,"menu_order":27,"comment_status":"open","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-10122","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AAMP UVE - API - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AAMP UVE - API - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"Unified Video Engine (UVE) APIs Overview AAMP is an open source native video engine that [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-25T05:18:35+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"24 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/\",\"name\":\"AAMP UVE - API - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T09:10:49+00:00\",\"dateModified\":\"2025-03-25T05:18:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Entertainment\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Advanced Adaptive Media Player (AAMP)\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"AAMP UVE &#8211; API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AAMP UVE - API - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/","og_locale":"en_US","og_type":"article","og_title":"AAMP UVE - API - RDK Documentation Portal | Documentation","og_description":"Unified Video Engine (UVE) APIs Overview AAMP is an open source native video engine that [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2025-03-25T05:18:35+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"24 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/","name":"AAMP UVE - API - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T09:10:49+00:00","dateModified":"2025-03-25T05:18:35+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/aamp_uve_-_api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Entertainment","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"Advanced Adaptive Media Player (AAMP)","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/advanced_adaptive_media_player_aamp\/"},{"@type":"ListItem","position":6,"name":"AAMP UVE &#8211; API"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=10122"}],"version-history":[{"count":4,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10122\/revisions"}],"predecessor-version":[{"id":11992,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10122\/revisions\/11992"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10015"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=10122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}