- 21 Feb, 2022 9 commits
-
-
Remove most of the customisation documentation, since StyledPlayerView isn't really designed to be customised as deeply as PlayerView. Also remove most documentation around StyledPlayerControlView, especially as a standalone controller class - since it doesn't work well for this use-case. #minor-release PiperOrigin-RevId: 426090762
ibaker committed -
PiperOrigin-RevId: 426089165
tonihei committed -
PiperOrigin-RevId: 425874534
ibaker committed -
This allows the same DefaultMediaSourceFactory instance to be used as the contentMediaSourceFactory inside ImaServerSideAdInsertionMediaSource. PiperOrigin-RevId: 425846609
ibaker committed -
#minor-release PiperOrigin-RevId: 425842813
bachinger committed -
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 (example: ExoPlayerImpl.setListener was renamed to setEventListener). #minor-release PiperOrigin-RevId: 425823095
tonihei committed -
Tested by confirming transformations still work and write to a output file in a scoped-storage directory on a: * Nexus 6P API 23 emulator * Google Pixel 4 API 31 physical device PiperOrigin-RevId: 425644266
huangdarwin committed -
On devices with a smaller screen / low resolution not all options fit, so scrolling is needed. PiperOrigin-RevId: 425635224
hschlueter committed -
More info: go/immutable-map-buildorthrow-lsc NOTE: if the source of truth for this code is *NOT* `third_party`, please let me know and I'll revert this CL (and please consider upstreaming this change yourself). #inlineme Tested: TAP for global presubmit queue passed after automated deflaking of failures: http://mondo/deflaker/run/530857d2-45cb-4069-a234-48c5efe945f1 http://mondo/deflaker/run/0dce4296-e6bb-42d2-8b64-b393f45b6ad3 http://test/OCL:425453729:BASE:425451020:1643699365244:811c1a24 PiperOrigin-RevId: 425616165olly committed
-
- 18 Feb, 2022 4 commits
-
-
In some cases we create empty playback metrics with no corresponding events (e.g. when an app seeks to a new media item and immediately releases the player). There is no benefit in having completely empty metrics entries, so it's cleaner to not report them in such cases. #minor-release PiperOrigin-RevId: 425609010
tonihei committed -
#minor-release PiperOrigin-RevId: 425589448
bachinger committed -
- Add a checkbox in the demo app to enable experimental HDR editing. - Add an `experimental_` method to `TransformationRequest` to enable HDR editing. - Add fragment/vertex shaders for the experimental HDR pipeline. The main difference compared to the existing shaders is that we sample from the decoder in YUV rather than RGB (because the YUV -> RGB conversion in the graphics driver is not precisely defined, so we need to do this to get consistent results), which requires the use of ES 3, and then do a crude YUV -> RGB conversion in the shader (ignoring the input color primaries for now). - When HDR editing is enabled, we force using `FrameEditor` (no passthrough) to avoid the need to select another edit operation, and use the new shaders. The `EGLContext` and `EGLSurface` also need to be set up differently for this path. PiperOrigin-RevId: 425570639
andrewlewis committed -
Issue: google/ExoPlayer#8213 #minor-release PiperOrigin-RevId: 425381474
ibaker committed
-
- 17 Feb, 2022 1 commit
-
-
This class is not ready to be released, and only exists in the dev-v2 branch.
Ian Baker committed
-
- 01 Feb, 2022 9 commits
-
-
TransformerTest sounds like a unit test for Transformer but these tests test behaviour that involves multiple stages of the pipeline. PiperOrigin-RevId: 425378369
hschlueter committed -
PiperOrigin-RevId: 425341138
kimvde committed -
Add a constructor that takes a DrmSessionManagerProvider. This allows R8 to strip the default implementation. #minor-release PiperOrigin-RevId: 425330083
krocard committed -
Some phone with limited memory can't allocate bigger shared memory buffers. This might or might not be related to Binder's 1M transaction limit. Tested on Pixel 4 by setting the minimum buffer size to 1h. https://github.com/google/ExoPlayer/issues/9712 #minor-release PiperOrigin-RevId: 425324536
krocard committed -
This makes sure the number of ads in an ad group matches to the number of periods representing an ad group in a multi-period timeline. This makes it easier to accurately mark ads as played in multi-period windows which is needed to correctly prevent seeking over unplayed ads. PiperOrigin-RevId: 425317085
bachinger committed -
If a) the end of stream buffer arrives with a frame rather than an empty buffer or b) processDataV29() renders several decoder output buffers to the FrameEditor's input Surface immediately before encountering the EOS flag these frames were previously stuck in the FrameEditor's input Surface and never fed to the encoder. PiperOrigin-RevId: 424898820hschlueter committed -
This test tests that all frames are processed when transcoding video to a different sample MIME type (and that the transformation completes successfully). PiperOrigin-RevId: 424896014
hschlueter committed -
This fixes some warnings that show up in Android Studio (due to using methods that autobox unnecessarily). PiperOrigin-RevId: 424892352
andrewlewis committed -
This allows access to custom renderers, for example to send messages or to access custom fields and methods. PiperOrigin-RevId: 424878963
tonihei committed
-
- 28 Jan, 2022 17 commits
-
-
https://github.com/google/ExoPlayer/commit/651fa0dbb7c935480ab82a4ddf370b43134a45ab
*** Original commit *** Apply suggested AVC profile depending on the API version. *** PiperOrigin-RevId: 424856077
claincly committed -
PiperOrigin-RevId: 424850283
andrewlewis committed -
Enforcing the correct thread usage has been enabled since 2.13.0. Opting-out of this enforement is dangerous as it can hide very hard to debug bugs. PiperOrigin-RevId: 424815808
tonihei committed -
If muxerWrapper.release() was throwing an exception, the progress state was not updated and getProgress could throw an exception. #minor-release PiperOrigin-RevId: 424696783
kimvde committed -
This shouldn't be required for transformer instrumentation tests, as they don't use a foreground service. PiperOrigin-RevId: 424654463
andrewlewis committed -
The second error is probably a consequence of the first one. #minor-release PiperOrigin-RevId: 424619944
kimvde committed -
When the decoder output buffer was partially read, a call to Codec.getOutputBuffer() was returning the same buffer, but with the position reset to 0. The reason was that, in Codec.maybeDequeueAndSetOutputBuffer(), mediaCodec.getOutputBuffer() was called with the same buffer index (L350 in old rev), even though there was already a buffer available (outputBufferIndex >=0). This change avoids calling mediaCodec.getOutputBuffer() if the previous buffer has not been released. #minor-release PiperOrigin-RevId: 424612197
kimvde committed -
If the encoder picks a fallback resolution the video pipeline needs to take this into account when configuring the frameEditor and when setting up the fallback TransformationRequest that's passed to the fallbackListener. PiperOrigin-RevId: 424611290
hschlueter committed -
Move the code in its own class as DefaultAudioTrack is getting very big. It also help for testability. The new class is easily configurable and highly tested. Manual test was used to catch any regression. https://github.com/google/ExoPlayer/issues/8891 PiperOrigin-RevId: 424602011
krocard committed -
AnalyticsCollector can't be null when passed into ExoPlayerImplInternal, so there is no need to pass it around as nullable. PiperOrigin-RevId: 424594031
tonihei committed -
Two of the sessions are finished at the same time in the test and the order of the corresponding callbacks depends on the randomly generated session string and the order these strings are stored in a HashSet. Update test to assert both callbacks are called and they contain the right arguments, but don't assert on the order of these two callbacks. PiperOrigin-RevId: 424548819
tonihei committed -
Ad playback shouldn't be affected by manual speed adjustments set by the user. This change enforces unit speed for ad playback. Issue: google/ExoPlayer#9018 PiperOrigin-RevId: 424546258
tonihei committed -
This only affects playbacks using the experimentalUseProgressiveMediaSourceForSubtitles method. Also update the SingleSampleMediaSource instantiation to be more similar, to try and highlight differences like this in future. PiperOrigin-RevId: 424545980
ibaker committed -
In some cases we need to update the PlaybackParameters at period boundaries, for example when switching from live to VOD and live playback speed adjustment was still active at the point of switching. Currently, we send the update when the playing MediaPeriod changes in EPII, which is slightly too late because the new speed gets only applied after the entire existing AudioTrack buffer has been played out. We can time the update slightly better by updating the values at the point where we change the reading period. This makes the update slightly too early because it also applies to all samples currently in the decoder. But generally, this is a lot better because the time spent in the decoder is likely to be considerably lower than the duration of the AudioTrack buffer. Note that this change isn't perfectly aligning to the period boundary, but reduces the number of samples with the wrong speed to a minimum. If we are getting around to add additional code that allows updating the speed at exactly the boundary, it also needs to be triggered from the reading period update, so the new code location is also helpful in the future. Issue: google/ExoPlayer#9018 PiperOrigin-RevId: 424540551
tonihei committed -
When I locally link to exoplayer source modules as described in the README and I do this directly into a fig/citc client, I get an error saying "missing_aar_type_workaround.gradle': 79: unexpected token: || @ line 79, column 29.". I can fix this by wrapping the expression in parenthesis (¯\_(ツ)_/¯). I don't think this file lands in the public source tree, but if we want to correct this, it may help someone from the team. This CL can be ignored and reverted also. PiperOrigin-RevId: 424537619
bachinger committed -
PiperOrigin-RevId: 424383900
olly committed -
PiperOrigin-RevId: 424382031
Andrew Lewis committed
-