- 24 Nov, 2022 10 commits
-
-
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 27 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 -
Issue: google/ExoPlayer#10756 PiperOrigin-RevId: 489236336
tonihei committed -
I considered moving this enforcement inside the ExoPlayerImpl implementation, but it might lead to app crashes in cases that apps (incorrectly) call a released player, but it wasn't actually causing a problem. PiperOrigin-RevId: 489233917
ibaker committed -
This tag is only understood by Dackka, which is used to generate the media3 javadoc. PiperOrigin-RevId: 489233200
ibaker committed -
PiperOrigin-RevId: 489216085
tofunmi committed -
PiperOrigin-RevId: 489212224
tofunmi committed -
They are called from the system only and don't need to be exported to be visible to other apps. PiperOrigin-RevId: 489210264
tonihei committed -
* Transforms the `ListenableFuture<LibraryResult<MediaItem>>` and `ListenableFuture<LibraryResult<List<MediaItem>>>` to `ListenableFuture<MediaBrowserCompat.MediaItem>` and `ListenableFuture<List<MediaBrowserCompat.MediaItem>>`, and the result will be sent out when `ListenableFuture` the `MediaBrowserCompat.MediaItem` (or the list of it) is fulfilled. * Add `artworkData` to the tests in `MediaBrowserCompatWithMediaLibraryServiceTest`. PiperOrigin-RevId: 489205547
tianyifeng committed -
#minor-release PiperOrigin-RevId: 489202167
michaelkatz committed
-