- 29 Nov, 2022 12 commits
-
-
This should fix how color matrix transforms look when applied on HDR colors PiperOrigin-RevId: 491323228
huangdarwin committed -
This thread just starts the player and handles the player callbacks for now. Sample pipelines are still run on the playback thread. PiperOrigin-RevId: 491299671
kimvde committed -
It's clearer if each test method follows the Arrange/Act/Assert pattern PiperOrigin-RevId: 491299379
ibaker committed -
PiperOrigin-RevId: 491289028
Rohit Singh committed -
FakeClock keeps an internal list of messages to be executed to ensure deterministic serialization. The next message from the list is triggered by a separate helper message sent to the real Handler. However, if the target HandlerThread is no longer alive (e.g. when it quit itself during the message execution), this helper message is never executed and the entire message execution chain is stuck forever. This can be solved by checking the return values of Hander.post or Handler.sendMessage, which are false if the message won't be delivered. If the messages are not delivered, we can unblock the chain by marking the message as complete and triggering the next one. PiperOrigin-RevId: 491275031
tonihei committed -
Remove self-links, and remove section that is documenting internal ordering behaviour of [`SimpleBasePlayer.getCombinedMediaMetadata`](https://github.com/google/ExoPlayer/blob/bb270c62cf2f7a1570fe22f87bb348a2d5e94dcf/library/common/src/main/java/com/google/android/exoplayer2/SimpleBasePlayer.java#L1770) rather than anything specifically about this method. #minor-release PiperOrigin-RevId: 490923719
ibaker committed -
This is more clear than using Format.NO_VALUE, when we do actually intend for an output value. Also, fix @see formatting by using summary fragments instead, and add an error output for OETF and EOTF transfer functions. PiperOrigin-RevId: 490910229
huangdarwin committed -
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 7 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 -
Instead of the ID3v2 text frame falling back to a singleton list of an empty string when the given values are empty, make that case throw an exception within the text frame, and move that fallback behavior into the ID3v2 decoder.
Alexander Capehart committed -
#minor-release PiperOrigin-RevId: 490224795
tonihei committed
-