- 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 19 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 -
When we currently call SessionToken.createSessionToken with a legacy token, we call the package manager to get the process UID. This requires visiblity to the target package, which may not be available unless the target runs a service known to the controller app. However, when connecting to a Media3, this UID doesn't have to be known, so we can move the call closer to where it's needed to avoid the unncessary visibility check. In addition, a legacy session may reply with unknown result code to the session token request, which we should handle as well. One of the constructor can be removed since it was only used from a test. PiperOrigin-RevId: 489917706
tonihei committed -
Previously, FrameProcessor never had the usecase in which the output surface is replaced, while previewing introduced this usecase. When switching output surfaces, we need to destroy the EGL Surface linked to the surface that is being swapped out, because an EGL surface is linked to the EGL display (which is not destroyed even when releasing FrameProcessor). A GL exception will be thrown in the following scenario if we don't destroy the EGL surface: 1. Creates a Surface, the surface is identified by address 0x11 2. Sets Surface(0x11) on FrameProcessor. Eventually an EGL surface is created to wrap Surface(0x11) 3. Release FrameProcess, this releases the EGL context 4. Instantiate a new FrameProcessor, sets Surface(0x11) as the output 5. When FrameProcessor creates an EGL surface to wrap Surface(0x11), GL throws an exception, becasue Surface(0x11) has previouly been connected to an EGL surface. PiperOrigin-RevId: 489590072
claincly committed -
This adds the full Builders and State representation needed to implement all Player getter methods and listener invocations. PiperOrigin-RevId: 489503319
tonihei committed -
PiperOrigin-RevId: 489442518
kimvde committed -
When estimating the AudioTrack min buffer size, we must use a PCM frame of 1 when doing direct playback (passthrough). The code was passing -1 (C.LENGTH_UNSET). PiperOrigin-RevId: 489238392
christosts committed
-