- 21 Dec, 2022 28 commits
-
-
This CL replaces concurrent collections and atomic primitives with a single lock, this way the code is easier to reason about. PiperOrigin-RevId: 496718057
claincly committed -
Note that we simply use GlEffectsFrameProcessor in-app / GL tone-mapping, so PQ->SDR tone-mapping isn't yet implemented. Tested manually using the demo on Pixel 7, to confirm that device and in-app tone mapping behave similarly. PiperOrigin-RevId: 496700231
huangdarwin committed -
Adds the AudioMixerAlgorithm interface which allows for specialized implementations of audio mixing that also efficiently convert between source and mixing formats. Initial implementation has two algorithms: 1. Float -> float (with channel mixing) 2. S16 -> float (with channel mixing) PiperOrigin-RevId: 496686805
steveanton committed -
#minor-release PiperOrigin-RevId: 496668378
ibaker committed -
PiperOrigin-RevId: 496664711
tofunmi committed -
#minor-release PiperOrigin-RevId: 496661152
ibaker committed -
PiperOrigin-RevId: 496660388
tofunmi committed -
To do that, rename PROGRESS_STATE_NO_TRANSFORMATION to PROGRESS_STATE_NOT_STARTED and update Javadoc of ProgressState to not be Transformer specific. PiperOrigin-RevId: 496653460
kimvde committed -
PiperOrigin-RevId: 496410502
andrewlewis 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/google/ExoPlayer/commit/c566b774490040fa2758834192d8b054105eacfd
*** Original commit *** Add TransformerTestBuilderFactory to make transformer testable by apps *** PiperOrigin-RevId: 496342997
tonihei committed -
https://github.com/google/ExoPlayer/commit/9b82d5317fc38c638c181f9aaafc90a943672688
*** Original commit *** Remove extra colons in `build.gradle`s modulePrefix should include this already. *** PiperOrigin-RevId: 496337833
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 12 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 -
`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
-