- 11 Jan, 2022 5 commits
-
-
When sending a MediaItem to a MediaSession with a Media3 MediaController important information is removed for privacy reason. To look up the fully populated MediaItem the mediaId is used as a key. Hence having the mediaId marhalled to the JSON representation that is sent to a Cast device enables app developers to use the same look up facilities. #minor-release PiperOrigin-RevId: 420022868
bachinger committed -
Remove wasInitialized in favor of using allocation's nullability to represent the initialization state. PiperOrigin-RevId: 420011311
aquilescanta committed -
PiperOrigin-RevId: 419864140
bachinger committed -
Only allowing TransformationExceptions to be created using the factory methods helps keeping error messages consistent. This is consistent with ExoPlaybackException. PiperOrigin-RevId: 419841025
hschlueter committed -
PiperOrigin-RevId: 419827570
bachinger committed
-
- 05 Jan, 2022 35 commits
-
-
The common module now defines all other released targets as constraints, which ensures they must have matching versions. As all other libraries indirectly depend on the common module, this declaration is only needed in here. PiperOrigin-RevId: 419776578
tonihei committed -
A session may not notify its release back to the controller when the controller is connecting while the session is releasing. Here are issues in detail: - MediaSession doesn't respond to controller's connection request when it's released. - MediaSession discards incoming connection requests when it's released. The requests are only kept in the application looper, but the looper is cleared when the session is released. This CL fixes the above issues, and fixes some flaky tests. PiperOrigin-RevId: 419756158jaewan committed -
The UI component will be switched over to use them in a subsequent commit, once the translations have been imported. Issue: google/ExoPlayer#9811 PiperOrigin-RevId: 419632617
olly committed -
PiperOrigin-RevId: 419629912
claincly committed -
Compensate for aspect ratio of input frames, so that they're applied on rectangular frames instead of square normalized-device-coordinate frames. This fixes distortion most visible when rotating any GL video 45° (non-rectangular frames) or 90° (stretched frames) Tested by rotating several landscape/portrait demo videos. (Automated tests will follow in <unknown commit>) PiperOrigin-RevId: 419619743
huangdarwin committed -
* Move checking that the output format is supported by the muxer from supportsFormat (which deals with the input format) to ensureConfigured. * Add maps for the supported MIME types so that the muxer can return what MIME types it supports rather than just check a MIME type. PiperOrigin-RevId: 419578165
hschlueter committed -
PiperOrigin-RevId: 418960700
olly committed -
The `main` role distinguishes a track from an `alternate`, but unlike `SELECTION_FLAG_DEFAULT` it doesn't imply the track should be selected unless user preferences state otherwise. e.g. in the case of a text track, the player shouldn't enable subtitle rendering just because a `main` text track is present in the manifest. The `main`/`alternate` distinction is still available through `Format.roleFlags` and the `ROLE_FLAG_MAIN` and `ROLE_FLAG_ALTERNATE` values. This behaviour was originally [added in 2.2.0](https://github.com/google/ExoPlayer/commit/7f967f305718bc2c9ee679fdd7d014eccef0356b), however at the time the `C.RoleFlags` IntDef did not exist. The IntDef was [added in 2.10.0](https://github.com/google/ExoPlayer/commit/a86a9137be5f0ed89de3d68f4c4800a7753cc881). PiperOrigin-RevId: 418937747
ibaker committed -
PiperOrigin-RevId: 418820557
hschlueter committed -
* @CryptoType is a TYPE_USE annotation, so should appear after modifiers and directly before the type. PiperOrigin-RevId: 418814902
olly committed -
* @Override is not a TYPE_USE annotation, so should appear before any modifiers and after Javadocs. @CryptoType is a TYPE_USE annotation, so should appear after modifiers and directly before the type. PiperOrigin-RevId: 418811744
olly committed -
Before this change we checked whether the playback state and playWhenReady have changed when the state from the cast device arrived. If we detected such a change we called the listener callback `onIsPlayingChanged`. However, in the case when `setPlayWhenReady(boolean)` is called on 'CastPlayer', we mask the change in `playWhenReady`, then send the play/pause request to the cast device and when the state from the cast device arrives we never detect a change because we have already masked `playWhenReady`. This change now moves the check for `isPlaying` to the same place where the state and playWhenReady is updated, so we call the `onIsPlayingChanged` callback in either case, when masking or when a changed state from the server arrives. Issue: google/ExoPlayer#9792 PiperOrigin-RevId: 418483509
bachinger committed -
PiperOrigin-RevId: 418154077
jaewan committed -
PiperOrigin-RevId: 418022431
aquilescanta committed -
This is better than silently dropping tracks as done previously. Later, we will implement fallback to transcoding to a supported MIME type. PiperOrigin-RevId: 418006258
hschlueter committed -
MediaController.getContentPosition() estimates the content position based on the last position info sent by the player and the elapsed real-time since the position info was received. After calling MediaController's play/pause/setPlayWhenReady, the position estimation logic is still applying, therefore advancing the position until the underlying player's actual position is received. This can make the MediaController's content position to be out of sync with player's actual content position. With this change, MediaController stops making content position estimations after any of play/pause/setPlayWhenReady is called and until a new position info is received from the underlying player. Tested manually with the the session demo app, pausing/resuming content from the UI. PiperOrigin-RevId: 418000800
christosts committed -
* These grouping parentheses are unnecessary; it is unlikely the code will be misinterpreted without them PiperOrigin-RevId: 417988060
olly committed -
This may one day change, but at least for now, we don't intend to support non-square pixels. PiperOrigin-RevId: 417983516
huangdarwin committed -
This more closely matches the pattern we have for all implementations except DefaultMediaSourceFactory (e.g. ProgressiveMediaSource.Factory) and other factory interfaces like (Http)DataSource.Factory. PiperOrigin-RevId: 417826803
ibaker committed -
There's no need to extend this class. Factories for subclasses of FakeMediaSource will need to re-implement createMediaSource, at which point they basically need to re-implement the whole factory interface. PiperOrigin-RevId: 417817499
ibaker committed -
This involves stabilising AdsLoader and ImaAdsLoader, as well as (Default)MediaSourceFactory and the following methods on ExoPlayer.Builder: * setMediaSourceFactory * setAdsLoaderProvider * setAdViewProvider Most of ImaAdsLoader.Builder and (Default)MediaSourceFactory remain unstable for now. PiperOrigin-RevId: 417814106
ibaker committed -
There is an open Gradle bug that dependencies with AARs are not marked as such in the created POM files (https://github.com/gradle/gradle/issues/3170). This causes issues building ExoPlayer with Maven POMs only. (Issue: google/ExoPlayer#8353). This change adds the workaround suggested on the Gradle bug until the bug is fixed. As we have a mixture of JAR and AAR dependencies, we need to maintain a lookup table to know which dependencies have AARs. The current code throws when a new dependency is added and it's not classified. #minor-release PiperOrigin-RevId: 417797407
tonihei committed -
Switch to using sentence-case naming convention but with one character prefixes for different types. This is a no-op change. PiperOrigin-RevId: 417791624
andrewlewis committed -
PiperOrigin-RevId: 417786661
hschlueter committed -
PiperOrigin-RevId: 417769018
tonihei committed -
Some have been deprecated since 2.13.0 ([commit](https://github.com/google/ExoPlayer/commit/5b9fa7d7d9d68dec060489cbb307b1be28a7575a)): * `setDrmSessionManager(DrmSessionManager)` * `setDrmHttpDataSourceFactory(HttpDataSource.Factory)` * `setDrmUserAgent(String)` And the rest have been deprecated since 2.12.0 ([commit](https://github.com/google/ExoPlayer/commit/d1bbd3507a818e14be965c300938f9d51f8b7836)): * `setStreamKeys(List<String>)` * `createMediaSource(Uri)` PiperOrigin-RevId: 417622794
ibaker committed -
Move static factories into a separate class and make it implement an interface that will let tests customize encoder/decoder creation. PiperOrigin-RevId: 417610825
claincly committed -
Inspired by my investigation of Issue: google/ExoPlayer#9797 #minor-release PiperOrigin-RevId: 417609076
ibaker committed -
The spec renamed this type of playlist in the latest revision to use a more inclusive technical term (see https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-10) PiperOrigin-RevId: 417560274
tonihei committed -
PiperOrigin-RevId: 417428182
ibaker committed -
The old name is kept in exoplayer2. PiperOrigin-RevId: 417378759
ibaker committed -
PiperOrigin-RevId: 417378468
ibaker committed -
The whole class is package-private, so this is a no-op, but it makes the intent of the visibililty more clear. PiperOrigin-RevId: 417377659
ibaker committed -
For the media3 codebase the timeline images need to be under the common module. Verified results in an empty commit for ExoPlayer GitHub. PiperOrigin-RevId: 416850853
andrewlewis committed -
PiperOrigin-RevId: 416848472
andrewlewis committed
-