mirror of
https://github.com/androidx/media.git
synced 2025-05-10 00:59:51 +08:00
ExoPlayer: Remove tone-mapping workaround.
PiperOrigin-RevId: 560069496
This commit is contained in:
parent
9810d6ae92
commit
dccbc7e459
@ -235,8 +235,16 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
// Playback thread handler.
|
// Playback thread handler.
|
||||||
handler = Util.createHandlerForCurrentLooper();
|
handler = Util.createHandlerForCurrentLooper();
|
||||||
|
|
||||||
Pair<ColorInfo, ColorInfo> inputAndOutputColorInfos =
|
ColorInfo inputColorInfo =
|
||||||
experimentalGetVideoFrameProcessorColorConfiguration(sourceFormat.colorInfo);
|
sourceFormat.colorInfo != null && ColorInfo.isTransferHdr(sourceFormat.colorInfo)
|
||||||
|
? sourceFormat.colorInfo
|
||||||
|
: ColorInfo.SDR_BT709_LIMITED;
|
||||||
|
ColorInfo outputColorInfo = inputColorInfo;
|
||||||
|
if (inputColorInfo.colorTransfer == C.COLOR_TRANSFER_HLG) {
|
||||||
|
// SurfaceView only supports BT2020 PQ input. Therefore, convert HLG to PQ.
|
||||||
|
outputColorInfo =
|
||||||
|
inputColorInfo.buildUpon().setColorTransfer(C.COLOR_TRANSFER_ST2084).build();
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("nullness:assignment")
|
@SuppressWarnings("nullness:assignment")
|
||||||
@Initialized
|
@Initialized
|
||||||
@ -245,8 +253,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
videoFrameProcessorFactory.create(
|
videoFrameProcessorFactory.create(
|
||||||
context,
|
context,
|
||||||
DebugViewProvider.NONE,
|
DebugViewProvider.NONE,
|
||||||
inputAndOutputColorInfos.first,
|
inputColorInfo,
|
||||||
inputAndOutputColorInfos.second,
|
outputColorInfo,
|
||||||
/* renderFramesAutomatically= */ false,
|
/* renderFramesAutomatically= */ false,
|
||||||
/* listenerExecutor= */ handler::post,
|
/* listenerExecutor= */ handler::post,
|
||||||
thisRef);
|
thisRef);
|
||||||
@ -512,29 +520,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a {@link Pair} of {@linkplain ColorInfo input color} and {@linkplain ColorInfo output
|
|
||||||
* color} to configure the {@code VideoFrameProcessor}.
|
|
||||||
*/
|
|
||||||
private static Pair<ColorInfo, ColorInfo> experimentalGetVideoFrameProcessorColorConfiguration(
|
|
||||||
@Nullable ColorInfo inputColorInfo) {
|
|
||||||
// TODO b/279163661 - Remove this method after VideoFrameProcessor supports texture ID
|
|
||||||
// input/output.
|
|
||||||
// explicit check for nullness
|
|
||||||
if (inputColorInfo == null || !ColorInfo.isTransferHdr(inputColorInfo)) {
|
|
||||||
return Pair.create(ColorInfo.SDR_BT709_LIMITED, ColorInfo.SDR_BT709_LIMITED);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (inputColorInfo.colorTransfer == C.COLOR_TRANSFER_HLG) {
|
|
||||||
// SurfaceView only supports BT2020 PQ input, converting HLG to PQ.
|
|
||||||
return Pair.create(
|
|
||||||
inputColorInfo,
|
|
||||||
inputColorInfo.buildUpon().setColorTransfer(C.COLOR_TRANSFER_ST2084).build());
|
|
||||||
}
|
|
||||||
|
|
||||||
return Pair.create(inputColorInfo, inputColorInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the output surface info.
|
* Sets the output surface info.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user