androidx / media

Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
https://developer.android.com/media/media3
Apache License 2.0
1.71k stars 410 forks source link

HDR to SDR fails when using media3/transformer demo app for release 1.0.0 #304

Closed harini113 closed 1 year ago

harini113 commented 1 year ago

Media3 Version

Media3 1.0.0

Devices that reproduce the issue

Internal device

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

convert HDR10 clip to SDR with all other options set to false in the demo apk except Request SDR tone mapping

Expected result

transformer demo app output clip should be generated

Actual result

clip generated is 0 bytes and the logs have the following error

04-04 21:27:26.118 7504 7504 E TransformerActivity: Transformation error 04-04 21:27:26.118 7504 7504 E TransformerActivity: androidx.media3.transformer.TransformationException: VideoDecoder, mediaFormat={color-transfer=3, allow-frame-drop=0, mime=video/hevc, profile=2, width=1920, color-range=2, rotation-degrees=0, max-input-size=234138, color-standard=1, height=1080, csd-0=java.nio.HeapByteBuffer[pos=0 lim=84 cap=84]}, mediaCodecName=c2.qti.hevc.decoder 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.transformer.DefaultCodec.createTransformationException(DefaultCodec.java:372) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.transformer.DefaultCodec.maybeDequeueOutputBuffer(DefaultCodec.java:321) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.transformer.DefaultCodec.getOutputBufferInfo(DefaultCodec.java:249) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.transformer.VideoTranscodingSamplePipeline.maybeProcessDecoderOutput(VideoTranscodingSamplePipeline.java:330) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.transformer.VideoTranscodingSamplePipeline.processDataUpToMuxer(VideoTranscodingSamplePipeline.java:235) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.transformer.BaseSamplePipeline.processData(BaseSamplePipeline.java:77) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.transformer.TransformerBaseRenderer.render(TransformerBaseRenderer.java:97) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1015) 04-04 21:27:26.118 7504 7504 E TransformerActivity: at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:510)

Media

Any HDR10 clip can be used

Bug Report

dway123 commented 1 year ago

Does the device's codec support HDR to SDR tone-mapping for HDR10? I suspect it doesn't, but it may also only support tone-mapping in HLG10, or not support HDR to SDR tone-mapping at all.

If the device's codec doesn't support HDR to SDR tone-mapping for HDR10, then this version of Transformer wouldn't be able to decode and tone-map this content.

However, the main (not yet release) branch of Transformer will be able to convert this, as long as you're on an API 29+ device, using HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL, or this option in the Transformer demo.

harini113 commented 1 year ago

with Beta02 release on the same device we were able to execute the test with our version of the app using the libs. It was noticed first on rc01. I will try this above mentioned api call and update the thread.

google-oss-bot commented 1 year ago

Hey @harini113. We need more information to resolve this issue but there hasn't been an update in 14 weekdays. I'm marking the issue as stale and if there are no new updates in the next 7 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

google-oss-bot commented 1 year ago

Since there haven't been any recent updates here, I am going to close this issue.

@harini113 if you're still experiencing this problem and want to continue the discussion just leave a comment here and we are happy to re-open this.