Skip to content

Commit

Permalink
Merge pull request #11034 from google/release-v2-r2.18.4
Browse files Browse the repository at this point in the history
r2.18.4
  • Loading branch information
tonihei committed Mar 3, 2023
2 parents f72ca83 + 86013bd commit bc35372
Show file tree
Hide file tree
Showing 248 changed files with 66,506 additions and 3,133 deletions.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ body:
label: ExoPlayer Version
description: What version of ExoPlayer are you using?
options:
- 2.18.4
- 2.18.3
- 2.18.2
- 2.18.1
Expand Down
41 changes: 41 additions & 0 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
# Release notes

### 2.18.4 (2023-03-02)

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

* Core library:
* Fix network type detection on API 33
([#10970](https://github.com/google/ExoPlayer/issues/10970)).
* Fix `NullPointerException` when calling `ExoPlayer.isTunnelingEnabled`
([#10977](https://github.com/google/ExoPlayer/issues/10977)).
* Downloads:
* Make the maximum difference of the start time of two segments to be
merged configurable in `SegmentDownloader` and subclasses
([#248](https://github.com/androidx/media/pull/248)).
* Audio:
* Fix broken gapless MP3 playback on Samsung devices
([#8594](https://github.com/google/ExoPlayer/issues/8594)).
* Fix bug where playback speeds set immediately after disabling audio may
be overridden by a previous speed change
([#10882](https://github.com/google/ExoPlayer/issues/10882)).
* Video:
* Map HEVC HDR10 format to `HEVCProfileMain10HDR10` instead of
`HEVCProfileMain10`.
* Add workaround for a device issue on Chromecast with Google TV and
Lenovo M10 FHD Plus that causes 60fps AVC streams to be marked as
unsupported
([#10898](https://github.com/google/ExoPlayer/issues/10898)).
* Fix frame release performance issues when playing media with a frame
rate far higher than the screen refresh rate.
* Cast:
* Fix transient `STATE_IDLE` when transitioning between media items
([#245](https://github.com/androidx/media/issues/245)).
* RTSP:
* Catch the IllegalArgumentException thrown in parsing of invalid RTSP
Describe response messages
([#10971](https://github.com/google/ExoPlayer/issues/10971)).
* IMA extension:
* Fix a bug which prevented DAI streams without any ads from starting
because the first (and in the case without ads the only) `LOADED` event
wasn't received.

### 2.18.3 (2023-02-16)

This release corresponds to the
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.18.3'
releaseVersionCode = 2_018_003
releaseVersion = '2.18.4'
releaseVersionCode = 2_018_004
minSdkVersion = 16
appTargetSdkVersion = 33
// API version before restricting local file access.
Expand Down

This file was deleted.

3 changes: 2 additions & 1 deletion docs/_page_fragments/supported-formats-hls.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ as described
| CEA-608 | YES ||
| WebVTT | YES ||
| **Metadata** |||
| ID3 metadata | YES ||
| ID3 | YES ||
| SCTE-35 | NO ||
| **Content protection** |||
| AES-128 | YES ||
| Sample AES-128 | NO ||
Expand Down
22 changes: 14 additions & 8 deletions docs/customization.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,14 +225,20 @@ the following:
When overriding `ForwardingPlayer` methods it's important to ensure the
implementation remains self-consistent and compliant with the `Player`
interface, especially when dealing with methods that are intended to have
identical or related behavior. For example, if you want to override every 'play'
operation, you need to override both `ForwardingPlayer.play` and
`ForwardingPlayer.setPlayWhenReady`, because a caller will expect the behavior
of these methdods to be identical when `playWhenReady = true`. Similarly, if you
want to change the seek-forward increment you need to override both
`ForwardingPlayer.seekForward` to perform a seek with your customized increment,
and `ForwardingPlayer.getSeekForwardIncrement` in order to report the correct
customized increment back to the caller.
identical or related behavior. For example:
* If you want to override every 'play' operation, you need to override both
`ForwardingPlayer.play` and `ForwardingPlayer.setPlayWhenReady`, because a
caller will expect the behavior of these methods to be identical when
`playWhenReady = true`.
* If you want to change the seek-forward increment you need to override both
`ForwardingPlayer.seekForward` to perform a seek with your customized
increment, and `ForwardingPlayer.getSeekForwardIncrement` in order to report
the correct customized increment back to the caller.
* If you want to control what `Player.Commands` are advertised by a player
instance, you must override `Player.getAvailableCommands()`,
`Player.isCommandAvailable()` and also listen to the
`Player.Listener.onAvailableCommandsChanged()` callback to get notified of
changes coming from the underlying player.

## MediaSource customization ##

Expand Down

0 comments on commit bc35372

Please sign in to comment.