Pass video data space to output's MediaItemInfo

The DataSpace contains the Color Standard, Range, and Transfer.

PiperOrigin-RevId: 721341719
This commit is contained in:
shahddaghash 2025-01-30 04:37:29 -08:00 committed by Copybara-Service
parent 045b8e6a52
commit 9f96fe81f3

View File

@ -280,18 +280,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
: MediaItemInfo.VALUE_UNSPECIFIED);
mediaItemInfoBuilder.setVideoSize(videoSize);
if (videoFormat.colorInfo != null) {
ColorInfo colorInfo = videoFormat.colorInfo;
int colorStandard =
DATA_SPACE_STANDARD_CONVERSION_MAP.get(
colorInfo.colorSpace, DataSpace.STANDARD_UNSPECIFIED);
int colorTransfer =
DATA_SPACE_TRANSFER_CONVERSION_MAP.get(
colorInfo.colorTransfer, DataSpace.TRANSFER_UNSPECIFIED);
int colorRange =
DATA_SPACE_RANGE_CONVERSION_MAP.get(
colorInfo.colorRange, DataSpace.RANGE_UNSPECIFIED);
mediaItemInfoBuilder.setVideoDataSpace(
DataSpace.pack(colorStandard, colorTransfer, colorRange));
mediaItemInfoBuilder.setVideoDataSpace(getVideoDataSpace(videoFormat.colorInfo));
}
}
Format audioFormat = processedInput.audioFormat;
@ -319,9 +308,24 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
if (exportResult.durationMs != C.TIME_UNSET) {
mediaItemInfoBuilder.setDurationMillis(exportResult.durationMs);
}
if (exportResult.colorInfo != null) {
mediaItemInfoBuilder.setVideoDataSpace(getVideoDataSpace(exportResult.colorInfo));
}
return mediaItemInfoBuilder.build();
}
private static int getVideoDataSpace(ColorInfo colorInfo) {
int colorStandard =
DATA_SPACE_STANDARD_CONVERSION_MAP.get(
colorInfo.colorSpace, DataSpace.STANDARD_UNSPECIFIED);
int colorTransfer =
DATA_SPACE_TRANSFER_CONVERSION_MAP.get(
colorInfo.colorTransfer, DataSpace.TRANSFER_UNSPECIFIED);
int colorRange =
DATA_SPACE_RANGE_CONVERSION_MAP.get(colorInfo.colorRange, DataSpace.RANGE_UNSPECIFIED);
return DataSpace.pack(colorStandard, colorTransfer, colorRange);
}
private static int getEditingEndedEventErrorCode(@ExportException.ErrorCode int errorCode) {
return ERROR_CODE_CONVERSION_MAP.get(errorCode, EditingEndedEvent.ERROR_CODE_NONE);
}