media3/docs/doc/reference/allclasses-index.html
rohks d24163ccea Update JavaDoc for 2.18.1
#minor-release

PiperOrigin-RevId: 461177918
(cherry picked from commit 7a10dd1580c3c960d746fcb575aad2b47b5a87ce)
2022-07-15 12:25:38 +00:00

7618 lines
543 KiB
HTML

<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head><!-- start favicons snippet, use https://realfavicongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"><link rel="manifest" href="/assets/site.webmanifest"><link rel="mask-icon" href="/assets/safari-pinned-tab.svg" color="#fc4d50"><link rel="shortcut icon" href="/assets/favicon.ico"><meta name="msapplication-TileColor" content="#ffc40d"><meta name="msapplication-config" content="/assets/browserconfig.xml"><meta name="theme-color" content="#ffffff"><!-- end favicons snippet -->
<title>All Classes (ExoPlayer library)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="All Classes (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var data = {"i0":2,"i1":32,"i2":2,"i3":2,"i4":2,"i5":2,"i6":2,"i7":2,"i8":32,"i9":2,"i10":2,"i11":2,"i12":2,"i13":2,"i14":2,"i15":2,"i16":2,"i17":2,"i18":2,"i19":2,"i20":2,"i21":2,"i22":2,"i23":2,"i24":2,"i25":2,"i26":2,"i27":2,"i28":2,"i29":2,"i30":2,"i31":2,"i32":2,"i33":2,"i34":2,"i35":2,"i36":2,"i37":2,"i38":2,"i39":2,"i40":2,"i41":2,"i42":2,"i43":2,"i44":2,"i45":2,"i46":1,"i47":2,"i48":2,"i49":1,"i50":2,"i51":2,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2,"i57":32,"i58":2,"i59":2,"i60":32,"i61":1,"i62":1,"i63":1,"i64":2,"i65":8,"i66":32,"i67":2,"i68":32,"i69":2,"i70":1,"i71":2,"i72":2,"i73":2,"i74":2,"i75":1,"i76":1,"i77":2,"i78":32,"i79":1,"i80":1,"i81":32,"i82":2,"i83":2,"i84":2,"i85":2,"i86":2,"i87":2,"i88":1,"i89":32,"i90":2,"i91":2,"i92":2,"i93":8,"i94":2,"i95":2,"i96":2,"i97":2,"i98":2,"i99":2,"i100":1,"i101":1,"i102":2,"i103":8,"i104":1,"i105":2,"i106":1,"i107":8,"i108":8,"i109":1,"i110":32,"i111":8,"i112":8,"i113":2,"i114":2,"i115":2,"i116":1,"i117":1,"i118":2,"i119":2,"i120":2,"i121":2,"i122":2,"i123":2,"i124":2,"i125":2,"i126":2,"i127":2,"i128":2,"i129":2,"i130":8,"i131":2,"i132":2,"i133":2,"i134":2,"i135":2,"i136":1,"i137":2,"i138":1,"i139":2,"i140":1,"i141":1,"i142":2,"i143":2,"i144":2,"i145":2,"i146":2,"i147":2,"i148":2,"i149":2,"i150":2,"i151":32,"i152":32,"i153":32,"i154":32,"i155":32,"i156":32,"i157":32,"i158":32,"i159":32,"i160":32,"i161":32,"i162":32,"i163":32,"i164":32,"i165":32,"i166":32,"i167":32,"i168":32,"i169":32,"i170":32,"i171":32,"i172":32,"i173":32,"i174":32,"i175":32,"i176":32,"i177":32,"i178":32,"i179":1,"i180":8,"i181":1,"i182":2,"i183":2,"i184":2,"i185":8,"i186":2,"i187":2,"i188":32,"i189":1,"i190":2,"i191":32,"i192":2,"i193":1,"i194":1,"i195":2,"i196":2,"i197":1,"i198":1,"i199":2,"i200":2,"i201":32,"i202":2,"i203":2,"i204":2,"i205":2,"i206":2,"i207":2,"i208":2,"i209":2,"i210":2,"i211":1,"i212":1,"i213":1,"i214":2,"i215":2,"i216":2,"i217":1,"i218":1,"i219":2,"i220":2,"i221":8,"i222":32,"i223":1,"i224":1,"i225":1,"i226":1,"i227":2,"i228":2,"i229":2,"i230":2,"i231":2,"i232":2,"i233":1,"i234":2,"i235":2,"i236":2,"i237":1,"i238":2,"i239":2,"i240":8,"i241":1,"i242":2,"i243":2,"i244":2,"i245":2,"i246":8,"i247":2,"i248":2,"i249":2,"i250":1,"i251":8,"i252":2,"i253":2,"i254":32,"i255":2,"i256":32,"i257":32,"i258":32,"i259":2,"i260":2,"i261":2,"i262":1,"i263":1,"i264":2,"i265":2,"i266":2,"i267":2,"i268":8,"i269":2,"i270":2,"i271":1,"i272":2,"i273":2,"i274":8,"i275":1,"i276":2,"i277":1,"i278":2,"i279":1,"i280":1,"i281":1,"i282":1,"i283":2,"i284":2,"i285":2,"i286":2,"i287":8,"i288":2,"i289":2,"i290":2,"i291":2,"i292":32,"i293":32,"i294":2,"i295":1,"i296":2,"i297":2,"i298":2,"i299":8,"i300":2,"i301":32,"i302":8,"i303":2,"i304":1,"i305":2,"i306":32,"i307":32,"i308":2,"i309":2,"i310":2,"i311":2,"i312":1,"i313":2,"i314":2,"i315":8,"i316":32,"i317":32,"i318":2,"i319":2,"i320":2,"i321":2,"i322":2,"i323":2,"i324":2,"i325":2,"i326":2,"i327":2,"i328":2,"i329":2,"i330":2,"i331":2,"i332":2,"i333":2,"i334":2,"i335":2,"i336":2,"i337":2,"i338":8,"i339":32,"i340":2,"i341":2,"i342":2,"i343":2,"i344":2,"i345":2,"i346":2,"i347":2,"i348":2,"i349":2,"i350":2,"i351":2,"i352":2,"i353":2,"i354":2,"i355":2,"i356":2,"i357":2,"i358":2,"i359":2,"i360":1,"i361":2,"i362":2,"i363":32,"i364":2,"i365":2,"i366":2,"i367":2,"i368":2,"i369":2,"i370":2,"i371":2,"i372":2,"i373":2,"i374":32,"i375":2,"i376":2,"i377":32,"i378":2,"i379":2,"i380":32,"i381":2,"i382":2,"i383":32,"i384":32,"i385":2,"i386":1,"i387":1,"i388":1,"i389":1,"i390":8,"i391":2,"i392":1,"i393":8,"i394":1,"i395":2,"i396":1,"i397":2,"i398":2,"i399":2,"i400":2,"i401":8,"i402":2,"i403":2,"i404":2,"i405":1,"i406":8,"i407":32,"i408":1,"i409":2,"i410":1,"i411":1,"i412":1,"i413":2,"i414":32,"i415":2,"i416":2,"i417":2,"i418":2,"i419":2,"i420":1,"i421":2,"i422":2,"i423":2,"i424":1,"i425":2,"i426":2,"i427":2,"i428":1,"i429":32,"i430":2,"i431":8,"i432":32,"i433":1,"i434":1,"i435":2,"i436":1,"i437":2,"i438":1,"i439":2,"i440":2,"i441":2,"i442":2,"i443":2,"i444":2,"i445":2,"i446":2,"i447":1,"i448":2,"i449":2,"i450":32,"i451":2,"i452":1,"i453":1,"i454":1,"i455":1,"i456":2,"i457":8,"i458":32,"i459":1,"i460":1,"i461":1,"i462":2,"i463":1,"i464":1,"i465":1,"i466":2,"i467":2,"i468":2,"i469":2,"i470":8,"i471":32,"i472":1,"i473":2,"i474":1,"i475":1,"i476":32,"i477":2,"i478":2,"i479":2,"i480":1,"i481":2,"i482":1,"i483":1,"i484":1,"i485":2,"i486":2,"i487":2,"i488":2,"i489":2,"i490":2,"i491":2,"i492":2,"i493":2,"i494":2,"i495":2,"i496":2,"i497":2,"i498":2,"i499":2,"i500":2,"i501":2,"i502":2,"i503":2,"i504":2,"i505":2,"i506":2,"i507":2,"i508":8,"i509":2,"i510":2,"i511":2,"i512":2,"i513":2,"i514":1,"i515":2,"i516":2,"i517":2,"i518":2,"i519":2,"i520":2,"i521":2,"i522":2,"i523":2,"i524":2,"i525":2,"i526":1,"i527":2,"i528":2,"i529":2,"i530":2,"i531":8,"i532":2,"i533":2,"i534":2,"i535":8,"i536":2,"i537":32,"i538":1,"i539":2,"i540":2,"i541":2,"i542":2,"i543":2,"i544":8,"i545":2,"i546":2,"i547":32,"i548":32,"i549":2,"i550":2,"i551":2,"i552":2,"i553":2,"i554":2,"i555":2,"i556":2,"i557":2,"i558":2,"i559":2,"i560":2,"i561":2,"i562":2,"i563":2,"i564":2,"i565":2,"i566":2,"i567":2,"i568":32,"i569":8,"i570":2,"i571":2,"i572":2,"i573":2,"i574":8,"i575":2,"i576":2,"i577":1,"i578":1,"i579":2,"i580":2,"i581":8,"i582":2,"i583":2,"i584":2,"i585":2,"i586":1,"i587":1,"i588":2,"i589":2,"i590":1,"i591":2,"i592":1,"i593":2,"i594":2,"i595":1,"i596":2,"i597":2,"i598":2,"i599":32,"i600":2,"i601":2,"i602":2,"i603":2,"i604":2,"i605":2,"i606":32,"i607":2,"i608":2,"i609":2,"i610":2,"i611":2,"i612":8,"i613":1,"i614":1,"i615":1,"i616":1,"i617":8,"i618":8,"i619":1,"i620":2,"i621":2,"i622":2,"i623":2,"i624":1,"i625":1,"i626":2,"i627":8,"i628":1,"i629":8,"i630":32,"i631":8,"i632":8,"i633":2,"i634":2,"i635":2,"i636":2,"i637":2,"i638":2,"i639":2,"i640":2,"i641":1,"i642":2,"i643":2,"i644":2,"i645":8,"i646":2,"i647":2,"i648":2,"i649":2,"i650":2,"i651":2,"i652":2,"i653":2,"i654":2,"i655":2,"i656":2,"i657":2,"i658":2,"i659":8,"i660":1,"i661":2,"i662":2,"i663":2,"i664":2,"i665":2,"i666":2,"i667":2,"i668":2,"i669":2,"i670":1,"i671":1,"i672":1,"i673":1,"i674":2,"i675":1,"i676":1,"i677":2,"i678":1,"i679":8,"i680":1,"i681":2,"i682":1,"i683":2,"i684":2,"i685":32,"i686":2,"i687":2,"i688":2,"i689":2,"i690":1,"i691":32,"i692":2,"i693":2,"i694":2,"i695":2,"i696":32,"i697":2,"i698":1,"i699":2,"i700":2,"i701":1,"i702":2,"i703":32,"i704":2,"i705":2,"i706":2,"i707":1,"i708":1,"i709":1,"i710":2,"i711":1,"i712":1,"i713":2,"i714":8,"i715":2,"i716":2,"i717":8,"i718":1,"i719":2,"i720":8,"i721":8,"i722":2,"i723":2,"i724":1,"i725":8,"i726":2,"i727":2,"i728":2,"i729":2,"i730":2,"i731":2,"i732":2,"i733":2,"i734":2,"i735":2,"i736":2,"i737":2,"i738":2,"i739":2,"i740":2,"i741":2,"i742":2,"i743":2,"i744":2,"i745":1,"i746":1,"i747":2,"i748":2,"i749":2,"i750":32,"i751":32,"i752":2,"i753":2,"i754":2,"i755":2,"i756":2,"i757":1,"i758":1,"i759":2,"i760":1,"i761":2,"i762":2,"i763":1,"i764":1,"i765":1,"i766":2,"i767":1,"i768":1,"i769":32,"i770":1,"i771":1,"i772":1,"i773":1,"i774":1,"i775":1,"i776":2,"i777":1,"i778":1,"i779":2,"i780":1,"i781":2,"i782":2,"i783":8,"i784":32,"i785":2,"i786":1,"i787":1,"i788":1,"i789":2,"i790":1,"i791":2,"i792":2,"i793":2,"i794":2,"i795":2,"i796":2,"i797":32,"i798":2,"i799":32,"i800":2,"i801":2,"i802":2,"i803":2,"i804":2,"i805":2,"i806":2,"i807":2,"i808":2,"i809":1,"i810":32,"i811":2,"i812":2,"i813":2,"i814":32,"i815":2,"i816":2,"i817":2,"i818":2,"i819":2,"i820":2,"i821":8,"i822":2,"i823":2,"i824":2,"i825":2,"i826":2,"i827":2,"i828":8,"i829":2,"i830":1,"i831":2,"i832":2,"i833":2,"i834":2,"i835":2,"i836":2,"i837":2,"i838":2,"i839":2,"i840":2,"i841":8,"i842":32,"i843":2,"i844":2,"i845":1,"i846":1,"i847":2,"i848":2,"i849":2,"i850":2,"i851":2,"i852":1,"i853":1,"i854":32,"i855":2,"i856":2,"i857":32,"i858":32,"i859":2,"i860":1,"i861":32,"i862":32,"i863":32,"i864":2,"i865":32,"i866":32,"i867":32,"i868":2,"i869":1,"i870":1,"i871":2,"i872":1,"i873":2,"i874":2,"i875":1,"i876":1,"i877":2,"i878":2,"i879":1,"i880":1,"i881":1,"i882":32,"i883":32,"i884":2,"i885":32,"i886":2,"i887":2,"i888":2,"i889":32,"i890":2,"i891":2,"i892":2,"i893":2,"i894":8,"i895":2,"i896":2,"i897":2,"i898":2,"i899":2,"i900":1,"i901":1,"i902":2,"i903":2,"i904":2,"i905":2,"i906":2,"i907":2,"i908":2,"i909":2,"i910":2,"i911":2,"i912":8,"i913":1,"i914":32,"i915":32,"i916":1,"i917":1,"i918":32,"i919":32,"i920":32,"i921":32,"i922":32,"i923":32,"i924":2,"i925":1,"i926":2,"i927":2,"i928":32,"i929":2,"i930":2,"i931":2,"i932":2,"i933":32,"i934":2,"i935":1,"i936":2,"i937":2,"i938":1,"i939":2,"i940":2,"i941":2,"i942":2,"i943":2,"i944":2,"i945":2,"i946":2,"i947":1,"i948":1,"i949":2,"i950":2,"i951":2,"i952":2,"i953":8,"i954":2,"i955":2,"i956":2,"i957":1,"i958":8,"i959":1,"i960":32,"i961":32,"i962":2,"i963":2,"i964":1,"i965":1,"i966":2,"i967":1,"i968":2,"i969":2,"i970":2,"i971":2,"i972":2,"i973":2,"i974":2,"i975":2,"i976":2,"i977":2,"i978":2,"i979":2,"i980":2,"i981":1,"i982":1,"i983":2,"i984":1,"i985":2,"i986":2,"i987":1,"i988":2,"i989":1,"i990":1,"i991":2,"i992":1,"i993":2,"i994":1,"i995":1,"i996":1,"i997":1,"i998":2,"i999":2,"i1000":1,"i1001":2,"i1002":2,"i1003":2,"i1004":2,"i1005":2,"i1006":2,"i1007":2,"i1008":2,"i1009":2,"i1010":2,"i1011":2,"i1012":2,"i1013":1,"i1014":2,"i1015":2,"i1016":2,"i1017":2,"i1018":2,"i1019":2,"i1020":2,"i1021":2,"i1022":2,"i1023":2,"i1024":1,"i1025":2,"i1026":2,"i1027":1,"i1028":1,"i1029":1,"i1030":1,"i1031":1,"i1032":1,"i1033":1,"i1034":1,"i1035":1,"i1036":2,"i1037":2,"i1038":1,"i1039":2,"i1040":2,"i1041":2,"i1042":2,"i1043":2,"i1044":2,"i1045":2,"i1046":2,"i1047":2,"i1048":1,"i1049":1,"i1050":2,"i1051":2,"i1052":2,"i1053":2,"i1054":2,"i1055":8,"i1056":2,"i1057":2,"i1058":2,"i1059":2,"i1060":2,"i1061":2,"i1062":2,"i1063":2,"i1064":2,"i1065":2,"i1066":2,"i1067":1,"i1068":1,"i1069":1,"i1070":2,"i1071":1,"i1072":1,"i1073":32,"i1074":2,"i1075":1,"i1076":1,"i1077":8,"i1078":1,"i1079":2,"i1080":2,"i1081":2,"i1082":2,"i1083":32,"i1084":2,"i1085":2,"i1086":2,"i1087":2,"i1088":1,"i1089":2,"i1090":2,"i1091":2,"i1092":2,"i1093":2,"i1094":2,"i1095":2,"i1096":32,"i1097":2,"i1098":32,"i1099":32,"i1100":2,"i1101":1,"i1102":2,"i1103":2,"i1104":1,"i1105":1,"i1106":2,"i1107":2,"i1108":2,"i1109":2,"i1110":2,"i1111":2,"i1112":2,"i1113":1,"i1114":2,"i1115":1,"i1116":2,"i1117":2,"i1118":2,"i1119":2,"i1120":1,"i1121":2,"i1122":2,"i1123":32,"i1124":2,"i1125":2,"i1126":2,"i1127":1,"i1128":1,"i1129":2,"i1130":32,"i1131":2,"i1132":2,"i1133":1,"i1134":32,"i1135":2,"i1136":2,"i1137":1,"i1138":2,"i1139":2,"i1140":2,"i1141":2,"i1142":1,"i1143":2,"i1144":1,"i1145":2,"i1146":1,"i1147":2,"i1148":1,"i1149":8,"i1150":32,"i1151":2,"i1152":2,"i1153":2,"i1154":2,"i1155":2,"i1156":2,"i1157":1,"i1158":1,"i1159":32,"i1160":2,"i1161":2,"i1162":32,"i1163":1,"i1164":2,"i1165":2,"i1166":1,"i1167":32,"i1168":2,"i1169":2,"i1170":2,"i1171":2,"i1172":2,"i1173":8,"i1174":32,"i1175":8,"i1176":8,"i1177":32,"i1178":2,"i1179":2,"i1180":2,"i1181":2,"i1182":2,"i1183":2,"i1184":2,"i1185":2,"i1186":1,"i1187":2,"i1188":32,"i1189":2,"i1190":1,"i1191":2,"i1192":1,"i1193":2,"i1194":2,"i1195":2,"i1196":2,"i1197":2,"i1198":2,"i1199":2,"i1200":2,"i1201":2,"i1202":2,"i1203":8,"i1204":2,"i1205":2,"i1206":2,"i1207":2,"i1208":2,"i1209":2,"i1210":2,"i1211":32,"i1212":32,"i1213":2,"i1214":2,"i1215":2,"i1216":2,"i1217":2,"i1218":2,"i1219":2,"i1220":2,"i1221":1,"i1222":2};
var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],8:["t4","Exception Summary"],32:["t6","Annotation Types Summary"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "./";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
</div>
<div class="allClassesContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Interface Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Exception Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Annotation Types Summary</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AacUtil.html" title="class in com.google.android.exoplayer2.audio">AacUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for handling AAC audio streams.</div>
</th>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AacUtil.AacAudioObjectType.html" title="annotation in com.google.android.exoplayer2.audio">AacUtil.AacAudioObjectType</a></td>
<th class="colLast" scope="row">
<div class="block">Valid AAC Audio object types.</div>
</th>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AacUtil.Config.html" title="class in com.google.android.exoplayer2.audio">AacUtil.Config</a></td>
<th class="colLast" scope="row">
<div class="block">Holds sample format information for AAC audio.</div>
</th>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/AbstractConcatenatedTimeline.html" title="class in com.google.android.exoplayer2">AbstractConcatenatedTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">Abstract base class for the concatenation of one or more <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>s.</div>
</th>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/Ac3Extractor.html" title="class in com.google.android.exoplayer2.extractor.ts">Ac3Extractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from (E-)AC-3 bitstreams.</div>
</th>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/Ac3Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">Ac3Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous (E-)AC-3 byte stream and extracts individual samples.</div>
</th>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/Ac3Util.html" title="class in com.google.android.exoplayer2.audio">Ac3Util</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for parsing Dolby TrueHD and (E-)AC-3 syncframes.</div>
</th>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/Ac3Util.SyncFrameInfo.html" title="class in com.google.android.exoplayer2.audio">Ac3Util.SyncFrameInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Holds sample format information as presented by a syncframe header.</div>
</th>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/Ac3Util.SyncFrameInfo.StreamType.html" title="annotation in com.google.android.exoplayer2.audio">Ac3Util.SyncFrameInfo.StreamType</a></td>
<th class="colLast" scope="row">
<div class="block">AC3 stream types.</div>
</th>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/Ac4Extractor.html" title="class in com.google.android.exoplayer2.extractor.ts">Ac4Extractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from AC-4 bitstreams.</div>
</th>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/Ac4Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">Ac4Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous AC-4 byte stream and extracts individual samples.</div>
</th>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/Ac4Util.html" title="class in com.google.android.exoplayer2.audio">Ac4Util</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for parsing AC-4 frames, which are access units in AC-4 bitstreams.</div>
</th>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/Ac4Util.SyncFrameInfo.html" title="class in com.google.android.exoplayer2.audio">Ac4Util.SyncFrameInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Holds sample format information as presented by a syncframe header.</div>
</th>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.html" title="class in com.google.android.exoplayer2.testutil">Action</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for actions to perform during playback tests.</div>
</th>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.AddMediaItems.html" title="class in com.google.android.exoplayer2.testutil">Action.AddMediaItems</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/ExoPlayer.html#addMediaSources(java.util.List)"><code>ExoPlayer.addMediaSources(List)</code></a>.</div>
</th>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.ClearMediaItems.html" title="class in com.google.android.exoplayer2.testutil">Action.ClearMediaItems</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#clearMediaItems()"><code>Player.clearMediaItems()</code></a>}.</div>
</th>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.ClearVideoSurface.html" title="class in com.google.android.exoplayer2.testutil">Action.ClearVideoSurface</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#clearVideoSurface()"><code>Player.clearVideoSurface()</code></a>.</div>
</th>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.ExecuteRunnable.html" title="class in com.google.android.exoplayer2.testutil">Action.ExecuteRunnable</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <code>Runnable.run()</code>.</div>
</th>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.MoveMediaItem.html" title="class in com.google.android.exoplayer2.testutil">Action.MoveMediaItem</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#moveMediaItem(int,int)"><code>Player.moveMediaItem(int, int)</code></a>.</div>
</th>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.PlayUntilPosition.html" title="class in com.google.android.exoplayer2.testutil">Action.PlayUntilPosition</a></td>
<th class="colLast" scope="row">
<div class="block">Schedules a play action to be executed, waits until the player reaches the specified position,
and pauses the player again.</div>
</th>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.Prepare.html" title="class in com.google.android.exoplayer2.testutil">Action.Prepare</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#prepare()"><code>Player.prepare()</code></a>.</div>
</th>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.RemoveMediaItem.html" title="class in com.google.android.exoplayer2.testutil">Action.RemoveMediaItem</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#removeMediaItem(int)"><code>Player.removeMediaItem(int)</code></a>.</div>
</th>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.RemoveMediaItems.html" title="class in com.google.android.exoplayer2.testutil">Action.RemoveMediaItems</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#removeMediaItems(int,int)"><code>Player.removeMediaItems(int, int)</code></a>.</div>
</th>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.Seek.html" title="class in com.google.android.exoplayer2.testutil">Action.Seek</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#seekTo(long)"><code>Player.seekTo(long)</code></a> or <a href="com/google/android/exoplayer2/Player.html#seekTo(int,long)"><code>Player.seekTo(int, long)</code></a>.</div>
</th>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SendMessages.html" title="class in com.google.android.exoplayer2.testutil">Action.SendMessages</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/ExoPlayer.html#createMessage(com.google.android.exoplayer2.PlayerMessage.Target)"><code>ExoPlayer.createMessage(Target)</code></a> and <a href="com/google/android/exoplayer2/PlayerMessage.html#send()"><code>PlayerMessage.send()</code></a>.</div>
</th>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetAudioAttributes.html" title="class in com.google.android.exoplayer2.testutil">Action.SetAudioAttributes</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/ExoPlayer.html#setAudioAttributes(com.google.android.exoplayer2.audio.AudioAttributes,boolean)"><code>ExoPlayer.setAudioAttributes(AudioAttributes, boolean)</code></a>.</div>
</th>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetMediaItems.html" title="class in com.google.android.exoplayer2.testutil">Action.SetMediaItems</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/ExoPlayer.html#setMediaSources(java.util.List,int,long)"><code>ExoPlayer.setMediaSources(List, int, long)</code></a>.</div>
</th>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetMediaItemsResetPosition.html" title="class in com.google.android.exoplayer2.testutil">Action.SetMediaItemsResetPosition</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/ExoPlayer.html#setMediaSources(java.util.List,boolean)"><code>ExoPlayer.setMediaSources(List, boolean)</code></a>.</div>
</th>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetPlaybackParameters.html" title="class in com.google.android.exoplayer2.testutil">Action.SetPlaybackParameters</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#setPlaybackParameters(com.google.android.exoplayer2.PlaybackParameters)"><code>Player.setPlaybackParameters(PlaybackParameters)</code></a>.</div>
</th>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetPlayWhenReady.html" title="class in com.google.android.exoplayer2.testutil">Action.SetPlayWhenReady</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#setPlayWhenReady(boolean)"><code>Player.setPlayWhenReady(boolean)</code></a>.</div>
</th>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetRendererDisabled.html" title="class in com.google.android.exoplayer2.testutil">Action.SetRendererDisabled</a></td>
<th class="colLast" scope="row">
<div class="block">Updates the <a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector.Parameters</code></a> of a <a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector</code></a> to specify whether the
renderer at a given index should be disabled.</div>
</th>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetRepeatMode.html" title="class in com.google.android.exoplayer2.testutil">Action.SetRepeatMode</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)"><code>Player.setRepeatMode(int)</code></a>.</div>
</th>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetShuffleModeEnabled.html" title="class in com.google.android.exoplayer2.testutil">Action.SetShuffleModeEnabled</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#setShuffleModeEnabled(boolean)"><code>Player.setShuffleModeEnabled(boolean)</code></a>.</div>
</th>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetShuffleOrder.html" title="class in com.google.android.exoplayer2.testutil">Action.SetShuffleOrder</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/ExoPlayer.html#setShuffleOrder(com.google.android.exoplayer2.source.ShuffleOrder)"><code>ExoPlayer.setShuffleOrder(ShuffleOrder)</code></a> .</div>
</th>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.SetVideoSurface.html" title="class in com.google.android.exoplayer2.testutil">Action.SetVideoSurface</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#setVideoSurface(android.view.Surface)"><code>Player.setVideoSurface(Surface)</code></a>.</div>
</th>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.Stop.html" title="class in com.google.android.exoplayer2.testutil">Action.Stop</a></td>
<th class="colLast" scope="row">
<div class="block">Calls <a href="com/google/android/exoplayer2/Player.html#stop()"><code>Player.stop()</code></a> or <a href="com/google/android/exoplayer2/Player.html#stop(boolean)"><code>Player.stop(boolean)</code></a>.</div>
</th>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.ThrowPlaybackException.html" title="class in com.google.android.exoplayer2.testutil">Action.ThrowPlaybackException</a></td>
<th class="colLast" scope="row">
<div class="block">Throws a playback exception on the playback thread.</div>
</th>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.WaitForIsLoading.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForIsLoading</a></td>
<th class="colLast" scope="row">
<div class="block">Waits for a specified loading state, returning either immediately or after a call to <a href="com/google/android/exoplayer2/Player.Listener.html#onIsLoadingChanged(boolean)"><code>Player.Listener.onIsLoadingChanged(boolean)</code></a>.</div>
</th>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.WaitForMessage.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForMessage</a></td>
<th class="colLast" scope="row">
<div class="block">Waits for a player message to arrive.</div>
</th>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.WaitForPendingPlayerCommands.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPendingPlayerCommands</a></td>
<th class="colLast" scope="row">
<div class="block">Waits until the player acknowledged all pending player commands.</div>
</th>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.WaitForPlaybackState.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPlaybackState</a></td>
<th class="colLast" scope="row">
<div class="block">Waits for a specified playback state, returning either immediately or after a call to <a href="com/google/android/exoplayer2/Player.Listener.html#onPlaybackStateChanged(@com.google.android.exoplayer2.Player.Stateint)"><code>Player.Listener.onPlaybackStateChanged(int)</code></a>.</div>
</th>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.WaitForPlayWhenReady.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPlayWhenReady</a></td>
<th class="colLast" scope="row">
<div class="block">Waits for a specified playWhenReady value, returning either immediately or after a call to
<a href="com/google/android/exoplayer2/Player.Listener.html#onPlayWhenReadyChanged(boolean,@com.google.android.exoplayer2.Player.PlayWhenReadyChangeReasonint)"><code>Player.Listener.onPlayWhenReadyChanged(boolean, int)</code></a>.</div>
</th>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.WaitForPositionDiscontinuity.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForPositionDiscontinuity</a></td>
<th class="colLast" scope="row">
<div class="block">Waits for <a href="com/google/android/exoplayer2/Player.Listener.html#onPositionDiscontinuity(com.google.android.exoplayer2.Player.PositionInfo,com.google.android.exoplayer2.Player.PositionInfo,@com.google.android.exoplayer2.Player.DiscontinuityReasonint)"><code>Player.Listener.onPositionDiscontinuity(Player.PositionInfo,
Player.PositionInfo, int)</code></a>.</div>
</th>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Action.WaitForTimelineChanged.html" title="class in com.google.android.exoplayer2.testutil">Action.WaitForTimelineChanged</a></td>
<th class="colLast" scope="row">
<div class="block">Waits for <a href="com/google/android/exoplayer2/Player.Listener.html#onTimelineChanged(com.google.android.exoplayer2.Timeline,@com.google.android.exoplayer2.Player.TimelineChangeReasonint)"><code>Player.Listener.onTimelineChanged(Timeline, int)</code></a>.</div>
</th>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ActionSchedule.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule</a></td>
<th class="colLast" scope="row">
<div class="block">Schedules a sequence of <a href="com/google/android/exoplayer2/testutil/Action.html" title="class in com.google.android.exoplayer2.testutil"><code>Action</code></a>s for execution during a test.</div>
</th>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ActionSchedule.Builder.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/testutil/ActionSchedule.html" title="class in com.google.android.exoplayer2.testutil"><code>ActionSchedule</code></a> instances.</div>
</th>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ActionSchedule.Callback.html" title="interface in com.google.android.exoplayer2.testutil">ActionSchedule.Callback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback to notify listener that the action schedule has finished.</div>
</th>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ActionSchedule.PlayerRunnable.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule.PlayerRunnable</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a wrapper for a <a href="https://developer.android.com/reference/java/lang/Runnable.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Runnable</code></a> which has access to the player.</div>
</th>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ActionSchedule.PlayerTarget.html" title="class in com.google.android.exoplayer2.testutil">ActionSchedule.PlayerTarget</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a wrapper for a <a href="com/google/android/exoplayer2/PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2"><code>PlayerMessage.Target</code></a> which has access to the player when handling messages.</div>
</th>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ActionSchedule.PlayerTarget.Callback.html" title="interface in com.google.android.exoplayer2.testutil">ActionSchedule.PlayerTarget.Callback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback to be called when message arrives.</div>
</th>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/AdaptationSet.html" title="class in com.google.android.exoplayer2.source.dash.manifest">AdaptationSet</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a set of interchangeable encoded versions of a media content component.</div>
</th>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.html" title="class in com.google.android.exoplayer2.trackselection">AdaptiveTrackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">A bandwidth based adaptive <a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>ExoTrackSelection</code></a>, whose selected track is updated to be the
one of highest quality given the current network conditions and the state of the buffer.</div>
</th>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.AdaptationCheckpoint.html" title="class in com.google.android.exoplayer2.trackselection">AdaptiveTrackSelection.AdaptationCheckpoint</a></td>
<th class="colLast" scope="row">
<div class="block">Checkpoint to determine allocated bandwidth.</div>
</th>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.Factory.html" title="class in com.google.android.exoplayer2.trackselection">AdaptiveTrackSelection.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.html" title="class in com.google.android.exoplayer2.trackselection"><code>AdaptiveTrackSelection</code></a> instances.</div>
</th>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/AdditionalFailureInfo.html" title="class in com.google.android.exoplayer2.testutil">AdditionalFailureInfo</a></td>
<th class="colLast" scope="row">
<div class="block">A JUnit <code>Rule</code> that attaches additional info to any errors/exceptions thrown by the test.</div>
</th>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.html" title="class in com.google.android.exoplayer2.ui">AdOverlayInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Provides information about an overlay view shown on top of an ad view group.</div>
</th>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.Builder.html" title="class in com.google.android.exoplayer2.ui">AdOverlayInfo.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/ui/AdOverlayInfo.html" title="class in com.google.android.exoplayer2.ui"><code>AdOverlayInfo</code></a> instances.</div>
</th>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/AdOverlayInfo.Purpose.html" title="annotation in com.google.android.exoplayer2.ui">AdOverlayInfo.Purpose</a></td>
<th class="colLast" scope="row">
<div class="block">The purpose of the overlay.</div>
</th>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.html" title="class in com.google.android.exoplayer2.source.ads">AdPlaybackState</a></td>
<th class="colLast" scope="row">
<div class="block">Represents ad group times and information on the state and URIs of ads within each ad group.</div>
</th>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.AdGroup.html" title="class in com.google.android.exoplayer2.source.ads">AdPlaybackState.AdGroup</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a group of ads, with information about their states.</div>
</th>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdPlaybackState.AdState.html" title="annotation in com.google.android.exoplayer2.source.ads">AdPlaybackState.AdState</a></td>
<th class="colLast" scope="row">
<div class="block">Represents the state of an ad in an ad group.</div>
</th>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdsLoader.html" title="interface in com.google.android.exoplayer2.source.ads">AdsLoader</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for loaders of ads, which can be used with <a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads"><code>AdsMediaSource</code></a>.</div>
</th>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdsLoader.EventListener.html" title="interface in com.google.android.exoplayer2.source.ads">AdsLoader.EventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for ads loader events.</div>
</th>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdsLoader.Provider.html" title="interface in com.google.android.exoplayer2.source.ads">AdsLoader.Provider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides <a href="com/google/android/exoplayer2/source/ads/AdsLoader.html" title="interface in com.google.android.exoplayer2.source.ads"><code>AdsLoader</code></a> instances for media items that have <a href="com/google/android/exoplayer2/MediaItem.LocalConfiguration.html#adsConfiguration"><code>ad tag URIs</code></a>.</div>
</th>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> that inserts ads linearly into a provided content media source.</div>
</th>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.AdLoadException.html" title="class in com.google.android.exoplayer2.source.ads">AdsMediaSource.AdLoadException</a></td>
<th class="colLast" scope="row">
<div class="block">Wrapper for exceptions that occur while loading ads, which are notified via <a href="com/google/android/exoplayer2/source/MediaSourceEventListener.html#onLoadError(int,com.google.android.exoplayer2.source.MediaSource.MediaPeriodId,com.google.android.exoplayer2.source.LoadEventInfo,com.google.android.exoplayer2.source.MediaLoadData,java.io.IOException,boolean)"><code>MediaSourceEventListener.onLoadError(int, MediaPeriodId, LoadEventInfo, MediaLoadData,
IOException, boolean)</code></a>.</div>
</th>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/AdsMediaSource.AdLoadException.Type.html" title="annotation in com.google.android.exoplayer2.source.ads">AdsMediaSource.AdLoadException.Type</a></td>
<th class="colLast" scope="row">
<div class="block">Types of ad load exceptions.</div>
</th>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/AdtsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts">AdtsExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from AAC bit streams with ADTS framing.</div>
</th>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/AdtsExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.ts">AdtsExtractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/AdtsReader.html" title="class in com.google.android.exoplayer2.extractor.ts">AdtsReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous ADTS byte stream and extracts individual frames.</div>
</th>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/AdViewProvider.html" title="interface in com.google.android.exoplayer2.ui">AdViewProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides information about views for the ad playback UI.</div>
</th>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/crypto/AesCipherDataSink.html" title="class in com.google.android.exoplayer2.upstream.crypto">AesCipherDataSink</a></td>
<th class="colLast" scope="row">
<div class="block">A wrapping <a href="com/google/android/exoplayer2/upstream/DataSink.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSink</code></a> that encrypts the data being consumed.</div>
</th>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/crypto/AesCipherDataSource.html" title="class in com.google.android.exoplayer2.upstream.crypto">AesCipherDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> that decrypts the data read from an upstream source.</div>
</th>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/crypto/AesFlushingCipher.html" title="class in com.google.android.exoplayer2.upstream.crypto">AesFlushingCipher</a></td>
<th class="colLast" scope="row">
<div class="block">A flushing variant of a AES/CTR/NoPadding <a href="https://developer.android.com/reference/javax/crypto/Cipher.html" title="class or interface in javax.crypto" class="externalLink" target="_top"><code>Cipher</code></a>.</div>
</th>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Allocation.html" title="class in com.google.android.exoplayer2.upstream">Allocation</a></td>
<th class="colLast" scope="row">
<div class="block">An allocation within a byte array.</div>
</th>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Allocator.html" title="interface in com.google.android.exoplayer2.upstream">Allocator</a></td>
<th class="colLast" scope="row">
<div class="block">A source of allocations.</div>
</th>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Allocator.AllocationNode.html" title="interface in com.google.android.exoplayer2.upstream">Allocator.AllocationNode</a></td>
<th class="colLast" scope="row">
<div class="block">A node in a chain of <a href="com/google/android/exoplayer2/upstream/Allocation.html" title="class in com.google.android.exoplayer2.upstream"><code>Allocations</code></a>.</div>
</th>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/amr/AmrExtractor.html" title="class in com.google.android.exoplayer2.extractor.amr">AmrExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the AMR containers format (either AMR or AMR-WB).</div>
</th>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/amr/AmrExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.amr">AmrExtractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/AnalyticsCollector.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsCollector</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for data collectors that forward analytics events to <a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListeners</code></a>.</div>
</th>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics">AnalyticsListener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for analytics events.</div>
</th>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.EventFlags.html" title="annotation in com.google.android.exoplayer2.analytics">AnalyticsListener.EventFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Events that can be reported via <a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.analytics.AnalyticsListener.Events)"><code>AnalyticsListener.onEvents(Player, Events)</code></a>.</div>
</th>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.Events.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsListener.Events</a></td>
<th class="colLast" scope="row">
<div class="block">A set of <a href="com/google/android/exoplayer2/analytics/AnalyticsListener.EventFlags.html" title="annotation in com.google.android.exoplayer2.analytics"><code>AnalyticsListener.EventFlags</code></a>.</div>
</th>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.EventTime.html" title="class in com.google.android.exoplayer2.analytics">AnalyticsListener.EventTime</a></td>
<th class="colLast" scope="row">
<div class="block">Time information of an event.</div>
</th>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/ApicFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">ApicFrame</a></td>
<th class="colLast" scope="row">
<div class="block">APIC (Attached Picture) ID3 frame.</div>
</th>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/dvbsi/AppInfoTable.html" title="class in com.google.android.exoplayer2.metadata.dvbsi">AppInfoTable</a></td>
<th class="colLast" scope="row">
<div class="block">A representation of a DVB Application Information Table (AIT).</div>
</th>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/dvbsi/AppInfoTableDecoder.html" title="class in com.google.android.exoplayer2.metadata.dvbsi">AppInfoTableDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decoder for the DVB Application Information Table (AIT).</div>
</th>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/AspectRatioFrameLayout.html" title="class in com.google.android.exoplayer2.ui">AspectRatioFrameLayout</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="https://developer.android.com/reference/android/widget/FrameLayout.html" title="class or interface in android.widget" class="externalLink" target="_top"><code>FrameLayout</code></a> that resizes itself to match a specified aspect ratio.</div>
</th>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/AspectRatioFrameLayout.AspectRatioListener.html" title="interface in com.google.android.exoplayer2.ui">AspectRatioFrameLayout.AspectRatioListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener to be notified about changes of the aspect ratios of this view.</div>
</th>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/AspectRatioFrameLayout.ResizeMode.html" title="annotation in com.google.android.exoplayer2.ui">AspectRatioFrameLayout.ResizeMode</a></td>
<th class="colLast" scope="row">
<div class="block">Resize modes for <a href="com/google/android/exoplayer2/ui/AspectRatioFrameLayout.html" title="class in com.google.android.exoplayer2.ui"><code>AspectRatioFrameLayout</code></a>.</div>
</th>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/Assertions.html" title="class in com.google.android.exoplayer2.util">Assertions</a></td>
<th class="colLast" scope="row">
<div class="block">Provides methods for asserting the truth of expressions and properties.</div>
</th>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/AssetContentProvider.html" title="class in com.google.android.exoplayer2.testutil">AssetContentProvider</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="https://developer.android.com/reference/android/content/ContentProvider.html" title="class or interface in android.content" class="externalLink" target="_top"><code>ContentProvider</code></a> for reading asset data.</div>
</th>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/AssetDataSource.html" title="class in com.google.android.exoplayer2.upstream">AssetDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> for reading from a local asset.</div>
</th>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/AssetDataSource.AssetDataSourceException.html" title="class in com.google.android.exoplayer2.upstream">AssetDataSource.AssetDataSourceException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top"><code>IOException</code></a> is encountered reading a local asset.</div>
</th>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/AtomicFile.html" title="class in com.google.android.exoplayer2.util">AtomicFile</a></td>
<th class="colLast" scope="row">
<div class="block">A helper class for performing atomic operations on a file by creating a backup file until a write
has successfully completed.</div>
</th>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes</a></td>
<th class="colLast" scope="row">
<div class="block">Attributes for audio playback, which configure the underlying platform <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</th>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioAttributes.AudioAttributesV21.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.AudioAttributesV21</a></td>
<th class="colLast" scope="row">
<div class="block">A direct wrapper around <a href="https://developer.android.com/reference/android/media/AudioAttributes.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioAttributes</code></a>.</div>
</th>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioAttributes.Builder.html" title="class in com.google.android.exoplayer2.audio">AudioAttributes.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/audio/AudioAttributes.html" title="class in com.google.android.exoplayer2.audio"><code>AudioAttributes</code></a>.</div>
</th>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioCapabilities.html" title="class in com.google.android.exoplayer2.audio">AudioCapabilities</a></td>
<th class="colLast" scope="row">
<div class="block">Represents the set of audio formats that a device is capable of playing.</div>
</th>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioCapabilitiesReceiver.html" title="class in com.google.android.exoplayer2.audio">AudioCapabilitiesReceiver</a></td>
<th class="colLast" scope="row">
<div class="block">Receives broadcast events indicating changes to the device's audio capabilities, notifying a
<a href="com/google/android/exoplayer2/audio/AudioCapabilitiesReceiver.Listener.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioCapabilitiesReceiver.Listener</code></a> when audio capability changes occur.</div>
</th>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioCapabilitiesReceiver.Listener.html" title="interface in com.google.android.exoplayer2.audio">AudioCapabilitiesReceiver.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener notified when audio capabilities change.</div>
</th>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio">AudioProcessor</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for audio processors, which take audio data as input and transform it, potentially
modifying its channel count, encoding and/or sample rate.</div>
</th>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioProcessor.AudioFormat.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.AudioFormat</a></td>
<th class="colLast" scope="row">
<div class="block">PCM audio format that may be handled by an audio processor.</div>
</th>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioProcessor.UnhandledAudioFormatException.html" title="class in com.google.android.exoplayer2.audio">AudioProcessor.UnhandledAudioFormatException</a></td>
<th class="colLast" scope="row">
<div class="block">Exception thrown when a processor can't be configured for a given input audio format.</div>
</th>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioRendererEventListener.html" title="interface in com.google.android.exoplayer2.audio">AudioRendererEventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener of audio <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> events.</div>
</th>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioRendererEventListener.EventDispatcher.html" title="class in com.google.android.exoplayer2.audio">AudioRendererEventListener.EventDispatcher</a></td>
<th class="colLast" scope="row">
<div class="block">Dispatches events to an <a href="com/google/android/exoplayer2/audio/AudioRendererEventListener.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioRendererEventListener</code></a>.</div>
</th>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio">AudioSink</a></td>
<th class="colLast" scope="row">
<div class="block">A sink that consumes audio data.</div>
</th>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioSink.ConfigurationException.html" title="class in com.google.android.exoplayer2.audio">AudioSink.ConfigurationException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a failure occurs configuring the sink.</div>
</th>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioSink.InitializationException.html" title="class in com.google.android.exoplayer2.audio">AudioSink.InitializationException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a failure occurs initializing the sink.</div>
</th>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioSink.Listener.html" title="interface in com.google.android.exoplayer2.audio">AudioSink.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for audio sink events.</div>
</th>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioSink.SinkFormatSupport.html" title="annotation in com.google.android.exoplayer2.audio">AudioSink.SinkFormatSupport</a></td>
<th class="colLast" scope="row">
<div class="block">The level of support the sink provides for a format.</div>
</th>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioSink.UnexpectedDiscontinuityException.html" title="class in com.google.android.exoplayer2.audio">AudioSink.UnexpectedDiscontinuityException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when the sink encounters an unexpected timestamp discontinuity.</div>
</th>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AudioSink.WriteException.html" title="class in com.google.android.exoplayer2.audio">AudioSink.WriteException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a failure occurs writing to the sink.</div>
</th>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/AuxEffectInfo.html" title="class in com.google.android.exoplayer2.audio">AuxEffectInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Represents auxiliary effect information, which can be used to attach an auxiliary effect to an
underlying <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</th>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/AvcConfig.html" title="class in com.google.android.exoplayer2.video">AvcConfig</a></td>
<th class="colLast" scope="row">
<div class="block">AVC configuration data.</div>
</th>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/avi/AviExtractor.html" title="class in com.google.android.exoplayer2.extractor.avi">AviExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the AVI container format.</div>
</th>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter</a></td>
<th class="colLast" scope="row">
<div class="block">Provides estimates of the currently available bandwidth.</div>
</th>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/BandwidthMeter.EventListener.html" title="interface in com.google.android.exoplayer2.upstream">BandwidthMeter.EventListener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener of <a href="com/google/android/exoplayer2/upstream/BandwidthMeter.html" title="interface in com.google.android.exoplayer2.upstream"><code>BandwidthMeter</code></a> events.</div>
</th>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/BandwidthMeter.EventListener.EventDispatcher.html" title="class in com.google.android.exoplayer2.upstream">BandwidthMeter.EventListener.EventDispatcher</a></td>
<th class="colLast" scope="row">
<div class="block">Event dispatcher which allows listener registration.</div>
</th>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/BaseAudioProcessor.html" title="class in com.google.android.exoplayer2.audio">BaseAudioProcessor</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for audio processors that keep an output buffer and an internal buffer that is reused
whenever input is queued.</div>
</th>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/BaseDataSource.html" title="class in com.google.android.exoplayer2.upstream">BaseDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">Base <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> implementation to keep a list of <a href="com/google/android/exoplayer2/upstream/TransferListener.html" title="interface in com.google.android.exoplayer2.upstream"><code>TransferListener</code></a>s.</div>
</th>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/BaseMediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk">BaseMediaChunk</a></td>
<th class="colLast" scope="row">
<div class="block">A base implementation of <a href="com/google/android/exoplayer2/source/chunk/MediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>MediaChunk</code></a> that outputs to a <a href="com/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput.html" title="class in com.google.android.exoplayer2.source.chunk"><code>BaseMediaChunkOutput</code></a>.</div>
</th>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/BaseMediaChunkIterator.html" title="class in com.google.android.exoplayer2.source.chunk">BaseMediaChunkIterator</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for <a href="com/google/android/exoplayer2/source/chunk/MediaChunkIterator.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>MediaChunkIterator</code></a>s.</div>
</th>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/BaseMediaChunkOutput.html" title="class in com.google.android.exoplayer2.source.chunk">BaseMediaChunkOutput</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/chunk/ChunkExtractor.TrackOutputProvider.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkExtractor.TrackOutputProvider</code></a> that provides <a href="com/google/android/exoplayer2/extractor/TrackOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>TrackOutputs</code></a> based on a
predefined mapping from track type to output.</div>
</th>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/BaseMediaSource.html" title="class in com.google.android.exoplayer2.source">BaseMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Base <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> implementation to handle parallel reuse and to keep a list of <a href="com/google/android/exoplayer2/source/MediaSourceEventListener.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceEventListener</code></a>s.</div>
</th>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/BasePlayer.html" title="class in com.google.android.exoplayer2">BasePlayer</a></td>
<th class="colLast" scope="row">
<div class="block">Abstract base <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> which implements common implementation independent methods.</div>
</th>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/BaseRenderer.html" title="class in com.google.android.exoplayer2">BaseRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract base class suitable for most <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> implementations.</div>
</th>
</tr>
<tr id="i127" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/BaseTrackSelection.html" title="class in com.google.android.exoplayer2.trackselection">BaseTrackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract base class suitable for most <a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>ExoTrackSelection</code></a> implementations.</div>
</th>
</tr>
<tr id="i128" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/BaseUrl.html" title="class in com.google.android.exoplayer2.source.dash.manifest">BaseUrl</a></td>
<th class="colLast" scope="row">
<div class="block">A base URL, as defined by ISO 23009-1, 2nd edition, 5.6.</div>
</th>
</tr>
<tr id="i129" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/BaseUrlExclusionList.html" title="class in com.google.android.exoplayer2.source.dash">BaseUrlExclusionList</a></td>
<th class="colLast" scope="row">
<div class="block">Holds the state of <a href="com/google/android/exoplayer2/source/dash/BaseUrlExclusionList.html#exclude(com.google.android.exoplayer2.source.dash.manifest.BaseUrl,long)"><code>excluded</code></a> base URLs to be used to <a href="com/google/android/exoplayer2/source/dash/BaseUrlExclusionList.html#selectBaseUrl(java.util.List)"><code>select</code></a> a base URL based on these exclusions.</div>
</th>
</tr>
<tr id="i130" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/BehindLiveWindowException.html" title="class in com.google.android.exoplayer2.source">BehindLiveWindowException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a live playback falls behind the available media window.</div>
</th>
</tr>
<tr id="i131" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/BinaryFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">BinaryFrame</a></td>
<th class="colLast" scope="row">
<div class="block">Binary ID3 frame.</div>
</th>
</tr>
<tr id="i132" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.html" title="class in com.google.android.exoplayer2.extractor">BinarySearchSeeker</a></td>
<th class="colLast" scope="row">
<div class="block">A seeker that supports seeking within a stream by searching for the target frame using binary
search.</div>
</th>
</tr>
<tr id="i133" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.BinarySearchSeekMap.html" title="class in com.google.android.exoplayer2.extractor">BinarySearchSeeker.BinarySearchSeekMap</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/extractor/SeekMap.html" title="interface in com.google.android.exoplayer2.extractor"><code>SeekMap</code></a> implementation that returns the estimated byte location from <a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.SeekOperationParams.html#calculateNextSearchBytePosition(long,long,long,long,long,long)"><code>BinarySearchSeeker.SeekOperationParams.calculateNextSearchBytePosition(long, long, long, long, long, long)</code></a> for
each <a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.BinarySearchSeekMap.html#getSeekPoints(long)"><code>BinarySearchSeeker.BinarySearchSeekMap.getSeekPoints(long)</code></a> query.</div>
</th>
</tr>
<tr id="i134" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.DefaultSeekTimestampConverter.html" title="class in com.google.android.exoplayer2.extractor">BinarySearchSeeker.DefaultSeekTimestampConverter</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.SeekTimestampConverter.html" title="interface in com.google.android.exoplayer2.extractor"><code>BinarySearchSeeker.SeekTimestampConverter</code></a> implementation that returns the seek time itself as the
timestamp for a seek time position.</div>
</th>
</tr>
<tr id="i135" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.SeekOperationParams.html" title="class in com.google.android.exoplayer2.extractor">BinarySearchSeeker.SeekOperationParams</a></td>
<th class="colLast" scope="row">
<div class="block">Contains parameters for a pending seek operation by <a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.html" title="class in com.google.android.exoplayer2.extractor"><code>BinarySearchSeeker</code></a>.</div>
</th>
</tr>
<tr id="i136" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.SeekTimestampConverter.html" title="interface in com.google.android.exoplayer2.extractor">BinarySearchSeeker.SeekTimestampConverter</a></td>
<th class="colLast" scope="row">
<div class="block">A converter that converts seek time in stream time into target timestamp for the <a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.html" title="class in com.google.android.exoplayer2.extractor"><code>BinarySearchSeeker</code></a>.</div>
</th>
</tr>
<tr id="i137" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.TimestampSearchResult.html" title="class in com.google.android.exoplayer2.extractor">BinarySearchSeeker.TimestampSearchResult</a></td>
<th class="colLast" scope="row">
<div class="block">Represents possible search results for <a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.TimestampSeeker.html#searchForTimestamp(com.google.android.exoplayer2.extractor.ExtractorInput,long)"><code>BinarySearchSeeker.TimestampSeeker.searchForTimestamp(ExtractorInput, long)</code></a>.</div>
</th>
</tr>
<tr id="i138" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/BinarySearchSeeker.TimestampSeeker.html" title="interface in com.google.android.exoplayer2.extractor">BinarySearchSeeker.TimestampSeeker</a></td>
<th class="colLast" scope="row">
<div class="block">A seeker that looks for a given timestamp from an input.</div>
</th>
</tr>
<tr id="i139" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/Buffer.html" title="class in com.google.android.exoplayer2.decoder">Buffer</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for buffers with flags.</div>
</th>
</tr>
<tr id="i140" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Bundleable.html" title="interface in com.google.android.exoplayer2">Bundleable</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for classes whose instance can be stored in a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundle</code></a> by <a href="com/google/android/exoplayer2/Bundleable.html#toBundle()" target="_top"><code>Bundleable.toBundle()</code></a> and
can be restored from the <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a> by using the static <code>CREATOR</code> field that implements
<a href="com/google/android/exoplayer2/Bundleable.Creator.html" title="interface in com.google.android.exoplayer2"><code>Bundleable.Creator</code></a>.</div>
</th>
</tr>
<tr id="i141" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Bundleable.Creator.html" title="interface in com.google.android.exoplayer2">Bundleable.Creator</a>&lt;<a href="com/google/android/exoplayer2/Bundleable.Creator.html" title="type parameter in Bundleable.Creator">T</a> extends <a href="com/google/android/exoplayer2/Bundleable.html" title="interface in com.google.android.exoplayer2">Bundleable</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">Interface for the static <code>CREATOR</code> field of <a href="com/google/android/exoplayer2/Bundleable.html" title="interface in com.google.android.exoplayer2"><code>Bundleable</code></a> classes.</div>
</th>
</tr>
<tr id="i142" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/BundleableUtil.html" title="class in com.google.android.exoplayer2.util">BundleableUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utilities for <a href="com/google/android/exoplayer2/Bundleable.html" title="interface in com.google.android.exoplayer2"><code>Bundleable</code></a>.</div>
</th>
</tr>
<tr id="i143" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/BundledChunkExtractor.html" title="class in com.google.android.exoplayer2.source.chunk">BundledChunkExtractor</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/chunk/ChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkExtractor</code></a> implementation that uses ExoPlayer app-bundled <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractors</code></a>.</div>
</th>
</tr>
<tr id="i144" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/BundledExtractorsAdapter.html" title="class in com.google.android.exoplayer2.source">BundledExtractorsAdapter</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/ProgressiveMediaExtractor.html" title="interface in com.google.android.exoplayer2.source"><code>ProgressiveMediaExtractor</code></a> built on top of <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a> instances, whose
implementation classes are bundled in the app.</div>
</th>
</tr>
<tr id="i145" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/BundledHlsMediaChunkExtractor.html" title="class in com.google.android.exoplayer2.source.hls">BundledHlsMediaChunkExtractor</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/hls/HlsMediaChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.hls"><code>HlsMediaChunkExtractor</code></a> implementation that uses ExoPlayer app-bundled <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractors</code></a>.</div>
</th>
</tr>
<tr id="i146" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/BundleListRetriever.html" title="class in com.google.android.exoplayer2">BundleListRetriever</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="https://developer.android.com/reference/android/os/Binder.html" title="class or interface in android.os" class="externalLink"><code>Binder</code></a> to transfer a list of <a href="https://developer.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundles</code></a> across processes by splitting the
list into multiple transactions.</div>
</th>
</tr>
<tr id="i147" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/BundleUtil.html" title="class in com.google.android.exoplayer2.util">BundleUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utilities for <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Bundle</code></a>.</div>
</th>
</tr>
<tr id="i148" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ByteArrayDataSink.html" title="class in com.google.android.exoplayer2.upstream">ByteArrayDataSink</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSink.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSink</code></a> for writing to a byte array.</div>
</th>
</tr>
<tr id="i149" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ByteArrayDataSource.html" title="class in com.google.android.exoplayer2.upstream">ByteArrayDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> for reading from a byte array.</div>
</th>
</tr>
<tr id="i150" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.html" title="class in com.google.android.exoplayer2">C</a></td>
<th class="colLast" scope="row">
<div class="block">Defines constants used by the library.</div>
</th>
</tr>
<tr id="i151" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.AudioAllowedCapturePolicy.html" title="annotation in com.google.android.exoplayer2">C.AudioAllowedCapturePolicy</a></td>
<th class="colLast" scope="row">
<div class="block">Capture policies for audio attributes.</div>
</th>
</tr>
<tr id="i152" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.AudioContentType.html" title="annotation in com.google.android.exoplayer2">C.AudioContentType</a></td>
<th class="colLast" scope="row">
<div class="block">Content types for audio attributes.</div>
</th>
</tr>
<tr id="i153" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.AudioFlags.html" title="annotation in com.google.android.exoplayer2">C.AudioFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags for audio attributes.</div>
</th>
</tr>
<tr id="i154" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.AudioUsage.html" title="annotation in com.google.android.exoplayer2">C.AudioUsage</a></td>
<th class="colLast" scope="row">
<div class="block">Usage types for audio attributes.</div>
</th>
</tr>
<tr id="i155" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.BufferFlags.html" title="annotation in com.google.android.exoplayer2">C.BufferFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags which can apply to a buffer containing a media sample.</div>
</th>
</tr>
<tr id="i156" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.ColorRange.html" title="annotation in com.google.android.exoplayer2">C.ColorRange</a></td>
<th class="colLast" scope="row">
<div class="block">Video color range.</div>
</th>
</tr>
<tr id="i157" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.ColorSpace.html" title="annotation in com.google.android.exoplayer2">C.ColorSpace</a></td>
<th class="colLast" scope="row">
<div class="block">Video colorspaces.</div>
</th>
</tr>
<tr id="i158" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.ColorTransfer.html" title="annotation in com.google.android.exoplayer2">C.ColorTransfer</a></td>
<th class="colLast" scope="row">
<div class="block">Video color transfer characteristics.</div>
</th>
</tr>
<tr id="i159" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.ContentType.html" title="annotation in com.google.android.exoplayer2">C.ContentType</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a streaming or other media type.</div>
</th>
</tr>
<tr id="i160" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.CryptoMode.html" title="annotation in com.google.android.exoplayer2">C.CryptoMode</a></td>
<th class="colLast" scope="row">
<div class="block">Crypto modes for a codec.</div>
</th>
</tr>
<tr id="i161" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.CryptoType.html" title="annotation in com.google.android.exoplayer2">C.CryptoType</a></td>
<th class="colLast" scope="row">
<div class="block">Types of crypto implementation.</div>
</th>
</tr>
<tr id="i162" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.DataType.html" title="annotation in com.google.android.exoplayer2">C.DataType</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a type of data.</div>
</th>
</tr>
<tr id="i163" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.Encoding.html" title="annotation in com.google.android.exoplayer2">C.Encoding</a></td>
<th class="colLast" scope="row">
<div class="block">Represents an audio encoding, or an invalid or unset value.</div>
</th>
</tr>
<tr id="i164" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.FormatSupport.html" title="annotation in com.google.android.exoplayer2">C.FormatSupport</a></td>
<th class="colLast" scope="row">
<div class="block">Level of renderer support for a format.</div>
</th>
</tr>
<tr id="i165" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.NetworkType.html" title="annotation in com.google.android.exoplayer2">C.NetworkType</a></td>
<th class="colLast" scope="row">
<div class="block">Network connection type.</div>
</th>
</tr>
<tr id="i166" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.PcmEncoding.html" title="annotation in com.google.android.exoplayer2">C.PcmEncoding</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a PCM audio encoding, or an invalid or unset value.</div>
</th>
</tr>
<tr id="i167" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.Projection.html" title="annotation in com.google.android.exoplayer2">C.Projection</a></td>
<th class="colLast" scope="row">
<div class="block">Video projection types.</div>
</th>
</tr>
<tr id="i168" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.RoleFlags.html" title="annotation in com.google.android.exoplayer2">C.RoleFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Track role flags.</div>
</th>
</tr>
<tr id="i169" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.SelectionFlags.html" title="annotation in com.google.android.exoplayer2">C.SelectionFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Track selection flags.</div>
</th>
</tr>
<tr id="i170" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.SelectionReason.html" title="annotation in com.google.android.exoplayer2">C.SelectionReason</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a reason for selection.</div>
</th>
</tr>
<tr id="i171" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.SpatializationBehavior.html" title="annotation in com.google.android.exoplayer2">C.SpatializationBehavior</a></td>
<th class="colLast" scope="row">
<div class="block">Represents the behavior affecting whether spatialization will be used.</div>
</th>
</tr>
<tr id="i172" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.StereoMode.html" title="annotation in com.google.android.exoplayer2">C.StereoMode</a></td>
<th class="colLast" scope="row">
<div class="block">The stereo mode for 360/3D/VR videos.</div>
</th>
</tr>
<tr id="i173" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.StreamType.html" title="annotation in com.google.android.exoplayer2">C.StreamType</a></td>
<th class="colLast" scope="row">
<div class="block">Stream types for an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</th>
</tr>
<tr id="i174" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.TrackType.html" title="annotation in com.google.android.exoplayer2">C.TrackType</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a type of media track.</div>
</th>
</tr>
<tr id="i175" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.VideoChangeFrameRateStrategy.html" title="annotation in com.google.android.exoplayer2">C.VideoChangeFrameRateStrategy</a></td>
<th class="colLast" scope="row">
<div class="block">Strategies for calling <a href="https://developer.android.com/reference/android/view/Surface.html#setFrameRate(float,int,int)" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface.setFrameRate(float, int, int)</code></a>.</div>
</th>
</tr>
<tr id="i176" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.VideoOutputMode.html" title="annotation in com.google.android.exoplayer2">C.VideoOutputMode</a></td>
<th class="colLast" scope="row">
<div class="block">Video decoder output modes.</div>
</th>
</tr>
<tr id="i177" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.VideoScalingMode.html" title="annotation in com.google.android.exoplayer2">C.VideoScalingMode</a></td>
<th class="colLast" scope="row">
<div class="block">Video scaling modes for <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a>-based renderers.</div>
</th>
</tr>
<tr id="i178" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/C.WakeMode.html" title="annotation in com.google.android.exoplayer2">C.WakeMode</a></td>
<th class="colLast" scope="row">
<div class="block">Mode specifying whether the player should hold a WakeLock and a WifiLock.</div>
</th>
</tr>
<tr id="i179" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache">Cache</a></td>
<th class="colLast" scope="row">
<div class="block">A cache that supports partial caching of resources.</div>
</th>
</tr>
<tr id="i180" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/Cache.CacheException.html" title="class in com.google.android.exoplayer2.upstream.cache">Cache.CacheException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error is encountered when writing data.</div>
</th>
</tr>
<tr id="i181" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/Cache.Listener.html" title="interface in com.google.android.exoplayer2.upstream.cache">Cache.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener of <a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache"><code>Cache</code></a> events.</div>
</th>
</tr>
<tr id="i182" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/CacheAsserts.html" title="class in com.google.android.exoplayer2.testutil">CacheAsserts</a></td>
<th class="colLast" scope="row">
<div class="block">Assertion methods for <a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache"><code>Cache</code></a>.</div>
</th>
</tr>
<tr id="i183" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/CacheAsserts.RequestSet.html" title="class in com.google.android.exoplayer2.testutil">CacheAsserts.RequestSet</a></td>
<th class="colLast" scope="row">
<div class="block">Defines a set of data requests.</div>
</th>
</tr>
<tr id="i184" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSink.html" title="class in com.google.android.exoplayer2.upstream.cache">CacheDataSink</a></td>
<th class="colLast" scope="row">
<div class="block">Writes data into a cache.</div>
</th>
</tr>
<tr id="i185" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSink.CacheDataSinkException.html" title="class in com.google.android.exoplayer2.upstream.cache">CacheDataSink.CacheDataSinkException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top"><code>IOException</code></a> is encountered when writing data to the sink.</div>
</th>
</tr>
<tr id="i186" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSink.Factory.html" title="class in com.google.android.exoplayer2.upstream.cache">CacheDataSink.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSink.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSink.Factory</code></a> for <a href="com/google/android/exoplayer2/upstream/cache/CacheDataSink.html" title="class in com.google.android.exoplayer2.upstream.cache"><code>CacheDataSink</code></a> instances.</div>
</th>
</tr>
<tr id="i187" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSource.html" title="class in com.google.android.exoplayer2.upstream.cache">CacheDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> that reads and writes a <a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache"><code>Cache</code></a>.</div>
</th>
</tr>
<tr id="i188" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSource.CacheIgnoredReason.html" title="annotation in com.google.android.exoplayer2.upstream.cache">CacheDataSource.CacheIgnoredReason</a></td>
<th class="colLast" scope="row">
<div class="block">Reasons the cache may be ignored.</div>
</th>
</tr>
<tr id="i189" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSource.EventListener.html" title="interface in com.google.android.exoplayer2.upstream.cache">CacheDataSource.EventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener of <a href="com/google/android/exoplayer2/upstream/cache/CacheDataSource.html" title="class in com.google.android.exoplayer2.upstream.cache"><code>CacheDataSource</code></a> events.</div>
</th>
</tr>
<tr id="i190" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream.cache">CacheDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/upstream/cache/CacheDataSource.html" title="class in com.google.android.exoplayer2.upstream.cache"><code>CacheDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i191" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheDataSource.Flags.html" title="annotation in com.google.android.exoplayer2.upstream.cache">CacheDataSource.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the CacheDataSource's behavior.</div>
</th>
</tr>
<tr id="i192" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/CachedRegionTracker.html" title="class in com.google.android.exoplayer2.upstream">CachedRegionTracker</a></td>
<th class="colLast" scope="row">
<div class="block">Utility class for efficiently tracking regions of data that are stored in a <a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache"><code>Cache</code></a> for a
given cache key.</div>
</th>
</tr>
<tr id="i193" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheEvictor.html" title="interface in com.google.android.exoplayer2.upstream.cache">CacheEvictor</a></td>
<th class="colLast" scope="row">
<div class="block">Evicts data from a <a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache"><code>Cache</code></a>.</div>
</th>
</tr>
<tr id="i194" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheKeyFactory.html" title="interface in com.google.android.exoplayer2.upstream.cache">CacheKeyFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for cache keys.</div>
</th>
</tr>
<tr id="i195" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheSpan.html" title="class in com.google.android.exoplayer2.upstream.cache">CacheSpan</a></td>
<th class="colLast" scope="row">
<div class="block">Defines a span of data that may or may not be cached (as indicated by <a href="com/google/android/exoplayer2/upstream/cache/CacheSpan.html#isCached"><code>CacheSpan.isCached</code></a>).</div>
</th>
</tr>
<tr id="i196" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheWriter.html" title="class in com.google.android.exoplayer2.upstream.cache">CacheWriter</a></td>
<th class="colLast" scope="row">
<div class="block">Caching related utility methods.</div>
</th>
</tr>
<tr id="i197" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/CacheWriter.ProgressListener.html" title="interface in com.google.android.exoplayer2.upstream.cache">CacheWriter.ProgressListener</a></td>
<th class="colLast" scope="row">
<div class="block">Receives progress updates during cache operations.</div>
</th>
</tr>
<tr id="i198" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/spherical/CameraMotionListener.html" title="interface in com.google.android.exoplayer2.video.spherical">CameraMotionListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listens camera motion.</div>
</th>
</tr>
<tr id="i199" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/spherical/CameraMotionRenderer.html" title="class in com.google.android.exoplayer2.video.spherical">CameraMotionRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> that parses the camera motion track.</div>
</th>
</tr>
<tr id="i200" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/CaptionStyleCompat.html" title="class in com.google.android.exoplayer2.ui">CaptionStyleCompat</a></td>
<th class="colLast" scope="row">
<div class="block">A compatibility wrapper for <a href="https://developer.android.com/reference/android/view/accessibility/CaptioningManager.CaptionStyle.html" title="class or interface in android.view.accessibility" class="externalLink" target="_top"><code>CaptioningManager.CaptionStyle</code></a>.</div>
</th>
</tr>
<tr id="i201" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/CaptionStyleCompat.EdgeType.html" title="annotation in com.google.android.exoplayer2.ui">CaptionStyleCompat.EdgeType</a></td>
<th class="colLast" scope="row">
<div class="block">The type of edge, which may be none.</div>
</th>
</tr>
<tr id="i202" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/CapturingAudioSink.html" title="class in com.google.android.exoplayer2.testutil">CapturingAudioSink</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/audio/ForwardingAudioSink.html" title="class in com.google.android.exoplayer2.audio"><code>ForwardingAudioSink</code></a> that captures configuration, discontinuity and buffer events.</div>
</th>
</tr>
<tr id="i203" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/CapturingRenderersFactory.html" title="class in com.google.android.exoplayer2.testutil">CapturingRenderersFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> that captures interactions with the audio and video <a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html" title="interface in com.google.android.exoplayer2.mediacodec"><code>MediaCodecAdapter</code></a> instances.</div>
</th>
</tr>
<tr id="i204" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cast/CastPlayer.html" title="class in com.google.android.exoplayer2.ext.cast">CastPlayer</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> implementation that communicates with a Cast receiver app.</div>
</th>
</tr>
<tr id="i205" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/cea/Cea608Decoder.html" title="class in com.google.android.exoplayer2.text.cea">Cea608Decoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SubtitleDecoder.html" title="interface in com.google.android.exoplayer2.text"><code>SubtitleDecoder</code></a> for CEA-608 (also known as "line 21 captions" and "EIA-608").</div>
</th>
</tr>
<tr id="i206" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/cea/Cea708Decoder.html" title="class in com.google.android.exoplayer2.text.cea">Cea708Decoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SubtitleDecoder.html" title="interface in com.google.android.exoplayer2.text"><code>SubtitleDecoder</code></a> for CEA-708 (also known as "EIA-708").</div>
</th>
</tr>
<tr id="i207" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/CeaUtil.html" title="class in com.google.android.exoplayer2.extractor">CeaUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for handling CEA-608/708 messages.</div>
</th>
</tr>
<tr id="i208" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/ChapterFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">ChapterFrame</a></td>
<th class="colLast" scope="row">
<div class="block">Chapter information ID3 frame.</div>
</th>
</tr>
<tr id="i209" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/ChapterTocFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">ChapterTocFrame</a></td>
<th class="colLast" scope="row">
<div class="block">Chapter table of contents ID3 frame.</div>
</th>
</tr>
<tr id="i210" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/Chunk.html" title="class in com.google.android.exoplayer2.source.chunk">Chunk</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract base class for <a href="com/google/android/exoplayer2/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer2.upstream"><code>Loader.Loadable</code></a> implementations that load chunks of data required for
the playback of streams.</div>
</th>
</tr>
<tr id="i211" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.chunk">ChunkExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts samples and track <a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2"><code>Formats</code></a> from chunks.</div>
</th>
</tr>
<tr id="i212" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ChunkExtractor.Factory.html" title="interface in com.google.android.exoplayer2.source.chunk">ChunkExtractor.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Creates <a href="com/google/android/exoplayer2/source/chunk/ChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkExtractor</code></a> instances.</div>
</th>
</tr>
<tr id="i213" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ChunkExtractor.TrackOutputProvider.html" title="interface in com.google.android.exoplayer2.source.chunk">ChunkExtractor.TrackOutputProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides <a href="com/google/android/exoplayer2/extractor/TrackOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>TrackOutput</code></a> instances to be written to during extraction.</div>
</th>
</tr>
<tr id="i214" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ChunkHolder.html" title="class in com.google.android.exoplayer2.source.chunk">ChunkHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holds a chunk or an indication that the end of the stream has been reached.</div>
</th>
</tr>
<tr id="i215" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ChunkIndex.html" title="class in com.google.android.exoplayer2.extractor">ChunkIndex</a></td>
<th class="colLast" scope="row">
<div class="block">Defines chunks of samples within a media stream.</div>
</th>
</tr>
<tr id="i216" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ChunkSampleStream.html" title="class in com.google.android.exoplayer2.source.chunk">ChunkSampleStream</a>&lt;<a href="com/google/android/exoplayer2/source/chunk/ChunkSampleStream.html" title="type parameter in ChunkSampleStream">T</a> extends <a href="com/google/android/exoplayer2/source/chunk/ChunkSource.html" title="interface in com.google.android.exoplayer2.source.chunk">ChunkSource</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> that loads media in <a href="com/google/android/exoplayer2/source/chunk/Chunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>Chunk</code></a>s, obtained from a <a href="com/google/android/exoplayer2/source/chunk/ChunkSource.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkSource</code></a>.</div>
</th>
</tr>
<tr id="i217" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ChunkSampleStream.ReleaseCallback.html" title="interface in com.google.android.exoplayer2.source.chunk">ChunkSampleStream.ReleaseCallback</a>&lt;<a href="com/google/android/exoplayer2/source/chunk/ChunkSampleStream.ReleaseCallback.html" title="type parameter in ChunkSampleStream.ReleaseCallback">T</a> extends <a href="com/google/android/exoplayer2/source/chunk/ChunkSource.html" title="interface in com.google.android.exoplayer2.source.chunk">ChunkSource</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A callback to be notified when a sample stream has finished being released.</div>
</th>
</tr>
<tr id="i218" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ChunkSource.html" title="interface in com.google.android.exoplayer2.source.chunk">ChunkSource</a></td>
<th class="colLast" scope="row">
<div class="block">A provider of <a href="com/google/android/exoplayer2/source/chunk/Chunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>Chunk</code></a>s for a <a href="com/google/android/exoplayer2/source/chunk/ChunkSampleStream.html" title="class in com.google.android.exoplayer2.source.chunk"><code>ChunkSampleStream</code></a> to load.</div>
</th>
</tr>
<tr id="i219" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ClippingMediaPeriod.html" title="class in com.google.android.exoplayer2.source">ClippingMediaPeriod</a></td>
<th class="colLast" scope="row">
<div class="block">Wraps a <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source"><code>MediaPeriod</code></a> and clips its <a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>s to provide a subsequence of their
samples.</div>
</th>
</tr>
<tr id="i220" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ClippingMediaSource.html" title="class in com.google.android.exoplayer2.source">ClippingMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> that wraps a source and clips its timeline based on specified start/end
positions.</div>
</th>
</tr>
<tr id="i221" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ClippingMediaSource.IllegalClippingException.html" title="class in com.google.android.exoplayer2.source">ClippingMediaSource.IllegalClippingException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a <a href="com/google/android/exoplayer2/source/ClippingMediaSource.html" title="class in com.google.android.exoplayer2.source"><code>ClippingMediaSource</code></a> cannot clip its wrapped source.</div>
</th>
</tr>
<tr id="i222" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ClippingMediaSource.IllegalClippingException.Reason.html" title="annotation in com.google.android.exoplayer2.source">ClippingMediaSource.IllegalClippingException.Reason</a></td>
<th class="colLast" scope="row">
<div class="block">The reason clipping failed.</div>
</th>
</tr>
<tr id="i223" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/Clock.html" title="interface in com.google.android.exoplayer2.util">Clock</a></td>
<th class="colLast" scope="row">
<div class="block">An interface through which system clocks can be read and <a href="com/google/android/exoplayer2/util/HandlerWrapper.html" title="interface in com.google.android.exoplayer2.util"><code>HandlerWrapper</code></a>s created.</div>
</th>
</tr>
<tr id="i224" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Codec.html" title="interface in com.google.android.exoplayer2.transformer">Codec</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a layer of abstraction for interacting with decoders and encoders.</div>
</th>
</tr>
<tr id="i225" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Codec.DecoderFactory.html" title="interface in com.google.android.exoplayer2.transformer">Codec.DecoderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/transformer/Codec.html" title="interface in com.google.android.exoplayer2.transformer">decoder</a> instances.</div>
</th>
</tr>
<tr id="i226" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Codec.EncoderFactory.html" title="interface in com.google.android.exoplayer2.transformer">Codec.EncoderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/transformer/Codec.html" title="interface in com.google.android.exoplayer2.transformer">encoder</a> instances.</div>
</th>
</tr>
<tr id="i227" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/CodecSpecificDataUtil.html" title="class in com.google.android.exoplayer2.util">CodecSpecificDataUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Provides utilities for handling various types of codec-specific data.</div>
</th>
</tr>
<tr id="i228" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/ColorInfo.html" title="class in com.google.android.exoplayer2.video">ColorInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Stores color info.</div>
</th>
</tr>
<tr id="i229" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ColorParser.html" title="class in com.google.android.exoplayer2.util">ColorParser</a></td>
<th class="colLast" scope="row">
<div class="block">Parser for color expressions found in styling formats, e.g.</div>
</th>
</tr>
<tr id="i230" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/CommentFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">CommentFrame</a></td>
<th class="colLast" scope="row">
<div class="block">Comment ID3 frame.</div>
</th>
</tr>
<tr id="i231" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/CompositeMediaSource.html" title="class in com.google.android.exoplayer2.source">CompositeMediaSource</a>&lt;<a href="com/google/android/exoplayer2/source/CompositeMediaSource.html" title="type parameter in CompositeMediaSource">T</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">Composite <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> consisting of multiple child sources.</div>
</th>
</tr>
<tr id="i232" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/CompositeSequenceableLoader.html" title="class in com.google.android.exoplayer2.source">CompositeSequenceableLoader</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source"><code>SequenceableLoader</code></a> that encapsulates multiple other <a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source"><code>SequenceableLoader</code></a>s.</div>
</th>
</tr>
<tr id="i233" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory.html" title="interface in com.google.android.exoplayer2.source">CompositeSequenceableLoaderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory to create composite <a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source"><code>SequenceableLoader</code></a>s.</div>
</th>
</tr>
<tr id="i234" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ConcatenatingMediaSource.html" title="class in com.google.android.exoplayer2.source">ConcatenatingMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Concatenates multiple <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>s.</div>
</th>
</tr>
<tr id="i235" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ConditionVariable.html" title="class in com.google.android.exoplayer2.util">ConditionVariable</a></td>
<th class="colLast" scope="row">
<div class="block">An interruptible condition variable.</div>
</th>
</tr>
<tr id="i236" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ConstantBitrateSeekMap.html" title="class in com.google.android.exoplayer2.extractor">ConstantBitrateSeekMap</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/extractor/SeekMap.html" title="interface in com.google.android.exoplayer2.extractor"><code>SeekMap</code></a> implementation that assumes the stream has a constant bitrate and consists of
multiple independent frames of the same size.</div>
</th>
</tr>
<tr id="i237" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/Consumer.html" title="interface in com.google.android.exoplayer2.util">Consumer</a>&lt;<a href="com/google/android/exoplayer2/util/Consumer.html" title="type parameter in Consumer">T</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">Represents an operation that accepts a single input argument and returns no result.</div>
</th>
</tr>
<tr id="i238" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk">ContainerMediaChunk</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/chunk/BaseMediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>BaseMediaChunk</code></a> that uses an <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a> to decode sample data.</div>
</th>
</tr>
<tr id="i239" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ContentDataSource.html" title="class in com.google.android.exoplayer2.upstream">ContentDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> for reading from a content URI.</div>
</th>
</tr>
<tr id="i240" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ContentDataSource.ContentDataSourceException.html" title="class in com.google.android.exoplayer2.upstream">ContentDataSource.ContentDataSourceException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top"><code>IOException</code></a> is encountered reading from a content URI.</div>
</th>
</tr>
<tr id="i241" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/ContentMetadata.html" title="interface in com.google.android.exoplayer2.upstream.cache">ContentMetadata</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for an immutable snapshot of keyed metadata.</div>
</th>
</tr>
<tr id="i242" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/ContentMetadataMutations.html" title="class in com.google.android.exoplayer2.upstream.cache">ContentMetadataMutations</a></td>
<th class="colLast" scope="row">
<div class="block">Defines multiple mutations on metadata value which are applied atomically.</div>
</th>
</tr>
<tr id="i243" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/CopyOnWriteMultiset.html" title="class in com.google.android.exoplayer2.util">CopyOnWriteMultiset</a>&lt;<a href="com/google/android/exoplayer2/util/CopyOnWriteMultiset.html" title="type parameter in CopyOnWriteMultiset">E</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">An unordered collection of elements that allows duplicates, but also allows access to a set of
unique elements.</div>
</th>
</tr>
<tr id="i244" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">DataSource without intermediate buffer based on Cronet API set using UrlRequest.</div>
</th>
</tr>
<tr id="i245" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.html" title="class in com.google.android.exoplayer2.ext.cronet"><code>CronetDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i246" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.OpenException.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetDataSource.OpenException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error is encountered when trying to open a <a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.html" title="class in com.google.android.exoplayer2.ext.cronet"><code>CronetDataSource</code></a>.</div>
</th>
</tr>
<tr id="i247" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cronet/CronetDataSourceFactory.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetDataSourceFactory</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ext/cronet/CronetDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.cronet"><code>CronetDataSource.Factory</code></a> instead.</div>
</th>
</tr>
<tr id="i248" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cronet/CronetEngineWrapper.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetEngineWrapper</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <code>CronetEngine</code> directly.</div>
</th>
</tr>
<tr id="i249" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cronet/CronetUtil.html" title="class in com.google.android.exoplayer2.ext.cronet">CronetUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Cronet utility methods.</div>
</th>
</tr>
<tr id="i250" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/CryptoConfig.html" title="interface in com.google.android.exoplayer2.decoder">CryptoConfig</a></td>
<th class="colLast" scope="row">
<div class="block">Configuration for a decoder to allow it to decode encrypted media data.</div>
</th>
</tr>
<tr id="i251" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/CryptoException.html" title="class in com.google.android.exoplayer2.decoder">CryptoException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a non-platform component fails to decrypt data.</div>
</th>
</tr>
<tr id="i252" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/CryptoInfo.html" title="class in com.google.android.exoplayer2.decoder">CryptoInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Metadata describing the structure of an encrypted input sample.</div>
</th>
</tr>
<tr id="i253" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/Cue.html" title="class in com.google.android.exoplayer2.text">Cue</a></td>
<th class="colLast" scope="row">
<div class="block">Contains information about a specific cue, including textual content and formatting data.</div>
</th>
</tr>
<tr id="i254" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/Cue.AnchorType.html" title="annotation in com.google.android.exoplayer2.text">Cue.AnchorType</a></td>
<th class="colLast" scope="row">
<div class="block">The type of anchor, which may be unset.</div>
</th>
</tr>
<tr id="i255" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/Cue.Builder.html" title="class in com.google.android.exoplayer2.text">Cue.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/text/Cue.html" title="class in com.google.android.exoplayer2.text"><code>Cue</code></a> objects.</div>
</th>
</tr>
<tr id="i256" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/Cue.LineType.html" title="annotation in com.google.android.exoplayer2.text">Cue.LineType</a></td>
<th class="colLast" scope="row">
<div class="block">The type of line, which may be unset.</div>
</th>
</tr>
<tr id="i257" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/Cue.TextSizeType.html" title="annotation in com.google.android.exoplayer2.text">Cue.TextSizeType</a></td>
<th class="colLast" scope="row">
<div class="block">The type of default text size for this cue, which may be unset.</div>
</th>
</tr>
<tr id="i258" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/Cue.VerticalType.html" title="annotation in com.google.android.exoplayer2.text">Cue.VerticalType</a></td>
<th class="colLast" scope="row">
<div class="block">The type of vertical layout for this cue, which may be unset (i.e.</div>
</th>
</tr>
<tr id="i259" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/CueDecoder.html" title="class in com.google.android.exoplayer2.text">CueDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes data encoded by <a href="com/google/android/exoplayer2/text/CueEncoder.html" title="class in com.google.android.exoplayer2.text"><code>CueEncoder</code></a>.</div>
</th>
</tr>
<tr id="i260" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/CueEncoder.html" title="class in com.google.android.exoplayer2.text">CueEncoder</a></td>
<th class="colLast" scope="row">
<div class="block">Encodes data that can be decoded by <a href="com/google/android/exoplayer2/text/CueDecoder.html" title="class in com.google.android.exoplayer2.text"><code>CueDecoder</code></a>.</div>
</th>
</tr>
<tr id="i261" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/CueGroup.html" title="class in com.google.android.exoplayer2.text">CueGroup</a></td>
<th class="colLast" scope="row">
<div class="block">Class to represent the state of active <a href="com/google/android/exoplayer2/text/Cue.html" title="class in com.google.android.exoplayer2.text"><code>Cues</code></a> at a particular time.</div>
</th>
</tr>
<tr id="i262" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashChunkSource.html" title="interface in com.google.android.exoplayer2.source.dash">DashChunkSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/chunk/ChunkSource.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkSource</code></a> for DASH streams.</div>
</th>
</tr>
<tr id="i263" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashChunkSource.Factory.html" title="interface in com.google.android.exoplayer2.source.dash">DashChunkSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/dash/DashChunkSource.html" title="interface in com.google.android.exoplayer2.source.dash"><code>DashChunkSource</code></a>s.</div>
</th>
</tr>
<tr id="i264" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/offline/DashDownloader.html" title="class in com.google.android.exoplayer2.source.dash.offline">DashDownloader</a></td>
<th class="colLast" scope="row">
<div class="block">A downloader for DASH streams.</div>
</th>
</tr>
<tr id="i265" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/DashManifest.html" title="class in com.google.android.exoplayer2.source.dash.manifest">DashManifest</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a DASH media presentation description (mpd), as defined by ISO/IEC 23009-1:2014
Section 5.3.1.2.</div>
</th>
</tr>
<tr id="i266" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.html" title="class in com.google.android.exoplayer2.source.dash.manifest">DashManifestParser</a></td>
<th class="colLast" scope="row">
<div class="block">A parser of media presentation description files.</div>
</th>
</tr>
<tr id="i267" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.RepresentationInfo.html" title="class in com.google.android.exoplayer2.source.dash.manifest">DashManifestParser.RepresentationInfo</a></td>
<th class="colLast" scope="row">
<div class="block">A parsed Representation element.</div>
</th>
</tr>
<tr id="i268" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashManifestStaleException.html" title="class in com.google.android.exoplayer2.source.dash">DashManifestStaleException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a live playback's manifest is stale and a new manifest could not be loaded.</div>
</th>
</tr>
<tr id="i269" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashMediaSource.html" title="class in com.google.android.exoplayer2.source.dash">DashMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">A DASH <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</th>
</tr>
<tr id="i270" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source.dash">DashMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/dash/DashMediaSource.html" title="class in com.google.android.exoplayer2.source.dash"><code>DashMediaSource</code></a>s.</div>
</th>
</tr>
<tr id="i271" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashSegmentIndex.html" title="interface in com.google.android.exoplayer2.source.dash">DashSegmentIndex</a></td>
<th class="colLast" scope="row">
<div class="block">Indexes the segments within a media stream.</div>
</th>
</tr>
<tr id="i272" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashUtil.html" title="class in com.google.android.exoplayer2.source.dash">DashUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for DASH streams.</div>
</th>
</tr>
<tr id="i273" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DashWrappingSegmentIndex.html" title="class in com.google.android.exoplayer2.source.dash">DashWrappingSegmentIndex</a></td>
<th class="colLast" scope="row">
<div class="block">An implementation of <a href="com/google/android/exoplayer2/source/dash/DashSegmentIndex.html" title="interface in com.google.android.exoplayer2.source.dash"><code>DashSegmentIndex</code></a> that wraps a <a href="com/google/android/exoplayer2/extractor/ChunkIndex.html" title="class in com.google.android.exoplayer2.extractor"><code>ChunkIndex</code></a> parsed from a media
stream.</div>
</th>
</tr>
<tr id="i274" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/database/DatabaseIOException.html" title="class in com.google.android.exoplayer2.database">DatabaseIOException</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink"><code>IOException</code></a> whose cause is an <a href="https://developer.android.com/reference/android/database/SQLException.html?is-external=true" title="class or interface in android.database" class="externalLink" target="_top"><code>SQLException</code></a>.</div>
</th>
</tr>
<tr id="i275" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/database/DatabaseProvider.html" title="interface in com.google.android.exoplayer2.database">DatabaseProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides <a href="https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html" title="class or interface in android.database.sqlite" class="externalLink" target="_top"><code>SQLiteDatabase</code></a> instances to media library components, which may read and write
tables prefixed with <a href="com/google/android/exoplayer2/database/DatabaseProvider.html#TABLE_PREFIX"><code>DatabaseProvider.TABLE_PREFIX</code></a>.</div>
</th>
</tr>
<tr id="i276" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/DataChunk.html" title="class in com.google.android.exoplayer2.source.chunk">DataChunk</a></td>
<th class="colLast" scope="row">
<div class="block">A base class for <a href="com/google/android/exoplayer2/source/chunk/Chunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>Chunk</code></a> implementations where the data should be loaded into a <code>
byte[]</code> before being consumed.</div>
</th>
</tr>
<tr id="i277" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataReader.html" title="interface in com.google.android.exoplayer2.upstream">DataReader</a></td>
<th class="colLast" scope="row">
<div class="block">Reads bytes from a data stream.</div>
</th>
</tr>
<tr id="i278" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSchemeDataSource.html" title="class in com.google.android.exoplayer2.upstream">DataSchemeDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> for reading data URLs, as defined by RFC 2397.</div>
</th>
</tr>
<tr id="i279" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSink.html" title="interface in com.google.android.exoplayer2.upstream">DataSink</a></td>
<th class="colLast" scope="row">
<div class="block">A component to which streams of data can be written.</div>
</th>
</tr>
<tr id="i280" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSink.Factory.html" title="interface in com.google.android.exoplayer2.upstream">DataSink.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/upstream/DataSink.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSink</code></a> instances.</div>
</th>
</tr>
<tr id="i281" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream">DataSource</a></td>
<th class="colLast" scope="row">
<div class="block">Reads data from URI-identified resources.</div>
</th>
</tr>
<tr id="i282" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream">DataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i283" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DataSourceContractTest.html" title="class in com.google.android.exoplayer2.testutil">DataSourceContractTest</a></td>
<th class="colLast" scope="row">
<div class="block">A collection of contract tests for <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> implementations.</div>
</th>
</tr>
<tr id="i284" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DataSourceContractTest.FakeTransferListener.html" title="class in com.google.android.exoplayer2.testutil">DataSourceContractTest.FakeTransferListener</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/TransferListener.html" title="interface in com.google.android.exoplayer2.upstream"><code>TransferListener</code></a> that only keeps track of the transferred bytes.</div>
</th>
</tr>
<tr id="i285" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DataSourceContractTest.TestResource.html" title="class in com.google.android.exoplayer2.testutil">DataSourceContractTest.TestResource</a></td>
<th class="colLast" scope="row">
<div class="block">Information about a resource that can be used to test the <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> instance.</div>
</th>
</tr>
<tr id="i286" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DataSourceContractTest.TestResource.Builder.html" title="class in com.google.android.exoplayer2.testutil">DataSourceContractTest.TestResource.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/testutil/DataSourceContractTest.TestResource.html" title="class in com.google.android.exoplayer2.testutil"><code>DataSourceContractTest.TestResource</code></a> instances.</div>
</th>
</tr>
<tr id="i287" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSourceException.html" title="class in com.google.android.exoplayer2.upstream">DataSourceException</a></td>
<th class="colLast" scope="row">
<div class="block">Used to specify reason of a DataSource error.</div>
</th>
</tr>
<tr id="i288" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSourceInputStream.html" title="class in com.google.android.exoplayer2.upstream">DataSourceInputStream</a></td>
<th class="colLast" scope="row">
<div class="block">Allows data corresponding to a given <a href="com/google/android/exoplayer2/upstream/DataSpec.html" title="class in com.google.android.exoplayer2.upstream"><code>DataSpec</code></a> to be read from a <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> and
consumed through an <a href="https://developer.android.com/reference/java/io/InputStream.html" title="class or interface in java.io" class="externalLink" target="_top"><code>InputStream</code></a>.</div>
</th>
</tr>
<tr id="i289" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSourceUtil.html" title="class in com.google.android.exoplayer2.upstream">DataSourceUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a>.</div>
</th>
</tr>
<tr id="i290" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSpec.html" title="class in com.google.android.exoplayer2.upstream">DataSpec</a></td>
<th class="colLast" scope="row">
<div class="block">Defines a region of data in a resource.</div>
</th>
</tr>
<tr id="i291" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSpec.Builder.html" title="class in com.google.android.exoplayer2.upstream">DataSpec.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builds <a href="com/google/android/exoplayer2/upstream/DataSpec.html" title="class in com.google.android.exoplayer2.upstream"><code>DataSpec</code></a> instances.</div>
</th>
</tr>
<tr id="i292" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSpec.Flags.html" title="annotation in com.google.android.exoplayer2.upstream">DataSpec.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">The flags that apply to any request for data.</div>
</th>
</tr>
<tr id="i293" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DataSpec.HttpMethod.html" title="annotation in com.google.android.exoplayer2.upstream">DataSpec.HttpMethod</a></td>
<th class="colLast" scope="row">
<div class="block">HTTP methods supported by ExoPlayer <a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>HttpDataSource</code></a>s.</div>
</th>
</tr>
<tr id="i294" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/DebugTextViewHelper.html" title="class in com.google.android.exoplayer2.util">DebugTextViewHelper</a></td>
<th class="colLast" scope="row">
<div class="block">A helper class for periodically updating a <a href="https://developer.android.com/reference/android/widget/TextView.html" title="class or interface in android.widget" class="externalLink" target="_top"><code>TextView</code></a> with debug information obtained from
an <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>.</div>
</th>
</tr>
<tr id="i295" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder">Decoder</a>&lt;<a href="com/google/android/exoplayer2/decoder/Decoder.html" title="type parameter in Decoder">I</a>,&#8203;<a href="com/google/android/exoplayer2/decoder/Decoder.html" title="type parameter in Decoder">O</a>,&#8203;<a href="com/google/android/exoplayer2/decoder/Decoder.html" title="type parameter in Decoder">E</a> extends <a href="com/google/android/exoplayer2/decoder/DecoderException.html" title="class in com.google.android.exoplayer2.decoder">DecoderException</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A media decoder.</div>
</th>
</tr>
<tr id="i296" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DecoderAudioRenderer.html" title="class in com.google.android.exoplayer2.audio">DecoderAudioRenderer</a>&lt;<a href="com/google/android/exoplayer2/audio/DecoderAudioRenderer.html" title="type parameter in DecoderAudioRenderer">T</a> extends <a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder">Decoder</a>&lt;<a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a>,&#8203;? extends <a href="com/google/android/exoplayer2/decoder/SimpleDecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder">SimpleDecoderOutputBuffer</a>,&#8203;? extends <a href="com/google/android/exoplayer2/decoder/DecoderException.html" title="class in com.google.android.exoplayer2.decoder">DecoderException</a>&gt;&gt;</td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders audio using a <a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder"><code>Decoder</code></a>.</div>
</th>
</tr>
<tr id="i297" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder">DecoderCounters</a></td>
<th class="colLast" scope="row">
<div class="block">Maintains decoder event counts, for debugging purposes only.</div>
</th>
</tr>
<tr id="i298" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DecoderCountersUtil.html" title="class in com.google.android.exoplayer2.testutil">DecoderCountersUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Assertions for <a href="com/google/android/exoplayer2/decoder/DecoderCounters.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderCounters</code></a>.</div>
</th>
</tr>
<tr id="i299" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderException.html" title="class in com.google.android.exoplayer2.decoder">DecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a <a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder"><code>Decoder</code></a> error occurs.</div>
</th>
</tr>
<tr id="i300" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a></td>
<th class="colLast" scope="row">
<div class="block">Holds input for a decoder.</div>
</th>
</tr>
<tr id="i301" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.BufferReplacementMode.html" title="annotation in com.google.android.exoplayer2.decoder">DecoderInputBuffer.BufferReplacementMode</a></td>
<th class="colLast" scope="row">
<div class="block">The buffer replacement mode.</div>
</th>
</tr>
<tr id="i302" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.InsufficientCapacityException.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer.InsufficientCapacityException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an attempt is made to write into a <a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderInputBuffer</code></a> whose <a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html#bufferReplacementMode"><code>DecoderInputBuffer.bufferReplacementMode</code></a> is <a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html#BUFFER_REPLACEMENT_MODE_DISABLED"><code>DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DISABLED</code></a> and who <a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html#data"><code>DecoderInputBuffer.data</code></a>
capacity is smaller than required.</div>
</th>
</tr>
<tr id="i303" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderOutputBuffer</a></td>
<th class="colLast" scope="row">
<div class="block">Output buffer decoded by a <a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder"><code>Decoder</code></a>.</div>
</th>
</tr>
<tr id="i304" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderOutputBuffer.Owner.html" title="interface in com.google.android.exoplayer2.decoder">DecoderOutputBuffer.Owner</a>&lt;<a href="com/google/android/exoplayer2/decoder/DecoderOutputBuffer.Owner.html" title="type parameter in DecoderOutputBuffer.Owner">S</a> extends <a href="com/google/android/exoplayer2/decoder/DecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderOutputBuffer</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">Buffer owner.</div>
</th>
</tr>
<tr id="i305" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.html" title="class in com.google.android.exoplayer2.decoder">DecoderReuseEvaluation</a></td>
<th class="colLast" scope="row">
<div class="block">The result of an evaluation to determine whether a decoder can be reused for a new input format.</div>
</th>
</tr>
<tr id="i306" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.DecoderDiscardReasons.html" title="annotation in com.google.android.exoplayer2.decoder">DecoderReuseEvaluation.DecoderDiscardReasons</a></td>
<th class="colLast" scope="row">
<div class="block">Possible reasons why reuse is not possible.</div>
</th>
</tr>
<tr id="i307" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.DecoderReuseResult.html" title="annotation in com.google.android.exoplayer2.decoder">DecoderReuseEvaluation.DecoderReuseResult</a></td>
<th class="colLast" scope="row">
<div class="block">Possible outcomes of the evaluation.</div>
</th>
</tr>
<tr id="i308" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/DecoderVideoRenderer.html" title="class in com.google.android.exoplayer2.video">DecoderVideoRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders video using a <a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder"><code>Decoder</code></a>.</div>
</th>
</tr>
<tr id="i309" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultAllocator.html" title="class in com.google.android.exoplayer2.upstream">DefaultAllocator</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/upstream/Allocator.html" title="interface in com.google.android.exoplayer2.upstream"><code>Allocator</code></a>.</div>
</th>
</tr>
<tr id="i310" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/DefaultAnalyticsCollector.html" title="class in com.google.android.exoplayer2.analytics">DefaultAnalyticsCollector</a></td>
<th class="colLast" scope="row">
<div class="block">Data collector that forwards analytics events to <a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListeners</code></a>.</div>
</th>
</tr>
<tr id="i311" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink</a></td>
<th class="colLast" scope="row">
<div class="block">Plays audio data.</div>
</th>
</tr>
<tr id="i312" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.AudioProcessorChain.html" title="interface in com.google.android.exoplayer2.audio">DefaultAudioSink.AudioProcessorChain</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a chain of audio processors, which are used for any user-defined processing and
applying playback parameters (if supported).</div>
</th>
</tr>
<tr id="i313" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder to create <a href="com/google/android/exoplayer2/audio/DefaultAudioSink.html" title="class in com.google.android.exoplayer2.audio"><code>DefaultAudioSink</code></a> instances.</div>
</th>
</tr>
<tr id="i314" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.DefaultAudioProcessorChain.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.DefaultAudioProcessorChain</a></td>
<th class="colLast" scope="row">
<div class="block">The default audio processor chain, which applies a (possibly empty) chain of user-defined audio
processors followed by <a href="com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.html" title="class in com.google.android.exoplayer2.audio"><code>SilenceSkippingAudioProcessor</code></a> and <a href="com/google/android/exoplayer2/audio/SonicAudioProcessor.html" title="class in com.google.android.exoplayer2.audio"><code>SonicAudioProcessor</code></a>.</div>
</th>
</tr>
<tr id="i315" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.InvalidAudioTrackTimestampException.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioSink.InvalidAudioTrackTimestampException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when the audio track has provided a spurious timestamp, if <a href="com/google/android/exoplayer2/audio/DefaultAudioSink.html#failOnSpuriousAudioTimestamp"><code>DefaultAudioSink.failOnSpuriousAudioTimestamp</code></a> is set.</div>
</th>
</tr>
<tr id="i316" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.OffloadMode.html" title="annotation in com.google.android.exoplayer2.audio">DefaultAudioSink.OffloadMode</a></td>
<th class="colLast" scope="row">
<div class="block">Audio offload mode configuration.</div>
</th>
</tr>
<tr id="i317" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioSink.OutputMode.html" title="annotation in com.google.android.exoplayer2.audio">DefaultAudioSink.OutputMode</a></td>
<th class="colLast" scope="row">
<div class="block">Output mode of the audio sink.</div>
</th>
</tr>
<tr id="i318" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioTrackBufferSizeProvider.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provide the buffer size to use when creating an <a href="https://developer.android.com/reference/android/media/AudioTrack.html" title="class or interface in android.media" class="externalLink" target="_top"><code>AudioTrack</code></a>.</div>
</th>
</tr>
<tr id="i319" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DefaultAudioTrackBufferSizeProvider.Builder.html" title="class in com.google.android.exoplayer2.audio">DefaultAudioTrackBufferSizeProvider.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder to create <a href="com/google/android/exoplayer2/audio/DefaultAudioTrackBufferSizeProvider.html" title="class in com.google.android.exoplayer2.audio"><code>DefaultAudioTrackBufferSizeProvider</code></a> instances.</div>
</th>
</tr>
<tr id="i320" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.html" title="class in com.google.android.exoplayer2.upstream">DefaultBandwidthMeter</a></td>
<th class="colLast" scope="row">
<div class="block">Estimates bandwidth by listening to data transfers.</div>
</th>
</tr>
<tr id="i321" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.Builder.html" title="class in com.google.android.exoplayer2.upstream">DefaultBandwidthMeter.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for a bandwidth meter.</div>
</th>
</tr>
<tr id="i322" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cast/DefaultCastOptionsProvider.html" title="class in com.google.android.exoplayer2.ext.cast">DefaultCastOptionsProvider</a></td>
<th class="colLast" scope="row">
<div class="block">A convenience <code>OptionsProvider</code> to target the default cast receiver app.</div>
</th>
</tr>
<tr id="i323" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/DefaultCodec.html" title="class in com.google.android.exoplayer2.transformer">DefaultCodec</a></td>
<th class="colLast" scope="row">
<div class="block">A default <a href="com/google/android/exoplayer2/transformer/Codec.html" title="interface in com.google.android.exoplayer2.transformer"><code>Codec</code></a> implementation that uses <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a>.</div>
</th>
</tr>
<tr id="i324" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/DefaultCompositeSequenceableLoaderFactory.html" title="class in com.google.android.exoplayer2.source">DefaultCompositeSequenceableLoaderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory.html" title="interface in com.google.android.exoplayer2.source"><code>CompositeSequenceableLoaderFactory</code></a>.</div>
</th>
</tr>
<tr id="i325" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/DefaultContentMetadata.html" title="class in com.google.android.exoplayer2.upstream.cache">DefaultContentMetadata</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/upstream/cache/ContentMetadata.html" title="interface in com.google.android.exoplayer2.upstream.cache"><code>ContentMetadata</code></a>.</div>
</th>
</tr>
<tr id="i326" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.html" title="class in com.google.android.exoplayer2.source.dash">DefaultDashChunkSource</a></td>
<th class="colLast" scope="row">
<div class="block">A default <a href="com/google/android/exoplayer2/source/dash/DashChunkSource.html" title="interface in com.google.android.exoplayer2.source.dash"><code>DashChunkSource</code></a> implementation.</div>
</th>
</tr>
<tr id="i327" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.Factory.html" title="class in com.google.android.exoplayer2.source.dash">DefaultDashChunkSource.Factory</a></td>
<th class="colLast" scope="row">&nbsp;</th>
</tr>
<tr id="i328" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.RepresentationHolder.html" title="class in com.google.android.exoplayer2.source.dash">DefaultDashChunkSource.RepresentationHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about a snapshot of a single <a href="com/google/android/exoplayer2/source/dash/manifest/Representation.html" title="class in com.google.android.exoplayer2.source.dash.manifest"><code>Representation</code></a>.</div>
</th>
</tr>
<tr id="i329" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.RepresentationSegmentIterator.html" title="class in com.google.android.exoplayer2.source.dash">DefaultDashChunkSource.RepresentationSegmentIterator</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/chunk/MediaChunkIterator.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>MediaChunkIterator</code></a> wrapping a <a href="com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.RepresentationHolder.html" title="class in com.google.android.exoplayer2.source.dash"><code>DefaultDashChunkSource.RepresentationHolder</code></a>.</div>
</th>
</tr>
<tr id="i330" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/database/DefaultDatabaseProvider.html" title="class in com.google.android.exoplayer2.database">DefaultDatabaseProvider</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/database/DatabaseProvider.html" title="interface in com.google.android.exoplayer2.database"><code>DatabaseProvider</code></a> that provides instances obtained from a <a href="https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html" title="class or interface in android.database.sqlite" class="externalLink" target="_top"><code>SQLiteOpenHelper</code></a>.</div>
</th>
</tr>
<tr id="i331" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultDataSource.html" title="class in com.google.android.exoplayer2.upstream">DefaultDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> that supports multiple URI schemes.</div>
</th>
</tr>
<tr id="i332" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream">DefaultDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/upstream/DefaultDataSource.html" title="class in com.google.android.exoplayer2.upstream"><code>DefaultDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i333" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultDataSourceFactory.html" title="class in com.google.android.exoplayer2.upstream">DefaultDataSourceFactory</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/upstream/DefaultDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream"><code>DefaultDataSource.Factory</code></a> instead.</div>
</th>
</tr>
<tr id="i334" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DefaultDownloaderFactory.html" title="class in com.google.android.exoplayer2.offline">DefaultDownloaderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default <a href="com/google/android/exoplayer2/offline/DownloaderFactory.html" title="interface in com.google.android.exoplayer2.offline"><code>DownloaderFactory</code></a>, supporting creation of progressive, DASH, HLS and
SmoothStreaming downloaders.</div>
</th>
</tr>
<tr id="i335" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DefaultDownloadIndex.html" title="class in com.google.android.exoplayer2.offline">DefaultDownloadIndex</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/offline/DownloadIndex.html" title="interface in com.google.android.exoplayer2.offline"><code>DownloadIndex</code></a> that uses SQLite to persist <a href="com/google/android/exoplayer2/offline/Download.html" title="class in com.google.android.exoplayer2.offline"><code>Downloads</code></a>.</div>
</th>
</tr>
<tr id="i336" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManager.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSessionManager</code></a> that supports playbacks using <a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm</code></a>.</div>
</th>
</tr>
<tr id="i337" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManager.Builder.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManager.html" title="class in com.google.android.exoplayer2.drm"><code>DefaultDrmSessionManager</code></a> instances.</div>
</th>
</tr>
<tr id="i338" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManager.MissingSchemeDataException.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.MissingSchemeDataException</a></td>
<th class="colLast" scope="row">
<div class="block">Signals that the <a href="com/google/android/exoplayer2/Format.html#drmInitData"><code>Format.drmInitData</code></a> passed to <a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManager.html#acquireSession(com.google.android.exoplayer2.drm.DrmSessionEventListener.EventDispatcher,com.google.android.exoplayer2.Format)"><code>DefaultDrmSessionManager.acquireSession(com.google.android.exoplayer2.drm.DrmSessionEventListener.EventDispatcher, com.google.android.exoplayer2.Format)</code></a> does not contain
scheme data for the required UUID.</div>
</th>
</tr>
<tr id="i339" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManager.Mode.html" title="annotation in com.google.android.exoplayer2.drm">DefaultDrmSessionManager.Mode</a></td>
<th class="colLast" scope="row">
<div class="block">Determines the action to be done after a session acquired.</div>
</th>
</tr>
<tr id="i340" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DefaultDrmSessionManagerProvider.html" title="class in com.google.android.exoplayer2.drm">DefaultDrmSessionManagerProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/drm/DrmSessionManagerProvider.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSessionManagerProvider</code></a>.</div>
</th>
</tr>
<tr id="i341" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/DefaultEncoderFactory.html" title="class in com.google.android.exoplayer2.transformer">DefaultEncoderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A default implementation of <a href="com/google/android/exoplayer2/transformer/Codec.EncoderFactory.html" title="interface in com.google.android.exoplayer2.transformer"><code>Codec.EncoderFactory</code></a>.</div>
</th>
</tr>
<tr id="i342" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/DefaultExtractorInput.html" title="class in com.google.android.exoplayer2.extractor">DefaultExtractorInput</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/extractor/ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> that wraps a <a href="com/google/android/exoplayer2/upstream/DataReader.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataReader</code></a>.</div>
</th>
</tr>
<tr id="i343" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.html" title="class in com.google.android.exoplayer2.extractor">DefaultExtractorsFactory</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorsFactory</code></a> that provides an array of extractors for the following formats:
MP4, including M4A (<a href="com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.html" title="class in com.google.android.exoplayer2.extractor.mp4"><code>Mp4Extractor</code></a>)
fMP4 (<a href="com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.html" title="class in com.google.android.exoplayer2.extractor.mp4"><code>FragmentedMp4Extractor</code></a>)
Matroska and WebM (<a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.html" title="class in com.google.android.exoplayer2.extractor.mkv"><code>MatroskaExtractor</code></a>)
Ogg Vorbis/FLAC (<a href="com/google/android/exoplayer2/extractor/ogg/OggExtractor.html" title="class in com.google.android.exoplayer2.extractor.ogg"><code>OggExtractor</code></a>
MP3 (<a href="com/google/android/exoplayer2/extractor/mp3/Mp3Extractor.html" title="class in com.google.android.exoplayer2.extractor.mp3"><code>Mp3Extractor</code></a>)
AAC (<a href="com/google/android/exoplayer2/extractor/ts/AdtsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>AdtsExtractor</code></a>)
MPEG TS (<a href="com/google/android/exoplayer2/extractor/ts/TsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>TsExtractor</code></a>)
MPEG PS (<a href="com/google/android/exoplayer2/extractor/ts/PsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>PsExtractor</code></a>)
FLV (<a href="com/google/android/exoplayer2/extractor/flv/FlvExtractor.html" title="class in com.google.android.exoplayer2.extractor.flv"><code>FlvExtractor</code></a>)
WAV (<a href="com/google/android/exoplayer2/extractor/wav/WavExtractor.html" title="class in com.google.android.exoplayer2.extractor.wav"><code>WavExtractor</code></a>)
AC3 (<a href="com/google/android/exoplayer2/extractor/ts/Ac3Extractor.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>Ac3Extractor</code></a>)
AC4 (<a href="com/google/android/exoplayer2/extractor/ts/Ac4Extractor.html" title="class in com.google.android.exoplayer2.extractor.ts"><code>Ac4Extractor</code></a>)
AMR (<a href="com/google/android/exoplayer2/extractor/amr/AmrExtractor.html" title="class in com.google.android.exoplayer2.extractor.amr"><code>AmrExtractor</code></a>)
FLAC
If available, the FLAC extension's <code>
com.google.android.exoplayer2.ext.flac.FlacExtractor</code> is used.</div>
</th>
</tr>
<tr id="i344" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/DefaultHlsDataSourceFactory.html" title="class in com.google.android.exoplayer2.source.hls">DefaultHlsDataSourceFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/source/hls/HlsDataSourceFactory.html" title="interface in com.google.android.exoplayer2.source.hls"><code>HlsDataSourceFactory</code></a>.</div>
</th>
</tr>
<tr id="i345" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/DefaultHlsExtractorFactory.html" title="class in com.google.android.exoplayer2.source.hls">DefaultHlsExtractorFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default <a href="com/google/android/exoplayer2/source/hls/HlsExtractorFactory.html" title="interface in com.google.android.exoplayer2.source.hls"><code>HlsExtractorFactory</code></a> implementation.</div>
</th>
</tr>
<tr id="i346" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/DefaultHlsPlaylistParserFactory.html" title="class in com.google.android.exoplayer2.source.hls.playlist">DefaultHlsPlaylistParserFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation for <a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParserFactory.html" title="interface in com.google.android.exoplayer2.source.hls.playlist"><code>HlsPlaylistParserFactory</code></a>.</div>
</th>
</tr>
<tr id="i347" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/DefaultHlsPlaylistTracker.html" title="class in com.google.android.exoplayer2.source.hls.playlist">DefaultHlsPlaylistTracker</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation for <a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.html" title="interface in com.google.android.exoplayer2.source.hls.playlist"><code>HlsPlaylistTracker</code></a>.</div>
</th>
</tr>
<tr id="i348" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultHttpDataSource.html" title="class in com.google.android.exoplayer2.upstream">DefaultHttpDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>HttpDataSource</code></a> that uses Android's <a href="https://developer.android.com/reference/java/net/HttpURLConnection.html" title="class or interface in java.net" class="externalLink" target="_top"><code>HttpURLConnection</code></a>.</div>
</th>
</tr>
<tr id="i349" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultHttpDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream">DefaultHttpDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/upstream/DefaultHttpDataSource.html" title="class in com.google.android.exoplayer2.upstream"><code>DefaultHttpDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i350" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2"><code>LivePlaybackSpeedControl</code></a> that adjusts the playback speed using a proportional
controller.</div>
</th>
</tr>
<tr id="i351" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLivePlaybackSpeedControl.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for a <a href="com/google/android/exoplayer2/DefaultLivePlaybackSpeedControl.html" title="class in com.google.android.exoplayer2"><code>DefaultLivePlaybackSpeedControl</code></a>.</div>
</th>
</tr>
<tr id="i352" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DefaultLoadControl.html" title="class in com.google.android.exoplayer2">DefaultLoadControl</a></td>
<th class="colLast" scope="row">
<div class="block">The default <a href="com/google/android/exoplayer2/LoadControl.html" title="interface in com.google.android.exoplayer2"><code>LoadControl</code></a> implementation.</div>
</th>
</tr>
<tr id="i353" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DefaultLoadControl.Builder.html" title="class in com.google.android.exoplayer2">DefaultLoadControl.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/DefaultLoadControl.html" title="class in com.google.android.exoplayer2"><code>DefaultLoadControl</code></a>.</div>
</th>
</tr>
<tr id="i354" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy.html" title="class in com.google.android.exoplayer2.upstream">DefaultLoadErrorHandlingPolicy</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.html" title="interface in com.google.android.exoplayer2.upstream"><code>LoadErrorHandlingPolicy</code></a>.</div>
</th>
</tr>
<tr id="i355" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/DefaultMediaCodecAdapterFactory.html" title="class in com.google.android.exoplayer2.mediacodec">DefaultMediaCodecAdapterFactory</a></td>
<th class="colLast" scope="row">
<div class="block">The default <a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.Factory.html" title="interface in com.google.android.exoplayer2.mediacodec"><code>MediaCodecAdapter.Factory</code></a>.</div>
</th>
</tr>
<tr id="i356" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/DefaultMediaDescriptionAdapter.html" title="class in com.google.android.exoplayer2.ui">DefaultMediaDescriptionAdapter</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.MediaDescriptionAdapter.html" title="interface in com.google.android.exoplayer2.ui"><code>PlayerNotificationManager.MediaDescriptionAdapter</code></a>.</div>
</th>
</tr>
<tr id="i357" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.html" title="class in com.google.android.exoplayer2.ext.cast">DefaultMediaItemConverter</a></td>
<th class="colLast" scope="row">
<div class="block">Default <a href="com/google/android/exoplayer2/ext/cast/MediaItemConverter.html" title="interface in com.google.android.exoplayer2.ext.cast"><code>MediaItemConverter</code></a> implementation.</div>
</th>
</tr>
<tr id="i358" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/DefaultMediaItemConverter.html" title="class in com.google.android.exoplayer2.ext.media2">DefaultMediaItemConverter</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/ext/media2/MediaItemConverter.html" title="interface in com.google.android.exoplayer2.ext.media2"><code>MediaItemConverter</code></a>.</div>
</th>
</tr>
<tr id="i359" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source">DefaultMediaSourceFactory</a></td>
<th class="colLast" scope="row">
<div class="block">The default <a href="com/google/android/exoplayer2/source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a> implementation.</div>
</th>
</tr>
<tr id="i360" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/DefaultMediaSourceFactory.AdsLoaderProvider.html" title="interface in com.google.android.exoplayer2.source">DefaultMediaSourceFactory.AdsLoaderProvider</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/source/ads/AdsLoader.Provider.html" title="interface in com.google.android.exoplayer2.source.ads"><code>AdsLoader.Provider</code></a> instead.</div>
</th>
</tr>
<tr id="i361" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManager.html" title="class in com.google.android.exoplayer2.analytics">DefaultPlaybackSessionManager</a></td>
<th class="colLast" scope="row">
<div class="block">Default <a href="com/google/android/exoplayer2/analytics/PlaybackSessionManager.html" title="interface in com.google.android.exoplayer2.analytics"><code>PlaybackSessionManager</code></a> which instantiates a new session for each window in the
timeline and also for each ad within the windows.</div>
</th>
</tr>
<tr id="i362" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2">DefaultRenderersFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default <a href="com/google/android/exoplayer2/RenderersFactory.html" title="interface in com.google.android.exoplayer2"><code>RenderersFactory</code></a> implementation.</div>
</th>
</tr>
<tr id="i363" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DefaultRenderersFactory.ExtensionRendererMode.html" title="annotation in com.google.android.exoplayer2">DefaultRenderersFactory.ExtensionRendererMode</a></td>
<th class="colLast" scope="row">
<div class="block">Modes for using extension renderers.</div>
</th>
</tr>
<tr id="i364" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DefaultRenderersFactoryAsserts.html" title="class in com.google.android.exoplayer2.testutil">DefaultRenderersFactoryAsserts</a></td>
<th class="colLast" scope="row">
<div class="block">Assertions for <a href="com/google/android/exoplayer2/DefaultRenderersFactory.html" title="class in com.google.android.exoplayer2"><code>DefaultRenderersFactory</code></a>.</div>
</th>
</tr>
<tr id="i365" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/reader/DefaultRtpPayloadReaderFactory.html" title="class in com.google.android.exoplayer2.source.rtsp.reader">DefaultRtpPayloadReaderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default <a href="com/google/android/exoplayer2/source/rtsp/reader/RtpPayloadReader.Factory.html" title="interface in com.google.android.exoplayer2.source.rtsp.reader"><code>RtpPayloadReader.Factory</code></a> implementation.</div>
</th>
</tr>
<tr id="i366" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/DefaultSsChunkSource.html" title="class in com.google.android.exoplayer2.source.smoothstreaming">DefaultSsChunkSource</a></td>
<th class="colLast" scope="row">
<div class="block">A default <a href="com/google/android/exoplayer2/source/smoothstreaming/SsChunkSource.html" title="interface in com.google.android.exoplayer2.source.smoothstreaming"><code>SsChunkSource</code></a> implementation.</div>
</th>
</tr>
<tr id="i367" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/DefaultSsChunkSource.Factory.html" title="class in com.google.android.exoplayer2.source.smoothstreaming">DefaultSsChunkSource.Factory</a></td>
<th class="colLast" scope="row">&nbsp;</th>
</tr>
<tr id="i368" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/DefaultTimeBar.html" title="class in com.google.android.exoplayer2.ui">DefaultTimeBar</a></td>
<th class="colLast" scope="row">
<div class="block">A time bar that shows a current position, buffered position, duration and ad markers.</div>
</th>
</tr>
<tr id="i369" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/DefaultTrackNameProvider.html" title="class in com.google.android.exoplayer2.ui">DefaultTrackNameProvider</a></td>
<th class="colLast" scope="row">
<div class="block">A default <a href="com/google/android/exoplayer2/ui/TrackNameProvider.html" title="interface in com.google.android.exoplayer2.ui"><code>TrackNameProvider</code></a>.</div>
</th>
</tr>
<tr id="i370" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector</a></td>
<th class="colLast" scope="row">
<div class="block">A default <a href="com/google/android/exoplayer2/trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a> suitable for most use cases.</div>
</th>
</tr>
<tr id="i371" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.Parameters</a></td>
<th class="colLast" scope="row">
<div class="block">Extends <a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector.Parameters</code></a> by adding fields that are specific to <a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector</code></a>.</div>
</th>
</tr>
<tr id="i372" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.Builder.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.Parameters.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector.Parameters</code></a>.</div>
</th>
</tr>
<tr id="i373" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.ParametersBuilder.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.ParametersBuilder</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.Parameters.Builder.html" title="class in com.google.android.exoplayer2.trackselection"><code>DefaultTrackSelector.Parameters.Builder</code></a> instead.</div>
</th>
</tr>
<tr id="i374" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.SelectionEligibility.html" title="annotation in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.SelectionEligibility</a></td>
<th class="colLast" scope="row">
<div class="block">The extent to which tracks are eligible for selection.</div>
</th>
</tr>
<tr id="i375" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/DefaultTrackSelector.SelectionOverride.html" title="class in com.google.android.exoplayer2.trackselection">DefaultTrackSelector.SelectionOverride</a></td>
<th class="colLast" scope="row">
<div class="block">A track selection override.</div>
</th>
</tr>
<tr id="i376" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.html" title="class in com.google.android.exoplayer2.extractor.ts">DefaultTsPayloadReaderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Default <a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.Factory.html" title="interface in com.google.android.exoplayer2.extractor.ts"><code>TsPayloadReader.Factory</code></a> implementation.</div>
</th>
</tr>
<tr id="i377" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.ts">DefaultTsPayloadReaderFactory.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling elementary stream readers' behavior.</div>
</th>
</tr>
<tr id="i378" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/Descriptor.html" title="class in com.google.android.exoplayer2.source.dash.manifest">Descriptor</a></td>
<th class="colLast" scope="row">
<div class="block">A descriptor, as defined by ISO 23009-1, 2nd edition, 5.8.2.</div>
</th>
</tr>
<tr id="i379" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DeviceInfo.html" title="class in com.google.android.exoplayer2">DeviceInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Information about the playback device.</div>
</th>
</tr>
<tr id="i380" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/DeviceInfo.PlaybackType.html" title="annotation in com.google.android.exoplayer2">DeviceInfo.PlaybackType</a></td>
<th class="colLast" scope="row">
<div class="block">Types of playback.</div>
</th>
</tr>
<tr id="i381" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/DolbyVisionConfig.html" title="class in com.google.android.exoplayer2.video">DolbyVisionConfig</a></td>
<th class="colLast" scope="row">
<div class="block">Dolby Vision configuration data.</div>
</th>
</tr>
<tr id="i382" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/Download.html" title="class in com.google.android.exoplayer2.offline">Download</a></td>
<th class="colLast" scope="row">
<div class="block">Represents state of a download.</div>
</th>
</tr>
<tr id="i383" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/Download.FailureReason.html" title="annotation in com.google.android.exoplayer2.offline">Download.FailureReason</a></td>
<th class="colLast" scope="row">
<div class="block">Failure reasons.</div>
</th>
</tr>
<tr id="i384" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/Download.State.html" title="annotation in com.google.android.exoplayer2.offline">Download.State</a></td>
<th class="colLast" scope="row">
<div class="block">Download states.</div>
</th>
</tr>
<tr id="i385" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DownloadBuilder.html" title="class in com.google.android.exoplayer2.testutil">DownloadBuilder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/offline/Download.html" title="class in com.google.android.exoplayer2.offline"><code>Download</code></a>.</div>
</th>
</tr>
<tr id="i386" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadCursor.html" title="interface in com.google.android.exoplayer2.offline">DownloadCursor</a></td>
<th class="colLast" scope="row">
<div class="block">Provides random read-write access to the result set returned by a database query.</div>
</th>
</tr>
<tr id="i387" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/Downloader.html" title="interface in com.google.android.exoplayer2.offline">Downloader</a></td>
<th class="colLast" scope="row">
<div class="block">Downloads and removes a piece of content.</div>
</th>
</tr>
<tr id="i388" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/Downloader.ProgressListener.html" title="interface in com.google.android.exoplayer2.offline">Downloader.ProgressListener</a></td>
<th class="colLast" scope="row">
<div class="block">Receives progress updates during download operations.</div>
</th>
</tr>
<tr id="i389" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloaderFactory.html" title="interface in com.google.android.exoplayer2.offline">DownloaderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Creates <a href="com/google/android/exoplayer2/offline/Downloader.html" title="interface in com.google.android.exoplayer2.offline"><code>Downloaders</code></a> for given <a href="com/google/android/exoplayer2/offline/DownloadRequest.html" title="class in com.google.android.exoplayer2.offline"><code>DownloadRequests</code></a>.</div>
</th>
</tr>
<tr id="i390" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadException.html" title="class in com.google.android.exoplayer2.offline">DownloadException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown on an error during downloading.</div>
</th>
</tr>
<tr id="i391" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadHelper.html" title="class in com.google.android.exoplayer2.offline">DownloadHelper</a></td>
<th class="colLast" scope="row">
<div class="block">A helper for initializing and removing downloads.</div>
</th>
</tr>
<tr id="i392" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadHelper.Callback.html" title="interface in com.google.android.exoplayer2.offline">DownloadHelper.Callback</a></td>
<th class="colLast" scope="row">
<div class="block">A callback to be notified when the <a href="com/google/android/exoplayer2/offline/DownloadHelper.html" title="class in com.google.android.exoplayer2.offline"><code>DownloadHelper</code></a> is prepared.</div>
</th>
</tr>
<tr id="i393" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadHelper.LiveContentUnsupportedException.html" title="class in com.google.android.exoplayer2.offline">DownloadHelper.LiveContentUnsupportedException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown at an attempt to download live content.</div>
</th>
</tr>
<tr id="i394" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadIndex.html" title="interface in com.google.android.exoplayer2.offline">DownloadIndex</a></td>
<th class="colLast" scope="row">
<div class="block">An index of <a href="com/google/android/exoplayer2/offline/Download.html" title="class in com.google.android.exoplayer2.offline"><code>Downloads</code></a>.</div>
</th>
</tr>
<tr id="i395" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadManager.html" title="class in com.google.android.exoplayer2.offline">DownloadManager</a></td>
<th class="colLast" scope="row">
<div class="block">Manages downloads.</div>
</th>
</tr>
<tr id="i396" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadManager.Listener.html" title="interface in com.google.android.exoplayer2.offline">DownloadManager.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for <a href="com/google/android/exoplayer2/offline/DownloadManager.html" title="class in com.google.android.exoplayer2.offline"><code>DownloadManager</code></a> events.</div>
</th>
</tr>
<tr id="i397" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/DownloadNotificationHelper.html" title="class in com.google.android.exoplayer2.ui">DownloadNotificationHelper</a></td>
<th class="colLast" scope="row">
<div class="block">Helper for creating download notifications.</div>
</th>
</tr>
<tr id="i398" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadProgress.html" title="class in com.google.android.exoplayer2.offline">DownloadProgress</a></td>
<th class="colLast" scope="row">
<div class="block">Mutable <a href="com/google/android/exoplayer2/offline/Download.html" title="class in com.google.android.exoplayer2.offline"><code>Download</code></a> progress.</div>
</th>
</tr>
<tr id="i399" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadRequest.html" title="class in com.google.android.exoplayer2.offline">DownloadRequest</a></td>
<th class="colLast" scope="row">
<div class="block">Defines content to be downloaded.</div>
</th>
</tr>
<tr id="i400" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadRequest.Builder.html" title="class in com.google.android.exoplayer2.offline">DownloadRequest.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for download requests.</div>
</th>
</tr>
<tr id="i401" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadRequest.UnsupportedRequestException.html" title="class in com.google.android.exoplayer2.offline">DownloadRequest.UnsupportedRequestException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when the encoded request data belongs to an unsupported request type.</div>
</th>
</tr>
<tr id="i402" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/DownloadService.html" title="class in com.google.android.exoplayer2.offline">DownloadService</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="https://developer.android.com/reference/android/app/Service.html" title="class or interface in android.app" class="externalLink" target="_top"><code>Service</code></a> for downloading media.</div>
</th>
</tr>
<tr id="i403" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmInitData.html" title="class in com.google.android.exoplayer2.drm">DrmInitData</a></td>
<th class="colLast" scope="row">
<div class="block">Initialization data for one or more DRM schemes.</div>
</th>
</tr>
<tr id="i404" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmInitData.SchemeData.html" title="class in com.google.android.exoplayer2.drm">DrmInitData.SchemeData</a></td>
<th class="colLast" scope="row">
<div class="block">Scheme initialization data.</div>
</th>
</tr>
<tr id="i405" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSession.html" title="interface in com.google.android.exoplayer2.drm">DrmSession</a></td>
<th class="colLast" scope="row">
<div class="block">A DRM session.</div>
</th>
</tr>
<tr id="i406" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSession.DrmSessionException.html" title="class in com.google.android.exoplayer2.drm">DrmSession.DrmSessionException</a></td>
<th class="colLast" scope="row">
<div class="block">Wraps the throwable which is the cause of the error state.</div>
</th>
</tr>
<tr id="i407" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSession.State.html" title="annotation in com.google.android.exoplayer2.drm">DrmSession.State</a></td>
<th class="colLast" scope="row">
<div class="block">The state of the DRM session.</div>
</th>
</tr>
<tr id="i408" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSessionEventListener.html" title="interface in com.google.android.exoplayer2.drm">DrmSessionEventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener of <a href="com/google/android/exoplayer2/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSessionManager</code></a> events.</div>
</th>
</tr>
<tr id="i409" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSessionEventListener.EventDispatcher.html" title="class in com.google.android.exoplayer2.drm">DrmSessionEventListener.EventDispatcher</a></td>
<th class="colLast" scope="row">
<div class="block">Dispatches events to <a href="com/google/android/exoplayer2/drm/DrmSessionEventListener.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSessionEventListeners</code></a>.</div>
</th>
</tr>
<tr id="i410" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer2.drm">DrmSessionManager</a></td>
<th class="colLast" scope="row">
<div class="block">Manages a DRM session.</div>
</th>
</tr>
<tr id="i411" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSessionManager.DrmSessionReference.html" title="interface in com.google.android.exoplayer2.drm">DrmSessionManager.DrmSessionReference</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a single reference count of a <a href="com/google/android/exoplayer2/drm/DrmSession.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSession</code></a>, while deliberately not giving
access to the underlying session.</div>
</th>
</tr>
<tr id="i412" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmSessionManagerProvider.html" title="interface in com.google.android.exoplayer2.drm">DrmSessionManagerProvider</a></td>
<th class="colLast" scope="row">
<div class="block">A provider to obtain a <a href="com/google/android/exoplayer2/drm/DrmSessionManager.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSessionManager</code></a> suitable for playing the content described by a
<a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</th>
</tr>
<tr id="i413" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmUtil.html" title="class in com.google.android.exoplayer2.drm">DrmUtil</a></td>
<th class="colLast" scope="row">
<div class="block">DRM-related utility methods.</div>
</th>
</tr>
<tr id="i414" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DrmUtil.ErrorSource.html" title="annotation in com.google.android.exoplayer2.drm">DrmUtil.ErrorSource</a></td>
<th class="colLast" scope="row">
<div class="block">Identifies the operation which caused a DRM-related error.</div>
</th>
</tr>
<tr id="i415" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/DtsReader.html" title="class in com.google.android.exoplayer2.extractor.ts">DtsReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous DTS byte stream and extracts individual samples.</div>
</th>
</tr>
<tr id="i416" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/DtsUtil.html" title="class in com.google.android.exoplayer2.audio">DtsUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for parsing DTS frames.</div>
</th>
</tr>
<tr id="i417" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/DummyExoMediaDrm.html" title="class in com.google.android.exoplayer2.drm">DummyExoMediaDrm</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm</code></a> that does not support any protection schemes.</div>
</th>
</tr>
<tr id="i418" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/DummyExtractorOutput.html" title="class in com.google.android.exoplayer2.extractor">DummyExtractorOutput</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/extractor/ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorOutput</code></a> implementation.</div>
</th>
</tr>
<tr id="i419" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DummyMainThread.html" title="class in com.google.android.exoplayer2.testutil">DummyMainThread</a></td>
<th class="colLast" scope="row">
<div class="block">Helper class to simulate main/UI thread in tests.</div>
</th>
</tr>
<tr id="i420" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DummyMainThread.TestRunnable.html" title="interface in com.google.android.exoplayer2.testutil">DummyMainThread.TestRunnable</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="https://developer.android.com/reference/java/lang/Runnable.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>Runnable</code></a> variant which can throw a checked exception.</div>
</th>
</tr>
<tr id="i421" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/DummyTrackOutput.html" title="class in com.google.android.exoplayer2.extractor">DummyTrackOutput</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/extractor/TrackOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>TrackOutput</code></a> implementation.</div>
</th>
</tr>
<tr id="i422" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DumpableFormat.html" title="class in com.google.android.exoplayer2.testutil">DumpableFormat</a></td>
<th class="colLast" scope="row">
<div class="block">Wraps a <a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a> to allow dumping it.</div>
</th>
</tr>
<tr id="i423" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Dumper.html" title="class in com.google.android.exoplayer2.testutil">Dumper</a></td>
<th class="colLast" scope="row">
<div class="block">Helper utility to dump field values.</div>
</th>
</tr>
<tr id="i424" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/Dumper.Dumpable.html" title="interface in com.google.android.exoplayer2.testutil">Dumper.Dumpable</a></td>
<th class="colLast" scope="row">
<div class="block">Provides custom dump method.</div>
</th>
</tr>
<tr id="i425" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/DumpFileAsserts.html" title="class in com.google.android.exoplayer2.testutil">DumpFileAsserts</a></td>
<th class="colLast" scope="row">
<div class="block">Helper class to enable assertions based on golden-data dump files.</div>
</th>
</tr>
<tr id="i426" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/dvb/DvbDecoder.html" title="class in com.google.android.exoplayer2.text.dvb">DvbDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for DVB subtitles.</div>
</th>
</tr>
<tr id="i427" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/DvbSubtitleReader.html" title="class in com.google.android.exoplayer2.extractor.ts">DvbSubtitleReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses DVB subtitle data and extracts individual frames.</div>
</th>
</tr>
<tr id="i428" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.html" title="interface in com.google.android.exoplayer2.extractor.mkv">EbmlProcessor</a></td>
<th class="colLast" scope="row">
<div class="block">Defines EBML element IDs/types and processes events.</div>
</th>
</tr>
<tr id="i429" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.ElementType.html" title="annotation in com.google.android.exoplayer2.extractor.mkv">EbmlProcessor.ElementType</a></td>
<th class="colLast" scope="row">
<div class="block">EBML element types.</div>
</th>
</tr>
<tr id="i430" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.html" title="class in com.google.android.exoplayer2.util">EGLSurfaceTexture</a></td>
<th class="colLast" scope="row">
<div class="block">Generates a <a href="https://developer.android.com/reference/android/graphics/SurfaceTexture.html" title="class or interface in android.graphics" class="externalLink" target="_top"><code>SurfaceTexture</code></a> using EGL/GLES functions.</div>
</th>
</tr>
<tr id="i431" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.GlException.html" title="class in com.google.android.exoplayer2.util">EGLSurfaceTexture.GlException</a></td>
<th class="colLast" scope="row">
<div class="block">A runtime exception to be thrown if some EGL operations failed.</div>
</th>
</tr>
<tr id="i432" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.SecureMode.html" title="annotation in com.google.android.exoplayer2.util">EGLSurfaceTexture.SecureMode</a></td>
<th class="colLast" scope="row">
<div class="block">Secure mode to be used by the EGL surface and context.</div>
</th>
</tr>
<tr id="i433" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/EGLSurfaceTexture.TextureImageListener.html" title="interface in com.google.android.exoplayer2.util">EGLSurfaceTexture.TextureImageListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener to be called when the texture image on <a href="https://developer.android.com/reference/android/graphics/SurfaceTexture.html" title="class or interface in android.graphics" class="externalLink" target="_top"><code>SurfaceTexture</code></a> has been updated.</div>
</th>
</tr>
<tr id="i434" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/ElementaryStreamReader.html" title="interface in com.google.android.exoplayer2.extractor.ts">ElementaryStreamReader</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts individual samples from an elementary media stream, preserving original order.</div>
</th>
</tr>
<tr id="i435" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/EmptySampleStream.html" title="class in com.google.android.exoplayer2.source">EmptySampleStream</a></td>
<th class="colLast" scope="row">
<div class="block">An empty <a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div>
</th>
</tr>
<tr id="i436" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/EncoderSelector.html" title="interface in com.google.android.exoplayer2.transformer">EncoderSelector</a></td>
<th class="colLast" scope="row">
<div class="block">Selector of <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> encoder instances.</div>
</th>
</tr>
<tr id="i437" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/EncoderUtil.html" title="class in com.google.android.exoplayer2.transformer">EncoderUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> encoders.</div>
</th>
</tr>
<tr id="i438" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ErrorMessageProvider.html" title="interface in com.google.android.exoplayer2.util">ErrorMessageProvider</a>&lt;<a href="com/google/android/exoplayer2/util/ErrorMessageProvider.html" title="type parameter in ErrorMessageProvider">T</a> extends <a href="https://developer.android.com/reference/java/lang/Throwable.html" title="class or interface in java.lang" class="externalLink" target="_top">Throwable</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">Converts throwables into error codes and user readable error messages.</div>
</th>
</tr>
<tr id="i439" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ErrorStateDrmSession.html" title="class in com.google.android.exoplayer2.drm">ErrorStateDrmSession</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/drm/DrmSession.html" title="interface in com.google.android.exoplayer2.drm"><code>DrmSession</code></a> that's in a terminal error state.</div>
</th>
</tr>
<tr id="i440" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/EventLogger.html" title="class in com.google.android.exoplayer2.util">EventLogger</a></td>
<th class="colLast" scope="row">
<div class="block">Logs events from <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> and other core components using <a href="com/google/android/exoplayer2/util/Log.html" title="class in com.google.android.exoplayer2.util"><code>Log</code></a>.</div>
</th>
</tr>
<tr id="i441" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/emsg/EventMessage.html" title="class in com.google.android.exoplayer2.metadata.emsg">EventMessage</a></td>
<th class="colLast" scope="row">
<div class="block">An Event Message (emsg) as defined in ISO 23009-1.</div>
</th>
</tr>
<tr id="i442" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/emsg/EventMessageDecoder.html" title="class in com.google.android.exoplayer2.metadata.emsg">EventMessageDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes data encoded by <a href="com/google/android/exoplayer2/metadata/emsg/EventMessageEncoder.html" title="class in com.google.android.exoplayer2.metadata.emsg"><code>EventMessageEncoder</code></a>.</div>
</th>
</tr>
<tr id="i443" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/emsg/EventMessageEncoder.html" title="class in com.google.android.exoplayer2.metadata.emsg">EventMessageEncoder</a></td>
<th class="colLast" scope="row">
<div class="block">Encodes data that can be decoded by <a href="com/google/android/exoplayer2/metadata/emsg/EventMessageDecoder.html" title="class in com.google.android.exoplayer2.metadata.emsg"><code>EventMessageDecoder</code></a>.</div>
</th>
</tr>
<tr id="i444" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/EventStream.html" title="class in com.google.android.exoplayer2.source.dash.manifest">EventStream</a></td>
<th class="colLast" scope="row">
<div class="block">A DASH in-MPD EventStream element, as defined by ISO/IEC 23009-1, 2nd edition, section 5.10.</div>
</th>
</tr>
<tr id="i445" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/database/ExoDatabaseProvider.html" title="class in com.google.android.exoplayer2.database">ExoDatabaseProvider</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/database/StandaloneDatabaseProvider.html" title="class in com.google.android.exoplayer2.database"><code>StandaloneDatabaseProvider</code></a>.</div>
</th>
</tr>
<tr id="i446" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExoHostedTest.html" title="class in com.google.android.exoplayer2.testutil">ExoHostedTest</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/testutil/HostActivity.HostedTest.html" title="interface in com.google.android.exoplayer2.testutil"><code>HostActivity.HostedTest</code></a> for <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> playback tests.</div>
</th>
</tr>
<tr id="i447" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm">ExoMediaDrm</a></td>
<th class="colLast" scope="row">
<div class="block">Used to obtain keys for decrypting protected media streams.</div>
</th>
</tr>
<tr id="i448" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.AppManagedProvider.html" title="class in com.google.android.exoplayer2.drm">ExoMediaDrm.AppManagedProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides an <a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm</code></a> instance owned by the app.</div>
</th>
</tr>
<tr id="i449" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.KeyRequest.html" title="class in com.google.android.exoplayer2.drm">ExoMediaDrm.KeyRequest</a></td>
<th class="colLast" scope="row">
<div class="block">Contains data used to request keys from a license server.</div>
</th>
</tr>
<tr id="i450" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.KeyRequest.RequestType.html" title="annotation in com.google.android.exoplayer2.drm">ExoMediaDrm.KeyRequest.RequestType</a></td>
<th class="colLast" scope="row">
<div class="block">Key request types.</div>
</th>
</tr>
<tr id="i451" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.KeyStatus.html" title="class in com.google.android.exoplayer2.drm">ExoMediaDrm.KeyStatus</a></td>
<th class="colLast" scope="row">
<div class="block">Defines the status of a key.</div>
</th>
</tr>
<tr id="i452" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.OnEventListener.html" title="interface in com.google.android.exoplayer2.drm">ExoMediaDrm.OnEventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Called when a DRM event occurs.</div>
</th>
</tr>
<tr id="i453" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.OnExpirationUpdateListener.html" title="interface in com.google.android.exoplayer2.drm">ExoMediaDrm.OnExpirationUpdateListener</a></td>
<th class="colLast" scope="row">
<div class="block">Called when a session expiration update occurs.</div>
</th>
</tr>
<tr id="i454" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.OnKeyStatusChangeListener.html" title="interface in com.google.android.exoplayer2.drm">ExoMediaDrm.OnKeyStatusChangeListener</a></td>
<th class="colLast" scope="row">
<div class="block">Called when the keys in a DRM session change state.</div>
</th>
</tr>
<tr id="i455" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.Provider.html" title="interface in com.google.android.exoplayer2.drm">ExoMediaDrm.Provider</a></td>
<th class="colLast" scope="row">
<div class="block">Provider for <a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm</code></a> instances.</div>
</th>
</tr>
<tr id="i456" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/ExoMediaDrm.ProvisionRequest.html" title="class in com.google.android.exoplayer2.drm">ExoMediaDrm.ProvisionRequest</a></td>
<th class="colLast" scope="row">
<div class="block">Contains data to request a certificate from a provisioning server.</div>
</th>
</tr>
<tr id="i457" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlaybackException.html" title="class in com.google.android.exoplayer2">ExoPlaybackException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a non locally recoverable playback failure occurs.</div>
</th>
</tr>
<tr id="i458" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlaybackException.Type.html" title="annotation in com.google.android.exoplayer2">ExoPlaybackException.Type</a></td>
<th class="colLast" scope="row">
<div class="block">The type of source that produced the error.</div>
</th>
</tr>
<tr id="i459" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2">ExoPlayer</a></td>
<th class="colLast" scope="row">
<div class="block">An extensible media player that plays <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>s.</div>
</th>
</tr>
<tr id="i460" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioComponent</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>, as the <a href="com/google/android/exoplayer2/ExoPlayer.AudioComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.AudioComponent</code></a> methods are defined by that
interface.</div>
</th>
</tr>
<tr id="i461" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayer.AudioOffloadListener.html" title="interface in com.google.android.exoplayer2">ExoPlayer.AudioOffloadListener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for audio offload events.</div>
</th>
</tr>
<tr id="i462" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">ExoPlayer.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instances.</div>
</th>
</tr>
<tr id="i463" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.DeviceComponent</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>, as the <a href="com/google/android/exoplayer2/ExoPlayer.DeviceComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.DeviceComponent</code></a> methods are defined by that
interface.</div>
</th>
</tr>
<tr id="i464" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.TextComponent</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>, as the <a href="com/google/android/exoplayer2/ExoPlayer.TextComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.TextComponent</code></a> methods are defined by that
interface.</div>
</th>
</tr>
<tr id="i465" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2">ExoPlayer.VideoComponent</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>, as the <a href="com/google/android/exoplayer2/ExoPlayer.VideoComponent.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer.VideoComponent</code></a> methods are defined by that
interface.</div>
</th>
</tr>
<tr id="i466" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/ExoplayerCuesDecoder.html" title="class in com.google.android.exoplayer2.text">ExoplayerCuesDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SubtitleDecoder.html" title="interface in com.google.android.exoplayer2.text"><code>SubtitleDecoder</code></a> that decodes subtitle samples of type <a href="com/google/android/exoplayer2/util/MimeTypes.html#TEXT_EXOPLAYER_CUES"><code>MimeTypes.TEXT_EXOPLAYER_CUES</code></a></div>
</th>
</tr>
<tr id="i467" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoPlayerLibraryInfo.html" title="class in com.google.android.exoplayer2">ExoPlayerLibraryInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Information about the media libraries.</div>
</th>
</tr>
<tr id="i468" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.html" title="class in com.google.android.exoplayer2.testutil">ExoPlayerTestRunner</a></td>
<th class="colLast" scope="row">
<div class="block">Helper class to run an ExoPlayer test.</div>
</th>
</tr>
<tr id="i469" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.Builder.html" title="class in com.google.android.exoplayer2.testutil">ExoPlayerTestRunner.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder to set-up an <a href="com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.html" title="class in com.google.android.exoplayer2.testutil"><code>ExoPlayerTestRunner</code></a>.</div>
</th>
</tr>
<tr id="i470" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoTimeoutException.html" title="class in com.google.android.exoplayer2">ExoTimeoutException</a></td>
<th class="colLast" scope="row">
<div class="block">A timeout of an operation on the ExoPlayer playback thread.</div>
</th>
</tr>
<tr id="i471" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ExoTimeoutException.TimeoutOperation.html" title="annotation in com.google.android.exoplayer2">ExoTimeoutException.TimeoutOperation</a></td>
<th class="colLast" scope="row">
<div class="block">The operation which produced the timeout error.</div>
</th>
</tr>
<tr id="i472" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection">ExoTrackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/trackselection/TrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>TrackSelection</code></a> that can change the individually selected track as a result of calling
<a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html#updateSelectedTrack(long,long,long,java.util.List,com.google.android.exoplayer2.source.chunk.MediaChunkIterator%5B%5D)"><code>ExoTrackSelection.updateSelectedTrack(long, long, long, List, MediaChunkIterator[])</code></a> or <a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html#evaluateQueueSize(long,java.util.List)"><code>ExoTrackSelection.evaluateQueueSize(long, List)</code></a>.</div>
</th>
</tr>
<tr id="i473" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.Definition.html" title="class in com.google.android.exoplayer2.trackselection">ExoTrackSelection.Definition</a></td>
<th class="colLast" scope="row">
<div class="block">Contains of a subset of selected tracks belonging to a <a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroup</code></a>.</div>
</th>
</tr>
<tr id="i474" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.Factory.html" title="interface in com.google.android.exoplayer2.trackselection">ExoTrackSelection.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>ExoTrackSelection</code></a> instances.</div>
</th>
</tr>
<tr id="i475" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor">Extractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts media data from a container format.</div>
</th>
</tr>
<tr id="i476" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/Extractor.ReadResult.html" title="annotation in com.google.android.exoplayer2.extractor">Extractor.ReadResult</a></td>
<th class="colLast" scope="row">
<div class="block">Result values that can be returned by <a href="com/google/android/exoplayer2/extractor/Extractor.html#read(com.google.android.exoplayer2.extractor.ExtractorInput,com.google.android.exoplayer2.extractor.PositionHolder)"><code>Extractor.read(ExtractorInput, PositionHolder)</code></a>.</div>
</th>
</tr>
<tr id="i477" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExtractorAsserts.html" title="class in com.google.android.exoplayer2.testutil">ExtractorAsserts</a></td>
<th class="colLast" scope="row">
<div class="block">Assertion methods for <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a>.</div>
</th>
</tr>
<tr id="i478" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExtractorAsserts.AssertionConfig.html" title="class in com.google.android.exoplayer2.testutil">ExtractorAsserts.AssertionConfig</a></td>
<th class="colLast" scope="row">
<div class="block">A config for the assertions made (e.g.</div>
</th>
</tr>
<tr id="i479" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExtractorAsserts.AssertionConfig.Builder.html" title="class in com.google.android.exoplayer2.testutil">ExtractorAsserts.AssertionConfig.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/testutil/ExtractorAsserts.AssertionConfig.html" title="class in com.google.android.exoplayer2.testutil"><code>ExtractorAsserts.AssertionConfig</code></a> instances.</div>
</th>
</tr>
<tr id="i480" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExtractorAsserts.ExtractorFactory.html" title="interface in com.google.android.exoplayer2.testutil">ExtractorAsserts.ExtractorFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a> instances.</div>
</th>
</tr>
<tr id="i481" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/ExtractorAsserts.SimulationConfig.html" title="class in com.google.android.exoplayer2.testutil">ExtractorAsserts.SimulationConfig</a></td>
<th class="colLast" scope="row">
<div class="block">A config of different environments to simulate and extractor behaviours to test.</div>
</th>
</tr>
<tr id="i482" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorInput</a></td>
<th class="colLast" scope="row">
<div class="block">Provides data to be consumed by an <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a>.</div>
</th>
</tr>
<tr id="i483" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorOutput</a></td>
<th class="colLast" scope="row">
<div class="block">Receives stream level data extracted by an <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a>.</div>
</th>
</tr>
<tr id="i484" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ExtractorsFactory.html" title="interface in com.google.android.exoplayer2.extractor">ExtractorsFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for arrays of <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a> instances.</div>
</th>
</tr>
<tr id="i485" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ExtractorUtil.html" title="class in com.google.android.exoplayer2.extractor">ExtractorUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Extractor related utility methods.</div>
</th>
</tr>
<tr id="i486" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FailOnCloseDataSink.html" title="class in com.google.android.exoplayer2.testutil">FailOnCloseDataSink</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSink.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSink</code></a> that can simulate caching the bytes being written to it, and then failing to
persist them when <a href="com/google/android/exoplayer2/testutil/FailOnCloseDataSink.html#close()"><code>FailOnCloseDataSink.close()</code></a> is called.</div>
</th>
</tr>
<tr id="i487" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FailOnCloseDataSink.Factory.html" title="class in com.google.android.exoplayer2.testutil">FailOnCloseDataSink.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory to create a <a href="com/google/android/exoplayer2/testutil/FailOnCloseDataSink.html" title="class in com.google.android.exoplayer2.testutil"><code>FailOnCloseDataSink</code></a>.</div>
</th>
</tr>
<tr id="i488" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeAdaptiveDataSet.html" title="class in com.google.android.exoplayer2.testutil">FakeAdaptiveDataSet</a></td>
<th class="colLast" scope="row">
<div class="block">Fake data set emulating the data of an adaptive media source.</div>
</th>
</tr>
<tr id="i489" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeAdaptiveDataSet.Factory.html" title="class in com.google.android.exoplayer2.testutil">FakeAdaptiveDataSet.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/testutil/FakeAdaptiveDataSet.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeAdaptiveDataSet</code></a>s.</div>
</th>
</tr>
<tr id="i490" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeAdaptiveDataSet.Iterator.html" title="class in com.google.android.exoplayer2.testutil">FakeAdaptiveDataSet.Iterator</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/chunk/MediaChunkIterator.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>MediaChunkIterator</code></a> for the chunks defined by a fake adaptive data set.</div>
</th>
</tr>
<tr id="i491" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeAdaptiveMediaPeriod.html" title="class in com.google.android.exoplayer2.testutil">FakeAdaptiveMediaPeriod</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source"><code>MediaPeriod</code></a> that provides tracks from the given <a href="com/google/android/exoplayer2/source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a>.</div>
</th>
</tr>
<tr id="i492" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeAdaptiveMediaSource.html" title="class in com.google.android.exoplayer2.testutil">FakeAdaptiveMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> that provides a given timeline.</div>
</th>
</tr>
<tr id="i493" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeAudioRenderer.html" title="class in com.google.android.exoplayer2.testutil">FakeAudioRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/testutil/FakeRenderer.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeRenderer</code></a> that supports <a href="com/google/android/exoplayer2/C.html#TRACK_TYPE_AUDIO"><code>C.TRACK_TYPE_AUDIO</code></a>.</div>
</th>
</tr>
<tr id="i494" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeChunkSource.html" title="class in com.google.android.exoplayer2.testutil">FakeChunkSource</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/chunk/ChunkSource.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkSource</code></a> with adaptive media chunks of a given duration.</div>
</th>
</tr>
<tr id="i495" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeChunkSource.Factory.html" title="class in com.google.android.exoplayer2.testutil">FakeChunkSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for a <a href="com/google/android/exoplayer2/testutil/FakeChunkSource.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeChunkSource</code></a>.</div>
</th>
</tr>
<tr id="i496" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeClock.html" title="class in com.google.android.exoplayer2.testutil">FakeClock</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a> implementation that allows to <a href="com/google/android/exoplayer2/testutil/FakeClock.html#advanceTime(long)"><code>advance the time</code></a>
manually to trigger pending timed messages.</div>
</th>
</tr>
<tr id="i497" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeCryptoConfig.html" title="class in com.google.android.exoplayer2.testutil">FakeCryptoConfig</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/decoder/CryptoConfig.html" title="interface in com.google.android.exoplayer2.decoder"><code>CryptoConfig</code></a>.</div>
</th>
</tr>
<tr id="i498" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeDataSet.html" title="class in com.google.android.exoplayer2.testutil">FakeDataSet</a></td>
<th class="colLast" scope="row">
<div class="block">Collection of <a href="com/google/android/exoplayer2/testutil/FakeDataSet.FakeData.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeDataSet.FakeData</code></a> to be served by a <a href="com/google/android/exoplayer2/testutil/FakeDataSource.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeDataSource</code></a>.</div>
</th>
</tr>
<tr id="i499" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeDataSet.FakeData.html" title="class in com.google.android.exoplayer2.testutil">FakeDataSet.FakeData</a></td>
<th class="colLast" scope="row">
<div class="block">Container of fake data to be served by a <a href="com/google/android/exoplayer2/testutil/FakeDataSource.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeDataSource</code></a>.</div>
</th>
</tr>
<tr id="i500" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeDataSet.FakeData.Segment.html" title="class in com.google.android.exoplayer2.testutil">FakeDataSet.FakeData.Segment</a></td>
<th class="colLast" scope="row">
<div class="block">A segment of <a href="com/google/android/exoplayer2/testutil/FakeDataSet.FakeData.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeDataSet.FakeData</code></a>.</div>
</th>
</tr>
<tr id="i501" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeDataSource.html" title="class in com.google.android.exoplayer2.testutil">FakeDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> capable of simulating various scenarios.</div>
</th>
</tr>
<tr id="i502" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeDataSource.Factory.html" title="class in com.google.android.exoplayer2.testutil">FakeDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory to create a <a href="com/google/android/exoplayer2/testutil/FakeDataSource.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeDataSource</code></a>.</div>
</th>
</tr>
<tr id="i503" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeExoMediaDrm.html" title="class in com.google.android.exoplayer2.testutil">FakeExoMediaDrm</a></td>
<th class="colLast" scope="row">
<div class="block">A fake implementation of <a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm</code></a> for use in tests.</div>
</th>
</tr>
<tr id="i504" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeExoMediaDrm.Builder.html" title="class in com.google.android.exoplayer2.testutil">FakeExoMediaDrm.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/testutil/FakeExoMediaDrm.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeExoMediaDrm</code></a> instances.</div>
</th>
</tr>
<tr id="i505" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeExoMediaDrm.LicenseServer.html" title="class in com.google.android.exoplayer2.testutil">FakeExoMediaDrm.LicenseServer</a></td>
<th class="colLast" scope="row">
<div class="block">An license server implementation to interact with <a href="com/google/android/exoplayer2/testutil/FakeExoMediaDrm.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeExoMediaDrm</code></a>.</div>
</th>
</tr>
<tr id="i506" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeExtractorInput.html" title="class in com.google.android.exoplayer2.testutil">FakeExtractorInput</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/extractor/ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> capable of simulating various scenarios.</div>
</th>
</tr>
<tr id="i507" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeExtractorInput.Builder.html" title="class in com.google.android.exoplayer2.testutil">FakeExtractorInput.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder of <a href="com/google/android/exoplayer2/testutil/FakeExtractorInput.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeExtractorInput</code></a> instances.</div>
</th>
</tr>
<tr id="i508" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeExtractorInput.SimulatedIOException.html" title="class in com.google.android.exoplayer2.testutil">FakeExtractorInput.SimulatedIOException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when simulating an <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top"><code>IOException</code></a>.</div>
</th>
</tr>
<tr id="i509" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeExtractorOutput.html" title="class in com.google.android.exoplayer2.testutil">FakeExtractorOutput</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/extractor/ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorOutput</code></a>.</div>
</th>
</tr>
<tr id="i510" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaChunk.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaChunk</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/chunk/MediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>MediaChunk</code></a>.</div>
</th>
</tr>
<tr id="i511" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaChunkIterator.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaChunkIterator</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/chunk/MediaChunkIterator.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>MediaChunkIterator</code></a>.</div>
</th>
</tr>
<tr id="i512" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaClockRenderer.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaClockRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Fake abstract <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> which is also a <a href="com/google/android/exoplayer2/util/MediaClock.html" title="interface in com.google.android.exoplayer2.util"><code>MediaClock</code></a>.</div>
</th>
</tr>
<tr id="i513" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaPeriod.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaPeriod</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source"><code>MediaPeriod</code></a> that provides tracks from the given <a href="com/google/android/exoplayer2/source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroupArray</code></a>.</div>
</th>
</tr>
<tr id="i514" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaPeriod.TrackDataFactory.html" title="interface in com.google.android.exoplayer2.testutil">FakeMediaPeriod.TrackDataFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory to create the test data for a particular track.</div>
</th>
</tr>
<tr id="i515" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaSource.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> that provides a given timeline.</div>
</th>
</tr>
<tr id="i516" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaSource.InitialTimeline.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaSource.InitialTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">A forwarding timeline to provide an initial timeline for fake multi window sources.</div>
</th>
</tr>
<tr id="i517" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMediaSourceFactory.html" title="class in com.google.android.exoplayer2.testutil">FakeMediaSourceFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceFactory</code></a> that creates a <a href="com/google/android/exoplayer2/testutil/FakeMediaSource.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeMediaSource</code></a>.</div>
</th>
</tr>
<tr id="i518" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeMetadataEntry.html" title="class in com.google.android.exoplayer2.testutil">FakeMetadataEntry</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/metadata/Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata"><code>Metadata.Entry</code></a>.</div>
</th>
</tr>
<tr id="i519" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeRenderer.html" title="class in com.google.android.exoplayer2.testutil">FakeRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> that supports any format with the matching track type.</div>
</th>
</tr>
<tr id="i520" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeSampleStream.html" title="class in com.google.android.exoplayer2.testutil">FakeSampleStream</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a> that outputs a given <a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a> and any amount of <a href="com/google/android/exoplayer2/testutil/FakeSampleStream.FakeSampleStreamItem.html" title="class in com.google.android.exoplayer2.testutil"><code>items</code></a>.</div>
</th>
</tr>
<tr id="i521" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeSampleStream.FakeSampleStreamItem.html" title="class in com.google.android.exoplayer2.testutil">FakeSampleStream.FakeSampleStreamItem</a></td>
<th class="colLast" scope="row">
<div class="block">Item to customize a return value of <a href="com/google/android/exoplayer2/source/SampleStream.html#readData(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,@com.google.android.exoplayer2.source.SampleStream.ReadFlagsint)"><code>SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)</code></a>.</div>
</th>
</tr>
<tr id="i522" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeShuffleOrder.html" title="class in com.google.android.exoplayer2.testutil">FakeShuffleOrder</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source"><code>ShuffleOrder</code></a> which returns a reverse order.</div>
</th>
</tr>
<tr id="i523" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeTimeline.html" title="class in com.google.android.exoplayer2.testutil">FakeTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">Fake <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> which can be setup to return custom <a href="com/google/android/exoplayer2/testutil/FakeTimeline.TimelineWindowDefinition.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeTimeline.TimelineWindowDefinition</code></a>s.</div>
</th>
</tr>
<tr id="i524" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeTimeline.TimelineWindowDefinition.html" title="class in com.google.android.exoplayer2.testutil">FakeTimeline.TimelineWindowDefinition</a></td>
<th class="colLast" scope="row">
<div class="block">Definition used to define a <a href="com/google/android/exoplayer2/testutil/FakeTimeline.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeTimeline</code></a>.</div>
</th>
</tr>
<tr id="i525" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeTrackOutput.html" title="class in com.google.android.exoplayer2.testutil">FakeTrackOutput</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/extractor/TrackOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>TrackOutput</code></a>.</div>
</th>
</tr>
<tr id="i526" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeTrackOutput.Factory.html" title="interface in com.google.android.exoplayer2.testutil">FakeTrackOutput.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/testutil/FakeTrackOutput.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeTrackOutput</code></a> instances.</div>
</th>
</tr>
<tr id="i527" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeTrackSelection.html" title="class in com.google.android.exoplayer2.testutil">FakeTrackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>ExoTrackSelection</code></a> that only returns 1 fixed track, and allows querying the number
of calls to its methods.</div>
</th>
</tr>
<tr id="i528" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeTrackSelector.html" title="class in com.google.android.exoplayer2.testutil">FakeTrackSelector</a></td>
<th class="colLast" scope="row">
<div class="block">A fake <a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>MappingTrackSelector</code></a> that returns <a href="com/google/android/exoplayer2/testutil/FakeTrackSelection.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeTrackSelection</code></a>s.</div>
</th>
</tr>
<tr id="i529" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/FakeVideoRenderer.html" title="class in com.google.android.exoplayer2.testutil">FakeVideoRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/testutil/FakeRenderer.html" title="class in com.google.android.exoplayer2.testutil"><code>FakeRenderer</code></a> that supports <a href="com/google/android/exoplayer2/C.html#TRACK_TYPE_VIDEO"><code>C.TRACK_TYPE_VIDEO</code></a>.</div>
</th>
</tr>
<tr id="i530" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ffmpeg/FfmpegAudioRenderer.html" title="class in com.google.android.exoplayer2.ext.ffmpeg">FfmpegAudioRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders audio using FFmpeg.</div>
</th>
</tr>
<tr id="i531" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ffmpeg/FfmpegDecoderException.html" title="class in com.google.android.exoplayer2.ext.ffmpeg">FfmpegDecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an FFmpeg decoder error occurs.</div>
</th>
</tr>
<tr id="i532" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary.html" title="class in com.google.android.exoplayer2.ext.ffmpeg">FfmpegLibrary</a></td>
<th class="colLast" scope="row">
<div class="block">Configures and queries the underlying native library.</div>
</th>
</tr>
<tr id="i533" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/FileDataSource.html" title="class in com.google.android.exoplayer2.upstream">FileDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> for reading local files.</div>
</th>
</tr>
<tr id="i534" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/FileDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream">FileDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/upstream/FileDataSource.html" title="class in com.google.android.exoplayer2.upstream"><code>FileDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i535" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/FileDataSource.FileDataSourceException.html" title="class in com.google.android.exoplayer2.upstream">FileDataSource.FileDataSourceException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a <a href="com/google/android/exoplayer2/upstream/FileDataSource.html" title="class in com.google.android.exoplayer2.upstream"><code>FileDataSource</code></a> encounters an error reading a file.</div>
</th>
</tr>
<tr id="i536" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/FileTypes.html" title="class in com.google.android.exoplayer2.util">FileTypes</a></td>
<th class="colLast" scope="row">
<div class="block">Defines common file type constants and helper methods.</div>
</th>
</tr>
<tr id="i537" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/FileTypes.Type.html" title="annotation in com.google.android.exoplayer2.util">FileTypes.Type</a></td>
<th class="colLast" scope="row">
<div class="block">File types.</div>
</th>
</tr>
<tr id="i538" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/FilterableManifest.html" title="interface in com.google.android.exoplayer2.offline">FilterableManifest</a>&lt;<a href="com/google/android/exoplayer2/offline/FilterableManifest.html" title="type parameter in FilterableManifest">T</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A manifest that can generate copies of itself including only the streams specified by the given
keys.</div>
</th>
</tr>
<tr id="i539" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/FilteringHlsPlaylistParserFactory.html" title="class in com.google.android.exoplayer2.source.hls.playlist">FilteringHlsPlaylistParserFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParserFactory.html" title="interface in com.google.android.exoplayer2.source.hls.playlist"><code>HlsPlaylistParserFactory</code></a> that includes only the streams identified by the given stream
keys.</div>
</th>
</tr>
<tr id="i540" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/FilteringManifestParser.html" title="class in com.google.android.exoplayer2.offline">FilteringManifestParser</a>&lt;<a href="com/google/android/exoplayer2/offline/FilteringManifestParser.html" title="type parameter in FilteringManifestParser">T</a> extends <a href="com/google/android/exoplayer2/offline/FilterableManifest.html" title="interface in com.google.android.exoplayer2.offline">FilterableManifest</a>&lt;<a href="com/google/android/exoplayer2/offline/FilteringManifestParser.html" title="type parameter in FilteringManifestParser">T</a>&gt;&gt;</td>
<th class="colLast" scope="row">
<div class="block">A manifest parser that includes only the streams identified by the given stream keys.</div>
</th>
</tr>
<tr id="i541" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/FixedTrackSelection.html" title="class in com.google.android.exoplayer2.trackselection">FixedTrackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/trackselection/TrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>TrackSelection</code></a> consisting of a single track.</div>
</th>
</tr>
<tr id="i542" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/flac/FlacConstants.html" title="class in com.google.android.exoplayer2.extractor.flac">FlacConstants</a></td>
<th class="colLast" scope="row">
<div class="block">Defines constants used by the FLAC extractor.</div>
</th>
</tr>
<tr id="i543" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/flac/FlacDecoder.html" title="class in com.google.android.exoplayer2.ext.flac">FlacDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Flac decoder.</div>
</th>
</tr>
<tr id="i544" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/flac/FlacDecoderException.html" title="class in com.google.android.exoplayer2.ext.flac">FlacDecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an Flac decoder error occurs.</div>
</th>
</tr>
<tr id="i545" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/flac/FlacExtractor.html" title="class in com.google.android.exoplayer2.ext.flac">FlacExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Facilitates the extraction of data from the FLAC container format.</div>
</th>
</tr>
<tr id="i546" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/flac/FlacExtractor.html" title="class in com.google.android.exoplayer2.extractor.flac">FlacExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from FLAC container format.</div>
</th>
</tr>
<tr id="i547" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/flac/FlacExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.ext.flac">FlacExtractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i548" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/flac/FlacExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.flac">FlacExtractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i549" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/FlacFrameReader.html" title="class in com.google.android.exoplayer2.extractor">FlacFrameReader</a></td>
<th class="colLast" scope="row">
<div class="block">Reads and peeks FLAC frame elements according to the <a href="https://xiph.org/flac/format.html">FLAC format specification</a>.</div>
</th>
</tr>
<tr id="i550" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/FlacFrameReader.SampleNumberHolder.html" title="class in com.google.android.exoplayer2.extractor">FlacFrameReader.SampleNumberHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holds a sample number.</div>
</th>
</tr>
<tr id="i551" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/flac/FlacLibrary.html" title="class in com.google.android.exoplayer2.ext.flac">FlacLibrary</a></td>
<th class="colLast" scope="row">
<div class="block">Configures and queries the underlying native library.</div>
</th>
</tr>
<tr id="i552" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/FlacMetadataReader.html" title="class in com.google.android.exoplayer2.extractor">FlacMetadataReader</a></td>
<th class="colLast" scope="row">
<div class="block">Reads and peeks FLAC stream metadata elements according to the <a href="https://xiph.org/flac/format.html">FLAC format specification</a>.</div>
</th>
</tr>
<tr id="i553" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/FlacMetadataReader.FlacStreamMetadataHolder.html" title="class in com.google.android.exoplayer2.extractor">FlacMetadataReader.FlacStreamMetadataHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holds a <a href="com/google/android/exoplayer2/extractor/FlacStreamMetadata.html" title="class in com.google.android.exoplayer2.extractor"><code>FlacStreamMetadata</code></a>.</div>
</th>
</tr>
<tr id="i554" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/FlacSeekTableSeekMap.html" title="class in com.google.android.exoplayer2.extractor">FlacSeekTableSeekMap</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/extractor/SeekMap.html" title="interface in com.google.android.exoplayer2.extractor"><code>SeekMap</code></a> implementation for FLAC streams that contain a <a href="https://xiph.org/flac/format.html#metadata_block_seektable">seek table</a>.</div>
</th>
</tr>
<tr id="i555" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/FlacStreamMetadata.html" title="class in com.google.android.exoplayer2.extractor">FlacStreamMetadata</a></td>
<th class="colLast" scope="row">
<div class="block">Holder for FLAC metadata.</div>
</th>
</tr>
<tr id="i556" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/FlacStreamMetadata.SeekTable.html" title="class in com.google.android.exoplayer2.extractor">FlacStreamMetadata.SeekTable</a></td>
<th class="colLast" scope="row">
<div class="block">A FLAC seek table.</div>
</th>
</tr>
<tr id="i557" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/FlagSet.html" title="class in com.google.android.exoplayer2.util">FlagSet</a></td>
<th class="colLast" scope="row">
<div class="block">A set of integer flags.</div>
</th>
</tr>
<tr id="i558" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/FlagSet.Builder.html" title="class in com.google.android.exoplayer2.util">FlagSet.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/util/FlagSet.html" title="class in com.google.android.exoplayer2.util"><code>FlagSet</code></a> instances.</div>
</th>
</tr>
<tr id="i559" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/flv/FlvExtractor.html" title="class in com.google.android.exoplayer2.extractor.flv">FlvExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the FLV container format.</div>
</th>
</tr>
<tr id="i560" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2">Format</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a media format.</div>
</th>
</tr>
<tr id="i561" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Format.Builder.html" title="class in com.google.android.exoplayer2">Format.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builds <a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a> instances.</div>
</th>
</tr>
<tr id="i562" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/FormatHolder.html" title="class in com.google.android.exoplayer2">FormatHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holds a <a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a>.</div>
</th>
</tr>
<tr id="i563" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/ForwardingAudioSink.html" title="class in com.google.android.exoplayer2.audio">ForwardingAudioSink</a></td>
<th class="colLast" scope="row">
<div class="block">An overridable <a href="com/google/android/exoplayer2/audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioSink</code></a> implementation forwarding all methods to another sink.</div>
</th>
</tr>
<tr id="i564" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ForwardingExtractorInput.html" title="class in com.google.android.exoplayer2.extractor">ForwardingExtractorInput</a></td>
<th class="colLast" scope="row">
<div class="block">An overridable <a href="com/google/android/exoplayer2/extractor/ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> implementation forwarding all methods to another input.</div>
</th>
</tr>
<tr id="i565" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ForwardingPlayer.html" title="class in com.google.android.exoplayer2">ForwardingPlayer</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> that forwards operations to another <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>.</div>
</th>
</tr>
<tr id="i566" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ForwardingTimeline.html" title="class in com.google.android.exoplayer2.source">ForwardingTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">An overridable <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> implementation forwarding all methods to another timeline.</div>
</th>
</tr>
<tr id="i567" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.html" title="class in com.google.android.exoplayer2.extractor.mp4">FragmentedMp4Extractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the FMP4 container format.</div>
</th>
</tr>
<tr id="i568" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mp4">FragmentedMp4Extractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i569" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/FrameProcessingException.html" title="class in com.google.android.exoplayer2.transformer">FrameProcessingException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an exception occurs while applying effects to video frames.</div>
</th>
</tr>
<tr id="i570" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/FrameworkCryptoConfig.html" title="class in com.google.android.exoplayer2.drm">FrameworkCryptoConfig</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/decoder/CryptoConfig.html" title="interface in com.google.android.exoplayer2.decoder"><code>CryptoConfig</code></a> for <a href="com/google/android/exoplayer2/C.html#CRYPTO_TYPE_FRAMEWORK"><code>C.CRYPTO_TYPE_FRAMEWORK</code></a>.</div>
</th>
</tr>
<tr id="i571" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/FrameworkMediaDrm.html" title="class in com.google.android.exoplayer2.drm">FrameworkMediaDrm</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm</code></a> implementation that wraps the framework <a href="https://developer.android.com/reference/android/media/MediaDrm.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaDrm</code></a>.</div>
</th>
</tr>
<tr id="i572" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/GaplessInfoHolder.html" title="class in com.google.android.exoplayer2.extractor">GaplessInfoHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holder for gapless playback information.</div>
</th>
</tr>
<tr id="i573" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/av1/Gav1Decoder.html" title="class in com.google.android.exoplayer2.ext.av1">Gav1Decoder</a></td>
<th class="colLast" scope="row">
<div class="block">Gav1 decoder.</div>
</th>
</tr>
<tr id="i574" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/av1/Gav1DecoderException.html" title="class in com.google.android.exoplayer2.ext.av1">Gav1DecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a libgav1 decoder error occurs.</div>
</th>
</tr>
<tr id="i575" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/av1/Gav1Library.html" title="class in com.google.android.exoplayer2.ext.av1">Gav1Library</a></td>
<th class="colLast" scope="row">
<div class="block">Configures and queries the underlying native library.</div>
</th>
</tr>
<tr id="i576" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/GeobFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">GeobFrame</a></td>
<th class="colLast" scope="row">
<div class="block">GEOB (General Encapsulated Object) ID3 frame.</div>
</th>
</tr>
<tr id="i577" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/GlEffect.html" title="interface in com.google.android.exoplayer2.transformer">GlEffect</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for a video frame effect with a <a href="com/google/android/exoplayer2/transformer/SingleFrameGlTextureProcessor.html" title="interface in com.google.android.exoplayer2.transformer"><code>SingleFrameGlTextureProcessor</code></a> implementation.</div>
</th>
</tr>
<tr id="i578" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/GlMatrixTransformation.html" title="interface in com.google.android.exoplayer2.transformer">GlMatrixTransformation</a></td>
<th class="colLast" scope="row">
<div class="block">Specifies a 4x4 transformation <a href="https://developer.android.com/reference/android/opengl/Matrix.html" title="class or interface in android.opengl" class="externalLink" target="_top"><code>Matrix</code></a> to apply in the vertex shader for each frame.</div>
</th>
</tr>
<tr id="i579" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/GlProgram.html" title="class in com.google.android.exoplayer2.util">GlProgram</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a GLSL shader program.</div>
</th>
</tr>
<tr id="i580" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/GlUtil.html" title="class in com.google.android.exoplayer2.util">GlUtil</a></td>
<th class="colLast" scope="row">
<div class="block">OpenGL ES utilities.</div>
</th>
</tr>
<tr id="i581" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/GlUtil.GlException.html" title="class in com.google.android.exoplayer2.util">GlUtil.GlException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an OpenGL error occurs and <a href="com/google/android/exoplayer2/util/GlUtil.html#glAssertionsEnabled"><code>GlUtil.glAssertionsEnabled</code></a> is <code>true</code>.</div>
</th>
</tr>
<tr id="i582" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/H262Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H262Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous H262 byte stream and extracts individual frames.</div>
</th>
</tr>
<tr id="i583" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/H263Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H263Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses an ISO/IEC 14496-2 (MPEG-4 Part 2) or ITU-T Recommendation H.263 byte stream and extracts
individual frames.</div>
</th>
</tr>
<tr id="i584" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/H264Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H264Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous H264 byte stream and extracts individual frames.</div>
</th>
</tr>
<tr id="i585" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/H265Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">H265Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous H.265 byte stream and extracts individual frames.</div>
</th>
</tr>
<tr id="i586" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/HandlerWrapper.html" title="interface in com.google.android.exoplayer2.util">HandlerWrapper</a></td>
<th class="colLast" scope="row">
<div class="block">An interface to call through to a <a href="https://developer.android.com/reference/android/os/Handler.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Handler</code></a>.</div>
</th>
</tr>
<tr id="i587" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/HandlerWrapper.Message.html" title="interface in com.google.android.exoplayer2.util">HandlerWrapper.Message</a></td>
<th class="colLast" scope="row">
<div class="block">A message obtained from the handler.</div>
</th>
</tr>
<tr id="i588" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/HeartRating.html" title="class in com.google.android.exoplayer2">HeartRating</a></td>
<th class="colLast" scope="row">
<div class="block">A rating expressed as "heart" or "no heart".</div>
</th>
</tr>
<tr id="i589" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/HevcConfig.html" title="class in com.google.android.exoplayer2.video">HevcConfig</a></td>
<th class="colLast" scope="row">
<div class="block">HEVC configuration data.</div>
</th>
</tr>
<tr id="i590" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsDataSourceFactory.html" title="interface in com.google.android.exoplayer2.source.hls">HlsDataSourceFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Creates <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a>s for HLS playlists, encryption and media chunks.</div>
</th>
</tr>
<tr id="i591" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/offline/HlsDownloader.html" title="class in com.google.android.exoplayer2.source.hls.offline">HlsDownloader</a></td>
<th class="colLast" scope="row">
<div class="block">A downloader for HLS streams.</div>
</th>
</tr>
<tr id="i592" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsExtractorFactory.html" title="interface in com.google.android.exoplayer2.source.hls">HlsExtractorFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for HLS media chunk extractors.</div>
</th>
</tr>
<tr id="i593" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsManifest.html" title="class in com.google.android.exoplayer2.source.hls">HlsManifest</a></td>
<th class="colLast" scope="row">
<div class="block">Holds a multivariant playlist along with a snapshot of one of its media playlists.</div>
</th>
</tr>
<tr id="i594" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMasterPlaylist</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/source/hls/playlist/HlsMultivariantPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist"><code>HlsMultivariantPlaylist</code></a> instead.</div>
</th>
</tr>
<tr id="i595" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsMediaChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.hls">HlsMediaChunkExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts samples and track <a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2"><code>Formats</code></a> from <code>HlsMediaChunks</code>.</div>
</th>
</tr>
<tr id="i596" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsMediaPeriod.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaPeriod</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source"><code>MediaPeriod</code></a> that loads an HLS stream.</div>
</th>
</tr>
<tr id="i597" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist</a></td>
<th class="colLast" scope="row">
<div class="block">Represents an HLS media playlist.</div>
</th>
</tr>
<tr id="i598" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.Part.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist.Part</a></td>
<th class="colLast" scope="row">
<div class="block">A media part.</div>
</th>
</tr>
<tr id="i599" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.PlaylistType.html" title="annotation in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist.PlaylistType</a></td>
<th class="colLast" scope="row">
<div class="block">Type of the playlist, as defined by #EXT-X-PLAYLIST-TYPE.</div>
</th>
</tr>
<tr id="i600" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.RenditionReport.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist.RenditionReport</a></td>
<th class="colLast" scope="row">
<div class="block">A rendition report for an alternative rendition defined in another media playlist.</div>
</th>
</tr>
<tr id="i601" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.Segment.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist.Segment</a></td>
<th class="colLast" scope="row">
<div class="block">Media segment reference.</div>
</th>
</tr>
<tr id="i602" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.SegmentBase.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist.SegmentBase</a></td>
<th class="colLast" scope="row">
<div class="block">The base for a <a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.Segment.html" title="class in com.google.android.exoplayer2.source.hls.playlist"><code>HlsMediaPlaylist.Segment</code></a> or a <a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.Part.html" title="class in com.google.android.exoplayer2.source.hls.playlist"><code>HlsMediaPlaylist.Part</code></a> required for playback.</div>
</th>
</tr>
<tr id="i603" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.ServerControl.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMediaPlaylist.ServerControl</a></td>
<th class="colLast" scope="row">
<div class="block">Server control attributes.</div>
</th>
</tr>
<tr id="i604" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">An HLS <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</th>
</tr>
<tr id="i605" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source.hls">HlsMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.html" title="class in com.google.android.exoplayer2.source.hls"><code>HlsMediaSource</code></a>s.</div>
</th>
</tr>
<tr id="i606" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsMediaSource.MetadataType.html" title="annotation in com.google.android.exoplayer2.source.hls">HlsMediaSource.MetadataType</a></td>
<th class="colLast" scope="row">
<div class="block">The types of metadata that can be extracted from HLS streams.</div>
</th>
</tr>
<tr id="i607" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMultivariantPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMultivariantPlaylist</a></td>
<th class="colLast" scope="row">
<div class="block">Represents an HLS multivariant playlist.</div>
</th>
</tr>
<tr id="i608" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMultivariantPlaylist.Rendition.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMultivariantPlaylist.Rendition</a></td>
<th class="colLast" scope="row">
<div class="block">A rendition (i.e.</div>
</th>
</tr>
<tr id="i609" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsMultivariantPlaylist.Variant.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsMultivariantPlaylist.Variant</a></td>
<th class="colLast" scope="row">
<div class="block">A variant (i.e.</div>
</th>
</tr>
<tr id="i610" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylist</a></td>
<th class="colLast" scope="row">
<div class="block">Represents an HLS playlist.</div>
</th>
</tr>
<tr id="i611" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistParser</a></td>
<th class="colLast" scope="row">
<div class="block">HLS playlists parsing logic.</div>
</th>
</tr>
<tr id="i612" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.DeltaUpdateException.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistParser.DeltaUpdateException</a></td>
<th class="colLast" scope="row">
<div class="block">Exception thrown when merging a delta update fails.</div>
</th>
</tr>
<tr id="i613" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParserFactory.html" title="interface in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistParserFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylist.html" title="class in com.google.android.exoplayer2.source.hls.playlist"><code>HlsPlaylist</code></a> parsers.</div>
</th>
</tr>
<tr id="i614" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.html" title="interface in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistTracker</a></td>
<th class="colLast" scope="row">
<div class="block">Tracks playlists associated to an HLS stream and provides snapshots.</div>
</th>
</tr>
<tr id="i615" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.Factory.html" title="interface in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistTracker.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.html" title="interface in com.google.android.exoplayer2.source.hls.playlist"><code>HlsPlaylistTracker</code></a> instances.</div>
</th>
</tr>
<tr id="i616" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.PlaylistEventListener.html" title="interface in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistTracker.PlaylistEventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Called on playlist loading events.</div>
</th>
</tr>
<tr id="i617" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.PlaylistResetException.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistTracker.PlaylistResetException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when the media sequence of a new snapshot indicates the server has reset.</div>
</th>
</tr>
<tr id="i618" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.PlaylistStuckException.html" title="class in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistTracker.PlaylistStuckException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a playlist is considered to be stuck due to a server side error.</div>
</th>
</tr>
<tr id="i619" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.PrimaryPlaylistListener.html" title="interface in com.google.android.exoplayer2.source.hls.playlist">HlsPlaylistTracker.PrimaryPlaylistListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for primary playlist changes.</div>
</th>
</tr>
<tr id="i620" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsTrackMetadataEntry.html" title="class in com.google.android.exoplayer2.source.hls">HlsTrackMetadataEntry</a></td>
<th class="colLast" scope="row">
<div class="block">Holds metadata associated to an HLS media track.</div>
</th>
</tr>
<tr id="i621" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/HlsTrackMetadataEntry.VariantInfo.html" title="class in com.google.android.exoplayer2.source.hls">HlsTrackMetadataEntry.VariantInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Holds attributes defined in an EXT-X-STREAM-INF tag.</div>
</th>
</tr>
<tr id="i622" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/HorizontalTextInVerticalContextSpan.html" title="class in com.google.android.exoplayer2.text.span">HorizontalTextInVerticalContextSpan</a></td>
<th class="colLast" scope="row">
<div class="block">A styling span for horizontal text in a vertical context.</div>
</th>
</tr>
<tr id="i623" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/HostActivity.html" title="class in com.google.android.exoplayer2.testutil">HostActivity</a></td>
<th class="colLast" scope="row">
<div class="block">A host activity for performing playback tests.</div>
</th>
</tr>
<tr id="i624" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/HostActivity.HostedTest.html" title="interface in com.google.android.exoplayer2.testutil">HostActivity.HostedTest</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for tests that run inside of a <a href="com/google/android/exoplayer2/testutil/HostActivity.html" title="class in com.google.android.exoplayer2.testutil"><code>HostActivity</code></a>.</div>
</th>
</tr>
<tr id="i625" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream">HttpDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">An HTTP <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a>.</div>
</th>
</tr>
<tr id="i626" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.BaseFactory.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.BaseFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Base implementation of <a href="com/google/android/exoplayer2/upstream/HttpDataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>HttpDataSource.Factory</code></a> that sets default request properties.</div>
</th>
</tr>
<tr id="i627" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.CleartextNotPermittedException.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.CleartextNotPermittedException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when cleartext HTTP traffic is not permitted.</div>
</th>
</tr>
<tr id="i628" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream">HttpDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>HttpDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i629" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.HttpDataSourceException.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.HttpDataSourceException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error is encountered when trying to read from a <a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>HttpDataSource</code></a>.</div>
</th>
</tr>
<tr id="i630" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.HttpDataSourceException.Type.html" title="annotation in com.google.android.exoplayer2.upstream">HttpDataSource.HttpDataSourceException.Type</a></td>
<th class="colLast" scope="row">
<div class="block">The type of operation that produced the error.</div>
</th>
</tr>
<tr id="i631" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.InvalidContentTypeException.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.InvalidContentTypeException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when the content type is invalid.</div>
</th>
</tr>
<tr id="i632" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.InvalidResponseCodeException.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.InvalidResponseCodeException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an attempt to open a connection results in a response code not in the 2xx range.</div>
</th>
</tr>
<tr id="i633" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpDataSource.RequestProperties.html" title="class in com.google.android.exoplayer2.upstream">HttpDataSource.RequestProperties</a></td>
<th class="colLast" scope="row">
<div class="block">Stores HTTP request properties (aka HTTP headers) and provides methods to modify the headers in
a thread safe way to avoid the potential of creating snapshots of an inconsistent or unintended
state.</div>
</th>
</tr>
<tr id="i634" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/HttpDataSourceTestEnv.html" title="class in com.google.android.exoplayer2.testutil">HttpDataSourceTestEnv</a></td>
<th class="colLast" scope="row">
<div class="block">A JUnit <code>Rule</code> that creates test resources for <a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>HttpDataSource</code></a> contract tests.</div>
</th>
</tr>
<tr id="i635" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/HttpMediaDrmCallback.html" title="class in com.google.android.exoplayer2.drm">HttpMediaDrmCallback</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/drm/MediaDrmCallback.html" title="interface in com.google.android.exoplayer2.drm"><code>MediaDrmCallback</code></a> that makes requests using <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i636" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/HttpUtil.html" title="class in com.google.android.exoplayer2.upstream">HttpUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for HTTP.</div>
</th>
</tr>
<tr id="i637" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/icy/IcyDecoder.html" title="class in com.google.android.exoplayer2.metadata.icy">IcyDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes ICY stream information.</div>
</th>
</tr>
<tr id="i638" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/icy/IcyHeaders.html" title="class in com.google.android.exoplayer2.metadata.icy">IcyHeaders</a></td>
<th class="colLast" scope="row">
<div class="block">ICY headers.</div>
</th>
</tr>
<tr id="i639" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/icy/IcyInfo.html" title="class in com.google.android.exoplayer2.metadata.icy">IcyInfo</a></td>
<th class="colLast" scope="row">
<div class="block">ICY in-stream information.</div>
</th>
</tr>
<tr id="i640" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/Id3Decoder.html" title="class in com.google.android.exoplayer2.metadata.id3">Id3Decoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes ID3 tags.</div>
</th>
</tr>
<tr id="i641" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/Id3Decoder.FramePredicate.html" title="interface in com.google.android.exoplayer2.metadata.id3">Id3Decoder.FramePredicate</a></td>
<th class="colLast" scope="row">
<div class="block">A predicate for determining whether individual frames should be decoded.</div>
</th>
</tr>
<tr id="i642" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/Id3Frame.html" title="class in com.google.android.exoplayer2.metadata.id3">Id3Frame</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for ID3 frames.</div>
</th>
</tr>
<tr id="i643" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/Id3Peeker.html" title="class in com.google.android.exoplayer2.extractor">Id3Peeker</a></td>
<th class="colLast" scope="row">
<div class="block">Peeks data from the beginning of an <a href="com/google/android/exoplayer2/extractor/ExtractorInput.html" title="interface in com.google.android.exoplayer2.extractor"><code>ExtractorInput</code></a> to determine if there is any ID3 tag.</div>
</th>
</tr>
<tr id="i644" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/Id3Reader.html" title="class in com.google.android.exoplayer2.extractor.ts">Id3Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses ID3 data and extracts individual text information frames.</div>
</th>
</tr>
<tr id="i645" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/IllegalSeekPositionException.html" title="class in com.google.android.exoplayer2">IllegalSeekPositionException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an attempt is made to seek to a position that does not exist in the player's <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>.</div>
</th>
</tr>
<tr id="i646" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaAdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima">ImaAdsLoader</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/ads/AdsLoader.html" title="interface in com.google.android.exoplayer2.source.ads"><code>AdsLoader</code></a> using the IMA SDK.</div>
</th>
</tr>
<tr id="i647" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaAdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaAdsLoader.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/ext/ima/ImaAdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima"><code>ImaAdsLoader</code></a>.</div>
</th>
</tr>
<tr id="i648" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">MediaSource for IMA server side inserted ad streams.</div>
</th>
</tr>
<tr id="i649" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader</a></td>
<th class="colLast" scope="row">
<div class="block">An ads loader for IMA server side ad insertion streams.</div>
</th>
</tr>
<tr id="i650" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.Builder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for building an <a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima"><code>ImaServerSideAdInsertionMediaSource.AdsLoader</code></a>.</div>
</th>
</tr>
<tr id="i651" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.State.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.AdsLoader.State</a></td>
<th class="colLast" scope="row">
<div class="block">The state of the <a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.AdsLoader.html" title="class in com.google.android.exoplayer2.ext.ima"><code>ImaServerSideAdInsertionMediaSource.AdsLoader</code></a> that can be used when resuming from the background.</div>
</th>
</tr>
<tr id="i652" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.Factory.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for creating <a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima"><code>ImaServerSideAdInsertionMediaSources</code></a>.</div>
</th>
</tr>
<tr id="i653" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionUriBuilder.html" title="class in com.google.android.exoplayer2.ext.ima">ImaServerSideAdInsertionUriBuilder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for URI for IMA DAI streams.</div>
</th>
</tr>
<tr id="i654" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/IndexSeekMap.html" title="class in com.google.android.exoplayer2.extractor">IndexSeekMap</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/extractor/SeekMap.html" title="interface in com.google.android.exoplayer2.extractor"><code>SeekMap</code></a> implementation based on a mapping between times and positions in the input
stream.</div>
</th>
</tr>
<tr id="i655" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/InitializationChunk.html" title="class in com.google.android.exoplayer2.source.chunk">InitializationChunk</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/chunk/Chunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>Chunk</code></a> that uses an <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a> to decode initialization data for single track.</div>
</th>
</tr>
<tr id="i656" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/mediaparser/InputReaderAdapterV30.html" title="class in com.google.android.exoplayer2.source.mediaparser">InputReaderAdapterV30</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="https://developer.android.com/reference/android/media/MediaParser.SeekableInputReader.html" title="class or interface in android.media" class="externalLink"><code>MediaParser.SeekableInputReader</code></a> implementation wrapping a <a href="com/google/android/exoplayer2/upstream/DataReader.html" title="interface in com.google.android.exoplayer2.upstream" target="_top"><code>DataReader</code></a>.</div>
</th>
</tr>
<tr id="i657" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/InternalFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">InternalFrame</a></td>
<th class="colLast" scope="row">
<div class="block">Internal ID3 frame that is intended for use by the player.</div>
</th>
</tr>
<tr id="i658" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/jpeg/JpegExtractor.html" title="class in com.google.android.exoplayer2.extractor.jpeg">JpegExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts JPEG image using the Exif format.</div>
</th>
</tr>
<tr id="i659" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/KeysExpiredException.html" title="class in com.google.android.exoplayer2.drm">KeysExpiredException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when the drm keys loaded into an open session expire.</div>
</th>
</tr>
<tr id="i660" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/LanguageFeatureSpan.html" title="interface in com.google.android.exoplayer2.text.span">LanguageFeatureSpan</a></td>
<th class="colLast" scope="row">
<div class="block">Marker interface for span classes that carry language features rather than style information.</div>
</th>
</tr>
<tr id="i661" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/LatmReader.html" title="class in com.google.android.exoplayer2.extractor.ts">LatmReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses and extracts samples from an AAC/LATM elementary stream.</div>
</th>
</tr>
<tr id="i662" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.html" title="class in com.google.android.exoplayer2.ext.leanback">LeanbackPlayerAdapter</a></td>
<th class="colLast" scope="row">
<div class="block">Leanback <code>PlayerAdapter</code> implementation for <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>.</div>
</th>
</tr>
<tr id="i663" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/LeastRecentlyUsedCacheEvictor.html" title="class in com.google.android.exoplayer2.upstream.cache">LeastRecentlyUsedCacheEvictor</a></td>
<th class="colLast" scope="row">
<div class="block">Evicts least recently used cache files first.</div>
</th>
</tr>
<tr id="i664" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/flac/LibflacAudioRenderer.html" title="class in com.google.android.exoplayer2.ext.flac">LibflacAudioRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders audio using the native Flac decoder.</div>
</th>
</tr>
<tr id="i665" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/av1/Libgav1VideoRenderer.html" title="class in com.google.android.exoplayer2.ext.av1">Libgav1VideoRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders video using libgav1 decoder.</div>
</th>
</tr>
<tr id="i666" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/opus/LibopusAudioRenderer.html" title="class in com.google.android.exoplayer2.ext.opus">LibopusAudioRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders audio using the native Opus decoder.</div>
</th>
</tr>
<tr id="i667" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/LibraryLoader.html" title="class in com.google.android.exoplayer2.util">LibraryLoader</a></td>
<th class="colLast" scope="row">
<div class="block">Configurable loader for native libraries.</div>
</th>
</tr>
<tr id="i668" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.html" title="class in com.google.android.exoplayer2.ext.vp9">LibvpxVideoRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders video using the native VP9 decoder.</div>
</th>
</tr>
<tr id="i669" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ListenerSet.html" title="class in com.google.android.exoplayer2.util">ListenerSet</a>&lt;<a href="com/google/android/exoplayer2/util/ListenerSet.html" title="type parameter in ListenerSet">T</a> extends @NonNull <a href="https://developer.android.com/reference/java/lang/Object.html" title="class or interface in java.lang" class="externalLink" target="_top">Object</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A set of listeners.</div>
</th>
</tr>
<tr id="i670" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ListenerSet.Event.html" title="interface in com.google.android.exoplayer2.util">ListenerSet.Event</a>&lt;<a href="com/google/android/exoplayer2/util/ListenerSet.Event.html" title="type parameter in ListenerSet.Event">T</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">An event sent to a listener.</div>
</th>
</tr>
<tr id="i671" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ListenerSet.IterationFinishedEvent.html" title="interface in com.google.android.exoplayer2.util">ListenerSet.IterationFinishedEvent</a>&lt;<a href="com/google/android/exoplayer2/util/ListenerSet.IterationFinishedEvent.html" title="type parameter in ListenerSet.IterationFinishedEvent">T</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">An event sent to a listener when all other events sent during one <a href="https://developer.android.com/reference/android/os/Looper.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Looper</code></a> message queue
iteration were handled by the listener.</div>
</th>
</tr>
<tr id="i672" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/LivePlaybackSpeedControl.html" title="interface in com.google.android.exoplayer2">LivePlaybackSpeedControl</a></td>
<th class="colLast" scope="row">
<div class="block">Controls the playback speed while playing live content in order to maintain a steady target live
offset.</div>
</th>
</tr>
<tr id="i673" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/LoadControl.html" title="interface in com.google.android.exoplayer2">LoadControl</a></td>
<th class="colLast" scope="row">
<div class="block">Controls buffering of media.</div>
</th>
</tr>
<tr id="i674" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Loader.html" title="class in com.google.android.exoplayer2.upstream">Loader</a></td>
<th class="colLast" scope="row">
<div class="block">Manages the background loading of <a href="com/google/android/exoplayer2/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer2.upstream"><code>Loader.Loadable</code></a>s.</div>
</th>
</tr>
<tr id="i675" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Loader.Callback.html" title="interface in com.google.android.exoplayer2.upstream">Loader.Callback</a>&lt;<a href="com/google/android/exoplayer2/upstream/Loader.Callback.html" title="type parameter in Loader.Callback">T</a> extends <a href="com/google/android/exoplayer2/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer2.upstream">Loader.Loadable</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A callback to be notified of <a href="com/google/android/exoplayer2/upstream/Loader.html" title="class in com.google.android.exoplayer2.upstream"><code>Loader</code></a> events.</div>
</th>
</tr>
<tr id="i676" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer2.upstream">Loader.Loadable</a></td>
<th class="colLast" scope="row">
<div class="block">An object that can be loaded using a <a href="com/google/android/exoplayer2/upstream/Loader.html" title="class in com.google.android.exoplayer2.upstream"><code>Loader</code></a>.</div>
</th>
</tr>
<tr id="i677" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Loader.LoadErrorAction.html" title="class in com.google.android.exoplayer2.upstream">Loader.LoadErrorAction</a></td>
<th class="colLast" scope="row">
<div class="block">Action that can be taken in response to <a href="com/google/android/exoplayer2/upstream/Loader.Callback.html#onLoadError(T,long,long,java.io.IOException,int)"><code>Loader.Callback.onLoadError(Loadable, long, long,
IOException, int)</code></a>.</div>
</th>
</tr>
<tr id="i678" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Loader.ReleaseCallback.html" title="interface in com.google.android.exoplayer2.upstream">Loader.ReleaseCallback</a></td>
<th class="colLast" scope="row">
<div class="block">A callback to be notified when a <a href="com/google/android/exoplayer2/upstream/Loader.html" title="class in com.google.android.exoplayer2.upstream"><code>Loader</code></a> has finished being released.</div>
</th>
</tr>
<tr id="i679" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/Loader.UnexpectedLoaderException.html" title="class in com.google.android.exoplayer2.upstream">Loader.UnexpectedLoaderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an unexpected exception or error is encountered during loading.</div>
</th>
</tr>
<tr id="i680" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/LoaderErrorThrower.html" title="interface in com.google.android.exoplayer2.upstream">LoaderErrorThrower</a></td>
<th class="colLast" scope="row">
<div class="block">Conditionally throws errors affecting a <a href="com/google/android/exoplayer2/upstream/Loader.html" title="class in com.google.android.exoplayer2.upstream"><code>Loader</code></a>.</div>
</th>
</tr>
<tr id="i681" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/LoaderErrorThrower.Dummy.html" title="class in com.google.android.exoplayer2.upstream">LoaderErrorThrower.Dummy</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/LoaderErrorThrower.html" title="interface in com.google.android.exoplayer2.upstream"><code>LoaderErrorThrower</code></a> that never throws.</div>
</th>
</tr>
<tr id="i682" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.html" title="interface in com.google.android.exoplayer2.upstream">LoadErrorHandlingPolicy</a></td>
<th class="colLast" scope="row">
<div class="block">A policy that defines how load errors are handled.</div>
</th>
</tr>
<tr id="i683" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.FallbackOptions.html" title="class in com.google.android.exoplayer2.upstream">LoadErrorHandlingPolicy.FallbackOptions</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about the available fallback options.</div>
</th>
</tr>
<tr id="i684" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.FallbackSelection.html" title="class in com.google.android.exoplayer2.upstream">LoadErrorHandlingPolicy.FallbackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">A selected fallback option.</div>
</th>
</tr>
<tr id="i685" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.FallbackType.html" title="annotation in com.google.android.exoplayer2.upstream">LoadErrorHandlingPolicy.FallbackType</a></td>
<th class="colLast" scope="row">
<div class="block">Fallback type.</div>
</th>
</tr>
<tr id="i686" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.LoadErrorInfo.html" title="class in com.google.android.exoplayer2.upstream">LoadErrorHandlingPolicy.LoadErrorInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about a load task error.</div>
</th>
</tr>
<tr id="i687" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/LoadEventInfo.html" title="class in com.google.android.exoplayer2.source">LoadEventInfo</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> load event information.</div>
</th>
</tr>
<tr id="i688" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/LocalMediaDrmCallback.html" title="class in com.google.android.exoplayer2.drm">LocalMediaDrmCallback</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/drm/MediaDrmCallback.html" title="interface in com.google.android.exoplayer2.drm"><code>MediaDrmCallback</code></a> that provides a fixed response to key requests.</div>
</th>
</tr>
<tr id="i689" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/Log.html" title="class in com.google.android.exoplayer2.util">Log</a></td>
<th class="colLast" scope="row">
<div class="block">Wrapper around <a href="https://developer.android.com/reference/android/util/Log.html" title="class or interface in android.util" class="externalLink" target="_top"><code>Log</code></a> which allows to set the log level and to specify a custom
log output.</div>
</th>
</tr>
<tr id="i690" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/Log.Logger.html" title="interface in com.google.android.exoplayer2.util">Log.Logger</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for a logger that can output messages with a tag.</div>
</th>
</tr>
<tr id="i691" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/Log.LogLevel.html" title="annotation in com.google.android.exoplayer2.util">Log.LogLevel</a></td>
<th class="colLast" scope="row">
<div class="block">Log level for ExoPlayer logcat logging.</div>
</th>
</tr>
<tr id="i692" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/LongArray.html" title="class in com.google.android.exoplayer2.util">LongArray</a></td>
<th class="colLast" scope="row">
<div class="block">An append-only, auto-growing <code>long[]</code>.</div>
</th>
</tr>
<tr id="i693" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/LoopingMediaSource.html" title="class in com.google.android.exoplayer2.source">LoopingMediaSource</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">To loop a <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> indefinitely, use <a href="com/google/android/exoplayer2/Player.html#setRepeatMode(@com.google.android.exoplayer2.Player.RepeatModeint)"><code>Player.setRepeatMode(int)</code></a>
instead of this class.</div>
</th>
</tr>
<tr id="i694" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">MappingTrackSelector</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for <a href="com/google/android/exoplayer2/trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a>s that first establish a mapping between <a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroup</code></a>s
and <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a>s, and then from that mapping create a <a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>ExoTrackSelection</code></a> for each
renderer.</div>
</th>
</tr>
<tr id="i695" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.MappedTrackInfo.html" title="class in com.google.android.exoplayer2.trackselection">MappingTrackSelector.MappedTrackInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Provides mapped track information for each renderer.</div>
</th>
</tr>
<tr id="i696" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/MappingTrackSelector.MappedTrackInfo.RendererSupport.html" title="annotation in com.google.android.exoplayer2.trackselection">MappingTrackSelector.MappedTrackInfo.RendererSupport</a></td>
<th class="colLast" scope="row">
<div class="block">Levels of renderer support.</div>
</th>
</tr>
<tr id="i697" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MaskingMediaPeriod.html" title="class in com.google.android.exoplayer2.source">MaskingMediaPeriod</a></td>
<th class="colLast" scope="row">
<div class="block">Media period that defers calling <a href="com/google/android/exoplayer2/source/MediaSource.html#createPeriod(com.google.android.exoplayer2.source.MediaSource.MediaPeriodId,com.google.android.exoplayer2.upstream.Allocator,long)"><code>MediaSource.createPeriod(MediaPeriodId, Allocator, long)</code></a>
on a given source until <a href="com/google/android/exoplayer2/source/MaskingMediaPeriod.html#createPeriod(com.google.android.exoplayer2.source.MediaSource.MediaPeriodId)"><code>MaskingMediaPeriod.createPeriod(MediaPeriodId)</code></a> has been called.</div>
</th>
</tr>
<tr id="i698" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MaskingMediaPeriod.PrepareListener.html" title="interface in com.google.android.exoplayer2.source">MaskingMediaPeriod.PrepareListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for preparation events.</div>
</th>
</tr>
<tr id="i699" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MaskingMediaSource.html" title="class in com.google.android.exoplayer2.source">MaskingMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> that masks the <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> with a placeholder until the actual media
structure is known.</div>
</th>
</tr>
<tr id="i700" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MaskingMediaSource.PlaceholderTimeline.html" title="class in com.google.android.exoplayer2.source">MaskingMediaSource.PlaceholderTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">A timeline with one dynamic window with a period of indeterminate duration.</div>
</th>
</tr>
<tr id="i701" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/MatrixTransformation.html" title="interface in com.google.android.exoplayer2.transformer">MatrixTransformation</a></td>
<th class="colLast" scope="row">
<div class="block">Specifies a 3x3 transformation <a href="https://developer.android.com/reference/android/graphics/Matrix.html" title="class or interface in android.graphics" class="externalLink" target="_top"><code>Matrix</code></a> to apply in the vertex shader for each frame.</div>
</th>
</tr>
<tr id="i702" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.html" title="class in com.google.android.exoplayer2.extractor.mkv">MatroskaExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the Matroska and WebM container formats.</div>
</th>
</tr>
<tr id="i703" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mkv">MatroskaExtractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i704" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.Track.html" title="class in com.google.android.exoplayer2.extractor.mkv">MatroskaExtractor.Track</a></td>
<th class="colLast" scope="row">
<div class="block">Holds data corresponding to a single track.</div>
</th>
</tr>
<tr id="i705" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/mp4/MdtaMetadataEntry.html" title="class in com.google.android.exoplayer2.metadata.mp4">MdtaMetadataEntry</a></td>
<th class="colLast" scope="row">
<div class="block">Stores extensible metadata with handler type 'mdta'.</div>
</th>
</tr>
<tr id="i706" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/MediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk">MediaChunk</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract base class for <a href="com/google/android/exoplayer2/source/chunk/Chunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>Chunk</code></a>s that contain media samples.</div>
</th>
</tr>
<tr id="i707" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/MediaChunkIterator.html" title="interface in com.google.android.exoplayer2.source.chunk">MediaChunkIterator</a></td>
<th class="colLast" scope="row">
<div class="block">Iterator for media chunk sequences.</div>
</th>
</tr>
<tr id="i708" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/MediaClock.html" title="interface in com.google.android.exoplayer2.util">MediaClock</a></td>
<th class="colLast" scope="row">
<div class="block">Tracks the progression of media time.</div>
</th>
</tr>
<tr id="i709" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecAdapter</a></td>
<th class="colLast" scope="row">
<div class="block">Abstracts <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> operations.</div>
</th>
</tr>
<tr id="i710" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.Configuration.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecAdapter.Configuration</a></td>
<th class="colLast" scope="row">
<div class="block">Configuration parameters for a <a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html" title="interface in com.google.android.exoplayer2.mediacodec"><code>MediaCodecAdapter</code></a>.</div>
</th>
</tr>
<tr id="i711" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.Factory.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecAdapter.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html" title="interface in com.google.android.exoplayer2.mediacodec"><code>MediaCodecAdapter</code></a> instances.</div>
</th>
</tr>
<tr id="i712" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.OnFrameRenderedListener.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecAdapter.OnFrameRenderedListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener to be called when an output frame has rendered on the output surface.</div>
</th>
</tr>
<tr id="i713" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.html" title="class in com.google.android.exoplayer2.audio">MediaCodecAudioRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders audio using <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink"><code>MediaCodec</code></a> and an <a href="com/google/android/exoplayer2/audio/AudioSink.html" title="interface in com.google.android.exoplayer2.audio" target="_top"><code>AudioSink</code></a>.</div>
</th>
</tr>
<tr id="i714" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecDecoderException.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecDecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a failure occurs in a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> decoder.</div>
</th>
</tr>
<tr id="i715" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecInfo.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Information about a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> for a given mime type.</div>
</th>
</tr>
<tr id="i716" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract renderer that uses <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> to decode samples for rendering.</div>
</th>
</tr>
<tr id="i717" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.DecoderInitializationException.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecRenderer.DecoderInitializationException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a failure occurs instantiating a decoder.</div>
</th>
</tr>
<tr id="i718" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecSelector.html" title="interface in com.google.android.exoplayer2.mediacodec">MediaCodecSelector</a></td>
<th class="colLast" scope="row">
<div class="block">Selector of <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> instances.</div>
</th>
</tr>
<tr id="i719" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecUtil.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecUtil</a></td>
<th class="colLast" scope="row">
<div class="block">A utility class for querying the available codecs.</div>
</th>
</tr>
<tr id="i720" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/MediaCodecUtil.DecoderQueryException.html" title="class in com.google.android.exoplayer2.mediacodec">MediaCodecUtil.DecoderQueryException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error occurs querying the device for its underlying media capabilities.</div>
</th>
</tr>
<tr id="i721" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/MediaCodecVideoDecoderException.html" title="class in com.google.android.exoplayer2.video">MediaCodecVideoDecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a failure occurs in a <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> video decoder.</div>
</th>
</tr>
<tr id="i722" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/MediaCodecVideoRenderer.html" title="class in com.google.android.exoplayer2.video">MediaCodecVideoRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes and renders video using <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a>.</div>
</th>
</tr>
<tr id="i723" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/MediaCodecVideoRenderer.CodecMaxValues.html" title="class in com.google.android.exoplayer2.video">MediaCodecVideoRenderer.CodecMaxValues</a></td>
<th class="colLast" scope="row">&nbsp;</th>
</tr>
<tr id="i724" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/MediaDrmCallback.html" title="interface in com.google.android.exoplayer2.drm">MediaDrmCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Performs <a href="com/google/android/exoplayer2/drm/ExoMediaDrm.html" title="interface in com.google.android.exoplayer2.drm"><code>ExoMediaDrm</code></a> key and provisioning requests.</div>
</th>
</tr>
<tr id="i725" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/MediaDrmCallbackException.html" title="class in com.google.android.exoplayer2.drm">MediaDrmCallbackException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error occurs while executing a DRM <a href="com/google/android/exoplayer2/drm/MediaDrmCallback.html#executeKeyRequest(java.util.UUID,com.google.android.exoplayer2.drm.ExoMediaDrm.KeyRequest)"><code>key</code></a>
or <a href="com/google/android/exoplayer2/drm/MediaDrmCallback.html#executeProvisionRequest(java.util.UUID,com.google.android.exoplayer2.drm.ExoMediaDrm.ProvisionRequest)"><code>provisioning</code></a> request.</div>
</th>
</tr>
<tr id="i726" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/MediaFormatUtil.html" title="class in com.google.android.exoplayer2.util">MediaFormatUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Helper class containing utility methods for managing <a href="https://developer.android.com/reference/android/media/MediaFormat.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaFormat</code></a> instances.</div>
</th>
</tr>
<tr id="i727" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2">MediaItem</a></td>
<th class="colLast" scope="row">
<div class="block">Representation of a media item.</div>
</th>
</tr>
<tr id="i728" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.AdsConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.AdsConfiguration</a></td>
<th class="colLast" scope="row">
<div class="block">Configuration for playing back linear ads with a media item.</div>
</th>
</tr>
<tr id="i729" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.AdsConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.AdsConfiguration.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/MediaItem.AdsConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.AdsConfiguration</code></a> instances.</div>
</th>
</tr>
<tr id="i730" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> instances.</div>
</th>
</tr>
<tr id="i731" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.ClippingConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration</a></td>
<th class="colLast" scope="row">
<div class="block">Optionally clips the media item to a custom start and end position.</div>
</th>
</tr>
<tr id="i732" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.ClippingConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingConfiguration.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/MediaItem.ClippingConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.ClippingConfiguration</code></a> instances.</div>
</th>
</tr>
<tr id="i733" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.ClippingProperties.html" title="class in com.google.android.exoplayer2">MediaItem.ClippingProperties</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/MediaItem.ClippingConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.ClippingConfiguration</code></a> instead.</div>
</th>
</tr>
<tr id="i734" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.DrmConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration</a></td>
<th class="colLast" scope="row">
<div class="block">DRM configuration for a media item.</div>
</th>
</tr>
<tr id="i735" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.DrmConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.DrmConfiguration.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/MediaItem.DrmConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.DrmConfiguration</code></a>.</div>
</th>
</tr>
<tr id="i736" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration</a></td>
<th class="colLast" scope="row">
<div class="block">Live playback configuration.</div>
</th>
</tr>
<tr id="i737" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.LiveConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.LiveConfiguration.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/MediaItem.LiveConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.LiveConfiguration</code></a> instances.</div>
</th>
</tr>
<tr id="i738" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.LocalConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.LocalConfiguration</a></td>
<th class="colLast" scope="row">
<div class="block">Properties for local playback.</div>
</th>
</tr>
<tr id="i739" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.PlaybackProperties.html" title="class in com.google.android.exoplayer2">MediaItem.PlaybackProperties</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/MediaItem.LocalConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.LocalConfiguration</code></a>.</div>
</th>
</tr>
<tr id="i740" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.RequestMetadata.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata</a></td>
<th class="colLast" scope="row">
<div class="block">Metadata that helps the player to understand a playback request represented by a <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</th>
</tr>
<tr id="i741" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.RequestMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.RequestMetadata.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/MediaItem.RequestMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaItem.RequestMetadata</code></a> instances.</div>
</th>
</tr>
<tr id="i742" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.Subtitle.html" title="class in com.google.android.exoplayer2">MediaItem.Subtitle</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.SubtitleConfiguration</code></a> instead</div>
</th>
</tr>
<tr id="i743" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration</a></td>
<th class="colLast" scope="row">
<div class="block">Properties for a text track.</div>
</th>
</tr>
<tr id="i744" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaItem.SubtitleConfiguration.Builder.html" title="class in com.google.android.exoplayer2">MediaItem.SubtitleConfiguration.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.SubtitleConfiguration</code></a> instances.</div>
</th>
</tr>
<tr id="i745" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cast/MediaItemConverter.html" title="interface in com.google.android.exoplayer2.ext.cast">MediaItemConverter</a></td>
<th class="colLast" scope="row">
<div class="block">Converts between <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a> and the Cast SDK's <code>MediaQueueItem</code>.</div>
</th>
</tr>
<tr id="i746" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/MediaItemConverter.html" title="interface in com.google.android.exoplayer2.ext.media2">MediaItemConverter</a></td>
<th class="colLast" scope="row">
<div class="block">Converts between <code>Media2 MediaItem</code> and <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>ExoPlayer MediaItem</code></a>.</div>
</th>
</tr>
<tr id="i747" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaLoadData.html" title="class in com.google.android.exoplayer2.source">MediaLoadData</a></td>
<th class="colLast" scope="row">
<div class="block">Descriptor for data being loaded or selected by a <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</th>
</tr>
<tr id="i748" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaMetadata.html" title="class in com.google.android.exoplayer2">MediaMetadata</a></td>
<th class="colLast" scope="row">
<div class="block">Metadata of a <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>, playlist, or a combination of multiple sources of <a href="com/google/android/exoplayer2/metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata"><code>Metadata</code></a>.</div>
</th>
</tr>
<tr id="i749" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaMetadata.Builder.html" title="class in com.google.android.exoplayer2">MediaMetadata.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/MediaMetadata.html" title="class in com.google.android.exoplayer2"><code>MediaMetadata</code></a> instances.</div>
</th>
</tr>
<tr id="i750" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaMetadata.FolderType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.FolderType</a></td>
<th class="colLast" scope="row">
<div class="block">The folder type of the media item.</div>
</th>
</tr>
<tr id="i751" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MediaMetadata.PictureType.html" title="annotation in com.google.android.exoplayer2">MediaMetadata.PictureType</a></td>
<th class="colLast" scope="row">
<div class="block">The picture type of the artwork.</div>
</th>
</tr>
<tr id="i752" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/MediaMetricsListener.html" title="class in com.google.android.exoplayer2.analytics">MediaMetricsListener</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a> that interacts with the Android <a href="https://developer.android.com/reference/android/media/metrics/MediaMetricsManager.html" title="class or interface in android.media.metrics" class="externalLink" target="_top"><code>MediaMetricsManager</code></a>.</div>
</th>
</tr>
<tr id="i753" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/MediaParserChunkExtractor.html" title="class in com.google.android.exoplayer2.source.chunk">MediaParserChunkExtractor</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/chunk/ChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkExtractor</code></a> implemented on top of the platform's <a href="https://developer.android.com/reference/android/media/MediaParser.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaParser</code></a>.</div>
</th>
</tr>
<tr id="i754" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaParserExtractorAdapter.html" title="class in com.google.android.exoplayer2.source">MediaParserExtractorAdapter</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/ProgressiveMediaExtractor.html" title="interface in com.google.android.exoplayer2.source"><code>ProgressiveMediaExtractor</code></a> implemented on top of the platform's <a href="https://developer.android.com/reference/android/media/MediaParser.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaParser</code></a>.</div>
</th>
</tr>
<tr id="i755" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/MediaParserHlsMediaChunkExtractor.html" title="class in com.google.android.exoplayer2.source.hls">MediaParserHlsMediaChunkExtractor</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/source/hls/HlsMediaChunkExtractor.html" title="interface in com.google.android.exoplayer2.source.hls"><code>HlsMediaChunkExtractor</code></a> implemented on top of the platform's <a href="https://developer.android.com/reference/android/media/MediaParser.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaParser</code></a>.</div>
</th>
</tr>
<tr id="i756" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/mediaparser/MediaParserUtil.html" title="class in com.google.android.exoplayer2.source.mediaparser">MediaParserUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Miscellaneous constants and utility methods related to the <a href="https://developer.android.com/reference/android/media/MediaParser.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaParser</code></a> integration.</div>
</th>
</tr>
<tr id="i757" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source">MediaPeriod</a></td>
<th class="colLast" scope="row">
<div class="block">Loads media corresponding to a <a href="com/google/android/exoplayer2/Timeline.Period.html" title="class in com.google.android.exoplayer2"><code>Timeline.Period</code></a>, and allows that media to be read.</div>
</th>
</tr>
<tr id="i758" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaPeriod.Callback.html" title="interface in com.google.android.exoplayer2.source">MediaPeriod.Callback</a></td>
<th class="colLast" scope="row">
<div class="block">A callback to be notified of <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source"><code>MediaPeriod</code></a> events.</div>
</th>
</tr>
<tr id="i759" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/MediaPeriodAsserts.html" title="class in com.google.android.exoplayer2.testutil">MediaPeriodAsserts</a></td>
<th class="colLast" scope="row">
<div class="block">Assertion methods for <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source"><code>MediaPeriod</code></a>.</div>
</th>
</tr>
<tr id="i760" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/MediaPeriodAsserts.FilterableManifestMediaPeriodFactory.html" title="interface in com.google.android.exoplayer2.testutil">MediaPeriodAsserts.FilterableManifestMediaPeriodFactory</a>&lt;<a href="com/google/android/exoplayer2/testutil/MediaPeriodAsserts.FilterableManifestMediaPeriodFactory.html" title="type parameter in MediaPeriodAsserts.FilterableManifestMediaPeriodFactory">T</a> extends <a href="com/google/android/exoplayer2/offline/FilterableManifest.html" title="interface in com.google.android.exoplayer2.offline">FilterableManifest</a>&lt;<a href="com/google/android/exoplayer2/testutil/MediaPeriodAsserts.FilterableManifestMediaPeriodFactory.html" title="type parameter in MediaPeriodAsserts.FilterableManifestMediaPeriodFactory">T</a>&gt;&gt;</td>
<th class="colLast" scope="row">
<div class="block">Interface to create media periods for testing based on a <a href="com/google/android/exoplayer2/offline/FilterableManifest.html" title="interface in com.google.android.exoplayer2.offline"><code>FilterableManifest</code></a>.</div>
</th>
</tr>
<tr id="i761" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaPeriodId.html" title="class in com.google.android.exoplayer2.source">MediaPeriodId</a></td>
<th class="colLast" scope="row">
<div class="block">Identifies a specific playback of a <a href="com/google/android/exoplayer2/Timeline.Period.html" title="class in com.google.android.exoplayer2"><code>Timeline.Period</code></a>.</div>
</th>
</tr>
<tr id="i762" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.html" title="class in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector</a></td>
<th class="colLast" scope="row">
<div class="block">Connects a <code>MediaSessionCompat</code> to a <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>.</div>
</th>
</tr>
<tr id="i763" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.CaptionCallback.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.CaptionCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Handles requests for enabling or disabling captions.</div>
</th>
</tr>
<tr id="i764" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.CommandReceiver.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.CommandReceiver</a></td>
<th class="colLast" scope="row">
<div class="block">Receiver of media commands sent by a media controller.</div>
</th>
</tr>
<tr id="i765" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.CustomActionProvider.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.CustomActionProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a <code>PlaybackStateCompat.CustomAction</code> to be published and handles the action when
sent by a media controller.</div>
</th>
</tr>
<tr id="i766" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.DefaultMediaMetadataProvider.html" title="class in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.DefaultMediaMetadataProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a default <code>MediaMetadataCompat</code> with properties and extras taken from the <code>MediaDescriptionCompat</code> of the <code>MediaSessionCompat.QueueItem</code> of the active queue item.</div>
</th>
</tr>
<tr id="i767" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.MediaButtonEventHandler.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.MediaButtonEventHandler</a></td>
<th class="colLast" scope="row">
<div class="block">Handles a media button event.</div>
</th>
</tr>
<tr id="i768" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.MediaMetadataProvider.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.MediaMetadataProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a <code>MediaMetadataCompat</code> for a given player state.</div>
</th>
</tr>
<tr id="i769" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.PlaybackActions.html" title="annotation in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.PlaybackActions</a></td>
<th class="colLast" scope="row">
<div class="block">Playback actions supported by the connector.</div>
</th>
</tr>
<tr id="i770" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.PlaybackPreparer.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.PlaybackPreparer</a></td>
<th class="colLast" scope="row">
<div class="block">Interface to which playback preparation and play actions are delegated.</div>
</th>
</tr>
<tr id="i771" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.QueueEditor.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.QueueEditor</a></td>
<th class="colLast" scope="row">
<div class="block">Handles media session queue edits.</div>
</th>
</tr>
<tr id="i772" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.QueueNavigator.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.QueueNavigator</a></td>
<th class="colLast" scope="row">
<div class="block">Handles queue navigation actions, and updates the media session queue by calling <code>
MediaSessionCompat.setQueue()</code>.</div>
</th>
</tr>
<tr id="i773" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.RatingCallback.html" title="interface in com.google.android.exoplayer2.ext.mediasession">MediaSessionConnector.RatingCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback receiving a user rating for the active media item.</div>
</th>
</tr>
<tr id="i774" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source">MediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Defines and provides media to be played by an <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>.</div>
</th>
</tr>
<tr id="i775" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source">MediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for creating <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSources</code></a> from <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</th>
</tr>
<tr id="i776" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaSource.MediaPeriodId.html" title="class in com.google.android.exoplayer2.source">MediaSource.MediaPeriodId</a></td>
<th class="colLast" scope="row">
<div class="block">Identifier for a <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source"><code>MediaPeriod</code></a>.</div>
</th>
</tr>
<tr id="i777" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaSource.MediaSourceCaller.html" title="interface in com.google.android.exoplayer2.source">MediaSource.MediaSourceCaller</a></td>
<th class="colLast" scope="row">
<div class="block">A caller of media sources, which will be notified of source events.</div>
</th>
</tr>
<tr id="i778" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaSourceEventListener.html" title="interface in com.google.android.exoplayer2.source">MediaSourceEventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for callbacks to be notified of <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> events.</div>
</th>
</tr>
<tr id="i779" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaSourceEventListener.EventDispatcher.html" title="class in com.google.android.exoplayer2.source">MediaSourceEventListener.EventDispatcher</a></td>
<th class="colLast" scope="row">
<div class="block">Dispatches events to <a href="com/google/android/exoplayer2/source/MediaSourceEventListener.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSourceEventListeners</code></a>.</div>
</th>
</tr>
<tr id="i780" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MediaSourceFactory.html" title="interface in com.google.android.exoplayer2.source">MediaSourceFactory</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/source/MediaSource.Factory.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource.Factory</code></a>.</div>
</th>
</tr>
<tr id="i781" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/MediaSourceTestRunner.html" title="class in com.google.android.exoplayer2.testutil">MediaSourceTestRunner</a></td>
<th class="colLast" scope="row">
<div class="block">A runner for <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> tests.</div>
</th>
</tr>
<tr id="i782" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MergingMediaSource.html" title="class in com.google.android.exoplayer2.source">MergingMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Merges multiple <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>s.</div>
</th>
</tr>
<tr id="i783" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MergingMediaSource.IllegalMergeException.html" title="class in com.google.android.exoplayer2.source">MergingMediaSource.IllegalMergeException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a <a href="com/google/android/exoplayer2/source/MergingMediaSource.html" title="class in com.google.android.exoplayer2.source"><code>MergingMediaSource</code></a> cannot merge its sources.</div>
</th>
</tr>
<tr id="i784" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/MergingMediaSource.IllegalMergeException.Reason.html" title="annotation in com.google.android.exoplayer2.source">MergingMediaSource.IllegalMergeException.Reason</a></td>
<th class="colLast" scope="row">
<div class="block">The reason the merge failed.</div>
</th>
</tr>
<tr id="i785" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/Metadata.html" title="class in com.google.android.exoplayer2.metadata">Metadata</a></td>
<th class="colLast" scope="row">
<div class="block">A collection of metadata entries.</div>
</th>
</tr>
<tr id="i786" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/Metadata.Entry.html" title="interface in com.google.android.exoplayer2.metadata">Metadata.Entry</a></td>
<th class="colLast" scope="row">
<div class="block">A metadata entry.</div>
</th>
</tr>
<tr id="i787" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/MetadataDecoder.html" title="interface in com.google.android.exoplayer2.metadata">MetadataDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes metadata from binary data.</div>
</th>
</tr>
<tr id="i788" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/MetadataDecoderFactory.html" title="interface in com.google.android.exoplayer2.metadata">MetadataDecoderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/metadata/MetadataDecoder.html" title="interface in com.google.android.exoplayer2.metadata"><code>MetadataDecoder</code></a> instances.</div>
</th>
</tr>
<tr id="i789" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/MetadataInputBuffer.html" title="class in com.google.android.exoplayer2.metadata">MetadataInputBuffer</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderInputBuffer</code></a> for a <a href="com/google/android/exoplayer2/metadata/MetadataDecoder.html" title="interface in com.google.android.exoplayer2.metadata"><code>MetadataDecoder</code></a>.</div>
</th>
</tr>
<tr id="i790" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/MetadataOutput.html" title="interface in com.google.android.exoplayer2.metadata">MetadataOutput</a></td>
<th class="colLast" scope="row">
<div class="block">Receives metadata output.</div>
</th>
</tr>
<tr id="i791" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/MetadataRenderer.html" title="class in com.google.android.exoplayer2.metadata">MetadataRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">A renderer for metadata.</div>
</th>
</tr>
<tr id="i792" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/MetadataRetriever.html" title="class in com.google.android.exoplayer2">MetadataRetriever</a></td>
<th class="colLast" scope="row">
<div class="block">Retrieves the static metadata of <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItems</code></a>.</div>
</th>
</tr>
<tr id="i793" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/MimeTypes.html" title="class in com.google.android.exoplayer2.util">MimeTypes</a></td>
<th class="colLast" scope="row">
<div class="block">Defines common MIME types and helper methods.</div>
</th>
</tr>
<tr id="i794" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/MlltFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">MlltFrame</a></td>
<th class="colLast" scope="row">
<div class="block">MPEG location lookup table frame.</div>
</th>
</tr>
<tr id="i795" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/mp4/MotionPhotoMetadata.html" title="class in com.google.android.exoplayer2.metadata.mp4">MotionPhotoMetadata</a></td>
<th class="colLast" scope="row">
<div class="block">Metadata of a motion photo file.</div>
</th>
</tr>
<tr id="i796" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp3/Mp3Extractor.html" title="class in com.google.android.exoplayer2.extractor.mp3">Mp3Extractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the MP3 container format.</div>
</th>
</tr>
<tr id="i797" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp3/Mp3Extractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mp3">Mp3Extractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i798" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.html" title="class in com.google.android.exoplayer2.extractor.mp4">Mp4Extractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the MP4 container format.</div>
</th>
</tr>
<tr id="i799" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.mp4">Mp4Extractor.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags controlling the behavior of the extractor.</div>
</th>
</tr>
<tr id="i800" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/Mp4WebvttDecoder.html" title="class in com.google.android.exoplayer2.text.webvtt">Mp4WebvttDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for Webvtt embedded in a Mp4 container file.</div>
</th>
</tr>
<tr id="i801" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/MpegAudioReader.html" title="class in com.google.android.exoplayer2.extractor.ts">MpegAudioReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses a continuous MPEG Audio byte stream and extracts individual frames.</div>
</th>
</tr>
<tr id="i802" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/MpegAudioUtil.html" title="class in com.google.android.exoplayer2.audio">MpegAudioUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for handling MPEG audio streams.</div>
</th>
</tr>
<tr id="i803" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/MpegAudioUtil.Header.html" title="class in com.google.android.exoplayer2.audio">MpegAudioUtil.Header</a></td>
<th class="colLast" scope="row">
<div class="block">Stores the metadata for an MPEG audio frame.</div>
</th>
</tr>
<tr id="i804" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NalUnitUtil.html" title="class in com.google.android.exoplayer2.util">NalUnitUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for handling H.264/AVC and H.265/HEVC NAL units.</div>
</th>
</tr>
<tr id="i805" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NalUnitUtil.H265SpsData.html" title="class in com.google.android.exoplayer2.util">NalUnitUtil.H265SpsData</a></td>
<th class="colLast" scope="row">
<div class="block">Holds data parsed from a H.265 sequence parameter set NAL unit.</div>
</th>
</tr>
<tr id="i806" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NalUnitUtil.PpsData.html" title="class in com.google.android.exoplayer2.util">NalUnitUtil.PpsData</a></td>
<th class="colLast" scope="row">
<div class="block">Holds data parsed from a picture parameter set NAL unit.</div>
</th>
</tr>
<tr id="i807" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NalUnitUtil.SpsData.html" title="class in com.google.android.exoplayer2.util">NalUnitUtil.SpsData</a></td>
<th class="colLast" scope="row">
<div class="block">Holds data parsed from a H.264 sequence parameter set NAL unit.</div>
</th>
</tr>
<tr id="i808" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NetworkTypeObserver.html" title="class in com.google.android.exoplayer2.util">NetworkTypeObserver</a></td>
<th class="colLast" scope="row">
<div class="block">Observer for network type changes.</div>
</th>
</tr>
<tr id="i809" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NetworkTypeObserver.Listener.html" title="interface in com.google.android.exoplayer2.util">NetworkTypeObserver.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for network type changes.</div>
</th>
</tr>
<tr id="i810" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NonNullApi.html" title="annotation in com.google.android.exoplayer2.util">NonNullApi</a></td>
<th class="colLast" scope="row">
<div class="block">Annotation to declare all type usages in the annotated instance as <code>Nonnull</code>, unless
explicitly marked with a nullable annotation.</div>
</th>
</tr>
<tr id="i811" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/NoOpCacheEvictor.html" title="class in com.google.android.exoplayer2.upstream.cache">NoOpCacheEvictor</a></td>
<th class="colLast" scope="row">
<div class="block">Evictor that doesn't ever evict cache files.</div>
</th>
</tr>
<tr id="i812" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/NoSampleRenderer.html" title="class in com.google.android.exoplayer2">NoSampleRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> implementation whose track type is <a href="com/google/android/exoplayer2/C.html#TRACK_TYPE_NONE"><code>C.TRACK_TYPE_NONE</code></a> and does not
consume data from its <a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div>
</th>
</tr>
<tr id="i813" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NotificationUtil.html" title="class in com.google.android.exoplayer2.util">NotificationUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for displaying <a href="https://developer.android.com/reference/android/app/Notification.html" title="class or interface in android.app" class="externalLink" target="_top"><code>Notifications</code></a>.</div>
</th>
</tr>
<tr id="i814" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/NotificationUtil.Importance.html" title="annotation in com.google.android.exoplayer2.util">NotificationUtil.Importance</a></td>
<th class="colLast" scope="row">
<div class="block">Notification channel importance levels.</div>
</th>
</tr>
<tr id="i815" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/OfflineLicenseHelper.html" title="class in com.google.android.exoplayer2.drm">OfflineLicenseHelper</a></td>
<th class="colLast" scope="row">
<div class="block">Helper class to download, renew and release offline licenses.</div>
</th>
</tr>
<tr id="i816" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ogg/OggExtractor.html" title="class in com.google.android.exoplayer2.extractor.ogg">OggExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the Ogg container format.</div>
</th>
</tr>
<tr id="i817" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.html" title="class in com.google.android.exoplayer2.ext.okhttp">OkHttpDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/upstream/HttpDataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>HttpDataSource</code></a> that delegates to Square's <code>Call.Factory</code>.</div>
</th>
</tr>
<tr id="i818" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.okhttp">OkHttpDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.html" title="class in com.google.android.exoplayer2.ext.okhttp"><code>OkHttpDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i819" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/okhttp/OkHttpDataSourceFactory.html" title="class in com.google.android.exoplayer2.ext.okhttp">OkHttpDataSourceFactory</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.okhttp"><code>OkHttpDataSource.Factory</code></a> instead.</div>
</th>
</tr>
<tr id="i820" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/opus/OpusDecoder.html" title="class in com.google.android.exoplayer2.ext.opus">OpusDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Opus decoder.</div>
</th>
</tr>
<tr id="i821" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/opus/OpusDecoderException.html" title="class in com.google.android.exoplayer2.ext.opus">OpusDecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an Opus decoder error occurs.</div>
</th>
</tr>
<tr id="i822" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/opus/OpusLibrary.html" title="class in com.google.android.exoplayer2.ext.opus">OpusLibrary</a></td>
<th class="colLast" scope="row">
<div class="block">Configures and queries the underlying native library.</div>
</th>
</tr>
<tr id="i823" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/OpusUtil.html" title="class in com.google.android.exoplayer2.audio">OpusUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for handling Opus audio streams.</div>
</th>
</tr>
<tr id="i824" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/mediaparser/OutputConsumerAdapterV30.html" title="class in com.google.android.exoplayer2.source.mediaparser">OutputConsumerAdapterV30</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="https://developer.android.com/reference/android/media/MediaParser.OutputConsumer.html" title="class or interface in android.media" class="externalLink"><code>MediaParser.OutputConsumer</code></a> implementation that redirects output to an <a href="com/google/android/exoplayer2/extractor/ExtractorOutput.html" title="interface in com.google.android.exoplayer2.extractor" target="_top"><code>ExtractorOutput</code></a>.</div>
</th>
</tr>
<tr id="i825" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ParsableBitArray.html" title="class in com.google.android.exoplayer2.util">ParsableBitArray</a></td>
<th class="colLast" scope="row">
<div class="block">Wraps a byte array, providing methods that allow it to be read as a bitstream.</div>
</th>
</tr>
<tr id="i826" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ParsableByteArray.html" title="class in com.google.android.exoplayer2.util">ParsableByteArray</a></td>
<th class="colLast" scope="row">
<div class="block">Wraps a byte array, providing a set of methods for parsing data from it.</div>
</th>
</tr>
<tr id="i827" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/ParsableNalUnitBitArray.html" title="class in com.google.android.exoplayer2.util">ParsableNalUnitBitArray</a></td>
<th class="colLast" scope="row">
<div class="block">Wraps a byte array, providing methods that allow it to be read as a NAL unit bitstream.</div>
</th>
</tr>
<tr id="i828" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ParserException.html" title="class in com.google.android.exoplayer2">ParserException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error occurs parsing media data and metadata.</div>
</th>
</tr>
<tr id="i829" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ParsingLoadable.html" title="class in com.google.android.exoplayer2.upstream">ParsingLoadable</a>&lt;<a href="com/google/android/exoplayer2/upstream/ParsingLoadable.html" title="type parameter in ParsingLoadable">T</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/Loader.Loadable.html" title="interface in com.google.android.exoplayer2.upstream"><code>Loader.Loadable</code></a> for objects that can be parsed from binary data using a <a href="com/google/android/exoplayer2/upstream/ParsingLoadable.Parser.html" title="interface in com.google.android.exoplayer2.upstream"><code>ParsingLoadable.Parser</code></a>.</div>
</th>
</tr>
<tr id="i830" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ParsingLoadable.Parser.html" title="interface in com.google.android.exoplayer2.upstream">ParsingLoadable.Parser</a>&lt;<a href="com/google/android/exoplayer2/upstream/ParsingLoadable.Parser.html" title="type parameter in ParsingLoadable.Parser">T</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">Parses an object from loaded data.</div>
</th>
</tr>
<tr id="i831" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/PassthroughSectionPayloadReader.html" title="class in com.google.android.exoplayer2.extractor.ts">PassthroughSectionPayloadReader</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/extractor/ts/SectionPayloadReader.html" title="interface in com.google.android.exoplayer2.extractor.ts"><code>SectionPayloadReader</code></a> that directly outputs the section bytes as sample data.</div>
</th>
</tr>
<tr id="i832" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/PercentageRating.html" title="class in com.google.android.exoplayer2">PercentageRating</a></td>
<th class="colLast" scope="row">
<div class="block">A rating expressed as a percentage.</div>
</th>
</tr>
<tr id="i833" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/Period.html" title="class in com.google.android.exoplayer2.source.dash.manifest">Period</a></td>
<th class="colLast" scope="row">
<div class="block">Encapsulates media content components over a contiguous period of time.</div>
</th>
</tr>
<tr id="i834" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/PesReader.html" title="class in com.google.android.exoplayer2.extractor.ts">PesReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses PES packet data and extracts samples.</div>
</th>
</tr>
<tr id="i835" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/pgs/PgsDecoder.html" title="class in com.google.android.exoplayer2.text.pgs">PgsDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for PGS subtitles.</div>
</th>
</tr>
<tr id="i836" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/flac/PictureFrame.html" title="class in com.google.android.exoplayer2.metadata.flac">PictureFrame</a></td>
<th class="colLast" scope="row">
<div class="block">A picture parsed from a Vorbis Comment or a FLAC picture block.</div>
</th>
</tr>
<tr id="i837" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/PlaceholderDataSource.html" title="class in com.google.android.exoplayer2.upstream">PlaceholderDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A DataSource which provides no data.</div>
</th>
</tr>
<tr id="i838" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/PlaceholderSurface.html" title="class in com.google.android.exoplayer2.video">PlaceholderSurface</a></td>
<th class="colLast" scope="row">
<div class="block">A placeholder <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.</div>
</th>
</tr>
<tr id="i839" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/scheduler/PlatformScheduler.html" title="class in com.google.android.exoplayer2.scheduler">PlatformScheduler</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/scheduler/Scheduler.html" title="interface in com.google.android.exoplayer2.scheduler"><code>Scheduler</code></a> that uses <a href="https://developer.android.com/reference/android/app/job/JobScheduler.html" title="class or interface in android.app.job" class="externalLink" target="_top"><code>JobScheduler</code></a>.</div>
</th>
</tr>
<tr id="i840" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/scheduler/PlatformScheduler.PlatformSchedulerService.html" title="class in com.google.android.exoplayer2.scheduler">PlatformScheduler.PlatformSchedulerService</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="https://developer.android.com/reference/android/app/job/JobService.html" title="class or interface in android.app.job" class="externalLink" target="_top"><code>JobService</code></a> that starts the target service if the requirements are met.</div>
</th>
</tr>
<tr id="i841" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/PlaybackException.html" title="class in com.google.android.exoplayer2">PlaybackException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a non locally recoverable playback failure occurs.</div>
</th>
</tr>
<tr id="i842" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/PlaybackException.ErrorCode.html" title="annotation in com.google.android.exoplayer2">PlaybackException.ErrorCode</a></td>
<th class="colLast" scope="row">
<div class="block">Codes that identify causes of player errors.</div>
</th>
</tr>
<tr id="i843" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/robolectric/PlaybackOutput.html" title="class in com.google.android.exoplayer2.robolectric">PlaybackOutput</a></td>
<th class="colLast" scope="row">
<div class="block">Class to capture output from a playback test.</div>
</th>
</tr>
<tr id="i844" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/PlaybackParameters.html" title="class in com.google.android.exoplayer2">PlaybackParameters</a></td>
<th class="colLast" scope="row">
<div class="block">Parameters that apply to playback, including speed setting.</div>
</th>
</tr>
<tr id="i845" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackSessionManager.html" title="interface in com.google.android.exoplayer2.analytics">PlaybackSessionManager</a></td>
<th class="colLast" scope="row">
<div class="block">Manager for active playback sessions.</div>
</th>
</tr>
<tr id="i846" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackSessionManager.Listener.html" title="interface in com.google.android.exoplayer2.analytics">PlaybackSessionManager.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for session updates.</div>
</th>
</tr>
<tr id="i847" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackStats.html" title="class in com.google.android.exoplayer2.analytics">PlaybackStats</a></td>
<th class="colLast" scope="row">
<div class="block">Statistics about playbacks.</div>
</th>
</tr>
<tr id="i848" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackStats.EventTimeAndException.html" title="class in com.google.android.exoplayer2.analytics">PlaybackStats.EventTimeAndException</a></td>
<th class="colLast" scope="row">
<div class="block">Stores an exception with the event time at which it occurred.</div>
</th>
</tr>
<tr id="i849" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackStats.EventTimeAndFormat.html" title="class in com.google.android.exoplayer2.analytics">PlaybackStats.EventTimeAndFormat</a></td>
<th class="colLast" scope="row">
<div class="block">Stores a format with the event time at which it started being used, or <code>null</code> to indicate
that no format was used.</div>
</th>
</tr>
<tr id="i850" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackStats.EventTimeAndPlaybackState.html" title="class in com.google.android.exoplayer2.analytics">PlaybackStats.EventTimeAndPlaybackState</a></td>
<th class="colLast" scope="row">
<div class="block">Stores a playback state with the event time at which it became active.</div>
</th>
</tr>
<tr id="i851" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackStatsListener.html" title="class in com.google.android.exoplayer2.analytics">PlaybackStatsListener</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/analytics/AnalyticsListener.html" title="interface in com.google.android.exoplayer2.analytics"><code>AnalyticsListener</code></a> to gather <a href="com/google/android/exoplayer2/analytics/PlaybackStats.html" title="class in com.google.android.exoplayer2.analytics"><code>PlaybackStats</code></a> from the player.</div>
</th>
</tr>
<tr id="i852" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlaybackStatsListener.Callback.html" title="interface in com.google.android.exoplayer2.analytics">PlaybackStatsListener.Callback</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for <a href="com/google/android/exoplayer2/analytics/PlaybackStats.html" title="class in com.google.android.exoplayer2.analytics"><code>PlaybackStats</code></a> updates.</div>
</th>
</tr>
<tr id="i853" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2">Player</a></td>
<th class="colLast" scope="row">
<div class="block">A media player interface defining traditional high-level functionality, such as the ability to
play, pause, seek and query properties of the currently playing media.</div>
</th>
</tr>
<tr id="i854" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.Command.html" title="annotation in com.google.android.exoplayer2">Player.Command</a></td>
<th class="colLast" scope="row">
<div class="block">Commands that can be executed on a <code>Player</code>.</div>
</th>
</tr>
<tr id="i855" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.Commands.html" title="class in com.google.android.exoplayer2">Player.Commands</a></td>
<th class="colLast" scope="row">
<div class="block">A set of <a href="com/google/android/exoplayer2/Player.Command.html" title="annotation in com.google.android.exoplayer2"><code>commands</code></a>.</div>
</th>
</tr>
<tr id="i856" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.Commands.Builder.html" title="class in com.google.android.exoplayer2">Player.Commands.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/Player.Commands.html" title="class in com.google.android.exoplayer2"><code>Player.Commands</code></a> instances.</div>
</th>
</tr>
<tr id="i857" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.DiscontinuityReason.html" title="annotation in com.google.android.exoplayer2">Player.DiscontinuityReason</a></td>
<th class="colLast" scope="row">
<div class="block">Reasons for position discontinuities.</div>
</th>
</tr>
<tr id="i858" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.Event.html" title="annotation in com.google.android.exoplayer2">Player.Event</a></td>
<th class="colLast" scope="row">
<div class="block">Events that can be reported via <a href="com/google/android/exoplayer2/Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a>.</div>
</th>
</tr>
<tr id="i859" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.Events.html" title="class in com.google.android.exoplayer2">Player.Events</a></td>
<th class="colLast" scope="row">
<div class="block">A set of <a href="com/google/android/exoplayer2/Player.Event.html" title="annotation in com.google.android.exoplayer2"><code>events</code></a>.</div>
</th>
</tr>
<tr id="i860" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener of all changes in the Player.</div>
</th>
</tr>
<tr id="i861" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.MediaItemTransitionReason.html" title="annotation in com.google.android.exoplayer2">Player.MediaItemTransitionReason</a></td>
<th class="colLast" scope="row">
<div class="block">Reasons for media item transitions.</div>
</th>
</tr>
<tr id="i862" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.PlaybackSuppressionReason.html" title="annotation in com.google.android.exoplayer2">Player.PlaybackSuppressionReason</a></td>
<th class="colLast" scope="row">
<div class="block">Reason why playback is suppressed even though <a href="com/google/android/exoplayer2/Player.html#getPlayWhenReady()"><code>Player.getPlayWhenReady()</code></a> is <code>true</code>.</div>
</th>
</tr>
<tr id="i863" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.PlayWhenReadyChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.PlayWhenReadyChangeReason</a></td>
<th class="colLast" scope="row">
<div class="block">Reasons for <a href="com/google/android/exoplayer2/Player.html#getPlayWhenReady()"><code>playWhenReady</code></a> changes.</div>
</th>
</tr>
<tr id="i864" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.PositionInfo.html" title="class in com.google.android.exoplayer2">Player.PositionInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Position info describing a playback position involved in a discontinuity.</div>
</th>
</tr>
<tr id="i865" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.RepeatMode.html" title="annotation in com.google.android.exoplayer2">Player.RepeatMode</a></td>
<th class="colLast" scope="row">
<div class="block">Repeat modes for playback.</div>
</th>
</tr>
<tr id="i866" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.State.html" title="annotation in com.google.android.exoplayer2">Player.State</a></td>
<th class="colLast" scope="row">
<div class="block">Playback state.</div>
</th>
</tr>
<tr id="i867" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Player.TimelineChangeReason.html" title="annotation in com.google.android.exoplayer2">Player.TimelineChangeReason</a></td>
<th class="colLast" scope="row">
<div class="block">Reasons for timeline changes.</div>
</th>
</tr>
<tr id="i868" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerControlView.html" title="class in com.google.android.exoplayer2.ui">PlayerControlView</a></td>
<th class="colLast" scope="row">
<div class="block">A view for controlling <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> instances.</div>
</th>
</tr>
<tr id="i869" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerControlView.ProgressUpdateListener.html" title="interface in com.google.android.exoplayer2.ui">PlayerControlView.ProgressUpdateListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener to be notified when progress has been updated.</div>
</th>
</tr>
<tr id="i870" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerControlView.VisibilityListener.html" title="interface in com.google.android.exoplayer2.ui">PlayerControlView.VisibilityListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener to be notified about changes of the visibility of the UI control.</div>
</th>
</tr>
<tr id="i871" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/PlayerEmsgHandler.html" title="class in com.google.android.exoplayer2.source.dash">PlayerEmsgHandler</a></td>
<th class="colLast" scope="row">
<div class="block">Handles all emsg messages from all media tracks for the player.</div>
</th>
</tr>
<tr id="i872" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/PlayerEmsgHandler.PlayerEmsgCallback.html" title="interface in com.google.android.exoplayer2.source.dash">PlayerEmsgHandler.PlayerEmsgCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callbacks for player emsg events encountered during DASH live stream.</div>
</th>
</tr>
<tr id="i873" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/analytics/PlayerId.html" title="class in com.google.android.exoplayer2.analytics">PlayerId</a></td>
<th class="colLast" scope="row">
<div class="block">Identifier for a player instance.</div>
</th>
</tr>
<tr id="i874" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/PlayerMessage.html" title="class in com.google.android.exoplayer2">PlayerMessage</a></td>
<th class="colLast" scope="row">
<div class="block">Defines a player message which can be sent with a <a href="com/google/android/exoplayer2/PlayerMessage.Sender.html" title="interface in com.google.android.exoplayer2"><code>PlayerMessage.Sender</code></a> and received by a <a href="com/google/android/exoplayer2/PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2"><code>PlayerMessage.Target</code></a>.</div>
</th>
</tr>
<tr id="i875" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/PlayerMessage.Sender.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Sender</a></td>
<th class="colLast" scope="row">
<div class="block">A sender for messages.</div>
</th>
</tr>
<tr id="i876" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/PlayerMessage.Target.html" title="interface in com.google.android.exoplayer2">PlayerMessage.Target</a></td>
<th class="colLast" scope="row">
<div class="block">A target for messages.</div>
</th>
</tr>
<tr id="i877" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.html" title="class in com.google.android.exoplayer2.ui">PlayerNotificationManager</a></td>
<th class="colLast" scope="row">
<div class="block">Starts, updates and cancels a media style notification reflecting the player state.</div>
</th>
</tr>
<tr id="i878" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.Builder.html" title="class in com.google.android.exoplayer2.ui">PlayerNotificationManager.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.html" title="class in com.google.android.exoplayer2.ui"><code>PlayerNotificationManager</code></a> instances.</div>
</th>
</tr>
<tr id="i879" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.CustomActionReceiver.html" title="interface in com.google.android.exoplayer2.ui">PlayerNotificationManager.CustomActionReceiver</a></td>
<th class="colLast" scope="row">
<div class="block">Defines and handles custom actions.</div>
</th>
</tr>
<tr id="i880" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.MediaDescriptionAdapter.html" title="interface in com.google.android.exoplayer2.ui">PlayerNotificationManager.MediaDescriptionAdapter</a></td>
<th class="colLast" scope="row">
<div class="block">An adapter to provide content assets of the media currently playing.</div>
</th>
</tr>
<tr id="i881" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.NotificationListener.html" title="interface in com.google.android.exoplayer2.ui">PlayerNotificationManager.NotificationListener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for changes to the notification.</div>
</th>
</tr>
<tr id="i882" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.Priority.html" title="annotation in com.google.android.exoplayer2.ui">PlayerNotificationManager.Priority</a></td>
<th class="colLast" scope="row">
<div class="block">Priority of the notification (required for API 25 and lower).</div>
</th>
</tr>
<tr id="i883" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerNotificationManager.Visibility.html" title="annotation in com.google.android.exoplayer2.ui">PlayerNotificationManager.Visibility</a></td>
<th class="colLast" scope="row">
<div class="block">Visibility of notification on the lock screen.</div>
</th>
</tr>
<tr id="i884" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerView.html" title="class in com.google.android.exoplayer2.ui">PlayerView</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ui/StyledPlayerView.html" title="class in com.google.android.exoplayer2.ui"><code>StyledPlayerView</code></a> instead.</div>
</th>
</tr>
<tr id="i885" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/PlayerView.ShowBuffering.html" title="annotation in com.google.android.exoplayer2.ui">PlayerView.ShowBuffering</a></td>
<th class="colLast" scope="row">
<div class="block">Determines when the buffering view is shown.</div>
</th>
</tr>
<tr id="i886" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/PositionHolder.html" title="class in com.google.android.exoplayer2.extractor">PositionHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holds a position in the stream.</div>
</th>
</tr>
<tr id="i887" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Presentation.html" title="class in com.google.android.exoplayer2.transformer">Presentation</a></td>
<th class="colLast" scope="row">
<div class="block">Controls how a frame is presented with options to set the output resolution, crop the input, and
choose how to map the input pixels onto the output frame geometry (for example, by stretching the
input frame to match the specified output frame, or fitting the input frame using letterboxing).</div>
</th>
</tr>
<tr id="i888" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Presentation.Builder.html" title="class in com.google.android.exoplayer2.transformer">Presentation.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/transformer/Presentation.html" title="class in com.google.android.exoplayer2.transformer"><code>Presentation</code></a> instances.</div>
</th>
</tr>
<tr id="i889" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Presentation.Layout.html" title="annotation in com.google.android.exoplayer2.transformer">Presentation.Layout</a></td>
<th class="colLast" scope="row">
<div class="block">Strategies controlling the layout of input pixels in the output frame.</div>
</th>
</tr>
<tr id="i890" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/PriorityDataSource.html" title="class in com.google.android.exoplayer2.upstream">PriorityDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> that can be used as part of a task registered with a <a href="com/google/android/exoplayer2/util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util"><code>PriorityTaskManager</code></a>.</div>
</th>
</tr>
<tr id="i891" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/PriorityDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream">PriorityDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/upstream/PriorityDataSource.html" title="class in com.google.android.exoplayer2.upstream"><code>PriorityDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i892" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/PriorityDataSourceFactory.html" title="class in com.google.android.exoplayer2.upstream">PriorityDataSourceFactory</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/upstream/PriorityDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream"><code>PriorityDataSource.Factory</code></a>.</div>
</th>
</tr>
<tr id="i893" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/PriorityTaskManager.html" title="class in com.google.android.exoplayer2.util">PriorityTaskManager</a></td>
<th class="colLast" scope="row">
<div class="block">Allows tasks with associated priorities to control how they proceed relative to one another.</div>
</th>
</tr>
<tr id="i894" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/PriorityTaskManager.PriorityTooLowException.html" title="class in com.google.android.exoplayer2.util">PriorityTaskManager.PriorityTooLowException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when task attempts to proceed when another registered task has a higher priority.</div>
</th>
</tr>
<tr id="i895" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/PrivateCommand.html" title="class in com.google.android.exoplayer2.metadata.scte35">PrivateCommand</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a private command as defined in SCTE35, Section 9.3.6.</div>
</th>
</tr>
<tr id="i896" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/PrivFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">PrivFrame</a></td>
<th class="colLast" scope="row">
<div class="block">PRIV (Private) ID3 frame.</div>
</th>
</tr>
<tr id="i897" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/ProgramInformation.html" title="class in com.google.android.exoplayer2.source.dash.manifest">ProgramInformation</a></td>
<th class="colLast" scope="row">
<div class="block">A parsed program information element.</div>
</th>
</tr>
<tr id="i898" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/ProgressHolder.html" title="class in com.google.android.exoplayer2.transformer">ProgressHolder</a></td>
<th class="colLast" scope="row">
<div class="block">Holds a progress percentage.</div>
</th>
</tr>
<tr id="i899" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/ProgressiveDownloader.html" title="class in com.google.android.exoplayer2.offline">ProgressiveDownloader</a></td>
<th class="colLast" scope="row">
<div class="block">A downloader for progressive media streams.</div>
</th>
</tr>
<tr id="i900" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ProgressiveMediaExtractor.html" title="interface in com.google.android.exoplayer2.source">ProgressiveMediaExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts the contents of a container file from a progressive media stream.</div>
</th>
</tr>
<tr id="i901" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ProgressiveMediaExtractor.Factory.html" title="interface in com.google.android.exoplayer2.source">ProgressiveMediaExtractor.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Creates <a href="com/google/android/exoplayer2/source/ProgressiveMediaExtractor.html" title="interface in com.google.android.exoplayer2.source"><code>ProgressiveMediaExtractor</code></a> instances.</div>
</th>
</tr>
<tr id="i902" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ProgressiveMediaSource.html" title="class in com.google.android.exoplayer2.source">ProgressiveMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Provides one period that loads data from a <a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink"><code>Uri</code></a> and extracted using an <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor" target="_top"><code>Extractor</code></a>.</div>
</th>
</tr>
<tr id="i903" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ProgressiveMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">ProgressiveMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/ProgressiveMediaSource.html" title="class in com.google.android.exoplayer2.source"><code>ProgressiveMediaSource</code></a>s.</div>
</th>
</tr>
<tr id="i904" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/PsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts">PsExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the MPEG-2 PS container format.</div>
</th>
</tr>
<tr id="i905" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/PsshAtomUtil.html" title="class in com.google.android.exoplayer2.extractor.mp4">PsshAtomUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for handling PSSH atoms.</div>
</th>
</tr>
<tr id="i906" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/robolectric/RandomizedMp3Decoder.html" title="class in com.google.android.exoplayer2.robolectric">RandomizedMp3Decoder</a></td>
<th class="colLast" scope="row">
<div class="block">Generates randomized, but correct amount of data on MP3 audio input.</div>
</th>
</tr>
<tr id="i907" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/RandomTrackSelection.html" title="class in com.google.android.exoplayer2.trackselection">RandomTrackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/trackselection/ExoTrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>ExoTrackSelection</code></a> whose selected track is updated randomly.</div>
</th>
</tr>
<tr id="i908" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/RandomTrackSelection.Factory.html" title="class in com.google.android.exoplayer2.trackselection">RandomTrackSelection.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/trackselection/RandomTrackSelection.html" title="class in com.google.android.exoplayer2.trackselection"><code>RandomTrackSelection</code></a> instances.</div>
</th>
</tr>
<tr id="i909" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/RangedUri.html" title="class in com.google.android.exoplayer2.source.dash.manifest">RangedUri</a></td>
<th class="colLast" scope="row">
<div class="block">Defines a range of data located at a reference uri.</div>
</th>
</tr>
<tr id="i910" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Rating.html" title="class in com.google.android.exoplayer2">Rating</a></td>
<th class="colLast" scope="row">
<div class="block">A rating for media content.</div>
</th>
</tr>
<tr id="i911" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/RawResourceDataSource.html" title="class in com.google.android.exoplayer2.upstream">RawResourceDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> for reading a raw resource inside the APK.</div>
</th>
</tr>
<tr id="i912" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/RawResourceDataSource.RawResourceDataSourceException.html" title="class in com.google.android.exoplayer2.upstream">RawResourceDataSource.RawResourceDataSourceException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an <a href="https://developer.android.com/reference/java/io/IOException.html" title="class or interface in java.io" class="externalLink" target="_top"><code>IOException</code></a> is encountered reading from a raw resource.</div>
</th>
</tr>
<tr id="i913" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2">Renderer</a></td>
<th class="colLast" scope="row">
<div class="block">Renders media read from a <a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source"><code>SampleStream</code></a>.</div>
</th>
</tr>
<tr id="i914" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Renderer.MessageType.html" title="annotation in com.google.android.exoplayer2">Renderer.MessageType</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a type of message that can be passed to a renderer.</div>
</th>
</tr>
<tr id="i915" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Renderer.State.html" title="annotation in com.google.android.exoplayer2">Renderer.State</a></td>
<th class="colLast" scope="row">
<div class="block">The renderer states.</div>
</th>
</tr>
<tr id="i916" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Renderer.WakeupListener.html" title="interface in com.google.android.exoplayer2">Renderer.WakeupListener</a></td>
<th class="colLast" scope="row">
<div class="block">Some renderers can signal when <a href="com/google/android/exoplayer2/Renderer.html#render(long,long)"><code>Renderer.render(long, long)</code></a> should be called.</div>
</th>
</tr>
<tr id="i917" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererCapabilities.html" title="interface in com.google.android.exoplayer2">RendererCapabilities</a></td>
<th class="colLast" scope="row">
<div class="block">Defines the capabilities of a <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a>.</div>
</th>
</tr>
<tr id="i918" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererCapabilities.AdaptiveSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.AdaptiveSupport</a></td>
<th class="colLast" scope="row">
<div class="block">Level of renderer support for adaptive format switches.</div>
</th>
</tr>
<tr id="i919" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererCapabilities.Capabilities.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.Capabilities</a></td>
<th class="colLast" scope="row">
<div class="block">Combined renderer capabilities.</div>
</th>
</tr>
<tr id="i920" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererCapabilities.DecoderSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.DecoderSupport</a></td>
<th class="colLast" scope="row">
<div class="block">Level of decoder support.</div>
</th>
</tr>
<tr id="i921" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererCapabilities.FormatSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.FormatSupport</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/C.FormatSupport.html" title="annotation in com.google.android.exoplayer2"><code>C.FormatSupport</code></a> instead.</div>
</th>
</tr>
<tr id="i922" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererCapabilities.HardwareAccelerationSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.HardwareAccelerationSupport</a></td>
<th class="colLast" scope="row">
<div class="block">Level of renderer support for hardware acceleration.</div>
</th>
</tr>
<tr id="i923" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererCapabilities.TunnelingSupport.html" title="annotation in com.google.android.exoplayer2">RendererCapabilities.TunnelingSupport</a></td>
<th class="colLast" scope="row">
<div class="block">Level of renderer support for tunneling.</div>
</th>
</tr>
<tr id="i924" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RendererConfiguration.html" title="class in com.google.android.exoplayer2">RendererConfiguration</a></td>
<th class="colLast" scope="row">
<div class="block">The configuration of a <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a>.</div>
</th>
</tr>
<tr id="i925" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/RenderersFactory.html" title="interface in com.google.android.exoplayer2">RenderersFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Builds <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> instances for use by an <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a>.</div>
</th>
</tr>
<tr id="i926" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/RepeatModeActionProvider.html" title="class in com.google.android.exoplayer2.ext.mediasession">RepeatModeActionProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides a custom action for toggling repeat modes.</div>
</th>
</tr>
<tr id="i927" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/RepeatModeUtil.html" title="class in com.google.android.exoplayer2.util">RepeatModeUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Util class for repeat mode handling.</div>
</th>
</tr>
<tr id="i928" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/RepeatModeUtil.RepeatToggleModes.html" title="annotation in com.google.android.exoplayer2.util">RepeatModeUtil.RepeatToggleModes</a></td>
<th class="colLast" scope="row">
<div class="block">Set of repeat toggle modes.</div>
</th>
</tr>
<tr id="i929" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/Representation.html" title="class in com.google.android.exoplayer2.source.dash.manifest">Representation</a></td>
<th class="colLast" scope="row">
<div class="block">A DASH representation.</div>
</th>
</tr>
<tr id="i930" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/Representation.MultiSegmentRepresentation.html" title="class in com.google.android.exoplayer2.source.dash.manifest">Representation.MultiSegmentRepresentation</a></td>
<th class="colLast" scope="row">
<div class="block">A DASH representation consisting of multiple segments.</div>
</th>
</tr>
<tr id="i931" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/Representation.SingleSegmentRepresentation.html" title="class in com.google.android.exoplayer2.source.dash.manifest">Representation.SingleSegmentRepresentation</a></td>
<th class="colLast" scope="row">
<div class="block">A DASH representation consisting of a single segment.</div>
</th>
</tr>
<tr id="i932" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/scheduler/Requirements.html" title="class in com.google.android.exoplayer2.scheduler">Requirements</a></td>
<th class="colLast" scope="row">
<div class="block">Defines a set of device state requirements.</div>
</th>
</tr>
<tr id="i933" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/scheduler/Requirements.RequirementFlags.html" title="annotation in com.google.android.exoplayer2.scheduler">Requirements.RequirementFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Requirement flags.</div>
</th>
</tr>
<tr id="i934" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/scheduler/RequirementsWatcher.html" title="class in com.google.android.exoplayer2.scheduler">RequirementsWatcher</a></td>
<th class="colLast" scope="row">
<div class="block">Watches whether the <a href="com/google/android/exoplayer2/scheduler/Requirements.html" title="class in com.google.android.exoplayer2.scheduler"><code>Requirements</code></a> are met and notifies the <a href="com/google/android/exoplayer2/scheduler/RequirementsWatcher.Listener.html" title="interface in com.google.android.exoplayer2.scheduler"><code>RequirementsWatcher.Listener</code></a> on changes.</div>
</th>
</tr>
<tr id="i935" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/scheduler/RequirementsWatcher.Listener.html" title="interface in com.google.android.exoplayer2.scheduler">RequirementsWatcher.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">Notified when RequirementsWatcher instance first created and on changes whether the <a href="com/google/android/exoplayer2/scheduler/Requirements.html" title="class in com.google.android.exoplayer2.scheduler"><code>Requirements</code></a> are met.</div>
</th>
</tr>
<tr id="i936" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ResolvingDataSource.html" title="class in com.google.android.exoplayer2.upstream">ResolvingDataSource</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> wrapper allowing just-in-time resolution of <a href="com/google/android/exoplayer2/upstream/DataSpec.html" title="class in com.google.android.exoplayer2.upstream"><code>DataSpecs</code></a>.</div>
</th>
</tr>
<tr id="i937" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ResolvingDataSource.Factory.html" title="class in com.google.android.exoplayer2.upstream">ResolvingDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/upstream/ResolvingDataSource.html" title="class in com.google.android.exoplayer2.upstream"><code>ResolvingDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i938" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/ResolvingDataSource.Resolver.html" title="interface in com.google.android.exoplayer2.upstream">ResolvingDataSource.Resolver</a></td>
<th class="colLast" scope="row">
<div class="block">Resolves <a href="com/google/android/exoplayer2/upstream/DataSpec.html" title="class in com.google.android.exoplayer2.upstream"><code>DataSpecs</code></a>.</div>
</th>
</tr>
<tr id="i939" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/robolectric/RobolectricUtil.html" title="class in com.google.android.exoplayer2.robolectric">RobolectricUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for Robolectric-based tests.</div>
</th>
</tr>
<tr id="i940" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/rtmp/RtmpDataSource.html" title="class in com.google.android.exoplayer2.ext.rtmp">RtmpDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A Real-Time Messaging Protocol (RTMP) <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a>.</div>
</th>
</tr>
<tr id="i941" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/rtmp/RtmpDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.rtmp">RtmpDataSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.Factory.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource.Factory</code></a> for <a href="com/google/android/exoplayer2/ext/rtmp/RtmpDataSource.html" title="class in com.google.android.exoplayer2.ext.rtmp"><code>RtmpDataSource</code></a> instances.</div>
</th>
</tr>
<tr id="i942" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/rtmp/RtmpDataSourceFactory.html" title="class in com.google.android.exoplayer2.ext.rtmp">RtmpDataSourceFactory</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ext/rtmp/RtmpDataSource.Factory.html" title="class in com.google.android.exoplayer2.ext.rtmp"><code>RtmpDataSource.Factory</code></a> instead.</div>
</th>
</tr>
<tr id="i943" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/reader/RtpAc3Reader.html" title="class in com.google.android.exoplayer2.source.rtsp.reader">RtpAc3Reader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses an AC3 byte stream carried on RTP packets, and extracts AC3 frames.</div>
</th>
</tr>
<tr id="i944" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/RtpPacket.html" title="class in com.google.android.exoplayer2.source.rtsp">RtpPacket</a></td>
<th class="colLast" scope="row">
<div class="block">Represents the header and the payload of an RTP packet.</div>
</th>
</tr>
<tr id="i945" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/RtpPacket.Builder.html" title="class in com.google.android.exoplayer2.source.rtsp">RtpPacket.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder class for an <a href="com/google/android/exoplayer2/source/rtsp/RtpPacket.html" title="class in com.google.android.exoplayer2.source.rtsp"><code>RtpPacket</code></a></div>
</th>
</tr>
<tr id="i946" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/RtpPayloadFormat.html" title="class in com.google.android.exoplayer2.source.rtsp">RtpPayloadFormat</a></td>
<th class="colLast" scope="row">
<div class="block">Represents the payload format used in RTP.</div>
</th>
</tr>
<tr id="i947" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/reader/RtpPayloadReader.html" title="interface in com.google.android.exoplayer2.source.rtsp.reader">RtpPayloadReader</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts media samples from the payload of received RTP packets.</div>
</th>
</tr>
<tr id="i948" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/reader/RtpPayloadReader.Factory.html" title="interface in com.google.android.exoplayer2.source.rtsp.reader">RtpPayloadReader.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory of <a href="com/google/android/exoplayer2/source/rtsp/reader/RtpPayloadReader.html" title="interface in com.google.android.exoplayer2.source.rtsp.reader"><code>RtpPayloadReader</code></a> instances.</div>
</th>
</tr>
<tr id="i949" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/reader/RtpPcmReader.html" title="class in com.google.android.exoplayer2.source.rtsp.reader">RtpPcmReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses byte stream carried on RTP packets, and extracts PCM frames.</div>
</th>
</tr>
<tr id="i950" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/RtpUtils.html" title="class in com.google.android.exoplayer2.source.rtsp">RtpUtils</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for RTP.</div>
</th>
</tr>
<tr id="i951" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">An Rtsp <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a></div>
</th>
</tr>
<tr id="i952" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.html" title="class in com.google.android.exoplayer2.source.rtsp"><code>RtspMediaSource</code></a></div>
</th>
</tr>
<tr id="i953" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.RtspPlaybackException.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource.RtspPlaybackException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an exception or error is encountered during loading an RTSP stream.</div>
</th>
</tr>
<tr id="i954" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/RubySpan.html" title="class in com.google.android.exoplayer2.text.span">RubySpan</a></td>
<th class="colLast" scope="row">
<div class="block">A styling span for ruby text.</div>
</th>
</tr>
<tr id="i955" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/RunnableFutureTask.html" title="class in com.google.android.exoplayer2.util">RunnableFutureTask</a>&lt;<a href="com/google/android/exoplayer2/util/RunnableFutureTask.html" title="type parameter in RunnableFutureTask">R</a>,&#8203;<a href="com/google/android/exoplayer2/util/RunnableFutureTask.html" title="type parameter in RunnableFutureTask">E</a> extends <a href="https://developer.android.com/reference/java/lang/Exception.html" title="class or interface in java.lang" class="externalLink" target="_top">Exception</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A <a href="https://developer.android.com/reference/java/util/concurrent/RunnableFuture.html" title="class or interface in java.util.concurrent" class="externalLink" target="_top"><code>RunnableFuture</code></a> that supports additional uninterruptible operations to query whether
execution has started and finished.</div>
</th>
</tr>
<tr id="i956" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SampleQueue.html" title="class in com.google.android.exoplayer2.source">SampleQueue</a></td>
<th class="colLast" scope="row">
<div class="block">A queue of media samples.</div>
</th>
</tr>
<tr id="i957" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SampleQueue.UpstreamFormatChangedListener.html" title="interface in com.google.android.exoplayer2.source">SampleQueue.UpstreamFormatChangedListener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for changes to the upstream format.</div>
</th>
</tr>
<tr id="i958" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/SampleQueueMappingException.html" title="class in com.google.android.exoplayer2.source.hls">SampleQueueMappingException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when it is not possible to map a <a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroup</code></a> to a <a href="com/google/android/exoplayer2/source/SampleQueue.html" title="class in com.google.android.exoplayer2.source"><code>SampleQueue</code></a>.</div>
</th>
</tr>
<tr id="i959" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SampleStream.html" title="interface in com.google.android.exoplayer2.source">SampleStream</a></td>
<th class="colLast" scope="row">
<div class="block">A stream of media samples (and associated format information).</div>
</th>
</tr>
<tr id="i960" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SampleStream.ReadDataResult.html" title="annotation in com.google.android.exoplayer2.source">SampleStream.ReadDataResult</a></td>
<th class="colLast" scope="row">
<div class="block">Return values of <a href="com/google/android/exoplayer2/source/SampleStream.html#readData(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,@com.google.android.exoplayer2.source.SampleStream.ReadFlagsint)"><code>SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)</code></a>.</div>
</th>
</tr>
<tr id="i961" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SampleStream.ReadFlags.html" title="annotation in com.google.android.exoplayer2.source">SampleStream.ReadFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Flags that can be specified when calling <a href="com/google/android/exoplayer2/source/SampleStream.html#readData(com.google.android.exoplayer2.FormatHolder,com.google.android.exoplayer2.decoder.DecoderInputBuffer,@com.google.android.exoplayer2.source.SampleStream.ReadFlagsint)"><code>SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)</code></a>.</div>
</th>
</tr>
<tr id="i962" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/ScaleToFitTransformation.html" title="class in com.google.android.exoplayer2.transformer">ScaleToFitTransformation</a></td>
<th class="colLast" scope="row">
<div class="block">Specifies a simple rotation and/or scale to apply in the vertex shader.</div>
</th>
</tr>
<tr id="i963" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/ScaleToFitTransformation.Builder.html" title="class in com.google.android.exoplayer2.transformer">ScaleToFitTransformation.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/transformer/ScaleToFitTransformation.html" title="class in com.google.android.exoplayer2.transformer"><code>ScaleToFitTransformation</code></a> instances.</div>
</th>
</tr>
<tr id="i964" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/scheduler/Scheduler.html" title="interface in com.google.android.exoplayer2.scheduler">Scheduler</a></td>
<th class="colLast" scope="row">
<div class="block">Schedules a service to be started in the foreground when some <a href="com/google/android/exoplayer2/scheduler/Requirements.html" title="class in com.google.android.exoplayer2.scheduler"><code>Requirements</code></a> are met.</div>
</th>
</tr>
<tr id="i965" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/SectionPayloadReader.html" title="interface in com.google.android.exoplayer2.extractor.ts">SectionPayloadReader</a></td>
<th class="colLast" scope="row">
<div class="block">Reads section data.</div>
</th>
</tr>
<tr id="i966" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/SectionReader.html" title="class in com.google.android.exoplayer2.extractor.ts">SectionReader</a></td>
<th class="colLast" scope="row">
<div class="block">Reads section data packets and feeds the whole sections to a given <a href="com/google/android/exoplayer2/extractor/ts/SectionPayloadReader.html" title="interface in com.google.android.exoplayer2.extractor.ts"><code>SectionPayloadReader</code></a>.</div>
</th>
</tr>
<tr id="i967" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/SeekMap.html" title="interface in com.google.android.exoplayer2.extractor">SeekMap</a></td>
<th class="colLast" scope="row">
<div class="block">Maps seek positions (in microseconds) to corresponding positions (byte offsets) in the stream.</div>
</th>
</tr>
<tr id="i968" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/SeekMap.SeekPoints.html" title="class in com.google.android.exoplayer2.extractor">SeekMap.SeekPoints</a></td>
<th class="colLast" scope="row">
<div class="block">Contains one or two <a href="com/google/android/exoplayer2/extractor/SeekPoint.html" title="class in com.google.android.exoplayer2.extractor"><code>SeekPoint</code></a>s.</div>
</th>
</tr>
<tr id="i969" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/SeekMap.Unseekable.html" title="class in com.google.android.exoplayer2.extractor">SeekMap.Unseekable</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/extractor/SeekMap.html" title="interface in com.google.android.exoplayer2.extractor"><code>SeekMap</code></a> that does not support seeking.</div>
</th>
</tr>
<tr id="i970" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/SeekParameters.html" title="class in com.google.android.exoplayer2">SeekParameters</a></td>
<th class="colLast" scope="row">
<div class="block">Parameters that apply to seeking.</div>
</th>
</tr>
<tr id="i971" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/SeekPoint.html" title="class in com.google.android.exoplayer2.extractor">SeekPoint</a></td>
<th class="colLast" scope="row">
<div class="block">Defines a seek point in a media stream.</div>
</th>
</tr>
<tr id="i972" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.html" title="class in com.google.android.exoplayer2.source.dash.manifest">SegmentBase</a></td>
<th class="colLast" scope="row">
<div class="block">An approximate representation of a SegmentBase manifest element.</div>
</th>
</tr>
<tr id="i973" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.MultiSegmentBase.html" title="class in com.google.android.exoplayer2.source.dash.manifest">SegmentBase.MultiSegmentBase</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.html" title="class in com.google.android.exoplayer2.source.dash.manifest"><code>SegmentBase</code></a> that consists of multiple segments.</div>
</th>
</tr>
<tr id="i974" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.SegmentList.html" title="class in com.google.android.exoplayer2.source.dash.manifest">SegmentBase.SegmentList</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.MultiSegmentBase.html" title="class in com.google.android.exoplayer2.source.dash.manifest"><code>SegmentBase.MultiSegmentBase</code></a> that uses a SegmentList to define its segments.</div>
</th>
</tr>
<tr id="i975" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.SegmentTemplate.html" title="class in com.google.android.exoplayer2.source.dash.manifest">SegmentBase.SegmentTemplate</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.MultiSegmentBase.html" title="class in com.google.android.exoplayer2.source.dash.manifest"><code>SegmentBase.MultiSegmentBase</code></a> that uses a SegmentTemplate to define its segments.</div>
</th>
</tr>
<tr id="i976" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.SegmentTimelineElement.html" title="class in com.google.android.exoplayer2.source.dash.manifest">SegmentBase.SegmentTimelineElement</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a timeline segment from the MPD's SegmentTimeline list.</div>
</th>
</tr>
<tr id="i977" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.SingleSegmentBase.html" title="class in com.google.android.exoplayer2.source.dash.manifest">SegmentBase.SingleSegmentBase</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/dash/manifest/SegmentBase.html" title="class in com.google.android.exoplayer2.source.dash.manifest"><code>SegmentBase</code></a> that defines a single segment.</div>
</th>
</tr>
<tr id="i978" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/SegmentDownloader.html" title="class in com.google.android.exoplayer2.offline">SegmentDownloader</a>&lt;<a href="com/google/android/exoplayer2/offline/SegmentDownloader.html" title="type parameter in SegmentDownloader">M</a> extends <a href="com/google/android/exoplayer2/offline/FilterableManifest.html" title="interface in com.google.android.exoplayer2.offline">FilterableManifest</a>&lt;<a href="com/google/android/exoplayer2/offline/SegmentDownloader.html" title="type parameter in SegmentDownloader">M</a>&gt;&gt;</td>
<th class="colLast" scope="row">
<div class="block">Base class for multi segment stream downloaders.</div>
</th>
</tr>
<tr id="i979" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/SegmentDownloader.Segment.html" title="class in com.google.android.exoplayer2.offline">SegmentDownloader.Segment</a></td>
<th class="colLast" scope="row">
<div class="block">Smallest unit of content to be downloaded.</div>
</th>
</tr>
<tr id="i980" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/SeiReader.html" title="class in com.google.android.exoplayer2.extractor.ts">SeiReader</a></td>
<th class="colLast" scope="row">
<div class="block">Consumes SEI buffers, outputting contained CEA-608/708 messages to a <a href="com/google/android/exoplayer2/extractor/TrackOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>TrackOutput</code></a>.</div>
</th>
</tr>
<tr id="i981" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source">SequenceableLoader</a></td>
<th class="colLast" scope="row">
<div class="block">A loader that can proceed in approximate synchronization with other loaders.</div>
</th>
</tr>
<tr id="i982" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SequenceableLoader.Callback.html" title="interface in com.google.android.exoplayer2.source">SequenceableLoader.Callback</a>&lt;<a href="com/google/android/exoplayer2/source/SequenceableLoader.Callback.html" title="type parameter in SequenceableLoader.Callback">T</a> extends <a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source">SequenceableLoader</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A callback to be notified of <a href="com/google/android/exoplayer2/source/SequenceableLoader.html" title="interface in com.google.android.exoplayer2.source"><code>SequenceableLoader</code></a> events.</div>
</th>
</tr>
<tr id="i983" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/ServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideAdInsertionMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a> for server-side inserted ad breaks.</div>
</th>
</tr>
<tr id="i984" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/ServerSideAdInsertionMediaSource.AdPlaybackStateUpdater.html" title="interface in com.google.android.exoplayer2.source.ads">ServerSideAdInsertionMediaSource.AdPlaybackStateUpdater</a></td>
<th class="colLast" scope="row">
<div class="block">Receives ad playback state update requests when the <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> of the content media
source has changed.</div>
</th>
</tr>
<tr id="i985" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/ServerSideAdInsertionUtil.html" title="class in com.google.android.exoplayer2.source.ads">ServerSideAdInsertionUtil</a></td>
<th class="colLast" scope="row">
<div class="block">A static utility class with methods to work with server-side inserted ads.</div>
</th>
</tr>
<tr id="i986" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/ServiceDescriptionElement.html" title="class in com.google.android.exoplayer2.source.dash.manifest">ServiceDescriptionElement</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a service description element.</div>
</th>
</tr>
<tr id="i987" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/cast/SessionAvailabilityListener.html" title="interface in com.google.android.exoplayer2.ext.cast">SessionAvailabilityListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener of changes in the cast session availability.</div>
</th>
</tr>
<tr id="i988" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.html" title="class in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder</a></td>
<th class="colLast" scope="row">
<div class="block">Builds a <code>MediaSession.SessionCallback</code> with various collaborators.</div>
</th>
</tr>
<tr id="i989" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.AllowedCommandProvider.html" title="interface in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.AllowedCommandProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides allowed commands for <code>MediaController</code>.</div>
</th>
</tr>
<tr id="i990" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.CustomCommandProvider.html" title="interface in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.CustomCommandProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Callbacks for querying what custom commands are supported, and for handling a custom command
when a controller sends it.</div>
</th>
</tr>
<tr id="i991" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.DefaultAllowedCommandProvider.html" title="class in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.DefaultAllowedCommandProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Default implementation of <a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.AllowedCommandProvider.html" title="interface in com.google.android.exoplayer2.ext.media2"><code>SessionCallbackBuilder.AllowedCommandProvider</code></a> that behaves as follows:
Accepts connection requests from controller if any of the following conditions are met:
Controller is in the same package as the session.</div>
</th>
</tr>
<tr id="i992" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.DisconnectedCallback.html" title="interface in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.DisconnectedCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback for handling controller disconnection.</div>
</th>
</tr>
<tr id="i993" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.MediaIdMediaItemProvider.html" title="class in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.MediaIdMediaItemProvider</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.MediaItemProvider.html" title="interface in com.google.android.exoplayer2.ext.media2"><code>SessionCallbackBuilder.MediaItemProvider</code></a> that creates media items containing only a media ID.</div>
</th>
</tr>
<tr id="i994" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.MediaItemProvider.html" title="interface in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.MediaItemProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides the <code>MediaItem</code>.</div>
</th>
</tr>
<tr id="i995" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.PostConnectCallback.html" title="interface in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.PostConnectCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback for handling extra initialization after the connection.</div>
</th>
</tr>
<tr id="i996" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.RatingCallback.html" title="interface in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.RatingCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback receiving a user rating for a specified media id.</div>
</th>
</tr>
<tr id="i997" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionCallbackBuilder.SkipCallback.html" title="interface in com.google.android.exoplayer2.ext.media2">SessionCallbackBuilder.SkipCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback receiving skip backward and skip forward.</div>
</th>
</tr>
<tr id="i998" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.html" title="class in com.google.android.exoplayer2.ext.media2">SessionPlayerConnector</a></td>
<th class="colLast" scope="row">
<div class="block">An implementation of <code>SessionPlayer</code> that wraps a given ExoPlayer <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> instance.</div>
</th>
</tr>
<tr id="i999" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/robolectric/ShadowMediaCodecConfig.html" title="class in com.google.android.exoplayer2.robolectric">ShadowMediaCodecConfig</a></td>
<th class="colLast" scope="row">
<div class="block">A JUnit @Rule to configure Roboelectric's <code>ShadowMediaCodec</code>.</div>
</th>
</tr>
<tr id="i1000" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source">ShuffleOrder</a></td>
<th class="colLast" scope="row">
<div class="block">Shuffled order of indices.</div>
</th>
</tr>
<tr id="i1001" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ShuffleOrder.DefaultShuffleOrder.html" title="class in com.google.android.exoplayer2.source">ShuffleOrder.DefaultShuffleOrder</a></td>
<th class="colLast" scope="row">
<div class="block">The default <a href="com/google/android/exoplayer2/source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source"><code>ShuffleOrder</code></a> implementation for random shuffle order.</div>
</th>
</tr>
<tr id="i1002" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ShuffleOrder.UnshuffledShuffleOrder.html" title="class in com.google.android.exoplayer2.source">ShuffleOrder.UnshuffledShuffleOrder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/ShuffleOrder.html" title="interface in com.google.android.exoplayer2.source"><code>ShuffleOrder</code></a> implementation which does not shuffle.</div>
</th>
</tr>
<tr id="i1003" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SilenceMediaSource.html" title="class in com.google.android.exoplayer2.source">SilenceMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Media source with a single period consisting of silent raw audio of a given duration.</div>
</th>
</tr>
<tr id="i1004" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SilenceMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SilenceMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/SilenceMediaSource.html" title="class in com.google.android.exoplayer2.source"><code>SilenceMediaSources</code></a>.</div>
</th>
</tr>
<tr id="i1005" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.html" title="class in com.google.android.exoplayer2.audio">SilenceSkippingAudioProcessor</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/audio/AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessor</code></a> that skips silence in the input stream.</div>
</th>
</tr>
<tr id="i1006" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/cache/SimpleCache.html" title="class in com.google.android.exoplayer2.upstream.cache">SimpleCache</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/upstream/cache/Cache.html" title="interface in com.google.android.exoplayer2.upstream.cache"><code>Cache</code></a> implementation that maintains an in-memory representation.</div>
</th>
</tr>
<tr id="i1007" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/SimpleDecoder.html" title="class in com.google.android.exoplayer2.decoder">SimpleDecoder</a>&lt;<a href="com/google/android/exoplayer2/decoder/SimpleDecoder.html" title="type parameter in SimpleDecoder">I</a> extends <a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderInputBuffer</a>,&#8203;<a href="com/google/android/exoplayer2/decoder/SimpleDecoder.html" title="type parameter in SimpleDecoder">O</a> extends <a href="com/google/android/exoplayer2/decoder/DecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder">DecoderOutputBuffer</a>,&#8203;<a href="com/google/android/exoplayer2/decoder/SimpleDecoder.html" title="type parameter in SimpleDecoder">E</a> extends <a href="com/google/android/exoplayer2/decoder/DecoderException.html" title="class in com.google.android.exoplayer2.decoder">DecoderException</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">Base class for <a href="com/google/android/exoplayer2/decoder/Decoder.html" title="interface in com.google.android.exoplayer2.decoder"><code>Decoder</code></a>s that use their own decode thread and decode each input buffer
immediately into a corresponding output buffer.</div>
</th>
</tr>
<tr id="i1008" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/SimpleDecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder">SimpleDecoderOutputBuffer</a></td>
<th class="colLast" scope="row">
<div class="block">Buffer for <a href="com/google/android/exoplayer2/decoder/SimpleDecoder.html" title="class in com.google.android.exoplayer2.decoder"><code>SimpleDecoder</code></a> output.</div>
</th>
</tr>
<tr id="i1009" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/SimpleExoPlayer.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instead.</div>
</th>
</tr>
<tr id="i1010" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/SimpleExoPlayer.Builder.html" title="class in com.google.android.exoplayer2">SimpleExoPlayer.Builder</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/ExoPlayer.Builder.html" title="class in com.google.android.exoplayer2"><code>ExoPlayer.Builder</code></a> instead.</div>
</th>
</tr>
<tr id="i1011" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/SimpleMetadataDecoder.html" title="class in com.google.android.exoplayer2.metadata">SimpleMetadataDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/metadata/MetadataDecoder.html" title="interface in com.google.android.exoplayer2.metadata"><code>MetadataDecoder</code></a> base class that validates input buffers and discards any for which
<a href="com/google/android/exoplayer2/decoder/Buffer.html#isDecodeOnly()"><code>Buffer.isDecodeOnly()</code></a> is <code>true</code>.</div>
</th>
</tr>
<tr id="i1012" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text">SimpleSubtitleDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for subtitle parsers that use their own decode thread.</div>
</th>
</tr>
<tr id="i1013" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/SingleFrameGlTextureProcessor.html" title="interface in com.google.android.exoplayer2.transformer">SingleFrameGlTextureProcessor</a></td>
<th class="colLast" scope="row">
<div class="block">Manages a GLSL shader program for processing a frame.</div>
</th>
</tr>
<tr id="i1014" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/ads/SinglePeriodAdTimeline.html" title="class in com.google.android.exoplayer2.source.ads">SinglePeriodAdTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> for sources that have ads.</div>
</th>
</tr>
<tr id="i1015" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SinglePeriodTimeline.html" title="class in com.google.android.exoplayer2.source">SinglePeriodTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> consisting of a single period and static window.</div>
</th>
</tr>
<tr id="i1016" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk">SingleSampleMediaChunk</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/chunk/BaseMediaChunk.html" title="class in com.google.android.exoplayer2.source.chunk"><code>BaseMediaChunk</code></a> for chunks consisting of a single raw sample.</div>
</th>
</tr>
<tr id="i1017" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SingleSampleMediaSource.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">Loads data at a given <a href="https://developer.android.com/reference/android/net/Uri.html" title="class or interface in android.net" class="externalLink"><code>Uri</code></a> as a single sample belonging to a single <a href="com/google/android/exoplayer2/source/MediaPeriod.html" title="interface in com.google.android.exoplayer2.source" target="_top"><code>MediaPeriod</code></a>.</div>
</th>
</tr>
<tr id="i1018" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/SingleSampleMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/SingleSampleMediaSource.html" title="class in com.google.android.exoplayer2.source"><code>SingleSampleMediaSource</code></a>.</div>
</th>
</tr>
<tr id="i1019" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/SlidingPercentile.html" title="class in com.google.android.exoplayer2.upstream">SlidingPercentile</a></td>
<th class="colLast" scope="row">
<div class="block">Calculate any percentile over a sliding window of weighted values.</div>
</th>
</tr>
<tr id="i1020" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/mp4/SlowMotionData.html" title="class in com.google.android.exoplayer2.metadata.mp4">SlowMotionData</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about the segments of slow motion playback within a track.</div>
</th>
</tr>
<tr id="i1021" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/mp4/SlowMotionData.Segment.html" title="class in com.google.android.exoplayer2.metadata.mp4">SlowMotionData.Segment</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about a single segment of slow motion playback within a track.</div>
</th>
</tr>
<tr id="i1022" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/mp4/SmtaMetadataEntry.html" title="class in com.google.android.exoplayer2.metadata.mp4">SmtaMetadataEntry</a></td>
<th class="colLast" scope="row">
<div class="block">Stores metadata from the Samsung smta box.</div>
</th>
</tr>
<tr id="i1023" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/SntpClient.html" title="class in com.google.android.exoplayer2.util">SntpClient</a></td>
<th class="colLast" scope="row">
<div class="block">Static utility to retrieve the device time offset using SNTP.</div>
</th>
</tr>
<tr id="i1024" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/SntpClient.InitializationCallback.html" title="interface in com.google.android.exoplayer2.util">SntpClient.InitializationCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback for calls to <a href="com/google/android/exoplayer2/util/SntpClient.html#initialize(com.google.android.exoplayer2.upstream.Loader,com.google.android.exoplayer2.util.SntpClient.InitializationCallback)"><code>SntpClient.initialize(Loader, InitializationCallback)</code></a>.</div>
</th>
</tr>
<tr id="i1025" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/SonicAudioProcessor.html" title="class in com.google.android.exoplayer2.audio">SonicAudioProcessor</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="com/google/android/exoplayer2/audio/AudioProcessor.html" title="interface in com.google.android.exoplayer2.audio"><code>AudioProcessor</code></a> that uses the Sonic library to modify audio speed/pitch/sample rate.</div>
</th>
</tr>
<tr id="i1026" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.html" title="class in com.google.android.exoplayer2.testutil.truth">SpannedSubject</a></td>
<th class="colLast" scope="row">
<div class="block">A Truth <code>Subject</code> for assertions on <a href="https://developer.android.com/reference/android/text/Spanned.html" title="class or interface in android.text" class="externalLink" target="_top"><code>Spanned</code></a> instances containing text styling.</div>
</th>
</tr>
<tr id="i1027" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.AbsoluteSized.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.AbsoluteSized</a></td>
<th class="colLast" scope="row">
<div class="block">Allows assertions about the absolute size of a span.</div>
</th>
</tr>
<tr id="i1028" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.Aligned.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.Aligned</a></td>
<th class="colLast" scope="row">
<div class="block">Allows assertions about the alignment of a span.</div>
</th>
</tr>
<tr id="i1029" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.AndSpanFlags.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.AndSpanFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Allows additional assertions to be made on the flags of matching spans.</div>
</th>
</tr>
<tr id="i1030" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.Colored.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.Colored</a></td>
<th class="colLast" scope="row">
<div class="block">Allows assertions about the color of a span.</div>
</th>
</tr>
<tr id="i1031" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.EmphasizedText.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.EmphasizedText</a></td>
<th class="colLast" scope="row">
<div class="block">Allows assertions about a span's text emphasis mark and its position.</div>
</th>
</tr>
<tr id="i1032" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.RelativeSized.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.RelativeSized</a></td>
<th class="colLast" scope="row">
<div class="block">Allows assertions about the relative size of a span.</div>
</th>
</tr>
<tr id="i1033" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.RubyText.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.RubyText</a></td>
<th class="colLast" scope="row">
<div class="block">Allows assertions about a span's ruby text and its position.</div>
</th>
</tr>
<tr id="i1034" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.Typefaced.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.Typefaced</a></td>
<th class="colLast" scope="row">
<div class="block">Allows assertions about the typeface of a span.</div>
</th>
</tr>
<tr id="i1035" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/truth/SpannedSubject.WithSpanFlags.html" title="interface in com.google.android.exoplayer2.testutil.truth">SpannedSubject.WithSpanFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Allows additional assertions to be made on the flags of matching spans.</div>
</th>
</tr>
<tr id="i1036" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/SpanUtil.html" title="class in com.google.android.exoplayer2.text.span">SpanUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for Android <a href="https://developer.android.com/guide/topics/text/spans">span
styling</a>.</div>
</th>
</tr>
<tr id="i1037" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView.html" title="class in com.google.android.exoplayer2.video.spherical">SphericalGLSurfaceView</a></td>
<th class="colLast" scope="row">
<div class="block">Renders a GL scene in a non-VR Activity that is affected by phone orientation and touch input.</div>
</th>
</tr>
<tr id="i1038" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/spherical/SphericalGLSurfaceView.VideoSurfaceListener.html" title="interface in com.google.android.exoplayer2.video.spherical">SphericalGLSurfaceView.VideoSurfaceListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for the <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a> to which video frames should be rendered.</div>
</th>
</tr>
<tr id="i1039" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceCommand.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceCommand</a></td>
<th class="colLast" scope="row">
<div class="block">Superclass for SCTE35 splice commands.</div>
</th>
</tr>
<tr id="i1040" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceInfoDecoder.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceInfoDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes splice info sections and produces splice commands.</div>
</th>
</tr>
<tr id="i1041" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceInsertCommand.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceInsertCommand</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a splice insert command defined in SCTE35, Section 9.3.3.</div>
</th>
</tr>
<tr id="i1042" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceInsertCommand.ComponentSplice.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceInsertCommand.ComponentSplice</a></td>
<th class="colLast" scope="row">
<div class="block">Holds splicing information for specific splice insert command components.</div>
</th>
</tr>
<tr id="i1043" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceNullCommand.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceNullCommand</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a splice null command as defined in SCTE35, Section 9.3.1.</div>
</th>
</tr>
<tr id="i1044" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceScheduleCommand.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceScheduleCommand</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a splice schedule command as defined in SCTE35, Section 9.3.2.</div>
</th>
</tr>
<tr id="i1045" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceScheduleCommand.ComponentSplice.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceScheduleCommand.ComponentSplice</a></td>
<th class="colLast" scope="row">
<div class="block">Holds splicing information for specific splice schedule command components.</div>
</th>
</tr>
<tr id="i1046" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/SpliceScheduleCommand.Event.html" title="class in com.google.android.exoplayer2.metadata.scte35">SpliceScheduleCommand.Event</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a splice event as contained in a <a href="com/google/android/exoplayer2/metadata/scte35/SpliceScheduleCommand.html" title="class in com.google.android.exoplayer2.metadata.scte35"><code>SpliceScheduleCommand</code></a>.</div>
</th>
</tr>
<tr id="i1047" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/ssa/SsaDecoder.html" title="class in com.google.android.exoplayer2.text.ssa">SsaDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for SSA/ASS.</div>
</th>
</tr>
<tr id="i1048" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/SsChunkSource.html" title="interface in com.google.android.exoplayer2.source.smoothstreaming">SsChunkSource</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/source/chunk/ChunkSource.html" title="interface in com.google.android.exoplayer2.source.chunk"><code>ChunkSource</code></a> for SmoothStreaming.</div>
</th>
</tr>
<tr id="i1049" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/SsChunkSource.Factory.html" title="interface in com.google.android.exoplayer2.source.smoothstreaming">SsChunkSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/smoothstreaming/SsChunkSource.html" title="interface in com.google.android.exoplayer2.source.smoothstreaming"><code>SsChunkSource</code></a>s.</div>
</th>
</tr>
<tr id="i1050" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/offline/SsDownloader.html" title="class in com.google.android.exoplayer2.source.smoothstreaming.offline">SsDownloader</a></td>
<th class="colLast" scope="row">
<div class="block">A downloader for SmoothStreaming streams.</div>
</th>
</tr>
<tr id="i1051" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest.html" title="class in com.google.android.exoplayer2.source.smoothstreaming.manifest">SsManifest</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a SmoothStreaming manifest.</div>
</th>
</tr>
<tr id="i1052" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest.ProtectionElement.html" title="class in com.google.android.exoplayer2.source.smoothstreaming.manifest">SsManifest.ProtectionElement</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a protection element containing a single header.</div>
</th>
</tr>
<tr id="i1053" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifest.StreamElement.html" title="class in com.google.android.exoplayer2.source.smoothstreaming.manifest">SsManifest.StreamElement</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a StreamIndex element.</div>
</th>
</tr>
<tr id="i1054" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser.html" title="class in com.google.android.exoplayer2.source.smoothstreaming.manifest">SsManifestParser</a></td>
<th class="colLast" scope="row">
<div class="block">Parses SmoothStreaming client manifests.</div>
</th>
</tr>
<tr id="i1055" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/manifest/SsManifestParser.MissingFieldException.html" title="class in com.google.android.exoplayer2.source.smoothstreaming.manifest">SsManifestParser.MissingFieldException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown if a required field is missing.</div>
</th>
</tr>
<tr id="i1056" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.html" title="class in com.google.android.exoplayer2.source.smoothstreaming">SsMediaSource</a></td>
<th class="colLast" scope="row">
<div class="block">A SmoothStreaming <a href="com/google/android/exoplayer2/source/MediaSource.html" title="interface in com.google.android.exoplayer2.source"><code>MediaSource</code></a>.</div>
</th>
</tr>
<tr id="i1057" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source.smoothstreaming">SsMediaSource.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory for <a href="com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.html" title="class in com.google.android.exoplayer2.source.smoothstreaming"><code>SsMediaSource</code></a>.</div>
</th>
</tr>
<tr id="i1058" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/database/StandaloneDatabaseProvider.html" title="class in com.google.android.exoplayer2.database">StandaloneDatabaseProvider</a></td>
<th class="colLast" scope="row">
<div class="block">An <a href="https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html" title="class or interface in android.database.sqlite" class="externalLink" target="_top"><code>SQLiteOpenHelper</code></a> that provides instances of a standalone database.</div>
</th>
</tr>
<tr id="i1059" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/StandaloneMediaClock.html" title="class in com.google.android.exoplayer2.util">StandaloneMediaClock</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/util/MediaClock.html" title="interface in com.google.android.exoplayer2.util"><code>MediaClock</code></a> whose position advances with real time based on the playback parameters when
started.</div>
</th>
</tr>
<tr id="i1060" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/StarRating.html" title="class in com.google.android.exoplayer2">StarRating</a></td>
<th class="colLast" scope="row">
<div class="block">A rating expressed as a fractional number of stars.</div>
</th>
</tr>
<tr id="i1061" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/jpeg/StartOffsetExtractorOutput.html" title="class in com.google.android.exoplayer2.extractor.jpeg">StartOffsetExtractorOutput</a></td>
<th class="colLast" scope="row">
<div class="block">An extractor output that wraps another extractor output and applies a give start byte offset to
seek positions.</div>
</th>
</tr>
<tr id="i1062" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/StatsDataSource.html" title="class in com.google.android.exoplayer2.upstream">StatsDataSource</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a> wrapper which keeps track of bytes transferred, redirected uris, and response
headers.</div>
</th>
</tr>
<tr id="i1063" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/StreamKey.html" title="class in com.google.android.exoplayer2.offline">StreamKey</a></td>
<th class="colLast" scope="row">
<div class="block">A key for a subset of media that can be separately loaded (a "stream").</div>
</th>
</tr>
<tr id="i1064" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/StubExoPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubExoPlayer</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> implementation that throws <a href="https://developer.android.com/reference/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>UnsupportedOperationException</code></a>
from every method.</div>
</th>
</tr>
<tr id="i1065" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/StubPlayer.html" title="class in com.google.android.exoplayer2.testutil">StubPlayer</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> implementation that throws <a href="https://developer.android.com/reference/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="externalLink" target="_top"><code>UnsupportedOperationException</code></a> from
every method.</div>
</th>
</tr>
<tr id="i1066" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerControlView.html" title="class in com.google.android.exoplayer2.ui">StyledPlayerControlView</a></td>
<th class="colLast" scope="row">
<div class="block">A view for controlling <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> instances.</div>
</th>
</tr>
<tr id="i1067" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerControlView.OnFullScreenModeChangedListener.html" title="interface in com.google.android.exoplayer2.ui">StyledPlayerControlView.OnFullScreenModeChangedListener</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Register a <a href="com/google/android/exoplayer2/ui/StyledPlayerView.FullscreenButtonClickListener.html" title="interface in com.google.android.exoplayer2.ui"><code>StyledPlayerView.FullscreenButtonClickListener</code></a> via <a href="com/google/android/exoplayer2/ui/StyledPlayerView.html#setFullscreenButtonClickListener(com.google.android.exoplayer2.ui.StyledPlayerView.FullscreenButtonClickListener)"><code>StyledPlayerView.setFullscreenButtonClickListener(StyledPlayerView.FullscreenButtonClickListener)</code></a>
instead.</div>
</th>
</tr>
<tr id="i1068" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerControlView.ProgressUpdateListener.html" title="interface in com.google.android.exoplayer2.ui">StyledPlayerControlView.ProgressUpdateListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener to be notified when progress has been updated.</div>
</th>
</tr>
<tr id="i1069" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerControlView.VisibilityListener.html" title="interface in com.google.android.exoplayer2.ui">StyledPlayerControlView.VisibilityListener</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Register a <a href="com/google/android/exoplayer2/ui/StyledPlayerView.ControllerVisibilityListener.html" title="interface in com.google.android.exoplayer2.ui"><code>StyledPlayerView.ControllerVisibilityListener</code></a> via <a href="com/google/android/exoplayer2/ui/StyledPlayerView.html#setControllerVisibilityListener(com.google.android.exoplayer2.ui.StyledPlayerView.ControllerVisibilityListener)"><code>StyledPlayerView.setControllerVisibilityListener(StyledPlayerView.ControllerVisibilityListener)</code></a>
instead.</div>
</th>
</tr>
<tr id="i1070" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerView.html" title="class in com.google.android.exoplayer2.ui">StyledPlayerView</a></td>
<th class="colLast" scope="row">
<div class="block">A high level view for <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> media playbacks.</div>
</th>
</tr>
<tr id="i1071" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerView.ControllerVisibilityListener.html" title="interface in com.google.android.exoplayer2.ui">StyledPlayerView.ControllerVisibilityListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener to be notified about changes of the visibility of the UI controls.</div>
</th>
</tr>
<tr id="i1072" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerView.FullscreenButtonClickListener.html" title="interface in com.google.android.exoplayer2.ui">StyledPlayerView.FullscreenButtonClickListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener invoked when the fullscreen button is clicked.</div>
</th>
</tr>
<tr id="i1073" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/StyledPlayerView.ShowBuffering.html" title="annotation in com.google.android.exoplayer2.ui">StyledPlayerView.ShowBuffering</a></td>
<th class="colLast" scope="row">
<div class="block">Determines when the buffering view is shown.</div>
</th>
</tr>
<tr id="i1074" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/subrip/SubripDecoder.html" title="class in com.google.android.exoplayer2.text.subrip">SubripDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for SubRip.</div>
</th>
</tr>
<tr id="i1075" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/Subtitle.html" title="interface in com.google.android.exoplayer2.text">Subtitle</a></td>
<th class="colLast" scope="row">
<div class="block">A subtitle consisting of timed <a href="com/google/android/exoplayer2/text/Cue.html" title="class in com.google.android.exoplayer2.text"><code>Cue</code></a>s.</div>
</th>
</tr>
<tr id="i1076" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/SubtitleDecoder.html" title="interface in com.google.android.exoplayer2.text">SubtitleDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Decodes <a href="com/google/android/exoplayer2/text/Subtitle.html" title="interface in com.google.android.exoplayer2.text"><code>Subtitle</code></a>s from <a href="com/google/android/exoplayer2/text/SubtitleInputBuffer.html" title="class in com.google.android.exoplayer2.text"><code>SubtitleInputBuffer</code></a>s.</div>
</th>
</tr>
<tr id="i1077" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/SubtitleDecoderException.html" title="class in com.google.android.exoplayer2.text">SubtitleDecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error occurs decoding subtitle data.</div>
</th>
</tr>
<tr id="i1078" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/SubtitleDecoderFactory.html" title="interface in com.google.android.exoplayer2.text">SubtitleDecoderFactory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/text/SubtitleDecoder.html" title="interface in com.google.android.exoplayer2.text"><code>SubtitleDecoder</code></a> instances.</div>
</th>
</tr>
<tr id="i1079" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/SubtitleExtractor.html" title="class in com.google.android.exoplayer2.text">SubtitleExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Generic extractor for extracting subtitles from various subtitle formats.</div>
</th>
</tr>
<tr id="i1080" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/SubtitleInputBuffer.html" title="class in com.google.android.exoplayer2.text">SubtitleInputBuffer</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/decoder/DecoderInputBuffer.html" title="class in com.google.android.exoplayer2.decoder"><code>DecoderInputBuffer</code></a> for a <a href="com/google/android/exoplayer2/text/SubtitleDecoder.html" title="interface in com.google.android.exoplayer2.text"><code>SubtitleDecoder</code></a>.</div>
</th>
</tr>
<tr id="i1081" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/SubtitleOutputBuffer.html" title="class in com.google.android.exoplayer2.text">SubtitleOutputBuffer</a></td>
<th class="colLast" scope="row">
<div class="block">Base class for <a href="com/google/android/exoplayer2/text/SubtitleDecoder.html" title="interface in com.google.android.exoplayer2.text"><code>SubtitleDecoder</code></a> output buffers.</div>
</th>
</tr>
<tr id="i1082" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/SubtitleView.html" title="class in com.google.android.exoplayer2.ui">SubtitleView</a></td>
<th class="colLast" scope="row">
<div class="block">A view for displaying subtitle <a href="com/google/android/exoplayer2/text/Cue.html" title="class in com.google.android.exoplayer2.text"><code>Cue</code></a>s.</div>
</th>
</tr>
<tr id="i1083" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/SubtitleView.ViewType.html" title="annotation in com.google.android.exoplayer2.ui">SubtitleView.ViewType</a></td>
<th class="colLast" scope="row">
<div class="block">The type of <a href="https://developer.android.com/reference/android/view/View.html" title="class or interface in android.view" class="externalLink" target="_top"><code>View</code></a> to use to display subtitles.</div>
</th>
</tr>
<tr id="i1084" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.html" title="class in com.google.android.exoplayer2.mediacodec">SynchronousMediaCodecAdapter</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/mediacodec/MediaCodecAdapter.html" title="interface in com.google.android.exoplayer2.mediacodec"><code>MediaCodecAdapter</code></a> that operates the underlying <a href="https://developer.android.com/reference/android/media/MediaCodec.html" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodec</code></a> in synchronous mode.</div>
</th>
</tr>
<tr id="i1085" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.Factory.html" title="class in com.google.android.exoplayer2.mediacodec">SynchronousMediaCodecAdapter.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">A factory for <a href="com/google/android/exoplayer2/mediacodec/SynchronousMediaCodecAdapter.html" title="class in com.google.android.exoplayer2.mediacodec"><code>SynchronousMediaCodecAdapter</code></a> instances.</div>
</th>
</tr>
<tr id="i1086" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/SystemClock.html" title="class in com.google.android.exoplayer2.util">SystemClock</a></td>
<th class="colLast" scope="row">
<div class="block">The standard implementation of <a href="com/google/android/exoplayer2/util/Clock.html" title="interface in com.google.android.exoplayer2.util"><code>Clock</code></a>, an instance of which is available via <a href="com/google/android/exoplayer2/util/Clock.html#DEFAULT"><code>Clock.DEFAULT</code></a>.</div>
</th>
</tr>
<tr id="i1087" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/TeeAudioProcessor.html" title="class in com.google.android.exoplayer2.audio">TeeAudioProcessor</a></td>
<th class="colLast" scope="row">
<div class="block">Audio processor that outputs its input unmodified and also outputs its input to a given sink.</div>
</th>
</tr>
<tr id="i1088" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/TeeAudioProcessor.AudioBufferSink.html" title="interface in com.google.android.exoplayer2.audio">TeeAudioProcessor.AudioBufferSink</a></td>
<th class="colLast" scope="row">
<div class="block">A sink for audio buffers handled by the audio processor.</div>
</th>
</tr>
<tr id="i1089" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/TeeAudioProcessor.WavFileAudioBufferSink.html" title="class in com.google.android.exoplayer2.audio">TeeAudioProcessor.WavFileAudioBufferSink</a></td>
<th class="colLast" scope="row">
<div class="block">A sink for audio buffers that writes output audio as .wav files with a given path prefix.</div>
</th>
</tr>
<tr id="i1090" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/TeeDataSource.html" title="class in com.google.android.exoplayer2.upstream">TeeDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">Tees data into a <a href="com/google/android/exoplayer2/upstream/DataSink.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSink</code></a> as the data is read.</div>
</th>
</tr>
<tr id="i1091" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/robolectric/TestDownloadManagerListener.html" title="class in com.google.android.exoplayer2.robolectric">TestDownloadManagerListener</a></td>
<th class="colLast" scope="row">
<div class="block">Allows tests to block for, and assert properties of, calls from a <a href="com/google/android/exoplayer2/offline/DownloadManager.html" title="class in com.google.android.exoplayer2.offline"><code>DownloadManager</code></a> to its
<a href="com/google/android/exoplayer2/offline/DownloadManager.Listener.html" title="interface in com.google.android.exoplayer2.offline"><code>DownloadManager.Listener</code></a>.</div>
</th>
</tr>
<tr id="i1092" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/TestExoPlayerBuilder.html" title="class in com.google.android.exoplayer2.testutil">TestExoPlayerBuilder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder of <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instances for testing.</div>
</th>
</tr>
<tr id="i1093" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/robolectric/TestPlayerRunHelper.html" title="class in com.google.android.exoplayer2.robolectric">TestPlayerRunHelper</a></td>
<th class="colLast" scope="row">
<div class="block">Helper methods to block the calling thread until the provided <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> instance reaches
a particular state.</div>
</th>
</tr>
<tr id="i1094" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/TestUtil.html" title="class in com.google.android.exoplayer2.testutil">TestUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for tests.</div>
</th>
</tr>
<tr id="i1095" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/TextAnnotation.html" title="class in com.google.android.exoplayer2.text.span">TextAnnotation</a></td>
<th class="colLast" scope="row">
<div class="block">Properties of a text annotation (i.e.</div>
</th>
</tr>
<tr id="i1096" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/TextAnnotation.Position.html" title="annotation in com.google.android.exoplayer2.text.span">TextAnnotation.Position</a></td>
<th class="colLast" scope="row">
<div class="block">The possible positions of the annotation text relative to the base text.</div>
</th>
</tr>
<tr id="i1097" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/TextEmphasisSpan.html" title="class in com.google.android.exoplayer2.text.span">TextEmphasisSpan</a></td>
<th class="colLast" scope="row">
<div class="block">A styling span for text emphasis marks.</div>
</th>
</tr>
<tr id="i1098" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/TextEmphasisSpan.MarkFill.html" title="annotation in com.google.android.exoplayer2.text.span">TextEmphasisSpan.MarkFill</a></td>
<th class="colLast" scope="row">
<div class="block">The possible mark fills that can be used.</div>
</th>
</tr>
<tr id="i1099" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/span/TextEmphasisSpan.MarkShape.html" title="annotation in com.google.android.exoplayer2.text.span">TextEmphasisSpan.MarkShape</a></td>
<th class="colLast" scope="row">
<div class="block">The possible mark shapes that can be used.</div>
</th>
</tr>
<tr id="i1100" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/TextInformationFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">TextInformationFrame</a></td>
<th class="colLast" scope="row">
<div class="block">Text information ID3 frame.</div>
</th>
</tr>
<tr id="i1101" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/TextOutput.html" title="interface in com.google.android.exoplayer2.text">TextOutput</a></td>
<th class="colLast" scope="row">
<div class="block">Receives text output.</div>
</th>
</tr>
<tr id="i1102" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/TextRenderer.html" title="class in com.google.android.exoplayer2.text">TextRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">A renderer for text.</div>
</th>
</tr>
<tr id="i1103" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ThumbRating.html" title="class in com.google.android.exoplayer2">ThumbRating</a></td>
<th class="colLast" scope="row">
<div class="block">A rating expressed as "thumbs up" or "thumbs down".</div>
</th>
</tr>
<tr id="i1104" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/TimeBar.html" title="interface in com.google.android.exoplayer2.ui">TimeBar</a></td>
<th class="colLast" scope="row">
<div class="block">Interface for time bar views that can display a playback position, buffered position, duration
and ad markers, and that have a listener for scrubbing (seeking) events.</div>
</th>
</tr>
<tr id="i1105" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/TimeBar.OnScrubListener.html" title="interface in com.google.android.exoplayer2.ui">TimeBar.OnScrubListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for scrubbing events.</div>
</th>
</tr>
<tr id="i1106" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/TimedValueQueue.html" title="class in com.google.android.exoplayer2.util">TimedValueQueue</a>&lt;<a href="com/google/android/exoplayer2/util/TimedValueQueue.html" title="type parameter in TimedValueQueue">V</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">A utility class to keep a queue of values with timestamps.</div>
</th>
</tr>
<tr id="i1107" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2">Timeline</a></td>
<th class="colLast" scope="row">
<div class="block">A flexible representation of the structure of media.</div>
</th>
</tr>
<tr id="i1108" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Timeline.Period.html" title="class in com.google.android.exoplayer2">Timeline.Period</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about a period in a <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>.</div>
</th>
</tr>
<tr id="i1109" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Timeline.RemotableTimeline.html" title="class in com.google.android.exoplayer2">Timeline.RemotableTimeline</a></td>
<th class="colLast" scope="row">
<div class="block">A concrete class of <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> to restore a <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> instance from a <a href="https://developer.android.com/reference/android/os/Bundle.html" title="class or interface in android.os" class="externalLink"><code>Bundle</code></a> sent by another process via <a href="https://developer.android.com/reference/android/os/IBinder.html?is-external=true" title="class or interface in android.os" class="externalLink" target="_top"><code>IBinder</code></a>.</div>
</th>
</tr>
<tr id="i1110" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Timeline.Window.html" title="class in com.google.android.exoplayer2">Timeline.Window</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about a window in a <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>.</div>
</th>
</tr>
<tr id="i1111" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/TimelineAsserts.html" title="class in com.google.android.exoplayer2.testutil">TimelineAsserts</a></td>
<th class="colLast" scope="row">
<div class="block">Assertion methods for <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a>.</div>
</th>
</tr>
<tr id="i1112" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/TimelineQueueEditor.html" title="class in com.google.android.exoplayer2.ext.mediasession">TimelineQueueEditor</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.QueueEditor.html" title="interface in com.google.android.exoplayer2.ext.mediasession"><code>MediaSessionConnector.QueueEditor</code></a> implementation.</div>
</th>
</tr>
<tr id="i1113" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/TimelineQueueEditor.MediaDescriptionConverter.html" title="interface in com.google.android.exoplayer2.ext.mediasession">TimelineQueueEditor.MediaDescriptionConverter</a></td>
<th class="colLast" scope="row">
<div class="block">Converts a <code>MediaDescriptionCompat</code> to a <a href="com/google/android/exoplayer2/MediaItem.html" title="class in com.google.android.exoplayer2"><code>MediaItem</code></a>.</div>
</th>
</tr>
<tr id="i1114" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/TimelineQueueEditor.MediaIdEqualityChecker.html" title="class in com.google.android.exoplayer2.ext.mediasession">TimelineQueueEditor.MediaIdEqualityChecker</a></td>
<th class="colLast" scope="row">
<div class="block">Media description comparator comparing the media IDs.</div>
</th>
</tr>
<tr id="i1115" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/TimelineQueueEditor.QueueDataAdapter.html" title="interface in com.google.android.exoplayer2.ext.mediasession">TimelineQueueEditor.QueueDataAdapter</a></td>
<th class="colLast" scope="row">
<div class="block">Adapter to get <code>MediaDescriptionCompat</code> of items in the queue and to notify the
application about changes in the queue to sync the data structure backing the <a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.html" title="class in com.google.android.exoplayer2.ext.mediasession"><code>MediaSessionConnector</code></a>.</div>
</th>
</tr>
<tr id="i1116" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/mediasession/TimelineQueueNavigator.html" title="class in com.google.android.exoplayer2.ext.mediasession">TimelineQueueNavigator</a></td>
<th class="colLast" scope="row">
<div class="block">An abstract implementation of the <a href="com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.QueueNavigator.html" title="interface in com.google.android.exoplayer2.ext.mediasession"><code>MediaSessionConnector.QueueNavigator</code></a> that maps the
windows of a <a href="com/google/android/exoplayer2/Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a>'s <a href="com/google/android/exoplayer2/Timeline.html" title="class in com.google.android.exoplayer2"><code>Timeline</code></a> to the media session queue.</div>
</th>
</tr>
<tr id="i1117" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/scte35/TimeSignalCommand.html" title="class in com.google.android.exoplayer2.metadata.scte35">TimeSignalCommand</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a time signal command as defined in SCTE35, Section 9.3.4.</div>
</th>
</tr>
<tr id="i1118" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/TimestampAdjuster.html" title="class in com.google.android.exoplayer2.util">TimestampAdjuster</a></td>
<th class="colLast" scope="row">
<div class="block">Adjusts and offsets sample timestamps.</div>
</th>
</tr>
<tr id="i1119" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/TimestampAdjusterProvider.html" title="class in com.google.android.exoplayer2.source.hls">TimestampAdjusterProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provides <a href="com/google/android/exoplayer2/util/TimestampAdjuster.html" title="class in com.google.android.exoplayer2.util"><code>TimestampAdjuster</code></a> instances for use during HLS playbacks.</div>
</th>
</tr>
<tr id="i1120" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/TimeToFirstByteEstimator.html" title="interface in com.google.android.exoplayer2.upstream">TimeToFirstByteEstimator</a></td>
<th class="colLast" scope="row">
<div class="block">Provides an estimate of the time to first byte of a transfer.</div>
</th>
</tr>
<tr id="i1121" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/TraceUtil.html" title="class in com.google.android.exoplayer2.util">TraceUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Calls through to <a href="https://developer.android.com/reference/android/os/Trace.html" title="class or interface in android.os" class="externalLink" target="_top"><code>Trace</code></a> methods on supported API levels.</div>
</th>
</tr>
<tr id="i1122" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/Track.html" title="class in com.google.android.exoplayer2.extractor.mp4">Track</a></td>
<th class="colLast" scope="row">
<div class="block">Encapsulates information describing an MP4 track.</div>
</th>
</tr>
<tr id="i1123" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/Track.Transformation.html" title="annotation in com.google.android.exoplayer2.extractor.mp4">Track.Transformation</a></td>
<th class="colLast" scope="row">
<div class="block">The transformation to apply to samples in the track, if any.</div>
</th>
</tr>
<tr id="i1124" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/mp4/TrackEncryptionBox.html" title="class in com.google.android.exoplayer2.extractor.mp4">TrackEncryptionBox</a></td>
<th class="colLast" scope="row">
<div class="block">Encapsulates information parsed from a track encryption (tenc) box or sample group description
(sgpd) box in an MP4 stream.</div>
</th>
</tr>
<tr id="i1125" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source">TrackGroup</a></td>
<th class="colLast" scope="row">
<div class="block">An immutable group of tracks available within a media stream.</div>
</th>
</tr>
<tr id="i1126" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/TrackGroupArray.html" title="class in com.google.android.exoplayer2.source">TrackGroupArray</a></td>
<th class="colLast" scope="row">
<div class="block">An immutable array of <a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroup</code></a>s.</div>
</th>
</tr>
<tr id="i1127" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/TrackNameProvider.html" title="interface in com.google.android.exoplayer2.ui">TrackNameProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Converts <a href="com/google/android/exoplayer2/Format.html" title="class in com.google.android.exoplayer2"><code>Format</code></a>s to user readable track names.</div>
</th>
</tr>
<tr id="i1128" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/TrackOutput.html" title="interface in com.google.android.exoplayer2.extractor">TrackOutput</a></td>
<th class="colLast" scope="row">
<div class="block">Receives track level data extracted by an <a href="com/google/android/exoplayer2/extractor/Extractor.html" title="interface in com.google.android.exoplayer2.extractor"><code>Extractor</code></a>.</div>
</th>
</tr>
<tr id="i1129" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/TrackOutput.CryptoData.html" title="class in com.google.android.exoplayer2.extractor">TrackOutput.CryptoData</a></td>
<th class="colLast" scope="row">
<div class="block">Holds data required to decrypt a sample.</div>
</th>
</tr>
<tr id="i1130" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/TrackOutput.SampleDataPart.html" title="annotation in com.google.android.exoplayer2.extractor">TrackOutput.SampleDataPart</a></td>
<th class="colLast" scope="row">
<div class="block">Defines the part of the sample data to which a call to <a href="com/google/android/exoplayer2/extractor/TrackOutput.html#sampleData(com.google.android.exoplayer2.upstream.DataReader,int,boolean)"><code>TrackOutput.sampleData(com.google.android.exoplayer2.upstream.DataReader, int, boolean)</code></a> corresponds.</div>
</th>
</tr>
<tr id="i1131" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Tracks.html" title="class in com.google.android.exoplayer2">Tracks</a></td>
<th class="colLast" scope="row">
<div class="block">Information about groups of tracks.</div>
</th>
</tr>
<tr id="i1132" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/Tracks.Group.html" title="class in com.google.android.exoplayer2">Tracks.Group</a></td>
<th class="colLast" scope="row">
<div class="block">Information about a single group of tracks, including the underlying <a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroup</code></a>, the
level to which each track is supported by the player, and whether any of the tracks are
selected.</div>
</th>
</tr>
<tr id="i1133" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection">TrackSelection</a></td>
<th class="colLast" scope="row">
<div class="block">A track selection consisting of a static subset of selected tracks belonging to a <a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroup</code></a>.</div>
</th>
</tr>
<tr id="i1134" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelection.Type.html" title="annotation in com.google.android.exoplayer2.trackselection">TrackSelection.Type</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a type track selection.</div>
</th>
</tr>
<tr id="i1135" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelectionArray.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionArray</a></td>
<th class="colLast" scope="row">
<div class="block">An array of <a href="com/google/android/exoplayer2/trackselection/TrackSelection.html" title="interface in com.google.android.exoplayer2.trackselection"><code>TrackSelection</code></a>s.</div>
</th>
</tr>
<tr id="i1136" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/TrackSelectionDialogBuilder.html" title="class in com.google.android.exoplayer2.ui">TrackSelectionDialogBuilder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for a dialog with a <a href="com/google/android/exoplayer2/ui/TrackSelectionView.html" title="class in com.google.android.exoplayer2.ui"><code>TrackSelectionView</code></a>.</div>
</th>
</tr>
<tr id="i1137" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/TrackSelectionDialogBuilder.DialogCallback.html" title="interface in com.google.android.exoplayer2.ui">TrackSelectionDialogBuilder.DialogCallback</a></td>
<th class="colLast" scope="row">
<div class="block">Callback which is invoked when a track selection has been made.</div>
</th>
</tr>
<tr id="i1138" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelectionOverride.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionOverride</a></td>
<th class="colLast" scope="row">
<div class="block">A track selection override, consisting of a <a href="com/google/android/exoplayer2/source/TrackGroup.html" title="class in com.google.android.exoplayer2.source"><code>TrackGroup</code></a> and the indices of the tracks
within the group that should be selected.</div>
</th>
</tr>
<tr id="i1139" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters</a></td>
<th class="colLast" scope="row">
<div class="block">Parameters for controlling track selection.</div>
</th>
</tr>
<tr id="i1140" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelectionParameters.Builder.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionParameters.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/trackselection/TrackSelectionParameters.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelectionParameters</code></a>.</div>
</th>
</tr>
<tr id="i1141" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelectionUtil.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectionUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Track selection related utility methods.</div>
</th>
</tr>
<tr id="i1142" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelectionUtil.AdaptiveTrackSelectionFactory.html" title="interface in com.google.android.exoplayer2.trackselection">TrackSelectionUtil.AdaptiveTrackSelectionFactory</a></td>
<th class="colLast" scope="row">
<div class="block">Functional interface to create a single adaptive track selection.</div>
</th>
</tr>
<tr id="i1143" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/TrackSelectionView.html" title="class in com.google.android.exoplayer2.ui">TrackSelectionView</a></td>
<th class="colLast" scope="row">
<div class="block">A view for making track selections.</div>
</th>
</tr>
<tr id="i1144" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ui/TrackSelectionView.TrackSelectionListener.html" title="interface in com.google.android.exoplayer2.ui">TrackSelectionView.TrackSelectionListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener for changes to the selected tracks.</div>
</th>
</tr>
<tr id="i1145" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelector</a></td>
<th class="colLast" scope="row">
<div class="block">The component of an <a href="com/google/android/exoplayer2/ExoPlayer.html" title="interface in com.google.android.exoplayer2"><code>ExoPlayer</code></a> responsible for selecting tracks to be consumed by each of
the player's <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a>s.</div>
</th>
</tr>
<tr id="i1146" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelector.InvalidationListener.html" title="interface in com.google.android.exoplayer2.trackselection">TrackSelector.InvalidationListener</a></td>
<th class="colLast" scope="row">
<div class="block">Notified when selections previously made by a <a href="com/google/android/exoplayer2/trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a> are no longer valid.</div>
</th>
</tr>
<tr id="i1147" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/trackselection/TrackSelectorResult.html" title="class in com.google.android.exoplayer2.trackselection">TrackSelectorResult</a></td>
<th class="colLast" scope="row">
<div class="block">The result of a <a href="com/google/android/exoplayer2/trackselection/TrackSelector.html" title="class in com.google.android.exoplayer2.trackselection"><code>TrackSelector</code></a> operation.</div>
</th>
</tr>
<tr id="i1148" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/TransferListener.html" title="interface in com.google.android.exoplayer2.upstream">TransferListener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener of data transfer events.</div>
</th>
</tr>
<tr id="i1149" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/TransformationException.html" title="class in com.google.android.exoplayer2.transformer">TransformationException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a non-locally recoverable transformation failure occurs.</div>
</th>
</tr>
<tr id="i1150" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/TransformationException.ErrorCode.html" title="annotation in com.google.android.exoplayer2.transformer">TransformationException.ErrorCode</a></td>
<th class="colLast" scope="row">
<div class="block">Codes that identify causes of <a href="com/google/android/exoplayer2/transformer/Transformer.html" title="class in com.google.android.exoplayer2.transformer"><code>Transformer</code></a> errors.</div>
</th>
</tr>
<tr id="i1151" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/TransformationRequest.html" title="class in com.google.android.exoplayer2.transformer">TransformationRequest</a></td>
<th class="colLast" scope="row">
<div class="block">A media transformation request.</div>
</th>
</tr>
<tr id="i1152" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/TransformationRequest.Builder.html" title="class in com.google.android.exoplayer2.transformer">TransformationRequest.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/transformer/TransformationRequest.html" title="class in com.google.android.exoplayer2.transformer"><code>TransformationRequest</code></a> instances.</div>
</th>
</tr>
<tr id="i1153" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/TransformationResult.html" title="class in com.google.android.exoplayer2.transformer">TransformationResult</a></td>
<th class="colLast" scope="row">
<div class="block">Information about the result of a successful transformation.</div>
</th>
</tr>
<tr id="i1154" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/TransformationResult.Builder.html" title="class in com.google.android.exoplayer2.transformer">TransformationResult.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/transformer/TransformationResult.html" title="class in com.google.android.exoplayer2.transformer"><code>TransformationResult</code></a> instances.</div>
</th>
</tr>
<tr id="i1155" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Transformer.html" title="class in com.google.android.exoplayer2.transformer">Transformer</a></td>
<th class="colLast" scope="row">
<div class="block">A transformer to transform media inputs.</div>
</th>
</tr>
<tr id="i1156" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Transformer.Builder.html" title="class in com.google.android.exoplayer2.transformer">Transformer.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">A builder for <a href="com/google/android/exoplayer2/transformer/Transformer.html" title="class in com.google.android.exoplayer2.transformer"><code>Transformer</code></a> instances.</div>
</th>
</tr>
<tr id="i1157" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Transformer.DebugViewProvider.html" title="interface in com.google.android.exoplayer2.transformer">Transformer.DebugViewProvider</a></td>
<th class="colLast" scope="row">
<div class="block">Provider for views to show diagnostic information during transformation, for debugging.</div>
</th>
</tr>
<tr id="i1158" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Transformer.Listener.html" title="interface in com.google.android.exoplayer2.transformer">Transformer.Listener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for the transformation events.</div>
</th>
</tr>
<tr id="i1159" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/Transformer.ProgressState.html" title="annotation in com.google.android.exoplayer2.transformer">Transformer.ProgressState</a></td>
<th class="colLast" scope="row">
<div class="block">Progress state.</div>
</th>
</tr>
<tr id="i1160" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/TrueHdSampleRechunker.html" title="class in com.google.android.exoplayer2.extractor">TrueHdSampleRechunker</a></td>
<th class="colLast" scope="row">
<div class="block">Rechunks TrueHD sample data into groups of <a href="com/google/android/exoplayer2/audio/Ac3Util.html#TRUEHD_RECHUNK_SAMPLE_COUNT"><code>Ac3Util.TRUEHD_RECHUNK_SAMPLE_COUNT</code></a> samples.</div>
</th>
</tr>
<tr id="i1161" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsExtractor.html" title="class in com.google.android.exoplayer2.extractor.ts">TsExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from the MPEG-2 TS container format.</div>
</th>
</tr>
<tr id="i1162" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsExtractor.Mode.html" title="annotation in com.google.android.exoplayer2.extractor.ts">TsExtractor.Mode</a></td>
<th class="colLast" scope="row">
<div class="block">Modes for the extractor.</div>
</th>
</tr>
<tr id="i1163" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.html" title="interface in com.google.android.exoplayer2.extractor.ts">TsPayloadReader</a></td>
<th class="colLast" scope="row">
<div class="block">Parses TS packet payload data.</div>
</th>
</tr>
<tr id="i1164" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.DvbSubtitleInfo.html" title="class in com.google.android.exoplayer2.extractor.ts">TsPayloadReader.DvbSubtitleInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information about a DVB subtitle, as defined in ETSI EN 300 468 V1.11.1 section 6.2.41.</div>
</th>
</tr>
<tr id="i1165" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.EsInfo.html" title="class in com.google.android.exoplayer2.extractor.ts">TsPayloadReader.EsInfo</a></td>
<th class="colLast" scope="row">
<div class="block">Holds information associated with a PMT entry.</div>
</th>
</tr>
<tr id="i1166" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.Factory.html" title="interface in com.google.android.exoplayer2.extractor.ts">TsPayloadReader.Factory</a></td>
<th class="colLast" scope="row">
<div class="block">Factory of <a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.html" title="interface in com.google.android.exoplayer2.extractor.ts"><code>TsPayloadReader</code></a> instances.</div>
</th>
</tr>
<tr id="i1167" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.Flags.html" title="annotation in com.google.android.exoplayer2.extractor.ts">TsPayloadReader.Flags</a></td>
<th class="colLast" scope="row">
<div class="block">Contextual flags indicating the presence of indicators in the TS packet or PES packet headers.</div>
</th>
</tr>
<tr id="i1168" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.TrackIdGenerator.html" title="class in com.google.android.exoplayer2.extractor.ts">TsPayloadReader.TrackIdGenerator</a></td>
<th class="colLast" scope="row">
<div class="block">Generates track ids for initializing <a href="com/google/android/exoplayer2/extractor/ts/TsPayloadReader.html" title="interface in com.google.android.exoplayer2.extractor.ts"><code>TsPayloadReader</code></a>s' <a href="com/google/android/exoplayer2/extractor/TrackOutput.html" title="interface in com.google.android.exoplayer2.extractor"><code>TrackOutput</code></a>s.</div>
</th>
</tr>
<tr id="i1169" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/ts/TsUtil.html" title="class in com.google.android.exoplayer2.extractor.ts">TsUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utilities method for extracting MPEG-TS streams.</div>
</th>
</tr>
<tr id="i1170" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/ttml/TtmlDecoder.html" title="class in com.google.android.exoplayer2.text.ttml">TtmlDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for TTML supporting the DFXP presentation profile.</div>
</th>
</tr>
<tr id="i1171" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/tx3g/Tx3gDecoder.html" title="class in com.google.android.exoplayer2.text.tx3g">Tx3gDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for tx3g.</div>
</th>
</tr>
<tr id="i1172" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/UdpDataSource.html" title="class in com.google.android.exoplayer2.upstream">UdpDataSource</a></td>
<th class="colLast" scope="row">
<div class="block">A UDP <a href="com/google/android/exoplayer2/upstream/DataSource.html" title="interface in com.google.android.exoplayer2.upstream"><code>DataSource</code></a>.</div>
</th>
</tr>
<tr id="i1173" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/upstream/UdpDataSource.UdpDataSourceException.html" title="class in com.google.android.exoplayer2.upstream">UdpDataSource.UdpDataSourceException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when an error is encountered when trying to read from a <a href="com/google/android/exoplayer2/upstream/UdpDataSource.html" title="class in com.google.android.exoplayer2.upstream"><code>UdpDataSource</code></a>.</div>
</th>
</tr>
<tr id="i1174" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/UnknownNull.html" title="annotation in com.google.android.exoplayer2.util">UnknownNull</a></td>
<th class="colLast" scope="row">
<div class="block">Annotation for specifying unknown nullness.</div>
</th>
</tr>
<tr id="i1175" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/UnrecognizedInputFormatException.html" title="class in com.google.android.exoplayer2.source">UnrecognizedInputFormatException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown if the input format was not recognized.</div>
</th>
</tr>
<tr id="i1176" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/UnsupportedDrmException.html" title="class in com.google.android.exoplayer2.drm">UnsupportedDrmException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when the requested DRM scheme is not supported.</div>
</th>
</tr>
<tr id="i1177" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/UnsupportedDrmException.Reason.html" title="annotation in com.google.android.exoplayer2.drm">UnsupportedDrmException.Reason</a></td>
<th class="colLast" scope="row">
<div class="block">The reason for the exception.</div>
</th>
</tr>
<tr id="i1178" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/UriUtil.html" title="class in com.google.android.exoplayer2.util">UriUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for manipulating URIs.</div>
</th>
</tr>
<tr id="i1179" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/id3/UrlLinkFrame.html" title="class in com.google.android.exoplayer2.metadata.id3">UrlLinkFrame</a></td>
<th class="colLast" scope="row">
<div class="block">Url link ID3 frame.</div>
</th>
</tr>
<tr id="i1180" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/UrlTemplate.html" title="class in com.google.android.exoplayer2.source.dash.manifest">UrlTemplate</a></td>
<th class="colLast" scope="row">
<div class="block">A template from which URLs can be built.</div>
</th>
</tr>
<tr id="i1181" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/dash/manifest/UtcTimingElement.html" title="class in com.google.android.exoplayer2.source.dash.manifest">UtcTimingElement</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a UTCTiming element.</div>
</th>
</tr>
<tr id="i1182" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/Util.html" title="class in com.google.android.exoplayer2.util">Util</a></td>
<th class="colLast" scope="row">
<div class="block">Miscellaneous utility methods.</div>
</th>
</tr>
<tr id="i1183" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/database/VersionTable.html" title="class in com.google.android.exoplayer2.database">VersionTable</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for accessing versions of media library database components.</div>
</th>
</tr>
<tr id="i1184" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/VideoDecoderGLSurfaceView.html" title="class in com.google.android.exoplayer2.video">VideoDecoderGLSurfaceView</a></td>
<th class="colLast" scope="row">
<div class="block">GLSurfaceView implementing <a href="com/google/android/exoplayer2/video/VideoDecoderOutputBufferRenderer.html" title="interface in com.google.android.exoplayer2.video"><code>VideoDecoderOutputBufferRenderer</code></a> for rendering <a href="com/google/android/exoplayer2/decoder/VideoDecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder"><code>VideoDecoderOutputBuffers</code></a>.</div>
</th>
</tr>
<tr id="i1185" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/decoder/VideoDecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder">VideoDecoderOutputBuffer</a></td>
<th class="colLast" scope="row">
<div class="block">Video decoder output buffer containing video frame data.</div>
</th>
</tr>
<tr id="i1186" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/VideoDecoderOutputBufferRenderer.html" title="interface in com.google.android.exoplayer2.video">VideoDecoderOutputBufferRenderer</a></td>
<th class="colLast" scope="row">
<div class="block">Renders the <a href="com/google/android/exoplayer2/decoder/VideoDecoderOutputBuffer.html" title="class in com.google.android.exoplayer2.decoder"><code>VideoDecoderOutputBuffer</code></a>.</div>
</th>
</tr>
<tr id="i1187" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/VideoEncoderSettings.html" title="class in com.google.android.exoplayer2.transformer">VideoEncoderSettings</a></td>
<th class="colLast" scope="row">
<div class="block">Represents the video encoder settings.</div>
</th>
</tr>
<tr id="i1188" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/VideoEncoderSettings.BitrateMode.html" title="annotation in com.google.android.exoplayer2.transformer">VideoEncoderSettings.BitrateMode</a></td>
<th class="colLast" scope="row">
<div class="block">The allowed values for <code>bitrateMode</code>, one of
Constant quality: <a href="https://developer.android.com/reference/android/media/MediaCodecInfo.EncoderCapabilities.html#BITRATE_MODE_CQ" title="class or interface in android.media" class="externalLink" target="_top"><code>MediaCodecInfo.EncoderCapabilities.BITRATE_MODE_CQ</code></a>.</div>
</th>
</tr>
<tr id="i1189" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/transformer/VideoEncoderSettings.Builder.html" title="class in com.google.android.exoplayer2.transformer">VideoEncoderSettings.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builds <a href="com/google/android/exoplayer2/transformer/VideoEncoderSettings.html" title="class in com.google.android.exoplayer2.transformer"><code>VideoEncoderSettings</code></a> instances.</div>
</th>
</tr>
<tr id="i1190" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/VideoFrameMetadataListener.html" title="interface in com.google.android.exoplayer2.video">VideoFrameMetadataListener</a></td>
<th class="colLast" scope="row">
<div class="block">A listener for metadata corresponding to video frames being rendered.</div>
</th>
</tr>
<tr id="i1191" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/VideoFrameReleaseHelper.html" title="class in com.google.android.exoplayer2.video">VideoFrameReleaseHelper</a></td>
<th class="colLast" scope="row">
<div class="block">Helps a video <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> release frames to a <a href="https://developer.android.com/reference/android/view/Surface.html" title="class or interface in android.view" class="externalLink" target="_top"><code>Surface</code></a>.</div>
</th>
</tr>
<tr id="i1192" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/VideoRendererEventListener.html" title="interface in com.google.android.exoplayer2.video">VideoRendererEventListener</a></td>
<th class="colLast" scope="row">
<div class="block">Listener of video <a href="com/google/android/exoplayer2/Renderer.html" title="interface in com.google.android.exoplayer2"><code>Renderer</code></a> events.</div>
</th>
</tr>
<tr id="i1193" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/VideoRendererEventListener.EventDispatcher.html" title="class in com.google.android.exoplayer2.video">VideoRendererEventListener.EventDispatcher</a></td>
<th class="colLast" scope="row">
<div class="block">Dispatches events to a <a href="com/google/android/exoplayer2/video/VideoRendererEventListener.html" title="interface in com.google.android.exoplayer2.video"><code>VideoRendererEventListener</code></a>.</div>
</th>
</tr>
<tr id="i1194" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/video/VideoSize.html" title="class in com.google.android.exoplayer2.video">VideoSize</a></td>
<th class="colLast" scope="row">
<div class="block">Represents the video size.</div>
</th>
</tr>
<tr id="i1195" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/VorbisBitArray.html" title="class in com.google.android.exoplayer2.extractor">VorbisBitArray</a></td>
<th class="colLast" scope="row">
<div class="block">Wraps a byte array, providing methods that allow it to be read as a Vorbis bitstream.</div>
</th>
</tr>
<tr id="i1196" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/flac/VorbisComment.html" title="class in com.google.android.exoplayer2.metadata.flac">VorbisComment</a></td>
<th class="colLast" scope="row">Deprecated.
<div class="deprecationComment">Use <a href="com/google/android/exoplayer2/metadata/vorbis/VorbisComment.html" title="class in com.google.android.exoplayer2.metadata.vorbis"><code>VorbisComment</code></a> instead.</div>
</th>
</tr>
<tr id="i1197" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/metadata/vorbis/VorbisComment.html" title="class in com.google.android.exoplayer2.metadata.vorbis">VorbisComment</a></td>
<th class="colLast" scope="row">
<div class="block">A vorbis comment, extracted from a FLAC or Ogg file.</div>
</th>
</tr>
<tr id="i1198" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/VorbisUtil.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for parsing Vorbis streams.</div>
</th>
</tr>
<tr id="i1199" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/VorbisUtil.CommentHeader.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil.CommentHeader</a></td>
<th class="colLast" scope="row">
<div class="block">Vorbis comment header.</div>
</th>
</tr>
<tr id="i1200" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/VorbisUtil.Mode.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil.Mode</a></td>
<th class="colLast" scope="row">
<div class="block">Vorbis setup header modes.</div>
</th>
</tr>
<tr id="i1201" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/VorbisUtil.VorbisIdHeader.html" title="class in com.google.android.exoplayer2.extractor">VorbisUtil.VorbisIdHeader</a></td>
<th class="colLast" scope="row">
<div class="block">Vorbis identification header.</div>
</th>
</tr>
<tr id="i1202" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/vp9/VpxDecoder.html" title="class in com.google.android.exoplayer2.ext.vp9">VpxDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">Vpx decoder.</div>
</th>
</tr>
<tr id="i1203" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/vp9/VpxDecoderException.html" title="class in com.google.android.exoplayer2.ext.vp9">VpxDecoderException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when a libvpx decoder error occurs.</div>
</th>
</tr>
<tr id="i1204" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/vp9/VpxLibrary.html" title="class in com.google.android.exoplayer2.ext.vp9">VpxLibrary</a></td>
<th class="colLast" scope="row">
<div class="block">Configures and queries the underlying native library.</div>
</th>
</tr>
<tr id="i1205" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/extractor/wav/WavExtractor.html" title="class in com.google.android.exoplayer2.extractor.wav">WavExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">Extracts data from WAV byte streams.</div>
</th>
</tr>
<tr id="i1206" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/audio/WavUtil.html" title="class in com.google.android.exoplayer2.audio">WavUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utilities for handling WAVE files.</div>
</th>
</tr>
<tr id="i1207" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/WebServerDispatcher.html" title="class in com.google.android.exoplayer2.testutil">WebServerDispatcher</a></td>
<th class="colLast" scope="row">
<div class="block">A <code>Dispatcher</code> for <code>MockWebServer</code> that allows per-path
customisation of the static data served.</div>
</th>
</tr>
<tr id="i1208" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/WebServerDispatcher.Resource.html" title="class in com.google.android.exoplayer2.testutil">WebServerDispatcher.Resource</a></td>
<th class="colLast" scope="row">
<div class="block">A resource served by <a href="com/google/android/exoplayer2/testutil/WebServerDispatcher.html" title="class in com.google.android.exoplayer2.testutil"><code>WebServerDispatcher</code></a>.</div>
</th>
</tr>
<tr id="i1209" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/testutil/WebServerDispatcher.Resource.Builder.html" title="class in com.google.android.exoplayer2.testutil">WebServerDispatcher.Resource.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder for <a href="com/google/android/exoplayer2/testutil/WebServerDispatcher.Resource.html" title="class in com.google.android.exoplayer2.testutil"><code>WebServerDispatcher.Resource</code></a>.</div>
</th>
</tr>
<tr id="i1210" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.html" title="class in com.google.android.exoplayer2.text.webvtt">WebvttCssStyle</a></td>
<th class="colLast" scope="row">
<div class="block">Style object of a Css style block in a Webvtt file.</div>
</th>
</tr>
<tr id="i1211" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.FontSizeUnit.html" title="annotation in com.google.android.exoplayer2.text.webvtt">WebvttCssStyle.FontSizeUnit</a></td>
<th class="colLast" scope="row">
<div class="block">Font size unit enum.</div>
</th>
</tr>
<tr id="i1212" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.StyleFlags.html" title="annotation in com.google.android.exoplayer2.text.webvtt">WebvttCssStyle.StyleFlags</a></td>
<th class="colLast" scope="row">
<div class="block">Style flag enum.</div>
</th>
</tr>
<tr id="i1213" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/WebvttCueInfo.html" title="class in com.google.android.exoplayer2.text.webvtt">WebvttCueInfo</a></td>
<th class="colLast" scope="row">
<div class="block">A representation of a WebVTT cue.</div>
</th>
</tr>
<tr id="i1214" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/WebvttCueParser.html" title="class in com.google.android.exoplayer2.text.webvtt">WebvttCueParser</a></td>
<th class="colLast" scope="row">
<div class="block">Parser for WebVTT cues.</div>
</th>
</tr>
<tr id="i1215" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/WebvttDecoder.html" title="class in com.google.android.exoplayer2.text.webvtt">WebvttDecoder</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/text/SimpleSubtitleDecoder.html" title="class in com.google.android.exoplayer2.text"><code>SimpleSubtitleDecoder</code></a> for WebVTT.</div>
</th>
</tr>
<tr id="i1216" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/source/hls/WebvttExtractor.html" title="class in com.google.android.exoplayer2.source.hls">WebvttExtractor</a></td>
<th class="colLast" scope="row">
<div class="block">A special purpose extractor for WebVTT content in HLS.</div>
</th>
</tr>
<tr id="i1217" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/text/webvtt/WebvttParserUtil.html" title="class in com.google.android.exoplayer2.text.webvtt">WebvttParserUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for parsing WebVTT data.</div>
</th>
</tr>
<tr id="i1218" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/drm/WidevineUtil.html" title="class in com.google.android.exoplayer2.drm">WidevineUtil</a></td>
<th class="colLast" scope="row">
<div class="block">Utility methods for Widevine.</div>
</th>
</tr>
<tr id="i1219" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/workmanager/WorkManagerScheduler.html" title="class in com.google.android.exoplayer2.ext.workmanager">WorkManagerScheduler</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="com/google/android/exoplayer2/scheduler/Scheduler.html" title="interface in com.google.android.exoplayer2.scheduler"><code>Scheduler</code></a> that uses <code>WorkManager</code>.</div>
</th>
</tr>
<tr id="i1220" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/ext/workmanager/WorkManagerScheduler.SchedulerWorker.html" title="class in com.google.android.exoplayer2.ext.workmanager">WorkManagerScheduler.SchedulerWorker</a></td>
<th class="colLast" scope="row">
<div class="block">A <code>Worker</code> that starts the target service if the requirements are met.</div>
</th>
</tr>
<tr id="i1221" class="rowColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/offline/WritableDownloadIndex.html" title="interface in com.google.android.exoplayer2.offline">WritableDownloadIndex</a></td>
<th class="colLast" scope="row">
<div class="block">A writable index of <a href="com/google/android/exoplayer2/offline/Download.html" title="class in com.google.android.exoplayer2.offline"><code>Downloads</code></a>.</div>
</th>
</tr>
<tr id="i1222" class="altColor">
<td class="colFirst"><a href="com/google/android/exoplayer2/util/XmlPullParserUtil.html" title="class in com.google.android.exoplayer2.util">XmlPullParserUtil</a></td>
<th class="colLast" scope="row">
<div class="block"><a href="https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html" title="class or interface in org.xmlpull.v1" class="externalLink" target="_top"><code>XmlPullParser</code></a> utility methods.</div>
</th>
</tr>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>