Skip to content

Commit

Permalink
Merge pull request #10045 from google/dev-v2-r2.17.1
Browse files Browse the repository at this point in the history
r2.17.1
  • Loading branch information
icbaker committed Mar 10, 2022
2 parents f1b37bc + e3b8864 commit 8129675
Show file tree
Hide file tree
Showing 26 changed files with 450 additions and 340 deletions.
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

0 comments on commit 8129675

Please sign in to comment.