- 17 Dec, 2020 15 commits
-
-
PiperOrigin-RevId: 347657903
olly committed -
Also make some related naming improvements. PiperOrigin-RevId: 347653802
olly committed -
Moving the fullscreen button around depending on modes is quite error prone. There is currently a bug where the order of the settings cog and fullscreen button can end up being swapped around as a result of moving the fullscreen button to the minimal controls and back again. It's less error prone just to have a second fullscreen button that's always part of the minimal controls. PiperOrigin-RevId: 347639484
olly committed -
Also make some related naming improvements. PiperOrigin-RevId: 347631916
olly committed -
- In slow motion videos flattened by Samsung, the saut box is kept but only have the 4 first bytes (author field). - In Samsung normal videos, the recording mode is zero. In these cases, skip this box. PiperOrigin-RevId: 347577303
kimvde committed -
Issue: #3750 PiperOrigin-RevId: 347572122
andrewlewis committed -
Previously the `AdTagLoader` only had one listener which meant that updates that should affect all periods with matching identifiers in the timeline only affected the last-attached one. Fix this by having `AdTagLoader` track all its listeners. Issue: #3750 PiperOrigin-RevId: 347571323
andrewlewis committed -
Currently we don't remove the AnalyticsListeners registed to SimpleExoPlayer after calling release. We didn't do this mainly because there are messages triggered as part of the release that still cause interesting events (e.g. decoderDisabled with the final counters, final dropped counts etc). However, we should fully release/remove the listeners once these pending events are delivered to: 1. Not leak listener implementations (e.g. if the listener is an Activity) 2. Ensure we don't send future events that may cause listeners to unintentionally access released or nulled variables. This could happen for example if someone calls a player method after the player was released. In addition, we can add a onPlayerReleased callback to AnalyticsListener to allow implementations to clean themselves up once all pending events are delivered. PiperOrigin-RevId: 347434344tonihei committed -
It is more realistic for each source to have its own listener and to share `TimelineWindowDefinition`s between them. Issue: #3750 PiperOrigin-RevId: 347398769
andrewlewis committed -
#exofixit PiperOrigin-RevId: 347389531
bachinger committed -
PiperOrigin-RevId: 347388172
christosts committed -
PiperOrigin-RevId: 347386108
christosts committed -
This will allow player to be moved to common. #player-to-common PiperOrigin-RevId: 347375344
krocard committed -
#exofixit PiperOrigin-RevId: 347375323
bachinger committed -
PiperOrigin-RevId: 347351440
olly committed
-
- 14 Dec, 2020 25 commits
-
-
Issue: #8011 #minor-release PiperOrigin-RevId: 347288689
sungsoo committed -
This means it gets pulled in when apps depend on ExoPlayer locally: https://github.com/google/ExoPlayer/blob/release-v2/README.md#locally This resolves the missing snapshot error that people see currently, because the existing repository config is in the top-level ExoPlayer build.gradle file which isn't executed when depending on ExoPlayer locally. Issue: #8332 Issue: #7932 PiperOrigin-RevId: 347245078
ibaker committed -
Issue: #8272 #minor-release PiperOrigin-RevId: 347010412
olly committed -
- Re-layer layout so that the central controls end up on top (and, more importantly, have preference for receiving touch input) if the view is so small that elements start to overlap. This requires splitting the background and the controls themselves. - Fix bug that could cause the scrubber to not be hidden in minimal mode, if the mode is entered when the controls are not visible. - Fix positioning of minimal controls. - Remove scrubber padding in minimal mode, since the scrubber - Remove unused bar_gravity value. PiperOrigin-RevId: 347008789
olly committed -
- Replace some magic constants with use of layout gravity where possible - Remove some attributes that are set in code anyway - Remove some attributes that are set to their default values - Inline transport controls - Minor naming cleanup PiperOrigin-RevId: 346980595
olly committed -
#exofixit PiperOrigin-RevId: 346975740
krocard committed -
#exofixit PiperOrigin-RevId: 346972678
bachinger committed -
Issue: #8229 #exofixit PiperOrigin-RevId: 346968046
bachinger committed -
This is needed for slomo audio flattening. PiperOrigin-RevId: 346965990
kimvde committed -
PiperOrigin-RevId: 346954787
ibaker committed -
Issue: #5011 PiperOrigin-RevId: 346828103
bachinger committed -
Make the MediaCodecFactory injectable from the constructors of MediaCodecAudioRenderer and MediaCodecVideoRenderer. PiperOrigin-RevId: 346784661
christosts committed -
PiperOrigin-RevId: 346764371
olly committed -
Before this we added the resource info to Truth assertions, but the same info is missing if an exception bubbles out of the SUT. PiperOrigin-RevId: 346757960
ibaker committed -
PiperOrigin-RevId: 346554044
olly committed -
When a listener is removed or released we may not have called onEvents for events that happened before this point. To ensure listeners don't miss events we need to trigger a final onEvents with all events we have happened so far (if any). PiperOrigin-RevId: 346553030
tonihei committed -
In a later change, MediaCoderAdapter.Factory will be injectable to MediaCodecRenderer. PiperOrigin-RevId: 346525171
christosts committed -
PiperOrigin-RevId: 346346359
bachinger committed -
This is useful in cases where the client is not interested in DRM. PiperOrigin-RevId: 346313024
aquilescanta committed -
PiperOrigin-RevId: 346270250
kimvde committed -
Fix Matroska, Heif, FLAC, Ogg, Opus, Vorbis extractor nullness check. There should be no functional change. Every media that fail to be parsed should still fail. Every media that parsed successfully should still succeed. This refactor aims to push all nullness constraints up the call stack to clarify each API nullness contract. This ensures implementation and caller have to prove their respective contract close to where such logic is implemented. This also allows to fail early if an nullness contract is broken instead of deep in the call stack. For example, by adding a requirement that all implementation of `StreamReader.readHeaders` have to initialize `setupData.format` if the return false, each overriding method is forced to prove this next to the logic initializing it. This also means the runtime check might not be needed because the nullnessChecker can prove itself the contract holds. This is in contrast with adding a null check at the point of usage, which will not catch logic errors where they are produce, but later when they are perceived; making it harder to debug and catching the issue at run time instead of compile time. #exofixit PiperOrigin-RevId: 346163124
krocard committed -
This will allow Player to move in common without trackSelector and all its many dependency. Currently all users of `getTrackSelector` are downcasting it in `DefaultTrackSelector`, this change thus does not break them. Track selection API is intended to be reworked, methods will be added to the currently empty interface. #player-to-common PiperOrigin-RevId: 346159765
krocard committed -
This is needed to move Player in common. #player-to-common PiperOrigin-RevId: 346157905
krocard committed -
This is needed to move ExoPlayerException in common. The follow up cl moves MediaPeriodId completely. #player-to-common PiperOrigin-RevId: 346133091
krocard committed -
Issue: #5011 PiperOrigin-RevId: 346080748
bachinger committed
-