Skip to content

Commit 8129675

Browse files
authored
Merge pull request #10045 from google/dev-v2-r2.17.1
r2.17.1
2 parents f1b37bc + e3b8864 commit 8129675

File tree

26 files changed

+450
-340
lines changed

26 files changed

+450
-340
lines changed

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,11 @@ using some ExoPlayer extension modules. It's also a suitable approach if you
102102
want to make local changes to ExoPlayer, or if you want to use a development
103103
branch.
104104

105-
First, clone the repository into a local directory and checkout the desired
106-
branch:
105+
First, clone the repository into a local directory:
107106

108107
```sh
109108
git clone https://github.com/google/ExoPlayer.git
110109
cd ExoPlayer
111-
git checkout release-v2
112110
```
113111

114112
Next, add the following to your project's `settings.gradle` file, replacing

RELEASENOTES.md

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,31 @@
11
# Release notes
22

3+
### 2.17.1 (2022-03-10)
4+
5+
This release corresponds to the
6+
[AndroidX media3 1.0.0-alpha03 release](https://github.com/androidx/media/releases/tag/1.0.0-alpha03).
7+
8+
* Audio:
9+
* Fix error checking audio capabilities for Dolby Atmos (E-AC3-JOC) in
10+
HLS.
11+
* Extractors:
12+
* FMP4: Fix issue where emsg sample metadata could be output in the wrong
13+
order for streams containing both v0 and v1 emsg atoms
14+
([#9996](https://github.com/google/ExoPlayer/issues/9996)).
15+
* Text:
16+
* Fix the interaction of `SingleSampleMediaSource.Factory.setTrackId` and
17+
`MediaItem.SubtitleConfiguration.Builder.setId` to prioritise the
18+
`SubtitleConfiguration` field and fall back to the `Factory` value if
19+
it's not set
20+
([#10016](https://github.com/google/ExoPlayer/issues/10016)).
21+
* Ad playback:
22+
* Fix audio underruns between ad periods in live HLS SSAI streams.
23+
324
### 2.17.0 (2022-02-24)
425

26+
This release corresponds to the
27+
[AndroidX media3 1.0.0-alpha02 release](https://github.com/androidx/media/releases/tag/1.0.0-alpha02).
28+
529
* Core library:
630
* Sleep and retry when creating a `MediaCodec` instance fails. This works
731
around an issue that occurs on some devices when switching a surface
@@ -55,9 +79,9 @@
5579
* Change `AudioCapabilities` APIs to require passing explicitly
5680
`AudioCapabilities.DEFAULT_AUDIO_CAPABILITIES` instead of `null`.
5781
* Allow customization of the `AudioTrack` buffer size calculation by
58-
injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink`.
82+
injecting an `AudioTrackBufferSizeProvider` to `DefaultAudioSink`
5983
([#8891](https://github.com/google/ExoPlayer/issues/8891)).
60-
* Retry `AudioTrack` creation if the requested buffer size was > 1MB.
84+
* Retry `AudioTrack` creation if the requested buffer size was > 1MB
6185
([#9712](https://github.com/google/ExoPlayer/issues/9712)).
6286
* Extractors:
6387
* Fix incorrect parsing of H.265 SPS NAL units
@@ -159,38 +183,38 @@
159183
([#9528](https://github.com/google/ExoPlayer/issues/9528)).
160184
* Remove deprecated symbols:
161185
* Remove `Player.EventLister`. Use `Player.Listener` instead.
162-
* Remove `MediaSourceFactory#setDrmSessionManager`,
163-
`MediaSourceFactory#setDrmHttpDataSourceFactory`, and
164-
`MediaSourceFactory#setDrmUserAgent`. Use
165-
`MediaSourceFactory#setDrmSessionManagerProvider` instead.
166-
* Remove `MediaSourceFactory#setStreamKeys`. Use
167-
`MediaItem.Builder#setStreamKeys` instead.
168-
* Remove `MediaSourceFactory#createMediaSource(Uri)`. Use
169-
`MediaSourceFactory#createMediaSource(MediaItem)` instead.
186+
* Remove `MediaSourceFactory.setDrmSessionManager`,
187+
`MediaSourceFactory.setDrmHttpDataSourceFactory`, and
188+
`MediaSourceFactory.setDrmUserAgent`. Use
189+
`MediaSourceFactory.setDrmSessionManagerProvider` instead.
190+
* Remove `MediaSourceFactory.setStreamKeys`. Use
191+
`MediaItem.Builder.setStreamKeys` instead.
192+
* Remove `MediaSourceFactory.createMediaSource(Uri)`. Use
193+
`MediaSourceFactory.createMediaSource(MediaItem)` instead.
170194
* Remove `setTag` from `DashMediaSource`, `HlsMediaSource` and
171-
`SsMediaSource`. Use `MediaItem.Builder#setTag` instead.
172-
* Remove `DashMediaSource#setLivePresentationDelayMs(long, boolean)`. Use
173-
`MediaItem.Builder#setLiveConfiguration` and
174-
`MediaItem.LiveConfiguration.Builder#setTargetOffsetMs` to override the
175-
manifest, or `DashMediaSource#setFallbackTargetLiveOffsetMs` to provide
195+
`SsMediaSource`. Use `MediaItem.Builder.setTag` instead.
196+
* Remove `DashMediaSource.setLivePresentationDelayMs(long, boolean)`. Use
197+
`MediaItem.Builder.setLiveConfiguration` and
198+
`MediaItem.LiveConfiguration.Builder.setTargetOffsetMs` to override the
199+
manifest, or `DashMediaSource.setFallbackTargetLiveOffsetMs` to provide
176200
a fallback value.
177201
* Remove `(Simple)ExoPlayer.setThrowsWhenUsingWrongThread`. Opting out of
178202
the thread enforcement is no longer possible.
179203
* Remove `ActionFile` and `ActionFileUpgradeUtil`. Use ExoPlayer 2.16.1 or
180204
before to use `ActionFileUpgradeUtil` to merge legacy action files into
181205
`DefaultDownloadIndex`.
182-
* Remove `ProgressiveMediaSource#setExtractorsFactory`. Use
206+
* Remove `ProgressiveMediaSource.setExtractorsFactory`. Use
183207
`ProgressiveMediaSource.Factory(DataSource.Factory, ExtractorsFactory)`
184208
constructor instead.
185-
* Remove `ProgressiveMediaSource.Factory#setTag` and, and
186-
`ProgressiveMediaSource.Factory#setCustomCacheKey`. Use
187-
`MediaItem.Builder#setTag` and `MediaItem.Builder#setCustomCacheKey`
209+
* Remove `ProgressiveMediaSource.Factory.setTag` and
210+
`ProgressiveMediaSource.Factory.setCustomCacheKey`. Use
211+
`MediaItem.Builder.setTag` and `MediaItem.Builder.setCustomCacheKey`
188212
instead.
189213
* Remove `DefaultRenderersFactory(Context, @ExtensionRendererMode int)`
190214
and `DefaultRenderersFactory(Context, @ExtensionRendererMode int, long)`
191215
constructors. Use the `DefaultRenderersFactory(Context)` constructor,
192-
`DefaultRenderersFactory#setExtensionRendererMode`, and
193-
`DefaultRenderersFactory#setAllowedVideoJoiningTimeMs` instead.
216+
`DefaultRenderersFactory.setExtensionRendererMode`, and
217+
`DefaultRenderersFactory.setAllowedVideoJoiningTimeMs` instead.
194218
* Remove all public `CronetDataSource` constructors. Use
195219
`CronetDataSource.Factory` instead.
196220
* Change the following `IntDefs` to `@Target(TYPE_USE)` only. This may break

constants.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
// limitations under the License.
1414
project.ext {
1515
// ExoPlayer version and version code.
16-
releaseVersion = '2.17.0'
17-
releaseVersionCode = 2_017_000
16+
releaseVersion = '2.17.1'
17+
releaseVersionCode = 2_017_001
1818
minSdkVersion = 16
1919
appTargetSdkVersion = 29
2020
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some

docs/doc/reference/com/google/android/exoplayer2/drm/UnsupportedDrmException.Reason.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ <h2 title="Annotation Type UnsupportedDrmException.Reason" class="title">Annotat
114114
<li class="blockList">
115115
<hr>
116116
<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>
117+
<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>)
117118
<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>})
118119
public static @interface <span class="memberNameLabel">UnsupportedDrmException.Reason</span></pre>
119120
<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>

docs/doc/reference/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.Factory.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,7 @@ <h2 title="Class ImaServerSideAdInsertionMediaSource.Factory" class="title">Clas
143143
<div class="block">Factory for creating <a href="ImaServerSideAdInsertionMediaSource.html" title="class in com.google.android.exoplayer2.ext.ima"><code>ImaServerSideAdInsertionMediaSources</code></a>.
144144

145145
<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
146-
<a href="../../source/DefaultMediaSourceFactory.html" title="class in com.google.android.exoplayer2.source"><code>DefaultMediaSourceFactory</code></a> that is used to build a player:
147-
148-
<p>TODO(bachinger) add code snippet from PlayerActivity</div>
146+
<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>
149147
</li>
150148
</ul>
151149
</div>

docs/doc/reference/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,7 @@ <h2 title="Class ImaServerSideAdInsertionMediaSource" class="title">Class ImaSer
145145
<hr>
146146
<pre>public final class <span class="typeNameLabel">ImaServerSideAdInsertionMediaSource</span>
147147
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>
148-
<div class="block">MediaSource for IMA server side inserted ad streams.
149-
150-
<p>TODO(bachinger) add code snippet from PlayerActivity</div>
148+
<div class="block">MediaSource for IMA server side inserted ad streams.</div>
151149
</li>
152150
</ul>
153151
</div>

docs/doc/reference/com/google/android/exoplayer2/source/SingleSampleMediaSource.Factory.html

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
catch(err) {
2626
}
2727
//-->
28-
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
29-
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
28+
var data = {"i0":10,"i1":10,"i2":10,"i3":42,"i4":10};
29+
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
3030
var altColor = "altColor";
3131
var rowColor = "rowColor";
3232
var tableTab = "tableTab";
@@ -173,7 +173,7 @@ <h3>Constructor Summary</h3>
173173
</a>
174174
<h3>Method Summary</h3>
175175
<table class="memberSummary">
176-
<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>
176+
<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>
177177
<tr>
178178
<th class="colFirst" scope="col">Modifier and Type</th>
179179
<th class="colSecond" scope="col">Method</th>
@@ -206,7 +206,10 @@ <h3>Method Summary</h3>
206206
<td class="colFirst"><code><a href="SingleSampleMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource.Factory</a></code></td>
207207
<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>
208208
<td class="colLast">
209-
<div class="block">Sets an optional track id to be used.</div>
209+
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
210+
<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
211+
<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>
212+
</div>
210213
</td>
211214
</tr>
212215
<tr id="i4" class="altColor">
@@ -290,15 +293,14 @@ <h4>setTag</h4>
290293
<ul class="blockList">
291294
<li class="blockList">
292295
<h4>setTrackId</h4>
293-
<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
296+
<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>
297+
public&nbsp;<a href="SingleSampleMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source">SingleSampleMediaSource.Factory</a>&nbsp;setTrackId&#8203;(@Nullable
294298
<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>
295-
<div class="block">Sets an optional track id to be used.</div>
296-
<dl>
297-
<dt><span class="paramLabel">Parameters:</span></dt>
298-
<dd><code>trackId</code> - An optional track id.</dd>
299-
<dt><span class="returnLabel">Returns:</span></dt>
300-
<dd>This factory, for convenience.</dd>
301-
</dl>
299+
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
300+
<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
301+
<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
302+
used if <a href="../MediaItem.SubtitleConfiguration.html#id"><code>MediaItem.SubtitleConfiguration.id</code></a> is <code>null</code>.</div>
303+
</div>
302304
</li>
303305
</ul>
304306
<a id="setLoadErrorHandlingPolicy(com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy)">

docs/doc/reference/com/google/android/exoplayer2/ui/StyledPlayerView.html

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -231,21 +231,9 @@ <h2>Attributes</h2>
231231
<li>Corresponding method: <a href="#setKeepContentOnPlayerReset(boolean)"><code>setKeepContentOnPlayerReset(boolean)</code></a>
232232
<li>Default: <code>false</code>
233233
</ul>
234-
<li><b><code>player_layout_id</code></b> - Specifies the id of the layout to be inflated. See below
235-
for more details.
236-
<ul>
237-
<li>Corresponding method: None
238-
<li>Default: <code>R.layout.exo_styled_player_view</code>
239-
</ul>
240-
<li><b><code>controller_layout_id</code></b> - Specifies the id of the layout resource to be
241-
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.
242-
<ul>
243-
<li>Corresponding method: None
244-
<li>Default: <code>R.layout.exo_styled_player_control_view</code>
245-
</ul>
246234
<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
247235
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
248-
custom <code>exo_controller</code> (see below).
236+
custom <code>exo_controller</code>.
249237
</ul>
250238

251239
<h2>Overriding drawables</h2>

docs/doc/reference/constant-values.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1855,21 +1855,21 @@ <h2 title="com.google">com.google.*</h2>
18551855
<!-- -->
18561856
</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>
18571857
<th class="colSecond" scope="row"><code><a href="com/google/android/exoplayer2/ExoPlayerLibraryInfo.html#VERSION">VERSION</a></code></th>
1858-
<td class="colLast"><code>"2.16.1"</code></td>
1858+
<td class="colLast"><code>"2.17.1"</code></td>
18591859
</tr>
18601860
<tr class="altColor">
18611861
<td class="colFirst"><a id="com.google.android.exoplayer2.ExoPlayerLibraryInfo.VERSION_INT">
18621862
<!-- -->
18631863
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
18641864
<th class="colSecond" scope="row"><code><a href="com/google/android/exoplayer2/ExoPlayerLibraryInfo.html#VERSION_INT">VERSION_INT</a></code></th>
1865-
<td class="colLast"><code>2016001</code></td>
1865+
<td class="colLast"><code>2017001</code></td>
18661866
</tr>
18671867
<tr class="rowColor">
18681868
<td class="colFirst"><a id="com.google.android.exoplayer2.ExoPlayerLibraryInfo.VERSION_SLASHY">
18691869
<!-- -->
18701870
</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>
18711871
<th class="colSecond" scope="row"><code><a href="com/google/android/exoplayer2/ExoPlayerLibraryInfo.html#VERSION_SLASHY">VERSION_SLASHY</a></code></th>
1872-
<td class="colLast"><code>"ExoPlayerLib/2.16.1"</code></td>
1872+
<td class="colLast"><code>"ExoPlayerLib/2.17.1"</code></td>
18731873
</tr>
18741874
</tbody>
18751875
</table>

0 commit comments

Comments
 (0)