- 04 Jan, 2023 25 commits
-
-
PiperOrigin-RevId: 499454273
kimvde committed -
Based on experimentation it seems that buffers can occasionally (roughly 1% of test runs) be dropped when rendering off-screen from EGL on the emulator. Specifically, in this test, sometimes after rendering three buffers with distinct timestamps only the first and third buffers' timestamps are handled in the `ImageReader`'s image available callback causing the assertion checking all frames rendered to fail. This behavior seems to be independent of the nanosecond presentation time attached to the buffers (as expected for off-screen rendering). Introducing a pause of 1 second between rendering each frame reduces the flake rate to around 1/2000. This increases the run time of some of the tests, so this change also removes the 5 second `FRAME_PROCESSING_WAIT_MS` (it seems to be unnecessary when rendering off-screen) and instead uses a latch to wait until the frame processor has handled 'end of stream'. PiperOrigin-RevId: 499440591
andrewlewis committed -
- Do not fail silently if selectedEffects is null. - Do not add an empty overlay effect to the Transformer to avoid transcoding video all the time. PiperOrigin-RevId: 499168759
kimvde committed -
PiperOrigin-RevId: 499160043
kimvde committed -
- Improve AssetLoader Javadoc - Fix Javadoc of sample pipelines - Improve Javadoc of Transformer.startTransformation - Move thread hops for Transformer listener callbacks to TransformerInternal PiperOrigin-RevId: 499156604
kimvde committed -
When a listener method is deprecated, the new method should (by default) called through to the deprecated one. This is because any class that implements the method that is now deprecated needs to still receive that callback. It appears when onTransformationError(MediaItem, Exception) was deprecated in favour of onTransformationError(MediaItem, TransformationException), this deprecation was the wrong way round, and the newer callback - onTransformationError(MediaItem, TransformationResult, TransformationException) continued this mistake. This CL now corrects this. PiperOrigin-RevId: 498221504
samrobinson committed -
PiperOrigin-RevId: 497921432
kimvde committed -
This change allows an overlay to be sized with respect to the video dimensions. PiperOrigin-RevId: 497337734
tofunmi committed -
PiperOrigin-RevId: 497335605
samrobinson committed -
Events on the wrapper should be propagated to TransformerInternal as soon as they occur, switching round the process so TransformerInternal does not have to query MuxerWrapper. This CL is a prerequisite for the child CL, where MuxerWrapper can simplify the internal state and logic. PiperOrigin-RevId: 497267202
samrobinson committed -
PiperOrigin-RevId: 497183220
bachinger committed -
We might as well keep this enabled by default, rather than having to manually toggle it on to investigate RTL issues like Issue: androidx/media#227. PiperOrigin-RevId: 497159744
ibaker committed -
Issue: androidx/media#227 #minor-release PiperOrigin-RevId: 497159283
ibaker committed -
PiperOrigin-RevId: 497113780
tofunmi committed -
PiperOrigin-RevId: 497112875
tofunmi committed -
Before, it was possible for onDurationUs() and onAllTracksRegistered() to be called before onTrackAdded() because they are called from different threads. onDurationUs() and onAllTracksRegistered() are called from the Transformer internal thread, and onTrackAdded() is called from the playback thread. PiperOrigin-RevId: 497102556
kimvde committed -
This is useful if an app passes a custom AssetLoader that can only output encoded or decoded samples. PiperOrigin-RevId: 497097492
kimvde committed -
Did not do this optimisation for `AdPlaybackState.AdGroup` as its length is zero for `AdPlaybackState` with no ads. No need to pass default values while fetching keys, which we always set in `AdPlaybackState.AdGroup.toBundle()`. PiperOrigin-RevId: 496995048
rohks committed -
PiperOrigin-RevId: 496956035
tofunmi committed -
Added another check in test to make sure we don't add keys to bundle for fields with `null` values. PiperOrigin-RevId: 496948705
rohks committed -
Issue: google/ExoPlayer#10845 PiperOrigin-RevId: 496947392
bachinger committed -
PiperOrigin-RevId: 496942702
kimvde committed -
AssetLoader declares the tracks with a setTrackCount() method. Setting the track count on the MuxerWrapper is easier than calling registerTrack() as many times as the number of tracks. PiperOrigin-RevId: 496933501
kimvde committed -
Issue: google/ExoPlayer#10854 PiperOrigin-RevId: 496922055
bachinger committed -
AssetLoader declares the tracks with a setTrackCount() method. Setting the track count on the FallbackListener is easier than calling registerTrack() as many times as the number of tracks. PiperOrigin-RevId: 496919969
kimvde committed
-
- 21 Dec, 2022 15 commits
-
-
The TransformationRequest passed to FallbackListener (and createSupportedTransformationRequest) can have null for values that are inferred from source. Within fallback, this can be height, width, video mime type and audio mime type (HDR mode is not linked to source). requestedFormat has these values populated from source, and supportedFormat then finds the closest supported values to the requested. If any of the values in supportedFormat do not match the requestedFormat, then this method would build upon the TransformationRequest and update ALL possible fallback fields. This is a problem because the fallback listener compares the original request to the fallback one and notifies about all the fields that have changed. This CL changes this so that only the values that are not the same as requested are changed in the supported request that is given to the fallback listener. PiperOrigin-RevId: 496908492
samrobinson committed -
When trying to run the test on Android Studio, error "incompatible types: Buffer cannot be converted to ByteBuffer" is logged. This is because ByteBuffer.flip() returns a Buffer (and not a ByteBuffer). Annotation @CovariantReturnType on ByteBuffer.flip() should resolve this automatically but it doesn't seem supported at the moment. PiperOrigin-RevId: 496894723
kimvde committed -
There are two overloads of this method due to a type 'rename' from `PlayerControlView.VisibilityListener` to `PlayerView.ControllerVisibilityListener`. Currently when you call one overload it passes `null` to the other one (to clear the other listener). Unfortunately this results in it clearing itself, because it receives a null call back! This change tweaks the documentation to clarify that the 'other' listener is only cleared if you pass a non-null listener in. This solves the recursive problem, and allows the 'legacy' visibility listener to be successfully registered. Issue: androidx/media#229 #minor-release PiperOrigin-RevId: 496876397
ibaker committed -
Users of this class may run into these assertions when creating the State and they need to check the source code to understand why the State is invalid. Adding error messages to all our correctness assertions helps to understand the root cause more easily. PiperOrigin-RevId: 496875109
tonihei committed -
Replace onTrackRegistered and onAllTracksRegistered with onTrackCount. PiperOrigin-RevId: 496853037
kimvde committed -
PiperOrigin-RevId: 496768072
huangdarwin committed -
PiperOrigin-RevId: 496727803
huangdarwin committed -
This CL replaces concurrent collections and atomic primitives with a single lock, this way the code is easier to reason about. PiperOrigin-RevId: 496718057
claincly committed -
Note that we simply use GlEffectsFrameProcessor in-app / GL tone-mapping, so PQ->SDR tone-mapping isn't yet implemented. Tested manually using the demo on Pixel 7, to confirm that device and in-app tone mapping behave similarly. PiperOrigin-RevId: 496700231
huangdarwin committed -
Adds the AudioMixerAlgorithm interface which allows for specialized implementations of audio mixing that also efficiently convert between source and mixing formats. Initial implementation has two algorithms: 1. Float -> float (with channel mixing) 2. S16 -> float (with channel mixing) PiperOrigin-RevId: 496686805
steveanton committed -
#minor-release PiperOrigin-RevId: 496668378
ibaker committed -
PiperOrigin-RevId: 496664711
tofunmi committed -
#minor-release PiperOrigin-RevId: 496661152
ibaker committed -
PiperOrigin-RevId: 496660388
tofunmi committed -
To do that, rename PROGRESS_STATE_NO_TRANSFORMATION to PROGRESS_STATE_NOT_STARTED and update Javadoc of ProgressState to not be Transformer specific. PiperOrigin-RevId: 496653460
kimvde committed
-