- 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 8 commits
-
-
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 -
The fix for Issue: #8776 was to release and null-out dummySurface if it doesn't match the security level of the decoder. But it's possible that this.surface is already set to this.dummySurface, in which case we must also null out this.surface otherwise we will later try and re-use the old, released DummySurface instance. This logic already exists in MCVR#onReset, so I pulled it into a releaseDummySurface() helper function. Issue: #9476 #minor-release PiperOrigin-RevId: 399420476
ibaker committed -
PiperOrigin-RevId: 399400909
bachinger committed -
An upcoming change will update build() to return Player. PiperOrigin-RevId: 399382297
ibaker committed -
PiperOrigin-RevId: 399206106
ibaker committed -
PiperOrigin-RevId: 399179751
bachinger committed -
PiperOrigin-RevId: 399139842
kimvde committed -
PiperOrigin-RevId: 399108998
gyumin committed
-
- 24 Sep, 2021 7 commits
-
-
PiperOrigin-RevId: 398749045
Oliver Woodman committed -
temporary pulled out from the main cl to keep code small for review PiperOrigin-RevId: 398746806
olly committed -
This aligns with other MediaItem.FooConfiguration class names and also more clearly represents that this class encapsulates information used for local playback that is lost when serializing MediaItem between processes. The old class and fields are kept (deprecated) for backwards compatibility. PiperOrigin-RevId: 398742708
ibaker committed -
- If DownloadService is configured to run as a foreground service, it will remain started and in the foreground when downloads are waiting for requirements to be met, with a suitable "waiting for XYZ" message in the notification. This is necessary because new foreground service restrictions in Android 12 prevent to service from being restarted from the background. - Cases where requirements are not supported by the Scheduler will be handled in the same way, even on earlier versions of Android. So will cases where a Scheduler is not provided. - The Scheduler will still be used on earlier versions of Android where possible. Note: We could technically continue to use the old behavior on Android 12 in cases where the containing application still has a targetSdkVersion corresponding to Android 11 or earlier. However, in practice, there seems to be little value in doing this. PiperOrigin-RevId: 398720114
olly committed -
This is currently required to make javadoc generation via Dackka succeed. PiperOrigin-RevId: 398518538
andrewlewis committed -
PiperOrigin-RevId: 398489644
gyumin committed -
This brings in a fix that prevented documentation generation due to `<caption>` tags not being supported. PiperOrigin-RevId: 398475800
andrewlewis committed
-
- 23 Sep, 2021 10 commits
-
-
Annotate build() with @InlineMe. I will update build() to return Player in a future change. PiperOrigin-RevId: 398446323
ibaker committed -
PiperOrigin-RevId: 398262695
bachinger committed -
PiperOrigin-RevId: 398247348
bachinger committed -
PiperOrigin-RevId: 398232186
ibaker committed -
Calling AudioManager.isOffloadedPlaybackSupported is available since API 29 only. PiperOrigin-RevId: 398229498
bachinger committed -
PiperOrigin-RevId: 398215071
ibaker committed -
PiperOrigin-RevId: 398200055
ibaker committed -
PiperOrigin-RevId: 398185843
ibaker committed -
These give some documentation-as-code for a clearkey integration with ExoPlayer. #exofixit PiperOrigin-RevId: 398017708
ibaker committed -
The MIME type is currently required to select a SubtitleDecoder implementation in the TextRenderer. Future changes might remove this requirement, so we pre-emptively mark the field as @Nullable. The change in SingleSampleMediaSource ensures the track still maps to the TextRenderer, otherwise it shows up as unmapped. Passing null MIME type to MediaItem.Subtitle constructor now results in this from EventLogger: TextRenderer [ Group:0, adaptive_supported=N/A [ [ ] Track:0, id=null, mimeType=text/x-unknown, language=en, supported=NO_UNSUPPORTED_TYPE ] ] PiperOrigin-RevId: 398010809ibaker committed
-