media3/docs/doc/reference-v1/com/google/android/exoplayer/SampleSource.SampleSourceReader.html
2021-04-20 16:18:09 +01:00

529 lines
24 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_101) on Wed Dec 14 17:18:31 GMT 2016 -->
<title>SampleSource.SampleSourceReader (ExoPlayer library)</title>
<meta name="date" content="2016-12-14">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SampleSource.SampleSourceReader (ExoPlayer library)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-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">
<li><a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html" title="class in com.google.android.exoplayer"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/android/exoplayer/SampleSource.SampleSourceReader.html" target="_top">Frames</a></li>
<li><a href="SampleSource.SampleSourceReader.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.android.exoplayer</div>
<h2 title="Interface SampleSource.SampleSourceReader" class="title">Interface SampleSource.SampleSourceReader</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../com/google/android/exoplayer/chunk/ChunkSampleSource.html" title="class in com.google.android.exoplayer.chunk">ChunkSampleSource</a>, <a href="../../../../com/google/android/exoplayer/extractor/ExtractorSampleSource.html" title="class in com.google.android.exoplayer.extractor">ExtractorSampleSource</a>, <a href="../../../../com/google/android/exoplayer/FrameworkSampleSource.html" title="class in com.google.android.exoplayer">FrameworkSampleSource</a>, <a href="../../../../com/google/android/exoplayer/hls/HlsSampleSource.html" title="class in com.google.android.exoplayer.hls">HlsSampleSource</a>, <a href="../../../../com/google/android/exoplayer/SingleSampleSource.html" title="class in com.google.android.exoplayer">SingleSampleSource</a></dd>
</dl>
<dl>
<dt>Enclosing interface:</dt>
<dd><a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer">SampleSource</a></dd>
</dl>
<hr>
<br>
<pre>public static interface <span class="typeNameLabel">SampleSource.SampleSourceReader</span></pre>
<div class="block">An interface providing read access to a <a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer"><code>SampleSource</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#continueBuffering-int-long-">continueBuffering</a></span>(int&nbsp;track,
long&nbsp;positionUs)</code>
<div class="block">Indicates to the source that it should still be buffering data for the specified track.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#disable-int-">disable</a></span>(int&nbsp;track)</code>
<div class="block">Disable the specified track.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#enable-int-long-">enable</a></span>(int&nbsp;track,
long&nbsp;positionUs)</code>
<div class="block">Enable the specified track.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#getBufferedPositionUs--">getBufferedPositionUs</a></span>()</code>
<div class="block">Returns an estimate of the position up to which data is buffered.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../com/google/android/exoplayer/MediaFormat.html" title="class in com.google.android.exoplayer">MediaFormat</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#getFormat-int-">getFormat</a></span>(int&nbsp;track)</code>
<div class="block">Returns the format of the specified track.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#getTrackCount--">getTrackCount</a></span>()</code>
<div class="block">Returns the number of tracks exposed by the source.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#maybeThrowError--">maybeThrowError</a></span>()</code>
<div class="block">If the source is currently having difficulty preparing or loading samples, then this method
throws the underlying error.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#prepare-long-">prepare</a></span>(long&nbsp;positionUs)</code>
<div class="block">Prepares the source.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#readData-int-long-com.google.android.exoplayer.MediaFormatHolder-com.google.android.exoplayer.SampleHolder-">readData</a></span>(int&nbsp;track,
long&nbsp;positionUs,
<a href="../../../../com/google/android/exoplayer/MediaFormatHolder.html" title="class in com.google.android.exoplayer">MediaFormatHolder</a>&nbsp;formatHolder,
<a href="../../../../com/google/android/exoplayer/SampleHolder.html" title="class in com.google.android.exoplayer">SampleHolder</a>&nbsp;sampleHolder)</code>
<div class="block">Attempts to read a sample or a new format from the source.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#readDiscontinuity-int-">readDiscontinuity</a></span>(int&nbsp;track)</code>
<div class="block">Attempts to read a pending discontinuity from the source.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#release--">release</a></span>()</code>
<div class="block">Releases the <a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html" title="interface in com.google.android.exoplayer"><code>SampleSource.SampleSourceReader</code></a>.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#seekToUs-long-">seekToUs</a></span>(long&nbsp;positionUs)</code>
<div class="block">Seeks to the specified time in microseconds.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="maybeThrowError--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeThrowError</h4>
<pre>void&nbsp;maybeThrowError()
throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">If the source is currently having difficulty preparing or loading samples, then this method
throws the underlying error. Otherwise does nothing.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - The underlying error.</dd>
</dl>
</li>
</ul>
<a name="prepare-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepare</h4>
<pre>boolean&nbsp;prepare(long&nbsp;positionUs)</pre>
<div class="block">Prepares the source.
<p>
Preparation may require reading from the data source (e.g. to determine the available tracks
and formats). If insufficient data is available then the call will return <code>false</code>
rather than block. The method can be called repeatedly until the return value indicates
success.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionUs</code> - The player's current playback position.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the source was prepared, false otherwise.</dd>
</dl>
</li>
</ul>
<a name="getTrackCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrackCount</h4>
<pre>int&nbsp;getTrackCount()</pre>
<div class="block">Returns the number of tracks exposed by the source.
<p>
This method should only be called after the source has been prepared.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The number of tracks.</dd>
</dl>
</li>
</ul>
<a name="getFormat-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFormat</h4>
<pre><a href="../../../../com/google/android/exoplayer/MediaFormat.html" title="class in com.google.android.exoplayer">MediaFormat</a>&nbsp;getFormat(int&nbsp;track)</pre>
<div class="block">Returns the format of the specified track.
<p>
Note that whilst the format of a track will remain constant, the format of the actual media
stream may change dynamically. An example of this is where the track is adaptive
(i.e. @link <a href="../../../../com/google/android/exoplayer/MediaFormat.html#adaptive"><code>MediaFormat.adaptive</code></a> is true). Hence the track formats returned through
this method should not be used to configure decoders. Decoder configuration should be
performed using the formats obtained when reading the media stream through calls to
<a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#readData-int-long-com.google.android.exoplayer.MediaFormatHolder-com.google.android.exoplayer.SampleHolder-"><code>readData(int, long, MediaFormatHolder, SampleHolder)</code></a>.
<p>
This method should only be called after the source has been prepared.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>track</code> - The track index.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The format of the specified track.</dd>
</dl>
</li>
</ul>
<a name="enable-int-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enable</h4>
<pre>void&nbsp;enable(int&nbsp;track,
long&nbsp;positionUs)</pre>
<div class="block">Enable the specified track. This allows the track's format and samples to be read from
<a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#readData-int-long-com.google.android.exoplayer.MediaFormatHolder-com.google.android.exoplayer.SampleHolder-"><code>readData(int, long, MediaFormatHolder, SampleHolder)</code></a>.
<p>
This method should only be called after the source has been prepared, and when the specified
track is disabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>track</code> - The track to enable.</dd>
<dd><code>positionUs</code> - The player's current playback position.</dd>
</dl>
</li>
</ul>
<a name="continueBuffering-int-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>continueBuffering</h4>
<pre>boolean&nbsp;continueBuffering(int&nbsp;track,
long&nbsp;positionUs)</pre>
<div class="block">Indicates to the source that it should still be buffering data for the specified track.
<p>
This method should only be called when the specified track is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>track</code> - The track to continue buffering.</dd>
<dd><code>positionUs</code> - The current playback position.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the track has available samples, or if the end of the stream has been
reached. False if more data needs to be buffered for samples to become available.</dd>
</dl>
</li>
</ul>
<a name="readDiscontinuity-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDiscontinuity</h4>
<pre>long&nbsp;readDiscontinuity(int&nbsp;track)</pre>
<div class="block">Attempts to read a pending discontinuity from the source.
<p>
This method should only be called when the specified track is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>track</code> - The track from which to read.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>If a discontinuity was read then the playback position after the discontinuity. Else
<a href="../../../../com/google/android/exoplayer/SampleSource.html#NO_DISCONTINUITY"><code>SampleSource.NO_DISCONTINUITY</code></a>.</dd>
</dl>
</li>
</ul>
<a name="readData-int-long-com.google.android.exoplayer.MediaFormatHolder-com.google.android.exoplayer.SampleHolder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readData</h4>
<pre>int&nbsp;readData(int&nbsp;track,
long&nbsp;positionUs,
<a href="../../../../com/google/android/exoplayer/MediaFormatHolder.html" title="class in com.google.android.exoplayer">MediaFormatHolder</a>&nbsp;formatHolder,
<a href="../../../../com/google/android/exoplayer/SampleHolder.html" title="class in com.google.android.exoplayer">SampleHolder</a>&nbsp;sampleHolder)</pre>
<div class="block">Attempts to read a sample or a new format from the source.
<p>
This method should only be called when the specified track is enabled.
<p>
Note that where multiple tracks are enabled, <a href="../../../../com/google/android/exoplayer/SampleSource.html#NOTHING_READ"><code>SampleSource.NOTHING_READ</code></a> may be returned if the
next piece of data to be read from the <a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer"><code>SampleSource</code></a> corresponds to a different track
than the one for which data was requested.
<p>
This method will always return <a href="../../../../com/google/android/exoplayer/SampleSource.html#NOTHING_READ"><code>SampleSource.NOTHING_READ</code></a> in the case that there's a pending
discontinuity to be read from <a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html#readDiscontinuity-int-"><code>readDiscontinuity(int)</code></a> for the specified track.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>track</code> - The track from which to read.</dd>
<dd><code>positionUs</code> - The current playback position.</dd>
<dd><code>formatHolder</code> - A <a href="../../../../com/google/android/exoplayer/MediaFormatHolder.html" title="class in com.google.android.exoplayer"><code>MediaFormatHolder</code></a> object to populate in the case of a new
format.</dd>
<dd><code>sampleHolder</code> - A <a href="../../../../com/google/android/exoplayer/SampleHolder.html" title="class in com.google.android.exoplayer"><code>SampleHolder</code></a> object to populate in the case of a new sample.
If the caller requires the sample data then it must ensure that <a href="../../../../com/google/android/exoplayer/SampleHolder.html#data"><code>SampleHolder.data</code></a>
references a valid output buffer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The result, which can be <a href="../../../../com/google/android/exoplayer/SampleSource.html#SAMPLE_READ"><code>SampleSource.SAMPLE_READ</code></a>, <a href="../../../../com/google/android/exoplayer/SampleSource.html#FORMAT_READ"><code>SampleSource.FORMAT_READ</code></a>,
<a href="../../../../com/google/android/exoplayer/SampleSource.html#NOTHING_READ"><code>SampleSource.NOTHING_READ</code></a> or <a href="../../../../com/google/android/exoplayer/SampleSource.html#END_OF_STREAM"><code>SampleSource.END_OF_STREAM</code></a>.</dd>
</dl>
</li>
</ul>
<a name="seekToUs-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekToUs</h4>
<pre>void&nbsp;seekToUs(long&nbsp;positionUs)</pre>
<div class="block">Seeks to the specified time in microseconds.
<p>
This method should only be called when at least one track is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionUs</code> - The seek position in microseconds.</dd>
</dl>
</li>
</ul>
<a name="getBufferedPositionUs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBufferedPositionUs</h4>
<pre>long&nbsp;getBufferedPositionUs()</pre>
<div class="block">Returns an estimate of the position up to which data is buffered.
<p>
This method should only be called when at least one track is enabled.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An estimate of the absolute position in microseconds up to which data is buffered,
or <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#END_OF_TRACK_US"><code>TrackRenderer.END_OF_TRACK_US</code></a> if data is buffered to the end of the stream,
or <a href="../../../../com/google/android/exoplayer/TrackRenderer.html#UNKNOWN_TIME_US"><code>TrackRenderer.UNKNOWN_TIME_US</code></a> if no estimate is available.</dd>
</dl>
</li>
</ul>
<a name="disable-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disable</h4>
<pre>void&nbsp;disable(int&nbsp;track)</pre>
<div class="block">Disable the specified track.
<p>
This method should only be called when the specified track is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>track</code> - The track to disable.</dd>
</dl>
</li>
</ul>
<a name="release--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>release</h4>
<pre>void&nbsp;release()</pre>
<div class="block">Releases the <a href="../../../../com/google/android/exoplayer/SampleSource.SampleSourceReader.html" title="interface in com.google.android.exoplayer"><code>SampleSource.SampleSourceReader</code></a>.
<p>
This method should be called when access to the <a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer"><code>SampleSource</code></a> is no longer required.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-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">
<li><a href="../../../../com/google/android/exoplayer/SampleSource.html" title="interface in com.google.android.exoplayer"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/google/android/exoplayer/SampleSourceTrackRenderer.html" title="class in com.google.android.exoplayer"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/android/exoplayer/SampleSource.SampleSourceReader.html" target="_top">Frames</a></li>
<li><a href="SampleSource.SampleSourceReader.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>