- 21 Dec, 2022 22 commits
-
-
PiperOrigin-RevId: 496410502
andrewlewis committed -
PiperOrigin-RevId: 496398934
ibaker committed -
This should allow us to focus on HDR failures instead of network buffering failures when debugging HDR issues. These files are each used on several files, so it should be more worth the test binary impact to move these files to local first. Locally, tests did take less time after this diff PiperOrigin-RevId: 496398130
huangdarwin committed -
The MediaSourceFactory won't be used by the other AssetLoaders In order to do that, ExoPlayerAssetLoader has been made public, and the DefaultAssetLoaderFactory has become a wrapper around ExoPlayerAssetLoader. PiperOrigin-RevId: 496386853
kimvde committed -
PiperOrigin-RevId: 496379904
tofunmi committed -
https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter#seekTo(long) #minor-release PiperOrigin-RevId: 496378709
ibaker committed -
PiperOrigin-RevId: 496377192
ibaker committed -
These are the remaining setter operations. They all share the same logic that handles playlist and/or position changes. The logic to create the placeholder state is mostly copied from ExoPlayerImpl's maskTimelineAndPosition and getPeriodPositonUsAfterTimelineChanged. PiperOrigin-RevId: 496364712
tonihei committed -
https://github.com/androidx/media/commit/7e6399745976dee403f24b90ee989f0d51907818
*** Original commit *** Add TransformerTestBuilderFactory to make transformer testable by apps *** PiperOrigin-RevId: 496342997
tonihei committed -
https://github.com/androidx/media/commit/8a24209fd63de5fb5a7ea8df365d051fa2ac14be
*** Original commit *** Remove extra colons in `build.gradle`s modulePrefix should include this already. *** PiperOrigin-RevId: 496337833
tonihei committed -
The period updates were introduced to ensure the buffered position is updated regularly and that any playback position drift is corrected. None of these updates need to happen while the player is paused or not loading and we can avoid the constant binder interactions. PiperOrigin-RevId: 496329800
tonihei committed -
FrameProcessor already support using different transfer function for input and output color. This CL has two major changes: - Create an eglSurface that recognizes BT.2020 PQ - This requires a separate extension that works only after 33 - So we current throw, if input is HDR, and this extension doesn't work - Create FrameProcessor with PQ output transfer function PiperOrigin-RevId: 496023758
claincly committed -
The tunneling callbacks are sent via Handler messages and may be handled after the codec/surface was changed or released. We already guard against the codec/surface change condition by creating a new listener and verifying that the current callback happens for the correct listener instance, but we don't guard against a released codec yet. PiperOrigin-RevId: 495882353
tonihei committed -
PiperOrigin-RevId: 495860300
samrobinson committed -
Some Player methods operate relative to existing indices in the playlist (add,remove,move,seek). As these operations may be issued from a place with a stale playlist (e.g. a controller that sends a command while the playlist is changing), we have to handle out- of-bounds indices gracefully. In most cases this is already documented and implemented correctly. However, some cases are not documented and the existing player implementations don't handle these cases consistently (or in some cases not even correctly). PiperOrigin-RevId: 495856295
tonihei committed -
modulePrefix should include this already. PiperOrigin-RevId: 495853065
andrewlewis committed -
The `MediaItem` instances in the following cases are not actually empty but acts as a placeholder. `EMPTY_MEDIA_ITEM` can also be confused with `MediaItem.EMPTY`. PiperOrigin-RevId: 495843012
rohks committed -
PiperOrigin-RevId: 495842393
samrobinson committed -
PiperOrigin-RevId: 495821660
tofunmi committed -
PiperOrigin-RevId: 495646341
claincly committed -
Issue: androidx/media#220 PiperOrigin-RevId: 495642588
bachinger committed -
Improves the time taken to construct `playerInfo` from its bundle from ~450 ms to ~400 ms. Each `MediaItem` inside `Timeline.Window` contains `MediaMetadata` and hence is a good candidate for bundling optimisations. There already exists a test to check all parameters for null values when unset. PiperOrigin-RevId: 495614719
rohks committed
-
- 15 Dec, 2022 18 commits
-
-
The TransformationResult has some useful values that are set in error cases, such as the codecs used. PiperOrigin-RevId: 495568259
samrobinson committed -
It covers the following cases: | From/To | `null` | `surface 0` | `surface 1` | |-------------|--------|-------------|-------------| | `null` |
🆖 |📺 |📺 | | `surface 0` |❌ |🔁 |📺 | | `surface 1` |❌ |📺 |🔁 | Where -🆖 means NOP -❌ means - Set `null` on FrameProcessor, effectively dropping all frames -📺 means - Notify the listener of video size - Set FrameProcessor output surface and size when MSG_SET_VIDEO_OUTPUT_SIZE is received -🔁 means - Notify the listener of video size PiperOrigin-RevId: 495477620claincly committed -
PiperOrigin-RevId: 495471548
claincly committed -
PiperOrigin-RevId: 495406734
claincly committed -
Adds COLOR_TRANSFER_GAMMA_2_2, to match behavior in other HDR to SDR tone mapping implementations. PiperOrigin-RevId: 495371736
huangdarwin committed -
PiperOrigin-RevId: 495368262
claincly committed -
This simplifies some position tracking needs for an app implementing SimpleBasePlayer. - The period index can always be derived from the media item index and the position. So there is no need to set it separately. - The media item index can be left unset in the State in case the app doesn't care about the value or wants to set it the default start index (e.g. while the playlist is still empty where UNSET is different from zero). - Similarly, we should allow to set the content position (and buffered position) to C.TIME_UNSET to let the app ignore it or indicate the default position explictly. PiperOrigin-RevId: 495352633
tonihei committed -
This ensures they are not accidentally triggered again when the state is rebuilt with a buildUpon method. PiperOrigin-RevId: 495280711
tonihei committed -
Otherwise, the decoders are not captured. It works at the moment for the video decoder because decoding is still done on the sample pipeline but it will moved to the AssetLoader soon. PiperOrigin-RevId: 495275575
kimvde committed -
PiperOrigin-RevId: 495262344
andrewlewis committed -
`AudioProcessor`s expect direct buffers. This shouldn't make any functional difference in our code, but a custom audio processor might try to access the buffer from JNI in which case a direct byte buffer is more efficient. PiperOrigin-RevId: 495241669
andrewlewis committed -
This simplifies the caller slightly. PiperOrigin-RevId: 495234339
andrewlewis committed -
PiperOrigin-RevId: 495093939
claincly committed -
This improves the time taken to construct PlayerInfo from bundle from ~600ms to ~450ms. PiperOrigin-RevId: 495055355
rohks committed -
PiperOrigin-RevId: 495055151
claincly committed -
PiperOrigin-RevId: 495004732
rohks committed -
This is so that apps can customise AssetLoader PiperOrigin-RevId: 494998497
kimvde committed -
`SilentAudioGenerator` could output a fractional audio frame, and this could cause downstream components to throw because of trying to read a complete audio frame but only seeing a partial one. Calculate the output buffer size based on the frame size (which is a no-op for stereo 16-bit audio) and calculate a total number of frames to output then multiple by the frame size. PiperOrigin-RevId: 494992941
andrewlewis committed
-