use of androidx.media3.common.ColorInfo in project media by androidx.
the class MediaCodecUtilTest method getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithoutHdrInfoSet.
@Test
public void getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithoutHdrInfoSet() {
ColorInfo colorInfo = new ColorInfo(/* colorSpace= */
C.COLOR_SPACE_BT709, /* colorRange= */
C.COLOR_RANGE_LIMITED, /* colorTransfer= */
C.COLOR_TRANSFER_HLG, /* hdrStaticInfo= */
null);
Format format = new Format.Builder().setSampleMimeType(MimeTypes.VIDEO_AV1).setCodecs("av01.0.21M.10").setColorInfo(colorInfo).build();
assertCodecProfileAndLevelForFormat(format, MediaCodecInfo.CodecProfileLevel.AV1ProfileMain10HDR10, MediaCodecInfo.CodecProfileLevel.AV1Level71);
}
use of androidx.media3.common.ColorInfo in project media by androidx.
the class MediaCodecUtilTest method getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithHdrInfoSet.
@Test
public void getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithHdrInfoSet() {
ColorInfo colorInfo = new ColorInfo(/* colorSpace= */
C.COLOR_SPACE_BT709, /* colorRange= */
C.COLOR_RANGE_LIMITED, /* colorTransfer= */
C.COLOR_TRANSFER_SDR, /* hdrStaticInfo= */
new byte[] { 1, 2, 3, 4, 5, 6, 7 });
Format format = new Format.Builder().setSampleMimeType(MimeTypes.VIDEO_AV1).setCodecs("av01.0.21M.10").setColorInfo(colorInfo).build();
assertCodecProfileAndLevelForFormat(format, MediaCodecInfo.CodecProfileLevel.AV1ProfileMain10HDR10, MediaCodecInfo.CodecProfileLevel.AV1Level71);
}
use of androidx.media3.common.ColorInfo in project media by androidx.
the class MediaFormatUtilTest method createMediaFormatFromFormat_withPopulatedFormat_generatesExpectedEntries.
@Test
public void createMediaFormatFromFormat_withPopulatedFormat_generatesExpectedEntries() {
Format format = new Format.Builder().setAverageBitrate(1).setChannelCount(2).setColorInfo(new ColorInfo(/* colorSpace= */
C.COLOR_SPACE_BT601, /* colorRange= */
C.COLOR_RANGE_FULL, /* colorTransfer= */
C.COLOR_TRANSFER_HLG, new byte[] { 3 })).setSampleMimeType(MimeTypes.VIDEO_H264).setCodecs("avc.123").setFrameRate(4).setWidth(5).setHeight(6).setInitializationData(ImmutableList.of(new byte[] { 7 }, new byte[] { 8 })).setPcmEncoding(C.ENCODING_PCM_8BIT).setLanguage("en").setMaxInputSize(9).setRotationDegrees(10).setSampleRate(11).setAccessibilityChannel(12).setSelectionFlags(C.SELECTION_FLAG_AUTOSELECT | C.SELECTION_FLAG_DEFAULT | C.SELECTION_FLAG_FORCED).setEncoderDelay(13).setEncoderPadding(14).setPixelWidthHeightRatio(.5f).build();
MediaFormat mediaFormat = MediaFormatUtil.createMediaFormatFromFormat(format);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_BIT_RATE)).isEqualTo(format.bitrate);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_CHANNEL_COUNT)).isEqualTo(format.channelCount);
ColorInfo colorInfo = Assertions.checkNotNull(format.colorInfo);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_COLOR_TRANSFER)).isEqualTo(colorInfo.colorTransfer);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_COLOR_RANGE)).isEqualTo(colorInfo.colorRange);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_COLOR_STANDARD)).isEqualTo(colorInfo.colorSpace);
assertThat(mediaFormat.getByteBuffer(MediaFormat.KEY_HDR_STATIC_INFO).array()).isEqualTo(colorInfo.hdrStaticInfo);
assertThat(mediaFormat.getString(MediaFormat.KEY_MIME)).isEqualTo(format.sampleMimeType);
assertThat(mediaFormat.getString(MediaFormat.KEY_CODECS_STRING)).isEqualTo(format.codecs);
assertThat(mediaFormat.getFloat(MediaFormat.KEY_FRAME_RATE)).isEqualTo(format.frameRate);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_WIDTH)).isEqualTo(format.width);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_HEIGHT)).isEqualTo(format.height);
assertThat(mediaFormat.getByteBuffer("csd-0").array()).isEqualTo(format.initializationData.get(0));
assertThat(mediaFormat.getByteBuffer("csd-1").array()).isEqualTo(format.initializationData.get(1));
assertThat(mediaFormat.getInteger(MediaFormat.KEY_PCM_ENCODING)).isEqualTo(format.pcmEncoding);
assertThat(mediaFormat.getInteger(MediaFormatUtil.KEY_PCM_ENCODING_EXTENDED)).isEqualTo(format.pcmEncoding);
assertThat(mediaFormat.getString(MediaFormat.KEY_LANGUAGE)).isEqualTo(format.language);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE)).isEqualTo(format.maxInputSize);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_ROTATION)).isEqualTo(format.rotationDegrees);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_SAMPLE_RATE)).isEqualTo(format.sampleRate);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_CAPTION_SERVICE_NUMBER)).isEqualTo(format.accessibilityChannel);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_IS_AUTOSELECT)).isNotEqualTo(0);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_IS_DEFAULT)).isNotEqualTo(0);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_IS_FORCED_SUBTITLE)).isNotEqualTo(0);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_ENCODER_DELAY)).isEqualTo(format.encoderDelay);
assertThat(mediaFormat.getInteger(MediaFormat.KEY_ENCODER_PADDING)).isEqualTo(format.encoderPadding);
float calculatedPixelAspectRatio = (float) mediaFormat.getInteger(MediaFormat.KEY_PIXEL_ASPECT_RATIO_WIDTH) / mediaFormat.getInteger(MediaFormat.KEY_PIXEL_ASPECT_RATIO_HEIGHT);
assertThat(calculatedPixelAspectRatio).isWithin(.0001f).of(format.pixelWidthHeightRatio);
assertThat(mediaFormat.getFloat(MediaFormatUtil.KEY_PIXEL_WIDTH_HEIGHT_RATIO_FLOAT)).isEqualTo(format.pixelWidthHeightRatio);
}
Aggregations