diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/DtsUtil.java b/libraries/extractor/src/main/java/androidx/media3/extractor/DtsUtil.java index 0fcc37d90c3..727b662b13c 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/DtsUtil.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/DtsUtil.java @@ -44,6 +44,15 @@ @UnstableApi public final class DtsUtil { + /** + * Returns whether {@code mimeType} is {@link MimeTypes#AUDIO_DTS} or {@link + * MimeTypes#AUDIO_DTS_HD}. + */ + public static boolean isDtsBaseAudioMimeType(@Nullable String mimeType) { + return Objects.equals(mimeType, MimeTypes.AUDIO_DTS) + || Objects.equals(mimeType, MimeTypes.AUDIO_DTS_HD); + } + /** Information parsed from a DTS frame header. */ public static final class DtsHeader { /** The mime type of the DTS bitstream. */ diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java index 5107ea19bae..6c467923e39 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java @@ -49,6 +49,7 @@ import androidx.media3.extractor.CeaUtil; import androidx.media3.extractor.ChunkIndex; import androidx.media3.extractor.ChunkIndexMerger; +import androidx.media3.extractor.DtsUtil; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorInput; import androidx.media3.extractor.ExtractorOutput; @@ -1851,6 +1852,15 @@ private boolean readSample(ExtractorInput input) throws IOException { } } } else { + Format pendingFormat = trackBundle.pendingFormat; + if (pendingFormat != null && DtsUtil.isDtsBaseAudioMimeType(track.format.sampleMimeType)) { + trackBundle.baseFormat = + DtsUtil.updateFormatWithDtsHdInfo(input, sampleSize, trackBundle.baseFormat); + Format outputFormat = + trackBundle.baseFormat.buildUpon().setDrmInitData(pendingFormat.drmInitData).build(); + trackBundle.output.format(outputFormat); + trackBundle.pendingFormat = null; + } while (sampleBytesWritten < sampleSize) { int writtenBytes = output.sampleData(input, sampleSize - sampleBytesWritten, false); sampleBytesWritten += writtenBytes; @@ -2302,7 +2312,13 @@ private static final class TrackBundle { public int currentTrackRunIndex; public int firstSampleToOutputIndex; - private final Format baseFormat; + /** + * A {@link Format} that needs to be passed to {@link #output}, after being possibly modified + * based on sample data, before {@link TrackOutput#sampleMetadata} is called. + */ + @Nullable private Format pendingFormat; + + private Format baseFormat; private final ParsableByteArray encryptionSignalByte; private final ParsableByteArray defaultInitializationVector; @@ -2321,13 +2337,18 @@ public TrackBundle( scratch = new ParsableByteArray(); encryptionSignalByte = new ParsableByteArray(1); defaultInitializationVector = new ParsableByteArray(); + if (DtsUtil.isDtsBaseAudioMimeType(baseFormat.sampleMimeType)) { + pendingFormat = baseFormat; + } reset(moovSampleTable, defaultSampleValues); } public void reset(TrackSampleTable moovSampleTable, DefaultSampleValues defaultSampleValues) { this.moovSampleTable = moovSampleTable; this.defaultSampleValues = defaultSampleValues; - output.format(baseFormat); + if (pendingFormat == null) { + output.format(baseFormat); + } resetFragmentInfo(); } @@ -2339,7 +2360,11 @@ public void updateDrmInitData(DrmInitData drmInitData) { @Nullable String schemeType = encryptionBox != null ? encryptionBox.schemeType : null; DrmInitData updatedDrmInitData = drmInitData.copyWithSchemeType(schemeType); Format format = baseFormat.buildUpon().setDrmInitData(updatedDrmInitData).build(); - output.format(format); + if (pendingFormat != null) { + pendingFormat = format; + } else { + output.format(format); + } } /** Resets the current fragment, sample indices and {@link #currentlyInFragment} boolean. */ diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java index 7982996b751..6f043cad2ad 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java @@ -46,6 +46,7 @@ import androidx.media3.container.NalUnitUtil; import androidx.media3.extractor.Ac3Util; import androidx.media3.extractor.Ac4Util; +import androidx.media3.extractor.DtsUtil; import androidx.media3.extractor.Extractor; import androidx.media3.extractor.ExtractorInput; import androidx.media3.extractor.ExtractorOutput; @@ -744,10 +745,13 @@ private void processMoovAtom(ContainerBox moov) throws ParserException { // The moov and esds boxes don't contain enough information to distinguish between MPEG // audio layers 1, 2 and 3, but the distinction is important to select the right MIME type // for MediaCodec decoders (and other decoders that handle the same audio/mpeg-L1 and - // audio/mpeg-L2 MIME types). So we store the format with audio/mpeg for now, and then - // update the MIME type and pass it to TrackOutput.format(...) based on the layer info in - // the first sample. - boolean isMpegAudio = Objects.equals(track.format.sampleMimeType, MimeTypes.AUDIO_MPEG); + // audio/mpeg-L2 MIME types). DTS has a similar problem where we can't distinguish DTS, + // DTS-HD and DTS Express. So we store the format with a placeholder MIME for now, and then + // update the MIME type and pass it to TrackOutput.format(...) based on the info in the first + // sample. + boolean needsSamplesForMimeType = + Objects.equals(track.format.sampleMimeType, MimeTypes.AUDIO_MPEG) + || DtsUtil.isDtsBaseAudioMimeType(track.format.sampleMimeType); boolean needsChapterMetadata = false; if (!omitTrackSampleTable && track.chapterTrackId != C.INDEX_UNSET) { for (TrackSampleTable chapterSampleTable : chapterSampleTables) { @@ -757,7 +761,7 @@ private void processMoovAtom(ContainerBox moov) throws ParserException { } } } - if (isMpegAudio || needsChapterMetadata) { + if (needsSamplesForMimeType || needsChapterMetadata) { mp4Track.pendingFormat = format; } else { mp4Track.trackOutput.format(format); @@ -1013,8 +1017,16 @@ private int readSample(ExtractorInput input, PositionHolder positionHolder) thro .build() : pendingFormat); track.pendingFormat = null; - } else if (trueHdSampleRechunker != null) { - trueHdSampleRechunker.startSample(input); + } else { + Format pendingFormat = track.pendingFormat; + if (pendingFormat != null + && DtsUtil.isDtsBaseAudioMimeType(track.track.format.sampleMimeType)) { + track.trackOutput.format( + DtsUtil.updateFormatWithDtsHdInfo(input, sampleSize, pendingFormat)); + track.pendingFormat = null; + } else if (trueHdSampleRechunker != null) { + trueHdSampleRechunker.startSample(input); + } } while (sampleBytesWritten < sampleSize) { @@ -1103,10 +1115,11 @@ private int readQuickTimeChapters(ExtractorInput input, PositionHolder seekPosit currentFormat.buildUpon().setMetadata(new Metadata(filteredEntries)).build(); // The format was kept pending in processMoovAtom either because it was waiting for chapter - // metadata, or because it is MPEG audio (which needs to wait for the first sample to + // metadata, or because it is MPEG or DTS audio (which needs to wait for the first sample to // determine the exact MIME type). We have now applied the chapter metadata, so we can - // output the format, unless it is also MPEG audio. - if (Objects.equals(updatedFormat.sampleMimeType, MimeTypes.AUDIO_MPEG)) { + // output the format, unless it is also MPEG or DTS audio. + if (Objects.equals(updatedFormat.sampleMimeType, MimeTypes.AUDIO_MPEG) + || DtsUtil.isDtsBaseAudioMimeType(updatedFormat.sampleMimeType)) { track.pendingFormat = updatedFormat; } else { track.trackOutput.format(updatedFormat); @@ -1370,7 +1383,7 @@ private static final class Mp4Track { * A {@link Format} that needs to be passed to {@link #trackOutput}, after being possibly * modified based on sample data, before {@link TrackOutput#sampleMetadata} is called. */ - @Nullable public Format pendingFormat; + @Nullable private Format pendingFormat; public Mp4Track(Track track, TrackSampleTable sampleTable, TrackOutput trackOutput) { this.track = track; 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 8017ef280db..004c1929eef 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 @@ -188,6 +188,22 @@ public void sampleWithOpusTrack() throws Exception { /* peekLimit= */ 540); } + @Test + public void sampleWithDtsExpress() throws Exception { + assertExtractorBehavior( + /* closedCaptionFormats= */ ImmutableList.of(), + "media/mp4/sample_fragmented_dts_express.mp4", + /* peekLimit= */ 4096); + } + + @Test + public void sampleWithDtsHdMa() throws Exception { + assertExtractorBehavior( + /* closedCaptionFormats= */ ImmutableList.of(), + "media/mp4/sample_fragmented_dts_hd_ma.mp4", + /* peekLimit= */ 4096); + } + @Test public void samplePartiallyFragmented() throws Exception { assertExtractorBehavior( 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 148d95f59e4..a2d03f8c941 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 @@ -143,6 +143,16 @@ public void mp4SampleWithDolbyTrueHDTrack() throws Exception { assertExtractorBehavior("media/mp4/sample_dthd.mp4", /* peekLimit= */ 3450); } + @Test + public void mp4SampleWithDtsExpress() throws Exception { + assertExtractorBehavior("media/mp4/sample_dts_express.mp4", /* peekLimit= */ 4096); + } + + @Test + public void mp4SampleWithDtsHdMa() throws Exception { + assertExtractorBehavior("media/mp4/sample_dts_hd_ma.mp4", /* peekLimit= */ 4096); + } + @Test public void mp4SampleWithColrMdcvAndClli() throws Exception { assertExtractorBehavior("media/mp4/sample_with_colr_mdcv_and_clli.mp4", /* peekLimit= */ 50); diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.0.dump new file mode 100644 index 00000000000..20500dbeb95 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.0.dump @@ -0,0 +1,67 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.1.dump new file mode 100644 index 00000000000..f007c354d92 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.1.dump @@ -0,0 +1,55 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 32768 + sample count = 8 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 1: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 2: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 3: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 4: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 5: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 6: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 7: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.2.dump new file mode 100644 index 00000000000..db5eb35977e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.2.dump @@ -0,0 +1,39 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 16384 + sample count = 4 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 1: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 2: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 3: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.3.dump new file mode 100644 index 00000000000..ced5a25dc84 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.3.dump @@ -0,0 +1,27 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 4096 + sample count = 1 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 00000000000..20500dbeb95 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,67 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.1.dump new file mode 100644 index 00000000000..f007c354d92 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.1.dump @@ -0,0 +1,55 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 32768 + sample count = 8 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 1: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 2: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 3: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 4: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 5: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 6: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 7: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.2.dump new file mode 100644 index 00000000000..db5eb35977e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.2.dump @@ -0,0 +1,39 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 16384 + sample count = 4 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 1: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 2: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 3: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.3.dump new file mode 100644 index 00000000000..ced5a25dc84 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.3.dump @@ -0,0 +1,27 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 4096 + sample count = 1 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 00000000000..20500dbeb95 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,67 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.unknown_length.dump new file mode 100644 index 00000000000..20500dbeb95 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_express.mp4.unknown_length.dump @@ -0,0 +1,67 @@ +seekMap: + isSeekable = true + duration = 939000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(469500) = [[timeUs=469500, position=20524]] + getPosition(939000) = [[timeUs=939000, position=41004]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + track duration = 939000 + format 0: + averageBitrate = 384000 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + maxInputSize = 4126 + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 536870913 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.0.dump new file mode 100644 index 00000000000..439c7adb1de --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.0.dump @@ -0,0 +1,399 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.1.dump new file mode 100644 index 00000000000..624dfd47ce0 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.1.dump @@ -0,0 +1,275 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 134064 + sample count = 63 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.2.dump new file mode 100644 index 00000000000..5007b898ee6 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.2.dump @@ -0,0 +1,151 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 68096 + sample count = 32 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.3.dump new file mode 100644 index 00000000000..46967be785e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.3.dump @@ -0,0 +1,27 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 2128 + sample count = 1 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 00000000000..439c7adb1de --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,399 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.1.dump new file mode 100644 index 00000000000..624dfd47ce0 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.1.dump @@ -0,0 +1,275 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 134064 + sample count = 63 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.2.dump new file mode 100644 index 00000000000..5007b898ee6 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.2.dump @@ -0,0 +1,151 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 68096 + sample count = 32 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.3.dump new file mode 100644 index 00000000000..46967be785e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.3.dump @@ -0,0 +1,27 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 2128 + sample count = 1 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 00000000000..439c7adb1de --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,399 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.unknown_length.dump new file mode 100644 index 00000000000..439c7adb1de --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dts_hd_ma.mp4.unknown_length.dump @@ -0,0 +1,399 @@ +seekMap: + isSeekable = true + duration = 1003000 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=1, position=44]] + getPosition(501500) = [[timeUs=501500, position=97932]] + getPosition(1003000) = [[timeUs=1003000, position=197948]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + track duration = 1003000 + format 0: + averageBitrate = 1595470 + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + maxInputSize = 2158 + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 536870913 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.0.dump new file mode 100644 index 00000000000..9d39c94b481 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.0.dump @@ -0,0 +1,62 @@ +seekMap: + isSeekable = true + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=722]] + getPosition(1) = [[timeUs=0, position=722]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 1 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 00000000000..9d39c94b481 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,62 @@ +seekMap: + isSeekable = true + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=722]] + getPosition(1) = [[timeUs=0, position=722]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 1 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 00000000000..a00ac201e7f --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,61 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=722]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 1 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.unknown_length.dump new file mode 100644 index 00000000000..a00ac201e7f --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_express.mp4.unknown_length.dump @@ -0,0 +1,61 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=722]] +numberOfTracks = 1 +track 0: + total output bytes = 45056 + sample count = 11 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd;profile=lbr + channelCount = 6 + sampleRate = 48000 + language = und + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 4096, hash 1F0B79C5 + sample 1: + time = 85333 + flags = 1 + data = length 4096, hash 2EC282A1 + sample 2: + time = 170666 + flags = 1 + data = length 4096, hash 6B7902F0 + sample 3: + time = 256000 + flags = 1 + data = length 4096, hash 8FC4EE2C + sample 4: + time = 341333 + flags = 1 + data = length 4096, hash 67899547 + sample 5: + time = 426666 + flags = 1 + data = length 4096, hash 1BE4CF1C + sample 6: + time = 512000 + flags = 1 + data = length 4096, hash 620F5E51 + sample 7: + time = 597333 + flags = 1 + data = length 4096, hash 4D3E0644 + sample 8: + time = 682666 + flags = 1 + data = length 4096, hash F69B5FED + sample 9: + time = 768000 + flags = 1 + data = length 4096, hash 93D31EA7 + sample 10: + time = 853333 + flags = 1 + data = length 4096, hash 41F1D921 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.0.dump new file mode 100644 index 00000000000..0f7e8a9119e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.0.dump @@ -0,0 +1,394 @@ +seekMap: + isSeekable = true + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=702]] + getPosition(1) = [[timeUs=0, position=702]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 1 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 00000000000..0f7e8a9119e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,394 @@ +seekMap: + isSeekable = true + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=702]] + getPosition(1) = [[timeUs=0, position=702]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 1 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 00000000000..6451627f11e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,393 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=702]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 1 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.unknown_length.dump new file mode 100644 index 00000000000..6451627f11e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_dts_hd_ma.mp4.unknown_length.dump @@ -0,0 +1,393 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=702]] +numberOfTracks = 1 +track 0: + total output bytes = 200032 + sample count = 94 + format 0: + id = 1 + containerMimeType = audio/mp4 + sampleMimeType = audio/vnd.dts.hd + channelCount = 8 + sampleRate = 48000 + language = en + metadata = entries=[Mp4AlternateGroup: 1, TSSE: description=null: values=[Lavf62.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + sample 0: + time = 0 + flags = 1 + data = length 2128, hash E93B32EA + sample 1: + time = 10666 + flags = 1 + data = length 2128, hash E93B32EA + sample 2: + time = 21333 + flags = 1 + data = length 2128, hash E93B32EA + sample 3: + time = 32000 + flags = 1 + data = length 2128, hash E93B32EA + sample 4: + time = 42666 + flags = 1 + data = length 2128, hash E93B32EA + sample 5: + time = 53333 + flags = 1 + data = length 2128, hash E93B32EA + sample 6: + time = 64000 + flags = 1 + data = length 2128, hash E93B32EA + sample 7: + time = 74666 + flags = 1 + data = length 2128, hash E93B32EA + sample 8: + time = 85000 + flags = 1 + data = length 2128, hash E93B32EA + sample 9: + time = 95645 + flags = 1 + data = length 2128, hash E93B32EA + sample 10: + time = 106312 + flags = 1 + data = length 2128, hash E93B32EA + sample 11: + time = 116979 + flags = 1 + data = length 2128, hash E93B32EA + sample 12: + time = 127645 + flags = 1 + data = length 2128, hash E93B32EA + sample 13: + time = 138312 + flags = 1 + data = length 2128, hash E93B32EA + sample 14: + time = 148979 + flags = 1 + data = length 2128, hash E93B32EA + sample 15: + time = 159645 + flags = 1 + data = length 2128, hash E93B32EA + sample 16: + time = 171020 + flags = 1 + data = length 2128, hash E93B32EA + sample 17: + time = 181687 + flags = 1 + data = length 2128, hash E93B32EA + sample 18: + time = 192354 + flags = 1 + data = length 2128, hash E93B32EA + sample 19: + time = 203020 + flags = 1 + data = length 2128, hash E93B32EA + sample 20: + time = 213687 + flags = 1 + data = length 2128, hash E93B32EA + sample 21: + time = 224354 + flags = 1 + data = length 2128, hash E93B32EA + sample 22: + time = 235020 + flags = 1 + data = length 2128, hash E93B32EA + sample 23: + time = 245666 + flags = 1 + data = length 2128, hash E93B32EA + sample 24: + time = 256000 + flags = 1 + data = length 2128, hash E93B32EA + sample 25: + time = 266666 + flags = 1 + data = length 2128, hash E93B32EA + sample 26: + time = 277333 + flags = 1 + data = length 2128, hash E93B32EA + sample 27: + time = 288000 + flags = 1 + data = length 2128, hash E93B32EA + sample 28: + time = 298666 + flags = 1 + data = length 2128, hash E93B32EA + sample 29: + time = 309333 + flags = 1 + data = length 2128, hash E93B32EA + sample 30: + time = 320000 + flags = 1 + data = length 2128, hash E93B32EA + sample 31: + time = 330666 + flags = 1 + data = length 2128, hash E93B32EA + sample 32: + time = 341000 + flags = 1 + data = length 2128, hash E93B32EA + sample 33: + time = 351666 + flags = 1 + data = length 2128, hash E93B32EA + sample 34: + time = 362333 + flags = 1 + data = length 2128, hash E93B32EA + sample 35: + time = 373000 + flags = 1 + data = length 2128, hash E93B32EA + sample 36: + time = 383666 + flags = 1 + data = length 2128, hash E93B32EA + sample 37: + time = 394333 + flags = 1 + data = length 2128, hash E93B32EA + sample 38: + time = 405000 + flags = 1 + data = length 2128, hash E93B32EA + sample 39: + time = 415645 + flags = 1 + data = length 2128, hash E93B32EA + sample 40: + time = 426979 + flags = 1 + data = length 2128, hash E93B32EA + sample 41: + time = 437645 + flags = 1 + data = length 2128, hash E93B32EA + sample 42: + time = 448312 + flags = 1 + data = length 2128, hash E93B32EA + sample 43: + time = 458979 + flags = 1 + data = length 2128, hash E93B32EA + sample 44: + time = 469645 + flags = 1 + data = length 2128, hash E93B32EA + sample 45: + time = 480312 + flags = 1 + data = length 2128, hash E93B32EA + sample 46: + time = 490979 + flags = 1 + data = length 2128, hash E93B32EA + sample 47: + time = 501645 + flags = 1 + data = length 2128, hash E93B32EA + sample 48: + time = 512020 + flags = 1 + data = length 2128, hash E93B32EA + sample 49: + time = 522687 + flags = 1 + data = length 2128, hash E93B32EA + sample 50: + time = 533354 + flags = 1 + data = length 2128, hash E93B32EA + sample 51: + time = 544020 + flags = 1 + data = length 2128, hash E93B32EA + sample 52: + time = 554687 + flags = 1 + data = length 2128, hash E93B32EA + sample 53: + time = 565333 + flags = 1 + data = length 2128, hash E93B32EA + sample 54: + time = 576000 + flags = 1 + data = length 2128, hash E93B32EA + sample 55: + time = 586666 + flags = 1 + data = length 2128, hash E93B32EA + sample 56: + time = 597000 + flags = 1 + data = length 2128, hash E93B32EA + sample 57: + time = 607666 + flags = 1 + data = length 2128, hash E93B32EA + sample 58: + time = 618333 + flags = 1 + data = length 2128, hash E93B32EA + sample 59: + time = 629000 + flags = 1 + data = length 2128, hash E93B32EA + sample 60: + time = 639666 + flags = 1 + data = length 2128, hash E93B32EA + sample 61: + time = 650333 + flags = 1 + data = length 2128, hash E93B32EA + sample 62: + time = 661000 + flags = 1 + data = length 2128, hash E93B32EA + sample 63: + time = 671666 + flags = 1 + data = length 2128, hash E93B32EA + sample 64: + time = 683000 + flags = 1 + data = length 2128, hash E93B32EA + sample 65: + time = 693666 + flags = 1 + data = length 2128, hash E93B32EA + sample 66: + time = 704333 + flags = 1 + data = length 2128, hash E93B32EA + sample 67: + time = 715000 + flags = 1 + data = length 2128, hash E93B32EA + sample 68: + time = 725666 + flags = 1 + data = length 2128, hash E93B32EA + sample 69: + time = 736333 + flags = 1 + data = length 2128, hash E93B32EA + sample 70: + time = 746979 + flags = 1 + data = length 2128, hash E93B32EA + sample 71: + time = 757645 + flags = 1 + data = length 2128, hash E93B32EA + sample 72: + time = 767979 + flags = 1 + data = length 2128, hash E93B32EA + sample 73: + time = 778645 + flags = 1 + data = length 2128, hash E93B32EA + sample 74: + time = 789312 + flags = 1 + data = length 2128, hash E93B32EA + sample 75: + time = 799979 + flags = 1 + data = length 2128, hash E93B32EA + sample 76: + time = 810645 + flags = 1 + data = length 2128, hash E93B32EA + sample 77: + time = 821312 + flags = 1 + data = length 2128, hash E93B32EA + sample 78: + time = 831979 + flags = 1 + data = length 2128, hash E93B32EA + sample 79: + time = 842645 + flags = 1 + data = length 2128, hash E93B32EA + sample 80: + time = 854020 + flags = 1 + data = length 2128, hash E93B32EA + sample 81: + time = 864687 + flags = 1 + data = length 2128, hash E93B32EA + sample 82: + time = 875354 + flags = 1 + data = length 2128, hash E93B32EA + sample 83: + time = 886020 + flags = 1 + data = length 2128, hash E93B32EA + sample 84: + time = 896666 + flags = 1 + data = length 2128, hash E93B32EA + sample 85: + time = 907333 + flags = 1 + data = length 2128, hash E93B32EA + sample 86: + time = 918000 + flags = 1 + data = length 2128, hash E93B32EA + sample 87: + time = 928666 + flags = 1 + data = length 2128, hash E93B32EA + sample 88: + time = 939000 + flags = 1 + data = length 2128, hash E93B32EA + sample 89: + time = 949666 + flags = 1 + data = length 2128, hash E93B32EA + sample 90: + time = 960333 + flags = 1 + data = length 2128, hash E93B32EA + sample 91: + time = 971000 + flags = 1 + data = length 2128, hash E93B32EA + sample 92: + time = 981666 + flags = 1 + data = length 2128, hash E93B32EA + sample 93: + time = 992333 + flags = 1 + data = length 2128, hash E93B32EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_dts_express.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_dts_express.mp4 new file mode 100644 index 00000000000..78ecc08d339 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_dts_express.mp4 differ diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_dts_hd_ma.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_dts_hd_ma.mp4 new file mode 100644 index 00000000000..330cc97a2f6 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_dts_hd_ma.mp4 differ diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_dts_express.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_dts_express.mp4 new file mode 100644 index 00000000000..b06326968a3 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_dts_express.mp4 differ diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_dts_hd_ma.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_dts_hd_ma.mp4 new file mode 100644 index 00000000000..87830a07335 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_dts_hd_ma.mp4 differ