Skip to content

Commit

Permalink
Merge pull request #11129 from google/release-v2-r2.18.6
Browse files Browse the repository at this point in the history
r2.18.6
  • Loading branch information
rohitjoins committed Apr 19, 2023
2 parents 67991cb + 296c50e commit cf49175
Show file tree
Hide file tree
Showing 77 changed files with 4,922 additions and 600 deletions.
22 changes: 21 additions & 1 deletion RELEASENOTES.md
@@ -1,11 +1,31 @@
# Release notes

### 2.18.6 (2023-04-18)

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

* Core library:
* Reset target live stream override when seeking to default position
([#11051](https://github.com/google/ExoPlayer/pull/11051)).
* Fix bug where empty sample streams in the media could cause playback to
be stuck.
* DASH:
* Fix handling of empty segment timelines
([#11014](https://github.com/google/ExoPlayer/issues/11014)).
* RTSP:
* Retry with TCP if RTSP Setup with UDP fails with RTSP Error 461
UnsupportedTransport
([#11069](https://github.com/google/ExoPlayer/issues/11069)).

### 2.18.5 (2023-03-22)

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

There are no changes since 2.18.4.
* Migration script
* Fix bug where backup files for each touched file were left in a migrated
project on OSX.

### 2.18.4 (2023-03-02)

Expand Down
4 changes: 2 additions & 2 deletions constants.gradle
Expand Up @@ -13,8 +13,8 @@
// limitations under the License.
project.ext {
// ExoPlayer version and version code.
releaseVersion = '2.18.5'
releaseVersionCode = 2_018_005
releaseVersion = '2.18.6'
releaseVersionCode = 2_018_006
minSdkVersion = 16
appTargetSdkVersion = 33
// API version before restricting local file access.
Expand Down
1 change: 1 addition & 0 deletions demos/gl/build.gradle
Expand Up @@ -27,6 +27,7 @@ android {
versionCode project.ext.releaseVersionCode
minSdkVersion project.ext.minSdkVersion
targetSdkVersion project.ext.appTargetSdkVersion
multiDexEnabled true
}

buildTypes {
Expand Down
2 changes: 1 addition & 1 deletion demos/main/src/main/res/values/strings.xml
Expand Up @@ -21,7 +21,7 @@

<string name="unexpected_intent_action">Unexpected intent action: <xliff:g id="action">%1$s</xliff:g></string>

<string name="error_cleartext_not_permitted">Cleartext HTTP traffic not permitted. See https://exoplayer.dev/issues/cleartext-not-permitted</string>
<string name="error_cleartext_not_permitted">Cleartext HTTP traffic not permitted. See https://developer.android.com/guide/topics/media/issues/cleartext-not-permitted</string>

<string name="error_generic">Playback failed</string>

Expand Down
2 changes: 1 addition & 1 deletion demos/transformer/README.md
Expand Up @@ -61,6 +61,6 @@ manual steps.
(this will only appear if the AAR is present), then build and run the demo
app and select a MediaPipe-based effect.

[Transformer]: https://exoplayer.dev/transforming-media.html
[Transformer]: https://developer.android.com/guide/topics/media/transforming-media
[MediaPipe]: https://google.github.io/mediapipe/
[build an AAR]: https://google.github.io/mediapipe/getting_started/android_archive_library.html
Expand Up @@ -28,7 +28,7 @@
*/
/* package */ final class MatrixTransformationFactory {
/**
* Returns a {@link MatrixTransformation} that rescales the frames over the first {@value
* Returns a {@link MatrixTransformation} that rescales the frames over the first {@link
* #ZOOM_DURATION_SECONDS} seconds, such that the rectangle filled with the input frame increases
* linearly in size from a single point to filling the full output frame.
*/
Expand Down
568 changes: 287 additions & 281 deletions docs/doc/reference/allclasses-index.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/doc/reference/allclasses.html
Expand Up @@ -1008,6 +1008,7 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource</a></li>
<li><a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.Factory.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource.Factory</a></li>
<li><a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.RtspPlaybackException.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource.RtspPlaybackException</a></li>
<li><a href="com/google/android/exoplayer2/source/rtsp/RtspMediaSource.RtspUdpUnsupportedTransportException.html" title="class in com.google.android.exoplayer2.source.rtsp">RtspMediaSource.RtspUdpUnsupportedTransportException</a></li>
<li><a href="com/google/android/exoplayer2/text/span/RubySpan.html" title="class in com.google.android.exoplayer2.text.span">RubySpan</a></li>
<li><a href="com/google/android/exoplayer2/util/RunnableFutureTask.html" title="class in com.google.android.exoplayer2.util">RunnableFutureTask</a></li>
<li><a href="com/google/android/exoplayer2/source/SampleQueue.html" title="class in com.google.android.exoplayer2.source">SampleQueue</a></li>
Expand Down
Expand Up @@ -177,8 +177,7 @@ <h2>Threading model</h2>

<p>The figure below shows ExoPlayer's threading model.

<p style="align:center"><img src="doc-files/exoplayer-threading-model.svg" alt="ExoPlayer's
threading model">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/exoplayer-threading-model.svg" alt="ExoPlayer's threading model">

<ul>
<li>ExoPlayer instances must be accessed from a single application thread unless indicated
Expand Down
3 changes: 2 additions & 1 deletion docs/doc/reference/com/google/android/exoplayer2/Format.html
Expand Up @@ -139,7 +139,8 @@ <h2 title="Class Format" class="title">Class Format</h2>
<div class="block">Represents a media format.

<p>When building formats, populate all fields whose values are known and relevant to the type of
format being constructed. For information about different types of format, see ExoPlayer's <a href="https://exoplayer.dev/supported-formats.html">Supported formats page</a>.
format being constructed. For information about different types of format, see ExoPlayer's <a href="https://developer.android.com/guide/topics/media/exoplayer/supported-formats">Supported
formats page</a>.

<h2>Fields commonly relevant to all formats</h2>

Expand Down
Expand Up @@ -1183,8 +1183,14 @@ <h4>getApplicationLooper</h4>
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addListener&#8203;(<a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</pre>
<div class="block">Calls <a href="Player.html#addListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.addListener(Listener)</code></a> on the delegate.</div>
<pre class="methodSignature">@CallSuper
public&nbsp;void&nbsp;addListener&#8203;(<a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</pre>
<div class="block">Calls <a href="Player.html#addListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.addListener(Listener)</code></a> on the delegate.

<p>Overrides of this method must delegate to <code>super.addListener</code> and not <code>
delegate.addListener</code>, in order to ensure the correct <a href="Player.html" title="interface in com.google.android.exoplayer2"><code>Player</code></a> instance is passed to
<a href="Player.Listener.html#onEvents(com.google.android.exoplayer2.Player,com.google.android.exoplayer2.Player.Events)"><code>Player.Listener.onEvents(Player, Events)</code></a> (i.e. this forwarding instance, and not the
underlying <code>delegate</code> instance).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#addListener(com.google.android.exoplayer2.Player.Listener)">addListener</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
Expand All @@ -1199,8 +1205,13 @@ <h4>addListener</h4>
<ul class="blockList">
<li class="blockList">
<h4>removeListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeListener&#8203;(<a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</pre>
<div class="block">Calls <a href="Player.html#removeListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.removeListener(Listener)</code></a> on the delegate.</div>
<pre class="methodSignature">@CallSuper
public&nbsp;void&nbsp;removeListener&#8203;(<a href="Player.Listener.html" title="interface in com.google.android.exoplayer2">Player.Listener</a>&nbsp;listener)</pre>
<div class="block">Calls <a href="Player.html#removeListener(com.google.android.exoplayer2.Player.Listener)"><code>Player.removeListener(Listener)</code></a> on the delegate.

<p>Overrides of this method must delegate to <code>super.removeListener</code> and not <code>
delegate.removeListener</code>, in order to ensure the listener 'matches' the listener added via
<a href="#addListener(com.google.android.exoplayer2.Player.Listener)"><code>addListener(com.google.android.exoplayer2.Player.Listener)</code></a> (otherwise the listener registered on the delegate won't be removed).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="Player.html#removeListener(com.google.android.exoplayer2.Player.Listener)">removeListener</a></code>&nbsp;in interface&nbsp;<code><a href="Player.html" title="interface in com.google.android.exoplayer2">Player</a></code></dd>
Expand Down
Expand Up @@ -802,8 +802,8 @@ <h4>ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED</h4>
<div class="block">Caused by the player trying to access cleartext HTTP traffic (meaning http:// rather than
https://) when the app's Network Security Configuration does not permit it.

<p>See <a href="https://exoplayer.dev/issues/cleartext-not-permitted">this corresponding
troubleshooting topic</a>.</div>
<p>See <a href="https://developer.android.com/guide/topics/media/issues/cleartext-not-permitted">this
corresponding troubleshooting topic</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#com.google.android.exoplayer2.PlaybackException.ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED">Constant Field Values</a></dd>
Expand Down
Expand Up @@ -138,8 +138,7 @@ <h2 title="Interface Renderer" class="title">Interface Renderer</h2>
valid state transitions are shown below, annotated with the methods that are called during each
transition.

<p style="align:center"><img src="doc-files/renderer-states.svg" alt="Renderer state
transitions"></div>
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/renderer-states.svg" alt="Renderer state transitions"></div>
</li>
</ul>
</div>
Expand Down
21 changes: 7 additions & 14 deletions docs/doc/reference/com/google/android/exoplayer2/Timeline.html
Expand Up @@ -163,8 +163,7 @@ <h2 title="Class Timeline" class="title">Class Timeline</h2>

<h2 id="single-file">Single media file or on-demand stream</h2>

<p style="align:center"><img src="doc-files/timeline-single-file.svg" alt="Example timeline for a
single file">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/timeline-single-file.svg" alt="Example timeline for a single file">

<p>A timeline for a single media file or on-demand stream consists of a single period and window.
The window spans the whole period, indicating that all parts of the media are available for
Expand All @@ -173,8 +172,7 @@ <h2 id="single-file">Single media file or on-demand stream</h2>

<h2>Playlist of media files or on-demand streams</h2>

<p style="align:center"><img src="doc-files/timeline-playlist.svg" alt="Example timeline for a
playlist of files">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/timeline-playlist.svg" alt="Example timeline for a playlist of files">

<p>A timeline for a playlist of media files or on-demand streams consists of multiple periods,
each with its own window. Each window spans the whole of the corresponding period, and typically
Expand All @@ -184,8 +182,7 @@ <h2>Playlist of media files or on-demand streams</h2>

<h2 id="live-limited">Live stream with limited availability</h2>

<p style="align:center"><img src="doc-files/timeline-live-limited.svg" alt="Example timeline for
a live stream with limited availability">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/timeline-live-limited.svg" alt="Example timeline for a live stream with limited availability">

<p>A timeline for a live stream consists of a period whose duration is unknown, since it's
continually extending as more content is broadcast. If content only remains available for a
Expand All @@ -197,17 +194,15 @@ <h2 id="live-limited">Live stream with limited availability</h2>

<h2>Live stream with indefinite availability</h2>

<p style="align:center"><img src="doc-files/timeline-live-indefinite.svg" alt="Example timeline
for a live stream with indefinite availability">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/timeline-live-indefinite.svg" alt="Example timeline for a live stream with indefinite availability">

<p>A timeline for a live stream with indefinite availability is similar to the <a href="#live-limited">Live stream with limited availability</a> case, except that the window
starts at the beginning of the period to indicate that all of the previously broadcast content
can still be played.

<h2 id="live-multi-period">Live stream with multiple periods</h2>

<p style="align:center"><img src="doc-files/timeline-live-multi-period.svg" alt="Example timeline
for a live stream with multiple periods">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/timeline-live-multi-period.svg" alt="Example timeline for a live stream with multiple periods">

<p>This case arises when a live stream is explicitly divided into separate periods, for example
at content boundaries. This case is similar to the <a href="#live-limited">Live stream with
Expand All @@ -216,8 +211,7 @@ <h2 id="live-multi-period">Live stream with multiple periods</h2>

<h2>On-demand stream followed by live stream</h2>

<p style="align:center"><img src="doc-files/timeline-advanced.svg" alt="Example timeline for an
on-demand stream followed by a live stream">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/timeline-advanced.svg" alt="Example timeline for an on-demand stream followed by a live stream">

<p>This case is the concatenation of the <a href="#single-file">Single media file or on-demand
stream</a> and <a href="#multi-period">Live stream with multiple periods</a> cases. When playback
Expand All @@ -226,8 +220,7 @@ <h2>On-demand stream followed by live stream</h2>

<h2 id="single-file-midrolls">On-demand stream with mid-roll ads</h2>

<p style="align:center"><img src="doc-files/timeline-single-file-midrolls.svg" alt="Example
timeline for an on-demand stream with mid-roll ad groups">
<p style="align:center"><img src="https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/doc-files/timeline-single-file-midrolls.svg" alt="Example timeline for an on-demand stream with mid-roll ad groups">

<p>This case includes mid-roll ad groups, which are defined as part of the timeline's single
period. The period can be queried for information about the ad groups and the ads they contain.</div>
Expand Down

0 comments on commit cf49175

Please sign in to comment.