- 29 Nov, 2022 5 commits
-
-
Our FakeClock generally makes sure that playback tests are fully deterministic. However, this fails if the test uses blocking waits with clock.onThreadBlocked and where relevant Handlers are created without using the clock. To fix the flakiness, we can make the following adjustments: - Use TestExoPlayerBuilder instead of legacy ExoPlayerTestRunner to avoid onThreadBlocked calls. This also makes the tests more readable. - Use clock to create Handler for FakeVideoRenderer and FakeAudioRenderer. Ideally, this should be passed through RenderersFactory, but it's too disruptive given this is a public API. - Use clock for MediaSourceList and MediaPeriodQueue update handler. PiperOrigin-RevId: 490907495
tonihei committed -
PiperOrigin-RevId: 490836952
kimvde committed -
Format expects the values of `averageBitrate` and `peakBitrate` in bps and the value fetched from AC3SpecificBox and EC3SpecificBox is in kbps. PiperOrigin-RevId: 490756581
rohks committed -
PiperOrigin-RevId: 490756055
samrobinson committed -
To avoid complicated bit shifting and masking. Also makes the code more readable. PiperOrigin-RevId: 490749482
rohks committed
-
- 24 Nov, 2022 18 commits
-
-
Also make sure the demo app doesn't crash when it happens. PiperOrigin-RevId: 490725959
kimvde committed -
https://github.com/androidx/media/commit/427329175e87a7f3173791c59e6c2d4c4ed8dea4
*** Original commit *** Rollback of https://github.com/androidx/media/commit/76df06a7a364c580dfe07d9f069237cd77c5174c *** Original commit *** Parse and set `peakBitrate` for Dolby TrueHD(AC-3) and (E-)AC-3 #minor-release *** *** PiperOrigin-RevId: 490707234
rohks committed -
https://github.com/androidx/media/commit/76df06a7a364c580dfe07d9f069237cd77c5174c
*** Original commit *** Parse and set `peakBitrate` for Dolby TrueHD(AC-3) and (E-)AC-3 #minor-release *** PiperOrigin-RevId: 490570517
rohks committed -
This reduces the priority to best effort (from the default that seems to be best effort), and allows us to run SSIM even on 8k24fps video. Without this CL, start()'ing a second codec may result in a MediaCodec.CodecException. Tested to confirm that transformation8k24(): * fails deterministically without this CL, or with KEY_PRIORITY set to 0. * succeeds deterministically after this CL (~18s on Samsung Z Fold 4) PiperOrigin-RevId: 490570416
huangdarwin committed -
We cannot check this in code, due to DEVICE_INITIAL_SDK_INT being a @SystemApi, and reflection being a bit risky/unstable. PiperOrigin-RevId: 490537916
huangdarwin committed -
#minor-release PiperOrigin-RevId: 490527831
rohks committed -
Before this change, the bitmap loading result with mainHandler, in which we set the metadata to `MediaSessionCompat`. However, the `MediaSessionCompat` is not thread safe, all calls should be made from the same thread. In the other calls to `MediaSessionCompat`, we ensure that they are on the application thread (which may be or may not be main thread), so we should do the same for `setMetadata` when bitmap arrives. Also removes a comment in `DefaultMediaNotificationProvider` as bitmap request caching is already moved to CacheBitmapLoader. PiperOrigin-RevId: 490524209
tianyifeng committed -
The bug has since been fixed. The values still could change, as the API is labelled as @UnstableApi, so it's probably fine to leave the <p> tag mostly as is. PiperOrigin-RevId: 490509205
huangdarwin committed -
Issue: androidx/media#209 #minor-release PiperOrigin-RevId: 490492223
christosts committed -
This change includes a change in the `IMediaController.aidl` file and needs to provide backwards compatibility for when a client connects that is of an older or newer version of the current service implementation. This CL proposes to create a new AIDL method `onPlayerInfoChangedWithExtensions` that is easier to extend in the future because it does use an `Bundle` rather than primitives. A `Bundle` can be changed in a backward/forwards compatible way in case we need further changes. The compatibility handling is provided in `MediaSessionStub` and `MediaControllerStub`. The approach is not based on specific AIDL/Binder features but implemented fully in application code. Issue: androidx/media#102 #minor-release PiperOrigin-RevId: 490483068
bachinger committed -
If there is output data available (outputBuffer.hasRemaining()), then there is no need to move other data between the underlying processors. It will not change the buffer being returned by that call to getOutput. If there is no output data readily available, it's necessary to go to the AudioProcessors and pass buffers between them, as this may produce data for output. PiperOrigin-RevId: 490482653
samrobinson committed -
The direct executor is not the proper way to determine on what thread to run the `Future.Listener` and the `MediaControllerCreationListener` because the listener may call the controller passed as argument which must happen on the same thread that built the controller. This change makes sure this is the case. PiperOrigin-RevId: 490478587
bachinger committed -
PiperOrigin-RevId: 490465182
Ian Baker committed -
This allows us to release both codecs used in SSIM when one fails to configure() or start(). Tested and confirmed that on Samsung Galaxy Z Flip 4, running all TransformationTest.java tests, tests after transform8k24() fails to start the 2nd codec: * Before this CL, all fail. * After this CL, all pass. PiperOrigin-RevId: 490461560
huangdarwin committed -
This avoids that apps have to depend on the legacy compat support library when they want to make this conversion. Also add a version to both helper methods that takes a Looper to give apps the option to use an existing Looper, which should be much faster than spinning up a new thread for every method call. Issue: androidx/media#171 PiperOrigin-RevId: 490441913
tonihei committed -
PiperOrigin-RevId: 490376734
bachinger committed -
When receiving the `onTimelineChanged` callback, we convert the timeline to the list of `QueueItem`s, where decoding a bitmap is needed for building each of the `QueueItem`s. The strategy is similar to what we did in <unknown commit> for list of `MediaBrowserCompat.MediaItem` - set the queue item list until the bitmaps decoding for all the `MediaItem`s are completed. PiperOrigin-RevId: 490283587
tianyifeng committed -
PiperOrigin-RevId: 490265564
samrobinson committed
-
- 23 Nov, 2022 3 commits
-
-
microkatz committed
-
1.0.0-beta03
Michael Katz committed -
PiperOrigin-RevId: 490263003 (cherry picked from commit a9be38a3)
christosts committed
-
- 22 Nov, 2022 14 commits
-
-
PiperOrigin-RevId: 490263003
christosts committed -
Ran all the [effects instrumentation tests](https://source.corp.google.com/piper///depot/google3/third_party/java_src/android_libs/media/libraries/effect/src/androidTest/java/androidx/media3/effect/;bpv=1;bpt=0) and replaced the [bitmaps](https://source.corp.google.com/piper///depot/google3/third_party/java_src/android_libs/media/libraries/test_data/src/test/assets/media/bitmap/;bpv=0;bpt=0) for the tests that were failing due to a small difference over the targeted 0.1 [threshold](https://source.corp.google.com/piper///depot/google3/third_party/java_src/android_libs/media/libraries/effect/src/androidTest/java/androidx/media3/effect/BitmapTestUtil.java;rcl=477974779;l=64) whose new bitmaps could be generated from the` crow --device generic_phone --api_level 31 --arch=arm64 ` emulator. PiperOrigin-RevId: 490261228
tofunmi committed -
This exception is a bit shorter and more clear (and is more clear that this is a test issue, as opposed to the prior issue that was thrown as an ExoPlayer DataSourceException, which may seem like a legitimate Transformer failure) PiperOrigin-RevId: 490252772
huangdarwin committed -
Following naming conventions throughout AndroidTestUtil, REMOTE files should have REMOTE instead of ASSET. Update the URI and FORMAT names accordingly. PiperOrigin-RevId: 490237673
huangdarwin committed -
#minor-release PiperOrigin-RevId: 490224795
tonihei committed -
ExoPlayer is unable to detect the presence of subtitle tracks in some MPEG-TS files that don't fully declare them. It's possible for a developer to provide the list instead, but doing so is quite awkward without this helper method. This is consistent for how `DefaultExtractorsFactory` allows other aspects of the delegate `Extractor` implementations to be customised. * Issue: google/ExoPlayer#10175 * Issue: google/ExoPlayer#10505 #minor-release PiperOrigin-RevId: 490214619
ibaker committed -
The only reason this is required at the moment is to set the process UID field in the token, that is supposed to make it easier for controller apps to identify the session. However, if this visibility is not provided, it shouldn't stop us from creating the controller for this session. Also docuement more clearly what UID means in this context. PiperOrigin-RevId: 490184508
tonihei committed -
PiperOrigin-RevId: 489959918 (cherry picked from commit 4ea72f0c)
michaelkatz committed -
#minor-release PiperOrigin-RevId: 489202167 (cherry picked from commit 6e73fc54)
michaelkatz committed -
These flags ensure that any errors cause the script to exit (instead of just carrying on) (`-e`) and that any unrecognised substitution variables cause an error instead of silently resolving to an empty string (`-u`). Issues like Issue: google/ExoPlayer#10791 should be more quickly resolved with `set -e` because the script will clearly fail with an error like `make: command not found` which would give the user a clear pointer towards the cause of the problem. #minor-release PiperOrigin-RevId: 490001419
ibaker committed -
PiperOrigin-RevId: 489984147
kimvde committed -
#minor-release PiperOrigin-RevId: 489959918
michaelkatz committed
-