- 05 Oct, 2021 5 commits
-
-
https://github.com/google/ExoPlayer/commit/9788750ddb23b2064dddf99d6e1ea491b2e45cea
*** Original commit *** Simplify GL program handling. *** PiperOrigin-RevId: 400970170
claincly committed -
https://github.com/google/ExoPlayer/commit/912c47ff6f4abc88d33665d27da33ec7997358ef
*** Original commit *** Rollback of https://github.com/google/ExoPlayer/commit/8ed6c9fcf5e22ad859023703e479e21b2f578f83 *** Original commit *** Fix capitalization of language in track selector Issue: #9452 *** *** PiperOrigin-RevId: 400942287
olly committed -
TracksInfo is very similar to `MappingTrackSelector.MappedTracksInfo` with some fields removed to simplify the Player API, notably it doesn't expose the renderer concept. A significant difference is the addition of a `selected` boolean field which avoids having a separate `getCurrentTrackSelection` API. This cl is a part of the bigger track selection change, splitted for ease of review. In particular, the MediaSession implementation and UI usage have been slitted in child cls. Find all cls with the tag: #player-track-selection PiperOrigin-RevId: 400937124
krocard committed -
PiperOrigin-RevId: 400742025
bachinger committed -
This change makes asynchronous queueing non-experimental, it enables the feature by default on devices with API level >= 31 (Android 12+) and exposes APIs for apps to either fully opt-in or opt-out from the feature. The choice to use or not asynchronous queueing is moved out of MediaCodecRenderer to a new MediaCodecAdapter factory, the DefaultMediaCodecAdapterFactory. This is because, at the moment, if an app passes a custom adapter factory to a MediaCodecRenderer and then enables asynchronous queueing on it, the custom adapter factory is not used but this is not visible to the user. The default behavior of DefaultMediaCodecAdapterFactory is to create asynchronous MediaCodec adapters for devices with API level >= 31 (Android 12+), and synchronous MediaCodec adapters on devices with older API versions. DefaultMediaCodecAdapterFactory exposes methods to force enable or force disable the use of asynchronous adapters so that applications can enable asynchronous queueing on devices with API versions before 31 (but not before 23), or fully disable the feature. For applications that build MediaCodecRenderers directly, they will need to create a DefaultMediaCodecAdapterFactory and pass it to the renderer constructor. For applications that rely on the DefaultRenderersFactory, additional methods have been added on the DefaultRenderersFactory to control enabling/disabling asynchronous queueing. Issue: #6348 PiperOrigin-RevId: 400733506
christosts committed
-
- 04 Oct, 2021 13 commits
-
-
Issue: #9472 PiperOrigin-RevId: 400715255
kimvde committed -
https://github.com/google/ExoPlayer/commit/8ed6c9fcf5e22ad859023703e479e21b2f578f83
*** Original commit *** Fix capitalization of language in track selector Issue: #9452 *** PiperOrigin-RevId: 400706984
olly committed -
PiperOrigin-RevId: 400706800
olly committed -
PiperOrigin-RevId: 400697945
claincly committed -
PiperOrigin-RevId: 400681582
bachinger committed -
Issue: #9452 PiperOrigin-RevId: 400680794
olly committed -
Removes subtitle allow-list by using SubtitleDecoderFactory.DEFAULT. When the format is unsupported, the extractor registers one track and sends the format with the Format#sampleMimeType set to TEXT_UNKNOWN and Format#codecs field set to the actual subtitle MIME type. The TextRenderer will recognize this MIME Type as not supported which is gonna be visible in the event log. PiperOrigin-RevId: 400679058
ibaker committed -
This avoid break and continue after affecting the definition array. PiperOrigin-RevId: 400671927
krocard committed -
PiperOrigin-RevId: 400666736
bachinger committed -
PiperOrigin-RevId: 400224459
bachinger committed -
It calls through to a deprecated method, which is unusual for a convenience method, and the deprecated method has various implementations. This allows for a smoother removal of stop(boolean) and removes an obstacle for the ExoPlayer-SimpleExoPlayer merge. Adds missing @Deprecated tags to some Players. PiperOrigin-RevId: 400213422
samrobinson committed -
The format should have the following fields set (as specified in the javadoc): - width - height - frame rate, and - averageBitrate. PiperOrigin-RevId: 400204510
claincly committed -
The old methods are deprecated and left in place for backwards compatibility. PiperOrigin-RevId: 400188084
ibaker committed
-
- 03 Oct, 2021 1 commit
-
-
Andrew Shu committed
-
- 01 Oct, 2021 5 commits
-
-
Usages of the (already deprecated) Subtitle constructors were not migrated, as it would require migrating to the Builder which is a more involved change. PiperOrigin-RevId: 400153139
ibaker committed -
PiperOrigin-RevId: 400151886
claincly committed -
This is more consistent with the other MediaItem inner classes which are all Configurations. The old class and fields are left deprecated for backwards compatibility. The deprecated Subtitle constructors are not moved to SubtitleConfiguration. PiperOrigin-RevId: 400144640
ibaker committed -
If callers need an ExoPlayer instance they should use buildExoPlayer(). Also remove the @InlineMe annotation now these methods are no longer equivalent. PiperOrigin-RevId: 400143239
ibaker committed -
PiperOrigin-RevId: 400134426
Oliver Woodman committed
-
- 30 Sep, 2021 10 commits
-
-
An upcoming change will update build() to return Player. PiperOrigin-RevId: 399981901
ibaker committed -
This moves `SelectionOverride` from `DefaultTrackSelector` to `TrackSelectionParameters`. It is then use to allow track selection override per track selection array. Note that contrary to `DefaultTrackSelector.Parameters.selectionOverride`, the renderer concept is not exposed. This cl is a part of the bigger track selection change, splitted for ease of review. Find all cls with the tag: #player-track-selection PiperOrigin-RevId: 399933612
krocard committed -
PiperOrigin-RevId: 399923140
bachinger committed -
Issue: #9458 PiperOrigin-RevId: 399901865
samrobinson committed -
This will be removed after the survey has closed in ~1 month. PiperOrigin-RevId: 399890121
olly committed -
All utility classes in the common module has the same naming convention. PiperOrigin-RevId: 399831748
gyumin committed -
There are two very similar tests checking for release events, one running with Robolectric and one instrumentation test. The instrumentation test only adds the interaction with the player to release it while the renderers are active. This same interaction can be added to the Robolectric test as well. This arguably improves the realism of the Robolectric test too as we listen for real player events instead of simulating the same events. PiperOrigin-RevId: 399694869
tonihei committed -
PiperOrigin-RevId: 399669963
bachinger committed -
PiperOrigin-RevId: 399661676
bachinger committed -
PiperOrigin-RevId: 399651641
ibaker committed
-
- 29 Sep, 2021 5 commits
-
-
PiperOrigin-RevId: 399510059
bachinger committed -
PiperOrigin-RevId: 399471555
ibaker committed -
This is more consistent with the other MediaItem inner classes which are all Configurations. The old class and fields are left deprecated for backwards compatibility. MediaItem.Builder#setClippingProperties is directly renamed (without deprecation) because it only exists on the dev-v2 branch and hasn't been included in a numbered ExoPlayer release. PiperOrigin-RevId: 399471414
ibaker committed -
DashTestRunner.setWidevineInfo instantiates a Widevine MediaDrm to check for L1 support, which fails on GMS devices that don't support Widevine. The Widevine tests should be skipped on these devices, but the setWidevineInfo call happens in @Before before the skipping logic inside the test. This change moves the skipping logic to the beginning of @Before, and uses Assume to ensure the test isn't run. This will also report the test as 'skipped due to unmet assumption' which is more precise than 'passed'. PiperOrigin-RevId: 399452734
ibaker committed -
PiperOrigin-RevId: 399444511
tonihei committed
-
- 28 Sep, 2021 1 commit
-
-
Before releasing r2.15.0, we had a regression that crashed PlaybackStatsListener. A change in the AnalyticsCollector made it to send an additional AnalyticsListener.onEvents() callback after calling Player.release() and AnalyticsListener.onEvents() appeared to arrive with event times that were not monotonically increasing. The AnalyticsListener.onEvents() callback that contained AnalyticsListener.EVENT_PLAYER_RELEASED was called with a timestamp that was smaller than event times of previously AnalyticsListener.onEvents() calls. A first fix changed the order of events being forwarded to AnalyticsListener. Upon calling Player.release(), the AnalyticsCollector would call AnalyticsListener.onPlayerReleased() and its associated AnalyticsListener.onEvents() on the same stack call. This fix maintained that event times are monotonically increasing, but made AnalyticsListener.onPlayerReleased() be called earlier. This change: - Further changes AnalyticsCollector to ensure that AnalyticsListener.onPlayerReleased() and its related AnalyticsListener.onEvents() are the last callbacks to be called, and the associated timestamp is bigger than previously reported event times. - Adds an instrumentation test to guard against the regression. PiperOrigin-RevId: 399437724
christosts committed
-