From 3c5c81fc3eda2ef96966fc0ba2740c06d668963b Mon Sep 17 00:00:00 2001 From: Googler Date: Tue, 23 Jul 2024 04:51:50 -0700 Subject: [PATCH] BoxesTest: Add default format builders Move the common initialization code for format builder into separate methods to reduce code duplication. PiperOrigin-RevId: 655118764 --- .../java/androidx/media3/muxer/BoxesTest.java | 149 ++---------------- .../audio_sample_entry_box_mp4a.dump | 4 +- .../audio_sample_entry_box_opus.dump | 2 +- .../audio_sample_entry_box_samr.dump | 2 +- .../audio_sample_entry_box_sawb.dump | 2 +- .../video_sample_entry_box_av1.dump | 4 +- .../video_sample_entry_box_h263.dump | 2 +- .../video_sample_entry_box_h264.dump | 2 +- .../video_sample_entry_box_h265.dump | 2 +- .../video_sample_entry_box_h265_hdr10.dump | 2 +- .../video_sample_entry_box_mpeg4.dump | 4 +- 11 files changed, 30 insertions(+), 145 deletions(-) diff --git a/libraries/muxer/src/test/java/androidx/media3/muxer/BoxesTest.java b/libraries/muxer/src/test/java/androidx/media3/muxer/BoxesTest.java index 77e0cc9691..a461580c32 100644 --- a/libraries/muxer/src/test/java/androidx/media3/muxer/BoxesTest.java +++ b/libraries/muxer/src/test/java/androidx/media3/muxer/BoxesTest.java @@ -19,7 +19,6 @@ import static androidx.media3.muxer.Mp4Muxer.LAST_FRAME_DURATION_BEHAVIOR_DUPLIC import static androidx.media3.muxer.Mp4Muxer.LAST_FRAME_DURATION_BEHAVIOR_INSERT_SHORT_FRAME; import static androidx.media3.muxer.MuxerTestUtil.FAKE_AUDIO_FORMAT; import static androidx.media3.muxer.MuxerTestUtil.FAKE_CSD_0; -import static androidx.media3.muxer.MuxerTestUtil.FAKE_CSD_1; import static androidx.media3.muxer.MuxerTestUtil.FAKE_VIDEO_FORMAT; import static androidx.media3.muxer.MuxerTestUtil.getExpectedDumpFilePath; import static com.google.common.truth.Truth.assertThat; @@ -235,16 +234,10 @@ public class BoxesTest { @Test public void createAudioSampleEntryBox_forMp4a_matchesExpected() throws Exception { Format format = - new Format.Builder() - .setPeakBitrate(128000) - .setSampleRate(48000) - .setId(3) + FAKE_AUDIO_FORMAT + .buildUpon() .setSampleMimeType("audio/mp4a-latm") - .setChannelCount(2) - .setAverageBitrate(128000) - .setLanguage("```") - .setMaxInputSize(502) - .setInitializationData(ImmutableList.of(BaseEncoding.base16().decode("1190"))) + .setInitializationData(ImmutableList.of(FAKE_CSD_0)) .build(); ByteBuffer audioSampleEntryBox = Boxes.audioSampleEntry(format); @@ -256,17 +249,7 @@ public class BoxesTest { @Test public void createAudioSampleEntryBox_forSamr_matchesExpected() throws Exception { - Format format = - new Format.Builder() - .setPeakBitrate(128000) - .setSampleRate(48000) - .setId(3) - .setSampleMimeType(MimeTypes.AUDIO_AMR_NB) - .setChannelCount(2) - .setAverageBitrate(128000) - .setLanguage("```") - .setMaxInputSize(502) - .build(); + Format format = FAKE_AUDIO_FORMAT.buildUpon().setSampleMimeType(MimeTypes.AUDIO_AMR_NB).build(); ByteBuffer audioSampleEntryBox = Boxes.audioSampleEntry(format); @@ -277,17 +260,7 @@ public class BoxesTest { @Test public void createAudioSampleEntryBox_forSawb_matchesExpected() throws Exception { - Format format = - new Format.Builder() - .setPeakBitrate(128000) - .setSampleRate(48000) - .setId(3) - .setSampleMimeType("audio/amr-wb") - .setChannelCount(2) - .setAverageBitrate(128000) - .setLanguage("```") - .setMaxInputSize(502) - .build(); + Format format = FAKE_AUDIO_FORMAT.buildUpon().setSampleMimeType("audio/amr-wb").build(); ByteBuffer audioSampleEntryBox = Boxes.audioSampleEntry(format); @@ -299,15 +272,9 @@ public class BoxesTest { @Test public void createAudioSampleEntryBox_forOpus_matchesExpected() throws Exception { Format format = - new Format.Builder() - .setPeakBitrate(128000) - .setSampleRate(48000) - .setId(3) + FAKE_AUDIO_FORMAT + .buildUpon() .setSampleMimeType(MimeTypes.AUDIO_OPUS) - .setChannelCount(6) - .setAverageBitrate(128000) - .setLanguage("```") - .setMaxInputSize(502) .setInitializationData( ImmutableList.of( BaseEncoding.base16() @@ -324,18 +291,7 @@ public class BoxesTest { @Test public void createAudioSampleEntryBox_withUnknownAudioFormat_throws() { // The audio format contains an unknown MIME type. - Format format = - new Format.Builder() - .setPeakBitrate(128000) - .setSampleRate(48000) - .setId(3) - .setSampleMimeType("audio/mp4a-unknown") - .setChannelCount(2) - .setAverageBitrate(128000) - .setLanguage("```") - .setMaxInputSize(502) - .setInitializationData(ImmutableList.of(BaseEncoding.base16().decode("1190"))) - .build(); + Format format = FAKE_AUDIO_FORMAT.buildUpon().setSampleMimeType("audio/mp4a-unknown").build(); assertThrows(IllegalArgumentException.class, () -> Boxes.audioSampleEntry(format)); } @@ -343,14 +299,9 @@ public class BoxesTest { @Test public void createVideoSampleEntryBox_forH265_matchesExpected() throws Exception { Format format = - new Format.Builder() - .setId(1) + FAKE_VIDEO_FORMAT + .buildUpon() .setSampleMimeType("video/hevc") - .setWidth(48) - .setLanguage("und") - .setMaxInputSize(114) - .setFrameRate(25) - .setHeight(32) .setInitializationData( ImmutableList.of( BaseEncoding.base16() @@ -368,16 +319,9 @@ public class BoxesTest { @Test public void createVideoSampleEntryBox_forH265_hdr10_matchesExpected() throws Exception { Format format = - new Format.Builder() - .setPeakBitrate(9200) - .setId(1) + FAKE_VIDEO_FORMAT + .buildUpon() .setSampleMimeType("video/hevc") - .setAverageBitrate(9200) - .setLanguage("und") - .setWidth(256) - .setMaxInputSize(66) - .setFrameRate(25) - .setHeight(256) .setColorInfo( new ColorInfo.Builder() .setColorSpace(C.COLOR_SPACE_BT2020) @@ -402,16 +346,7 @@ public class BoxesTest { @Test public void createVideoSampleEntryBox_forH263_matchesExpected() throws Exception { - Format format = - new Format.Builder() - .setId(1) - .setSampleMimeType(MimeTypes.VIDEO_H263) - .setLanguage("und") - .setWidth(10) - .setMaxInputSize(39) - .setFrameRate(25) - .setHeight(12) - .build(); + Format format = FAKE_VIDEO_FORMAT.buildUpon().setSampleMimeType(MimeTypes.VIDEO_H263).build(); ByteBuffer videoSampleEntryBox = Boxes.videoSampleEntry(format); @@ -422,17 +357,7 @@ public class BoxesTest { @Test public void createVideoSampleEntryBox_forH264_matchesExpected() throws Exception { - Format format = - new Format.Builder() - .setId(1) - .setSampleMimeType("video/avc") - .setLanguage("und") - .setWidth(10) - .setMaxInputSize(39) - .setFrameRate(25) - .setHeight(12) - .setInitializationData(ImmutableList.of(FAKE_CSD_0, FAKE_CSD_1)) - .build(); + Format format = FAKE_VIDEO_FORMAT.buildUpon().setSampleMimeType("video/avc").build(); ByteBuffer videoSampleEntryBox = Boxes.videoSampleEntry(format); @@ -443,18 +368,7 @@ public class BoxesTest { @Test public void createVideoSampleEntryBox_forAv1_matchesExpected() throws IOException { - Format format = - new Format.Builder() - .setId(1) - .setSampleMimeType("video/av01") - .setLanguage("und") - .setWidth(10) - .setMaxInputSize(49) - .setFrameRate(25) - .setHeight(12) - .setInitializationData( - ImmutableList.of(BaseEncoding.base16().decode("812000000A09200000019CDBFFF304"))) - .build(); + Format format = FAKE_VIDEO_FORMAT.buildUpon().setSampleMimeType("video/av01").build(); ByteBuffer videoSampleEntryBox = Boxes.videoSampleEntry(format); @@ -465,23 +379,7 @@ public class BoxesTest { @Test public void createVideoSampleEntryBox_forMPEG4_matchesExpected() throws IOException { - Format format = - new Format.Builder() - .setId(1) - .setSampleMimeType(MimeTypes.VIDEO_MP4V) - .setAverageBitrate(9200) - .setPeakBitrate(9200) - .setLanguage("und") - .setWidth(10) - .setMaxInputSize(49) - .setFrameRate(25) - .setHeight(12) - .setInitializationData( - ImmutableList.of( - BaseEncoding.base16() - .decode( - "000001B001000001B58913000001000000012000C48D88007D0584121443000001B24C61766335382E35342E313030"))) - .build(); + Format format = FAKE_VIDEO_FORMAT.buildUpon().setSampleMimeType(MimeTypes.VIDEO_MP4V).build(); ByteBuffer videoSampleEntryBox = Boxes.videoSampleEntry(format); @@ -496,20 +394,7 @@ public class BoxesTest { public void createVideoSampleEntryBox_withUnknownVideoFormat_throws() { // The video format contains an unknown MIME type. Format format = - new Format.Builder() - .setId(1) - .setSampleMimeType("video/someweirdvideoformat") - .setWidth(48) - .setLanguage("und") - .setMaxInputSize(114) - .setFrameRate(25) - .setHeight(32) - .setInitializationData( - ImmutableList.of( - BaseEncoding.base16() - .decode( - "0000000140010C01FFFF0408000003009FC800000300001E959809000000014201010408000003009FC800000300001EC1882165959AE4CAE68080000003008000000C84000000014401C173D089"))) - .build(); + FAKE_VIDEO_FORMAT.buildUpon().setSampleMimeType("video/someweirdvideoformat").build(); assertThrows(IllegalArgumentException.class, () -> Boxes.videoSampleEntry(format)); } diff --git a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_mp4a.dump b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_mp4a.dump index 5567ee4021..92768c604d 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_mp4a.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_mp4a.dump @@ -1,2 +1,2 @@ -mp4a (75 bytes): - Data = length 67, hash FEDA4F43 +mp4a (101 bytes): + Data = length 93, hash E5A8331A diff --git a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_opus.dump b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_opus.dump index 4d7f7beaf7..9edb8439d0 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_opus.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_opus.dump @@ -1,2 +1,2 @@ Opus (63 bytes): - Data = length 55, hash CF9222D3 + Data = length 55, hash 439827B8 diff --git a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_samr.dump b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_samr.dump index 2d271a947b..3e4ac2eabe 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_samr.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_samr.dump @@ -1,2 +1,2 @@ samr (53 bytes): - Data = length 45, hash 7F055BB3 + Data = length 45, hash B1E06854 diff --git a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_sawb.dump b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_sawb.dump index c14524ad3d..648592deb3 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_sawb.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/audio_sample_entry_box_sawb.dump @@ -1,2 +1,2 @@ sawb (53 bytes): - Data = length 45, hash 7F064471 + Data = length 45, hash B1E15112 diff --git a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_av1.dump b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_av1.dump index 5ca5cf2b63..c891f480e6 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_av1.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_av1.dump @@ -1,2 +1,2 @@ -av01 (125 bytes): - Data = length 117, hash F51B373 +av01 (138 bytes): + Data = length 130, hash 4FE8371B diff --git a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h263.dump b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h263.dump index 2f9865ae4d..2af4e7ea7e 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h263.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h263.dump @@ -1,2 +1,2 @@ s263 (117 bytes): - Data = length 109, hash B820D1F5 + Data = length 109, hash EABCBA75 diff --git a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h264.dump b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h264.dump index 5bc0d72a50..145535a271 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h264.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h264.dump @@ -1,2 +1,2 @@ avc1 (150 bytes): - Data = length 142, hash 9A2FF5A9 + Data = length 142, hash C0931D29 diff --git a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265.dump b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265.dump index 416dc4477c..8ea9293304 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265.dump @@ -1,2 +1,2 @@ hvc1 (214 bytes): - Data = length 206, hash C7111A0E + Data = length 206, hash 80613554 diff --git a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265_hdr10.dump b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265_hdr10.dump index ee2f103b41..2c0d132b16 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265_hdr10.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_h265_hdr10.dump @@ -1,2 +1,2 @@ hvc1 (240 bytes): - Data = length 232, hash 3E864AF8 + Data = length 232, hash 9DAB9F90 diff --git a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_mpeg4.dump b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_mpeg4.dump index 99f75b2061..8a849a2c70 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_mpeg4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/video_sample_entry_box_mpeg4.dump @@ -1,2 +1,2 @@ -mp4v (186 bytes): - Data = length 178, hash DE771E7E +mp4v (167 bytes): + Data = length 159, hash 78156FFF