Skip to content

Commit

Permalink
Merge branch 'dev-v2' of https://github.com/google/ExoPlayer into dev-v2
Browse files Browse the repository at this point in the history
  • Loading branch information
fgl27 committed Jul 23, 2021
2 parents 93d449a + e2f1285 commit c50a90e
Show file tree
Hide file tree
Showing 271 changed files with 4,458 additions and 31,469 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ implementation 'com.google.android.exoplayer:exoplayer-dash:2.X.X'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.X.X'
```

When depending on individual modules they must all be the same version.

The available library modules are listed below. Adding a dependency to the full
ExoPlayer library is equivalent to adding dependencies on all of the library
modules individually.
Expand Down
127 changes: 84 additions & 43 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,21 @@
implementation-specific fields (like
`ExoPlaybackException.rendererIndex`).
* `PlaybackException` introduces an `errorCode` which identifies the
cause of the failure in order to simplify error handling.
cause of the failure in order to simplify error handling
([#1611](https://github.com/google/ExoPlayer/issues/1611)).
* Add `@FallbackType` to `LoadErrorHandlingPolicy` to support
customization of the exclusion duration for locations and tracks.
* Explicitly mark several methods on `SimpleExoPlayer` as `@Deprecated`.
These methods are all overrides and are already deprecated on `Player`
and the respective `ExoPlayer` component classes (since 2.14.0).
* Rename `Player.EventFlags` IntDef to `Player.Event`.
* Add a `DefaultMediaDescriptionAdapter` for the
`PlayerNotificationManager`, that makes use of the `Player`
`MediaMetadata` to populate the notification fields.
* Deprecate `Player.getCurrentStaticMetadata`,
`Player.Listener.onStaticMetadataChanged` and
`Player.EVENT_STATIC_METADATA_CHANGED`. Use `Player.getMediaMetadata`,
`Player.Listener.onMediaMetadataChanged` and
`Player.EVENT_MEDIA_METADATA_CHANGED` for convenient access to
structured metadata, or access the raw static metadata directly from
the `TrackSelection#getFormat()`.
* Remove deprecated symbols:
* Remove `Player.getPlaybackError`. Use `Player.getPlayerError` instead.
* Remove `Player.getCurrentTag`. Use `Player.getCurrentMediaItem` and
Expand All @@ -51,15 +56,16 @@
`setPlaybackPreparer` methods will now call `Player.prepare` by default.
If this behavior is sufficient, use of `PlaybackPreparer` can be removed
from application code without replacement. For custom preparation logic,
replace calls to `setPlaybackPreparer` with calls to
`setControlDispatcher` on the same components, passing a
`ControlDispatcher` that implements custom preparation logic in
`dispatchPrepare`. Extend `DefaultControlDispatcher` to avoid having to
implement the other `ControlDispatcher` methods.
use a `ForwardingPlayer` that implements custom preparation logic in
`prepare`.
* Remove `setRewindIncrementMs` and `setFastForwardIncrementMs` from UI
components. Use `setControlDispatcher` on the same components, passing a
`DefaultControlDispatcher` built using `DefaultControlDispatcher(long,
long)`.
components. These increments can be customized by configuring the
`Player` (see `setSeekBackIncrementMs` and `setSeekForwardIncrementMs`
in `SimpleExoPlayer.Builder`), or by using a `ForwardingPlayer` that
overrides `getSeekBackIncrement`, `seekBack`, `getSeekForwardIncrement`
and `seekForward`. The rewind and fast forward buttons can be disabled
by using a `ForwardingPlayer` that removes `COMMAND_SEEK_BACK` and
`COMMAND_SEEK_FORWARD` from the available commands.
* Remove `PlayerNotificationManager` constructors and `createWith`
methods. Use `PlayerNotificationManager.Builder` instead.
* Remove `PlayerNotificationManager.setNotificationListener`. Use
Expand All @@ -76,20 +82,46 @@
* Remove `CastPlayer` specific playlist manipulation methods. Use
`setMediaItems`, `addMediaItems`, `removeMediaItem` and `moveMediaItem`
instead.
* UI
* Fix focusability of `StyledPlayerView` and `StyledPlayerControlView`
popup menus on API levels prior to 26
([#9061](https://github.com/google/ExoPlayer/issues/9061)).
* Fix progress bar flickering immediately after the user seeks
([#9049](https://github.com/google/ExoPlayer/pull/9049)).
* Fix `StyledPlayerView` and `StyledPlayerControlView` popup menu items
not expanding to occupy the full width of the popup
([#9086](https://github.com/google/ExoPlayer/issues/9086)).
* Don't propagate `AttributeSet` from `SubtitleView` constructor into
`CanvasSubtitleOutput`. Just passing the `Context` is enough, and
ensures programmatic changes to the `SubtitleView` will propagate down.
* UI:
* Add `setUseRewindAction` and `setUseFastForwardAction` to
`PlayerNotificationManager`, and `setUseFastForwardActionInCompactView`
and `setUseRewindActionInCompactView` to show the actions in compact
view mode.
* Remove `rewind_increment` and `fastforward_increment` attributes from
`PlayerControlView` and `StyledPlayerControlView`. These increments can
be customized by configuring the `Player` (see `setSeekBackIncrementMs`
and `setSeekForwardIncrementMs` in `SimpleExoPlayer.Builder`), or by
using a `ForwardingPlayer` that overrides `getSeekBackIncrement`,
`seekBack`, `getSeekForwardIncrement` and `seekForward`. The rewind and
fast forward buttons can be disabled by using a `ForwardingPlayer` that
removes `COMMAND_SEEK_BACK` and `COMMAND_SEEK_FORWARD` from the
available commands.
* Update `DefaultControlDispatcher` `getRewindIncrementMs` and
`getFastForwardIncrementMs` to take the player as parameter.
* Deprecate `setControlDispatcher` in `PlayerView`, `StyledPlayerView`,
`PlayerControlView`, `StyledPlayerControlView` and
`PlayerNotificationManager`.
* Ad playback:
* Support changing ad break positions in the player logic
([#5067](https://github.com/google/ExoPlayer/issues/5067).
* Support resuming content with an offset after an ad group.
* OkHttp extension:
* Switch to OkHttp 4.9.1. This increases the extension's minimum SDK
version requirement from 16 to 21.
* Cronet extension:
* Add `CronetDataSource.Factory.setRequestPriority` to allow setting the
priority of requests made by `CronetDataSource` instances.
* Leanback extension:
* Deprecate `setControlDispatcher` in `LeanbackPlayerAdapter`.
* Media2 extension:
* Deprecate `setControlDispatcher` in `SessionPlayerConnector`.

### 2.14.2 (2021-07-20)

* Core Library:
* Explicitly mark several methods on `SimpleExoPlayer` as `@Deprecated`.
These methods are all overrides and are already deprecated on `Player`
and the respective `ExoPlayer` component classes (since 2.14.0).
* Video:
* Fix `IncorrectContextUseViolation` strict mode warning on Android 11
([#8246](https://github.com/google/ExoPlayer/pull/8246)).
Expand Down Expand Up @@ -123,37 +155,46 @@
([#9004](https://github.com/google/ExoPlayer/issues/9004)).
* Forward the `FRAME-RATE` value from the master playlist to renditions.
([#8960](https://github.com/google/ExoPlayer/issues/8960)).
* Fix issue where HLS events would start at positions greater than
specified by an `EXT-X-START` tag when placed in a playlist
([#9037](https://github.com/google/ExoPlayer/issues/9037)).
* Ad playback:
* Support changing ad break positions in the player logic
([#5067](https://github.com/google/ExoPlayer/issues/5067).
* Support resuming content with an offset after an ad group.
* Use the content URI when auto-generating an ad ID (in addition to the
media ID and ad tag URI)
([#9106](https://github.com/google/ExoPlayer/issues/9106).
* DRM:
* Allow repeated provisioning in `DefaultDrmSession(Manager)`.
* PlayerNotificationManager:
* Add `PendingIntent.FLAG_IMMUTABLE` flag to BroadcastReceiver to support
Android 12.
* Add `setUseFastForwardActionInCompactView(boolean)` and
`setUseRewindActionInCompactView(boolean)` to make it possible to show
seek actions in compact view mode.
* RTSP:
* Fix session description (SDP) parsing to use a HashMap-like behaviour
for duplicated attributes.
([#9014](https://github.com/google/ExoPlayer/issues/9014)).
* Fix a crash due to `DefaultDrmSessionManager.release()` incorrectly
releasing too many keep-alive `DefaultDrmSession` references, resulting
in `DefaultDrmSession.release()` throwing an `IllegalStateException`
([#9193](https://github.com/google/ExoPlayer/issues/9193)).
* Metadata:
* Fix handling of emsg messages with an unset duration
([#9123](https://github.com/google/ExoPlayer/issues/9123)).
* OkHttp extension:
* Switch to OkHttp 4.9.1. This increases the extension's minimum SDK
version requirement from 16 to 21.
* Cronet extension:
* Add `CronetDataSource.Factory.setRequestPriority` to allow setting the
priority of requests made by `CronetDataSource` instances.
* UI:
* Add `PendingIntent.FLAG_IMMUTABLE` when creating broadcast intents in
`PlayerNotificationManager`. This is required by a
[behaviour change](https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability)
in Android 12.
* Fix focusability of `StyledPlayerView` and `StyledPlayerControlView`
popup menus on API levels prior to 26
([#9061](https://github.com/google/ExoPlayer/issues/9061)).
* Fix progress bar flickering immediately after the user seeks
([#9049](https://github.com/google/ExoPlayer/pull/9049)).
* Fix `StyledPlayerView` and `StyledPlayerControlView` popup menu items
not expanding to occupy the full width of the popup
([#9086](https://github.com/google/ExoPlayer/issues/9086)).
* Don't propagate `AttributeSet` from `SubtitleView` constructor into
`CanvasSubtitleOutput`. Just passing the `Context` is enough, and
ensures programmatic changes to the `SubtitleView` will propagate down.
* RTSP:
* Fix session description (SDP) parsing to use a HashMap-like behaviour
for duplicated attributes.
([#9014](https://github.com/google/ExoPlayer/issues/9014)).
* Allow using absolute URI in the control attribute in a media description
([#9183](https://github.com/google/ExoPlayer/issues/9183)).
* Allow the timeout to be customised via
`RtspMediaSource.Factory.setTimeoutMs`.

### 2.14.1 (2021-06-11)

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.14.1'
releaseVersionCode = 2014001
releaseVersion = '2.14.2'
releaseVersionCode = 2014002
minSdkVersion = 16
appTargetSdkVersion = 29
targetSdkVersion = 30
Expand Down
4 changes: 0 additions & 4 deletions demos/main/src/main/assets/media.exolist.json
Original file line number Diff line number Diff line change
Expand Up @@ -573,10 +573,6 @@
"name": "Google Play (Flac)",
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/flac/play.flac"
},
{
"name": "Big Buck Bunny video (FLV)",
"uri": "https://vod.leasewebcdn.com/bbb.flv?ri=1024&rs=150&start=0"
},
{
"name": "Big Buck Bunny 480p (MP4, AV1)",
"uri": "https://storage.googleapis.com/downloads.webmproject.org/av1/exoplayer/bbb-av1-480p.mp4"
Expand Down
20 changes: 12 additions & 8 deletions docs/_page_fragments/supported-formats-rtsp.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
ExoPlayer supports both live and on demand RTSP. Supported formats and network
types are listed below.
ExoPlayer supports both live and on demand RTSP. Supported sample formats and
network types are listed below.

**Supported formats**
* H264. The SDP media description must include SPS/PPS data in the fmtp
attribute for decoder initialization.
### Supported sample formats ###

* H264 (the SDP media description must include SPS/PPS data in the fmtp
attribute for decoder initialization).
* AAC (with ADTS bitstream).
* AC3.

**Supported network types**
Please comment on [this issue](https://github.com/google/ExoPlayer/issues/9210)
to request support for additional sample formats.
{:.info}

### Supported network types ###

* RTP over UDP unicast (multicast is not supported).
* Interleaved RTSP, RTP over RTSP using TCP.

> Playback of RTP streams is not supported.
Loading

0 comments on commit c50a90e

Please sign in to comment.