- 02 Feb, 2023 9 commits
-
-
This change includes 3 things: - when the legacy media session is created, FLAG_HANDLES_QUEUE_COMMANDS is advertised if the player has the COMMAND_CHANGE_MEDIA_ITEMS available. - when the player changes its available commands, a new PlaybackStateCompat is sent to the remote media controller to advertise the updated PlyabackStateCompat actions. - when the player changes its available commands, the legacy media session flags are sent accoridingly: FLAG_HANDLES_QUEUE_COMMANDS is set only if the COMMAND_CHANGE_MEDIA_ITEMS is available. #minor-release PiperOrigin-RevId: 506605905
christosts committed -
Before this CL, the `renderedLastFrame` flag is not set if the last frame is released immediately (force render), or when it's dropped. PiperOrigin-RevId: 506358626
claincly committed -
With the current ExtTexMgr, it can happen that - `x` frames are registered, but haven't arrived yet - flush - need to drop `x` frames when they arrive on SurfaceTexture - status is reset to 0 pending, 0 available, drop `x` when frames arrive - register one frame - status is set to 1 pending, 0 available, drop `x` when frames arrive - flush - now the number of frame to drop is reset to `pending - available = 1` - but it should be `x+1` This CL solves the issue by reporting (by running the afterFlushTask) flush completes only after all the pending frames before calling flush are accounted for. PiperOrigin-RevId: 506310671
claincly committed -
The prior version (with the call to createEncodingException) could never occur as select...SupportedMimeType already checks for HDR editing support. This change ensures we throw before creating an encoder, gives a better error code and allows future simplifications around createForCodec (see child CL). PiperOrigin-RevId: 506308290
samrobinson committed -
PiperOrigin-RevId: 506304101
kimvde committed -
Flushing resets all the texture processors within the `FrameProcessor`. This includes: - At the back, the FinalMatrixTextureProcessorWrapper, and its MatrixTextureProcessor - At the front, the ExternalTextureManager - All the texture processors in between - All the ChainingGlTextureProcessorListeners in between texture processors - All the internal states in the aforementioned components The flush process follows the order, from `GlEffectsFrameProcessor.flush()` 1. Flush the `FrameProcessingTaskExecutor`, so that after it returns, all tasks queued before calling `flush()` completes 2. Post to `FrameProcessingTaskExecutor`, to flush the `FinalMatrixTextureProcessorWrapper` 3. Flushing the `FinalMatrixTextureProcessorWrapper` will propagate flushing through, via the `ChainingGlTextureProcessorListener` Startblock: has LGTM from christosts and then add reviewer andrewlewis PiperOrigin-RevId: 506296469
claincly committed -
The eotf is needed so that overlay (image) colors are correctly interpreted and mixed the linear video colors. Also replaces the 100winners.png with "homemade" image file. Added GlEffectsFrameProcessor test to justify that the color looks correct at the end of frame processing. PiperOrigin-RevId: 506290309
tofunmi committed -
Can be used to combine multiple media items into a single timeline window. Issue: androidx/media#247 Issue: google/ExoPlayer#4868 PiperOrigin-RevId: 506283307
bachinger committed -
PiperOrigin-RevId: 506261584
christosts committed
-
- 01 Feb, 2023 31 commits
-
-
For HLG input in transformer, FinalWrapper is configured to only output HLG to encoder. But since DebugPreview is configured to take PQ for HDR content, the color will not look correct. This CL allows overriding the MatrixTP output transfer function, so that FinalWrapper can output - HLG to encoder - PQ to debug preview PiperOrigin-RevId: 506022840
claincly committed -
Implementations outside media3 should be able to throw FrameProcessingException if they come across an error during configure(). PiperOrigin-RevId: 506020149
huangdarwin committed -
I missed this when fixing `positionInMs` for Dackka in https://github.com/androidx/media/commit/aae6941981dfcfcdd46544f585335ff26d8f81e9 This time I manually verified that all the `@Override` methods have parameter names that match [the docs](https://developer.android.com/reference/androidx/leanback/media/PlayerAdapter). #minor-release PiperOrigin-RevId: 506017063
ibaker committed -
And rename method `releaseOutputFrame` to `releaseProcessedFrameInternal` for consistency. Removed misplaced comment. PiperOrigin-RevId: 506005744
claincly committed -
This overload is helpful to apps transcoding a MediaItem without edits. PiperOrigin-RevId: 505987852
kimvde committed -
Transformer callbacks will take a Composition instead of a MediaItem. Apps should be able to see what this Composition contains. PiperOrigin-RevId: 505976561
kimvde committed -
PiperOrigin-RevId: 505960752
claincly committed -
Add checks to GL tone-mapping pixel tests, to ensure the device's decoder, API version, and OpenGL implementation support GL tone-mapping before attempting it. These tests should be run on mobile harness, to detect per-device failures, and so are moved to transforemr/mh. Per b/263395272, these tests should ultimately be in an effect/mh directory. PiperOrigin-RevId: 505749974
huangdarwin committed -
On some devices/builds it seems that the `SurfaceView` constructor tries to create a handler. Move instantiation to the main thread when getting the debug surface view so that handler creation succeeds. PiperOrigin-RevId: 505745387
andrewlewis committed -
Make clearer the intermediate matrix property names. PiperOrigin-RevId: 505732563
samrobinson committed -
This change fixes an issue that can be reproduced when a controller `onConnect` creates a `QueueTimeline` out of the state of a legacy session and then `prepare` is called. `activeQueueItemId`, `metadata` and the `queue` of the legacy session are used when a `QueueTimeline` is created. The change adds unit tests to cover the different combinatoric cases these properties being set or unset. PiperOrigin-RevId: 505731288
bachinger committed -
PiperOrigin-RevId: 505720834
samrobinson committed -
PiperOrigin-RevId: 505671326
kimvde committed -
PiperOrigin-RevId: 505670386
kimvde committed -
ParcelFileDescriptor is quite specific and removing it allows to have less overloads of startTransformation. A follow-up CL will undeprecate the overload that takes a MediaItem. PiperOrigin-RevId: 505670321
kimvde committed -
AudioProcessor-based speed changes are not supported with offload, so we should use the AudioTrack-based speed changes by default if the user requests a speed change. This moves the decision of which speed change path is used into the Configuration, so that it can change for each AudioTrack in a playlist. PiperOrigin-RevId: 505621911
tonihei committed -
#cleanup #minor-release PiperOrigin-RevId: 505146915
bachinger committed -
Otherwise, it's not clear if it's the expected output. Renaming-only change. No functional change intended. PiperOrigin-RevId: 505103740
huangdarwin committed -
When seeking in fMP4, we try to extract as little samples as possible by only starting at the preceding sync frame. This comparison should use <= to allow sync frames at exactly the seek position. Issue: google/ExoPlayer#10941 #minor-release PiperOrigin-RevId: 505098172
tonihei committed -
This makes it easier to reason about some parts of the code and will eventually allow to easily switch between AudioProcessor- based on AudioSink-based speed adjustment. The current state saves the applicable playback parameters in separate variables depending on which speed adjustment path is used. Moreover, the AudioProcessor-based logic keeps a chain of pending parameter changes and we derive the last applicable one everytime we need the current parameters. After this change, this is simplified by - keeping a common value for playback parameters independent of the actual path we use for adjustment. - keeping the final ("current") parameters directly, instead of deriving it from a chain of yet to be applied parameters. PiperOrigin-RevId: 505097294tonihei committed -
PiperOrigin-RevId: 505084963
samrobinson committed -
Issue: androidx/media#233 #minor-release PiperOrigin-RevId: 505078751
bachinger committed -
MergingMediaPeriod creates its track groups with ids concatenating position in its periods array and the underlying child track group id. The ids can be used in selectTracks for matching to periods list. Issue: google/ExoPlayer#10930 PiperOrigin-RevId: 505074653
michaelkatz committed -
For most missing commands, we already disable the corresponding controls. This change extends this to more UI elements that are disabled in case the corresponding action is unavailable. #minor-release PiperOrigin-RevId: 505057751
tonihei committed -
PiperOrigin-RevId: 505047245
kimvde committed -
- Usages in 1P apps have been removed. - setResolution should be removed when refactoring fallback. PiperOrigin-RevId: 505043425
kimvde committed -
PiperOrigin-RevId: 504867150
kimvde committed -
producesExpectedOutput -> matchesGoldenFile PiperOrigin-RevId: 504863604
huangdarwin committed -
This is necessary in order to move HDR to SDR tone-mapping tests to transformer/mh. PiperOrigin-RevId: 504858508
huangdarwin committed -
PiperOrigin-RevId: 504847212
huangdarwin committed -
This is confusing, since the effect is used not only when applying an effect, but also when preparing an effect (ex. in a texture processor's constructor), so we should also mention that case. PiperOrigin-RevId: 504843598
huangdarwin committed
-