Fix video scrubber contrast with HDR video.

Co-authored-by: Milan Stevanovic <milan@signal.org>
This commit is contained in:
Greyson Parrelli
2026-02-09 13:36:27 -05:00
parent d7b7727aa6
commit 3dd5ad2a8a

View File

@@ -5,6 +5,8 @@ import android.media.MediaCodec;
import android.media.MediaExtractor;
import android.media.MediaFormat;
import android.opengl.GLES20;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
@@ -86,6 +88,17 @@ final class VideoThumbnailsExtractor {
outputSurface = new OutputSurface(outputWidthRotated, outputHeightRotated, true);
decoder = MediaCodec.createDecoderByType(mime);
if (Build.VERSION.SDK_INT >= 31) {
final String VENDOR_DOLBY_CODEC_TRANSFER_PARAMKEY = "vendor.dolby.codec.transfer.value";
MediaCodec.ParameterDescriptor descriptor = decoder.getParameterDescriptor(VENDOR_DOLBY_CODEC_TRANSFER_PARAMKEY);
if (descriptor != null) {
Bundle transferBundle = new Bundle();
transferBundle.putString(VENDOR_DOLBY_CODEC_TRANSFER_PARAMKEY, "transfer.sdr.normal");
decoder.setParameters(transferBundle);
} else {
mediaFormat.setInteger(MediaFormat.KEY_COLOR_TRANSFER_REQUEST, MediaFormat.COLOR_TRANSFER_SDR_VIDEO);
}
}
decoder.configure(mediaFormat, outputSurface.getSurface(), null, 0);
decoder.start();