- 21 Feb, 2022 40 commits
-
-
We have two ways to choose the minDurationForQualityIncreaseMs value in AdaptiveTrackSelection: use the configured value for non-live or when enough buffered data is available, or use a fraction of the available duration to allow switching when playing close to the live edge. The decision point when to use which value isn't quite consistent because we compare against availableDurationUs before making the adjustments. This means there is range of values where no up-switching is possible despite perfect buffering. Fix this by choosing the minimum of both values. Issue: google/ExoPlayer#9784 #minor-release PiperOrigin-RevId: 428474332
tonihei committed -
The timeline used to map ad groups to periods needs to report the original content period duration without subtracting the serverside inserted ad duration. When marking played ads in onPositionDiscontinuity, the public timeline has been used which crashed the app when the ads media source is playing on a window index different to zero (in a playlist). #minor-release PiperOrigin-RevId: 428465833
bachinger committed -
On Samsung S21 with light theme the debug labels weren't showing up because the player view was visible (with a black background) while the transformation was in progress, matching the debug label text color. Hide the player view until the transformation is complete to fix this. Also tweak the layout slightly to add space between the card border and the labels. #mse-bug-week PiperOrigin-RevId: 428455824
andrewlewis committed -
This prevents it to be stripped by R8 if a custom one is passed. #minor-release PiperOrigin-RevId: 428034999
krocard committed -
Ignorable ad periods are skipped to resolve the media period id with the ad playback state of the resulting period. In case of a change in the period position un-played ad periods are rolled forward to be played. PiperOrigin-RevId: 428011116
bachinger committed -
This adds some missing calls to verifyApplicationThread to ExoPlayerImpl. Now all public methods start with this call, except listener registrations because registration after construction on a background thread is allowed and supported. PiperOrigin-RevId: 428009498
tonihei committed -
The class is deprecated and all tests should preferably use the non-deprecated code paths. PiperOrigin-RevId: 428007986
tonihei committed -
They are not normally displayed in any size-restricted UI element and don't need a character limit. #minor-release PiperOrigin-RevId: 427998164
tonihei committed -
This will allow R8 to strip out the implementation if it is not needed for an app. #minor-release PiperOrigin-RevId: 427983730
krocard committed -
#minor-release PiperOrigin-RevId: 427965501
kimvde committed -
All the functionality of SimpleExoPlayer has moved to ExoPlayerImpl. Hence, ExoPlayerImpl can fulfil its own name and become an ExoPlayer implementation. As a result, ExoPlayer.Builder can return ExoPlayerImpl directly without using SimpleExoPlayer at all. PiperOrigin-RevId: 427947028
tonihei committed -
#minor-release PiperOrigin-RevId: 427712140
tonihei committed -
PiperOrigin-RevId: 427679101
tonihei committed -
And move them in separate top level classes so that presubmit runs them. #minor-release PiperOrigin-RevId: 427482430
krocard committed -
And also add a test that all Player.Listener events are forwarded to AnalyticsListener. The AnalyticsCollector also needlessly implemented Video/AudioRendererEventListener, which is not needed because all of the equivalent methods are called directly and never through the interface. #minor-release PiperOrigin-RevId: 427478000
tonihei committed -
PiperOrigin-RevId: 427474975
olly committed -
Right now, the option to build an IMA DAI URI programmatically is still package-private. To simplify the process, we can remove the StreamRequest wrapper and directly provide an URI builder. The same class can provide some package-private helper methods to parse the created URI. #minor-release PiperOrigin-RevId: 427445326
tonihei committed -
#minor-release PiperOrigin-RevId: 427439588
olly committed -
There are two sets of listeners in ExoPlayerImpl at the moment, which can be merged together to use a single ListenerSet. This has the added advantage that the events that were previously sent through the ArraySet get additional guarantees provided by ListenerSet (e.g. correct event ordering and onEvents triggered). Also add missing constants for onEvents to ensure all Player.Listener methods have an corresponding constant. PiperOrigin-RevId: 427415349
tonihei committed -
#minor-release PiperOrigin-RevId: 427216911
ibaker committed -
This brings listener invocations closer together and removes unnecessary methods. Also fixes a bug where a change in track selection parameters only queued a callback but never flushed it to actually inform the listeners. #minor-release PiperOrigin-RevId: 427201691
tonihei committed -
In some cases (whose where we previously used EventListener), AnalyticsCollector is registered as a listener to receive updates, in other cases it is called directly. Avoid this inconsistent handling by registering it as normal listener and removing all callbacks that are handled by the normal listener flow. The remaining direct usages of AnalyticsCollector calls are those callbacks that have no equivalent in Player.Listener. #minor-release PiperOrigin-RevId: 427201525
tonihei committed -
With this change, MediaCodecAudioRenderer always configures MediaCodec with max output channels set to 99 on API 32+. #minor-release PiperOrigin-RevId: 427192801
christosts committed -
SimpleExoPlayer used to register a listener on ExoPlayerImpl for the old EventListener callbacks. Now both classes are merged, this is no longer needed and should be removed in favor of calling methods directly. #minor-release PiperOrigin-RevId: 427187875
tonihei committed -
We have logic to not immediately interrupt playback when an ad group fails to load and instead let the current content play and transition at the point where the ad group should have been. This logic was broken by https://github.com/google/ExoPlayer/commit/dcbdbe53417d6642f2be98c82ac941d34908bd49 because of one of the conditions used MediaPeriodId.adGroupIndex, which is always -1 for content ids. It still worked for the last ad group because the next ad group index was C.INDEX_UNSET. Fix the issue and amend the test that was meant to catch this to test the ad failures for the last ad and previous ads. Also fix the PositionInfo reported in such a case, which was also wrong. Issue: google/ExoPlayer#9929 #minor-release PiperOrigin-RevId: 427143223
tonihei committed -
PiperOrigin-RevId: 427133919
tonihei committed -
PiperOrigin-RevId: 427133817
tonihei committed -
https://github.com/google/ExoPlayer/commit/03e645bab336578c155e46c4114534d346a06cc5
*** Original commit *** Rollback of https://github.com/google/ExoPlayer/commit/9b8ed581d06e2c21b114abc07ed5435b2c96391d *** Original commit *** Add missing imports to ExoPlayerImpl These were missed in https://github.com/google/ExoPlayer/commit/3bb0210d229ffd1455d546fa738dfebbac50f552 #minor-release *** *** PiperOrigin-RevId: 427131696
tonihei committed -
PiperOrigin-RevId: 427131569
tonihei committed -
https://github.com/google/ExoPlayer/commit/12be2bc35791bd00c3af8b403f5db7b14074c55c
*** Original commit *** Rollback of https://github.com/google/ExoPlayer/commit/3bb0210d229ffd1455d546fa738dfebbac50f552 *** Original commit *** Move SimpleExoPlayer logic into ExoPlayerImpl This makes SimpleExoPlayer a simple forwarding wrapper which can be removed in the future. The changes are all purely mechanical with none of the potential further simplifications made yet... *** PiperOrigin-RevId: 427131338
tonihei committed -
Aligning the byte size calculation with the sizes defined in opus_jni.cc for the `outputFloat=true` case #minor-release PiperOrigin-RevId: 427028982
olly committed -
https://github.com/google/ExoPlayer/commit/3bb0210d229ffd1455d546fa738dfebbac50f552
*** Original commit *** Move SimpleExoPlayer logic into ExoPlayerImpl This makes SimpleExoPlayer a simple forwarding wrapper which can be removed in the future. The changes are all purely mechanical with none of the potential further simplifications made yet. The only exceptions are name clashes where either EPI or SEP was calling a method in one of the classes and both classes had different implementations for the same method name. In these cases we needed to disambiguate between the two different implementations (e *** PiperOrigin-RevId: 426997821
olly committed -
PiperOrigin-RevId: 426996878
olly committed -
https://github.com/google/ExoPlayer/commit/9b8ed581d06e2c21b114abc07ed5435b2c96391d
*** Original commit *** Add missing imports to ExoPlayerImpl These were missed in https://github.com/google/ExoPlayer/commit/3bb0210d229ffd1455d546fa738dfebbac50f552 #minor-release *** PiperOrigin-RevId: 426996503
olly committed -
PiperOrigin-RevId: 426994820
olly committed -
PiperOrigin-RevId: 426994559
olly committed -
Transformer's minimum API level is 21, where-as the full library is still targeting 16. Hence we should no longer include the transformer module in the full library dependency. #minor-release PiperOrigin-RevId: 426958045
olly committed -
PiperOrigin-RevId: 426953267
Ian Baker committed -
#minor-release PiperOrigin-RevId: 426938026
ibaker committed -
Some strings didn't mention the context in which they are used (for example as item in a list, or for accessibility). This makes it harder for translators to choose the most appropriate translation and grammar. Also fix repeat and shuffle mode button accessibility descriptions to indicate the action, not the current state. PiperOrigin-RevId: 426924163
tonihei committed
-