diff --git a/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java b/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java index 4953137ee5..bd52589ea8 100644 --- a/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java +++ b/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java @@ -100,6 +100,7 @@ public final class MimeTypes { public static final String AUDIO_OGG = BASE_TYPE_AUDIO + "/ogg"; public static final String AUDIO_WAV = BASE_TYPE_AUDIO + "/wav"; public static final String AUDIO_MIDI = BASE_TYPE_AUDIO + "/midi"; + @UnstableApi public static final String AUDIO_IAMF = BASE_TYPE_AUDIO + "/iamf"; @UnstableApi public static final String AUDIO_EXOPLAYER_MIDI = BASE_TYPE_AUDIO + "/x-exoplayer-midi"; diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java index 1caf10a314..6f1478d9b6 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java @@ -431,6 +431,12 @@ import java.util.List; @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_mdcv = 0x6d646376; + @SuppressWarnings("ConstantCaseForConstants") + public static final int TYPE_iamf = 0x69616d66; + + @SuppressWarnings("ConstantCaseForConstants") + public static final int TYPE_iacb = 0x69616362; + public final int type; public Atom(int type) { diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java index 883f0c4ded..46fb1e36ce 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java @@ -1017,7 +1017,8 @@ import java.util.Objects; || childAtomType == Atom.TYPE_alaw || childAtomType == Atom.TYPE_ulaw || childAtomType == Atom.TYPE_Opus - || childAtomType == Atom.TYPE_fLaC) { + || childAtomType == Atom.TYPE_fLaC + || childAtomType == Atom.TYPE_iamf) { parseAudioSampleEntry( stsd, childAtomType, @@ -1775,6 +1776,8 @@ import java.util.Objects; mimeType = MimeTypes.AUDIO_FLAC; } else if (atomType == Atom.TYPE_mlpa) { mimeType = MimeTypes.AUDIO_TRUEHD; + } else if (atomType == Atom.TYPE_iamf) { + mimeType = MimeTypes.AUDIO_IAMF; } @Nullable List initializationData = null; @@ -1914,6 +1917,23 @@ import java.util.Objects; sampleRate = audioSpecificConfig.first; channelCount = audioSpecificConfig.second; initializationData = ImmutableList.of(initializationDataBytes); + } else if (childAtomType == Atom.TYPE_iacb) { + parent.setPosition( + childPosition + Atom.HEADER_SIZE + 1); // header and configuration version + int configObusSize = 0; + for (int i = 0; i <= 4; i++) { + int currentByte = parent.readUnsignedByte(); + configObusSize |= (currentByte & 0x7F) << (i * 7); + if ((currentByte & 0x80) == 0) { + break; + } + } + if (configObusSize < 0) { + throw ParserException.createForUnsupportedContainerFeature("OBU too large."); + } + byte[] initializationDataBytes = new byte[configObusSize]; + parent.readBytes(initializationDataBytes, /* offset= */ 0, configObusSize); + initializationData = ImmutableList.of(initializationDataBytes); } childPosition += childAtomSize; } diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java index 5ffda621f9..95997d991f 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java @@ -196,6 +196,15 @@ public final class FragmentedMp4ExtractorParameterizedTest { simulationConfig); } + @Test + public void sampleWithIamfTrack() throws Exception { + ExtractorAsserts.assertBehavior( + getExtractorFactory( + /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction), + "media/mp4/sample_fragmented_iamf.mp4", + simulationConfig); + } + private static ExtractorFactory getExtractorFactory( List closedCaptionFormats, boolean subtitlesParsedDuringExtraction) { SubtitleParser.Factory subtitleParserFactory; diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java index bb781370f9..668d5a4595 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java @@ -208,6 +208,11 @@ public final class Mp4ExtractorParameterizedTest { assertExtractorBehavior("media/mp4/bt601.mov"); } + @Test + public void mp4sampleWithIamfTrack() throws Exception { + assertExtractorBehavior("media/mp4/sample_iamf.mp4"); + } + private void assertExtractorBehavior(String file) throws IOException { ExtractorAsserts.AssertionConfig.Builder assertionConfigBuilder = new ExtractorAsserts.AssertionConfig.Builder(); diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.0.dump new file mode 100644 index 0000000000..8b1fd6f6db --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.0.dump @@ -0,0 +1,520 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=776]] + getPosition(1) = [[timeUs=0, position=776]] + getPosition(250000) = [[timeUs=0, position=776]] + getPosition(500000) = [[timeUs=0, position=776]] +numberOfTracks = 1 +track 0: + total output bytes = 33375 + sample count = 125 + format 0: + id = 1 + sampleMimeType = audio/iamf + channelCount = 0 + sampleRate = 0 + language = und + initializationData: + data = length 119, hash 5B2D6971 + sample 0: + time = 0 + flags = 1 + data = length 267, hash 256F07 + sample 1: + time = 4000 + flags = 1 + data = length 267, hash AFD55288 + sample 2: + time = 8000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 3: + time = 12000 + flags = 1 + data = length 267, hash C0531D07 + sample 4: + time = 16000 + flags = 1 + data = length 267, hash 1577888 + sample 5: + time = 20000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 6: + time = 24000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 7: + time = 28000 + flags = 1 + data = length 267, hash 76F19E88 + sample 8: + time = 32000 + flags = 1 + data = length 267, hash 30995F07 + sample 9: + time = 36000 + flags = 1 + data = length 267, hash 7D567907 + sample 10: + time = 40000 + flags = 1 + data = length 267, hash 70A3C488 + sample 11: + time = 44000 + flags = 1 + data = length 267, hash 390DF07 + sample 12: + time = 48000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 13: + time = 52000 + flags = 1 + data = length 267, hash B4476F07 + sample 14: + time = 56000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 15: + time = 60000 + flags = 1 + data = length 267, hash B39D507 + sample 16: + time = 64000 + flags = 1 + data = length 267, hash 873EEF07 + sample 17: + time = 68000 + flags = 1 + data = length 267, hash D3DEE088 + sample 18: + time = 72000 + flags = 1 + data = length 267, hash D07F8307 + sample 19: + time = 76000 + flags = 1 + data = length 267, hash 5A366F07 + sample 20: + time = 80000 + flags = 1 + data = length 267, hash F9190688 + sample 21: + time = 84000 + flags = 1 + data = length 267, hash 69FD3107 + sample 22: + time = 88000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 23: + time = 92000 + flags = 1 + data = length 267, hash 226B2C88 + sample 24: + time = 96000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 25: + time = 100000 + flags = 1 + data = length 267, hash 256F07 + sample 26: + time = 104000 + flags = 1 + data = length 267, hash AFD55288 + sample 27: + time = 108000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 28: + time = 112000 + flags = 1 + data = length 267, hash C0531D07 + sample 29: + time = 116000 + flags = 1 + data = length 267, hash 1577888 + sample 30: + time = 120000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 31: + time = 124000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 32: + time = 128000 + flags = 1 + data = length 267, hash 76F19E88 + sample 33: + time = 132000 + flags = 1 + data = length 267, hash 30995F07 + sample 34: + time = 136000 + flags = 1 + data = length 267, hash 7D567907 + sample 35: + time = 140000 + flags = 1 + data = length 267, hash 70A3C488 + sample 36: + time = 144000 + flags = 1 + data = length 267, hash 390DF07 + sample 37: + time = 148000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 38: + time = 152000 + flags = 1 + data = length 267, hash B4476F07 + sample 39: + time = 156000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 40: + time = 160000 + flags = 1 + data = length 267, hash B39D507 + sample 41: + time = 164000 + flags = 1 + data = length 267, hash 873EEF07 + sample 42: + time = 168000 + flags = 1 + data = length 267, hash D3DEE088 + sample 43: + time = 172000 + flags = 1 + data = length 267, hash D07F8307 + sample 44: + time = 176000 + flags = 1 + data = length 267, hash 5A366F07 + sample 45: + time = 180000 + flags = 1 + data = length 267, hash F9190688 + sample 46: + time = 184000 + flags = 1 + data = length 267, hash 69FD3107 + sample 47: + time = 188000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 48: + time = 192000 + flags = 1 + data = length 267, hash 226B2C88 + sample 49: + time = 196000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 50: + time = 200000 + flags = 1 + data = length 267, hash 256F07 + sample 51: + time = 204000 + flags = 1 + data = length 267, hash AFD55288 + sample 52: + time = 208000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 53: + time = 212000 + flags = 1 + data = length 267, hash C0531D07 + sample 54: + time = 216000 + flags = 1 + data = length 267, hash 1577888 + sample 55: + time = 220000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 56: + time = 224000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 57: + time = 228000 + flags = 1 + data = length 267, hash 76F19E88 + sample 58: + time = 232000 + flags = 1 + data = length 267, hash 30995F07 + sample 59: + time = 236000 + flags = 1 + data = length 267, hash 7D567907 + sample 60: + time = 240000 + flags = 1 + data = length 267, hash 70A3C488 + sample 61: + time = 244000 + flags = 1 + data = length 267, hash 390DF07 + sample 62: + time = 248000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 63: + time = 252000 + flags = 1 + data = length 267, hash B4476F07 + sample 64: + time = 256000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 65: + time = 260000 + flags = 1 + data = length 267, hash B39D507 + sample 66: + time = 264000 + flags = 1 + data = length 267, hash 873EEF07 + sample 67: + time = 268000 + flags = 1 + data = length 267, hash D3DEE088 + sample 68: + time = 272000 + flags = 1 + data = length 267, hash D07F8307 + sample 69: + time = 276000 + flags = 1 + data = length 267, hash 5A366F07 + sample 70: + time = 280000 + flags = 1 + data = length 267, hash F9190688 + sample 71: + time = 284000 + flags = 1 + data = length 267, hash 69FD3107 + sample 72: + time = 288000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 73: + time = 292000 + flags = 1 + data = length 267, hash 226B2C88 + sample 74: + time = 296000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 75: + time = 300000 + flags = 1 + data = length 267, hash 256F07 + sample 76: + time = 304000 + flags = 1 + data = length 267, hash AFD55288 + sample 77: + time = 308000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 78: + time = 312000 + flags = 1 + data = length 267, hash C0531D07 + sample 79: + time = 316000 + flags = 1 + data = length 267, hash 1577888 + sample 80: + time = 320000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 81: + time = 324000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 82: + time = 328000 + flags = 1 + data = length 267, hash 76F19E88 + sample 83: + time = 332000 + flags = 1 + data = length 267, hash 30995F07 + sample 84: + time = 336000 + flags = 1 + data = length 267, hash 7D567907 + sample 85: + time = 340000 + flags = 1 + data = length 267, hash 70A3C488 + sample 86: + time = 344000 + flags = 1 + data = length 267, hash 390DF07 + sample 87: + time = 348000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 88: + time = 352000 + flags = 1 + data = length 267, hash B4476F07 + sample 89: + time = 356000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 90: + time = 360000 + flags = 1 + data = length 267, hash B39D507 + sample 91: + time = 364000 + flags = 1 + data = length 267, hash 873EEF07 + sample 92: + time = 368000 + flags = 1 + data = length 267, hash D3DEE088 + sample 93: + time = 372000 + flags = 1 + data = length 267, hash D07F8307 + sample 94: + time = 376000 + flags = 1 + data = length 267, hash 5A366F07 + sample 95: + time = 380000 + flags = 1 + data = length 267, hash F9190688 + sample 96: + time = 384000 + flags = 1 + data = length 267, hash 69FD3107 + sample 97: + time = 388000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 98: + time = 392000 + flags = 1 + data = length 267, hash 226B2C88 + sample 99: + time = 396000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 100: + time = 400000 + flags = 1 + data = length 267, hash 256F07 + sample 101: + time = 404000 + flags = 1 + data = length 267, hash AFD55288 + sample 102: + time = 408000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 103: + time = 412000 + flags = 1 + data = length 267, hash C0531D07 + sample 104: + time = 416000 + flags = 1 + data = length 267, hash 1577888 + sample 105: + time = 420000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 106: + time = 424000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 107: + time = 428000 + flags = 1 + data = length 267, hash 76F19E88 + sample 108: + time = 432000 + flags = 1 + data = length 267, hash 30995F07 + sample 109: + time = 436000 + flags = 1 + data = length 267, hash 7D567907 + sample 110: + time = 440000 + flags = 1 + data = length 267, hash 70A3C488 + sample 111: + time = 444000 + flags = 1 + data = length 267, hash 390DF07 + sample 112: + time = 448000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 113: + time = 452000 + flags = 1 + data = length 267, hash B4476F07 + sample 114: + time = 456000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 115: + time = 460000 + flags = 1 + data = length 267, hash B39D507 + sample 116: + time = 464000 + flags = 1 + data = length 267, hash 873EEF07 + sample 117: + time = 468000 + flags = 1 + data = length 267, hash D3DEE088 + sample 118: + time = 472000 + flags = 1 + data = length 267, hash D07F8307 + sample 119: + time = 476000 + flags = 1 + data = length 267, hash 5A366F07 + sample 120: + time = 480000 + flags = 1 + data = length 267, hash F9190688 + sample 121: + time = 484000 + flags = 1 + data = length 267, hash 69FD3107 + sample 122: + time = 488000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 123: + time = 492000 + flags = 1 + data = length 267, hash 226B2C88 + sample 124: + time = 496000 + flags = 1 + data = length 267, hash B7B2DF07 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.1.dump new file mode 100644 index 0000000000..995f8738c8 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.1.dump @@ -0,0 +1,356 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=776]] + getPosition(1) = [[timeUs=0, position=776]] + getPosition(250000) = [[timeUs=0, position=776]] + getPosition(500000) = [[timeUs=0, position=776]] +numberOfTracks = 1 +track 0: + total output bytes = 22428 + sample count = 84 + format 0: + id = 1 + sampleMimeType = audio/iamf + channelCount = 0 + sampleRate = 0 + language = und + initializationData: + data = length 119, hash 5B2D6971 + sample 0: + time = 164000 + flags = 1 + data = length 267, hash 873EEF07 + sample 1: + time = 168000 + flags = 1 + data = length 267, hash D3DEE088 + sample 2: + time = 172000 + flags = 1 + data = length 267, hash D07F8307 + sample 3: + time = 176000 + flags = 1 + data = length 267, hash 5A366F07 + sample 4: + time = 180000 + flags = 1 + data = length 267, hash F9190688 + sample 5: + time = 184000 + flags = 1 + data = length 267, hash 69FD3107 + sample 6: + time = 188000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 7: + time = 192000 + flags = 1 + data = length 267, hash 226B2C88 + sample 8: + time = 196000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 9: + time = 200000 + flags = 1 + data = length 267, hash 256F07 + sample 10: + time = 204000 + flags = 1 + data = length 267, hash AFD55288 + sample 11: + time = 208000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 12: + time = 212000 + flags = 1 + data = length 267, hash C0531D07 + sample 13: + time = 216000 + flags = 1 + data = length 267, hash 1577888 + sample 14: + time = 220000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 15: + time = 224000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 16: + time = 228000 + flags = 1 + data = length 267, hash 76F19E88 + sample 17: + time = 232000 + flags = 1 + data = length 267, hash 30995F07 + sample 18: + time = 236000 + flags = 1 + data = length 267, hash 7D567907 + sample 19: + time = 240000 + flags = 1 + data = length 267, hash 70A3C488 + sample 20: + time = 244000 + flags = 1 + data = length 267, hash 390DF07 + sample 21: + time = 248000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 22: + time = 252000 + flags = 1 + data = length 267, hash B4476F07 + sample 23: + time = 256000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 24: + time = 260000 + flags = 1 + data = length 267, hash B39D507 + sample 25: + time = 264000 + flags = 1 + data = length 267, hash 873EEF07 + sample 26: + time = 268000 + flags = 1 + data = length 267, hash D3DEE088 + sample 27: + time = 272000 + flags = 1 + data = length 267, hash D07F8307 + sample 28: + time = 276000 + flags = 1 + data = length 267, hash 5A366F07 + sample 29: + time = 280000 + flags = 1 + data = length 267, hash F9190688 + sample 30: + time = 284000 + flags = 1 + data = length 267, hash 69FD3107 + sample 31: + time = 288000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 32: + time = 292000 + flags = 1 + data = length 267, hash 226B2C88 + sample 33: + time = 296000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 34: + time = 300000 + flags = 1 + data = length 267, hash 256F07 + sample 35: + time = 304000 + flags = 1 + data = length 267, hash AFD55288 + sample 36: + time = 308000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 37: + time = 312000 + flags = 1 + data = length 267, hash C0531D07 + sample 38: + time = 316000 + flags = 1 + data = length 267, hash 1577888 + sample 39: + time = 320000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 40: + time = 324000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 41: + time = 328000 + flags = 1 + data = length 267, hash 76F19E88 + sample 42: + time = 332000 + flags = 1 + data = length 267, hash 30995F07 + sample 43: + time = 336000 + flags = 1 + data = length 267, hash 7D567907 + sample 44: + time = 340000 + flags = 1 + data = length 267, hash 70A3C488 + sample 45: + time = 344000 + flags = 1 + data = length 267, hash 390DF07 + sample 46: + time = 348000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 47: + time = 352000 + flags = 1 + data = length 267, hash B4476F07 + sample 48: + time = 356000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 49: + time = 360000 + flags = 1 + data = length 267, hash B39D507 + sample 50: + time = 364000 + flags = 1 + data = length 267, hash 873EEF07 + sample 51: + time = 368000 + flags = 1 + data = length 267, hash D3DEE088 + sample 52: + time = 372000 + flags = 1 + data = length 267, hash D07F8307 + sample 53: + time = 376000 + flags = 1 + data = length 267, hash 5A366F07 + sample 54: + time = 380000 + flags = 1 + data = length 267, hash F9190688 + sample 55: + time = 384000 + flags = 1 + data = length 267, hash 69FD3107 + sample 56: + time = 388000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 57: + time = 392000 + flags = 1 + data = length 267, hash 226B2C88 + sample 58: + time = 396000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 59: + time = 400000 + flags = 1 + data = length 267, hash 256F07 + sample 60: + time = 404000 + flags = 1 + data = length 267, hash AFD55288 + sample 61: + time = 408000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 62: + time = 412000 + flags = 1 + data = length 267, hash C0531D07 + sample 63: + time = 416000 + flags = 1 + data = length 267, hash 1577888 + sample 64: + time = 420000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 65: + time = 424000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 66: + time = 428000 + flags = 1 + data = length 267, hash 76F19E88 + sample 67: + time = 432000 + flags = 1 + data = length 267, hash 30995F07 + sample 68: + time = 436000 + flags = 1 + data = length 267, hash 7D567907 + sample 69: + time = 440000 + flags = 1 + data = length 267, hash 70A3C488 + sample 70: + time = 444000 + flags = 1 + data = length 267, hash 390DF07 + sample 71: + time = 448000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 72: + time = 452000 + flags = 1 + data = length 267, hash B4476F07 + sample 73: + time = 456000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 74: + time = 460000 + flags = 1 + data = length 267, hash B39D507 + sample 75: + time = 464000 + flags = 1 + data = length 267, hash 873EEF07 + sample 76: + time = 468000 + flags = 1 + data = length 267, hash D3DEE088 + sample 77: + time = 472000 + flags = 1 + data = length 267, hash D07F8307 + sample 78: + time = 476000 + flags = 1 + data = length 267, hash 5A366F07 + sample 79: + time = 480000 + flags = 1 + data = length 267, hash F9190688 + sample 80: + time = 484000 + flags = 1 + data = length 267, hash 69FD3107 + sample 81: + time = 488000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 82: + time = 492000 + flags = 1 + data = length 267, hash 226B2C88 + sample 83: + time = 496000 + flags = 1 + data = length 267, hash B7B2DF07 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.2.dump new file mode 100644 index 0000000000..ad7bcabc3d --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.2.dump @@ -0,0 +1,188 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=776]] + getPosition(1) = [[timeUs=0, position=776]] + getPosition(250000) = [[timeUs=0, position=776]] + getPosition(500000) = [[timeUs=0, position=776]] +numberOfTracks = 1 +track 0: + total output bytes = 11214 + sample count = 42 + format 0: + id = 1 + sampleMimeType = audio/iamf + channelCount = 0 + sampleRate = 0 + language = und + initializationData: + data = length 119, hash 5B2D6971 + sample 0: + time = 332000 + flags = 1 + data = length 267, hash 30995F07 + sample 1: + time = 336000 + flags = 1 + data = length 267, hash 7D567907 + sample 2: + time = 340000 + flags = 1 + data = length 267, hash 70A3C488 + sample 3: + time = 344000 + flags = 1 + data = length 267, hash 390DF07 + sample 4: + time = 348000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 5: + time = 352000 + flags = 1 + data = length 267, hash B4476F07 + sample 6: + time = 356000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 7: + time = 360000 + flags = 1 + data = length 267, hash B39D507 + sample 8: + time = 364000 + flags = 1 + data = length 267, hash 873EEF07 + sample 9: + time = 368000 + flags = 1 + data = length 267, hash D3DEE088 + sample 10: + time = 372000 + flags = 1 + data = length 267, hash D07F8307 + sample 11: + time = 376000 + flags = 1 + data = length 267, hash 5A366F07 + sample 12: + time = 380000 + flags = 1 + data = length 267, hash F9190688 + sample 13: + time = 384000 + flags = 1 + data = length 267, hash 69FD3107 + sample 14: + time = 388000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 15: + time = 392000 + flags = 1 + data = length 267, hash 226B2C88 + sample 16: + time = 396000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 17: + time = 400000 + flags = 1 + data = length 267, hash 256F07 + sample 18: + time = 404000 + flags = 1 + data = length 267, hash AFD55288 + sample 19: + time = 408000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 20: + time = 412000 + flags = 1 + data = length 267, hash C0531D07 + sample 21: + time = 416000 + flags = 1 + data = length 267, hash 1577888 + sample 22: + time = 420000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 23: + time = 424000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 24: + time = 428000 + flags = 1 + data = length 267, hash 76F19E88 + sample 25: + time = 432000 + flags = 1 + data = length 267, hash 30995F07 + sample 26: + time = 436000 + flags = 1 + data = length 267, hash 7D567907 + sample 27: + time = 440000 + flags = 1 + data = length 267, hash 70A3C488 + sample 28: + time = 444000 + flags = 1 + data = length 267, hash 390DF07 + sample 29: + time = 448000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 30: + time = 452000 + flags = 1 + data = length 267, hash B4476F07 + sample 31: + time = 456000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 32: + time = 460000 + flags = 1 + data = length 267, hash B39D507 + sample 33: + time = 464000 + flags = 1 + data = length 267, hash 873EEF07 + sample 34: + time = 468000 + flags = 1 + data = length 267, hash D3DEE088 + sample 35: + time = 472000 + flags = 1 + data = length 267, hash D07F8307 + sample 36: + time = 476000 + flags = 1 + data = length 267, hash 5A366F07 + sample 37: + time = 480000 + flags = 1 + data = length 267, hash F9190688 + sample 38: + time = 484000 + flags = 1 + data = length 267, hash 69FD3107 + sample 39: + time = 488000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 40: + time = 492000 + flags = 1 + data = length 267, hash 226B2C88 + sample 41: + time = 496000 + flags = 1 + data = length 267, hash B7B2DF07 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.3.dump new file mode 100644 index 0000000000..4874194301 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.3.dump @@ -0,0 +1,24 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=776]] + getPosition(1) = [[timeUs=0, position=776]] + getPosition(250000) = [[timeUs=0, position=776]] + getPosition(500000) = [[timeUs=0, position=776]] +numberOfTracks = 1 +track 0: + total output bytes = 267 + sample count = 1 + format 0: + id = 1 + sampleMimeType = audio/iamf + channelCount = 0 + sampleRate = 0 + language = und + initializationData: + data = length 119, hash 5B2D6971 + sample 0: + time = 496000 + flags = 1 + data = length 267, hash B7B2DF07 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.unknown_length.dump new file mode 100644 index 0000000000..8b1fd6f6db --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.unknown_length.dump @@ -0,0 +1,520 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=776]] + getPosition(1) = [[timeUs=0, position=776]] + getPosition(250000) = [[timeUs=0, position=776]] + getPosition(500000) = [[timeUs=0, position=776]] +numberOfTracks = 1 +track 0: + total output bytes = 33375 + sample count = 125 + format 0: + id = 1 + sampleMimeType = audio/iamf + channelCount = 0 + sampleRate = 0 + language = und + initializationData: + data = length 119, hash 5B2D6971 + sample 0: + time = 0 + flags = 1 + data = length 267, hash 256F07 + sample 1: + time = 4000 + flags = 1 + data = length 267, hash AFD55288 + sample 2: + time = 8000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 3: + time = 12000 + flags = 1 + data = length 267, hash C0531D07 + sample 4: + time = 16000 + flags = 1 + data = length 267, hash 1577888 + sample 5: + time = 20000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 6: + time = 24000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 7: + time = 28000 + flags = 1 + data = length 267, hash 76F19E88 + sample 8: + time = 32000 + flags = 1 + data = length 267, hash 30995F07 + sample 9: + time = 36000 + flags = 1 + data = length 267, hash 7D567907 + sample 10: + time = 40000 + flags = 1 + data = length 267, hash 70A3C488 + sample 11: + time = 44000 + flags = 1 + data = length 267, hash 390DF07 + sample 12: + time = 48000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 13: + time = 52000 + flags = 1 + data = length 267, hash B4476F07 + sample 14: + time = 56000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 15: + time = 60000 + flags = 1 + data = length 267, hash B39D507 + sample 16: + time = 64000 + flags = 1 + data = length 267, hash 873EEF07 + sample 17: + time = 68000 + flags = 1 + data = length 267, hash D3DEE088 + sample 18: + time = 72000 + flags = 1 + data = length 267, hash D07F8307 + sample 19: + time = 76000 + flags = 1 + data = length 267, hash 5A366F07 + sample 20: + time = 80000 + flags = 1 + data = length 267, hash F9190688 + sample 21: + time = 84000 + flags = 1 + data = length 267, hash 69FD3107 + sample 22: + time = 88000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 23: + time = 92000 + flags = 1 + data = length 267, hash 226B2C88 + sample 24: + time = 96000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 25: + time = 100000 + flags = 1 + data = length 267, hash 256F07 + sample 26: + time = 104000 + flags = 1 + data = length 267, hash AFD55288 + sample 27: + time = 108000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 28: + time = 112000 + flags = 1 + data = length 267, hash C0531D07 + sample 29: + time = 116000 + flags = 1 + data = length 267, hash 1577888 + sample 30: + time = 120000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 31: + time = 124000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 32: + time = 128000 + flags = 1 + data = length 267, hash 76F19E88 + sample 33: + time = 132000 + flags = 1 + data = length 267, hash 30995F07 + sample 34: + time = 136000 + flags = 1 + data = length 267, hash 7D567907 + sample 35: + time = 140000 + flags = 1 + data = length 267, hash 70A3C488 + sample 36: + time = 144000 + flags = 1 + data = length 267, hash 390DF07 + sample 37: + time = 148000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 38: + time = 152000 + flags = 1 + data = length 267, hash B4476F07 + sample 39: + time = 156000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 40: + time = 160000 + flags = 1 + data = length 267, hash B39D507 + sample 41: + time = 164000 + flags = 1 + data = length 267, hash 873EEF07 + sample 42: + time = 168000 + flags = 1 + data = length 267, hash D3DEE088 + sample 43: + time = 172000 + flags = 1 + data = length 267, hash D07F8307 + sample 44: + time = 176000 + flags = 1 + data = length 267, hash 5A366F07 + sample 45: + time = 180000 + flags = 1 + data = length 267, hash F9190688 + sample 46: + time = 184000 + flags = 1 + data = length 267, hash 69FD3107 + sample 47: + time = 188000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 48: + time = 192000 + flags = 1 + data = length 267, hash 226B2C88 + sample 49: + time = 196000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 50: + time = 200000 + flags = 1 + data = length 267, hash 256F07 + sample 51: + time = 204000 + flags = 1 + data = length 267, hash AFD55288 + sample 52: + time = 208000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 53: + time = 212000 + flags = 1 + data = length 267, hash C0531D07 + sample 54: + time = 216000 + flags = 1 + data = length 267, hash 1577888 + sample 55: + time = 220000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 56: + time = 224000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 57: + time = 228000 + flags = 1 + data = length 267, hash 76F19E88 + sample 58: + time = 232000 + flags = 1 + data = length 267, hash 30995F07 + sample 59: + time = 236000 + flags = 1 + data = length 267, hash 7D567907 + sample 60: + time = 240000 + flags = 1 + data = length 267, hash 70A3C488 + sample 61: + time = 244000 + flags = 1 + data = length 267, hash 390DF07 + sample 62: + time = 248000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 63: + time = 252000 + flags = 1 + data = length 267, hash B4476F07 + sample 64: + time = 256000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 65: + time = 260000 + flags = 1 + data = length 267, hash B39D507 + sample 66: + time = 264000 + flags = 1 + data = length 267, hash 873EEF07 + sample 67: + time = 268000 + flags = 1 + data = length 267, hash D3DEE088 + sample 68: + time = 272000 + flags = 1 + data = length 267, hash D07F8307 + sample 69: + time = 276000 + flags = 1 + data = length 267, hash 5A366F07 + sample 70: + time = 280000 + flags = 1 + data = length 267, hash F9190688 + sample 71: + time = 284000 + flags = 1 + data = length 267, hash 69FD3107 + sample 72: + time = 288000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 73: + time = 292000 + flags = 1 + data = length 267, hash 226B2C88 + sample 74: + time = 296000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 75: + time = 300000 + flags = 1 + data = length 267, hash 256F07 + sample 76: + time = 304000 + flags = 1 + data = length 267, hash AFD55288 + sample 77: + time = 308000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 78: + time = 312000 + flags = 1 + data = length 267, hash C0531D07 + sample 79: + time = 316000 + flags = 1 + data = length 267, hash 1577888 + sample 80: + time = 320000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 81: + time = 324000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 82: + time = 328000 + flags = 1 + data = length 267, hash 76F19E88 + sample 83: + time = 332000 + flags = 1 + data = length 267, hash 30995F07 + sample 84: + time = 336000 + flags = 1 + data = length 267, hash 7D567907 + sample 85: + time = 340000 + flags = 1 + data = length 267, hash 70A3C488 + sample 86: + time = 344000 + flags = 1 + data = length 267, hash 390DF07 + sample 87: + time = 348000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 88: + time = 352000 + flags = 1 + data = length 267, hash B4476F07 + sample 89: + time = 356000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 90: + time = 360000 + flags = 1 + data = length 267, hash B39D507 + sample 91: + time = 364000 + flags = 1 + data = length 267, hash 873EEF07 + sample 92: + time = 368000 + flags = 1 + data = length 267, hash D3DEE088 + sample 93: + time = 372000 + flags = 1 + data = length 267, hash D07F8307 + sample 94: + time = 376000 + flags = 1 + data = length 267, hash 5A366F07 + sample 95: + time = 380000 + flags = 1 + data = length 267, hash F9190688 + sample 96: + time = 384000 + flags = 1 + data = length 267, hash 69FD3107 + sample 97: + time = 388000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 98: + time = 392000 + flags = 1 + data = length 267, hash 226B2C88 + sample 99: + time = 396000 + flags = 1 + data = length 267, hash B7B2DF07 + sample 100: + time = 400000 + flags = 1 + data = length 267, hash 256F07 + sample 101: + time = 404000 + flags = 1 + data = length 267, hash AFD55288 + sample 102: + time = 408000 + flags = 1 + data = length 267, hash 8AAA5F07 + sample 103: + time = 412000 + flags = 1 + data = length 267, hash C0531D07 + sample 104: + time = 416000 + flags = 1 + data = length 267, hash 1577888 + sample 105: + time = 420000 + flags = 1 + data = length 267, hash 5DA1DF07 + sample 106: + time = 424000 + flags = 1 + data = length 267, hash F4B8CB07 + sample 107: + time = 428000 + flags = 1 + data = length 267, hash 76F19E88 + sample 108: + time = 432000 + flags = 1 + data = length 267, hash 30995F07 + sample 109: + time = 436000 + flags = 1 + data = length 267, hash 7D567907 + sample 110: + time = 440000 + flags = 1 + data = length 267, hash 70A3C488 + sample 111: + time = 444000 + flags = 1 + data = length 267, hash 390DF07 + sample 112: + time = 448000 + flags = 1 + data = length 267, hash 3A2C2707 + sample 113: + time = 452000 + flags = 1 + data = length 267, hash B4476F07 + sample 114: + time = 456000 + flags = 1 + data = length 267, hash 52BCBA88 + sample 115: + time = 460000 + flags = 1 + data = length 267, hash B39D507 + sample 116: + time = 464000 + flags = 1 + data = length 267, hash 873EEF07 + sample 117: + time = 468000 + flags = 1 + data = length 267, hash D3DEE088 + sample 118: + time = 472000 + flags = 1 + data = length 267, hash D07F8307 + sample 119: + time = 476000 + flags = 1 + data = length 267, hash 5A366F07 + sample 120: + time = 480000 + flags = 1 + data = length 267, hash F9190688 + sample 121: + time = 484000 + flags = 1 + data = length 267, hash 69FD3107 + sample 122: + time = 488000 + flags = 1 + data = length 267, hash 2D2DEF07 + sample 123: + time = 492000 + flags = 1 + data = length 267, hash 226B2C88 + sample 124: + time = 496000 + flags = 1 + data = length 267, hash B7B2DF07 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.0.dump new file mode 100644 index 0000000000..46cc65b5e1 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.0.dump @@ -0,0 +1,274 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 32189 + sample count = 63 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 0 + flags = 1 + data = length 515, hash 62FEAC14 + sample 1: + time = 8000 + flags = 1 + data = length 515, hash 80016693 + sample 2: + time = 16000 + flags = 1 + data = length 515, hash 664B2214 + sample 3: + time = 24000 + flags = 1 + data = length 515, hash FB2E5414 + sample 4: + time = 32000 + flags = 1 + data = length 515, hash 2F3C293 + sample 5: + time = 40000 + flags = 1 + data = length 515, hash 5A066E14 + sample 6: + time = 48000 + flags = 1 + data = length 515, hash 5A778093 + sample 7: + time = 56000 + flags = 1 + data = length 515, hash 39085A14 + sample 8: + time = 64000 + flags = 1 + data = length 515, hash DE21BA14 + sample 9: + time = 72000 + flags = 1 + data = length 515, hash 7339DC93 + sample 10: + time = 80000 + flags = 1 + data = length 515, hash 1CA80214 + sample 11: + time = 88000 + flags = 1 + data = length 515, hash F29D0614 + sample 12: + time = 96000 + flags = 1 + data = length 515, hash DCDC3893 + sample 13: + time = 104000 + flags = 1 + data = length 515, hash D2917C14 + sample 14: + time = 112000 + flags = 1 + data = length 515, hash 62EE8014 + sample 15: + time = 120000 + flags = 1 + data = length 515, hash 975E9493 + sample 16: + time = 128000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 17: + time = 136000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 18: + time = 144000 + flags = 1 + data = length 515, hash A2C0F093 + sample 19: + time = 152000 + flags = 1 + data = length 515, hash 7A081414 + sample 20: + time = 160000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 21: + time = 168000 + flags = 1 + data = length 515, hash EEB02E14 + sample 22: + time = 176000 + flags = 1 + data = length 515, hash E6536014 + sample 23: + time = 184000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 24: + time = 192000 + flags = 1 + data = length 515, hash 2EFD614 + sample 25: + time = 200000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 26: + time = 208000 + flags = 1 + data = length 515, hash 80016693 + sample 27: + time = 216000 + flags = 1 + data = length 515, hash 664B2214 + sample 28: + time = 224000 + flags = 1 + data = length 515, hash FB2E5414 + sample 29: + time = 232000 + flags = 1 + data = length 515, hash 2F3C293 + sample 30: + time = 240000 + flags = 1 + data = length 515, hash 5A066E14 + sample 31: + time = 248000 + flags = 1 + data = length 515, hash 5A778093 + sample 32: + time = 256000 + flags = 1 + data = length 515, hash 39085A14 + sample 33: + time = 264000 + flags = 1 + data = length 515, hash DE21BA14 + sample 34: + time = 272000 + flags = 1 + data = length 515, hash 7339DC93 + sample 35: + time = 280000 + flags = 1 + data = length 515, hash 1CA80214 + sample 36: + time = 288000 + flags = 1 + data = length 515, hash F29D0614 + sample 37: + time = 296000 + flags = 1 + data = length 515, hash DCDC3893 + sample 38: + time = 304000 + flags = 1 + data = length 515, hash D2917C14 + sample 39: + time = 312000 + flags = 1 + data = length 515, hash 62EE8014 + sample 40: + time = 320000 + flags = 1 + data = length 515, hash 975E9493 + sample 41: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 42: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 43: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 44: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 45: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 46: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 47: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 48: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 49: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 50: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 51: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 52: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 53: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 54: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 55: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 56: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 57: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 58: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 59: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 60: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 61: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 62: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.1.dump new file mode 100644 index 0000000000..5479565496 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.1.dump @@ -0,0 +1,194 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 21889 + sample count = 43 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 160000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 1: + time = 168000 + flags = 1 + data = length 515, hash EEB02E14 + sample 2: + time = 176000 + flags = 1 + data = length 515, hash E6536014 + sample 3: + time = 184000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 4: + time = 192000 + flags = 1 + data = length 515, hash 2EFD614 + sample 5: + time = 200000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 6: + time = 208000 + flags = 1 + data = length 515, hash 80016693 + sample 7: + time = 216000 + flags = 1 + data = length 515, hash 664B2214 + sample 8: + time = 224000 + flags = 1 + data = length 515, hash FB2E5414 + sample 9: + time = 232000 + flags = 1 + data = length 515, hash 2F3C293 + sample 10: + time = 240000 + flags = 1 + data = length 515, hash 5A066E14 + sample 11: + time = 248000 + flags = 1 + data = length 515, hash 5A778093 + sample 12: + time = 256000 + flags = 1 + data = length 515, hash 39085A14 + sample 13: + time = 264000 + flags = 1 + data = length 515, hash DE21BA14 + sample 14: + time = 272000 + flags = 1 + data = length 515, hash 7339DC93 + sample 15: + time = 280000 + flags = 1 + data = length 515, hash 1CA80214 + sample 16: + time = 288000 + flags = 1 + data = length 515, hash F29D0614 + sample 17: + time = 296000 + flags = 1 + data = length 515, hash DCDC3893 + sample 18: + time = 304000 + flags = 1 + data = length 515, hash D2917C14 + sample 19: + time = 312000 + flags = 1 + data = length 515, hash 62EE8014 + sample 20: + time = 320000 + flags = 1 + data = length 515, hash 975E9493 + sample 21: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 22: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 23: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 24: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 25: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 26: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 27: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 28: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 29: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 30: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 31: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 32: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 33: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 34: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 35: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 36: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 37: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 38: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 39: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 40: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 41: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 42: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.2.dump new file mode 100644 index 0000000000..5c0e168ddb --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.2.dump @@ -0,0 +1,110 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 11074 + sample count = 22 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 1: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 2: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 3: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 4: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 5: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 6: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 7: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 8: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 9: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 10: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 11: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 12: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 13: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 14: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 15: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 16: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 17: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 18: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 19: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 20: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 21: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.3.dump new file mode 100644 index 0000000000..f22af5e847 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.3.dump @@ -0,0 +1,26 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 259 + sample count = 1 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 0000000000..46cc65b5e1 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,274 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 32189 + sample count = 63 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 0 + flags = 1 + data = length 515, hash 62FEAC14 + sample 1: + time = 8000 + flags = 1 + data = length 515, hash 80016693 + sample 2: + time = 16000 + flags = 1 + data = length 515, hash 664B2214 + sample 3: + time = 24000 + flags = 1 + data = length 515, hash FB2E5414 + sample 4: + time = 32000 + flags = 1 + data = length 515, hash 2F3C293 + sample 5: + time = 40000 + flags = 1 + data = length 515, hash 5A066E14 + sample 6: + time = 48000 + flags = 1 + data = length 515, hash 5A778093 + sample 7: + time = 56000 + flags = 1 + data = length 515, hash 39085A14 + sample 8: + time = 64000 + flags = 1 + data = length 515, hash DE21BA14 + sample 9: + time = 72000 + flags = 1 + data = length 515, hash 7339DC93 + sample 10: + time = 80000 + flags = 1 + data = length 515, hash 1CA80214 + sample 11: + time = 88000 + flags = 1 + data = length 515, hash F29D0614 + sample 12: + time = 96000 + flags = 1 + data = length 515, hash DCDC3893 + sample 13: + time = 104000 + flags = 1 + data = length 515, hash D2917C14 + sample 14: + time = 112000 + flags = 1 + data = length 515, hash 62EE8014 + sample 15: + time = 120000 + flags = 1 + data = length 515, hash 975E9493 + sample 16: + time = 128000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 17: + time = 136000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 18: + time = 144000 + flags = 1 + data = length 515, hash A2C0F093 + sample 19: + time = 152000 + flags = 1 + data = length 515, hash 7A081414 + sample 20: + time = 160000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 21: + time = 168000 + flags = 1 + data = length 515, hash EEB02E14 + sample 22: + time = 176000 + flags = 1 + data = length 515, hash E6536014 + sample 23: + time = 184000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 24: + time = 192000 + flags = 1 + data = length 515, hash 2EFD614 + sample 25: + time = 200000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 26: + time = 208000 + flags = 1 + data = length 515, hash 80016693 + sample 27: + time = 216000 + flags = 1 + data = length 515, hash 664B2214 + sample 28: + time = 224000 + flags = 1 + data = length 515, hash FB2E5414 + sample 29: + time = 232000 + flags = 1 + data = length 515, hash 2F3C293 + sample 30: + time = 240000 + flags = 1 + data = length 515, hash 5A066E14 + sample 31: + time = 248000 + flags = 1 + data = length 515, hash 5A778093 + sample 32: + time = 256000 + flags = 1 + data = length 515, hash 39085A14 + sample 33: + time = 264000 + flags = 1 + data = length 515, hash DE21BA14 + sample 34: + time = 272000 + flags = 1 + data = length 515, hash 7339DC93 + sample 35: + time = 280000 + flags = 1 + data = length 515, hash 1CA80214 + sample 36: + time = 288000 + flags = 1 + data = length 515, hash F29D0614 + sample 37: + time = 296000 + flags = 1 + data = length 515, hash DCDC3893 + sample 38: + time = 304000 + flags = 1 + data = length 515, hash D2917C14 + sample 39: + time = 312000 + flags = 1 + data = length 515, hash 62EE8014 + sample 40: + time = 320000 + flags = 1 + data = length 515, hash 975E9493 + sample 41: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 42: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 43: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 44: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 45: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 46: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 47: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 48: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 49: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 50: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 51: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 52: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 53: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 54: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 55: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 56: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 57: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 58: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 59: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 60: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 61: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 62: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.1.dump new file mode 100644 index 0000000000..5479565496 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.1.dump @@ -0,0 +1,194 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 21889 + sample count = 43 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 160000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 1: + time = 168000 + flags = 1 + data = length 515, hash EEB02E14 + sample 2: + time = 176000 + flags = 1 + data = length 515, hash E6536014 + sample 3: + time = 184000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 4: + time = 192000 + flags = 1 + data = length 515, hash 2EFD614 + sample 5: + time = 200000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 6: + time = 208000 + flags = 1 + data = length 515, hash 80016693 + sample 7: + time = 216000 + flags = 1 + data = length 515, hash 664B2214 + sample 8: + time = 224000 + flags = 1 + data = length 515, hash FB2E5414 + sample 9: + time = 232000 + flags = 1 + data = length 515, hash 2F3C293 + sample 10: + time = 240000 + flags = 1 + data = length 515, hash 5A066E14 + sample 11: + time = 248000 + flags = 1 + data = length 515, hash 5A778093 + sample 12: + time = 256000 + flags = 1 + data = length 515, hash 39085A14 + sample 13: + time = 264000 + flags = 1 + data = length 515, hash DE21BA14 + sample 14: + time = 272000 + flags = 1 + data = length 515, hash 7339DC93 + sample 15: + time = 280000 + flags = 1 + data = length 515, hash 1CA80214 + sample 16: + time = 288000 + flags = 1 + data = length 515, hash F29D0614 + sample 17: + time = 296000 + flags = 1 + data = length 515, hash DCDC3893 + sample 18: + time = 304000 + flags = 1 + data = length 515, hash D2917C14 + sample 19: + time = 312000 + flags = 1 + data = length 515, hash 62EE8014 + sample 20: + time = 320000 + flags = 1 + data = length 515, hash 975E9493 + sample 21: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 22: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 23: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 24: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 25: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 26: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 27: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 28: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 29: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 30: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 31: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 32: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 33: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 34: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 35: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 36: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 37: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 38: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 39: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 40: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 41: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 42: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.2.dump new file mode 100644 index 0000000000..5c0e168ddb --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.2.dump @@ -0,0 +1,110 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 11074 + sample count = 22 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 1: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 2: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 3: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 4: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 5: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 6: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 7: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 8: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 9: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 10: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 11: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 12: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 13: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 14: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 15: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 16: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 17: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 18: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 19: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 20: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 21: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.3.dump new file mode 100644 index 0000000000..f22af5e847 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.3.dump @@ -0,0 +1,26 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 259 + sample count = 1 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 0000000000..46cc65b5e1 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,274 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 32189 + sample count = 63 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 0 + flags = 1 + data = length 515, hash 62FEAC14 + sample 1: + time = 8000 + flags = 1 + data = length 515, hash 80016693 + sample 2: + time = 16000 + flags = 1 + data = length 515, hash 664B2214 + sample 3: + time = 24000 + flags = 1 + data = length 515, hash FB2E5414 + sample 4: + time = 32000 + flags = 1 + data = length 515, hash 2F3C293 + sample 5: + time = 40000 + flags = 1 + data = length 515, hash 5A066E14 + sample 6: + time = 48000 + flags = 1 + data = length 515, hash 5A778093 + sample 7: + time = 56000 + flags = 1 + data = length 515, hash 39085A14 + sample 8: + time = 64000 + flags = 1 + data = length 515, hash DE21BA14 + sample 9: + time = 72000 + flags = 1 + data = length 515, hash 7339DC93 + sample 10: + time = 80000 + flags = 1 + data = length 515, hash 1CA80214 + sample 11: + time = 88000 + flags = 1 + data = length 515, hash F29D0614 + sample 12: + time = 96000 + flags = 1 + data = length 515, hash DCDC3893 + sample 13: + time = 104000 + flags = 1 + data = length 515, hash D2917C14 + sample 14: + time = 112000 + flags = 1 + data = length 515, hash 62EE8014 + sample 15: + time = 120000 + flags = 1 + data = length 515, hash 975E9493 + sample 16: + time = 128000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 17: + time = 136000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 18: + time = 144000 + flags = 1 + data = length 515, hash A2C0F093 + sample 19: + time = 152000 + flags = 1 + data = length 515, hash 7A081414 + sample 20: + time = 160000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 21: + time = 168000 + flags = 1 + data = length 515, hash EEB02E14 + sample 22: + time = 176000 + flags = 1 + data = length 515, hash E6536014 + sample 23: + time = 184000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 24: + time = 192000 + flags = 1 + data = length 515, hash 2EFD614 + sample 25: + time = 200000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 26: + time = 208000 + flags = 1 + data = length 515, hash 80016693 + sample 27: + time = 216000 + flags = 1 + data = length 515, hash 664B2214 + sample 28: + time = 224000 + flags = 1 + data = length 515, hash FB2E5414 + sample 29: + time = 232000 + flags = 1 + data = length 515, hash 2F3C293 + sample 30: + time = 240000 + flags = 1 + data = length 515, hash 5A066E14 + sample 31: + time = 248000 + flags = 1 + data = length 515, hash 5A778093 + sample 32: + time = 256000 + flags = 1 + data = length 515, hash 39085A14 + sample 33: + time = 264000 + flags = 1 + data = length 515, hash DE21BA14 + sample 34: + time = 272000 + flags = 1 + data = length 515, hash 7339DC93 + sample 35: + time = 280000 + flags = 1 + data = length 515, hash 1CA80214 + sample 36: + time = 288000 + flags = 1 + data = length 515, hash F29D0614 + sample 37: + time = 296000 + flags = 1 + data = length 515, hash DCDC3893 + sample 38: + time = 304000 + flags = 1 + data = length 515, hash D2917C14 + sample 39: + time = 312000 + flags = 1 + data = length 515, hash 62EE8014 + sample 40: + time = 320000 + flags = 1 + data = length 515, hash 975E9493 + sample 41: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 42: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 43: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 44: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 45: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 46: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 47: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 48: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 49: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 50: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 51: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 52: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 53: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 54: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 55: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 56: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 57: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 58: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 59: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 60: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 61: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 62: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.unknown_length.dump new file mode 100644 index 0000000000..46cc65b5e1 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_iamf.mp4.unknown_length.dump @@ -0,0 +1,274 @@ +seekMap: + isSeekable = true + duration = 500000 + getPosition(0) = [[timeUs=0, position=40]] + getPosition(1) = [[timeUs=1, position=40]] + getPosition(250000) = [[timeUs=250000, position=16005]] + getPosition(500000) = [[timeUs=500000, position=31970]] +numberOfTracks = 1 +track 0: + total output bytes = 32189 + sample count = 63 + format 0: + id = 1 + sampleMimeType = audio/iamf + maxInputSize = 545 + channelCount = 0 + sampleRate = 0 + language = und + metadata = entries=[Mp4Timestamp: creation time=3763584000, modification time=3763584000, timescale=16000] + initializationData: + data = length 120, hash F54A6325 + sample 0: + time = 0 + flags = 1 + data = length 515, hash 62FEAC14 + sample 1: + time = 8000 + flags = 1 + data = length 515, hash 80016693 + sample 2: + time = 16000 + flags = 1 + data = length 515, hash 664B2214 + sample 3: + time = 24000 + flags = 1 + data = length 515, hash FB2E5414 + sample 4: + time = 32000 + flags = 1 + data = length 515, hash 2F3C293 + sample 5: + time = 40000 + flags = 1 + data = length 515, hash 5A066E14 + sample 6: + time = 48000 + flags = 1 + data = length 515, hash 5A778093 + sample 7: + time = 56000 + flags = 1 + data = length 515, hash 39085A14 + sample 8: + time = 64000 + flags = 1 + data = length 515, hash DE21BA14 + sample 9: + time = 72000 + flags = 1 + data = length 515, hash 7339DC93 + sample 10: + time = 80000 + flags = 1 + data = length 515, hash 1CA80214 + sample 11: + time = 88000 + flags = 1 + data = length 515, hash F29D0614 + sample 12: + time = 96000 + flags = 1 + data = length 515, hash DCDC3893 + sample 13: + time = 104000 + flags = 1 + data = length 515, hash D2917C14 + sample 14: + time = 112000 + flags = 1 + data = length 515, hash 62EE8014 + sample 15: + time = 120000 + flags = 1 + data = length 515, hash 975E9493 + sample 16: + time = 128000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 17: + time = 136000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 18: + time = 144000 + flags = 1 + data = length 515, hash A2C0F093 + sample 19: + time = 152000 + flags = 1 + data = length 515, hash 7A081414 + sample 20: + time = 160000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 21: + time = 168000 + flags = 1 + data = length 515, hash EEB02E14 + sample 22: + time = 176000 + flags = 1 + data = length 515, hash E6536014 + sample 23: + time = 184000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 24: + time = 192000 + flags = 1 + data = length 515, hash 2EFD614 + sample 25: + time = 200000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 26: + time = 208000 + flags = 1 + data = length 515, hash 80016693 + sample 27: + time = 216000 + flags = 1 + data = length 515, hash 664B2214 + sample 28: + time = 224000 + flags = 1 + data = length 515, hash FB2E5414 + sample 29: + time = 232000 + flags = 1 + data = length 515, hash 2F3C293 + sample 30: + time = 240000 + flags = 1 + data = length 515, hash 5A066E14 + sample 31: + time = 248000 + flags = 1 + data = length 515, hash 5A778093 + sample 32: + time = 256000 + flags = 1 + data = length 515, hash 39085A14 + sample 33: + time = 264000 + flags = 1 + data = length 515, hash DE21BA14 + sample 34: + time = 272000 + flags = 1 + data = length 515, hash 7339DC93 + sample 35: + time = 280000 + flags = 1 + data = length 515, hash 1CA80214 + sample 36: + time = 288000 + flags = 1 + data = length 515, hash F29D0614 + sample 37: + time = 296000 + flags = 1 + data = length 515, hash DCDC3893 + sample 38: + time = 304000 + flags = 1 + data = length 515, hash D2917C14 + sample 39: + time = 312000 + flags = 1 + data = length 515, hash 62EE8014 + sample 40: + time = 320000 + flags = 1 + data = length 515, hash 975E9493 + sample 41: + time = 328000 + flags = 1 + data = length 515, hash 1E1CC814 + sample 42: + time = 336000 + flags = 1 + data = length 515, hash 6BBE2814 + sample 43: + time = 344000 + flags = 1 + data = length 515, hash A2C0F093 + sample 44: + time = 352000 + flags = 1 + data = length 515, hash 7A081414 + sample 45: + time = 360000 + flags = 1 + data = length 515, hash ECBCAE93 + sample 46: + time = 368000 + flags = 1 + data = length 515, hash EEB02E14 + sample 47: + time = 376000 + flags = 1 + data = length 515, hash E6536014 + sample 48: + time = 384000 + flags = 1 + data = length 515, hash CDEF0A93 + sample 49: + time = 392000 + flags = 1 + data = length 515, hash 2EFD614 + sample 50: + time = 400000 + flags = 1 + data = length 515, hash 62FEAC14 + sample 51: + time = 408000 + flags = 1 + data = length 515, hash 80016693 + sample 52: + time = 416000 + flags = 1 + data = length 515, hash 664B2214 + sample 53: + time = 424000 + flags = 1 + data = length 515, hash FB2E5414 + sample 54: + time = 432000 + flags = 1 + data = length 515, hash 2F3C293 + sample 55: + time = 440000 + flags = 1 + data = length 515, hash 5A066E14 + sample 56: + time = 448000 + flags = 1 + data = length 515, hash 5A778093 + sample 57: + time = 456000 + flags = 1 + data = length 515, hash 39085A14 + sample 58: + time = 464000 + flags = 1 + data = length 515, hash DE21BA14 + sample 59: + time = 472000 + flags = 1 + data = length 515, hash 7339DC93 + sample 60: + time = 480000 + flags = 1 + data = length 515, hash 1CA80214 + sample 61: + time = 488000 + flags = 1 + data = length 515, hash F29D0614 + sample 62: + time = 496000 + flags = 536870913 + data = length 259, hash D575A0D1 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_iamf.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_iamf.mp4 new file mode 100644 index 0000000000..4354feac4b Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_iamf.mp4 differ diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_iamf.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_iamf.mp4 new file mode 100644 index 0000000000..7a57156cc5 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_iamf.mp4 differ