- 18 Jul, 2022 6 commits
-
-
* Introduced `useHdr` for `GlEffect#toGlTextureProcessor`, so `TextureProcessor` implementations can decide how to handle HDR. * Creating FP16 color textures for HDR input. Tested via manual testing, adding a no-op GlEffectWrapper to the transformation to force use of intermediate textures, adding a linear ramp to the fragment shader, and trying to ascertain that there's a real reduction in posterization when switching from 4-bit to 8-bit unsigned bytes, and again from 8-bit unsigned bytes to 16-bit floating point. PiperOrigin-RevId: 461613117 (cherry picked from commit ba9c9bb9)
huangdarwin committed -
This may happen when a containers' color transfer incorrectly does not match the video's color transfer. An example of a file with such a mismatch is the current Transformer demo HDR10 sample file. Manually tested by confirming that no errors are emitted for SDR and HLG sample files, and that errors are emitted for our incorrect HDR10 sample file. PiperOrigin-RevId: 461583532 (cherry picked from commit 9f7a159b)
huangdarwin committed -
- Update profile selection logic to pick an HDR-compatible profile when doing HDR editing on H.264/AVC videos. - Handle doing the capabilities check for all MIME types that support HDR (not just H.265/HEVC). - Fix a bug where we would pass an HDR input color format to the encoder when using tone-mapping. - Tweak how `EncoderWrapper` works so decisions at made at construction time. Manually tested cases: - Transformation of an SDR video. - Transformation of an HDR video to AVC (which triggers fallback/tone-mapping on a device that doesn't support HDR editing for AVC). - Transformation of an HDR video with HDR editing. PiperOrigin-RevId: 461572973 (cherry picked from commit 604ab7fc)
andrewlewis committed -
The old URL doesn't correctly signal the HDR10 color info in the container. The new URL signals ST2084 (PQ) transfer function and BT.2020 color space as expected. PiperOrigin-RevId: 461560107 (cherry picked from commit 794e366b)
andrewlewis committed
-
- 15 Jul, 2022 1 commit
-
- 14 Jul, 2022 1 commit
-
-
These are providing more variety and complexity. All files are okay to be public. PiperOrigin-RevId: 460935247 (cherry picked from commit b87fa45f)
samrobinson committed
-
- 13 Jul, 2022 5 commits
-
-
Also remove VideoEncoderSettings.colorProfile as there are no concrete use cases for customizing this and it clashes with picking the color format automatically based on SDR vs. HDR. PiperOrigin-RevId: 460746987 (cherry picked from commit 7954eeb3)
hschlueter committed -
We currently start a simple Thread to release AudioTracks asynchronously. If many AudioTracks are released at the same time, this may lead to OOM situations because we attempt to create multiple new threads. This can be improved by using a shared SingleThreadExecutor. In the simple case of one simmultaneous release, it's exactly the same behavior as before: create a thread and release it as soon as it's done. For multiple simultanous releases we get the advantage of sharing a single thread to avoid creating more than one at the same time. Issue: google/ExoPlayer#10057 PiperOrigin-RevId: 460698942 (cherry picked from commit 9a616c0c)
tonihei committed -
Add test that verifies SSIM with API enabled. #minor-release PiperOrigin-RevId: 460692420 (cherry picked from commit f903869e)
samrobinson committed -
#cleanup #minor-release PiperOrigin-RevId: 460688226 (cherry picked from commit a88426ae)
samrobinson committed
-
- 12 Jul, 2022 7 commits
-
-
Some calls to handleBuffer return false while a previous flush is still handled in the background. Fix this by either asserting the method returns true if we don't expect any delay, or calling it repeatedly until it returns true (within a timeout). PiperOrigin-RevId: 460474419 (cherry picked from commit 223922fb)
tonihei committed -
Pass the color info and HDR static metadata when configuring the decoder using MediaFormatUtil.maybeSetColorInfo. PiperOrigin-RevId: 460424985 (cherry picked from commit 66e12299)
hschlueter committed -
This extension is needed for editing HDR input with OpenGL, as the ExternalTextureProcessor samples raw YUV values from the external texture for HDR and converts them to RGB itself rather than relying on the OpenGL driver to do this automatically as for SDR. PiperOrigin-RevId: 460424154 (cherry picked from commit a5ff4ef1)
hschlueter committed
- 11 Jul, 2022 2 commits
-
-
This saves an intermediate texture copy step for use-cases where matrix transformations are the first or only effects in the chain. PiperOrigin-RevId: 460239403 (cherry picked from commit 7dc54efd)
hschlueter committed
-
- 07 Jul, 2022 1 commit
-
-
Some other minor nits and adjustments to the API logic. PiperOrigin-RevId: 459490431 (cherry picked from commit 91f17777)
samrobinson committed
-
- 06 Jul, 2022 2 commits
-
-
The SDR constant also specified a color space and range, in addition to C.COLOR_TRANSFER_SDR. However, it turns out that SDR videos may use different color space and range values, so following prior ExoPlayer conventions to have `null` mean "generic SDR" is preferable here. PiperOrigin-RevId: 459296746 (cherry picked from commit 7078ce31)
huangdarwin committed -
HDR editing is not supported under API 31 PiperOrigin-RevId: 459211106 (cherry picked from commit ab7747d9)
huangdarwin committed
-
- 05 Jul, 2022 1 commit
-
-
PiperOrigin-RevId: 459106221 (cherry picked from commit 1869855c)
huangdarwin committed
-
- 04 Jul, 2022 1 commit
-
-
This feature is disabled by default for now. PiperOrigin-RevId: 458932471 (cherry picked from commit 7d2eb760)
samrobinson committed
-
- 01 Jul, 2022 6 commits
-
-
If the input is HDR (HLG), check encoder capabilities for HDR support and request tone-mapping to SDR during decoder configuration otherwise. Capabilities are only checked for API 31 and above, as HDR editing is not supported before. As the encoder capabilities check needs to happen before selecting the encoder to use (as this may depend on the resolution output by the effects chain), the EncoderWrapper checks all candidate encoders for the MIME type for HDR capabilities and only requests fallback to SDR if none of them support it. When the actual encoder is selected, the wrapper checks that it matches one of the encoders is checked capabilities for. PiperOrigin-RevId: 458511599 (cherry picked from commit 9c8dcb40)
hschlueter committed -
Configure the GL shaders and encoder to take in HDR metadata. This mostly just consists of passing the Format.colorInfo through the VideoTranscodingSamplePipeline down to the encoder, rather than passing the PQ-ness down to the GL step. Due to b/237674316, this will remove HDR10+ support temporarily to introduce support for HLG10. Manually tested to confirm that HLG10 operations that don't affect color display correctly after this CL with "HDR editing" in the demo checked, and continue to display incorrectly (as before this CL) without the option unchecked. PiperOrigin-RevId: 458490810 (cherry picked from commit a0870a42)
huangdarwin committed -
- Improve variable naming to include time units for clarity - Fix existing timestamp calculations to respect time units as well as track tempo (default values for now) - Ensure the synthesizer produces PCM for the correct amount of time (including gaps between commands). PiperOrigin-RevId: 458428243 (cherry picked from commit da0a208b)
hmzh committed
-
- 30 Jun, 2022 1 commit
-
- 29 Jun, 2022 4 commits
-
-
The GlEffectsFrameProcessor that will be part of the effects module uses the DebugViewProvider. So it does not make sense for it to be an inner interface of Transformer. PiperOrigin-RevId: 458014932 (cherry picked from commit cd0e5b99)
hschlueter committed -
The FinalMatrixTransformationProcessorWrapper ensures that the surface is only replaced when it is not being rendered to and vice versa. PiperOrigin-RevId: 458007639 (cherry picked from commit 234015cb)
hschlueter committed -
The outputHeight in the TransformationRequest is the height of the frame as it would be displayed (i.e., after applying any rotation specified in the format). So pass-through should only be used if the requested outputHeight matches the input format's height after applying the rotation. PiperOrigin-RevId: 457934867 (cherry picked from commit 87beb273)
hschlueter committed
-
- 28 Jun, 2022 1 commit
-
-
pixelWidthHeightRatio is now passed to setInputFrameInfo instead of the factory. PiperOrigin-RevId: 457696703 (cherry picked from commit b7b5f20e)
hschlueter committed
-
- 27 Jun, 2022 1 commit
-