Search in sources :

Example 6 with ColorInfo

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);
}
Also used : Format(androidx.media3.common.Format) ColorInfo(androidx.media3.common.ColorInfo) Test(org.junit.Test)

Example 7 with ColorInfo

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);
}
Also used : Format(androidx.media3.common.Format) ColorInfo(androidx.media3.common.ColorInfo) Test(org.junit.Test)

Example 8 with ColorInfo

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);
}
Also used : MediaFormat(android.media.MediaFormat) MediaFormat(android.media.MediaFormat) Format(androidx.media3.common.Format) ColorInfo(androidx.media3.common.ColorInfo) Test(org.junit.Test)

Aggregations

ColorInfo (androidx.media3.common.ColorInfo)6 Format (androidx.media3.common.Format)4 Nullable (androidx.annotation.Nullable)3 Test (org.junit.Test)3 ByteBuffer (java.nio.ByteBuffer)2 SuppressLint (android.annotation.SuppressLint)1 MediaFormat (android.media.MediaFormat)1 Bundle (android.os.Bundle)1 UnstableApi (androidx.media3.common.util.UnstableApi)1 AvcConfig (androidx.media3.extractor.AvcConfig)1 DolbyVisionConfig (androidx.media3.extractor.DolbyVisionConfig)1 HevcConfig (androidx.media3.extractor.HevcConfig)1 SeekPoint (androidx.media3.extractor.SeekPoint)1 FakeMetadataEntry (androidx.media3.test.utils.FakeMetadataEntry)1 ArrayList (java.util.ArrayList)1