Skip to content

Commit

Permalink
Merge pull request #11167 from google/release-v2-r2.18.7
Browse files Browse the repository at this point in the history
r2.18.7
  • Loading branch information
icbaker committed May 17, 2023
2 parents cf49175 + 4548949 commit ac9d533
Show file tree
Hide file tree
Showing 91 changed files with 1,093 additions and 68,421 deletions.
19 changes: 19 additions & 0 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Release notes

### 2.18.7 (2023-05-18)

This release corresponds to the
[AndroidX Media3 1.0.2 release](https://github.com/androidx/media/releases/tag/1.0.2).

* Core library:
* Add `Buffer.isLastSample()` that denotes if `Buffer` contains flag
`C.BUFFER_FLAG_LAST_SAMPLE`.
* Fix issue where last frame may not be rendered if the last sample with
frames is dequeued without reading the 'end of stream' sample.
([#11079](https://github.com/google/ExoPlayer/issues/11079)).
* Extractors:
* Fix parsing of H.265 SPS in MPEG-TS files by re-using the parsing logic
already used by RTSP and MP4 extractors
([#303](https://github.com/androidx/media/issues/303)).
* Text:
* SSA: Add support for UTF-16 files if they start with a byte order mark
([#319](https://github.com/androidx/media/issues/319)).

### 2.18.6 (2023-04-18)

This release corresponds to the
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ allprojects {
}
buildDir = "${externalBuildDir}/${project.name}"
}
group = 'com.google.android.exoplayer'
group = 'com.google.android.exoplayer'
}

apply from: 'javadoc_combined.gradle'
2 changes: 1 addition & 1 deletion common_library_config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
apply from: "$gradle.ext.exoplayerSettingsDir/constants.gradle"
apply from: "$gradle.ext.exoplayerSettingsDir/constants.gradle"
apply plugin: 'com.android.library'

android {
Expand Down
12 changes: 6 additions & 6 deletions constants.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
project.ext {
// ExoPlayer version and version code.
releaseVersion = '2.18.6'
releaseVersionCode = 2_018_006
// ExoPlayer version and version code.
releaseVersion = '2.18.7'
releaseVersionCode = 2_018_007
minSdkVersion = 16
appTargetSdkVersion = 33
// API version before restricting local file access.
Expand Down Expand Up @@ -57,7 +57,7 @@ project.ext {
truthVersion = '1.1.3'
okhttpVersion = '4.9.2'
modulePrefix = ':'
if (gradle.ext.has('exoplayerModulePrefix')) {
modulePrefix += gradle.ext.exoplayerModulePrefix
}
if (gradle.ext.has('exoplayerModulePrefix')) {
modulePrefix += gradle.ext.exoplayerModulePrefix
}
}
14 changes: 8 additions & 6 deletions core_settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@
// See the License for the specific language governing permissions and
// limitations under the License.
def rootDir = file(".")
if (!gradle.ext.has('exoplayerSettingsDir')) {
gradle.ext.exoplayerSettingsDir = rootDir.getCanonicalPath()
}
if (!gradle.ext.has('exoplayerSettingsDir')) {
gradle.ext.exoplayerSettingsDir = rootDir.getCanonicalPath()
}

def modulePrefix = ':'
if (gradle.ext.has('exoplayerModulePrefix')) {
modulePrefix += gradle.ext.exoplayerModulePrefix
}
if (gradle.ext.has('exoplayerModulePrefix')) {
modulePrefix += gradle.ext.exoplayerModulePrefix
}

rootProject.name = 'exoplayer2'

include modulePrefix + 'library-common'
project(modulePrefix + 'library-common').projectDir = new File(rootDir, 'library/common')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import android.content.res.AssetManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.JsonReader;
Expand Down Expand Up @@ -271,7 +272,7 @@ private void onSampleDownloadButtonClicked(PlaylistHolder playlistHolder) {
Toast.makeText(getApplicationContext(), downloadUnsupportedStringId, Toast.LENGTH_LONG)
.show();
} else if (!notificationPermissionToastShown
&& Util.SDK_INT >= 33
&& Build.VERSION.SDK_INT >= 33
&& checkSelfPermission(Api33.getPostNotificationPermissionString())
!= PackageManager.PERMISSION_GRANTED) {
downloadMediaItemWaitingForNotificationPermission = playlistHolder.mediaItems.get(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
Expand Down Expand Up @@ -241,6 +241,13 @@ <h3>Method Summary</h3>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLastSample()">isLastSample</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the <a href="../C.html#BUFFER_FLAG_LAST_SAMPLE"><code>C.BUFFER_FLAG_LAST_SAMPLE</code></a> flag is set.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></span>&#8203;(@com.google.android.exoplayer2.C.BufferFlags int&nbsp;flags)</code></th>
<td class="colLast">
Expand Down Expand Up @@ -340,6 +347,16 @@ <h4>isKeyFrame</h4>
<div class="block">Returns whether the <a href="../C.html#BUFFER_FLAG_KEY_FRAME"><code>C.BUFFER_FLAG_KEY_FRAME</code></a> flag is set.</div>
</li>
</ul>
<a id="isLastSample()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLastSample</h4>
<pre class="methodSignature">public final&nbsp;boolean&nbsp;isLastSample()</pre>
<div class="block">Returns whether the <a href="../C.html#BUFFER_FLAG_LAST_SAMPLE"><code>C.BUFFER_FLAG_LAST_SAMPLE</code></a> flag is set.</div>
</li>
</ul>
<a id="hasSupplementalData()">
<!-- -->
</a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ <h3>Method Summary</h3>
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a href="Buffer.html" title="class in com.google.android.exoplayer2.decoder">Buffer</a></h3>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#isLastSample()">isLastSample</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ <h3>Method Summary</h3>
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a href="Buffer.html" title="class in com.google.android.exoplayer2.decoder">Buffer</a></h3>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clear()">clear</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clear()">clear</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#isLastSample()">isLastSample</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ <h3>Method Summary</h3>
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a href="Buffer.html" title="class in com.google.android.exoplayer2.decoder">Buffer</a></h3>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#isLastSample()">isLastSample</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ <h3>Method Summary</h3>
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a href="Buffer.html" title="class in com.google.android.exoplayer2.decoder">Buffer</a></h3>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clear()">clear</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
<code><a href="Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="Buffer.html#clear()">clear</a>, <a href="Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="Buffer.html#isFirstSample()">isFirstSample</a>, <a href="Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="Buffer.html#isLastSample()">isLastSample</a>, <a href="Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ <h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a h
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a href="../decoder/Buffer.html" title="class in com.google.android.exoplayer2.decoder">Buffer</a></h3>
<code><a href="../decoder/Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="../decoder/Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="../decoder/Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="../decoder/Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="../decoder/Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="../decoder/Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="../decoder/Buffer.html#isFirstSample()">isFirstSample</a>, <a href="../decoder/Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="../decoder/Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
<code><a href="../decoder/Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="../decoder/Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="../decoder/Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="../decoder/Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="../decoder/Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="../decoder/Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="../decoder/Buffer.html#isFirstSample()">isFirstSample</a>, <a href="../decoder/Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="../decoder/Buffer.html#isLastSample()">isLastSample</a>, <a href="../decoder/Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,8 @@ <h3>Method Summary</h3>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToUs(long)">seekToUs</a></span>&#8203;(long&nbsp;positionUs)</code></th>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seekToUs(long,boolean)">seekToUs</a></span>&#8203;(long&nbsp;positionUs,
boolean&nbsp;allowTimeBeyondBuffer)</code></th>
<td class="colLast">
<div class="block">Seeks the stream to a new position using already available data in the queue.</div>
</td>
Expand Down Expand Up @@ -420,17 +421,20 @@ <h4>writeData</h4>
</dl>
</li>
</ul>
<a id="seekToUs(long)">
<a id="seekToUs(long,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekToUs</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;seekToUs&#8203;(long&nbsp;positionUs)</pre>
<pre class="methodSignature">public&nbsp;boolean&nbsp;seekToUs&#8203;(long&nbsp;positionUs,
boolean&nbsp;allowTimeBeyondBuffer)</pre>
<div class="block">Seeks the stream to a new position using already available data in the queue.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>positionUs</code> - The new position, in microseconds.</dd>
<dd><code>allowTimeBeyondBuffer</code> - Whether the operation can succeed if timeUs is beyond the end of
the queue, by seeking to the last sample (or keyframe).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether seeking inside the available data was possible.</dd>
</dl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ <h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a h
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.google.android.exoplayer2.decoder.<a href="../decoder/Buffer.html" title="class in com.google.android.exoplayer2.decoder">Buffer</a></h3>
<code><a href="../decoder/Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="../decoder/Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="../decoder/Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="../decoder/Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="../decoder/Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="../decoder/Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="../decoder/Buffer.html#isFirstSample()">isFirstSample</a>, <a href="../decoder/Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="../decoder/Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
<code><a href="../decoder/Buffer.html#addFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">addFlag</a>, <a href="../decoder/Buffer.html#clearFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">clearFlag</a>, <a href="../decoder/Buffer.html#getFlag(@com.google.android.exoplayer2.C.BufferFlagsint)">getFlag</a>, <a href="../decoder/Buffer.html#hasSupplementalData()">hasSupplementalData</a>, <a href="../decoder/Buffer.html#isDecodeOnly()">isDecodeOnly</a>, <a href="../decoder/Buffer.html#isEndOfStream()">isEndOfStream</a>, <a href="../decoder/Buffer.html#isFirstSample()">isFirstSample</a>, <a href="../decoder/Buffer.html#isKeyFrame()">isKeyFrame</a>, <a href="../decoder/Buffer.html#isLastSample()">isLastSample</a>, <a href="../decoder/Buffer.html#setFlags(@com.google.android.exoplayer2.C.BufferFlagsint)">setFlags</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
Expand Down

0 comments on commit ac9d533

Please sign in to comment.