eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IlotWW9nb21heWEgTWFoYXJhbmEiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiQXNocmFmIEJoYW51IEtvdGhhcGV0YSIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMTQ0OTAwODQ4IiwiZGlhZ3JhbU5hbWUiOiJ1bWwuZHJhd2lvIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6IkFBTVAgXHUwMDI2IEZPRyBSZXRyeSAvIEZhaWxvdmVyIC8gVGltZW91dHMiLCJ0YnN0eWxlIjoidG9wIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjp0cnVlLCJtYXhTY2FsZSI6IjEiLCJvd25pbmdQYWdlSWQiOjEzNDIyMTgwOCwiZWRpdGFibGUiOmZhbHNlLCJjZW9JZCI6MTQ5ODg0MzE1LCJwYWdlSWQiOiIiLCJsYm94Ijp0cnVlLCJzZXJ2ZXJDb25maWciOnsiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoxLCJtYWNyb0lkIjoiZjY1YjdmZTktMzVlOS00ODI2LWFjOTEtOTA0MzFjNTcyMWY3IiwicHJldmlld05hbWUiOiJ1bWwuZHJhd2lvLnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiJudWxsIiwic2ltcGxlVmlld2VyIjpmYWxzZSwibGFzdE1vZGlmaWVkIjoxNjIwMjI2NjM2MDAwLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IlotWW9nb21heWEgTWFoYXJhbmEiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiQXNocmFmIEJoYW51IEtvdGhhcGV0YSIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMTQ0OTAxMzAwIiwiZGlhZ3JhbU5hbWUiOiJBQU1QIERBU0ggTWFuaWZlc3QgRG93bmxvYWQgUmV0cnkgbG9naWMuZHJhd2lvIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6IkFBTVAgXHUwMDI2IEZPRyBSZXRyeSAvIEZhaWxvdmVyIC8gVGltZW91dHMiLCJ0YnN0eWxlIjoidG9wIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjp0cnVlLCJtYXhTY2FsZSI6IjEiLCJvd25pbmdQYWdlSWQiOjEzNDIyMTgwOCwiZWRpdGFibGUiOmZhbHNlLCJjZW9JZCI6MTQ5ODg0MzE1LCJwYWdlSWQiOiIiLCJsYm94Ijp0cnVlLCJzZXJ2ZXJDb25maWciOnsiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoxLCJtYWNyb0lkIjoiZDQwNGM0ZjctYjk4Zi00ZDcwLWJiODUtZWYyNGM4NTk2NzQyIiwicHJldmlld05hbWUiOiJBQU1QIERBU0ggTWFuaWZlc3QgRG93bmxvYWQgUmV0cnkgbG9naWMuZHJhd2lvLnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiJudWxsIiwic2ltcGxlVmlld2VyIjpmYWxzZSwibGFzdE1vZGlmaWVkIjoxNjIwMjI3NjIzMDAwLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IlotWW9nb21heWEgTWFoYXJhbmEiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiQXNocmFmIEJoYW51IEtvdGhhcGV0YSIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMTQ0OTAxMzMwIiwiZGlhZ3JhbU5hbWUiOiJBQU1QIEZyYWdtZW50IERvd25sb2FkIFJldHJ5IGxvZ2ljICh3aXRob3V0IFRTQiktR2xpZmZ5LmRyYXdpbyIsImFzcGVjdCI6IiIsImxpbmtzIjoiYXV0byIsImNlb05hbWUiOiJBQU1QIFx1MDAyNiBGT0cgUmV0cnkgLyBGYWlsb3ZlciAvIFRpbWVvdXRzIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjoxMzQyMjE4MDgsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjE0OTg4NDMxNSwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MSwibWFjcm9JZCI6IjExNTA5MGJkLWEzYzUtNDgwMy04ZjUwLTFmYjYwNzEyZWQ3ZCIsInByZXZpZXdOYW1lIjoiQUFNUCBGcmFnbWVudCBEb3dubG9hZCBSZXRyeSBsb2dpYyAod2l0aG91dCBUU0IpLUdsaWZmeS5kcmF3aW8ucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6Im51bGwiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJsYXN0TW9kaWZpZWQiOjE2MjAyMjg0MDkwMDAsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IlotWW9nb21heWEgTWFoYXJhbmEiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiQXNocmFmIEJoYW51IEtvdGhhcGV0YSIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMTQ0OTAxMzA0IiwiZGlhZ3JhbU5hbWUiOiJBQU1QIEhMUyBNYWluIE1hbmlmZXN0IERvd25sb2FkIFJldHJ5IGxvZ2ljICh3aXRob3V0IFRTQiktR2xpZmZ5LmRyYXdpbyIsImFzcGVjdCI6IiIsImxpbmtzIjoiYXV0byIsImNlb05hbWUiOiJBQU1QIFx1MDAyNiBGT0cgUmV0cnkgLyBGYWlsb3ZlciAvIFRpbWVvdXRzIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjoxMzQyMjE4MDgsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjE0OTg4NDMxNSwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MSwibWFjcm9JZCI6IjcwODBmOTVjLWQ1YTEtNDZkZC05NTI4LWMyNTdkZjkzYzUzMiIsInByZXZpZXdOYW1lIjoiQUFNUCBITFMgTWFpbiBNYW5pZmVzdCBEb3dubG9hZCBSZXRyeSBsb2dpYyAod2l0aG91dCBUU0IpLUdsaWZmeS5kcmF3aW8ucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6Im51bGwiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJsYXN0TW9kaWZpZWQiOjE2MjAyODY4NTEwMDAsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IlotWW9nb21heWEgTWFoYXJhbmEiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiQXNocmFmIEJoYW51IEtvdGhhcGV0YSIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMTQ0OTAxMzMyIiwiZGlhZ3JhbU5hbWUiOiJBQU1QLUZPR190dW5lX3JlcXVlc3RfcmV0cnlsb2dpY191bWwtR2xpZmZ5LmRyYXdpbyIsImFzcGVjdCI6IiIsImxpbmtzIjoiYXV0byIsImNlb05hbWUiOiJBQU1QIFx1MDAyNiBGT0cgUmV0cnkgLyBGYWlsb3ZlciAvIFRpbWVvdXRzIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjoxMzQyMjE4MDgsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjE0OTg4NDMxNSwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MSwibWFjcm9JZCI6ImRhMWI5YWQyLTYzNTEtNDYxNy04YThmLWFjMWMxNThhZWQxZiIsInByZXZpZXdOYW1lIjoiQUFNUC1GT0dfdHVuZV9yZXF1ZXN0X3JldHJ5bG9naWNfdW1sLUdsaWZmeS5kcmF3aW8ucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6Im51bGwiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJsYXN0TW9kaWZpZWQiOjE2MjAyODc5NjgwMDAsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
http 4xx (and 502 Bad Gateway) are considered fatal errors for a given download attempt. No retry of the same URL will be performed. For other 5xx failures, single retry will be attempted after configurable delay (default 1s).
AAMP Video Engine Timeouts for fragment, manifest, and license requests are all configurable - defaults as follows:
- #define CURL_FRAGMENT_DL_TIMEOUT 10L /**< Curl timeout for fragment download */
- #define DEFAULT_PLAYLIST_DL_TIMEOUT 10L /**< Curl timeout for playlist download */
- #define DEFAULT_CURL_TIMEOUT 5L /**< Default timeout for other (i.e. license) Curl downloads */
- #define DEFAULT_CURL_CONNECTTIMEOUT 3L /**< Curl socket connection timeout */
FOG is a separate service involved with Client-Side IP Linear Time Shift Buffer (TSB) support, caching fragments and generating virtual playlists that grow and eventually cull. As such, it shares many of the same responsibilities and behaviors as AAMP running in AAMP-only playback scenarios. FOG configuration includes:
waitTimeBeforeRetryHttp5xxMS - 1s
downloadTimeoutMS - 5s
expirationTimeMS - 30s
minFragmentDownloadDelayMS - 10ms; behind ENABLE_ABR_TESTING for randomized simulated download latency
maxFragmentDownloadDelayMS - 100ms; behind ENABLE_ABR_TESTING for randomized simulated download latency
tsbPreemptiveDownloadDelay - 5
vfsContextDumpDuration - 10000 - periodic virtual file system state logging
bitrateCheating - false
maxConcurrentDownloads - 1
sleepFraction - 1.5
manifestUpdate - 60s
defaultFetchTimeout - 60s
writeFailThreshold - 3 (write failure threshold before disabling TSB)
bitrateInit - initial bitrate while tuning normal content
bitrateInit4K - initial bitrate while tuning 4k content
fragmentFailThreshold - 5
cullLength - 1500 / 3600 (25 minutes or 1 hour)