Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r2.17.1 #10045

Merged
merged 14 commits into from
Mar 10, 2022
Merged

r2.17.1 #10045

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,11 @@ using some ExoPlayer extension modules. It's also a suitable approach if you
want to make local changes to ExoPlayer, or if you want to use a development
branch.

First, clone the repository into a local directory and checkout the desired
branch:
First, clone the repository into a local directory:

```sh
git clone https://github.com/google/ExoPlayer.git
cd ExoPlayer
git checkout release-v2
```

Next, add the following to your project's `settings.gradle` file, replacing
Expand Down
66 changes: 45 additions & 21 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,31 @@
# Release notes

### 2.17.1 (2022-03-10)

This release corresponds to the
[AndroidX media3 1.0.0-alpha03 release](https://github.com/androidx/media/releases/tag/1.0.0-alpha03).

* Audio:
* Fix error checking audio capabilities for Dolby Atmos (E-AC3-JOC) in
HLS.
* Extractors:
* FMP4: Fix issue where emsg sample metadata could be output in the wrong
order for streams containing both v0 and v1 emsg atoms
([#9996](https://github.com/google/ExoPlayer/issues/9996)).
* Text:
* Fix the interaction of `SingleSampleMediaSource.Factory.setTrackId` and
`MediaItem.SubtitleConfiguration.Builder.setId` to prioritise the
`SubtitleConfiguration` field and fall back to the `Factory` value if
it's not set
([#10016](https://github.com/google/ExoPlayer/issues/10016)).
* Ad playback:
* Fix audio underruns between ad periods in live HLS SSAI streams.

### 2.17.0 (2022-02-24)

This release corresponds to the
[AndroidX media3 1.0.0-alpha02 release](https://github.com/androidx/media/releases/tag/1.0.0-alpha02).

* Core library:
* Sleep and retry when creating a `MediaCodec` instance fails. This works
around an issue that occurs on some devices when switching a surface
Expand Down Expand Up @@ -55,9 +79,9 @@
* Change `AudioCapabilities` APIs to require passing explicitly
`AudioCapabilities.DEFAULT_AUDIO_CAPABILITIES` instead of `null`.
* Allow customization of the `AudioTrack` buffer size calculation by
injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink`.
injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink`
([#8891](https://github.com/google/ExoPlayer/issues/8891)).
* Retry `AudioTrack` creation if the requested buffer size was > 1MB.
* Retry `AudioTrack` creation if the requested buffer size was > 1MB
([#9712](https://github.com/google/ExoPlayer/issues/9712)).
* Extractors:
* Fix incorrect parsing of H.265 SPS NAL units
Expand Down Expand Up @@ -159,38 +183,38 @@
([#9528](https://github.com/google/ExoPlayer/issues/9528)).
* Remove deprecated symbols:
* Remove `Player.EventLister`. Use `Player.Listener` instead.
* Remove `MediaSourceFactory#setDrmSessionManager`,
`MediaSourceFactory#setDrmHttpDataSourceFactory`, and
`MediaSourceFactory#setDrmUserAgent`. Use
`MediaSourceFactory#setDrmSessionManagerProvider` instead.
* Remove `MediaSourceFactory#setStreamKeys`. Use
`MediaItem.Builder#setStreamKeys` instead.
* Remove `MediaSourceFactory#createMediaSource(Uri)`. Use
`MediaSourceFactory#createMediaSource(MediaItem)` instead.
* Remove `MediaSourceFactory.setDrmSessionManager`,
`MediaSourceFactory.setDrmHttpDataSourceFactory`, and
`MediaSourceFactory.setDrmUserAgent`. Use
`MediaSourceFactory.setDrmSessionManagerProvider` instead.
* Remove `MediaSourceFactory.setStreamKeys`. Use
`MediaItem.Builder.setStreamKeys` instead.
* Remove `MediaSourceFactory.createMediaSource(Uri)`. Use
`MediaSourceFactory.createMediaSource(MediaItem)` instead.
* Remove `setTag` from `DashMediaSource`, `HlsMediaSource` and
`SsMediaSource`. Use `MediaItem.Builder#setTag` instead.
* Remove `DashMediaSource#setLivePresentationDelayMs(long, boolean)`. Use
`MediaItem.Builder#setLiveConfiguration` and
`MediaItem.LiveConfiguration.Builder#setTargetOffsetMs` to override the
manifest, or `DashMediaSource#setFallbackTargetLiveOffsetMs` to provide
`SsMediaSource`. Use `MediaItem.Builder.setTag` instead.
* Remove `DashMediaSource.setLivePresentationDelayMs(long, boolean)`. Use
`MediaItem.Builder.setLiveConfiguration` and
`MediaItem.LiveConfiguration.Builder.setTargetOffsetMs` to override the
manifest, or `DashMediaSource.setFallbackTargetLiveOffsetMs` to provide
a fallback value.
* Remove `(Simple)ExoPlayer.setThrowsWhenUsingWrongThread`. Opting out of
the thread enforcement is no longer possible.
* Remove `ActionFile` and `ActionFileUpgradeUtil`. Use ExoPlayer 2.16.1 or
before to use `ActionFileUpgradeUtil` to merge legacy action files into
`DefaultDownloadIndex`.
* Remove `ProgressiveMediaSource#setExtractorsFactory`. Use
* Remove `ProgressiveMediaSource.setExtractorsFactory`. Use
`ProgressiveMediaSource.Factory(DataSource.Factory, ExtractorsFactory)`
constructor instead.
* Remove `ProgressiveMediaSource.Factory#setTag` and, and
`ProgressiveMediaSource.Factory#setCustomCacheKey`. Use
`MediaItem.Builder#setTag` and `MediaItem.Builder#setCustomCacheKey`
* Remove `ProgressiveMediaSource.Factory.setTag` and
`ProgressiveMediaSource.Factory.setCustomCacheKey`. Use
`MediaItem.Builder.setTag` and `MediaItem.Builder.setCustomCacheKey`
instead.
* Remove `DefaultRenderersFactory(Context, @ExtensionRendererMode int)`
and `DefaultRenderersFactory(Context, @ExtensionRendererMode int, long)`
constructors. Use the `DefaultRenderersFactory(Context)` constructor,
`DefaultRenderersFactory#setExtensionRendererMode`, and
`DefaultRenderersFactory#setAllowedVideoJoiningTimeMs` instead.
`DefaultRenderersFactory.setExtensionRendererMode`, and
`DefaultRenderersFactory.setAllowedVideoJoiningTimeMs` instead.
* Remove all public `CronetDataSource` constructors. Use
`CronetDataSource.Factory` instead.
* Change the following `IntDefs` to `@Target(TYPE_USE)` only. This may break
Expand Down
4 changes: 2 additions & 2 deletions constants.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
// limitations under the License.
project.ext {
// ExoPlayer version and version code.
releaseVersion = '2.17.0'
releaseVersionCode = 2_017_000
releaseVersion = '2.17.1'
releaseVersionCode = 2_017_001
minSdkVersion = 16
appTargetSdkVersion = 29
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ <h2 title="Annotation Type UnsupportedDrmException.Reason" class="title">Annotat
<li class="blockList">
<hr>
<pre><a href="https://developer.android.com/reference/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation" class="externalLink" target="_top">@Documented</a>
<a href="https://developer.android.com/reference/java/lang/annotation/Retention.html" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">SOURCE</a>)
<a href="https://developer.android.com/reference/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#LOCAL_VARIABLE" title="class or interface in java.lang.annotation" class="externalLink">LOCAL_VARIABLE</a>,<a href="https://developer.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE_USE" title="class or interface in java.lang.annotation" class="externalLink" target="_top">TYPE_USE</a>})
public static @interface <span class="memberNameLabel">UnsupportedDrmException.Reason</span></pre>
<div class="block">The reason for the exception. One of <a href="UnsupportedDrmException.html#REASON_UNSUPPORTED_SCHEME"><code>UnsupportedDrmException.REASON_UNSUPPORTED_SCHEME</code></a> or <a href="UnsupportedDrmException.html#REASON_INSTANTIATION_ERROR"><code>UnsupportedDrmException.REASON_INSTANTIATION_ERROR</code></a>.</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,7 @@ <h2 title="Class ImaServerSideAdInsertionMediaSource.Factory" class="title">Clas
<div class="block">Factory for creating <a href="ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima"><code>ImaServerSideAdInsertionMediaSources</code></a>.

<p>Apps can use the <a href="ImaServerSideAdInsertionMediaSource.Factory.html" title="class in com.google.android.exoplayer2.ext.ima"><code>ImaServerSideAdInsertionMediaSource.Factory</code></a> to customized the
<a href="../../source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> that is used to build a player:

<p>TODO(bachinger) add code snippet from PlayerActivity</div>
<a href="../../source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> that is used to build a player:</div>
</li>
</ul>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,7 @@ <h2 title="Class ImaServerSideAdInsertionMediaSource" class="title">Class ImaSer
<hr>
<pre>public final class <span class="typeNameLabel">ImaServerSideAdInsertionMediaSource</span>
extends <a href="../../source/CompositeMediaSource.html" title="class in com.google.android.exoplayer2.source">CompositeMediaSource</a>&lt;<a href="https://developer.android.com/reference/java/lang/Void.html" title="class or interface in java.lang" class="externalLink" target="_top">Void</a>&gt;</pre>
<div class="block">MediaSource for IMA server side inserted ad streams.

<p>TODO(bachinger) add code snippet from PlayerActivity</div>
<div class="block">MediaSource for IMA server side inserted ad streams.</div>
</li>
</ul>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var data = {"i0":10,"i1":10,"i2":10,"i3":42,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
Expand Down Expand Up @@ -173,7 +173,7 @@ <h3>Constructor Summary</h3>
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
Expand Down Expand Up @@ -206,7 +206,10 @@ <h3>Method Summary</h3>
<td class="colFirst"><code><a href="SingleSampleMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource.Factory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTrackId(java.lang.String)">setTrackId</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;trackId)</code></th>
<td class="colLast">
<div class="block">Sets an optional track id to be used.</div>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../MediaItem.SubtitleConfiguration.Builder.html#setId(java.lang.String)"><code>MediaItem.SubtitleConfiguration.Builder.setId(String)</code></a> instead (on the
<a href="../MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.SubtitleConfiguration</code></a> passed to <a href="#createMediaSource(com.google.android.exoplayer2.MediaItem.SubtitleConfiguration,long)"><code>createMediaSource(MediaItem.SubtitleConfiguration, long)</code></a>).</div>
</div>
</td>
</tr>
<tr id="i4" class="altColor">
Expand Down Expand Up @@ -290,15 +293,14 @@ <h4>setTag</h4>
<ul class="blockList">
<li class="blockList">
<h4>setTrackId</h4>
<pre class="methodSignature">public&nbsp;<a href="SingleSampleMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource.Factory</a>&nbsp;setTrackId&#8203;(@Nullable
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/Deprecated.html" title="class or interface in java.lang" class="externalLink" target="_top">@Deprecated</a>
public&nbsp;<a href="SingleSampleMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource.Factory</a>&nbsp;setTrackId&#8203;(@Nullable
<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a>&nbsp;trackId)</pre>
<div class="block">Sets an optional track id to be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trackId</code> - An optional track id.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>This factory, for convenience.</dd>
</dl>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../MediaItem.SubtitleConfiguration.Builder.html#setId(java.lang.String)"><code>MediaItem.SubtitleConfiguration.Builder.setId(String)</code></a> instead (on the
<a href="../MediaItem.SubtitleConfiguration.html" title="class in com.google.android.exoplayer2"><code>MediaItem.SubtitleConfiguration</code></a> passed to <a href="#createMediaSource(com.google.android.exoplayer2.MediaItem.SubtitleConfiguration,long)"><code>createMediaSource(MediaItem.SubtitleConfiguration, long)</code></a>). <code>trackId</code> will only be
used if <a href="../MediaItem.SubtitleConfiguration.html#id"><code>MediaItem.SubtitleConfiguration.id</code></a> is <code>null</code>.</div>
</div>
</li>
</ul>
<a id="setLoadErrorHandlingPolicy(com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy)">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,21 +231,9 @@ <h2>Attributes</h2>
<li>Corresponding method: <a href="#setKeepContentOnPlayerReset(boolean)"><code>setKeepContentOnPlayerReset(boolean)</code></a>
<li>Default: <code>false</code>
</ul>
<li><b><code>player_layout_id</code></b> - Specifies the id of the layout to be inflated. See below
for more details.
<ul>
<li>Corresponding method: None
<li>Default: <code>R.layout.exo_styled_player_view</code>
</ul>
<li><b><code>controller_layout_id</code></b> - Specifies the id of the layout resource to be
inflated by the child <a href="StyledPlayerControlView.html" title="class in com.google.android.exoplayer2.ui"><code>StyledPlayerControlView</code></a>. See below for more details.
<ul>
<li>Corresponding method: None
<li>Default: <code>R.layout.exo_styled_player_control_view</code>
</ul>
<li>All attributes that can be set on <a href="StyledPlayerControlView.html" title="class in com.google.android.exoplayer2.ui"><code>StyledPlayerControlView</code></a> and <a href="DefaultTimeBar.html" title="class in com.google.android.exoplayer2.ui"><code>DefaultTimeBar</code></a> can also be set on a StyledPlayerView, and will be propagated to the
inflated <a href="StyledPlayerControlView.html" title="class in com.google.android.exoplayer2.ui"><code>StyledPlayerControlView</code></a> unless the layout is overridden to specify a
custom <code>exo_controller</code> (see below).
custom <code>exo_controller</code>.
</ul>

<h2>Overriding drawables</h2>
Expand Down
6 changes: 3 additions & 3 deletions docs/doc/reference/constant-values.html
Original file line number Diff line number Diff line change
Expand Up @@ -1855,21 +1855,21 @@ <h2 title="com.google">com.google.*</h2>
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><a href="com/google/android/exoplayer2/ExoPlayerLibraryInfo.html#VERSION">VERSION</a></code></th>
<td class="colLast"><code>"2.16.1"</code></td>
<td class="colLast"><code>"2.17.1"</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a id="com.google.android.exoplayer2.ExoPlayerLibraryInfo.VERSION_INT">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/google/android/exoplayer2/ExoPlayerLibraryInfo.html#VERSION_INT">VERSION_INT</a></code></th>
<td class="colLast"><code>2016001</code></td>
<td class="colLast"><code>2017001</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a id="com.google.android.exoplayer2.ExoPlayerLibraryInfo.VERSION_SLASHY">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html" title="class or interface in java.lang" class="externalLink" target="_top">String</a></code></td>
<th class="colSecond" scope="row"><code><a href="com/google/android/exoplayer2/ExoPlayerLibraryInfo.html#VERSION_SLASHY">VERSION_SLASHY</a></code></th>
<td class="colLast"><code>"ExoPlayerLib/2.16.1"</code></td>
<td class="colLast"><code>"ExoPlayerLib/2.17.1"</code></td>
</tr>
</tbody>
</table>
Expand Down
Loading