From 13f4c832da01fdb6e87056c1760627ab1b44bbe8 Mon Sep 17 00:00:00 2001 From: glass Date: Fri, 2 Apr 2021 07:38:52 +0200 Subject: [PATCH 1/2] Add MP4 extraction of Dolby TrueHD samples Extract 16 access units per readSample call to align with what's done in MKV extraction. Signed-off-by: glass --- .../android/exoplayer2/audio/MlpUtil.java | 104 ++++++++++++++++++ .../exoplayer2/extractor/mp4/Atom.java | 6 + .../exoplayer2/extractor/mp4/AtomParsers.java | 20 +++- .../extractor/mp4/Mp4Extractor.java | 52 +++++++-- 4 files changed, 170 insertions(+), 12 deletions(-) create mode 100644 library/common/src/main/java/com/google/android/exoplayer2/audio/MlpUtil.java diff --git a/library/common/src/main/java/com/google/android/exoplayer2/audio/MlpUtil.java b/library/common/src/main/java/com/google/android/exoplayer2/audio/MlpUtil.java new file mode 100644 index 00000000000..a8fa37e81ff --- /dev/null +++ b/library/common/src/main/java/com/google/android/exoplayer2/audio/MlpUtil.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.audio; + +import androidx.annotation.Nullable; +import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.Format; +import com.google.android.exoplayer2.drm.DrmInitData; +import com.google.android.exoplayer2.util.MimeTypes; +import com.google.android.exoplayer2.util.ParsableByteArray; + +/** Utility methods for parsing MLP frames, which are access units in MLP bitstreams. */ +public final class MlpUtil { + + /** a MLP stream can carry simultaneously multiple representations of the same audio : + * stereo as well as multichannel and object based immersive audio, + * so just consider stereo by default */ + private static final int CHANNEL_COUNT_2 = 2; + + /** + * Returns the MLP format given {@code data} containing the MLPSpecificBox according to + * dolbytruehdbitstreamswithintheisobasemediafileformat.pdf + * The reading position of {@code data} will be modified. + * + * @param data The MLPSpecificBox to parse. + * @param trackId The track identifier to set on the format. + * @param sampleRate The sample rate to be included in the format. + * @param language The language to set on the format. + * @param drmInitData {@link DrmInitData} to be included in the format. + * @return The MLP format parsed from data in the header. + */ + public static Format parseMlpFormat( + ParsableByteArray data, String trackId, int sampleRate, + String language, @Nullable DrmInitData drmInitData) { + + return new Format.Builder() + .setId(trackId) + .setSampleMimeType(MimeTypes.AUDIO_TRUEHD) + .setChannelCount(CHANNEL_COUNT_2) + .setSampleRate(sampleRate) + .setDrmInitData(drmInitData) + .setLanguage(language) + .build(); + } + + private MlpUtil() {} + + /** + * The number of samples to store in each output chunk when rechunking TrueHD streams. The number + * of samples extracted from the container corresponding to one syncframe must be an integer + * multiple of this value. + */ + public static final int TRUEHD_RECHUNK_SAMPLE_COUNT = 16; + + /** + * Rechunks TrueHD sample data into groups of {@link #TRUEHD_RECHUNK_SAMPLE_COUNT} samples. + */ + public static class TrueHdSampleRechunker { + + private int sampleCount; + public long timeUs; + public @C.BufferFlags int flags; + public int sampleSize; + + public TrueHdSampleRechunker() { + reset(); + } + + public void reset() { + sampleCount = 0; + sampleSize = 0; + } + + /** Returns true when enough samples have been appended. */ + public boolean appendSampleMetadata(long timeUs, @C.BufferFlags int flags, int size) { + + if (sampleCount++ == 0) { + // This is the first sample in the chunk. + this.timeUs = timeUs; + this.flags = flags; + this.sampleSize = 0; + } + this.sampleSize += size; + if (sampleCount >= TRUEHD_RECHUNK_SAMPLE_COUNT) { + sampleCount = 0; + return true; + } + return false; + } + } +} diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java index a85d928f04d..bc8633acc8e 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java @@ -152,6 +152,12 @@ @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_dac4 = 0x64616334; + @SuppressWarnings("ConstantCaseForConstants") + public static final int TYPE_mlpa = 0x6d6c7061; + + @SuppressWarnings("ConstantCaseForConstants") + public static final int TYPE_dmlp = 0x646d6c70; + @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_dtsc = 0x64747363; diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java index 067d53ebfe3..e739694dca7 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java @@ -28,6 +28,7 @@ import com.google.android.exoplayer2.audio.AacUtil; import com.google.android.exoplayer2.audio.Ac3Util; import com.google.android.exoplayer2.audio.Ac4Util; +import com.google.android.exoplayer2.audio.MlpUtil; import com.google.android.exoplayer2.audio.OpusUtil; import com.google.android.exoplayer2.drm.DrmInitData; import com.google.android.exoplayer2.extractor.ExtractorUtil; @@ -962,6 +963,7 @@ private static StsdData parseStsd( || childAtomType == Atom.TYPE_ac_3 || childAtomType == Atom.TYPE_ec_3 || childAtomType == Atom.TYPE_ac_4 + || childAtomType == Atom.TYPE_mlpa || childAtomType == Atom.TYPE_dtsc || childAtomType == Atom.TYPE_dtse || childAtomType == Atom.TYPE_dtsh @@ -1312,14 +1314,20 @@ private static void parseAudioSampleEntry( parent.skipBytes(8); } - int channelCount; - int sampleRate; + int channelCount; + int sampleRate; + int sampleRate32 = 0; @C.PcmEncoding int pcmEncoding = Format.NO_VALUE; @Nullable String codecs = null; if (quickTimeSoundDescriptionVersion == 0 || quickTimeSoundDescriptionVersion == 1) { channelCount = parent.readUnsignedShort(); - parent.skipBytes(6); // sampleSize, compressionId, packetSize. + parent.skipBytes(6); // sampleSize, compressionId, packetSize. + + int pos = parent.getPosition(); + sampleRate32 = (int) parent.readUnsignedInt(); + + parent.setPosition(pos); sampleRate = parent.readUnsignedFixedPoint1616(); if (quickTimeSoundDescriptionVersion == 1) { @@ -1401,6 +1409,8 @@ private static void parseAudioSampleEntry( mimeType = MimeTypes.AUDIO_OPUS; } else if (atomType == Atom.TYPE_fLaC) { mimeType = MimeTypes.AUDIO_FLAC; + } else if (atomType == Atom.TYPE_mlpa) { + mimeType = MimeTypes.AUDIO_TRUEHD; } @Nullable List initializationData = null; @@ -1442,6 +1452,10 @@ private static void parseAudioSampleEntry( initializationData = ImmutableList.of(initializationDataBytes); } } + } else if (childAtomType == Atom.TYPE_dmlp) { + parent.setPosition(Atom.HEADER_SIZE + childPosition); + out.format = MlpUtil.parseMlpFormat(parent, Integer.toString(trackId), + sampleRate32, language, drmInitData); } else if (childAtomType == Atom.TYPE_dac3) { parent.setPosition(Atom.HEADER_SIZE + childPosition); out.format = diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java index d542fa85450..11e11898e89 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java @@ -30,6 +30,7 @@ import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.audio.Ac4Util; +import com.google.android.exoplayer2.audio.MlpUtil; import com.google.android.exoplayer2.extractor.Extractor; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.ExtractorOutput; @@ -501,11 +502,17 @@ private void processMoovAtom(ContainerAtom moov) throws ParserException { track.durationUs != C.TIME_UNSET ? track.durationUs : trackSampleTable.durationUs; durationUs = max(durationUs, trackDurationUs); Mp4Track mp4Track = - new Mp4Track(track, trackSampleTable, extractorOutput.track(i, track.type)); + new Mp4Track(track, trackSampleTable, extractorOutput.track(i, track.type), track.format.sampleMimeType); // Each sample has up to three bytes of overhead for the start code that replaces its length. // Allow ten source samples per output sample, like the platform extractor. int maxInputSize = trackSampleTable.maximumSize + 3 * 10; + + if ((track.format.sampleMimeType != null) && (track.format.sampleMimeType.equals(MimeTypes.AUDIO_TRUEHD))) { + // TrueHD collates 16 source samples per output + maxInputSize = trackSampleTable.maximumSize * MlpUtil.TRUEHD_RECHUNK_SAMPLE_COUNT; + } + Format.Builder formatBuilder = track.format.buildUpon(); formatBuilder.setMaxInputSize(maxInputSize); if (track.type == C.TRACK_TYPE_VIDEO @@ -540,7 +547,8 @@ private void processMoovAtom(ContainerAtom moov) throws ParserException { } /** - * Attempts to extract the next sample in the current mdat atom for the specified track. + * Attempts to extract the next sample or the next 16 samples in case of Dolby TrueHD audio + * in the current mdat atom for the specified track. * *

Returns {@link #RESULT_SEEK} if the source should be reloaded from the position in {@code * positionHolder}. @@ -632,12 +640,9 @@ private int readSample(ExtractorInput input, PositionHolder positionHolder) thro sampleCurrentNalBytesRemaining -= writtenBytes; } } - trackOutput.sampleMetadata( - track.sampleTable.timestampsUs[sampleIndex], - track.sampleTable.flags[sampleIndex], - sampleSize, - 0, - null); + + track.sampleMetadata(sampleIndex, sampleSize, 0, null); + track.sampleIndex++; sampleTrackIndex = C.INDEX_UNSET; sampleBytesRead = 0; @@ -904,11 +909,40 @@ private static final class Mp4Track { public final TrackOutput trackOutput; public int sampleIndex; + @Nullable public MlpUtil.TrueHdSampleRechunker trueHdSampleRechunker; - public Mp4Track(Track track, TrackSampleTable sampleTable, TrackOutput trackOutput) { + public Mp4Track(Track track, TrackSampleTable sampleTable, TrackOutput trackOutput, @Nullable String mimeType) { this.track = track; this.sampleTable = sampleTable; this.trackOutput = trackOutput; + this.trueHdSampleRechunker = null; + + if ((mimeType != null) && mimeType.equals(MimeTypes.AUDIO_TRUEHD)) { + this.trueHdSampleRechunker = new MlpUtil.TrueHdSampleRechunker(); + } + } + + public void sampleMetadata( int sampleIndex, int sampleSize, int offset, + @Nullable TrackOutput.CryptoData cryptoData) { + + long timeUs = sampleTable.timestampsUs[sampleIndex]; + @C.BufferFlags int flags = sampleTable.flags[sampleIndex]; + + if (trueHdSampleRechunker != null) { + boolean fullChunk = trueHdSampleRechunker.appendSampleMetadata(timeUs,flags,sampleSize); + + if (fullChunk || (sampleIndex+1 == sampleTable.sampleCount)) { + timeUs = trueHdSampleRechunker.timeUs; + flags = trueHdSampleRechunker.flags; + sampleSize = trueHdSampleRechunker.sampleSize; + + trackOutput.sampleMetadata( timeUs, flags, sampleSize, offset, cryptoData); + trueHdSampleRechunker.reset(); + } + } else { + trackOutput.sampleMetadata( timeUs, flags, sampleSize, offset, cryptoData); + } } } + } From d6bc49cc541a45347e74af12ba385d45727d6823 Mon Sep 17 00:00:00 2001 From: glass Date: Wed, 8 Sep 2021 20:33:22 +0200 Subject: [PATCH 2/2] Add Dolby TrueHD extraction test for MP4 files. Signed-off-by: glass --- .../extractor/mp4/Mp4ExtractorTest.java | 6 + .../extractordumps/mp4/sample_dthd.mp4.0.dump | 147 ++++++++++++++++++ .../extractordumps/mp4/sample_dthd.mp4.1.dump | 115 ++++++++++++++ .../extractordumps/mp4/sample_dthd.mp4.2.dump | 83 ++++++++++ .../extractordumps/mp4/sample_dthd.mp4.3.dump | 51 ++++++ .../mp4/sample_dthd.mp4.unknown_length.dump | 147 ++++++++++++++++++ .../src/test/assets/media/mp4/sample_dthd.mp4 | Bin 0 -> 98103 bytes 7 files changed, 549 insertions(+) create mode 100644 testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump create mode 100644 testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump create mode 100644 testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump create mode 100644 testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump create mode 100644 testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump create mode 100644 testdata/src/test/assets/media/mp4/sample_dthd.mp4 diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp4/Mp4ExtractorTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp4/Mp4ExtractorTest.java index 4408ffab832..9c41d361ad1 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp4/Mp4ExtractorTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp4/Mp4ExtractorTest.java @@ -102,4 +102,10 @@ public void mp4SampleWithColorInfo() throws Exception { ExtractorAsserts.assertBehavior( Mp4Extractor::new, "media/mp4/sample_with_color_info.mp4", simulationConfig); } + + @Test + public void mp4SampleWithDolbyTrueHDTrack() throws Exception { + ExtractorAsserts.assertBehavior( + Mp4Extractor::new, "media/mp4/sample_dthd.mp4", simulationConfig); + } } diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump new file mode 100644 index 00000000000..d05b05b2cc0 --- /dev/null +++ b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump @@ -0,0 +1,147 @@ +seekMap: + isSeekable = true + duration = 418333 + getPosition(0) = [[timeUs=0, position=3447]] + getPosition(1) = [[timeUs=1, position=3447]] + getPosition(209166) = [[timeUs=209166, position=27035]] + getPosition(418333) = [[timeUs=418333, position=75365]] +numberOfTracks = 1 +track 0: + total output bytes = 94656 + sample count = 32 + format 0: + id = 1 + sampleMimeType = audio/true-hd + maxInputSize = 12480 + channelCount = 2 + sampleRate = 48000 + language = und + sample 0: + time = 0 + flags = 1 + data = length 3512, hash B77F1117 + sample 1: + time = 13333 + flags = 0 + data = length 2830, hash 4B19B7D5 + sample 2: + time = 26666 + flags = 0 + data = length 2868, hash BC04A38E + sample 3: + time = 40000 + flags = 0 + data = length 2834, hash D2AF8AF9 + sample 4: + time = 53333 + flags = 0 + data = length 2898, hash 5C9B3119 + sample 5: + time = 66666 + flags = 0 + data = length 2800, hash 31B9C93F + sample 6: + time = 80000 + flags = 0 + data = length 2866, hash 7FCABDBC + sample 7: + time = 93333 + flags = 0 + data = length 2980, hash FC2CCBDA + sample 8: + time = 106666 + flags = 1 + data = length 3432, hash 17F43166 + sample 9: + time = 120000 + flags = 0 + data = length 2974, hash 69EDFD38 + sample 10: + time = 133333 + flags = 0 + data = length 2898, hash 60E09542 + sample 11: + time = 146666 + flags = 0 + data = length 2896, hash 94A43D4A + sample 12: + time = 160000 + flags = 0 + data = length 3008, hash 82D706BB + sample 13: + time = 173333 + flags = 0 + data = length 2918, hash 22DE72A8 + sample 14: + time = 186666 + flags = 0 + data = length 2990, hash E478A008 + sample 15: + time = 200000 + flags = 0 + data = length 2860, hash B5C3DE40 + sample 16: + time = 213333 + flags = 1 + data = length 3638, hash 3FCD885B + sample 17: + time = 226666 + flags = 0 + data = length 2968, hash A3692382 + sample 18: + time = 240000 + flags = 0 + data = length 2940, hash 72A71C81 + sample 19: + time = 253333 + flags = 0 + data = length 3010, hash A826B2C3 + sample 20: + time = 266666 + flags = 0 + data = length 2952, hash BCEA8C02 + sample 21: + time = 280000 + flags = 0 + data = length 3018, hash C313A53F + sample 22: + time = 293333 + flags = 0 + data = length 2930, hash 4AAB358 + sample 23: + time = 306666 + flags = 0 + data = length 2898, hash C2C22662 + sample 24: + time = 320000 + flags = 1 + data = length 3680, hash 354DF989 + sample 25: + time = 333333 + flags = 0 + data = length 2970, hash 3191F764 + sample 26: + time = 346666 + flags = 0 + data = length 3044, hash 9E115802 + sample 27: + time = 360000 + flags = 0 + data = length 2946, hash B1341399 + sample 28: + time = 373333 + flags = 0 + data = length 2992, hash 4DA27845 + sample 29: + time = 386666 + flags = 0 + data = length 2930, hash 140DC44C + sample 30: + time = 400000 + flags = 0 + data = length 2960, hash 5287EBF8 + sample 31: + time = 413333 + flags = 0 + data = length 1216, hash B83FE151 +tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump new file mode 100644 index 00000000000..47ac8e4b972 --- /dev/null +++ b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump @@ -0,0 +1,115 @@ +seekMap: + isSeekable = true + duration = 418333 + getPosition(0) = [[timeUs=0, position=3447]] + getPosition(1) = [[timeUs=1, position=3447]] + getPosition(209166) = [[timeUs=209166, position=27035]] + getPosition(418333) = [[timeUs=418333, position=75365]] +numberOfTracks = 1 +track 0: + total output bytes = 71068 + sample count = 24 + format 0: + id = 1 + sampleMimeType = audio/true-hd + maxInputSize = 12480 + channelCount = 2 + sampleRate = 48000 + language = und + sample 0: + time = 106666 + flags = 1 + data = length 3432, hash 17F43166 + sample 1: + time = 120000 + flags = 0 + data = length 2974, hash 69EDFD38 + sample 2: + time = 133333 + flags = 0 + data = length 2898, hash 60E09542 + sample 3: + time = 146666 + flags = 0 + data = length 2896, hash 94A43D4A + sample 4: + time = 160000 + flags = 0 + data = length 3008, hash 82D706BB + sample 5: + time = 173333 + flags = 0 + data = length 2918, hash 22DE72A8 + sample 6: + time = 186666 + flags = 0 + data = length 2990, hash E478A008 + sample 7: + time = 200000 + flags = 0 + data = length 2860, hash B5C3DE40 + sample 8: + time = 213333 + flags = 1 + data = length 3638, hash 3FCD885B + sample 9: + time = 226666 + flags = 0 + data = length 2968, hash A3692382 + sample 10: + time = 240000 + flags = 0 + data = length 2940, hash 72A71C81 + sample 11: + time = 253333 + flags = 0 + data = length 3010, hash A826B2C3 + sample 12: + time = 266666 + flags = 0 + data = length 2952, hash BCEA8C02 + sample 13: + time = 280000 + flags = 0 + data = length 3018, hash C313A53F + sample 14: + time = 293333 + flags = 0 + data = length 2930, hash 4AAB358 + sample 15: + time = 306666 + flags = 0 + data = length 2898, hash C2C22662 + sample 16: + time = 320000 + flags = 1 + data = length 3680, hash 354DF989 + sample 17: + time = 333333 + flags = 0 + data = length 2970, hash 3191F764 + sample 18: + time = 346666 + flags = 0 + data = length 3044, hash 9E115802 + sample 19: + time = 360000 + flags = 0 + data = length 2946, hash B1341399 + sample 20: + time = 373333 + flags = 0 + data = length 2992, hash 4DA27845 + sample 21: + time = 386666 + flags = 0 + data = length 2930, hash 140DC44C + sample 22: + time = 400000 + flags = 0 + data = length 2960, hash 5287EBF8 + sample 23: + time = 413333 + flags = 0 + data = length 1216, hash B83FE151 +tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump new file mode 100644 index 00000000000..c52bcbffed3 --- /dev/null +++ b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump @@ -0,0 +1,83 @@ +seekMap: + isSeekable = true + duration = 418333 + getPosition(0) = [[timeUs=0, position=3447]] + getPosition(1) = [[timeUs=1, position=3447]] + getPosition(209166) = [[timeUs=209166, position=27035]] + getPosition(418333) = [[timeUs=418333, position=75365]] +numberOfTracks = 1 +track 0: + total output bytes = 47092 + sample count = 16 + format 0: + id = 1 + sampleMimeType = audio/true-hd + maxInputSize = 12480 + channelCount = 2 + sampleRate = 48000 + language = und + sample 0: + time = 213333 + flags = 1 + data = length 3638, hash 3FCD885B + sample 1: + time = 226666 + flags = 0 + data = length 2968, hash A3692382 + sample 2: + time = 240000 + flags = 0 + data = length 2940, hash 72A71C81 + sample 3: + time = 253333 + flags = 0 + data = length 3010, hash A826B2C3 + sample 4: + time = 266666 + flags = 0 + data = length 2952, hash BCEA8C02 + sample 5: + time = 280000 + flags = 0 + data = length 3018, hash C313A53F + sample 6: + time = 293333 + flags = 0 + data = length 2930, hash 4AAB358 + sample 7: + time = 306666 + flags = 0 + data = length 2898, hash C2C22662 + sample 8: + time = 320000 + flags = 1 + data = length 3680, hash 354DF989 + sample 9: + time = 333333 + flags = 0 + data = length 2970, hash 3191F764 + sample 10: + time = 346666 + flags = 0 + data = length 3044, hash 9E115802 + sample 11: + time = 360000 + flags = 0 + data = length 2946, hash B1341399 + sample 12: + time = 373333 + flags = 0 + data = length 2992, hash 4DA27845 + sample 13: + time = 386666 + flags = 0 + data = length 2930, hash 140DC44C + sample 14: + time = 400000 + flags = 0 + data = length 2960, hash 5287EBF8 + sample 15: + time = 413333 + flags = 0 + data = length 1216, hash B83FE151 +tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump new file mode 100644 index 00000000000..1d226c257ae --- /dev/null +++ b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump @@ -0,0 +1,51 @@ +seekMap: + isSeekable = true + duration = 418333 + getPosition(0) = [[timeUs=0, position=3447]] + getPosition(1) = [[timeUs=1, position=3447]] + getPosition(209166) = [[timeUs=209166, position=27035]] + getPosition(418333) = [[timeUs=418333, position=75365]] +numberOfTracks = 1 +track 0: + total output bytes = 22738 + sample count = 8 + format 0: + id = 1 + sampleMimeType = audio/true-hd + maxInputSize = 12480 + channelCount = 2 + sampleRate = 48000 + language = und + sample 0: + time = 320000 + flags = 1 + data = length 3680, hash 354DF989 + sample 1: + time = 333333 + flags = 0 + data = length 2970, hash 3191F764 + sample 2: + time = 346666 + flags = 0 + data = length 3044, hash 9E115802 + sample 3: + time = 360000 + flags = 0 + data = length 2946, hash B1341399 + sample 4: + time = 373333 + flags = 0 + data = length 2992, hash 4DA27845 + sample 5: + time = 386666 + flags = 0 + data = length 2930, hash 140DC44C + sample 6: + time = 400000 + flags = 0 + data = length 2960, hash 5287EBF8 + sample 7: + time = 413333 + flags = 0 + data = length 1216, hash B83FE151 +tracksEnded = true diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump new file mode 100644 index 00000000000..d05b05b2cc0 --- /dev/null +++ b/testdata/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump @@ -0,0 +1,147 @@ +seekMap: + isSeekable = true + duration = 418333 + getPosition(0) = [[timeUs=0, position=3447]] + getPosition(1) = [[timeUs=1, position=3447]] + getPosition(209166) = [[timeUs=209166, position=27035]] + getPosition(418333) = [[timeUs=418333, position=75365]] +numberOfTracks = 1 +track 0: + total output bytes = 94656 + sample count = 32 + format 0: + id = 1 + sampleMimeType = audio/true-hd + maxInputSize = 12480 + channelCount = 2 + sampleRate = 48000 + language = und + sample 0: + time = 0 + flags = 1 + data = length 3512, hash B77F1117 + sample 1: + time = 13333 + flags = 0 + data = length 2830, hash 4B19B7D5 + sample 2: + time = 26666 + flags = 0 + data = length 2868, hash BC04A38E + sample 3: + time = 40000 + flags = 0 + data = length 2834, hash D2AF8AF9 + sample 4: + time = 53333 + flags = 0 + data = length 2898, hash 5C9B3119 + sample 5: + time = 66666 + flags = 0 + data = length 2800, hash 31B9C93F + sample 6: + time = 80000 + flags = 0 + data = length 2866, hash 7FCABDBC + sample 7: + time = 93333 + flags = 0 + data = length 2980, hash FC2CCBDA + sample 8: + time = 106666 + flags = 1 + data = length 3432, hash 17F43166 + sample 9: + time = 120000 + flags = 0 + data = length 2974, hash 69EDFD38 + sample 10: + time = 133333 + flags = 0 + data = length 2898, hash 60E09542 + sample 11: + time = 146666 + flags = 0 + data = length 2896, hash 94A43D4A + sample 12: + time = 160000 + flags = 0 + data = length 3008, hash 82D706BB + sample 13: + time = 173333 + flags = 0 + data = length 2918, hash 22DE72A8 + sample 14: + time = 186666 + flags = 0 + data = length 2990, hash E478A008 + sample 15: + time = 200000 + flags = 0 + data = length 2860, hash B5C3DE40 + sample 16: + time = 213333 + flags = 1 + data = length 3638, hash 3FCD885B + sample 17: + time = 226666 + flags = 0 + data = length 2968, hash A3692382 + sample 18: + time = 240000 + flags = 0 + data = length 2940, hash 72A71C81 + sample 19: + time = 253333 + flags = 0 + data = length 3010, hash A826B2C3 + sample 20: + time = 266666 + flags = 0 + data = length 2952, hash BCEA8C02 + sample 21: + time = 280000 + flags = 0 + data = length 3018, hash C313A53F + sample 22: + time = 293333 + flags = 0 + data = length 2930, hash 4AAB358 + sample 23: + time = 306666 + flags = 0 + data = length 2898, hash C2C22662 + sample 24: + time = 320000 + flags = 1 + data = length 3680, hash 354DF989 + sample 25: + time = 333333 + flags = 0 + data = length 2970, hash 3191F764 + sample 26: + time = 346666 + flags = 0 + data = length 3044, hash 9E115802 + sample 27: + time = 360000 + flags = 0 + data = length 2946, hash B1341399 + sample 28: + time = 373333 + flags = 0 + data = length 2992, hash 4DA27845 + sample 29: + time = 386666 + flags = 0 + data = length 2930, hash 140DC44C + sample 30: + time = 400000 + flags = 0 + data = length 2960, hash 5287EBF8 + sample 31: + time = 413333 + flags = 0 + data = length 1216, hash B83FE151 +tracksEnded = true diff --git a/testdata/src/test/assets/media/mp4/sample_dthd.mp4 b/testdata/src/test/assets/media/mp4/sample_dthd.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c5d3eb2a390e03a57b939cec0408e64b46070da4 GIT binary patch literal 98103 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

V9cis9ri*KvqwRZi!5a8LnQNBGgi00@A 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

WI8t&O&WXiJ=j71ftE*K}tdZ_F2jX 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 R%s9sEuU7lXQt0dQ{{<@HIN$&P literal 0 HcmV?d00001