diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index e7ea5063d9..dbfd78d627 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -11,6 +11,8 @@
* Transformer:
* Track Selection:
* Extractors:
+ * Allow `Mp4Extractor` to identify H264 samples that are not used as
+ reference by subsequent samples.
* Audio:
* Video:
* Text:
diff --git a/libraries/common/src/main/java/androidx/media3/common/C.java b/libraries/common/src/main/java/androidx/media3/common/C.java
index 286ddf6942..cf3eb9abaa 100644
--- a/libraries/common/src/main/java/androidx/media3/common/C.java
+++ b/libraries/common/src/main/java/androidx/media3/common/C.java
@@ -620,6 +620,7 @@ public final class C {
*
* {@link #BUFFER_FLAG_KEY_FRAME}
* {@link #BUFFER_FLAG_END_OF_STREAM}
+ * {@link #BUFFER_FLAG_NO_OTHER_SAMPLE_DEPENDS_ON_THIS}
* {@link #BUFFER_FLAG_FIRST_SAMPLE}
* {@link #BUFFER_FLAG_LAST_SAMPLE}
* {@link #BUFFER_FLAG_ENCRYPTED}
@@ -634,6 +635,7 @@ public final class C {
value = {
BUFFER_FLAG_KEY_FRAME,
BUFFER_FLAG_END_OF_STREAM,
+ BUFFER_FLAG_NO_OTHER_SAMPLE_DEPENDS_ON_THIS,
BUFFER_FLAG_FIRST_SAMPLE,
BUFFER_FLAG_HAS_SUPPLEMENTAL_DATA,
BUFFER_FLAG_LAST_SAMPLE,
@@ -648,6 +650,10 @@ public final class C {
@UnstableApi
public static final int BUFFER_FLAG_END_OF_STREAM = MediaCodec.BUFFER_FLAG_END_OF_STREAM;
+ /** Indicates that future buffers do not depend on the data in this buffer. */
+ @UnstableApi
+ public static final int BUFFER_FLAG_NO_OTHER_SAMPLE_DEPENDS_ON_THIS = 1 << 26; // 0x04000000
+
/** Indicates that a buffer is known to contain the first media sample of the stream. */
@UnstableApi public static final int BUFFER_FLAG_FIRST_SAMPLE = 1 << 27; // 0x08000000
diff --git a/libraries/container/src/main/java/androidx/media3/container/NalUnitUtil.java b/libraries/container/src/main/java/androidx/media3/container/NalUnitUtil.java
index 4fc3458440..9012105169 100644
--- a/libraries/container/src/main/java/androidx/media3/container/NalUnitUtil.java
+++ b/libraries/container/src/main/java/androidx/media3/container/NalUnitUtil.java
@@ -534,6 +534,41 @@ public final class NalUnitUtil {
return data[offset + 3] & 0x1F;
}
+ /**
+ * Returns whether the H.264 NAL unit can be depended on by subsequent NAL units in decoding
+ * order.
+ *
+ * @param nalUnitHeaderFirstByte The first byte of nal_unit().
+ */
+ public static boolean isH264NalUnitDependedOn(byte nalUnitHeaderFirstByte) {
+ int nalRefIdc = ((nalUnitHeaderFirstByte & 0x60) >> 5);
+ if (nalRefIdc != 0) {
+ // A picture with nal_ref_idc not equal to 0 is a reference picture, which contains
+ // samples that may be used for inter prediction in the decoding process of subsequent
+ // pictures in decoding order.
+ return true;
+ }
+
+ int nalUnitType = nalUnitHeaderFirstByte & 0x1F;
+ if (nalUnitType == NAL_UNIT_TYPE_NON_IDR) {
+ // For pictures (Video Coding Layer NAL units), we can rely on nal_ref_idc to determine
+ // whether future NAL units depend on it.
+ return false;
+ }
+ if (nalUnitType == NAL_UNIT_TYPE_AUD) {
+ // NAL unit delimiters are not depended on.
+ return false;
+ }
+ if (nalUnitType == NAL_UNIT_TYPE_PREFIX) {
+ // Prefix NAL units are only used by Annex G scalable video coding to mark temporal layers.
+ // Rely on nal_ref_idc to identify sample dependencies.
+ return false;
+ }
+ // Treat any other NAL unit type as depended on. This might be too restrictive, but reduces
+ // risks around closed captions, HDR metadata in SEI messages.
+ return true;
+ }
+
/**
* Returns the type of the H.265 NAL unit in {@code data} that starts at {@code offset}.
*
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 d408830b91..5850bba24e 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
@@ -62,6 +62,7 @@ import java.lang.annotation.Target;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** Extracts data from the MP4 container format. */
@@ -79,7 +80,7 @@ public final class Mp4Extractor implements Extractor, SeekMap {
/**
* Flags controlling the behavior of the extractor. Possible flag values are {@link
* #FLAG_WORKAROUND_IGNORE_EDIT_LISTS}, {@link #FLAG_READ_MOTION_PHOTO_METADATA} and {@link
- * #FLAG_READ_SEF_DATA}.
+ * #FLAG_READ_SEF_DATA}, {@link #FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES}.
*/
@Documented
@Retention(RetentionPolicy.SOURCE)
@@ -91,7 +92,8 @@ public final class Mp4Extractor implements Extractor, SeekMap {
FLAG_READ_MOTION_PHOTO_METADATA,
FLAG_READ_SEF_DATA,
FLAG_MARK_FIRST_VIDEO_TRACK_WITH_MAIN_ROLE,
- FLAG_EMIT_RAW_SUBTITLE_DATA
+ FLAG_EMIT_RAW_SUBTITLE_DATA,
+ FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES
})
public @interface Flags {}
@@ -121,6 +123,26 @@ public final class Mp4Extractor implements Extractor, SeekMap {
public static final int FLAG_EMIT_RAW_SUBTITLE_DATA = 1 << 4;
+ /**
+ * Flag to extract additional sample dependency information, and mark output buffers with {@link
+ * C#BUFFER_FLAG_NO_OTHER_SAMPLE_DEPENDS_ON_THIS}.
+ *
+ * This class always marks the samples at the start of each group of picture (GOP) with {@link
+ * C#BUFFER_FLAG_KEY_FRAME}. Usually, key frames can be decoded independently, without depending
+ * on other samples.
+ *
+ *
Setting this flag enables elementary stream parsing to identify disposable samples that are
+ * not depended on by other samples. Any disposable sample can be safely omitted, and the rest of
+ * the track will remain valid.
+ *
+ *
Supported formats are:
+ *
+ *
+ * {@linkplain MimeTypes#VIDEO_H264 H.264}
+ *
+ */
+ public static final int FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES = 1 << 5;
+
/**
* @deprecated Use {@link #newFactory(SubtitleParser.Factory)} instead.
*/
@@ -176,7 +198,7 @@ public final class Mp4Extractor implements Extractor, SeekMap {
// Temporary arrays.
private final ParsableByteArray nalStartCode;
- private final ParsableByteArray nalLength;
+ private final ParsableByteArray nalPrefix;
private final ParsableByteArray scratch;
private final ParsableByteArray atomHeader;
@@ -195,6 +217,7 @@ public final class Mp4Extractor implements Extractor, SeekMap {
private int sampleBytesRead;
private int sampleBytesWritten;
private int sampleCurrentNalBytesRemaining;
+ private boolean isSampleDependedOn;
private boolean seenFtypAtom;
// Extractor outputs.
@@ -252,11 +275,13 @@ public final class Mp4Extractor implements Extractor, SeekMap {
atomHeader = new ParsableByteArray(Atom.LONG_HEADER_SIZE);
containerAtoms = new ArrayDeque<>();
nalStartCode = new ParsableByteArray(NalUnitUtil.NAL_START_CODE);
- nalLength = new ParsableByteArray(4);
+ nalPrefix = new ParsableByteArray(5);
scratch = new ParsableByteArray();
sampleTrackIndex = C.INDEX_UNSET;
extractorOutput = ExtractorOutput.PLACEHOLDER;
tracks = new Mp4Track[0];
+ // Treat all samples as depended on when FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES is unset.
+ isSampleDependedOn = (flags & FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES) == 0;
}
@Override
@@ -290,6 +315,8 @@ public final class Mp4Extractor implements Extractor, SeekMap {
sampleBytesRead = 0;
sampleBytesWritten = 0;
sampleCurrentNalBytesRemaining = 0;
+ // Treat all samples as depended on when FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES is unset.
+ isSampleDependedOn = (flags & FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES) == 0;
if (position == 0) {
// Reading the SEF data occurs before normal MP4 parsing. Therefore we can not transition to
// reading the atom header until that has completed.
@@ -702,14 +729,18 @@ public final class Mp4Extractor implements Extractor, SeekMap {
sampleSize -= Atom.HEADER_SIZE;
}
input.skipFully((int) skipAmount);
+ // Treat all samples in non-H.264 codecs as depended on.
+ if (!Objects.equals(track.track.format.sampleMimeType, MimeTypes.VIDEO_H264)) {
+ isSampleDependedOn = true;
+ }
if (track.track.nalUnitLengthFieldLength != 0) {
// Zero the top three bytes of the array that we'll use to decode nal unit lengths, in case
// they're only 1 or 2 bytes long.
- byte[] nalLengthData = nalLength.getData();
- nalLengthData[0] = 0;
- nalLengthData[1] = 0;
- nalLengthData[2] = 0;
- int nalUnitLengthFieldLength = track.track.nalUnitLengthFieldLength;
+ byte[] nalPrefixData = nalPrefix.getData();
+ nalPrefixData[0] = 0;
+ nalPrefixData[1] = 0;
+ nalPrefixData[2] = 0;
+ int nalUnitPrefixLength = track.track.nalUnitLengthFieldLength + 1;
int nalUnitLengthFieldLengthDiff = 4 - track.track.nalUnitLengthFieldLength;
// NAL units are length delimited, but the decoder requires start code delimited units.
// Loop until we've written the sample to the track output, replacing length delimiters with
@@ -717,20 +748,31 @@ public final class Mp4Extractor implements Extractor, SeekMap {
while (sampleBytesWritten < sampleSize) {
if (sampleCurrentNalBytesRemaining == 0) {
// Read the NAL length so that we know where we find the next one.
- input.readFully(nalLengthData, nalUnitLengthFieldLengthDiff, nalUnitLengthFieldLength);
- sampleBytesRead += nalUnitLengthFieldLength;
- nalLength.setPosition(0);
- int nalLengthInt = nalLength.readInt();
- if (nalLengthInt < 0) {
+ // In the same readFully call, read the first payload byte in order to determine
+ // sample dependencies. Do not attempt to peek the first payload byte because that might
+ // fail, and we should keep sampleBytesRead, sampleBytesWritten, isSampleDependedOn in
+ // a consistent state.
+ input.readFully(nalPrefixData, nalUnitLengthFieldLengthDiff, nalUnitPrefixLength);
+ sampleBytesRead += nalUnitPrefixLength;
+ nalPrefix.setPosition(0);
+ int nalLengthInt = nalPrefix.readInt();
+ if (nalLengthInt < 1) {
throw ParserException.createForMalformedContainer(
"Invalid NAL length", /* cause= */ null);
}
- sampleCurrentNalBytesRemaining = nalLengthInt;
+ sampleCurrentNalBytesRemaining = nalLengthInt - 1;
// Write a start code for the current NAL unit.
nalStartCode.setPosition(0);
trackOutput.sampleData(nalStartCode, 4);
- sampleBytesWritten += 4;
+ // Write the NAL unit type byte.
+ trackOutput.sampleData(nalPrefix, 1);
+ sampleBytesWritten += 5;
sampleSize += nalUnitLengthFieldLengthDiff;
+ // If any NAL unit that's part of this sample can be depended on, treat the entire sample
+ // as depended on.
+ if (!isSampleDependedOn && NalUnitUtil.isH264NalUnitDependedOn(nalPrefixData[4])) {
+ isSampleDependedOn = true;
+ }
} else {
// Write the payload of the NAL unit.
int writtenBytes = trackOutput.sampleData(input, sampleCurrentNalBytesRemaining, false);
@@ -760,16 +802,19 @@ public final class Mp4Extractor implements Extractor, SeekMap {
}
long timeUs = track.sampleTable.timestampsUs[sampleIndex];
- @C.BufferFlags int flags = track.sampleTable.flags[sampleIndex];
+ @C.BufferFlags int sampleFlags = track.sampleTable.flags[sampleIndex];
+ if (!isSampleDependedOn) {
+ sampleFlags |= C.BUFFER_FLAG_NO_OTHER_SAMPLE_DEPENDS_ON_THIS;
+ }
if (trueHdSampleRechunker != null) {
trueHdSampleRechunker.sampleMetadata(
- trackOutput, timeUs, flags, sampleSize, /* offset= */ 0, /* cryptoData= */ null);
+ trackOutput, timeUs, sampleFlags, sampleSize, /* offset= */ 0, /* cryptoData= */ null);
if (sampleIndex + 1 == track.sampleTable.sampleCount) {
trueHdSampleRechunker.outputPendingSampleMetadata(trackOutput, /* cryptoData= */ null);
}
} else {
trackOutput.sampleMetadata(
- timeUs, flags, sampleSize, /* offset= */ 0, /* cryptoData= */ null);
+ timeUs, sampleFlags, sampleSize, /* offset= */ 0, /* cryptoData= */ null);
}
track.sampleIndex++;
@@ -777,6 +822,8 @@ public final class Mp4Extractor implements Extractor, SeekMap {
sampleBytesRead = 0;
sampleBytesWritten = 0;
sampleCurrentNalBytesRemaining = 0;
+ // Treat all samples as depended on when FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES is unset.
+ isSampleDependedOn = (flags & FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES) == 0;
return RESULT_CONTINUE;
}
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 328cf666f1..bb781370f9 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
@@ -15,11 +15,12 @@
*/
package androidx.media3.extractor.mp4;
-import static androidx.media3.extractor.mp4.FragmentedMp4Extractor.FLAG_EMIT_RAW_SUBTITLE_DATA;
+import static androidx.media3.extractor.mp4.Mp4Extractor.FLAG_EMIT_RAW_SUBTITLE_DATA;
import androidx.media3.extractor.text.DefaultSubtitleParserFactory;
import androidx.media3.extractor.text.SubtitleParser;
import androidx.media3.test.utils.ExtractorAsserts;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
@@ -32,12 +33,28 @@ import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class Mp4ExtractorParameterizedTest {
- @Parameters(name = "{0},subtitlesParsedDuringExtraction={1}")
+ @Parameters(name = "{0},subtitlesParsedDuringExtraction={1},readWithinGopSampleDependencies={2}")
public static List params() {
List parameterList = new ArrayList<>();
for (ExtractorAsserts.SimulationConfig config : ExtractorAsserts.configs()) {
- parameterList.add(new Object[] {config, /* subtitlesParsedDuringExtraction */ true});
- parameterList.add(new Object[] {config, /* subtitlesParsedDuringExtraction */ false});
+ parameterList.add(
+ new Object[] {
+ config,
+ /* subtitlesParsedDuringExtraction */ true,
+ /* readWithinGopSampleDependencies */ false
+ });
+ parameterList.add(
+ new Object[] {
+ config,
+ /* subtitlesParsedDuringExtraction */ false,
+ /* readWithinGopSampleDependencies */ false
+ });
+ parameterList.add(
+ new Object[] {
+ config,
+ /* subtitlesParsedDuringExtraction */ true,
+ /* readWithinGopSampleDependencies */ true
+ });
}
return parameterList;
}
@@ -48,36 +65,27 @@ public final class Mp4ExtractorParameterizedTest {
@Parameter(1)
public boolean subtitlesParsedDuringExtraction;
+ @Parameter(2)
+ public boolean readWithinGopSampleDependencies;
+
@Test
public void mp4Sample() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample.mp4");
}
@Test
public void mp4SampleWithSlowMotionMetadata() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_android_slow_motion.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_android_slow_motion.mp4");
}
@Test
public void mp4SampleWithMetadata() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_with_metadata.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_with_metadata.mp4");
}
@Test
public void mp4SampleWithNumericGenre() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_with_numeric_genre.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_with_numeric_genre.mp4");
}
/**
@@ -86,74 +94,47 @@ public final class Mp4ExtractorParameterizedTest {
*/
@Test
public void mp4SampleWithMdatTooLong() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_mdat_too_long.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_mdat_too_long.mp4");
}
@Test
public void mp4SampleWithAc3Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_ac3.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_ac3.mp4");
}
@Test
public void mp4SampleWithAc4Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_ac4.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_ac4.mp4");
}
@Test
public void mp4SampleWithEac3Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_eac3.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_eac3.mp4");
}
@Test
public void mp4SampleWithEac3jocTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_eac3joc.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_eac3joc.mp4");
}
@Test
public void mp4SampleWithOpusTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_opus.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_opus.mp4");
}
@Test
public void mp4SampleWithMha1Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_mpegh_mha1.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_mpegh_mha1.mp4");
}
@Test
public void mp4SampleWithMhm1Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_mpegh_mhm1.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_mpegh_mhm1.mp4");
}
@Test
public void mp4SampleWithColorInfo() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_with_color_info.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_with_color_info.mp4");
}
/**
@@ -163,111 +144,87 @@ public final class Mp4ExtractorParameterizedTest {
*/
@Test
public void mp4Sample18ByteNclxColr() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_18byte_nclx_colr.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_18byte_nclx_colr.mp4");
}
@Test
public void mp4SampleWithDolbyTrueHDTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_dthd.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_dthd.mp4");
}
@Test
public void mp4SampleWithColrMdcvAndClli() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_with_colr_mdcv_and_clli.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_with_colr_mdcv_and_clli.mp4");
}
/** Test case for supporting original QuickTime specification [Internal: b/297137302]. */
@Test
public void mp4SampleWithOriginalQuicktimeSpecification() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_with_original_quicktime_specification.mov",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_with_original_quicktime_specification.mov");
}
@Test
public void mp4SampleWithAv1c() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_with_av1c.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_with_av1c.mp4");
}
@Test
public void mp4SampleWithMhm1BlCicp1Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_bl_cicp1.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_mhm1_bl_cicp1.mp4");
}
@Test
public void mp4SampleWithMhm1LcBlCicp1Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_lcbl_cicp1.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_mhm1_lcbl_cicp1.mp4");
}
@Test
public void mp4SampleWithMhm1BlConfigChangeTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_bl_configchange.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_mhm1_bl_configchange.mp4");
}
@Test
public void mp4SampleWithMhm1LcBlConfigChangeTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_lcbl_configchange.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_mhm1_lcbl_configchange.mp4");
}
@Test
public void mp4SampleWithEditList() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_edit_list.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_edit_list.mp4");
}
@Test
public void mp4SampleWithEmptyTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/sample_empty_track.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/sample_empty_track.mp4");
}
@Test
public void mp4SampleWithTwoTracksOneWithSingleFrame() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/pixel-motion-photo-2-hevc-tracks.mp4",
- simulationConfig);
+ assertExtractorBehavior("media/mp4/pixel-motion-photo-2-hevc-tracks.mp4");
}
@Test
public void mp4SampleWithNoMaxNumReorderFramesValue() throws Exception {
+ assertExtractorBehavior("media/mp4/bt601.mov");
+ }
+
+ private void assertExtractorBehavior(String file) throws IOException {
+ ExtractorAsserts.AssertionConfig.Builder assertionConfigBuilder =
+ new ExtractorAsserts.AssertionConfig.Builder();
+ if (readWithinGopSampleDependencies) {
+ String dumpFilesPrefix =
+ file.replaceFirst("media", "extractordumps") + ".reading_within_gop_sample_dependencies";
+ assertionConfigBuilder.setDumpFilesPrefix(dumpFilesPrefix);
+ }
ExtractorAsserts.assertBehavior(
- getExtractorFactory(subtitlesParsedDuringExtraction),
- "media/mp4/bt601.mov",
+ getExtractorFactory(subtitlesParsedDuringExtraction, readWithinGopSampleDependencies),
+ file,
+ assertionConfigBuilder.build(),
simulationConfig);
}
private static ExtractorAsserts.ExtractorFactory getExtractorFactory(
- boolean subtitlesParsedDuringExtraction) {
+ boolean subtitlesParsedDuringExtraction, boolean readWithinGopSampleDependencies) {
SubtitleParser.Factory subtitleParserFactory;
@Mp4Extractor.Flags int flags;
if (subtitlesParsedDuringExtraction) {
@@ -277,7 +234,11 @@ public final class Mp4ExtractorParameterizedTest {
subtitleParserFactory = SubtitleParser.Factory.UNSUPPORTED;
flags = FLAG_EMIT_RAW_SUBTITLE_DATA;
}
+ if (readWithinGopSampleDependencies) {
+ flags |= Mp4Extractor.FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES;
+ }
- return () -> new Mp4Extractor(subtitleParserFactory, flags);
+ @Mp4Extractor.Flags int finalFlags = flags;
+ return () -> new Mp4Extractor(subtitleParserFactory, finalFlags);
}
}
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..c8a4531bd3
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,338 @@
+seekMap:
+ isSeekable = true
+ duration = 1020100
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(510050) = [[timeUs=0, position=36]]
+ getPosition(1020100) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 9294
+ sample count = 43
+ format 0:
+ peakBitrate = 200000
+ id = 1
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 536870913
+ data = length 235, hash 999477F6
+track 1:
+ total output bytes = 130926
+ sample count = 30
+ format 0:
+ id = 2
+ sampleMimeType = video/avc
+ codecs = avc1.4D001E
+ maxInputSize = 25345
+ maxNumReorderSamples = 16
+ width = 640
+ height = 428
+ frameRate = 29.408882
+ colorInfo:
+ colorSpace = 2
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 19, hash D3863A4C
+ data = length 8, hash 9464788C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 25315, hash 4F94DFD9
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 2974, hash CE870018
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 520, hash 755D4D65
+ sample 3:
+ time = 133466
+ flags = 0
+ data = length 5849, hash 62ABA3A6
+ sample 4:
+ time = 100100
+ flags = 67108864
+ data = length 665, hash 5B3919F5
+ sample 5:
+ time = 200200
+ flags = 0
+ data = length 4934, hash EA186643
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 1006, hash 50307604
+ sample 7:
+ time = 266933
+ flags = 0
+ data = length 7081, hash B3F2E23A
+ sample 8:
+ time = 233566
+ flags = 67108864
+ data = length 635, hash B197BCDB
+ sample 9:
+ time = 333666
+ flags = 0
+ data = length 6589, hash C7FAA564
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 650, hash A3AFA416
+ sample 11:
+ time = 400400
+ flags = 0
+ data = length 8533, hash 4951EBBA
+ sample 12:
+ time = 367033
+ flags = 67108864
+ data = length 758, hash EAF337EE
+ sample 13:
+ time = 467133
+ flags = 0
+ data = length 11584, hash 13DE8D1D
+ sample 14:
+ time = 433766
+ flags = 67108864
+ data = length 2163, hash 1EB6F423
+ sample 15:
+ time = 533866
+ flags = 0
+ data = length 5286, hash 2FF4E597
+ sample 16:
+ time = 500500
+ flags = 67108864
+ data = length 1365, hash 2740F6BA
+ sample 17:
+ time = 600600
+ flags = 0
+ data = length 10250, hash 4C4C05E9
+ sample 18:
+ time = 567233
+ flags = 67108864
+ data = length 1203, hash 194F1FD6
+ sample 19:
+ time = 667333
+ flags = 0
+ data = length 7373, hash D00D482
+ sample 20:
+ time = 633966
+ flags = 67108864
+ data = length 1261, hash ED32D57D
+ sample 21:
+ time = 734066
+ flags = 0
+ data = length 6347, hash 2B6EB74D
+ sample 22:
+ time = 700700
+ flags = 67108864
+ data = length 833, hash 81BC5D34
+ sample 23:
+ time = 800800
+ flags = 0
+ data = length 5538, hash 9951853
+ sample 24:
+ time = 767433
+ flags = 67108864
+ data = length 657, hash 6EBAC33A
+ sample 25:
+ time = 867533
+ flags = 0
+ data = length 4109, hash 42BE3B2F
+ sample 26:
+ time = 834166
+ flags = 67108864
+ data = length 789, hash D766C08
+ sample 27:
+ time = 934266
+ flags = 0
+ data = length 3108, hash 1C48E56B
+ sample 28:
+ time = 900900
+ flags = 67108864
+ data = length 541, hash B429D47
+ sample 29:
+ time = 967633
+ flags = 536870912
+ data = length 3010, hash 1FC94085
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..cab1e0066e
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,290 @@
+seekMap:
+ isSeekable = true
+ duration = 1020100
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(510050) = [[timeUs=0, position=36]]
+ getPosition(1020100) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 7229
+ sample count = 31
+ format 0:
+ peakBitrate = 200000
+ id = 1
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 1:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 2:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 3:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 4:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 5:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 6:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 7:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 8:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 9:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 10:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 11:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 12:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 13:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 14:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 15:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 16:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 17:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 18:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 19:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 20:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 21:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 22:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 23:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 24:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 25:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 26:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 27:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 28:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 29:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 30:
+ time = 1019238
+ flags = 536870913
+ data = length 235, hash 999477F6
+track 1:
+ total output bytes = 130926
+ sample count = 30
+ format 0:
+ id = 2
+ sampleMimeType = video/avc
+ codecs = avc1.4D001E
+ maxInputSize = 25345
+ maxNumReorderSamples = 16
+ width = 640
+ height = 428
+ frameRate = 29.408882
+ colorInfo:
+ colorSpace = 2
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 19, hash D3863A4C
+ data = length 8, hash 9464788C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 25315, hash 4F94DFD9
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 2974, hash CE870018
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 520, hash 755D4D65
+ sample 3:
+ time = 133466
+ flags = 0
+ data = length 5849, hash 62ABA3A6
+ sample 4:
+ time = 100100
+ flags = 67108864
+ data = length 665, hash 5B3919F5
+ sample 5:
+ time = 200200
+ flags = 0
+ data = length 4934, hash EA186643
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 1006, hash 50307604
+ sample 7:
+ time = 266933
+ flags = 0
+ data = length 7081, hash B3F2E23A
+ sample 8:
+ time = 233566
+ flags = 67108864
+ data = length 635, hash B197BCDB
+ sample 9:
+ time = 333666
+ flags = 0
+ data = length 6589, hash C7FAA564
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 650, hash A3AFA416
+ sample 11:
+ time = 400400
+ flags = 0
+ data = length 8533, hash 4951EBBA
+ sample 12:
+ time = 367033
+ flags = 67108864
+ data = length 758, hash EAF337EE
+ sample 13:
+ time = 467133
+ flags = 0
+ data = length 11584, hash 13DE8D1D
+ sample 14:
+ time = 433766
+ flags = 67108864
+ data = length 2163, hash 1EB6F423
+ sample 15:
+ time = 533866
+ flags = 0
+ data = length 5286, hash 2FF4E597
+ sample 16:
+ time = 500500
+ flags = 67108864
+ data = length 1365, hash 2740F6BA
+ sample 17:
+ time = 600600
+ flags = 0
+ data = length 10250, hash 4C4C05E9
+ sample 18:
+ time = 567233
+ flags = 67108864
+ data = length 1203, hash 194F1FD6
+ sample 19:
+ time = 667333
+ flags = 0
+ data = length 7373, hash D00D482
+ sample 20:
+ time = 633966
+ flags = 67108864
+ data = length 1261, hash ED32D57D
+ sample 21:
+ time = 734066
+ flags = 0
+ data = length 6347, hash 2B6EB74D
+ sample 22:
+ time = 700700
+ flags = 67108864
+ data = length 833, hash 81BC5D34
+ sample 23:
+ time = 800800
+ flags = 0
+ data = length 5538, hash 9951853
+ sample 24:
+ time = 767433
+ flags = 67108864
+ data = length 657, hash 6EBAC33A
+ sample 25:
+ time = 867533
+ flags = 0
+ data = length 4109, hash 42BE3B2F
+ sample 26:
+ time = 834166
+ flags = 67108864
+ data = length 789, hash D766C08
+ sample 27:
+ time = 934266
+ flags = 0
+ data = length 3108, hash 1C48E56B
+ sample 28:
+ time = 900900
+ flags = 67108864
+ data = length 541, hash B429D47
+ sample 29:
+ time = 967633
+ flags = 536870912
+ data = length 3010, hash 1FC94085
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..0a11aa55f7
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,230 @@
+seekMap:
+ isSeekable = true
+ duration = 1020100
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(510050) = [[timeUs=0, position=36]]
+ getPosition(1020100) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 3784
+ sample count = 16
+ format 0:
+ peakBitrate = 200000
+ id = 1
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 1:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 2:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 3:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 4:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 5:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 6:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 7:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 8:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 9:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 10:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 11:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 12:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 13:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 14:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 15:
+ time = 1019238
+ flags = 536870913
+ data = length 235, hash 999477F6
+track 1:
+ total output bytes = 130926
+ sample count = 30
+ format 0:
+ id = 2
+ sampleMimeType = video/avc
+ codecs = avc1.4D001E
+ maxInputSize = 25345
+ maxNumReorderSamples = 16
+ width = 640
+ height = 428
+ frameRate = 29.408882
+ colorInfo:
+ colorSpace = 2
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 19, hash D3863A4C
+ data = length 8, hash 9464788C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 25315, hash 4F94DFD9
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 2974, hash CE870018
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 520, hash 755D4D65
+ sample 3:
+ time = 133466
+ flags = 0
+ data = length 5849, hash 62ABA3A6
+ sample 4:
+ time = 100100
+ flags = 67108864
+ data = length 665, hash 5B3919F5
+ sample 5:
+ time = 200200
+ flags = 0
+ data = length 4934, hash EA186643
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 1006, hash 50307604
+ sample 7:
+ time = 266933
+ flags = 0
+ data = length 7081, hash B3F2E23A
+ sample 8:
+ time = 233566
+ flags = 67108864
+ data = length 635, hash B197BCDB
+ sample 9:
+ time = 333666
+ flags = 0
+ data = length 6589, hash C7FAA564
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 650, hash A3AFA416
+ sample 11:
+ time = 400400
+ flags = 0
+ data = length 8533, hash 4951EBBA
+ sample 12:
+ time = 367033
+ flags = 67108864
+ data = length 758, hash EAF337EE
+ sample 13:
+ time = 467133
+ flags = 0
+ data = length 11584, hash 13DE8D1D
+ sample 14:
+ time = 433766
+ flags = 67108864
+ data = length 2163, hash 1EB6F423
+ sample 15:
+ time = 533866
+ flags = 0
+ data = length 5286, hash 2FF4E597
+ sample 16:
+ time = 500500
+ flags = 67108864
+ data = length 1365, hash 2740F6BA
+ sample 17:
+ time = 600600
+ flags = 0
+ data = length 10250, hash 4C4C05E9
+ sample 18:
+ time = 567233
+ flags = 67108864
+ data = length 1203, hash 194F1FD6
+ sample 19:
+ time = 667333
+ flags = 0
+ data = length 7373, hash D00D482
+ sample 20:
+ time = 633966
+ flags = 67108864
+ data = length 1261, hash ED32D57D
+ sample 21:
+ time = 734066
+ flags = 0
+ data = length 6347, hash 2B6EB74D
+ sample 22:
+ time = 700700
+ flags = 67108864
+ data = length 833, hash 81BC5D34
+ sample 23:
+ time = 800800
+ flags = 0
+ data = length 5538, hash 9951853
+ sample 24:
+ time = 767433
+ flags = 67108864
+ data = length 657, hash 6EBAC33A
+ sample 25:
+ time = 867533
+ flags = 0
+ data = length 4109, hash 42BE3B2F
+ sample 26:
+ time = 834166
+ flags = 67108864
+ data = length 789, hash D766C08
+ sample 27:
+ time = 934266
+ flags = 0
+ data = length 3108, hash 1C48E56B
+ sample 28:
+ time = 900900
+ flags = 67108864
+ data = length 541, hash B429D47
+ sample 29:
+ time = 967633
+ flags = 536870912
+ data = length 3010, hash 1FC94085
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..b467c32cd7
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,170 @@
+seekMap:
+ isSeekable = true
+ duration = 1020100
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(510050) = [[timeUs=0, position=36]]
+ getPosition(1020100) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 235
+ sample count = 1
+ format 0:
+ peakBitrate = 200000
+ id = 1
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 1019238
+ flags = 536870913
+ data = length 235, hash 999477F6
+track 1:
+ total output bytes = 130926
+ sample count = 30
+ format 0:
+ id = 2
+ sampleMimeType = video/avc
+ codecs = avc1.4D001E
+ maxInputSize = 25345
+ maxNumReorderSamples = 16
+ width = 640
+ height = 428
+ frameRate = 29.408882
+ colorInfo:
+ colorSpace = 2
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 19, hash D3863A4C
+ data = length 8, hash 9464788C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 25315, hash 4F94DFD9
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 2974, hash CE870018
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 520, hash 755D4D65
+ sample 3:
+ time = 133466
+ flags = 0
+ data = length 5849, hash 62ABA3A6
+ sample 4:
+ time = 100100
+ flags = 67108864
+ data = length 665, hash 5B3919F5
+ sample 5:
+ time = 200200
+ flags = 0
+ data = length 4934, hash EA186643
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 1006, hash 50307604
+ sample 7:
+ time = 266933
+ flags = 0
+ data = length 7081, hash B3F2E23A
+ sample 8:
+ time = 233566
+ flags = 67108864
+ data = length 635, hash B197BCDB
+ sample 9:
+ time = 333666
+ flags = 0
+ data = length 6589, hash C7FAA564
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 650, hash A3AFA416
+ sample 11:
+ time = 400400
+ flags = 0
+ data = length 8533, hash 4951EBBA
+ sample 12:
+ time = 367033
+ flags = 67108864
+ data = length 758, hash EAF337EE
+ sample 13:
+ time = 467133
+ flags = 0
+ data = length 11584, hash 13DE8D1D
+ sample 14:
+ time = 433766
+ flags = 67108864
+ data = length 2163, hash 1EB6F423
+ sample 15:
+ time = 533866
+ flags = 0
+ data = length 5286, hash 2FF4E597
+ sample 16:
+ time = 500500
+ flags = 67108864
+ data = length 1365, hash 2740F6BA
+ sample 17:
+ time = 600600
+ flags = 0
+ data = length 10250, hash 4C4C05E9
+ sample 18:
+ time = 567233
+ flags = 67108864
+ data = length 1203, hash 194F1FD6
+ sample 19:
+ time = 667333
+ flags = 0
+ data = length 7373, hash D00D482
+ sample 20:
+ time = 633966
+ flags = 67108864
+ data = length 1261, hash ED32D57D
+ sample 21:
+ time = 734066
+ flags = 0
+ data = length 6347, hash 2B6EB74D
+ sample 22:
+ time = 700700
+ flags = 67108864
+ data = length 833, hash 81BC5D34
+ sample 23:
+ time = 800800
+ flags = 0
+ data = length 5538, hash 9951853
+ sample 24:
+ time = 767433
+ flags = 67108864
+ data = length 657, hash 6EBAC33A
+ sample 25:
+ time = 867533
+ flags = 0
+ data = length 4109, hash 42BE3B2F
+ sample 26:
+ time = 834166
+ flags = 67108864
+ data = length 789, hash D766C08
+ sample 27:
+ time = 934266
+ flags = 0
+ data = length 3108, hash 1C48E56B
+ sample 28:
+ time = 900900
+ flags = 67108864
+ data = length 541, hash B429D47
+ sample 29:
+ time = 967633
+ flags = 536870912
+ data = length 3010, hash 1FC94085
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..c8a4531bd3
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/bt601.mov.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,338 @@
+seekMap:
+ isSeekable = true
+ duration = 1020100
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(510050) = [[timeUs=0, position=36]]
+ getPosition(1020100) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 9294
+ sample count = 43
+ format 0:
+ peakBitrate = 200000
+ id = 1
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 536870913
+ data = length 235, hash 999477F6
+track 1:
+ total output bytes = 130926
+ sample count = 30
+ format 0:
+ id = 2
+ sampleMimeType = video/avc
+ codecs = avc1.4D001E
+ maxInputSize = 25345
+ maxNumReorderSamples = 16
+ width = 640
+ height = 428
+ frameRate = 29.408882
+ colorInfo:
+ colorSpace = 2
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3790610215, modification time=3790610215, timescale=30000]
+ initializationData:
+ data = length 19, hash D3863A4C
+ data = length 8, hash 9464788C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 25315, hash 4F94DFD9
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 2974, hash CE870018
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 520, hash 755D4D65
+ sample 3:
+ time = 133466
+ flags = 0
+ data = length 5849, hash 62ABA3A6
+ sample 4:
+ time = 100100
+ flags = 67108864
+ data = length 665, hash 5B3919F5
+ sample 5:
+ time = 200200
+ flags = 0
+ data = length 4934, hash EA186643
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 1006, hash 50307604
+ sample 7:
+ time = 266933
+ flags = 0
+ data = length 7081, hash B3F2E23A
+ sample 8:
+ time = 233566
+ flags = 67108864
+ data = length 635, hash B197BCDB
+ sample 9:
+ time = 333666
+ flags = 0
+ data = length 6589, hash C7FAA564
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 650, hash A3AFA416
+ sample 11:
+ time = 400400
+ flags = 0
+ data = length 8533, hash 4951EBBA
+ sample 12:
+ time = 367033
+ flags = 67108864
+ data = length 758, hash EAF337EE
+ sample 13:
+ time = 467133
+ flags = 0
+ data = length 11584, hash 13DE8D1D
+ sample 14:
+ time = 433766
+ flags = 67108864
+ data = length 2163, hash 1EB6F423
+ sample 15:
+ time = 533866
+ flags = 0
+ data = length 5286, hash 2FF4E597
+ sample 16:
+ time = 500500
+ flags = 67108864
+ data = length 1365, hash 2740F6BA
+ sample 17:
+ time = 600600
+ flags = 0
+ data = length 10250, hash 4C4C05E9
+ sample 18:
+ time = 567233
+ flags = 67108864
+ data = length 1203, hash 194F1FD6
+ sample 19:
+ time = 667333
+ flags = 0
+ data = length 7373, hash D00D482
+ sample 20:
+ time = 633966
+ flags = 67108864
+ data = length 1261, hash ED32D57D
+ sample 21:
+ time = 734066
+ flags = 0
+ data = length 6347, hash 2B6EB74D
+ sample 22:
+ time = 700700
+ flags = 67108864
+ data = length 833, hash 81BC5D34
+ sample 23:
+ time = 800800
+ flags = 0
+ data = length 5538, hash 9951853
+ sample 24:
+ time = 767433
+ flags = 67108864
+ data = length 657, hash 6EBAC33A
+ sample 25:
+ time = 867533
+ flags = 0
+ data = length 4109, hash 42BE3B2F
+ sample 26:
+ time = 834166
+ flags = 67108864
+ data = length 789, hash D766C08
+ sample 27:
+ time = 934266
+ flags = 0
+ data = length 3108, hash 1C48E56B
+ sample 28:
+ time = 900900
+ flags = 67108864
+ data = length 541, hash B429D47
+ sample 29:
+ time = 967633
+ flags = 536870912
+ data = length 3010, hash 1FC94085
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..f8c5979324
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,541 @@
+seekMap:
+ isSeekable = true
+ duration = 2100700
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44], [timeUs=233244, position=350644]]
+ getPosition(1050350) = [[timeUs=933666, position=1392823], [timeUs=1167088, position=1734831]]
+ getPosition(2100700) = [[timeUs=2058988, position=3097428]]
+numberOfTracks = 4
+track 0:
+ total output bytes = 3306897
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 229249
+ maxNumReorderSamples = 0
+ width = 1024
+ height = 768
+ frameRate = 27.609846
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash C508E2F1
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 175795, hash 92D88322
+ sample 1:
+ time = 33344
+ flags = 0
+ data = length 32825, hash 9E4BBDC9
+ sample 2:
+ time = 66688
+ flags = 0
+ data = length 30605, hash E792B0E1
+ sample 3:
+ time = 100033
+ flags = 0
+ data = length 30292, hash C7D67400
+ sample 4:
+ time = 133377
+ flags = 0
+ data = length 25928, hash EF6730FC
+ sample 5:
+ time = 166722
+ flags = 0
+ data = length 23135, hash F7CCAB5
+ sample 6:
+ time = 200066
+ flags = 0
+ data = length 32020, hash C948881C
+ sample 7:
+ time = 233244
+ flags = 1
+ data = length 142480, hash 898726B
+ sample 8:
+ time = 266755
+ flags = 0
+ data = length 28601, hash 158799EE
+ sample 9:
+ time = 300100
+ flags = 0
+ data = length 32815, hash 53ABACC0
+ sample 10:
+ time = 333444
+ flags = 0
+ data = length 40718, hash 24B50BC1
+ sample 11:
+ time = 366800
+ flags = 0
+ data = length 29088, hash D18E00AE
+ sample 12:
+ time = 400144
+ flags = 0
+ data = length 40733, hash 79770CBA
+ sample 13:
+ time = 433488
+ flags = 0
+ data = length 36545, hash 27A8297C
+ sample 14:
+ time = 466833
+ flags = 1
+ data = length 154398, hash 9B9013C6
+ sample 15:
+ time = 500177
+ flags = 0
+ data = length 27135, hash 36386C42
+ sample 16:
+ time = 533544
+ flags = 0
+ data = length 38747, hash 85D6F019
+ sample 17:
+ time = 566866
+ flags = 0
+ data = length 29503, hash 9D1B916B
+ sample 18:
+ time = 600211
+ flags = 0
+ data = length 32772, hash D4AB8735
+ sample 19:
+ time = 633555
+ flags = 0
+ data = length 30388, hash ED862EDE
+ sample 20:
+ time = 666900
+ flags = 0
+ data = length 35989, hash 4035491B
+ sample 21:
+ time = 700244
+ flags = 1
+ data = length 142845, hash EC0DF71D
+ sample 22:
+ time = 733600
+ flags = 0
+ data = length 28259, hash 8B59F0F6
+ sample 23:
+ time = 766944
+ flags = 0
+ data = length 40516, hash E8C6D575
+ sample 24:
+ time = 800288
+ flags = 0
+ data = length 38467, hash 4151BB14
+ sample 25:
+ time = 833633
+ flags = 0
+ data = length 27748, hash 2DB01A39
+ sample 26:
+ time = 866977
+ flags = 0
+ data = length 36956, hash 377A5C6C
+ sample 27:
+ time = 900300
+ flags = 0
+ data = length 27476, hash DA07CDCA
+ sample 28:
+ time = 933666
+ flags = 1
+ data = length 143200, hash E9E09671
+ sample 29:
+ time = 967011
+ flags = 0
+ data = length 29122, hash 99DDD644
+ sample 30:
+ time = 1000355
+ flags = 0
+ data = length 39280, hash DC2510AE
+ sample 31:
+ time = 1033700
+ flags = 0
+ data = length 38631, hash AEB965F7
+ sample 32:
+ time = 1067044
+ flags = 0
+ data = length 27422, hash 84AFA85C
+ sample 33:
+ time = 1100388
+ flags = 0
+ data = length 39360, hash 467C7E6E
+ sample 34:
+ time = 1133744
+ flags = 0
+ data = length 24993, hash F10D6C03
+ sample 35:
+ time = 1167088
+ flags = 1
+ data = length 154591, hash 62D2311C
+ sample 36:
+ time = 1200433
+ flags = 0
+ data = length 27223, hash 6733CC93
+ sample 37:
+ time = 1233777
+ flags = 0
+ data = length 27659, hash BCE01964
+ sample 38:
+ time = 1267077
+ flags = 0
+ data = length 39427, hash 4260E860
+ sample 39:
+ time = 1300422
+ flags = 0
+ data = length 27698, hash 8D6087A2
+ sample 40:
+ time = 1333811
+ flags = 0
+ data = length 40089, hash 61C9B394
+ sample 41:
+ time = 1367222
+ flags = 0
+ data = length 27601, hash 7B3D87E8
+ sample 42:
+ time = 1408833
+ flags = 1
+ data = length 219559, hash 881031BA
+ sample 43:
+ time = 1450511
+ flags = 0
+ data = length 30027, hash 7BBBF608
+ sample 44:
+ time = 1492188
+ flags = 0
+ data = length 41623, hash 3A6D4A48
+ sample 45:
+ time = 1600544
+ flags = 0
+ data = length 114695, hash D61EAD29
+ sample 46:
+ time = 1642222
+ flags = 0
+ data = length 82113, hash DA0FCB1F
+ sample 47:
+ time = 1683900
+ flags = 0
+ data = length 59998, hash 72EE3D06
+ sample 48:
+ time = 1725577
+ flags = 0
+ data = length 37475, hash FA6E62C4
+ sample 49:
+ time = 1767244
+ flags = 1
+ data = length 229219, hash 37A06706
+ sample 50:
+ time = 1808922
+ flags = 0
+ data = length 24001, hash 3DA0DA79
+ sample 51:
+ time = 1850533
+ flags = 0
+ data = length 45931, hash 6B88632C
+ sample 52:
+ time = 1892211
+ flags = 0
+ data = length 35838, hash 3DC6FDE6
+ sample 53:
+ time = 1933955
+ flags = 0
+ data = length 36848, hash 6F9986EC
+ sample 54:
+ time = 1975633
+ flags = 0
+ data = length 29700, hash CF094404
+ sample 55:
+ time = 2017311
+ flags = 0
+ data = length 31282, hash 57AABAAA
+ sample 56:
+ time = 2058988
+ flags = 1
+ data = length 171963, hash 7115AF3D
+ sample 57:
+ time = 2100700
+ flags = 536870912
+ data = length 37550, hash F7D849CB
+track 1:
+ total output bytes = 151315
+ sample count = 1
+ format 0:
+ id = 2
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 151345
+ maxNumReorderSamples = 0
+ width = 2048
+ height = 1536
+ frameRate = 2.142245
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash 1924973
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 151315, hash FBF6FF68
+track 2:
+ total output bytes = 26100
+ sample count = 58
+ format 0:
+ id = 3
+ sampleMimeType = application/microvideo-meta-stream
+ maxInputSize = 480
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 450, hash 1DB4E43
+ sample 1:
+ time = 33344
+ flags = 1
+ data = length 450, hash 31CF99A9
+ sample 2:
+ time = 66688
+ flags = 1
+ data = length 450, hash D87147C1
+ sample 3:
+ time = 100033
+ flags = 1
+ data = length 450, hash BCAD65B6
+ sample 4:
+ time = 133377
+ flags = 1
+ data = length 450, hash E974F0DE
+ sample 5:
+ time = 166722
+ flags = 1
+ data = length 450, hash 54408FE5
+ sample 6:
+ time = 200066
+ flags = 1
+ data = length 450, hash FD24CFEE
+ sample 7:
+ time = 233244
+ flags = 1
+ data = length 450, hash D7ED735E
+ sample 8:
+ time = 266755
+ flags = 1
+ data = length 450, hash DD5FCC6A
+ sample 9:
+ time = 300100
+ flags = 1
+ data = length 450, hash F62B92C4
+ sample 10:
+ time = 333444
+ flags = 1
+ data = length 450, hash 415E310C
+ sample 11:
+ time = 366800
+ flags = 1
+ data = length 450, hash FAAAA664
+ sample 12:
+ time = 400144
+ flags = 1
+ data = length 450, hash 1E5F362B
+ sample 13:
+ time = 433488
+ flags = 1
+ data = length 450, hash 78F48896
+ sample 14:
+ time = 466833
+ flags = 1
+ data = length 450, hash 2F7E6B66
+ sample 15:
+ time = 500177
+ flags = 1
+ data = length 450, hash AFB7A450
+ sample 16:
+ time = 533544
+ flags = 1
+ data = length 450, hash F545669
+ sample 17:
+ time = 566866
+ flags = 1
+ data = length 450, hash 2C36B457
+ sample 18:
+ time = 600211
+ flags = 1
+ data = length 450, hash D0CFA2B9
+ sample 19:
+ time = 633555
+ flags = 1
+ data = length 450, hash D11F3EC8
+ sample 20:
+ time = 666900
+ flags = 1
+ data = length 450, hash 83D97504
+ sample 21:
+ time = 700244
+ flags = 1
+ data = length 450, hash 950768E5
+ sample 22:
+ time = 733600
+ flags = 1
+ data = length 450, hash C038C795
+ sample 23:
+ time = 766944
+ flags = 1
+ data = length 450, hash 9B615963
+ sample 24:
+ time = 800288
+ flags = 1
+ data = length 450, hash 72878EC6
+ sample 25:
+ time = 833633
+ flags = 1
+ data = length 450, hash CB2574D4
+ sample 26:
+ time = 866977
+ flags = 1
+ data = length 450, hash 55D66158
+ sample 27:
+ time = 900300
+ flags = 1
+ data = length 450, hash C1504C6A
+ sample 28:
+ time = 933666
+ flags = 1
+ data = length 450, hash C014FCF2
+ sample 29:
+ time = 967011
+ flags = 1
+ data = length 450, hash 2CE538CD
+ sample 30:
+ time = 1000355
+ flags = 1
+ data = length 450, hash 86F37F2D
+ sample 31:
+ time = 1033700
+ flags = 1
+ data = length 450, hash 441CCCF5
+ sample 32:
+ time = 1067044
+ flags = 1
+ data = length 450, hash 1B99C695
+ sample 33:
+ time = 1100388
+ flags = 1
+ data = length 450, hash 82E3FA65
+ sample 34:
+ time = 1133744
+ flags = 1
+ data = length 450, hash F0056647
+ sample 35:
+ time = 1167088
+ flags = 1
+ data = length 450, hash B6912F16
+ sample 36:
+ time = 1200433
+ flags = 1
+ data = length 450, hash DB1A66E7
+ sample 37:
+ time = 1233777
+ flags = 1
+ data = length 450, hash C221124
+ sample 38:
+ time = 1267077
+ flags = 1
+ data = length 450, hash FFB9FD50
+ sample 39:
+ time = 1300422
+ flags = 1
+ data = length 450, hash 3B24BF6A
+ sample 40:
+ time = 1333811
+ flags = 1
+ data = length 450, hash 7BFFD1E2
+ sample 41:
+ time = 1367222
+ flags = 1
+ data = length 450, hash 5D066E86
+ sample 42:
+ time = 1408833
+ flags = 1
+ data = length 450, hash C778961C
+ sample 43:
+ time = 1450511
+ flags = 1
+ data = length 450, hash 9BAFB769
+ sample 44:
+ time = 1492188
+ flags = 1
+ data = length 450, hash D75C7D3B
+ sample 45:
+ time = 1600544
+ flags = 1
+ data = length 450, hash 99567E6F
+ sample 46:
+ time = 1642222
+ flags = 1
+ data = length 450, hash 91D53D15
+ sample 47:
+ time = 1683900
+ flags = 1
+ data = length 450, hash AD0DC631
+ sample 48:
+ time = 1725577
+ flags = 1
+ data = length 450, hash 6DDB52D
+ sample 49:
+ time = 1767244
+ flags = 1
+ data = length 450, hash 563846ED
+ sample 50:
+ time = 1808922
+ flags = 1
+ data = length 450, hash E4BF4849
+ sample 51:
+ time = 1850533
+ flags = 1
+ data = length 450, hash 7A5646D3
+ sample 52:
+ time = 1892211
+ flags = 1
+ data = length 450, hash 59B2529E
+ sample 53:
+ time = 1933955
+ flags = 1
+ data = length 450, hash 8EEAF538
+ sample 54:
+ time = 1975633
+ flags = 1
+ data = length 450, hash 1D6CFB63
+ sample 55:
+ time = 2017311
+ flags = 1
+ data = length 450, hash 9D344846
+ sample 56:
+ time = 2058988
+ flags = 1
+ data = length 450, hash D07CD09D
+ sample 57:
+ time = 2100700
+ flags = 536870913
+ data = length 450, hash B6FD8734
+track 3:
+ total output bytes = 59
+ sample count = 1
+ format 0:
+ id = 4
+ sampleMimeType = application/motionphoto-image-meta
+ maxInputSize = 89
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 59, hash 869099E5
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..1070a80f88
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,405 @@
+seekMap:
+ isSeekable = true
+ duration = 2100700
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44], [timeUs=233244, position=350644]]
+ getPosition(1050350) = [[timeUs=933666, position=1392823], [timeUs=1167088, position=1734831]]
+ getPosition(2100700) = [[timeUs=2058988, position=3097428]]
+numberOfTracks = 4
+track 0:
+ total output bytes = 2605317
+ sample count = 44
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 229249
+ maxNumReorderSamples = 0
+ width = 1024
+ height = 768
+ frameRate = 27.609846
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash C508E2F1
+ sample 0:
+ time = 466833
+ flags = 1
+ data = length 154398, hash 9B9013C6
+ sample 1:
+ time = 500177
+ flags = 0
+ data = length 27135, hash 36386C42
+ sample 2:
+ time = 533544
+ flags = 0
+ data = length 38747, hash 85D6F019
+ sample 3:
+ time = 566866
+ flags = 0
+ data = length 29503, hash 9D1B916B
+ sample 4:
+ time = 600211
+ flags = 0
+ data = length 32772, hash D4AB8735
+ sample 5:
+ time = 633555
+ flags = 0
+ data = length 30388, hash ED862EDE
+ sample 6:
+ time = 666900
+ flags = 0
+ data = length 35989, hash 4035491B
+ sample 7:
+ time = 700244
+ flags = 1
+ data = length 142845, hash EC0DF71D
+ sample 8:
+ time = 733600
+ flags = 0
+ data = length 28259, hash 8B59F0F6
+ sample 9:
+ time = 766944
+ flags = 0
+ data = length 40516, hash E8C6D575
+ sample 10:
+ time = 800288
+ flags = 0
+ data = length 38467, hash 4151BB14
+ sample 11:
+ time = 833633
+ flags = 0
+ data = length 27748, hash 2DB01A39
+ sample 12:
+ time = 866977
+ flags = 0
+ data = length 36956, hash 377A5C6C
+ sample 13:
+ time = 900300
+ flags = 0
+ data = length 27476, hash DA07CDCA
+ sample 14:
+ time = 933666
+ flags = 1
+ data = length 143200, hash E9E09671
+ sample 15:
+ time = 967011
+ flags = 0
+ data = length 29122, hash 99DDD644
+ sample 16:
+ time = 1000355
+ flags = 0
+ data = length 39280, hash DC2510AE
+ sample 17:
+ time = 1033700
+ flags = 0
+ data = length 38631, hash AEB965F7
+ sample 18:
+ time = 1067044
+ flags = 0
+ data = length 27422, hash 84AFA85C
+ sample 19:
+ time = 1100388
+ flags = 0
+ data = length 39360, hash 467C7E6E
+ sample 20:
+ time = 1133744
+ flags = 0
+ data = length 24993, hash F10D6C03
+ sample 21:
+ time = 1167088
+ flags = 1
+ data = length 154591, hash 62D2311C
+ sample 22:
+ time = 1200433
+ flags = 0
+ data = length 27223, hash 6733CC93
+ sample 23:
+ time = 1233777
+ flags = 0
+ data = length 27659, hash BCE01964
+ sample 24:
+ time = 1267077
+ flags = 0
+ data = length 39427, hash 4260E860
+ sample 25:
+ time = 1300422
+ flags = 0
+ data = length 27698, hash 8D6087A2
+ sample 26:
+ time = 1333811
+ flags = 0
+ data = length 40089, hash 61C9B394
+ sample 27:
+ time = 1367222
+ flags = 0
+ data = length 27601, hash 7B3D87E8
+ sample 28:
+ time = 1408833
+ flags = 1
+ data = length 219559, hash 881031BA
+ sample 29:
+ time = 1450511
+ flags = 0
+ data = length 30027, hash 7BBBF608
+ sample 30:
+ time = 1492188
+ flags = 0
+ data = length 41623, hash 3A6D4A48
+ sample 31:
+ time = 1600544
+ flags = 0
+ data = length 114695, hash D61EAD29
+ sample 32:
+ time = 1642222
+ flags = 0
+ data = length 82113, hash DA0FCB1F
+ sample 33:
+ time = 1683900
+ flags = 0
+ data = length 59998, hash 72EE3D06
+ sample 34:
+ time = 1725577
+ flags = 0
+ data = length 37475, hash FA6E62C4
+ sample 35:
+ time = 1767244
+ flags = 1
+ data = length 229219, hash 37A06706
+ sample 36:
+ time = 1808922
+ flags = 0
+ data = length 24001, hash 3DA0DA79
+ sample 37:
+ time = 1850533
+ flags = 0
+ data = length 45931, hash 6B88632C
+ sample 38:
+ time = 1892211
+ flags = 0
+ data = length 35838, hash 3DC6FDE6
+ sample 39:
+ time = 1933955
+ flags = 0
+ data = length 36848, hash 6F9986EC
+ sample 40:
+ time = 1975633
+ flags = 0
+ data = length 29700, hash CF094404
+ sample 41:
+ time = 2017311
+ flags = 0
+ data = length 31282, hash 57AABAAA
+ sample 42:
+ time = 2058988
+ flags = 1
+ data = length 171963, hash 7115AF3D
+ sample 43:
+ time = 2100700
+ flags = 536870912
+ data = length 37550, hash F7D849CB
+track 1:
+ total output bytes = 151315
+ sample count = 1
+ format 0:
+ id = 2
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 151345
+ maxNumReorderSamples = 0
+ width = 2048
+ height = 1536
+ frameRate = 2.142245
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash 1924973
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 151315, hash FBF6FF68
+track 2:
+ total output bytes = 17100
+ sample count = 38
+ format 0:
+ id = 3
+ sampleMimeType = application/microvideo-meta-stream
+ maxInputSize = 480
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 666900
+ flags = 1
+ data = length 450, hash 83D97504
+ sample 1:
+ time = 700244
+ flags = 1
+ data = length 450, hash 950768E5
+ sample 2:
+ time = 733600
+ flags = 1
+ data = length 450, hash C038C795
+ sample 3:
+ time = 766944
+ flags = 1
+ data = length 450, hash 9B615963
+ sample 4:
+ time = 800288
+ flags = 1
+ data = length 450, hash 72878EC6
+ sample 5:
+ time = 833633
+ flags = 1
+ data = length 450, hash CB2574D4
+ sample 6:
+ time = 866977
+ flags = 1
+ data = length 450, hash 55D66158
+ sample 7:
+ time = 900300
+ flags = 1
+ data = length 450, hash C1504C6A
+ sample 8:
+ time = 933666
+ flags = 1
+ data = length 450, hash C014FCF2
+ sample 9:
+ time = 967011
+ flags = 1
+ data = length 450, hash 2CE538CD
+ sample 10:
+ time = 1000355
+ flags = 1
+ data = length 450, hash 86F37F2D
+ sample 11:
+ time = 1033700
+ flags = 1
+ data = length 450, hash 441CCCF5
+ sample 12:
+ time = 1067044
+ flags = 1
+ data = length 450, hash 1B99C695
+ sample 13:
+ time = 1100388
+ flags = 1
+ data = length 450, hash 82E3FA65
+ sample 14:
+ time = 1133744
+ flags = 1
+ data = length 450, hash F0056647
+ sample 15:
+ time = 1167088
+ flags = 1
+ data = length 450, hash B6912F16
+ sample 16:
+ time = 1200433
+ flags = 1
+ data = length 450, hash DB1A66E7
+ sample 17:
+ time = 1233777
+ flags = 1
+ data = length 450, hash C221124
+ sample 18:
+ time = 1267077
+ flags = 1
+ data = length 450, hash FFB9FD50
+ sample 19:
+ time = 1300422
+ flags = 1
+ data = length 450, hash 3B24BF6A
+ sample 20:
+ time = 1333811
+ flags = 1
+ data = length 450, hash 7BFFD1E2
+ sample 21:
+ time = 1367222
+ flags = 1
+ data = length 450, hash 5D066E86
+ sample 22:
+ time = 1408833
+ flags = 1
+ data = length 450, hash C778961C
+ sample 23:
+ time = 1450511
+ flags = 1
+ data = length 450, hash 9BAFB769
+ sample 24:
+ time = 1492188
+ flags = 1
+ data = length 450, hash D75C7D3B
+ sample 25:
+ time = 1600544
+ flags = 1
+ data = length 450, hash 99567E6F
+ sample 26:
+ time = 1642222
+ flags = 1
+ data = length 450, hash 91D53D15
+ sample 27:
+ time = 1683900
+ flags = 1
+ data = length 450, hash AD0DC631
+ sample 28:
+ time = 1725577
+ flags = 1
+ data = length 450, hash 6DDB52D
+ sample 29:
+ time = 1767244
+ flags = 1
+ data = length 450, hash 563846ED
+ sample 30:
+ time = 1808922
+ flags = 1
+ data = length 450, hash E4BF4849
+ sample 31:
+ time = 1850533
+ flags = 1
+ data = length 450, hash 7A5646D3
+ sample 32:
+ time = 1892211
+ flags = 1
+ data = length 450, hash 59B2529E
+ sample 33:
+ time = 1933955
+ flags = 1
+ data = length 450, hash 8EEAF538
+ sample 34:
+ time = 1975633
+ flags = 1
+ data = length 450, hash 1D6CFB63
+ sample 35:
+ time = 2017311
+ flags = 1
+ data = length 450, hash 9D344846
+ sample 36:
+ time = 2058988
+ flags = 1
+ data = length 450, hash D07CD09D
+ sample 37:
+ time = 2100700
+ flags = 536870913
+ data = length 450, hash B6FD8734
+track 3:
+ total output bytes = 59
+ sample count = 1
+ format 0:
+ id = 4
+ sampleMimeType = application/motionphoto-image-meta
+ maxInputSize = 89
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 59, hash 869099E5
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..b9ad711046
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,237 @@
+seekMap:
+ isSeekable = true
+ duration = 2100700
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44], [timeUs=233244, position=350644]]
+ getPosition(1050350) = [[timeUs=933666, position=1392823], [timeUs=1167088, position=1734831]]
+ getPosition(2100700) = [[timeUs=2058988, position=3097428]]
+numberOfTracks = 4
+track 0:
+ total output bytes = 1572110
+ sample count = 23
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 229249
+ maxNumReorderSamples = 0
+ width = 1024
+ height = 768
+ frameRate = 27.609846
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash C508E2F1
+ sample 0:
+ time = 1167088
+ flags = 1
+ data = length 154591, hash 62D2311C
+ sample 1:
+ time = 1200433
+ flags = 0
+ data = length 27223, hash 6733CC93
+ sample 2:
+ time = 1233777
+ flags = 0
+ data = length 27659, hash BCE01964
+ sample 3:
+ time = 1267077
+ flags = 0
+ data = length 39427, hash 4260E860
+ sample 4:
+ time = 1300422
+ flags = 0
+ data = length 27698, hash 8D6087A2
+ sample 5:
+ time = 1333811
+ flags = 0
+ data = length 40089, hash 61C9B394
+ sample 6:
+ time = 1367222
+ flags = 0
+ data = length 27601, hash 7B3D87E8
+ sample 7:
+ time = 1408833
+ flags = 1
+ data = length 219559, hash 881031BA
+ sample 8:
+ time = 1450511
+ flags = 0
+ data = length 30027, hash 7BBBF608
+ sample 9:
+ time = 1492188
+ flags = 0
+ data = length 41623, hash 3A6D4A48
+ sample 10:
+ time = 1600544
+ flags = 0
+ data = length 114695, hash D61EAD29
+ sample 11:
+ time = 1642222
+ flags = 0
+ data = length 82113, hash DA0FCB1F
+ sample 12:
+ time = 1683900
+ flags = 0
+ data = length 59998, hash 72EE3D06
+ sample 13:
+ time = 1725577
+ flags = 0
+ data = length 37475, hash FA6E62C4
+ sample 14:
+ time = 1767244
+ flags = 1
+ data = length 229219, hash 37A06706
+ sample 15:
+ time = 1808922
+ flags = 0
+ data = length 24001, hash 3DA0DA79
+ sample 16:
+ time = 1850533
+ flags = 0
+ data = length 45931, hash 6B88632C
+ sample 17:
+ time = 1892211
+ flags = 0
+ data = length 35838, hash 3DC6FDE6
+ sample 18:
+ time = 1933955
+ flags = 0
+ data = length 36848, hash 6F9986EC
+ sample 19:
+ time = 1975633
+ flags = 0
+ data = length 29700, hash CF094404
+ sample 20:
+ time = 2017311
+ flags = 0
+ data = length 31282, hash 57AABAAA
+ sample 21:
+ time = 2058988
+ flags = 1
+ data = length 171963, hash 7115AF3D
+ sample 22:
+ time = 2100700
+ flags = 536870912
+ data = length 37550, hash F7D849CB
+track 1:
+ total output bytes = 151315
+ sample count = 1
+ format 0:
+ id = 2
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 151345
+ maxNumReorderSamples = 0
+ width = 2048
+ height = 1536
+ frameRate = 2.142245
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash 1924973
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 151315, hash FBF6FF68
+track 2:
+ total output bytes = 7650
+ sample count = 17
+ format 0:
+ id = 3
+ sampleMimeType = application/microvideo-meta-stream
+ maxInputSize = 480
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 1367222
+ flags = 1
+ data = length 450, hash 5D066E86
+ sample 1:
+ time = 1408833
+ flags = 1
+ data = length 450, hash C778961C
+ sample 2:
+ time = 1450511
+ flags = 1
+ data = length 450, hash 9BAFB769
+ sample 3:
+ time = 1492188
+ flags = 1
+ data = length 450, hash D75C7D3B
+ sample 4:
+ time = 1600544
+ flags = 1
+ data = length 450, hash 99567E6F
+ sample 5:
+ time = 1642222
+ flags = 1
+ data = length 450, hash 91D53D15
+ sample 6:
+ time = 1683900
+ flags = 1
+ data = length 450, hash AD0DC631
+ sample 7:
+ time = 1725577
+ flags = 1
+ data = length 450, hash 6DDB52D
+ sample 8:
+ time = 1767244
+ flags = 1
+ data = length 450, hash 563846ED
+ sample 9:
+ time = 1808922
+ flags = 1
+ data = length 450, hash E4BF4849
+ sample 10:
+ time = 1850533
+ flags = 1
+ data = length 450, hash 7A5646D3
+ sample 11:
+ time = 1892211
+ flags = 1
+ data = length 450, hash 59B2529E
+ sample 12:
+ time = 1933955
+ flags = 1
+ data = length 450, hash 8EEAF538
+ sample 13:
+ time = 1975633
+ flags = 1
+ data = length 450, hash 1D6CFB63
+ sample 14:
+ time = 2017311
+ flags = 1
+ data = length 450, hash 9D344846
+ sample 15:
+ time = 2058988
+ flags = 1
+ data = length 450, hash D07CD09D
+ sample 16:
+ time = 2100700
+ flags = 536870913
+ data = length 450, hash B6FD8734
+track 3:
+ total output bytes = 59
+ sample count = 1
+ format 0:
+ id = 4
+ sampleMimeType = application/motionphoto-image-meta
+ maxInputSize = 89
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 59, hash 869099E5
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..00f6969971
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,89 @@
+seekMap:
+ isSeekable = true
+ duration = 2100700
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44], [timeUs=233244, position=350644]]
+ getPosition(1050350) = [[timeUs=933666, position=1392823], [timeUs=1167088, position=1734831]]
+ getPosition(2100700) = [[timeUs=2058988, position=3097428]]
+numberOfTracks = 4
+track 0:
+ total output bytes = 209513
+ sample count = 2
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 229249
+ maxNumReorderSamples = 0
+ width = 1024
+ height = 768
+ frameRate = 27.609846
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash C508E2F1
+ sample 0:
+ time = 2058988
+ flags = 1
+ data = length 171963, hash 7115AF3D
+ sample 1:
+ time = 2100700
+ flags = 536870912
+ data = length 37550, hash F7D849CB
+track 1:
+ total output bytes = 151315
+ sample count = 1
+ format 0:
+ id = 2
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 151345
+ maxNumReorderSamples = 0
+ width = 2048
+ height = 1536
+ frameRate = 2.142245
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash 1924973
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 151315, hash FBF6FF68
+track 2:
+ total output bytes = 450
+ sample count = 1
+ format 0:
+ id = 3
+ sampleMimeType = application/microvideo-meta-stream
+ maxInputSize = 480
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 2100700
+ flags = 536870913
+ data = length 450, hash B6FD8734
+track 3:
+ total output bytes = 59
+ sample count = 1
+ format 0:
+ id = 4
+ sampleMimeType = application/motionphoto-image-meta
+ maxInputSize = 89
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 59, hash 869099E5
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..f8c5979324
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,541 @@
+seekMap:
+ isSeekable = true
+ duration = 2100700
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44], [timeUs=233244, position=350644]]
+ getPosition(1050350) = [[timeUs=933666, position=1392823], [timeUs=1167088, position=1734831]]
+ getPosition(2100700) = [[timeUs=2058988, position=3097428]]
+numberOfTracks = 4
+track 0:
+ total output bytes = 3306897
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 229249
+ maxNumReorderSamples = 0
+ width = 1024
+ height = 768
+ frameRate = 27.609846
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash C508E2F1
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 175795, hash 92D88322
+ sample 1:
+ time = 33344
+ flags = 0
+ data = length 32825, hash 9E4BBDC9
+ sample 2:
+ time = 66688
+ flags = 0
+ data = length 30605, hash E792B0E1
+ sample 3:
+ time = 100033
+ flags = 0
+ data = length 30292, hash C7D67400
+ sample 4:
+ time = 133377
+ flags = 0
+ data = length 25928, hash EF6730FC
+ sample 5:
+ time = 166722
+ flags = 0
+ data = length 23135, hash F7CCAB5
+ sample 6:
+ time = 200066
+ flags = 0
+ data = length 32020, hash C948881C
+ sample 7:
+ time = 233244
+ flags = 1
+ data = length 142480, hash 898726B
+ sample 8:
+ time = 266755
+ flags = 0
+ data = length 28601, hash 158799EE
+ sample 9:
+ time = 300100
+ flags = 0
+ data = length 32815, hash 53ABACC0
+ sample 10:
+ time = 333444
+ flags = 0
+ data = length 40718, hash 24B50BC1
+ sample 11:
+ time = 366800
+ flags = 0
+ data = length 29088, hash D18E00AE
+ sample 12:
+ time = 400144
+ flags = 0
+ data = length 40733, hash 79770CBA
+ sample 13:
+ time = 433488
+ flags = 0
+ data = length 36545, hash 27A8297C
+ sample 14:
+ time = 466833
+ flags = 1
+ data = length 154398, hash 9B9013C6
+ sample 15:
+ time = 500177
+ flags = 0
+ data = length 27135, hash 36386C42
+ sample 16:
+ time = 533544
+ flags = 0
+ data = length 38747, hash 85D6F019
+ sample 17:
+ time = 566866
+ flags = 0
+ data = length 29503, hash 9D1B916B
+ sample 18:
+ time = 600211
+ flags = 0
+ data = length 32772, hash D4AB8735
+ sample 19:
+ time = 633555
+ flags = 0
+ data = length 30388, hash ED862EDE
+ sample 20:
+ time = 666900
+ flags = 0
+ data = length 35989, hash 4035491B
+ sample 21:
+ time = 700244
+ flags = 1
+ data = length 142845, hash EC0DF71D
+ sample 22:
+ time = 733600
+ flags = 0
+ data = length 28259, hash 8B59F0F6
+ sample 23:
+ time = 766944
+ flags = 0
+ data = length 40516, hash E8C6D575
+ sample 24:
+ time = 800288
+ flags = 0
+ data = length 38467, hash 4151BB14
+ sample 25:
+ time = 833633
+ flags = 0
+ data = length 27748, hash 2DB01A39
+ sample 26:
+ time = 866977
+ flags = 0
+ data = length 36956, hash 377A5C6C
+ sample 27:
+ time = 900300
+ flags = 0
+ data = length 27476, hash DA07CDCA
+ sample 28:
+ time = 933666
+ flags = 1
+ data = length 143200, hash E9E09671
+ sample 29:
+ time = 967011
+ flags = 0
+ data = length 29122, hash 99DDD644
+ sample 30:
+ time = 1000355
+ flags = 0
+ data = length 39280, hash DC2510AE
+ sample 31:
+ time = 1033700
+ flags = 0
+ data = length 38631, hash AEB965F7
+ sample 32:
+ time = 1067044
+ flags = 0
+ data = length 27422, hash 84AFA85C
+ sample 33:
+ time = 1100388
+ flags = 0
+ data = length 39360, hash 467C7E6E
+ sample 34:
+ time = 1133744
+ flags = 0
+ data = length 24993, hash F10D6C03
+ sample 35:
+ time = 1167088
+ flags = 1
+ data = length 154591, hash 62D2311C
+ sample 36:
+ time = 1200433
+ flags = 0
+ data = length 27223, hash 6733CC93
+ sample 37:
+ time = 1233777
+ flags = 0
+ data = length 27659, hash BCE01964
+ sample 38:
+ time = 1267077
+ flags = 0
+ data = length 39427, hash 4260E860
+ sample 39:
+ time = 1300422
+ flags = 0
+ data = length 27698, hash 8D6087A2
+ sample 40:
+ time = 1333811
+ flags = 0
+ data = length 40089, hash 61C9B394
+ sample 41:
+ time = 1367222
+ flags = 0
+ data = length 27601, hash 7B3D87E8
+ sample 42:
+ time = 1408833
+ flags = 1
+ data = length 219559, hash 881031BA
+ sample 43:
+ time = 1450511
+ flags = 0
+ data = length 30027, hash 7BBBF608
+ sample 44:
+ time = 1492188
+ flags = 0
+ data = length 41623, hash 3A6D4A48
+ sample 45:
+ time = 1600544
+ flags = 0
+ data = length 114695, hash D61EAD29
+ sample 46:
+ time = 1642222
+ flags = 0
+ data = length 82113, hash DA0FCB1F
+ sample 47:
+ time = 1683900
+ flags = 0
+ data = length 59998, hash 72EE3D06
+ sample 48:
+ time = 1725577
+ flags = 0
+ data = length 37475, hash FA6E62C4
+ sample 49:
+ time = 1767244
+ flags = 1
+ data = length 229219, hash 37A06706
+ sample 50:
+ time = 1808922
+ flags = 0
+ data = length 24001, hash 3DA0DA79
+ sample 51:
+ time = 1850533
+ flags = 0
+ data = length 45931, hash 6B88632C
+ sample 52:
+ time = 1892211
+ flags = 0
+ data = length 35838, hash 3DC6FDE6
+ sample 53:
+ time = 1933955
+ flags = 0
+ data = length 36848, hash 6F9986EC
+ sample 54:
+ time = 1975633
+ flags = 0
+ data = length 29700, hash CF094404
+ sample 55:
+ time = 2017311
+ flags = 0
+ data = length 31282, hash 57AABAAA
+ sample 56:
+ time = 2058988
+ flags = 1
+ data = length 171963, hash 7115AF3D
+ sample 57:
+ time = 2100700
+ flags = 536870912
+ data = length 37550, hash F7D849CB
+track 1:
+ total output bytes = 151315
+ sample count = 1
+ format 0:
+ id = 2
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L153
+ maxInputSize = 151345
+ maxNumReorderSamples = 0
+ width = 2048
+ height = 1536
+ frameRate = 2.142245
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 1
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ initializationData:
+ data = length 82, hash 1924973
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 151315, hash FBF6FF68
+track 2:
+ total output bytes = 26100
+ sample count = 58
+ format 0:
+ id = 3
+ sampleMimeType = application/microvideo-meta-stream
+ maxInputSize = 480
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 450, hash 1DB4E43
+ sample 1:
+ time = 33344
+ flags = 1
+ data = length 450, hash 31CF99A9
+ sample 2:
+ time = 66688
+ flags = 1
+ data = length 450, hash D87147C1
+ sample 3:
+ time = 100033
+ flags = 1
+ data = length 450, hash BCAD65B6
+ sample 4:
+ time = 133377
+ flags = 1
+ data = length 450, hash E974F0DE
+ sample 5:
+ time = 166722
+ flags = 1
+ data = length 450, hash 54408FE5
+ sample 6:
+ time = 200066
+ flags = 1
+ data = length 450, hash FD24CFEE
+ sample 7:
+ time = 233244
+ flags = 1
+ data = length 450, hash D7ED735E
+ sample 8:
+ time = 266755
+ flags = 1
+ data = length 450, hash DD5FCC6A
+ sample 9:
+ time = 300100
+ flags = 1
+ data = length 450, hash F62B92C4
+ sample 10:
+ time = 333444
+ flags = 1
+ data = length 450, hash 415E310C
+ sample 11:
+ time = 366800
+ flags = 1
+ data = length 450, hash FAAAA664
+ sample 12:
+ time = 400144
+ flags = 1
+ data = length 450, hash 1E5F362B
+ sample 13:
+ time = 433488
+ flags = 1
+ data = length 450, hash 78F48896
+ sample 14:
+ time = 466833
+ flags = 1
+ data = length 450, hash 2F7E6B66
+ sample 15:
+ time = 500177
+ flags = 1
+ data = length 450, hash AFB7A450
+ sample 16:
+ time = 533544
+ flags = 1
+ data = length 450, hash F545669
+ sample 17:
+ time = 566866
+ flags = 1
+ data = length 450, hash 2C36B457
+ sample 18:
+ time = 600211
+ flags = 1
+ data = length 450, hash D0CFA2B9
+ sample 19:
+ time = 633555
+ flags = 1
+ data = length 450, hash D11F3EC8
+ sample 20:
+ time = 666900
+ flags = 1
+ data = length 450, hash 83D97504
+ sample 21:
+ time = 700244
+ flags = 1
+ data = length 450, hash 950768E5
+ sample 22:
+ time = 733600
+ flags = 1
+ data = length 450, hash C038C795
+ sample 23:
+ time = 766944
+ flags = 1
+ data = length 450, hash 9B615963
+ sample 24:
+ time = 800288
+ flags = 1
+ data = length 450, hash 72878EC6
+ sample 25:
+ time = 833633
+ flags = 1
+ data = length 450, hash CB2574D4
+ sample 26:
+ time = 866977
+ flags = 1
+ data = length 450, hash 55D66158
+ sample 27:
+ time = 900300
+ flags = 1
+ data = length 450, hash C1504C6A
+ sample 28:
+ time = 933666
+ flags = 1
+ data = length 450, hash C014FCF2
+ sample 29:
+ time = 967011
+ flags = 1
+ data = length 450, hash 2CE538CD
+ sample 30:
+ time = 1000355
+ flags = 1
+ data = length 450, hash 86F37F2D
+ sample 31:
+ time = 1033700
+ flags = 1
+ data = length 450, hash 441CCCF5
+ sample 32:
+ time = 1067044
+ flags = 1
+ data = length 450, hash 1B99C695
+ sample 33:
+ time = 1100388
+ flags = 1
+ data = length 450, hash 82E3FA65
+ sample 34:
+ time = 1133744
+ flags = 1
+ data = length 450, hash F0056647
+ sample 35:
+ time = 1167088
+ flags = 1
+ data = length 450, hash B6912F16
+ sample 36:
+ time = 1200433
+ flags = 1
+ data = length 450, hash DB1A66E7
+ sample 37:
+ time = 1233777
+ flags = 1
+ data = length 450, hash C221124
+ sample 38:
+ time = 1267077
+ flags = 1
+ data = length 450, hash FFB9FD50
+ sample 39:
+ time = 1300422
+ flags = 1
+ data = length 450, hash 3B24BF6A
+ sample 40:
+ time = 1333811
+ flags = 1
+ data = length 450, hash 7BFFD1E2
+ sample 41:
+ time = 1367222
+ flags = 1
+ data = length 450, hash 5D066E86
+ sample 42:
+ time = 1408833
+ flags = 1
+ data = length 450, hash C778961C
+ sample 43:
+ time = 1450511
+ flags = 1
+ data = length 450, hash 9BAFB769
+ sample 44:
+ time = 1492188
+ flags = 1
+ data = length 450, hash D75C7D3B
+ sample 45:
+ time = 1600544
+ flags = 1
+ data = length 450, hash 99567E6F
+ sample 46:
+ time = 1642222
+ flags = 1
+ data = length 450, hash 91D53D15
+ sample 47:
+ time = 1683900
+ flags = 1
+ data = length 450, hash AD0DC631
+ sample 48:
+ time = 1725577
+ flags = 1
+ data = length 450, hash 6DDB52D
+ sample 49:
+ time = 1767244
+ flags = 1
+ data = length 450, hash 563846ED
+ sample 50:
+ time = 1808922
+ flags = 1
+ data = length 450, hash E4BF4849
+ sample 51:
+ time = 1850533
+ flags = 1
+ data = length 450, hash 7A5646D3
+ sample 52:
+ time = 1892211
+ flags = 1
+ data = length 450, hash 59B2529E
+ sample 53:
+ time = 1933955
+ flags = 1
+ data = length 450, hash 8EEAF538
+ sample 54:
+ time = 1975633
+ flags = 1
+ data = length 450, hash 1D6CFB63
+ sample 55:
+ time = 2017311
+ flags = 1
+ data = length 450, hash 9D344846
+ sample 56:
+ time = 2058988
+ flags = 1
+ data = length 450, hash D07CD09D
+ sample 57:
+ time = 2100700
+ flags = 536870913
+ data = length 450, hash B6FD8734
+track 3:
+ total output bytes = 59
+ sample count = 1
+ format 0:
+ id = 4
+ sampleMimeType = application/motionphoto-image-meta
+ maxInputSize = 89
+ metadata = entries=[Mp4Timestamp: creation time=3784612704, modification time=3784612704, timescale=10000]
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 59, hash 869099E5
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..a7b65a0378
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2269]]
+ getPosition(1) = [[timeUs=0, position=2269]]
+ getPosition(512000) = [[timeUs=0, position=2269]]
+ getPosition(1024000) = [[timeUs=0, position=2269]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..0d803227dc
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,295 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2269]]
+ getPosition(1) = [[timeUs=0, position=2269]]
+ getPosition(512000) = [[timeUs=0, position=2269]]
+ getPosition(1024000) = [[timeUs=0, position=2269]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 7464
+ sample count = 33
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 1:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 2:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 3:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 4:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 5:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 6:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 7:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 8:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 9:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 10:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 11:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 12:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 13:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 14:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 15:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 16:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 17:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 18:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 19:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 20:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 21:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 22:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 23:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 24:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 25:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 26:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 27:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 28:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 29:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 30:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 31:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 32:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..0cecae3015
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,235 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2269]]
+ getPosition(1) = [[timeUs=0, position=2269]]
+ getPosition(512000) = [[timeUs=0, position=2269]]
+ getPosition(1024000) = [[timeUs=0, position=2269]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 4019
+ sample count = 18
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 1:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 2:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 3:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 4:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 5:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 6:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 7:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 8:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 9:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 10:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 11:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 12:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 13:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 14:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 15:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 16:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 17:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..6e8ab838a0
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,175 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2269]]
+ getPosition(1) = [[timeUs=0, position=2269]]
+ getPosition(512000) = [[timeUs=0, position=2269]]
+ getPosition(1024000) = [[timeUs=0, position=2269]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 470
+ sample count = 3
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 1:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 2:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..a7b65a0378
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2269]]
+ getPosition(1) = [[timeUs=0, position=2269]]
+ getPosition(512000) = [[timeUs=0, position=2269]]
+ getPosition(1024000) = [[timeUs=0, position=2269]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..f6a71ba575
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,151 @@
+seekMap:
+ isSeekable = true
+ duration = 1001000
+ getPosition(0) = [[timeUs=0, position=1160]]
+ getPosition(1) = [[timeUs=0, position=1160]]
+ getPosition(500500) = [[timeUs=0, position=1160]]
+ getPosition(1001000) = [[timeUs=0, position=1160]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..f6a71ba575
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,151 @@
+seekMap:
+ isSeekable = true
+ duration = 1001000
+ getPosition(0) = [[timeUs=0, position=1160]]
+ getPosition(1) = [[timeUs=0, position=1160]]
+ getPosition(500500) = [[timeUs=0, position=1160]]
+ getPosition(1001000) = [[timeUs=0, position=1160]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..f6a71ba575
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,151 @@
+seekMap:
+ isSeekable = true
+ duration = 1001000
+ getPosition(0) = [[timeUs=0, position=1160]]
+ getPosition(1) = [[timeUs=0, position=1160]]
+ getPosition(500500) = [[timeUs=0, position=1160]]
+ getPosition(1001000) = [[timeUs=0, position=1160]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..f6a71ba575
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,151 @@
+seekMap:
+ isSeekable = true
+ duration = 1001000
+ getPosition(0) = [[timeUs=0, position=1160]]
+ getPosition(1) = [[timeUs=0, position=1160]]
+ getPosition(500500) = [[timeUs=0, position=1160]]
+ getPosition(1001000) = [[timeUs=0, position=1160]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..f6a71ba575
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,151 @@
+seekMap:
+ isSeekable = true
+ duration = 1001000
+ getPosition(0) = [[timeUs=0, position=1160]]
+ getPosition(1) = [[timeUs=0, position=1160]]
+ getPosition(500500) = [[timeUs=0, position=1160]]
+ getPosition(1001000) = [[timeUs=0, position=1160]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..f34f662d59
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 288333
+ getPosition(0) = [[timeUs=0, position=609]]
+ getPosition(1) = [[timeUs=1, position=609]]
+ getPosition(144166) = [[timeUs=144166, position=6753]]
+ getPosition(288333) = [[timeUs=288333, position=12897]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 13824
+ sample count = 9
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ maxInputSize = 1566
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1536, hash 7108D5C2
+ sample 1:
+ time = 32000
+ flags = 1
+ data = length 1536, hash 80BF3B34
+ sample 2:
+ time = 64000
+ flags = 1
+ data = length 1536, hash 5D09685
+ sample 3:
+ time = 96000
+ flags = 1
+ data = length 1536, hash A9A24E44
+ sample 4:
+ time = 128000
+ flags = 1
+ data = length 1536, hash 6F856273
+ sample 5:
+ time = 160000
+ flags = 1
+ data = length 1536, hash B1737D3C
+ sample 6:
+ time = 192000
+ flags = 1
+ data = length 1536, hash 98FDEB9D
+ sample 7:
+ time = 224000
+ flags = 1
+ data = length 1536, hash 99B9B943
+ sample 8:
+ time = 256000
+ flags = 536870913
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..1e4d5da55a
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,46 @@
+seekMap:
+ isSeekable = true
+ duration = 288333
+ getPosition(0) = [[timeUs=0, position=609]]
+ getPosition(1) = [[timeUs=1, position=609]]
+ getPosition(144166) = [[timeUs=144166, position=6753]]
+ getPosition(288333) = [[timeUs=288333, position=12897]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 9216
+ sample count = 6
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ maxInputSize = 1566
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
+ sample 0:
+ time = 96000
+ flags = 1
+ data = length 1536, hash A9A24E44
+ sample 1:
+ time = 128000
+ flags = 1
+ data = length 1536, hash 6F856273
+ sample 2:
+ time = 160000
+ flags = 1
+ data = length 1536, hash B1737D3C
+ sample 3:
+ time = 192000
+ flags = 1
+ data = length 1536, hash 98FDEB9D
+ sample 4:
+ time = 224000
+ flags = 1
+ data = length 1536, hash 99B9B943
+ sample 5:
+ time = 256000
+ flags = 536870913
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..447f2d9232
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,34 @@
+seekMap:
+ isSeekable = true
+ duration = 288333
+ getPosition(0) = [[timeUs=0, position=609]]
+ getPosition(1) = [[timeUs=1, position=609]]
+ getPosition(144166) = [[timeUs=144166, position=6753]]
+ getPosition(288333) = [[timeUs=288333, position=12897]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 4608
+ sample count = 3
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ maxInputSize = 1566
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
+ sample 0:
+ time = 192000
+ flags = 1
+ data = length 1536, hash 98FDEB9D
+ sample 1:
+ time = 224000
+ flags = 1
+ data = length 1536, hash 99B9B943
+ sample 2:
+ time = 256000
+ flags = 536870913
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..8bd9f28f42
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,26 @@
+seekMap:
+ isSeekable = true
+ duration = 288333
+ getPosition(0) = [[timeUs=0, position=609]]
+ getPosition(1) = [[timeUs=1, position=609]]
+ getPosition(144166) = [[timeUs=144166, position=6753]]
+ getPosition(288333) = [[timeUs=288333, position=12897]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 1536
+ sample count = 1
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ maxInputSize = 1566
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
+ sample 0:
+ time = 256000
+ flags = 536870913
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..f34f662d59
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 288333
+ getPosition(0) = [[timeUs=0, position=609]]
+ getPosition(1) = [[timeUs=1, position=609]]
+ getPosition(144166) = [[timeUs=144166, position=6753]]
+ getPosition(288333) = [[timeUs=288333, position=12897]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 13824
+ sample count = 9
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ maxInputSize = 1566
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1536, hash 7108D5C2
+ sample 1:
+ time = 32000
+ flags = 1
+ data = length 1536, hash 80BF3B34
+ sample 2:
+ time = 64000
+ flags = 1
+ data = length 1536, hash 5D09685
+ sample 3:
+ time = 96000
+ flags = 1
+ data = length 1536, hash A9A24E44
+ sample 4:
+ time = 128000
+ flags = 1
+ data = length 1536, hash 6F856273
+ sample 5:
+ time = 160000
+ flags = 1
+ data = length 1536, hash B1737D3C
+ sample 6:
+ time = 192000
+ flags = 1
+ data = length 1536, hash 98FDEB9D
+ sample 7:
+ time = 224000
+ flags = 1
+ data = length 1536, hash 99B9B943
+ sample 8:
+ time = 256000
+ flags = 536870913
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..d97448c547
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,96 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=758]]
+ getPosition(1) = [[timeUs=1, position=758]]
+ getPosition(380000) = [[timeUs=380000, position=758]]
+ getPosition(760000) = [[timeUs=760000, position=758]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7613
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ maxInputSize = 622
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 367, hash D2762FA
+ sample 1:
+ time = 40000
+ flags = 0
+ data = length 367, hash BDD3224A
+ sample 2:
+ time = 80000
+ flags = 0
+ data = length 367, hash 9302227B
+ sample 3:
+ time = 120000
+ flags = 0
+ data = length 367, hash 72996003
+ sample 4:
+ time = 160000
+ flags = 0
+ data = length 367, hash 88AE5A1B
+ sample 5:
+ time = 200000
+ flags = 0
+ data = length 367, hash E5346FE3
+ sample 6:
+ time = 240000
+ flags = 0
+ data = length 367, hash CE558362
+ sample 7:
+ time = 280000
+ flags = 0
+ data = length 367, hash 51AD3043
+ sample 8:
+ time = 320000
+ flags = 0
+ data = length 367, hash EB72E95B
+ sample 9:
+ time = 360000
+ flags = 0
+ data = length 367, hash 47F8FF23
+ sample 10:
+ time = 400000
+ flags = 0
+ data = length 367, hash 8133883D
+ sample 11:
+ time = 440000
+ flags = 0
+ data = length 495, hash E14BDFEE
+ sample 12:
+ time = 480000
+ flags = 0
+ data = length 520, hash FEE56928
+ sample 13:
+ time = 520000
+ flags = 0
+ data = length 599, hash 41F496C5
+ sample 14:
+ time = 560000
+ flags = 0
+ data = length 436, hash 76D6404
+ sample 15:
+ time = 600000
+ flags = 0
+ data = length 366, hash 56D49D4D
+ sample 16:
+ time = 640000
+ flags = 0
+ data = length 393, hash 822FC8
+ sample 17:
+ time = 680000
+ flags = 0
+ data = length 374, hash FA8AE217
+ sample 18:
+ time = 720000
+ flags = 536870912
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..d97448c547
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,96 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=758]]
+ getPosition(1) = [[timeUs=1, position=758]]
+ getPosition(380000) = [[timeUs=380000, position=758]]
+ getPosition(760000) = [[timeUs=760000, position=758]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7613
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ maxInputSize = 622
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 367, hash D2762FA
+ sample 1:
+ time = 40000
+ flags = 0
+ data = length 367, hash BDD3224A
+ sample 2:
+ time = 80000
+ flags = 0
+ data = length 367, hash 9302227B
+ sample 3:
+ time = 120000
+ flags = 0
+ data = length 367, hash 72996003
+ sample 4:
+ time = 160000
+ flags = 0
+ data = length 367, hash 88AE5A1B
+ sample 5:
+ time = 200000
+ flags = 0
+ data = length 367, hash E5346FE3
+ sample 6:
+ time = 240000
+ flags = 0
+ data = length 367, hash CE558362
+ sample 7:
+ time = 280000
+ flags = 0
+ data = length 367, hash 51AD3043
+ sample 8:
+ time = 320000
+ flags = 0
+ data = length 367, hash EB72E95B
+ sample 9:
+ time = 360000
+ flags = 0
+ data = length 367, hash 47F8FF23
+ sample 10:
+ time = 400000
+ flags = 0
+ data = length 367, hash 8133883D
+ sample 11:
+ time = 440000
+ flags = 0
+ data = length 495, hash E14BDFEE
+ sample 12:
+ time = 480000
+ flags = 0
+ data = length 520, hash FEE56928
+ sample 13:
+ time = 520000
+ flags = 0
+ data = length 599, hash 41F496C5
+ sample 14:
+ time = 560000
+ flags = 0
+ data = length 436, hash 76D6404
+ sample 15:
+ time = 600000
+ flags = 0
+ data = length 366, hash 56D49D4D
+ sample 16:
+ time = 640000
+ flags = 0
+ data = length 393, hash 822FC8
+ sample 17:
+ time = 680000
+ flags = 0
+ data = length 374, hash FA8AE217
+ sample 18:
+ time = 720000
+ flags = 536870912
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..d97448c547
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,96 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=758]]
+ getPosition(1) = [[timeUs=1, position=758]]
+ getPosition(380000) = [[timeUs=380000, position=758]]
+ getPosition(760000) = [[timeUs=760000, position=758]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7613
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ maxInputSize = 622
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 367, hash D2762FA
+ sample 1:
+ time = 40000
+ flags = 0
+ data = length 367, hash BDD3224A
+ sample 2:
+ time = 80000
+ flags = 0
+ data = length 367, hash 9302227B
+ sample 3:
+ time = 120000
+ flags = 0
+ data = length 367, hash 72996003
+ sample 4:
+ time = 160000
+ flags = 0
+ data = length 367, hash 88AE5A1B
+ sample 5:
+ time = 200000
+ flags = 0
+ data = length 367, hash E5346FE3
+ sample 6:
+ time = 240000
+ flags = 0
+ data = length 367, hash CE558362
+ sample 7:
+ time = 280000
+ flags = 0
+ data = length 367, hash 51AD3043
+ sample 8:
+ time = 320000
+ flags = 0
+ data = length 367, hash EB72E95B
+ sample 9:
+ time = 360000
+ flags = 0
+ data = length 367, hash 47F8FF23
+ sample 10:
+ time = 400000
+ flags = 0
+ data = length 367, hash 8133883D
+ sample 11:
+ time = 440000
+ flags = 0
+ data = length 495, hash E14BDFEE
+ sample 12:
+ time = 480000
+ flags = 0
+ data = length 520, hash FEE56928
+ sample 13:
+ time = 520000
+ flags = 0
+ data = length 599, hash 41F496C5
+ sample 14:
+ time = 560000
+ flags = 0
+ data = length 436, hash 76D6404
+ sample 15:
+ time = 600000
+ flags = 0
+ data = length 366, hash 56D49D4D
+ sample 16:
+ time = 640000
+ flags = 0
+ data = length 393, hash 822FC8
+ sample 17:
+ time = 680000
+ flags = 0
+ data = length 374, hash FA8AE217
+ sample 18:
+ time = 720000
+ flags = 536870912
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..d97448c547
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,96 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=758]]
+ getPosition(1) = [[timeUs=1, position=758]]
+ getPosition(380000) = [[timeUs=380000, position=758]]
+ getPosition(760000) = [[timeUs=760000, position=758]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7613
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ maxInputSize = 622
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 367, hash D2762FA
+ sample 1:
+ time = 40000
+ flags = 0
+ data = length 367, hash BDD3224A
+ sample 2:
+ time = 80000
+ flags = 0
+ data = length 367, hash 9302227B
+ sample 3:
+ time = 120000
+ flags = 0
+ data = length 367, hash 72996003
+ sample 4:
+ time = 160000
+ flags = 0
+ data = length 367, hash 88AE5A1B
+ sample 5:
+ time = 200000
+ flags = 0
+ data = length 367, hash E5346FE3
+ sample 6:
+ time = 240000
+ flags = 0
+ data = length 367, hash CE558362
+ sample 7:
+ time = 280000
+ flags = 0
+ data = length 367, hash 51AD3043
+ sample 8:
+ time = 320000
+ flags = 0
+ data = length 367, hash EB72E95B
+ sample 9:
+ time = 360000
+ flags = 0
+ data = length 367, hash 47F8FF23
+ sample 10:
+ time = 400000
+ flags = 0
+ data = length 367, hash 8133883D
+ sample 11:
+ time = 440000
+ flags = 0
+ data = length 495, hash E14BDFEE
+ sample 12:
+ time = 480000
+ flags = 0
+ data = length 520, hash FEE56928
+ sample 13:
+ time = 520000
+ flags = 0
+ data = length 599, hash 41F496C5
+ sample 14:
+ time = 560000
+ flags = 0
+ data = length 436, hash 76D6404
+ sample 15:
+ time = 600000
+ flags = 0
+ data = length 366, hash 56D49D4D
+ sample 16:
+ time = 640000
+ flags = 0
+ data = length 393, hash 822FC8
+ sample 17:
+ time = 680000
+ flags = 0
+ data = length 374, hash FA8AE217
+ sample 18:
+ time = 720000
+ flags = 536870912
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..d97448c547
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,96 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=758]]
+ getPosition(1) = [[timeUs=1, position=758]]
+ getPosition(380000) = [[timeUs=380000, position=758]]
+ getPosition(760000) = [[timeUs=760000, position=758]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7613
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ maxInputSize = 622
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 367, hash D2762FA
+ sample 1:
+ time = 40000
+ flags = 0
+ data = length 367, hash BDD3224A
+ sample 2:
+ time = 80000
+ flags = 0
+ data = length 367, hash 9302227B
+ sample 3:
+ time = 120000
+ flags = 0
+ data = length 367, hash 72996003
+ sample 4:
+ time = 160000
+ flags = 0
+ data = length 367, hash 88AE5A1B
+ sample 5:
+ time = 200000
+ flags = 0
+ data = length 367, hash E5346FE3
+ sample 6:
+ time = 240000
+ flags = 0
+ data = length 367, hash CE558362
+ sample 7:
+ time = 280000
+ flags = 0
+ data = length 367, hash 51AD3043
+ sample 8:
+ time = 320000
+ flags = 0
+ data = length 367, hash EB72E95B
+ sample 9:
+ time = 360000
+ flags = 0
+ data = length 367, hash 47F8FF23
+ sample 10:
+ time = 400000
+ flags = 0
+ data = length 367, hash 8133883D
+ sample 11:
+ time = 440000
+ flags = 0
+ data = length 495, hash E14BDFEE
+ sample 12:
+ time = 480000
+ flags = 0
+ data = length 520, hash FEE56928
+ sample 13:
+ time = 520000
+ flags = 0
+ data = length 599, hash 41F496C5
+ sample 14:
+ time = 560000
+ flags = 0
+ data = length 436, hash 76D6404
+ sample 15:
+ time = 600000
+ flags = 0
+ data = length 366, hash 56D49D4D
+ sample 16:
+ time = 640000
+ flags = 0
+ data = length 393, hash 822FC8
+ sample 17:
+ time = 680000
+ flags = 0
+ data = length 374, hash FA8AE217
+ sample 18:
+ time = 720000
+ flags = 536870912
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..f6efbfd190
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 526000
+ getPosition(0) = [[timeUs=0, position=1161]]
+ getPosition(1) = [[timeUs=0, position=1161]]
+ getPosition(263000) = [[timeUs=0, position=1161]]
+ getPosition(526000) = [[timeUs=0, position=1161]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 42320
+ sample count = 7
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640033
+ maxInputSize = 34686
+ maxNumReorderSamples = 0
+ width = 1280
+ height = 720
+ frameRate = 13.307984
+ colorInfo:
+ colorSpace = 2
+ colorRange = 1
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 22, hash 4CF81805
+ data = length 9, hash FBAFBA1C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 34656, hash D92B66FF
+ sample 1:
+ time = 325344
+ flags = 67108864
+ data = length 768, hash D0C3B229
+ sample 2:
+ time = 358677
+ flags = 0
+ data = length 1184, hash C598EFC0
+ sample 3:
+ time = 392011
+ flags = 67108864
+ data = length 576, hash 667AEC2C
+ sample 4:
+ time = 425344
+ flags = 0
+ data = length 1456, hash 430D1498
+ sample 5:
+ time = 458677
+ flags = 67108864
+ data = length 1280, hash 12267E0E
+ sample 6:
+ time = 492011
+ flags = 536870912
+ data = length 2400, hash FBCB42C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..f6efbfd190
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 526000
+ getPosition(0) = [[timeUs=0, position=1161]]
+ getPosition(1) = [[timeUs=0, position=1161]]
+ getPosition(263000) = [[timeUs=0, position=1161]]
+ getPosition(526000) = [[timeUs=0, position=1161]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 42320
+ sample count = 7
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640033
+ maxInputSize = 34686
+ maxNumReorderSamples = 0
+ width = 1280
+ height = 720
+ frameRate = 13.307984
+ colorInfo:
+ colorSpace = 2
+ colorRange = 1
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 22, hash 4CF81805
+ data = length 9, hash FBAFBA1C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 34656, hash D92B66FF
+ sample 1:
+ time = 325344
+ flags = 67108864
+ data = length 768, hash D0C3B229
+ sample 2:
+ time = 358677
+ flags = 0
+ data = length 1184, hash C598EFC0
+ sample 3:
+ time = 392011
+ flags = 67108864
+ data = length 576, hash 667AEC2C
+ sample 4:
+ time = 425344
+ flags = 0
+ data = length 1456, hash 430D1498
+ sample 5:
+ time = 458677
+ flags = 67108864
+ data = length 1280, hash 12267E0E
+ sample 6:
+ time = 492011
+ flags = 536870912
+ data = length 2400, hash FBCB42C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..f6efbfd190
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 526000
+ getPosition(0) = [[timeUs=0, position=1161]]
+ getPosition(1) = [[timeUs=0, position=1161]]
+ getPosition(263000) = [[timeUs=0, position=1161]]
+ getPosition(526000) = [[timeUs=0, position=1161]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 42320
+ sample count = 7
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640033
+ maxInputSize = 34686
+ maxNumReorderSamples = 0
+ width = 1280
+ height = 720
+ frameRate = 13.307984
+ colorInfo:
+ colorSpace = 2
+ colorRange = 1
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 22, hash 4CF81805
+ data = length 9, hash FBAFBA1C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 34656, hash D92B66FF
+ sample 1:
+ time = 325344
+ flags = 67108864
+ data = length 768, hash D0C3B229
+ sample 2:
+ time = 358677
+ flags = 0
+ data = length 1184, hash C598EFC0
+ sample 3:
+ time = 392011
+ flags = 67108864
+ data = length 576, hash 667AEC2C
+ sample 4:
+ time = 425344
+ flags = 0
+ data = length 1456, hash 430D1498
+ sample 5:
+ time = 458677
+ flags = 67108864
+ data = length 1280, hash 12267E0E
+ sample 6:
+ time = 492011
+ flags = 536870912
+ data = length 2400, hash FBCB42C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..f6efbfd190
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 526000
+ getPosition(0) = [[timeUs=0, position=1161]]
+ getPosition(1) = [[timeUs=0, position=1161]]
+ getPosition(263000) = [[timeUs=0, position=1161]]
+ getPosition(526000) = [[timeUs=0, position=1161]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 42320
+ sample count = 7
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640033
+ maxInputSize = 34686
+ maxNumReorderSamples = 0
+ width = 1280
+ height = 720
+ frameRate = 13.307984
+ colorInfo:
+ colorSpace = 2
+ colorRange = 1
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 22, hash 4CF81805
+ data = length 9, hash FBAFBA1C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 34656, hash D92B66FF
+ sample 1:
+ time = 325344
+ flags = 67108864
+ data = length 768, hash D0C3B229
+ sample 2:
+ time = 358677
+ flags = 0
+ data = length 1184, hash C598EFC0
+ sample 3:
+ time = 392011
+ flags = 67108864
+ data = length 576, hash 667AEC2C
+ sample 4:
+ time = 425344
+ flags = 0
+ data = length 1456, hash 430D1498
+ sample 5:
+ time = 458677
+ flags = 67108864
+ data = length 1280, hash 12267E0E
+ sample 6:
+ time = 492011
+ flags = 536870912
+ data = length 2400, hash FBCB42C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..f6efbfd190
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 526000
+ getPosition(0) = [[timeUs=0, position=1161]]
+ getPosition(1) = [[timeUs=0, position=1161]]
+ getPosition(263000) = [[timeUs=0, position=1161]]
+ getPosition(526000) = [[timeUs=0, position=1161]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 42320
+ sample count = 7
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640033
+ maxInputSize = 34686
+ maxNumReorderSamples = 0
+ width = 1280
+ height = 720
+ frameRate = 13.307984
+ colorInfo:
+ colorSpace = 2
+ colorRange = 1
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 22, hash 4CF81805
+ data = length 9, hash FBAFBA1C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 34656, hash D92B66FF
+ sample 1:
+ time = 325344
+ flags = 67108864
+ data = length 768, hash D0C3B229
+ sample 2:
+ time = 358677
+ flags = 0
+ data = length 1184, hash C598EFC0
+ sample 3:
+ time = 392011
+ flags = 67108864
+ data = length 576, hash 667AEC2C
+ sample 4:
+ time = 425344
+ flags = 0
+ data = length 1456, hash 430D1498
+ sample 5:
+ time = 458677
+ flags = 67108864
+ data = length 1280, hash 12267E0E
+ sample 6:
+ time = 492011
+ flags = 536870912
+ data = length 2400, hash FBCB42C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..b4d61e8eca
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,148 @@
+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
+ metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
+ 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/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..48af021b49
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,116 @@
+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
+ metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
+ 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/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..3dd9c397b2
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,84 @@
+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
+ metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
+ 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/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..c97a41a818
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,52 @@
+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
+ metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
+ 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/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..b4d61e8eca
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,148 @@
+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
+ metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
+ 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/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..85724d3d90
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,237 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=898]]
+ getPosition(1) = [[timeUs=1, position=898]]
+ getPosition(864000) = [[timeUs=864000, position=108898]]
+ getPosition(1728000) = [[timeUs=1728000, position=212898]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 216000
+ sample count = 54
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ maxInputSize = 4030
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 4000, hash BAEAFB2A
+ sample 1:
+ time = 32000
+ flags = 1
+ data = length 4000, hash E3C5EBF0
+ sample 2:
+ time = 64000
+ flags = 1
+ data = length 4000, hash 32E0F957
+ sample 3:
+ time = 96000
+ flags = 1
+ data = length 4000, hash 5354CC5D
+ sample 4:
+ time = 128000
+ flags = 1
+ data = length 4000, hash FF834906
+ sample 5:
+ time = 160000
+ flags = 1
+ data = length 4000, hash 6F571E61
+ sample 6:
+ time = 192000
+ flags = 1
+ data = length 4000, hash 5C931F6B
+ sample 7:
+ time = 224000
+ flags = 1
+ data = length 4000, hash B1FB2E57
+ sample 8:
+ time = 256000
+ flags = 1
+ data = length 4000, hash C71240EB
+ sample 9:
+ time = 288000
+ flags = 1
+ data = length 4000, hash C3E302EE
+ sample 10:
+ time = 320000
+ flags = 1
+ data = length 4000, hash 7994C27B
+ sample 11:
+ time = 352000
+ flags = 1
+ data = length 4000, hash 1ED4E6F3
+ sample 12:
+ time = 384000
+ flags = 1
+ data = length 4000, hash 1D5E6AAC
+ sample 13:
+ time = 416000
+ flags = 1
+ data = length 4000, hash 30058F51
+ sample 14:
+ time = 448000
+ flags = 1
+ data = length 4000, hash 15DD0E4A
+ sample 15:
+ time = 480000
+ flags = 1
+ data = length 4000, hash 37BE7C15
+ sample 16:
+ time = 512000
+ flags = 1
+ data = length 4000, hash 7CFDD34B
+ sample 17:
+ time = 544000
+ flags = 1
+ data = length 4000, hash 27F20D29
+ sample 18:
+ time = 576000
+ flags = 1
+ data = length 4000, hash 6F565894
+ sample 19:
+ time = 608000
+ flags = 1
+ data = length 4000, hash A6F07C4A
+ sample 20:
+ time = 640000
+ flags = 1
+ data = length 4000, hash 3A0CA15C
+ sample 21:
+ time = 672000
+ flags = 1
+ data = length 4000, hash DB365414
+ sample 22:
+ time = 704000
+ flags = 1
+ data = length 4000, hash 31E08469
+ sample 23:
+ time = 736000
+ flags = 1
+ data = length 4000, hash 315F5C28
+ sample 24:
+ time = 768000
+ flags = 1
+ data = length 4000, hash CC65DF80
+ sample 25:
+ time = 800000
+ flags = 1
+ data = length 4000, hash 503FB64C
+ sample 26:
+ time = 832000
+ flags = 1
+ data = length 4000, hash 817CF735
+ sample 27:
+ time = 864000
+ flags = 1
+ data = length 4000, hash 37391ADA
+ sample 28:
+ time = 896000
+ flags = 1
+ data = length 4000, hash 37391ADA
+ sample 29:
+ time = 928000
+ flags = 1
+ data = length 4000, hash 64DBF751
+ sample 30:
+ time = 960000
+ flags = 1
+ data = length 4000, hash 81AE828E
+ sample 31:
+ time = 992000
+ flags = 1
+ data = length 4000, hash 767D6C98
+ sample 32:
+ time = 1024000
+ flags = 1
+ data = length 4000, hash A5F6D4E
+ sample 33:
+ time = 1056000
+ flags = 1
+ data = length 4000, hash EABC6B0D
+ sample 34:
+ time = 1088000
+ flags = 1
+ data = length 4000, hash F47EF742
+ sample 35:
+ time = 1120000
+ flags = 1
+ data = length 4000, hash 9B2549DA
+ sample 36:
+ time = 1152000
+ flags = 1
+ data = length 4000, hash A12733C9
+ sample 37:
+ time = 1184000
+ flags = 1
+ data = length 4000, hash 95F62E99
+ sample 38:
+ time = 1216000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 39:
+ time = 1248000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 40:
+ time = 1280000
+ flags = 1
+ data = length 4000, hash 22C1A129
+ sample 41:
+ time = 1312000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 42:
+ time = 1344000
+ flags = 1
+ data = length 4000, hash 3782E8BB
+ sample 43:
+ time = 1376000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 44:
+ time = 1408000
+ flags = 1
+ data = length 4000, hash BDB3D129
+ sample 45:
+ time = 1440000
+ flags = 1
+ data = length 4000, hash F642A55
+ sample 46:
+ time = 1472000
+ flags = 1
+ data = length 4000, hash 32F259F4
+ sample 47:
+ time = 1504000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 48:
+ time = 1536000
+ flags = 1
+ data = length 4000, hash 57C98E1C
+ sample 49:
+ time = 1568000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 50:
+ time = 1600000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 51:
+ time = 1632000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 52:
+ time = 1664000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 53:
+ time = 1696000
+ flags = 536870913
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..4217a6a51b
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,165 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=898]]
+ getPosition(1) = [[timeUs=1, position=898]]
+ getPosition(864000) = [[timeUs=864000, position=108898]]
+ getPosition(1728000) = [[timeUs=1728000, position=212898]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 144000
+ sample count = 36
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ maxInputSize = 4030
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
+ sample 0:
+ time = 576000
+ flags = 1
+ data = length 4000, hash 6F565894
+ sample 1:
+ time = 608000
+ flags = 1
+ data = length 4000, hash A6F07C4A
+ sample 2:
+ time = 640000
+ flags = 1
+ data = length 4000, hash 3A0CA15C
+ sample 3:
+ time = 672000
+ flags = 1
+ data = length 4000, hash DB365414
+ sample 4:
+ time = 704000
+ flags = 1
+ data = length 4000, hash 31E08469
+ sample 5:
+ time = 736000
+ flags = 1
+ data = length 4000, hash 315F5C28
+ sample 6:
+ time = 768000
+ flags = 1
+ data = length 4000, hash CC65DF80
+ sample 7:
+ time = 800000
+ flags = 1
+ data = length 4000, hash 503FB64C
+ sample 8:
+ time = 832000
+ flags = 1
+ data = length 4000, hash 817CF735
+ sample 9:
+ time = 864000
+ flags = 1
+ data = length 4000, hash 37391ADA
+ sample 10:
+ time = 896000
+ flags = 1
+ data = length 4000, hash 37391ADA
+ sample 11:
+ time = 928000
+ flags = 1
+ data = length 4000, hash 64DBF751
+ sample 12:
+ time = 960000
+ flags = 1
+ data = length 4000, hash 81AE828E
+ sample 13:
+ time = 992000
+ flags = 1
+ data = length 4000, hash 767D6C98
+ sample 14:
+ time = 1024000
+ flags = 1
+ data = length 4000, hash A5F6D4E
+ sample 15:
+ time = 1056000
+ flags = 1
+ data = length 4000, hash EABC6B0D
+ sample 16:
+ time = 1088000
+ flags = 1
+ data = length 4000, hash F47EF742
+ sample 17:
+ time = 1120000
+ flags = 1
+ data = length 4000, hash 9B2549DA
+ sample 18:
+ time = 1152000
+ flags = 1
+ data = length 4000, hash A12733C9
+ sample 19:
+ time = 1184000
+ flags = 1
+ data = length 4000, hash 95F62E99
+ sample 20:
+ time = 1216000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 21:
+ time = 1248000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 22:
+ time = 1280000
+ flags = 1
+ data = length 4000, hash 22C1A129
+ sample 23:
+ time = 1312000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 24:
+ time = 1344000
+ flags = 1
+ data = length 4000, hash 3782E8BB
+ sample 25:
+ time = 1376000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 26:
+ time = 1408000
+ flags = 1
+ data = length 4000, hash BDB3D129
+ sample 27:
+ time = 1440000
+ flags = 1
+ data = length 4000, hash F642A55
+ sample 28:
+ time = 1472000
+ flags = 1
+ data = length 4000, hash 32F259F4
+ sample 29:
+ time = 1504000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 30:
+ time = 1536000
+ flags = 1
+ data = length 4000, hash 57C98E1C
+ sample 31:
+ time = 1568000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 32:
+ time = 1600000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 33:
+ time = 1632000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 34:
+ time = 1664000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 35:
+ time = 1696000
+ flags = 536870913
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..760cb3b450
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,93 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=898]]
+ getPosition(1) = [[timeUs=1, position=898]]
+ getPosition(864000) = [[timeUs=864000, position=108898]]
+ getPosition(1728000) = [[timeUs=1728000, position=212898]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 72000
+ sample count = 18
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ maxInputSize = 4030
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
+ sample 0:
+ time = 1152000
+ flags = 1
+ data = length 4000, hash A12733C9
+ sample 1:
+ time = 1184000
+ flags = 1
+ data = length 4000, hash 95F62E99
+ sample 2:
+ time = 1216000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 3:
+ time = 1248000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 4:
+ time = 1280000
+ flags = 1
+ data = length 4000, hash 22C1A129
+ sample 5:
+ time = 1312000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 6:
+ time = 1344000
+ flags = 1
+ data = length 4000, hash 3782E8BB
+ sample 7:
+ time = 1376000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 8:
+ time = 1408000
+ flags = 1
+ data = length 4000, hash BDB3D129
+ sample 9:
+ time = 1440000
+ flags = 1
+ data = length 4000, hash F642A55
+ sample 10:
+ time = 1472000
+ flags = 1
+ data = length 4000, hash 32F259F4
+ sample 11:
+ time = 1504000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 12:
+ time = 1536000
+ flags = 1
+ data = length 4000, hash 57C98E1C
+ sample 13:
+ time = 1568000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 14:
+ time = 1600000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 15:
+ time = 1632000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 16:
+ time = 1664000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 17:
+ time = 1696000
+ flags = 536870913
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..892e1a4288
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,25 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=898]]
+ getPosition(1) = [[timeUs=1, position=898]]
+ getPosition(864000) = [[timeUs=864000, position=108898]]
+ getPosition(1728000) = [[timeUs=1728000, position=212898]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 4000
+ sample count = 1
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ maxInputSize = 4030
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
+ sample 0:
+ time = 1696000
+ flags = 536870913
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..85724d3d90
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,237 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=898]]
+ getPosition(1) = [[timeUs=1, position=898]]
+ getPosition(864000) = [[timeUs=864000, position=108898]]
+ getPosition(1728000) = [[timeUs=1728000, position=212898]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 216000
+ sample count = 54
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ maxInputSize = 4030
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 4000, hash BAEAFB2A
+ sample 1:
+ time = 32000
+ flags = 1
+ data = length 4000, hash E3C5EBF0
+ sample 2:
+ time = 64000
+ flags = 1
+ data = length 4000, hash 32E0F957
+ sample 3:
+ time = 96000
+ flags = 1
+ data = length 4000, hash 5354CC5D
+ sample 4:
+ time = 128000
+ flags = 1
+ data = length 4000, hash FF834906
+ sample 5:
+ time = 160000
+ flags = 1
+ data = length 4000, hash 6F571E61
+ sample 6:
+ time = 192000
+ flags = 1
+ data = length 4000, hash 5C931F6B
+ sample 7:
+ time = 224000
+ flags = 1
+ data = length 4000, hash B1FB2E57
+ sample 8:
+ time = 256000
+ flags = 1
+ data = length 4000, hash C71240EB
+ sample 9:
+ time = 288000
+ flags = 1
+ data = length 4000, hash C3E302EE
+ sample 10:
+ time = 320000
+ flags = 1
+ data = length 4000, hash 7994C27B
+ sample 11:
+ time = 352000
+ flags = 1
+ data = length 4000, hash 1ED4E6F3
+ sample 12:
+ time = 384000
+ flags = 1
+ data = length 4000, hash 1D5E6AAC
+ sample 13:
+ time = 416000
+ flags = 1
+ data = length 4000, hash 30058F51
+ sample 14:
+ time = 448000
+ flags = 1
+ data = length 4000, hash 15DD0E4A
+ sample 15:
+ time = 480000
+ flags = 1
+ data = length 4000, hash 37BE7C15
+ sample 16:
+ time = 512000
+ flags = 1
+ data = length 4000, hash 7CFDD34B
+ sample 17:
+ time = 544000
+ flags = 1
+ data = length 4000, hash 27F20D29
+ sample 18:
+ time = 576000
+ flags = 1
+ data = length 4000, hash 6F565894
+ sample 19:
+ time = 608000
+ flags = 1
+ data = length 4000, hash A6F07C4A
+ sample 20:
+ time = 640000
+ flags = 1
+ data = length 4000, hash 3A0CA15C
+ sample 21:
+ time = 672000
+ flags = 1
+ data = length 4000, hash DB365414
+ sample 22:
+ time = 704000
+ flags = 1
+ data = length 4000, hash 31E08469
+ sample 23:
+ time = 736000
+ flags = 1
+ data = length 4000, hash 315F5C28
+ sample 24:
+ time = 768000
+ flags = 1
+ data = length 4000, hash CC65DF80
+ sample 25:
+ time = 800000
+ flags = 1
+ data = length 4000, hash 503FB64C
+ sample 26:
+ time = 832000
+ flags = 1
+ data = length 4000, hash 817CF735
+ sample 27:
+ time = 864000
+ flags = 1
+ data = length 4000, hash 37391ADA
+ sample 28:
+ time = 896000
+ flags = 1
+ data = length 4000, hash 37391ADA
+ sample 29:
+ time = 928000
+ flags = 1
+ data = length 4000, hash 64DBF751
+ sample 30:
+ time = 960000
+ flags = 1
+ data = length 4000, hash 81AE828E
+ sample 31:
+ time = 992000
+ flags = 1
+ data = length 4000, hash 767D6C98
+ sample 32:
+ time = 1024000
+ flags = 1
+ data = length 4000, hash A5F6D4E
+ sample 33:
+ time = 1056000
+ flags = 1
+ data = length 4000, hash EABC6B0D
+ sample 34:
+ time = 1088000
+ flags = 1
+ data = length 4000, hash F47EF742
+ sample 35:
+ time = 1120000
+ flags = 1
+ data = length 4000, hash 9B2549DA
+ sample 36:
+ time = 1152000
+ flags = 1
+ data = length 4000, hash A12733C9
+ sample 37:
+ time = 1184000
+ flags = 1
+ data = length 4000, hash 95F62E99
+ sample 38:
+ time = 1216000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 39:
+ time = 1248000
+ flags = 1
+ data = length 4000, hash A4D858
+ sample 40:
+ time = 1280000
+ flags = 1
+ data = length 4000, hash 22C1A129
+ sample 41:
+ time = 1312000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 42:
+ time = 1344000
+ flags = 1
+ data = length 4000, hash 3782E8BB
+ sample 43:
+ time = 1376000
+ flags = 1
+ data = length 4000, hash 2C51E4A1
+ sample 44:
+ time = 1408000
+ flags = 1
+ data = length 4000, hash BDB3D129
+ sample 45:
+ time = 1440000
+ flags = 1
+ data = length 4000, hash F642A55
+ sample 46:
+ time = 1472000
+ flags = 1
+ data = length 4000, hash 32F259F4
+ sample 47:
+ time = 1504000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 48:
+ time = 1536000
+ flags = 1
+ data = length 4000, hash 57C98E1C
+ sample 49:
+ time = 1568000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 50:
+ time = 1600000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 51:
+ time = 1632000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 52:
+ time = 1664000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+ sample 53:
+ time = 1696000
+ flags = 536870913
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..607c378d9d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,277 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=956]]
+ getPosition(1) = [[timeUs=1, position=956]]
+ getPosition(1024000) = [[timeUs=1024000, position=82876]]
+ getPosition(2048000) = [[timeUs=2048000, position=162236]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 163840
+ sample count = 64
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ maxInputSize = 2590
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 2560, hash 882594AD
+ sample 1:
+ time = 32000
+ flags = 1
+ data = length 2560, hash 41EC8B22
+ sample 2:
+ time = 64000
+ flags = 1
+ data = length 2560, hash 67E6EFD4
+ sample 3:
+ time = 96000
+ flags = 1
+ data = length 2560, hash A7E66AFD
+ sample 4:
+ time = 128000
+ flags = 1
+ data = length 2560, hash 3924116
+ sample 5:
+ time = 160000
+ flags = 1
+ data = length 2560, hash 64DCE40B
+ sample 6:
+ time = 192000
+ flags = 1
+ data = length 2560, hash F2E0DA64
+ sample 7:
+ time = 224000
+ flags = 1
+ data = length 2560, hash C156258B
+ sample 8:
+ time = 256000
+ flags = 1
+ data = length 2560, hash D8DBDCDE
+ sample 9:
+ time = 288000
+ flags = 1
+ data = length 2560, hash C11B2F25
+ sample 10:
+ time = 320000
+ flags = 1
+ data = length 2560, hash B3C5612
+ sample 11:
+ time = 352000
+ flags = 1
+ data = length 2560, hash A94B15D0
+ sample 12:
+ time = 384000
+ flags = 1
+ data = length 2560, hash 12E4E306
+ sample 13:
+ time = 416000
+ flags = 1
+ data = length 2560, hash 11CB959F
+ sample 14:
+ time = 448000
+ flags = 1
+ data = length 2560, hash B6433844
+ sample 15:
+ time = 480000
+ flags = 1
+ data = length 2560, hash EA6DEB89
+ sample 16:
+ time = 512000
+ flags = 1
+ data = length 2560, hash 6D65CBD9
+ sample 17:
+ time = 544000
+ flags = 1
+ data = length 2560, hash A5D635C5
+ sample 18:
+ time = 576000
+ flags = 1
+ data = length 2560, hash 992E36AB
+ sample 19:
+ time = 608000
+ flags = 1
+ data = length 2560, hash 1EC4E5AF
+ sample 20:
+ time = 640000
+ flags = 1
+ data = length 2560, hash DCFEB7D2
+ sample 21:
+ time = 672000
+ flags = 1
+ data = length 2560, hash 45EFC639
+ sample 22:
+ time = 704000
+ flags = 1
+ data = length 2560, hash F598673
+ sample 23:
+ time = 736000
+ flags = 1
+ data = length 2560, hash 89E4E5EC
+ sample 24:
+ time = 768000
+ flags = 1
+ data = length 2560, hash FBE2532B
+ sample 25:
+ time = 800000
+ flags = 1
+ data = length 2560, hash 9CE5F83B
+ sample 26:
+ time = 832000
+ flags = 1
+ data = length 2560, hash 6ED49E2C
+ sample 27:
+ time = 864000
+ flags = 1
+ data = length 2560, hash BC52F8F3
+ sample 28:
+ time = 896000
+ flags = 1
+ data = length 2560, hash 759203E2
+ sample 29:
+ time = 928000
+ flags = 1
+ data = length 2560, hash D5D31AE9
+ sample 30:
+ time = 960000
+ flags = 1
+ data = length 2560, hash 640A24ED
+ sample 31:
+ time = 992000
+ flags = 1
+ data = length 2560, hash 19B52B8B
+ sample 32:
+ time = 1024000
+ flags = 1
+ data = length 2560, hash 5DA977C3
+ sample 33:
+ time = 1056000
+ flags = 1
+ data = length 2560, hash 982879DD
+ sample 34:
+ time = 1088000
+ flags = 1
+ data = length 2560, hash A7656B9C
+ sample 35:
+ time = 1120000
+ flags = 1
+ data = length 2560, hash 445CCC67
+ sample 36:
+ time = 1152000
+ flags = 1
+ data = length 2560, hash ACD5CB5C
+ sample 37:
+ time = 1184000
+ flags = 1
+ data = length 2560, hash 175BBF26
+ sample 38:
+ time = 1216000
+ flags = 1
+ data = length 2560, hash DBCBEB0
+ sample 39:
+ time = 1248000
+ flags = 1
+ data = length 2560, hash DA39D991
+ sample 40:
+ time = 1280000
+ flags = 1
+ data = length 2560, hash F08CC8E2
+ sample 41:
+ time = 1312000
+ flags = 1
+ data = length 2560, hash 6B0842D7
+ sample 42:
+ time = 1344000
+ flags = 1
+ data = length 2560, hash 9FE87594
+ sample 43:
+ time = 1376000
+ flags = 1
+ data = length 2560, hash 8E62CE19
+ sample 44:
+ time = 1408000
+ flags = 1
+ data = length 2560, hash 5FDC4084
+ sample 45:
+ time = 1440000
+ flags = 1
+ data = length 2560, hash C32DAEE1
+ sample 46:
+ time = 1472000
+ flags = 1
+ data = length 2560, hash BBEFB568
+ sample 47:
+ time = 1504000
+ flags = 1
+ data = length 2560, hash 20504279
+ sample 48:
+ time = 1536000
+ flags = 1
+ data = length 2560, hash 3B8192D2
+ sample 49:
+ time = 1568000
+ flags = 1
+ data = length 2560, hash 4206B48
+ sample 50:
+ time = 1600000
+ flags = 1
+ data = length 2560, hash B195AB53
+ sample 51:
+ time = 1632000
+ flags = 1
+ data = length 2560, hash 3AA8E25F
+ sample 52:
+ time = 1664000
+ flags = 1
+ data = length 2560, hash BC227D7B
+ sample 53:
+ time = 1696000
+ flags = 1
+ data = length 2560, hash 6A34F7EA
+ sample 54:
+ time = 1728000
+ flags = 1
+ data = length 2560, hash F1E731C4
+ sample 55:
+ time = 1760000
+ flags = 1
+ data = length 2560, hash 9CC406
+ sample 56:
+ time = 1792000
+ flags = 1
+ data = length 2560, hash A1532233
+ sample 57:
+ time = 1824000
+ flags = 1
+ data = length 2560, hash 98E49039
+ sample 58:
+ time = 1856000
+ flags = 1
+ data = length 2560, hash 3F8B6DC0
+ sample 59:
+ time = 1888000
+ flags = 1
+ data = length 2560, hash 4E7BF79F
+ sample 60:
+ time = 1920000
+ flags = 1
+ data = length 2560, hash 6DD6F2D7
+ sample 61:
+ time = 1952000
+ flags = 1
+ data = length 2560, hash A05C0EC2
+ sample 62:
+ time = 1984000
+ flags = 1
+ data = length 2560, hash 10C62F30
+ sample 63:
+ time = 2016000
+ flags = 536870913
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..beaeaf98ca
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,193 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=956]]
+ getPosition(1) = [[timeUs=1, position=956]]
+ getPosition(1024000) = [[timeUs=1024000, position=82876]]
+ getPosition(2048000) = [[timeUs=2048000, position=162236]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 110080
+ sample count = 43
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ maxInputSize = 2590
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
+ sample 0:
+ time = 672000
+ flags = 1
+ data = length 2560, hash 45EFC639
+ sample 1:
+ time = 704000
+ flags = 1
+ data = length 2560, hash F598673
+ sample 2:
+ time = 736000
+ flags = 1
+ data = length 2560, hash 89E4E5EC
+ sample 3:
+ time = 768000
+ flags = 1
+ data = length 2560, hash FBE2532B
+ sample 4:
+ time = 800000
+ flags = 1
+ data = length 2560, hash 9CE5F83B
+ sample 5:
+ time = 832000
+ flags = 1
+ data = length 2560, hash 6ED49E2C
+ sample 6:
+ time = 864000
+ flags = 1
+ data = length 2560, hash BC52F8F3
+ sample 7:
+ time = 896000
+ flags = 1
+ data = length 2560, hash 759203E2
+ sample 8:
+ time = 928000
+ flags = 1
+ data = length 2560, hash D5D31AE9
+ sample 9:
+ time = 960000
+ flags = 1
+ data = length 2560, hash 640A24ED
+ sample 10:
+ time = 992000
+ flags = 1
+ data = length 2560, hash 19B52B8B
+ sample 11:
+ time = 1024000
+ flags = 1
+ data = length 2560, hash 5DA977C3
+ sample 12:
+ time = 1056000
+ flags = 1
+ data = length 2560, hash 982879DD
+ sample 13:
+ time = 1088000
+ flags = 1
+ data = length 2560, hash A7656B9C
+ sample 14:
+ time = 1120000
+ flags = 1
+ data = length 2560, hash 445CCC67
+ sample 15:
+ time = 1152000
+ flags = 1
+ data = length 2560, hash ACD5CB5C
+ sample 16:
+ time = 1184000
+ flags = 1
+ data = length 2560, hash 175BBF26
+ sample 17:
+ time = 1216000
+ flags = 1
+ data = length 2560, hash DBCBEB0
+ sample 18:
+ time = 1248000
+ flags = 1
+ data = length 2560, hash DA39D991
+ sample 19:
+ time = 1280000
+ flags = 1
+ data = length 2560, hash F08CC8E2
+ sample 20:
+ time = 1312000
+ flags = 1
+ data = length 2560, hash 6B0842D7
+ sample 21:
+ time = 1344000
+ flags = 1
+ data = length 2560, hash 9FE87594
+ sample 22:
+ time = 1376000
+ flags = 1
+ data = length 2560, hash 8E62CE19
+ sample 23:
+ time = 1408000
+ flags = 1
+ data = length 2560, hash 5FDC4084
+ sample 24:
+ time = 1440000
+ flags = 1
+ data = length 2560, hash C32DAEE1
+ sample 25:
+ time = 1472000
+ flags = 1
+ data = length 2560, hash BBEFB568
+ sample 26:
+ time = 1504000
+ flags = 1
+ data = length 2560, hash 20504279
+ sample 27:
+ time = 1536000
+ flags = 1
+ data = length 2560, hash 3B8192D2
+ sample 28:
+ time = 1568000
+ flags = 1
+ data = length 2560, hash 4206B48
+ sample 29:
+ time = 1600000
+ flags = 1
+ data = length 2560, hash B195AB53
+ sample 30:
+ time = 1632000
+ flags = 1
+ data = length 2560, hash 3AA8E25F
+ sample 31:
+ time = 1664000
+ flags = 1
+ data = length 2560, hash BC227D7B
+ sample 32:
+ time = 1696000
+ flags = 1
+ data = length 2560, hash 6A34F7EA
+ sample 33:
+ time = 1728000
+ flags = 1
+ data = length 2560, hash F1E731C4
+ sample 34:
+ time = 1760000
+ flags = 1
+ data = length 2560, hash 9CC406
+ sample 35:
+ time = 1792000
+ flags = 1
+ data = length 2560, hash A1532233
+ sample 36:
+ time = 1824000
+ flags = 1
+ data = length 2560, hash 98E49039
+ sample 37:
+ time = 1856000
+ flags = 1
+ data = length 2560, hash 3F8B6DC0
+ sample 38:
+ time = 1888000
+ flags = 1
+ data = length 2560, hash 4E7BF79F
+ sample 39:
+ time = 1920000
+ flags = 1
+ data = length 2560, hash 6DD6F2D7
+ sample 40:
+ time = 1952000
+ flags = 1
+ data = length 2560, hash A05C0EC2
+ sample 41:
+ time = 1984000
+ flags = 1
+ data = length 2560, hash 10C62F30
+ sample 42:
+ time = 2016000
+ flags = 536870913
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..79b8942def
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,109 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=956]]
+ getPosition(1) = [[timeUs=1, position=956]]
+ getPosition(1024000) = [[timeUs=1024000, position=82876]]
+ getPosition(2048000) = [[timeUs=2048000, position=162236]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 56320
+ sample count = 22
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ maxInputSize = 2590
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
+ sample 0:
+ time = 1344000
+ flags = 1
+ data = length 2560, hash 9FE87594
+ sample 1:
+ time = 1376000
+ flags = 1
+ data = length 2560, hash 8E62CE19
+ sample 2:
+ time = 1408000
+ flags = 1
+ data = length 2560, hash 5FDC4084
+ sample 3:
+ time = 1440000
+ flags = 1
+ data = length 2560, hash C32DAEE1
+ sample 4:
+ time = 1472000
+ flags = 1
+ data = length 2560, hash BBEFB568
+ sample 5:
+ time = 1504000
+ flags = 1
+ data = length 2560, hash 20504279
+ sample 6:
+ time = 1536000
+ flags = 1
+ data = length 2560, hash 3B8192D2
+ sample 7:
+ time = 1568000
+ flags = 1
+ data = length 2560, hash 4206B48
+ sample 8:
+ time = 1600000
+ flags = 1
+ data = length 2560, hash B195AB53
+ sample 9:
+ time = 1632000
+ flags = 1
+ data = length 2560, hash 3AA8E25F
+ sample 10:
+ time = 1664000
+ flags = 1
+ data = length 2560, hash BC227D7B
+ sample 11:
+ time = 1696000
+ flags = 1
+ data = length 2560, hash 6A34F7EA
+ sample 12:
+ time = 1728000
+ flags = 1
+ data = length 2560, hash F1E731C4
+ sample 13:
+ time = 1760000
+ flags = 1
+ data = length 2560, hash 9CC406
+ sample 14:
+ time = 1792000
+ flags = 1
+ data = length 2560, hash A1532233
+ sample 15:
+ time = 1824000
+ flags = 1
+ data = length 2560, hash 98E49039
+ sample 16:
+ time = 1856000
+ flags = 1
+ data = length 2560, hash 3F8B6DC0
+ sample 17:
+ time = 1888000
+ flags = 1
+ data = length 2560, hash 4E7BF79F
+ sample 18:
+ time = 1920000
+ flags = 1
+ data = length 2560, hash 6DD6F2D7
+ sample 19:
+ time = 1952000
+ flags = 1
+ data = length 2560, hash A05C0EC2
+ sample 20:
+ time = 1984000
+ flags = 1
+ data = length 2560, hash 10C62F30
+ sample 21:
+ time = 2016000
+ flags = 536870913
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..e4612fa0b2
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,25 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=956]]
+ getPosition(1) = [[timeUs=1, position=956]]
+ getPosition(1024000) = [[timeUs=1024000, position=82876]]
+ getPosition(2048000) = [[timeUs=2048000, position=162236]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2560
+ sample count = 1
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ maxInputSize = 2590
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
+ sample 0:
+ time = 2016000
+ flags = 536870913
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..607c378d9d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,277 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=956]]
+ getPosition(1) = [[timeUs=1, position=956]]
+ getPosition(1024000) = [[timeUs=1024000, position=82876]]
+ getPosition(2048000) = [[timeUs=2048000, position=162236]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 163840
+ sample count = 64
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ maxInputSize = 2590
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 2560, hash 882594AD
+ sample 1:
+ time = 32000
+ flags = 1
+ data = length 2560, hash 41EC8B22
+ sample 2:
+ time = 64000
+ flags = 1
+ data = length 2560, hash 67E6EFD4
+ sample 3:
+ time = 96000
+ flags = 1
+ data = length 2560, hash A7E66AFD
+ sample 4:
+ time = 128000
+ flags = 1
+ data = length 2560, hash 3924116
+ sample 5:
+ time = 160000
+ flags = 1
+ data = length 2560, hash 64DCE40B
+ sample 6:
+ time = 192000
+ flags = 1
+ data = length 2560, hash F2E0DA64
+ sample 7:
+ time = 224000
+ flags = 1
+ data = length 2560, hash C156258B
+ sample 8:
+ time = 256000
+ flags = 1
+ data = length 2560, hash D8DBDCDE
+ sample 9:
+ time = 288000
+ flags = 1
+ data = length 2560, hash C11B2F25
+ sample 10:
+ time = 320000
+ flags = 1
+ data = length 2560, hash B3C5612
+ sample 11:
+ time = 352000
+ flags = 1
+ data = length 2560, hash A94B15D0
+ sample 12:
+ time = 384000
+ flags = 1
+ data = length 2560, hash 12E4E306
+ sample 13:
+ time = 416000
+ flags = 1
+ data = length 2560, hash 11CB959F
+ sample 14:
+ time = 448000
+ flags = 1
+ data = length 2560, hash B6433844
+ sample 15:
+ time = 480000
+ flags = 1
+ data = length 2560, hash EA6DEB89
+ sample 16:
+ time = 512000
+ flags = 1
+ data = length 2560, hash 6D65CBD9
+ sample 17:
+ time = 544000
+ flags = 1
+ data = length 2560, hash A5D635C5
+ sample 18:
+ time = 576000
+ flags = 1
+ data = length 2560, hash 992E36AB
+ sample 19:
+ time = 608000
+ flags = 1
+ data = length 2560, hash 1EC4E5AF
+ sample 20:
+ time = 640000
+ flags = 1
+ data = length 2560, hash DCFEB7D2
+ sample 21:
+ time = 672000
+ flags = 1
+ data = length 2560, hash 45EFC639
+ sample 22:
+ time = 704000
+ flags = 1
+ data = length 2560, hash F598673
+ sample 23:
+ time = 736000
+ flags = 1
+ data = length 2560, hash 89E4E5EC
+ sample 24:
+ time = 768000
+ flags = 1
+ data = length 2560, hash FBE2532B
+ sample 25:
+ time = 800000
+ flags = 1
+ data = length 2560, hash 9CE5F83B
+ sample 26:
+ time = 832000
+ flags = 1
+ data = length 2560, hash 6ED49E2C
+ sample 27:
+ time = 864000
+ flags = 1
+ data = length 2560, hash BC52F8F3
+ sample 28:
+ time = 896000
+ flags = 1
+ data = length 2560, hash 759203E2
+ sample 29:
+ time = 928000
+ flags = 1
+ data = length 2560, hash D5D31AE9
+ sample 30:
+ time = 960000
+ flags = 1
+ data = length 2560, hash 640A24ED
+ sample 31:
+ time = 992000
+ flags = 1
+ data = length 2560, hash 19B52B8B
+ sample 32:
+ time = 1024000
+ flags = 1
+ data = length 2560, hash 5DA977C3
+ sample 33:
+ time = 1056000
+ flags = 1
+ data = length 2560, hash 982879DD
+ sample 34:
+ time = 1088000
+ flags = 1
+ data = length 2560, hash A7656B9C
+ sample 35:
+ time = 1120000
+ flags = 1
+ data = length 2560, hash 445CCC67
+ sample 36:
+ time = 1152000
+ flags = 1
+ data = length 2560, hash ACD5CB5C
+ sample 37:
+ time = 1184000
+ flags = 1
+ data = length 2560, hash 175BBF26
+ sample 38:
+ time = 1216000
+ flags = 1
+ data = length 2560, hash DBCBEB0
+ sample 39:
+ time = 1248000
+ flags = 1
+ data = length 2560, hash DA39D991
+ sample 40:
+ time = 1280000
+ flags = 1
+ data = length 2560, hash F08CC8E2
+ sample 41:
+ time = 1312000
+ flags = 1
+ data = length 2560, hash 6B0842D7
+ sample 42:
+ time = 1344000
+ flags = 1
+ data = length 2560, hash 9FE87594
+ sample 43:
+ time = 1376000
+ flags = 1
+ data = length 2560, hash 8E62CE19
+ sample 44:
+ time = 1408000
+ flags = 1
+ data = length 2560, hash 5FDC4084
+ sample 45:
+ time = 1440000
+ flags = 1
+ data = length 2560, hash C32DAEE1
+ sample 46:
+ time = 1472000
+ flags = 1
+ data = length 2560, hash BBEFB568
+ sample 47:
+ time = 1504000
+ flags = 1
+ data = length 2560, hash 20504279
+ sample 48:
+ time = 1536000
+ flags = 1
+ data = length 2560, hash 3B8192D2
+ sample 49:
+ time = 1568000
+ flags = 1
+ data = length 2560, hash 4206B48
+ sample 50:
+ time = 1600000
+ flags = 1
+ data = length 2560, hash B195AB53
+ sample 51:
+ time = 1632000
+ flags = 1
+ data = length 2560, hash 3AA8E25F
+ sample 52:
+ time = 1664000
+ flags = 1
+ data = length 2560, hash BC227D7B
+ sample 53:
+ time = 1696000
+ flags = 1
+ data = length 2560, hash 6A34F7EA
+ sample 54:
+ time = 1728000
+ flags = 1
+ data = length 2560, hash F1E731C4
+ sample 55:
+ time = 1760000
+ flags = 1
+ data = length 2560, hash 9CC406
+ sample 56:
+ time = 1792000
+ flags = 1
+ data = length 2560, hash A1532233
+ sample 57:
+ time = 1824000
+ flags = 1
+ data = length 2560, hash 98E49039
+ sample 58:
+ time = 1856000
+ flags = 1
+ data = length 2560, hash 3F8B6DC0
+ sample 59:
+ time = 1888000
+ flags = 1
+ data = length 2560, hash 4E7BF79F
+ sample 60:
+ time = 1920000
+ flags = 1
+ data = length 2560, hash 6DD6F2D7
+ sample 61:
+ time = 1952000
+ flags = 1
+ data = length 2560, hash A05C0EC2
+ sample 62:
+ time = 1984000
+ flags = 1
+ data = length 2560, hash 10C62F30
+ sample 63:
+ time = 2016000
+ flags = 536870913
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..ff1b407187
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,736 @@
+seekMap:
+ isSeekable = true
+ duration = 2548333
+ getPosition(0) = [[timeUs=611666, position=16205]]
+ getPosition(1) = [[timeUs=611666, position=16205]]
+ getPosition(1274166) = [[timeUs=611666, position=16205], [timeUs=1680000, position=34939]]
+ getPosition(2548333) = [[timeUs=1680000, position=34939]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 2168517
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 196379
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 23.544804
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 97, hash 32FB3D18
+ sample 0:
+ time = 611666
+ flags = 1
+ data = length 196349, hash 484B3706
+ sample 1:
+ time = 545000
+ flags = 0
+ data = length 36093, hash 9964470A
+ sample 2:
+ time = 511666
+ flags = 0
+ data = length 9196, hash 124A821F
+ sample 3:
+ time = 578333
+ flags = 0
+ data = length 11337, hash 2A61C44F
+ sample 4:
+ time = 745000
+ flags = 0
+ data = length 89197, hash E331760E
+ sample 5:
+ time = 678333
+ flags = 0
+ data = length 27802, hash 280175A2
+ sample 6:
+ time = 645000
+ flags = 0
+ data = length 9295, hash 1CC71F4D
+ sample 7:
+ time = 711666
+ flags = 0
+ data = length 11844, hash 595DBFFA
+ sample 8:
+ time = 878333
+ flags = 0
+ data = length 78369, hash 958807CA
+ sample 9:
+ time = 811666
+ flags = 0
+ data = length 28320, hash 8B5DAC6A
+ sample 10:
+ time = 778333
+ flags = 0
+ data = length 13845, hash 868C5F96
+ sample 11:
+ time = 845000
+ flags = 0
+ data = length 13734, hash 2BF28058
+ sample 12:
+ time = 1011666
+ flags = 0
+ data = length 60140, hash 4DCE6D29
+ sample 13:
+ time = 945000
+ flags = 0
+ data = length 28024, hash 2808AC27
+ sample 14:
+ time = 911666
+ flags = 0
+ data = length 14865, hash DA936298
+ sample 15:
+ time = 978333
+ flags = 0
+ data = length 15631, hash F11D2528
+ sample 16:
+ time = 1145000
+ flags = 0
+ data = length 59293, hash 1C3296CD
+ sample 17:
+ time = 1078333
+ flags = 0
+ data = length 27545, hash 189E13B8
+ sample 18:
+ time = 1045000
+ flags = 0
+ data = length 14959, hash A47356EF
+ sample 19:
+ time = 1111666
+ flags = 0
+ data = length 15621, hash C391E893
+ sample 20:
+ time = 1278333
+ flags = 0
+ data = length 66112, hash 54A454C4
+ sample 21:
+ time = 1211666
+ flags = 0
+ data = length 33610, hash 4C3F57F2
+ sample 22:
+ time = 1178333
+ flags = 0
+ data = length 13205, hash EC181CA7
+ sample 23:
+ time = 1245000
+ flags = 0
+ data = length 18525, hash 20D8FE9D
+ sample 24:
+ time = 1411666
+ flags = 0
+ data = length 63613, hash B807DB7E
+ sample 25:
+ time = 1345000
+ flags = 0
+ data = length 40816, hash 2D023C8F
+ sample 26:
+ time = 1311666
+ flags = 0
+ data = length 17728, hash B07033B9
+ sample 27:
+ time = 1378333
+ flags = 0
+ data = length 13105, hash 4E3B7245
+ sample 28:
+ time = 1546666
+ flags = 0
+ data = length 54500, hash 88F3013F
+ sample 29:
+ time = 1478333
+ flags = 0
+ data = length 34711, hash 9918D286
+ sample 30:
+ time = 1445000
+ flags = 0
+ data = length 14764, hash CF9044AB
+ sample 31:
+ time = 1513333
+ flags = 0
+ data = length 16517, hash BA27C997
+ sample 32:
+ time = 1680000
+ flags = 1
+ data = length 143217, hash A7D06C3F
+ sample 33:
+ time = 1613333
+ flags = 0
+ data = length 32967, hash E490EDD3
+ sample 34:
+ time = 1580000
+ flags = 0
+ data = length 17445, hash 5F91C2B8
+ sample 35:
+ time = 1646666
+ flags = 0
+ data = length 14638, hash 775110FE
+ sample 36:
+ time = 1813333
+ flags = 0
+ data = length 67665, hash A9A21D87
+ sample 37:
+ time = 1746666
+ flags = 0
+ data = length 32392, hash 7E790D61
+ sample 38:
+ time = 1713333
+ flags = 0
+ data = length 10589, hash 6EB324E3
+ sample 39:
+ time = 1780000
+ flags = 0
+ data = length 18023, hash 29D03684
+ sample 40:
+ time = 1946666
+ flags = 0
+ data = length 67946, hash 8135C195
+ sample 41:
+ time = 1880000
+ flags = 0
+ data = length 41030, hash B6A9208
+ sample 42:
+ time = 1846666
+ flags = 0
+ data = length 15110, hash BF682221
+ sample 43:
+ time = 1913333
+ flags = 0
+ data = length 17245, hash 2BAFA805
+ sample 44:
+ time = 2080000
+ flags = 0
+ data = length 57455, hash 2754BFA0
+ sample 45:
+ time = 2013333
+ flags = 0
+ data = length 37067, hash CCE6C30F
+ sample 46:
+ time = 1980000
+ flags = 0
+ data = length 14098, hash 60A5760F
+ sample 47:
+ time = 2046666
+ flags = 0
+ data = length 20864, hash 94450211
+ sample 48:
+ time = 2213333
+ flags = 0
+ data = length 62871, hash BA53494F
+ sample 49:
+ time = 2146666
+ flags = 0
+ data = length 38596, hash 420335AC
+ sample 50:
+ time = 2113333
+ flags = 0
+ data = length 17584, hash 2E024B02
+ sample 51:
+ time = 2180000
+ flags = 0
+ data = length 18521, hash 7381819A
+ sample 52:
+ time = 2346666
+ flags = 0
+ data = length 54835, hash F45163BF
+ sample 53:
+ time = 2280000
+ flags = 0
+ data = length 29346, hash A57C757F
+ sample 54:
+ time = 2246666
+ flags = 0
+ data = length 15815, hash 1B194C31
+ sample 55:
+ time = 2313333
+ flags = 0
+ data = length 20390, hash A162AAD0
+ sample 56:
+ time = 2480000
+ flags = 0
+ data = length 64262, hash 875514C7
+ sample 57:
+ time = 2413333
+ flags = 0
+ data = length 39953, hash 3884739A
+ sample 58:
+ time = 2380000
+ flags = 0
+ data = length 23136, hash 8AF1C1AD
+ sample 59:
+ time = 2446666
+ flags = 536870912
+ data = length 26792, hash 3157758F
+track 1:
+ total output bytes = 45765
+ sample count = 112
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 832
+ channelCount = 2
+ sampleRate = 44100
+ encoderDelay = 1698
+ encoderPadding = 609
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 802, hash DE7F20AC
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 457, hash 3F6EF91
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 439, hash 9EFEF547
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 425, hash 9E1A2B66
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 420, hash 7AA38F34
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 399, hash 919F7E1C
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 394, hash 4EB03DBE
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 392, hash C027E340
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 389, hash F5CA0E30
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 406, hash C4D75949
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 418, hash A00CE696
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 398, hash F05C17A5
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 399, hash DF5BEB79
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 391, hash A7717052
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 413, hash CD16EEE8
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 417, hash AB8F24B7
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 420, hash EB187AD9
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 404, hash C7E2028A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 427, hash 960C2672
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 419, hash 333F12D8
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 409, hash 14611ACA
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 397, hash FF7C175F
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 397, hash 3C41B7F
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 407, hash E5FD065C
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 402, hash 4B054010
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 402, hash A831296A
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 414, hash A140A593
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 416, hash 1812B419
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 399, hash 8365C231
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 385, hash D661688B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 403, hash BC9E5E2E
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 398, hash 59804AE8
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 406, hash 3A42B5B7
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 414, hash 53FA9880
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 398, hash 8D3ADD23
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 425, hash C9ADA235
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 408, hash 3A4EFC47
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 414, hash 6FED5E60
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 427, hash 42AC5664
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 429, hash 62F3725D
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 403, hash 6C11E259
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 421, hash 4EF805F6
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 404, hash 2094740F
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 426, hash FCF2A593
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 423, hash DB09D7F0
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 411, hash A4CB44DB
+ sample 46:
+ time = 1068117
+ flags = 1
+ data = length 404, hash 4959B833
+ sample 47:
+ time = 1091337
+ flags = 1
+ data = length 403, hash B5C8DFA1
+ sample 48:
+ time = 1114557
+ flags = 1
+ data = length 422, hash ABE9358F
+ sample 49:
+ time = 1137777
+ flags = 1
+ data = length 418, hash C1914F50
+ sample 50:
+ time = 1160997
+ flags = 1
+ data = length 421, hash 4453B916
+ sample 51:
+ time = 1184217
+ flags = 1
+ data = length 400, hash 73452AD3
+ sample 52:
+ time = 1207437
+ flags = 1
+ data = length 400, hash F094F7B
+ sample 53:
+ time = 1230657
+ flags = 1
+ data = length 410, hash EC5D2BC2
+ sample 54:
+ time = 1253877
+ flags = 1
+ data = length 391, hash 9DC6D32
+ sample 55:
+ time = 1277097
+ flags = 1
+ data = length 361, hash 6612AF76
+ sample 56:
+ time = 1300317
+ flags = 1
+ data = length 391, hash 4B59EFBD
+ sample 57:
+ time = 1323537
+ flags = 1
+ data = length 390, hash 8CB3956F
+ sample 58:
+ time = 1346757
+ flags = 1
+ data = length 388, hash F9B691B9
+ sample 59:
+ time = 1369977
+ flags = 1
+ data = length 399, hash 280948A3
+ sample 60:
+ time = 1393197
+ flags = 1
+ data = length 390, hash 929628B2
+ sample 61:
+ time = 1416417
+ flags = 1
+ data = length 387, hash 56291FF5
+ sample 62:
+ time = 1439637
+ flags = 1
+ data = length 446, hash 2A7FE5FE
+ sample 63:
+ time = 1462857
+ flags = 1
+ data = length 436, hash D872A8A
+ sample 64:
+ time = 1486077
+ flags = 1
+ data = length 394, hash EA791960
+ sample 65:
+ time = 1509297
+ flags = 1
+ data = length 417, hash BEEC2ED0
+ sample 66:
+ time = 1532517
+ flags = 1
+ data = length 442, hash FDFFC29F
+ sample 67:
+ time = 1555736
+ flags = 1
+ data = length 416, hash 2F2ED36F
+ sample 68:
+ time = 1578956
+ flags = 1
+ data = length 396, hash 1CFA7982
+ sample 69:
+ time = 1602176
+ flags = 1
+ data = length 395, hash 2998BEF2
+ sample 70:
+ time = 1625396
+ flags = 1
+ data = length 389, hash AB8EAB86
+ sample 71:
+ time = 1648616
+ flags = 1
+ data = length 404, hash AC927E7
+ sample 72:
+ time = 1671836
+ flags = 1
+ data = length 418, hash 60370BB0
+ sample 73:
+ time = 1695056
+ flags = 1
+ data = length 393, hash 608345FA
+ sample 74:
+ time = 1718276
+ flags = 1
+ data = length 402, hash D478A3DE
+ sample 75:
+ time = 1741496
+ flags = 1
+ data = length 404, hash 98A170D8
+ sample 76:
+ time = 1764716
+ flags = 1
+ data = length 397, hash FE8F519C
+ sample 77:
+ time = 1787936
+ flags = 1
+ data = length 386, hash 4FD184BE
+ sample 78:
+ time = 1811156
+ flags = 1
+ data = length 377, hash 76FBE38F
+ sample 79:
+ time = 1834376
+ flags = 1
+ data = length 409, hash 92C677A9
+ sample 80:
+ time = 1857596
+ flags = 1
+ data = length 402, hash 42CFE9E2
+ sample 81:
+ time = 1880816
+ flags = 1
+ data = length 390, hash A5BF0232
+ sample 82:
+ time = 1904036
+ flags = 1
+ data = length 388, hash 55F742C6
+ sample 83:
+ time = 1927256
+ flags = 1
+ data = length 377, hash 84F8DCDD
+ sample 84:
+ time = 1950476
+ flags = 1
+ data = length 391, hash E20DB9EB
+ sample 85:
+ time = 1973696
+ flags = 1
+ data = length 398, hash 2B8A6B07
+ sample 86:
+ time = 1996916
+ flags = 1
+ data = length 381, hash 8E227E10
+ sample 87:
+ time = 2020136
+ flags = 1
+ data = length 393, hash 1C5EE4DA
+ sample 88:
+ time = 2043356
+ flags = 1
+ data = length 393, hash D37FAB94
+ sample 89:
+ time = 2066575
+ flags = 1
+ data = length 380, hash 61D9B8F1
+ sample 90:
+ time = 2089795
+ flags = 1
+ data = length 395, hash BB9069D0
+ sample 91:
+ time = 2113015
+ flags = 1
+ data = length 379, hash 27A4C8AB
+ sample 92:
+ time = 2136235
+ flags = 1
+ data = length 403, hash 2F93ACAE
+ sample 93:
+ time = 2159455
+ flags = 1
+ data = length 415, hash 51099155
+ sample 94:
+ time = 2182675
+ flags = 1
+ data = length 400, hash EC019A99
+ sample 95:
+ time = 2205895
+ flags = 1
+ data = length 401, hash F42E02C7
+ sample 96:
+ time = 2229115
+ flags = 1
+ data = length 400, hash C8E29F0A
+ sample 97:
+ time = 2252335
+ flags = 1
+ data = length 408, hash B388110C
+ sample 98:
+ time = 2275555
+ flags = 1
+ data = length 406, hash FCFBEFD9
+ sample 99:
+ time = 2298775
+ flags = 1
+ data = length 411, hash 9C60D439
+ sample 100:
+ time = 2321995
+ flags = 1
+ data = length 414, hash 8EECCBD9
+ sample 101:
+ time = 2345215
+ flags = 1
+ data = length 393, hash 9B1317BC
+ sample 102:
+ time = 2368435
+ flags = 1
+ data = length 405, hash 4CBBCFBF
+ sample 103:
+ time = 2391655
+ flags = 1
+ data = length 412, hash A8C3BE09
+ sample 104:
+ time = 2414875
+ flags = 1
+ data = length 409, hash CDDB880D
+ sample 105:
+ time = 2438095
+ flags = 1
+ data = length 423, hash 9F87A5D
+ sample 106:
+ time = 2461315
+ flags = 1
+ data = length 399, hash 6C7043B7
+ sample 107:
+ time = 2484535
+ flags = 1
+ data = length 400, hash 297E775C
+ sample 108:
+ time = 2507755
+ flags = 1
+ data = length 397, hash 5732E5A2
+ sample 109:
+ time = 2530975
+ flags = 1
+ data = length 398, hash 127D1EF3
+ sample 110:
+ time = 2554195
+ flags = 1
+ data = length 424, hash BF76C0EC
+ sample 111:
+ time = 2577414
+ flags = 536870913
+ data = length 417, hash 761190B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..e6c8cbbe46
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,592 @@
+seekMap:
+ isSeekable = true
+ duration = 2548333
+ getPosition(0) = [[timeUs=611666, position=16205]]
+ getPosition(1) = [[timeUs=611666, position=16205]]
+ getPosition(1274166) = [[timeUs=611666, position=16205], [timeUs=1680000, position=34939]]
+ getPosition(2548333) = [[timeUs=1680000, position=34939]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 2168517
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 196379
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 23.544804
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 97, hash 32FB3D18
+ sample 0:
+ time = 611666
+ flags = 1
+ data = length 196349, hash 484B3706
+ sample 1:
+ time = 545000
+ flags = 0
+ data = length 36093, hash 9964470A
+ sample 2:
+ time = 511666
+ flags = 0
+ data = length 9196, hash 124A821F
+ sample 3:
+ time = 578333
+ flags = 0
+ data = length 11337, hash 2A61C44F
+ sample 4:
+ time = 745000
+ flags = 0
+ data = length 89197, hash E331760E
+ sample 5:
+ time = 678333
+ flags = 0
+ data = length 27802, hash 280175A2
+ sample 6:
+ time = 645000
+ flags = 0
+ data = length 9295, hash 1CC71F4D
+ sample 7:
+ time = 711666
+ flags = 0
+ data = length 11844, hash 595DBFFA
+ sample 8:
+ time = 878333
+ flags = 0
+ data = length 78369, hash 958807CA
+ sample 9:
+ time = 811666
+ flags = 0
+ data = length 28320, hash 8B5DAC6A
+ sample 10:
+ time = 778333
+ flags = 0
+ data = length 13845, hash 868C5F96
+ sample 11:
+ time = 845000
+ flags = 0
+ data = length 13734, hash 2BF28058
+ sample 12:
+ time = 1011666
+ flags = 0
+ data = length 60140, hash 4DCE6D29
+ sample 13:
+ time = 945000
+ flags = 0
+ data = length 28024, hash 2808AC27
+ sample 14:
+ time = 911666
+ flags = 0
+ data = length 14865, hash DA936298
+ sample 15:
+ time = 978333
+ flags = 0
+ data = length 15631, hash F11D2528
+ sample 16:
+ time = 1145000
+ flags = 0
+ data = length 59293, hash 1C3296CD
+ sample 17:
+ time = 1078333
+ flags = 0
+ data = length 27545, hash 189E13B8
+ sample 18:
+ time = 1045000
+ flags = 0
+ data = length 14959, hash A47356EF
+ sample 19:
+ time = 1111666
+ flags = 0
+ data = length 15621, hash C391E893
+ sample 20:
+ time = 1278333
+ flags = 0
+ data = length 66112, hash 54A454C4
+ sample 21:
+ time = 1211666
+ flags = 0
+ data = length 33610, hash 4C3F57F2
+ sample 22:
+ time = 1178333
+ flags = 0
+ data = length 13205, hash EC181CA7
+ sample 23:
+ time = 1245000
+ flags = 0
+ data = length 18525, hash 20D8FE9D
+ sample 24:
+ time = 1411666
+ flags = 0
+ data = length 63613, hash B807DB7E
+ sample 25:
+ time = 1345000
+ flags = 0
+ data = length 40816, hash 2D023C8F
+ sample 26:
+ time = 1311666
+ flags = 0
+ data = length 17728, hash B07033B9
+ sample 27:
+ time = 1378333
+ flags = 0
+ data = length 13105, hash 4E3B7245
+ sample 28:
+ time = 1546666
+ flags = 0
+ data = length 54500, hash 88F3013F
+ sample 29:
+ time = 1478333
+ flags = 0
+ data = length 34711, hash 9918D286
+ sample 30:
+ time = 1445000
+ flags = 0
+ data = length 14764, hash CF9044AB
+ sample 31:
+ time = 1513333
+ flags = 0
+ data = length 16517, hash BA27C997
+ sample 32:
+ time = 1680000
+ flags = 1
+ data = length 143217, hash A7D06C3F
+ sample 33:
+ time = 1613333
+ flags = 0
+ data = length 32967, hash E490EDD3
+ sample 34:
+ time = 1580000
+ flags = 0
+ data = length 17445, hash 5F91C2B8
+ sample 35:
+ time = 1646666
+ flags = 0
+ data = length 14638, hash 775110FE
+ sample 36:
+ time = 1813333
+ flags = 0
+ data = length 67665, hash A9A21D87
+ sample 37:
+ time = 1746666
+ flags = 0
+ data = length 32392, hash 7E790D61
+ sample 38:
+ time = 1713333
+ flags = 0
+ data = length 10589, hash 6EB324E3
+ sample 39:
+ time = 1780000
+ flags = 0
+ data = length 18023, hash 29D03684
+ sample 40:
+ time = 1946666
+ flags = 0
+ data = length 67946, hash 8135C195
+ sample 41:
+ time = 1880000
+ flags = 0
+ data = length 41030, hash B6A9208
+ sample 42:
+ time = 1846666
+ flags = 0
+ data = length 15110, hash BF682221
+ sample 43:
+ time = 1913333
+ flags = 0
+ data = length 17245, hash 2BAFA805
+ sample 44:
+ time = 2080000
+ flags = 0
+ data = length 57455, hash 2754BFA0
+ sample 45:
+ time = 2013333
+ flags = 0
+ data = length 37067, hash CCE6C30F
+ sample 46:
+ time = 1980000
+ flags = 0
+ data = length 14098, hash 60A5760F
+ sample 47:
+ time = 2046666
+ flags = 0
+ data = length 20864, hash 94450211
+ sample 48:
+ time = 2213333
+ flags = 0
+ data = length 62871, hash BA53494F
+ sample 49:
+ time = 2146666
+ flags = 0
+ data = length 38596, hash 420335AC
+ sample 50:
+ time = 2113333
+ flags = 0
+ data = length 17584, hash 2E024B02
+ sample 51:
+ time = 2180000
+ flags = 0
+ data = length 18521, hash 7381819A
+ sample 52:
+ time = 2346666
+ flags = 0
+ data = length 54835, hash F45163BF
+ sample 53:
+ time = 2280000
+ flags = 0
+ data = length 29346, hash A57C757F
+ sample 54:
+ time = 2246666
+ flags = 0
+ data = length 15815, hash 1B194C31
+ sample 55:
+ time = 2313333
+ flags = 0
+ data = length 20390, hash A162AAD0
+ sample 56:
+ time = 2480000
+ flags = 0
+ data = length 64262, hash 875514C7
+ sample 57:
+ time = 2413333
+ flags = 0
+ data = length 39953, hash 3884739A
+ sample 58:
+ time = 2380000
+ flags = 0
+ data = length 23136, hash 8AF1C1AD
+ sample 59:
+ time = 2446666
+ flags = 536870912
+ data = length 26792, hash 3157758F
+track 1:
+ total output bytes = 30664
+ sample count = 76
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 832
+ channelCount = 2
+ sampleRate = 44100
+ encoderDelay = 1698
+ encoderPadding = 609
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 835918
+ flags = 1
+ data = length 408, hash 3A4EFC47
+ sample 1:
+ time = 859138
+ flags = 1
+ data = length 414, hash 6FED5E60
+ sample 2:
+ time = 882358
+ flags = 1
+ data = length 427, hash 42AC5664
+ sample 3:
+ time = 905578
+ flags = 1
+ data = length 429, hash 62F3725D
+ sample 4:
+ time = 928798
+ flags = 1
+ data = length 403, hash 6C11E259
+ sample 5:
+ time = 952018
+ flags = 1
+ data = length 421, hash 4EF805F6
+ sample 6:
+ time = 975238
+ flags = 1
+ data = length 404, hash 2094740F
+ sample 7:
+ time = 998458
+ flags = 1
+ data = length 426, hash FCF2A593
+ sample 8:
+ time = 1021678
+ flags = 1
+ data = length 423, hash DB09D7F0
+ sample 9:
+ time = 1044897
+ flags = 1
+ data = length 411, hash A4CB44DB
+ sample 10:
+ time = 1068117
+ flags = 1
+ data = length 404, hash 4959B833
+ sample 11:
+ time = 1091337
+ flags = 1
+ data = length 403, hash B5C8DFA1
+ sample 12:
+ time = 1114557
+ flags = 1
+ data = length 422, hash ABE9358F
+ sample 13:
+ time = 1137777
+ flags = 1
+ data = length 418, hash C1914F50
+ sample 14:
+ time = 1160997
+ flags = 1
+ data = length 421, hash 4453B916
+ sample 15:
+ time = 1184217
+ flags = 1
+ data = length 400, hash 73452AD3
+ sample 16:
+ time = 1207437
+ flags = 1
+ data = length 400, hash F094F7B
+ sample 17:
+ time = 1230657
+ flags = 1
+ data = length 410, hash EC5D2BC2
+ sample 18:
+ time = 1253877
+ flags = 1
+ data = length 391, hash 9DC6D32
+ sample 19:
+ time = 1277097
+ flags = 1
+ data = length 361, hash 6612AF76
+ sample 20:
+ time = 1300317
+ flags = 1
+ data = length 391, hash 4B59EFBD
+ sample 21:
+ time = 1323537
+ flags = 1
+ data = length 390, hash 8CB3956F
+ sample 22:
+ time = 1346757
+ flags = 1
+ data = length 388, hash F9B691B9
+ sample 23:
+ time = 1369977
+ flags = 1
+ data = length 399, hash 280948A3
+ sample 24:
+ time = 1393197
+ flags = 1
+ data = length 390, hash 929628B2
+ sample 25:
+ time = 1416417
+ flags = 1
+ data = length 387, hash 56291FF5
+ sample 26:
+ time = 1439637
+ flags = 1
+ data = length 446, hash 2A7FE5FE
+ sample 27:
+ time = 1462857
+ flags = 1
+ data = length 436, hash D872A8A
+ sample 28:
+ time = 1486077
+ flags = 1
+ data = length 394, hash EA791960
+ sample 29:
+ time = 1509297
+ flags = 1
+ data = length 417, hash BEEC2ED0
+ sample 30:
+ time = 1532517
+ flags = 1
+ data = length 442, hash FDFFC29F
+ sample 31:
+ time = 1555736
+ flags = 1
+ data = length 416, hash 2F2ED36F
+ sample 32:
+ time = 1578956
+ flags = 1
+ data = length 396, hash 1CFA7982
+ sample 33:
+ time = 1602176
+ flags = 1
+ data = length 395, hash 2998BEF2
+ sample 34:
+ time = 1625396
+ flags = 1
+ data = length 389, hash AB8EAB86
+ sample 35:
+ time = 1648616
+ flags = 1
+ data = length 404, hash AC927E7
+ sample 36:
+ time = 1671836
+ flags = 1
+ data = length 418, hash 60370BB0
+ sample 37:
+ time = 1695056
+ flags = 1
+ data = length 393, hash 608345FA
+ sample 38:
+ time = 1718276
+ flags = 1
+ data = length 402, hash D478A3DE
+ sample 39:
+ time = 1741496
+ flags = 1
+ data = length 404, hash 98A170D8
+ sample 40:
+ time = 1764716
+ flags = 1
+ data = length 397, hash FE8F519C
+ sample 41:
+ time = 1787936
+ flags = 1
+ data = length 386, hash 4FD184BE
+ sample 42:
+ time = 1811156
+ flags = 1
+ data = length 377, hash 76FBE38F
+ sample 43:
+ time = 1834376
+ flags = 1
+ data = length 409, hash 92C677A9
+ sample 44:
+ time = 1857596
+ flags = 1
+ data = length 402, hash 42CFE9E2
+ sample 45:
+ time = 1880816
+ flags = 1
+ data = length 390, hash A5BF0232
+ sample 46:
+ time = 1904036
+ flags = 1
+ data = length 388, hash 55F742C6
+ sample 47:
+ time = 1927256
+ flags = 1
+ data = length 377, hash 84F8DCDD
+ sample 48:
+ time = 1950476
+ flags = 1
+ data = length 391, hash E20DB9EB
+ sample 49:
+ time = 1973696
+ flags = 1
+ data = length 398, hash 2B8A6B07
+ sample 50:
+ time = 1996916
+ flags = 1
+ data = length 381, hash 8E227E10
+ sample 51:
+ time = 2020136
+ flags = 1
+ data = length 393, hash 1C5EE4DA
+ sample 52:
+ time = 2043356
+ flags = 1
+ data = length 393, hash D37FAB94
+ sample 53:
+ time = 2066575
+ flags = 1
+ data = length 380, hash 61D9B8F1
+ sample 54:
+ time = 2089795
+ flags = 1
+ data = length 395, hash BB9069D0
+ sample 55:
+ time = 2113015
+ flags = 1
+ data = length 379, hash 27A4C8AB
+ sample 56:
+ time = 2136235
+ flags = 1
+ data = length 403, hash 2F93ACAE
+ sample 57:
+ time = 2159455
+ flags = 1
+ data = length 415, hash 51099155
+ sample 58:
+ time = 2182675
+ flags = 1
+ data = length 400, hash EC019A99
+ sample 59:
+ time = 2205895
+ flags = 1
+ data = length 401, hash F42E02C7
+ sample 60:
+ time = 2229115
+ flags = 1
+ data = length 400, hash C8E29F0A
+ sample 61:
+ time = 2252335
+ flags = 1
+ data = length 408, hash B388110C
+ sample 62:
+ time = 2275555
+ flags = 1
+ data = length 406, hash FCFBEFD9
+ sample 63:
+ time = 2298775
+ flags = 1
+ data = length 411, hash 9C60D439
+ sample 64:
+ time = 2321995
+ flags = 1
+ data = length 414, hash 8EECCBD9
+ sample 65:
+ time = 2345215
+ flags = 1
+ data = length 393, hash 9B1317BC
+ sample 66:
+ time = 2368435
+ flags = 1
+ data = length 405, hash 4CBBCFBF
+ sample 67:
+ time = 2391655
+ flags = 1
+ data = length 412, hash A8C3BE09
+ sample 68:
+ time = 2414875
+ flags = 1
+ data = length 409, hash CDDB880D
+ sample 69:
+ time = 2438095
+ flags = 1
+ data = length 423, hash 9F87A5D
+ sample 70:
+ time = 2461315
+ flags = 1
+ data = length 399, hash 6C7043B7
+ sample 71:
+ time = 2484535
+ flags = 1
+ data = length 400, hash 297E775C
+ sample 72:
+ time = 2507755
+ flags = 1
+ data = length 397, hash 5732E5A2
+ sample 73:
+ time = 2530975
+ flags = 1
+ data = length 398, hash 127D1EF3
+ sample 74:
+ time = 2554195
+ flags = 1
+ data = length 424, hash BF76C0EC
+ sample 75:
+ time = 2577414
+ flags = 536870913
+ data = length 417, hash 761190B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..685136ec9b
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,316 @@
+seekMap:
+ isSeekable = true
+ duration = 2548333
+ getPosition(0) = [[timeUs=611666, position=16205]]
+ getPosition(1) = [[timeUs=611666, position=16205]]
+ getPosition(1274166) = [[timeUs=611666, position=16205], [timeUs=1680000, position=34939]]
+ getPosition(2548333) = [[timeUs=1680000, position=34939]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 1019852
+ sample count = 28
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 196379
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 23.544804
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 97, hash 32FB3D18
+ sample 0:
+ time = 1680000
+ flags = 1
+ data = length 143217, hash A7D06C3F
+ sample 1:
+ time = 1613333
+ flags = 0
+ data = length 32967, hash E490EDD3
+ sample 2:
+ time = 1580000
+ flags = 0
+ data = length 17445, hash 5F91C2B8
+ sample 3:
+ time = 1646666
+ flags = 0
+ data = length 14638, hash 775110FE
+ sample 4:
+ time = 1813333
+ flags = 0
+ data = length 67665, hash A9A21D87
+ sample 5:
+ time = 1746666
+ flags = 0
+ data = length 32392, hash 7E790D61
+ sample 6:
+ time = 1713333
+ flags = 0
+ data = length 10589, hash 6EB324E3
+ sample 7:
+ time = 1780000
+ flags = 0
+ data = length 18023, hash 29D03684
+ sample 8:
+ time = 1946666
+ flags = 0
+ data = length 67946, hash 8135C195
+ sample 9:
+ time = 1880000
+ flags = 0
+ data = length 41030, hash B6A9208
+ sample 10:
+ time = 1846666
+ flags = 0
+ data = length 15110, hash BF682221
+ sample 11:
+ time = 1913333
+ flags = 0
+ data = length 17245, hash 2BAFA805
+ sample 12:
+ time = 2080000
+ flags = 0
+ data = length 57455, hash 2754BFA0
+ sample 13:
+ time = 2013333
+ flags = 0
+ data = length 37067, hash CCE6C30F
+ sample 14:
+ time = 1980000
+ flags = 0
+ data = length 14098, hash 60A5760F
+ sample 15:
+ time = 2046666
+ flags = 0
+ data = length 20864, hash 94450211
+ sample 16:
+ time = 2213333
+ flags = 0
+ data = length 62871, hash BA53494F
+ sample 17:
+ time = 2146666
+ flags = 0
+ data = length 38596, hash 420335AC
+ sample 18:
+ time = 2113333
+ flags = 0
+ data = length 17584, hash 2E024B02
+ sample 19:
+ time = 2180000
+ flags = 0
+ data = length 18521, hash 7381819A
+ sample 20:
+ time = 2346666
+ flags = 0
+ data = length 54835, hash F45163BF
+ sample 21:
+ time = 2280000
+ flags = 0
+ data = length 29346, hash A57C757F
+ sample 22:
+ time = 2246666
+ flags = 0
+ data = length 15815, hash 1B194C31
+ sample 23:
+ time = 2313333
+ flags = 0
+ data = length 20390, hash A162AAD0
+ sample 24:
+ time = 2480000
+ flags = 0
+ data = length 64262, hash 875514C7
+ sample 25:
+ time = 2413333
+ flags = 0
+ data = length 39953, hash 3884739A
+ sample 26:
+ time = 2380000
+ flags = 0
+ data = length 23136, hash 8AF1C1AD
+ sample 27:
+ time = 2446666
+ flags = 536870912
+ data = length 26792, hash 3157758F
+track 1:
+ total output bytes = 15570
+ sample count = 39
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 832
+ channelCount = 2
+ sampleRate = 44100
+ encoderDelay = 1698
+ encoderPadding = 609
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 1695056
+ flags = 1
+ data = length 393, hash 608345FA
+ sample 1:
+ time = 1718276
+ flags = 1
+ data = length 402, hash D478A3DE
+ sample 2:
+ time = 1741496
+ flags = 1
+ data = length 404, hash 98A170D8
+ sample 3:
+ time = 1764716
+ flags = 1
+ data = length 397, hash FE8F519C
+ sample 4:
+ time = 1787936
+ flags = 1
+ data = length 386, hash 4FD184BE
+ sample 5:
+ time = 1811156
+ flags = 1
+ data = length 377, hash 76FBE38F
+ sample 6:
+ time = 1834376
+ flags = 1
+ data = length 409, hash 92C677A9
+ sample 7:
+ time = 1857596
+ flags = 1
+ data = length 402, hash 42CFE9E2
+ sample 8:
+ time = 1880816
+ flags = 1
+ data = length 390, hash A5BF0232
+ sample 9:
+ time = 1904036
+ flags = 1
+ data = length 388, hash 55F742C6
+ sample 10:
+ time = 1927256
+ flags = 1
+ data = length 377, hash 84F8DCDD
+ sample 11:
+ time = 1950476
+ flags = 1
+ data = length 391, hash E20DB9EB
+ sample 12:
+ time = 1973696
+ flags = 1
+ data = length 398, hash 2B8A6B07
+ sample 13:
+ time = 1996916
+ flags = 1
+ data = length 381, hash 8E227E10
+ sample 14:
+ time = 2020136
+ flags = 1
+ data = length 393, hash 1C5EE4DA
+ sample 15:
+ time = 2043356
+ flags = 1
+ data = length 393, hash D37FAB94
+ sample 16:
+ time = 2066575
+ flags = 1
+ data = length 380, hash 61D9B8F1
+ sample 17:
+ time = 2089795
+ flags = 1
+ data = length 395, hash BB9069D0
+ sample 18:
+ time = 2113015
+ flags = 1
+ data = length 379, hash 27A4C8AB
+ sample 19:
+ time = 2136235
+ flags = 1
+ data = length 403, hash 2F93ACAE
+ sample 20:
+ time = 2159455
+ flags = 1
+ data = length 415, hash 51099155
+ sample 21:
+ time = 2182675
+ flags = 1
+ data = length 400, hash EC019A99
+ sample 22:
+ time = 2205895
+ flags = 1
+ data = length 401, hash F42E02C7
+ sample 23:
+ time = 2229115
+ flags = 1
+ data = length 400, hash C8E29F0A
+ sample 24:
+ time = 2252335
+ flags = 1
+ data = length 408, hash B388110C
+ sample 25:
+ time = 2275555
+ flags = 1
+ data = length 406, hash FCFBEFD9
+ sample 26:
+ time = 2298775
+ flags = 1
+ data = length 411, hash 9C60D439
+ sample 27:
+ time = 2321995
+ flags = 1
+ data = length 414, hash 8EECCBD9
+ sample 28:
+ time = 2345215
+ flags = 1
+ data = length 393, hash 9B1317BC
+ sample 29:
+ time = 2368435
+ flags = 1
+ data = length 405, hash 4CBBCFBF
+ sample 30:
+ time = 2391655
+ flags = 1
+ data = length 412, hash A8C3BE09
+ sample 31:
+ time = 2414875
+ flags = 1
+ data = length 409, hash CDDB880D
+ sample 32:
+ time = 2438095
+ flags = 1
+ data = length 423, hash 9F87A5D
+ sample 33:
+ time = 2461315
+ flags = 1
+ data = length 399, hash 6C7043B7
+ sample 34:
+ time = 2484535
+ flags = 1
+ data = length 400, hash 297E775C
+ sample 35:
+ time = 2507755
+ flags = 1
+ data = length 397, hash 5732E5A2
+ sample 36:
+ time = 2530975
+ flags = 1
+ data = length 398, hash 127D1EF3
+ sample 37:
+ time = 2554195
+ flags = 1
+ data = length 424, hash BF76C0EC
+ sample 38:
+ time = 2577414
+ flags = 536870913
+ data = length 417, hash 761190B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..fd0ce058b9
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,172 @@
+seekMap:
+ isSeekable = true
+ duration = 2548333
+ getPosition(0) = [[timeUs=611666, position=16205]]
+ getPosition(1) = [[timeUs=611666, position=16205]]
+ getPosition(1274166) = [[timeUs=611666, position=16205], [timeUs=1680000, position=34939]]
+ getPosition(2548333) = [[timeUs=1680000, position=34939]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 1019852
+ sample count = 28
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 196379
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 23.544804
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 97, hash 32FB3D18
+ sample 0:
+ time = 1680000
+ flags = 1
+ data = length 143217, hash A7D06C3F
+ sample 1:
+ time = 1613333
+ flags = 0
+ data = length 32967, hash E490EDD3
+ sample 2:
+ time = 1580000
+ flags = 0
+ data = length 17445, hash 5F91C2B8
+ sample 3:
+ time = 1646666
+ flags = 0
+ data = length 14638, hash 775110FE
+ sample 4:
+ time = 1813333
+ flags = 0
+ data = length 67665, hash A9A21D87
+ sample 5:
+ time = 1746666
+ flags = 0
+ data = length 32392, hash 7E790D61
+ sample 6:
+ time = 1713333
+ flags = 0
+ data = length 10589, hash 6EB324E3
+ sample 7:
+ time = 1780000
+ flags = 0
+ data = length 18023, hash 29D03684
+ sample 8:
+ time = 1946666
+ flags = 0
+ data = length 67946, hash 8135C195
+ sample 9:
+ time = 1880000
+ flags = 0
+ data = length 41030, hash B6A9208
+ sample 10:
+ time = 1846666
+ flags = 0
+ data = length 15110, hash BF682221
+ sample 11:
+ time = 1913333
+ flags = 0
+ data = length 17245, hash 2BAFA805
+ sample 12:
+ time = 2080000
+ flags = 0
+ data = length 57455, hash 2754BFA0
+ sample 13:
+ time = 2013333
+ flags = 0
+ data = length 37067, hash CCE6C30F
+ sample 14:
+ time = 1980000
+ flags = 0
+ data = length 14098, hash 60A5760F
+ sample 15:
+ time = 2046666
+ flags = 0
+ data = length 20864, hash 94450211
+ sample 16:
+ time = 2213333
+ flags = 0
+ data = length 62871, hash BA53494F
+ sample 17:
+ time = 2146666
+ flags = 0
+ data = length 38596, hash 420335AC
+ sample 18:
+ time = 2113333
+ flags = 0
+ data = length 17584, hash 2E024B02
+ sample 19:
+ time = 2180000
+ flags = 0
+ data = length 18521, hash 7381819A
+ sample 20:
+ time = 2346666
+ flags = 0
+ data = length 54835, hash F45163BF
+ sample 21:
+ time = 2280000
+ flags = 0
+ data = length 29346, hash A57C757F
+ sample 22:
+ time = 2246666
+ flags = 0
+ data = length 15815, hash 1B194C31
+ sample 23:
+ time = 2313333
+ flags = 0
+ data = length 20390, hash A162AAD0
+ sample 24:
+ time = 2480000
+ flags = 0
+ data = length 64262, hash 875514C7
+ sample 25:
+ time = 2413333
+ flags = 0
+ data = length 39953, hash 3884739A
+ sample 26:
+ time = 2380000
+ flags = 0
+ data = length 23136, hash 8AF1C1AD
+ sample 27:
+ time = 2446666
+ flags = 536870912
+ data = length 26792, hash 3157758F
+track 1:
+ total output bytes = 1239
+ sample count = 3
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 832
+ channelCount = 2
+ sampleRate = 44100
+ encoderDelay = 1698
+ encoderPadding = 609
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 2530975
+ flags = 1
+ data = length 398, hash 127D1EF3
+ sample 1:
+ time = 2554195
+ flags = 1
+ data = length 424, hash BF76C0EC
+ sample 2:
+ time = 2577414
+ flags = 536870913
+ data = length 417, hash 761190B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..ff1b407187
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,736 @@
+seekMap:
+ isSeekable = true
+ duration = 2548333
+ getPosition(0) = [[timeUs=611666, position=16205]]
+ getPosition(1) = [[timeUs=611666, position=16205]]
+ getPosition(1274166) = [[timeUs=611666, position=16205], [timeUs=1680000, position=34939]]
+ getPosition(2548333) = [[timeUs=1680000, position=34939]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 2168517
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 196379
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 23.544804
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 97, hash 32FB3D18
+ sample 0:
+ time = 611666
+ flags = 1
+ data = length 196349, hash 484B3706
+ sample 1:
+ time = 545000
+ flags = 0
+ data = length 36093, hash 9964470A
+ sample 2:
+ time = 511666
+ flags = 0
+ data = length 9196, hash 124A821F
+ sample 3:
+ time = 578333
+ flags = 0
+ data = length 11337, hash 2A61C44F
+ sample 4:
+ time = 745000
+ flags = 0
+ data = length 89197, hash E331760E
+ sample 5:
+ time = 678333
+ flags = 0
+ data = length 27802, hash 280175A2
+ sample 6:
+ time = 645000
+ flags = 0
+ data = length 9295, hash 1CC71F4D
+ sample 7:
+ time = 711666
+ flags = 0
+ data = length 11844, hash 595DBFFA
+ sample 8:
+ time = 878333
+ flags = 0
+ data = length 78369, hash 958807CA
+ sample 9:
+ time = 811666
+ flags = 0
+ data = length 28320, hash 8B5DAC6A
+ sample 10:
+ time = 778333
+ flags = 0
+ data = length 13845, hash 868C5F96
+ sample 11:
+ time = 845000
+ flags = 0
+ data = length 13734, hash 2BF28058
+ sample 12:
+ time = 1011666
+ flags = 0
+ data = length 60140, hash 4DCE6D29
+ sample 13:
+ time = 945000
+ flags = 0
+ data = length 28024, hash 2808AC27
+ sample 14:
+ time = 911666
+ flags = 0
+ data = length 14865, hash DA936298
+ sample 15:
+ time = 978333
+ flags = 0
+ data = length 15631, hash F11D2528
+ sample 16:
+ time = 1145000
+ flags = 0
+ data = length 59293, hash 1C3296CD
+ sample 17:
+ time = 1078333
+ flags = 0
+ data = length 27545, hash 189E13B8
+ sample 18:
+ time = 1045000
+ flags = 0
+ data = length 14959, hash A47356EF
+ sample 19:
+ time = 1111666
+ flags = 0
+ data = length 15621, hash C391E893
+ sample 20:
+ time = 1278333
+ flags = 0
+ data = length 66112, hash 54A454C4
+ sample 21:
+ time = 1211666
+ flags = 0
+ data = length 33610, hash 4C3F57F2
+ sample 22:
+ time = 1178333
+ flags = 0
+ data = length 13205, hash EC181CA7
+ sample 23:
+ time = 1245000
+ flags = 0
+ data = length 18525, hash 20D8FE9D
+ sample 24:
+ time = 1411666
+ flags = 0
+ data = length 63613, hash B807DB7E
+ sample 25:
+ time = 1345000
+ flags = 0
+ data = length 40816, hash 2D023C8F
+ sample 26:
+ time = 1311666
+ flags = 0
+ data = length 17728, hash B07033B9
+ sample 27:
+ time = 1378333
+ flags = 0
+ data = length 13105, hash 4E3B7245
+ sample 28:
+ time = 1546666
+ flags = 0
+ data = length 54500, hash 88F3013F
+ sample 29:
+ time = 1478333
+ flags = 0
+ data = length 34711, hash 9918D286
+ sample 30:
+ time = 1445000
+ flags = 0
+ data = length 14764, hash CF9044AB
+ sample 31:
+ time = 1513333
+ flags = 0
+ data = length 16517, hash BA27C997
+ sample 32:
+ time = 1680000
+ flags = 1
+ data = length 143217, hash A7D06C3F
+ sample 33:
+ time = 1613333
+ flags = 0
+ data = length 32967, hash E490EDD3
+ sample 34:
+ time = 1580000
+ flags = 0
+ data = length 17445, hash 5F91C2B8
+ sample 35:
+ time = 1646666
+ flags = 0
+ data = length 14638, hash 775110FE
+ sample 36:
+ time = 1813333
+ flags = 0
+ data = length 67665, hash A9A21D87
+ sample 37:
+ time = 1746666
+ flags = 0
+ data = length 32392, hash 7E790D61
+ sample 38:
+ time = 1713333
+ flags = 0
+ data = length 10589, hash 6EB324E3
+ sample 39:
+ time = 1780000
+ flags = 0
+ data = length 18023, hash 29D03684
+ sample 40:
+ time = 1946666
+ flags = 0
+ data = length 67946, hash 8135C195
+ sample 41:
+ time = 1880000
+ flags = 0
+ data = length 41030, hash B6A9208
+ sample 42:
+ time = 1846666
+ flags = 0
+ data = length 15110, hash BF682221
+ sample 43:
+ time = 1913333
+ flags = 0
+ data = length 17245, hash 2BAFA805
+ sample 44:
+ time = 2080000
+ flags = 0
+ data = length 57455, hash 2754BFA0
+ sample 45:
+ time = 2013333
+ flags = 0
+ data = length 37067, hash CCE6C30F
+ sample 46:
+ time = 1980000
+ flags = 0
+ data = length 14098, hash 60A5760F
+ sample 47:
+ time = 2046666
+ flags = 0
+ data = length 20864, hash 94450211
+ sample 48:
+ time = 2213333
+ flags = 0
+ data = length 62871, hash BA53494F
+ sample 49:
+ time = 2146666
+ flags = 0
+ data = length 38596, hash 420335AC
+ sample 50:
+ time = 2113333
+ flags = 0
+ data = length 17584, hash 2E024B02
+ sample 51:
+ time = 2180000
+ flags = 0
+ data = length 18521, hash 7381819A
+ sample 52:
+ time = 2346666
+ flags = 0
+ data = length 54835, hash F45163BF
+ sample 53:
+ time = 2280000
+ flags = 0
+ data = length 29346, hash A57C757F
+ sample 54:
+ time = 2246666
+ flags = 0
+ data = length 15815, hash 1B194C31
+ sample 55:
+ time = 2313333
+ flags = 0
+ data = length 20390, hash A162AAD0
+ sample 56:
+ time = 2480000
+ flags = 0
+ data = length 64262, hash 875514C7
+ sample 57:
+ time = 2413333
+ flags = 0
+ data = length 39953, hash 3884739A
+ sample 58:
+ time = 2380000
+ flags = 0
+ data = length 23136, hash 8AF1C1AD
+ sample 59:
+ time = 2446666
+ flags = 536870912
+ data = length 26792, hash 3157758F
+track 1:
+ total output bytes = 45765
+ sample count = 112
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 832
+ channelCount = 2
+ sampleRate = 44100
+ encoderDelay = 1698
+ encoderPadding = 609
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 802, hash DE7F20AC
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 457, hash 3F6EF91
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 439, hash 9EFEF547
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 425, hash 9E1A2B66
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 420, hash 7AA38F34
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 399, hash 919F7E1C
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 394, hash 4EB03DBE
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 392, hash C027E340
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 389, hash F5CA0E30
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 406, hash C4D75949
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 418, hash A00CE696
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 398, hash F05C17A5
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 399, hash DF5BEB79
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 391, hash A7717052
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 413, hash CD16EEE8
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 417, hash AB8F24B7
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 420, hash EB187AD9
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 404, hash C7E2028A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 427, hash 960C2672
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 419, hash 333F12D8
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 409, hash 14611ACA
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 397, hash FF7C175F
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 397, hash 3C41B7F
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 407, hash E5FD065C
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 402, hash 4B054010
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 402, hash A831296A
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 414, hash A140A593
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 416, hash 1812B419
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 399, hash 8365C231
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 385, hash D661688B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 403, hash BC9E5E2E
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 398, hash 59804AE8
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 406, hash 3A42B5B7
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 414, hash 53FA9880
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 398, hash 8D3ADD23
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 425, hash C9ADA235
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 408, hash 3A4EFC47
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 414, hash 6FED5E60
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 427, hash 42AC5664
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 429, hash 62F3725D
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 403, hash 6C11E259
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 421, hash 4EF805F6
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 404, hash 2094740F
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 426, hash FCF2A593
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 423, hash DB09D7F0
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 411, hash A4CB44DB
+ sample 46:
+ time = 1068117
+ flags = 1
+ data = length 404, hash 4959B833
+ sample 47:
+ time = 1091337
+ flags = 1
+ data = length 403, hash B5C8DFA1
+ sample 48:
+ time = 1114557
+ flags = 1
+ data = length 422, hash ABE9358F
+ sample 49:
+ time = 1137777
+ flags = 1
+ data = length 418, hash C1914F50
+ sample 50:
+ time = 1160997
+ flags = 1
+ data = length 421, hash 4453B916
+ sample 51:
+ time = 1184217
+ flags = 1
+ data = length 400, hash 73452AD3
+ sample 52:
+ time = 1207437
+ flags = 1
+ data = length 400, hash F094F7B
+ sample 53:
+ time = 1230657
+ flags = 1
+ data = length 410, hash EC5D2BC2
+ sample 54:
+ time = 1253877
+ flags = 1
+ data = length 391, hash 9DC6D32
+ sample 55:
+ time = 1277097
+ flags = 1
+ data = length 361, hash 6612AF76
+ sample 56:
+ time = 1300317
+ flags = 1
+ data = length 391, hash 4B59EFBD
+ sample 57:
+ time = 1323537
+ flags = 1
+ data = length 390, hash 8CB3956F
+ sample 58:
+ time = 1346757
+ flags = 1
+ data = length 388, hash F9B691B9
+ sample 59:
+ time = 1369977
+ flags = 1
+ data = length 399, hash 280948A3
+ sample 60:
+ time = 1393197
+ flags = 1
+ data = length 390, hash 929628B2
+ sample 61:
+ time = 1416417
+ flags = 1
+ data = length 387, hash 56291FF5
+ sample 62:
+ time = 1439637
+ flags = 1
+ data = length 446, hash 2A7FE5FE
+ sample 63:
+ time = 1462857
+ flags = 1
+ data = length 436, hash D872A8A
+ sample 64:
+ time = 1486077
+ flags = 1
+ data = length 394, hash EA791960
+ sample 65:
+ time = 1509297
+ flags = 1
+ data = length 417, hash BEEC2ED0
+ sample 66:
+ time = 1532517
+ flags = 1
+ data = length 442, hash FDFFC29F
+ sample 67:
+ time = 1555736
+ flags = 1
+ data = length 416, hash 2F2ED36F
+ sample 68:
+ time = 1578956
+ flags = 1
+ data = length 396, hash 1CFA7982
+ sample 69:
+ time = 1602176
+ flags = 1
+ data = length 395, hash 2998BEF2
+ sample 70:
+ time = 1625396
+ flags = 1
+ data = length 389, hash AB8EAB86
+ sample 71:
+ time = 1648616
+ flags = 1
+ data = length 404, hash AC927E7
+ sample 72:
+ time = 1671836
+ flags = 1
+ data = length 418, hash 60370BB0
+ sample 73:
+ time = 1695056
+ flags = 1
+ data = length 393, hash 608345FA
+ sample 74:
+ time = 1718276
+ flags = 1
+ data = length 402, hash D478A3DE
+ sample 75:
+ time = 1741496
+ flags = 1
+ data = length 404, hash 98A170D8
+ sample 76:
+ time = 1764716
+ flags = 1
+ data = length 397, hash FE8F519C
+ sample 77:
+ time = 1787936
+ flags = 1
+ data = length 386, hash 4FD184BE
+ sample 78:
+ time = 1811156
+ flags = 1
+ data = length 377, hash 76FBE38F
+ sample 79:
+ time = 1834376
+ flags = 1
+ data = length 409, hash 92C677A9
+ sample 80:
+ time = 1857596
+ flags = 1
+ data = length 402, hash 42CFE9E2
+ sample 81:
+ time = 1880816
+ flags = 1
+ data = length 390, hash A5BF0232
+ sample 82:
+ time = 1904036
+ flags = 1
+ data = length 388, hash 55F742C6
+ sample 83:
+ time = 1927256
+ flags = 1
+ data = length 377, hash 84F8DCDD
+ sample 84:
+ time = 1950476
+ flags = 1
+ data = length 391, hash E20DB9EB
+ sample 85:
+ time = 1973696
+ flags = 1
+ data = length 398, hash 2B8A6B07
+ sample 86:
+ time = 1996916
+ flags = 1
+ data = length 381, hash 8E227E10
+ sample 87:
+ time = 2020136
+ flags = 1
+ data = length 393, hash 1C5EE4DA
+ sample 88:
+ time = 2043356
+ flags = 1
+ data = length 393, hash D37FAB94
+ sample 89:
+ time = 2066575
+ flags = 1
+ data = length 380, hash 61D9B8F1
+ sample 90:
+ time = 2089795
+ flags = 1
+ data = length 395, hash BB9069D0
+ sample 91:
+ time = 2113015
+ flags = 1
+ data = length 379, hash 27A4C8AB
+ sample 92:
+ time = 2136235
+ flags = 1
+ data = length 403, hash 2F93ACAE
+ sample 93:
+ time = 2159455
+ flags = 1
+ data = length 415, hash 51099155
+ sample 94:
+ time = 2182675
+ flags = 1
+ data = length 400, hash EC019A99
+ sample 95:
+ time = 2205895
+ flags = 1
+ data = length 401, hash F42E02C7
+ sample 96:
+ time = 2229115
+ flags = 1
+ data = length 400, hash C8E29F0A
+ sample 97:
+ time = 2252335
+ flags = 1
+ data = length 408, hash B388110C
+ sample 98:
+ time = 2275555
+ flags = 1
+ data = length 406, hash FCFBEFD9
+ sample 99:
+ time = 2298775
+ flags = 1
+ data = length 411, hash 9C60D439
+ sample 100:
+ time = 2321995
+ flags = 1
+ data = length 414, hash 8EECCBD9
+ sample 101:
+ time = 2345215
+ flags = 1
+ data = length 393, hash 9B1317BC
+ sample 102:
+ time = 2368435
+ flags = 1
+ data = length 405, hash 4CBBCFBF
+ sample 103:
+ time = 2391655
+ flags = 1
+ data = length 412, hash A8C3BE09
+ sample 104:
+ time = 2414875
+ flags = 1
+ data = length 409, hash CDDB880D
+ sample 105:
+ time = 2438095
+ flags = 1
+ data = length 423, hash 9F87A5D
+ sample 106:
+ time = 2461315
+ flags = 1
+ data = length 399, hash 6C7043B7
+ sample 107:
+ time = 2484535
+ flags = 1
+ data = length 400, hash 297E775C
+ sample 108:
+ time = 2507755
+ flags = 1
+ data = length 397, hash 5732E5A2
+ sample 109:
+ time = 2530975
+ flags = 1
+ data = length 398, hash 127D1EF3
+ sample 110:
+ time = 2554195
+ flags = 1
+ data = length 424, hash BF76C0EC
+ sample 111:
+ time = 2577414
+ flags = 536870913
+ data = length 417, hash 761190B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..e8a4612517
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,345 @@
+seekMap:
+ isSeekable = true
+ duration = 1065600
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44]]
+ getPosition(532800) = [[timeUs=0, position=44]]
+ getPosition(1065600) = [[timeUs=0, position=44]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 301392
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640034
+ maxInputSize = 22910
+ maxNumReorderSamples = 0
+ width = 1080
+ height = 720
+ frameRate = 31.004547
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 23, hash 33E412EE
+ data = length 9, hash FBAFBC0C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 7744, hash DDF91733
+ sample 1:
+ time = 33355
+ flags = 0
+ data = length 1168, hash 89E48A20
+ sample 2:
+ time = 66722
+ flags = 0
+ data = length 960, hash D4AD9EF0
+ sample 3:
+ time = 100100
+ flags = 0
+ data = length 976, hash CD49C23C
+ sample 4:
+ time = 133455
+ flags = 0
+ data = length 1360, hash 337B78A9
+ sample 5:
+ time = 166822
+ flags = 0
+ data = length 2288, hash 5D5FD1C8
+ sample 6:
+ time = 200200
+ flags = 0
+ data = length 3856, hash 3D7DCD46
+ sample 7:
+ time = 233555
+ flags = 0
+ data = length 4048, hash 47C78814
+ sample 8:
+ time = 266922
+ flags = 0
+ data = length 6144, hash 8FD9AD7D
+ sample 9:
+ time = 300300
+ flags = 0
+ data = length 7632, hash 4245F848
+ sample 10:
+ time = 333655
+ flags = 0
+ data = length 9792, hash B2B9AB4B
+ sample 11:
+ time = 367022
+ flags = 0
+ data = length 14496, hash E0F2E0BA
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 17664, hash 3E3189E
+ sample 13:
+ time = 433755
+ flags = 0
+ data = length 5712, hash CA808ECF
+ sample 14:
+ time = 467122
+ flags = 0
+ data = length 9776, hash C875D1AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 17712, hash 69AE17D4
+ sample 16:
+ time = 533855
+ flags = 0
+ data = length 11440, hash 7370E78C
+ sample 17:
+ time = 567222
+ flags = 0
+ data = length 8544, hash 5A581986
+ sample 18:
+ time = 600600
+ flags = 0
+ data = length 19904, hash 98AB5C44
+ sample 19:
+ time = 633955
+ flags = 0
+ data = length 14352, hash 74B754E3
+ sample 20:
+ time = 667322
+ flags = 0
+ data = length 9568, hash 369746A6
+ sample 21:
+ time = 700700
+ flags = 0
+ data = length 12192, hash E0F8A71A
+ sample 22:
+ time = 734055
+ flags = 0
+ data = length 22880, hash 75E833BA
+ sample 23:
+ time = 767422
+ flags = 0
+ data = length 16832, hash E8BFCFE3
+ sample 24:
+ time = 800800
+ flags = 0
+ data = length 5120, hash E04AEF94
+ sample 25:
+ time = 834155
+ flags = 0
+ data = length 9888, hash 1166103E
+ sample 26:
+ time = 867522
+ flags = 0
+ data = length 17024, hash F9A96740
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 20864, hash DF9E88B8
+ sample 28:
+ time = 934255
+ flags = 0
+ data = length 7216, hash BE22BE2F
+ sample 29:
+ time = 967622
+ flags = 536870912
+ data = length 14240, hash E190BF31
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ id = 3
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67208
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90437
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113645
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136875
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160083
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183312
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206520
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229750
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252958
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276187
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299416
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322625
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345854
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369062
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392291
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415500
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438729
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461958
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485166
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508395
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531604
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554833
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578041
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601270
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624479
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647708
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670937
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694145
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717375
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740583
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763812
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787020
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810250
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833458
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856687
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879916
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903125
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926354
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949562
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972791
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996000
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019229
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042437
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065666
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..1e3aa843ba
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,293 @@
+seekMap:
+ isSeekable = true
+ duration = 1065600
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44]]
+ getPosition(532800) = [[timeUs=0, position=44]]
+ getPosition(1065600) = [[timeUs=0, position=44]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 301392
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640034
+ maxInputSize = 22910
+ maxNumReorderSamples = 0
+ width = 1080
+ height = 720
+ frameRate = 31.004547
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 23, hash 33E412EE
+ data = length 9, hash FBAFBC0C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 7744, hash DDF91733
+ sample 1:
+ time = 33355
+ flags = 0
+ data = length 1168, hash 89E48A20
+ sample 2:
+ time = 66722
+ flags = 0
+ data = length 960, hash D4AD9EF0
+ sample 3:
+ time = 100100
+ flags = 0
+ data = length 976, hash CD49C23C
+ sample 4:
+ time = 133455
+ flags = 0
+ data = length 1360, hash 337B78A9
+ sample 5:
+ time = 166822
+ flags = 0
+ data = length 2288, hash 5D5FD1C8
+ sample 6:
+ time = 200200
+ flags = 0
+ data = length 3856, hash 3D7DCD46
+ sample 7:
+ time = 233555
+ flags = 0
+ data = length 4048, hash 47C78814
+ sample 8:
+ time = 266922
+ flags = 0
+ data = length 6144, hash 8FD9AD7D
+ sample 9:
+ time = 300300
+ flags = 0
+ data = length 7632, hash 4245F848
+ sample 10:
+ time = 333655
+ flags = 0
+ data = length 9792, hash B2B9AB4B
+ sample 11:
+ time = 367022
+ flags = 0
+ data = length 14496, hash E0F2E0BA
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 17664, hash 3E3189E
+ sample 13:
+ time = 433755
+ flags = 0
+ data = length 5712, hash CA808ECF
+ sample 14:
+ time = 467122
+ flags = 0
+ data = length 9776, hash C875D1AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 17712, hash 69AE17D4
+ sample 16:
+ time = 533855
+ flags = 0
+ data = length 11440, hash 7370E78C
+ sample 17:
+ time = 567222
+ flags = 0
+ data = length 8544, hash 5A581986
+ sample 18:
+ time = 600600
+ flags = 0
+ data = length 19904, hash 98AB5C44
+ sample 19:
+ time = 633955
+ flags = 0
+ data = length 14352, hash 74B754E3
+ sample 20:
+ time = 667322
+ flags = 0
+ data = length 9568, hash 369746A6
+ sample 21:
+ time = 700700
+ flags = 0
+ data = length 12192, hash E0F8A71A
+ sample 22:
+ time = 734055
+ flags = 0
+ data = length 22880, hash 75E833BA
+ sample 23:
+ time = 767422
+ flags = 0
+ data = length 16832, hash E8BFCFE3
+ sample 24:
+ time = 800800
+ flags = 0
+ data = length 5120, hash E04AEF94
+ sample 25:
+ time = 834155
+ flags = 0
+ data = length 9888, hash 1166103E
+ sample 26:
+ time = 867522
+ flags = 0
+ data = length 17024, hash F9A96740
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 20864, hash DF9E88B8
+ sample 28:
+ time = 934255
+ flags = 0
+ data = length 7216, hash BE22BE2F
+ sample 29:
+ time = 967622
+ flags = 536870912
+ data = length 14240, hash E190BF31
+track 1:
+ total output bytes = 7235
+ sample count = 32
+ format 0:
+ id = 3
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 345854
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 1:
+ time = 369062
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 2:
+ time = 392291
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 3:
+ time = 415500
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 4:
+ time = 438729
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 5:
+ time = 461958
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 6:
+ time = 485166
+ flags = 1
+ data = length 219, hash 41275022
+ sample 7:
+ time = 508395
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 8:
+ time = 531604
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 9:
+ time = 554833
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 10:
+ time = 578041
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 11:
+ time = 601270
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 12:
+ time = 624479
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 13:
+ time = 647708
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 14:
+ time = 670937
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 15:
+ time = 694145
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 16:
+ time = 717375
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 17:
+ time = 740583
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 18:
+ time = 763812
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 19:
+ time = 787020
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 20:
+ time = 810250
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 21:
+ time = 833458
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 22:
+ time = 856687
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 23:
+ time = 879916
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 24:
+ time = 903125
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 25:
+ time = 926354
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 26:
+ time = 949562
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 27:
+ time = 972791
+ flags = 1
+ data = length 227, hash 66757231
+ sample 28:
+ time = 996000
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 29:
+ time = 1019229
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 30:
+ time = 1042437
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 31:
+ time = 1065666
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..e3ff1fedfb
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,233 @@
+seekMap:
+ isSeekable = true
+ duration = 1065600
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44]]
+ getPosition(532800) = [[timeUs=0, position=44]]
+ getPosition(1065600) = [[timeUs=0, position=44]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 301392
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640034
+ maxInputSize = 22910
+ maxNumReorderSamples = 0
+ width = 1080
+ height = 720
+ frameRate = 31.004547
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 23, hash 33E412EE
+ data = length 9, hash FBAFBC0C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 7744, hash DDF91733
+ sample 1:
+ time = 33355
+ flags = 0
+ data = length 1168, hash 89E48A20
+ sample 2:
+ time = 66722
+ flags = 0
+ data = length 960, hash D4AD9EF0
+ sample 3:
+ time = 100100
+ flags = 0
+ data = length 976, hash CD49C23C
+ sample 4:
+ time = 133455
+ flags = 0
+ data = length 1360, hash 337B78A9
+ sample 5:
+ time = 166822
+ flags = 0
+ data = length 2288, hash 5D5FD1C8
+ sample 6:
+ time = 200200
+ flags = 0
+ data = length 3856, hash 3D7DCD46
+ sample 7:
+ time = 233555
+ flags = 0
+ data = length 4048, hash 47C78814
+ sample 8:
+ time = 266922
+ flags = 0
+ data = length 6144, hash 8FD9AD7D
+ sample 9:
+ time = 300300
+ flags = 0
+ data = length 7632, hash 4245F848
+ sample 10:
+ time = 333655
+ flags = 0
+ data = length 9792, hash B2B9AB4B
+ sample 11:
+ time = 367022
+ flags = 0
+ data = length 14496, hash E0F2E0BA
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 17664, hash 3E3189E
+ sample 13:
+ time = 433755
+ flags = 0
+ data = length 5712, hash CA808ECF
+ sample 14:
+ time = 467122
+ flags = 0
+ data = length 9776, hash C875D1AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 17712, hash 69AE17D4
+ sample 16:
+ time = 533855
+ flags = 0
+ data = length 11440, hash 7370E78C
+ sample 17:
+ time = 567222
+ flags = 0
+ data = length 8544, hash 5A581986
+ sample 18:
+ time = 600600
+ flags = 0
+ data = length 19904, hash 98AB5C44
+ sample 19:
+ time = 633955
+ flags = 0
+ data = length 14352, hash 74B754E3
+ sample 20:
+ time = 667322
+ flags = 0
+ data = length 9568, hash 369746A6
+ sample 21:
+ time = 700700
+ flags = 0
+ data = length 12192, hash E0F8A71A
+ sample 22:
+ time = 734055
+ flags = 0
+ data = length 22880, hash 75E833BA
+ sample 23:
+ time = 767422
+ flags = 0
+ data = length 16832, hash E8BFCFE3
+ sample 24:
+ time = 800800
+ flags = 0
+ data = length 5120, hash E04AEF94
+ sample 25:
+ time = 834155
+ flags = 0
+ data = length 9888, hash 1166103E
+ sample 26:
+ time = 867522
+ flags = 0
+ data = length 17024, hash F9A96740
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 20864, hash DF9E88B8
+ sample 28:
+ time = 934255
+ flags = 0
+ data = length 7216, hash BE22BE2F
+ sample 29:
+ time = 967622
+ flags = 536870912
+ data = length 14240, hash E190BF31
+track 1:
+ total output bytes = 3776
+ sample count = 17
+ format 0:
+ id = 3
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 694145
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 1:
+ time = 717375
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 2:
+ time = 740583
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 3:
+ time = 763812
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 4:
+ time = 787020
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 5:
+ time = 810250
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 6:
+ time = 833458
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 7:
+ time = 856687
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 8:
+ time = 879916
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 9:
+ time = 903125
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 10:
+ time = 926354
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 11:
+ time = 949562
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 12:
+ time = 972791
+ flags = 1
+ data = length 227, hash 66757231
+ sample 13:
+ time = 996000
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 14:
+ time = 1019229
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 15:
+ time = 1042437
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 16:
+ time = 1065666
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..f262aae7e5
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,173 @@
+seekMap:
+ isSeekable = true
+ duration = 1065600
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44]]
+ getPosition(532800) = [[timeUs=0, position=44]]
+ getPosition(1065600) = [[timeUs=0, position=44]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 301392
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640034
+ maxInputSize = 22910
+ maxNumReorderSamples = 0
+ width = 1080
+ height = 720
+ frameRate = 31.004547
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 23, hash 33E412EE
+ data = length 9, hash FBAFBC0C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 7744, hash DDF91733
+ sample 1:
+ time = 33355
+ flags = 0
+ data = length 1168, hash 89E48A20
+ sample 2:
+ time = 66722
+ flags = 0
+ data = length 960, hash D4AD9EF0
+ sample 3:
+ time = 100100
+ flags = 0
+ data = length 976, hash CD49C23C
+ sample 4:
+ time = 133455
+ flags = 0
+ data = length 1360, hash 337B78A9
+ sample 5:
+ time = 166822
+ flags = 0
+ data = length 2288, hash 5D5FD1C8
+ sample 6:
+ time = 200200
+ flags = 0
+ data = length 3856, hash 3D7DCD46
+ sample 7:
+ time = 233555
+ flags = 0
+ data = length 4048, hash 47C78814
+ sample 8:
+ time = 266922
+ flags = 0
+ data = length 6144, hash 8FD9AD7D
+ sample 9:
+ time = 300300
+ flags = 0
+ data = length 7632, hash 4245F848
+ sample 10:
+ time = 333655
+ flags = 0
+ data = length 9792, hash B2B9AB4B
+ sample 11:
+ time = 367022
+ flags = 0
+ data = length 14496, hash E0F2E0BA
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 17664, hash 3E3189E
+ sample 13:
+ time = 433755
+ flags = 0
+ data = length 5712, hash CA808ECF
+ sample 14:
+ time = 467122
+ flags = 0
+ data = length 9776, hash C875D1AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 17712, hash 69AE17D4
+ sample 16:
+ time = 533855
+ flags = 0
+ data = length 11440, hash 7370E78C
+ sample 17:
+ time = 567222
+ flags = 0
+ data = length 8544, hash 5A581986
+ sample 18:
+ time = 600600
+ flags = 0
+ data = length 19904, hash 98AB5C44
+ sample 19:
+ time = 633955
+ flags = 0
+ data = length 14352, hash 74B754E3
+ sample 20:
+ time = 667322
+ flags = 0
+ data = length 9568, hash 369746A6
+ sample 21:
+ time = 700700
+ flags = 0
+ data = length 12192, hash E0F8A71A
+ sample 22:
+ time = 734055
+ flags = 0
+ data = length 22880, hash 75E833BA
+ sample 23:
+ time = 767422
+ flags = 0
+ data = length 16832, hash E8BFCFE3
+ sample 24:
+ time = 800800
+ flags = 0
+ data = length 5120, hash E04AEF94
+ sample 25:
+ time = 834155
+ flags = 0
+ data = length 9888, hash 1166103E
+ sample 26:
+ time = 867522
+ flags = 0
+ data = length 17024, hash F9A96740
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 20864, hash DF9E88B8
+ sample 28:
+ time = 934255
+ flags = 0
+ data = length 7216, hash BE22BE2F
+ sample 29:
+ time = 967622
+ flags = 536870912
+ data = length 14240, hash E190BF31
+track 1:
+ total output bytes = 235
+ sample count = 2
+ format 0:
+ id = 3
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 1042437
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 1:
+ time = 1065666
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..e8a4612517
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_empty_track.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,345 @@
+seekMap:
+ isSeekable = true
+ duration = 1065600
+ getPosition(0) = [[timeUs=0, position=44]]
+ getPosition(1) = [[timeUs=0, position=44]]
+ getPosition(532800) = [[timeUs=0, position=44]]
+ getPosition(1065600) = [[timeUs=0, position=44]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 301392
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.640034
+ maxInputSize = 22910
+ maxNumReorderSamples = 0
+ width = 1080
+ height = 720
+ frameRate = 31.004547
+ colorInfo:
+ colorSpace = 1
+ colorRange = 2
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 23, hash 33E412EE
+ data = length 9, hash FBAFBC0C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 7744, hash DDF91733
+ sample 1:
+ time = 33355
+ flags = 0
+ data = length 1168, hash 89E48A20
+ sample 2:
+ time = 66722
+ flags = 0
+ data = length 960, hash D4AD9EF0
+ sample 3:
+ time = 100100
+ flags = 0
+ data = length 976, hash CD49C23C
+ sample 4:
+ time = 133455
+ flags = 0
+ data = length 1360, hash 337B78A9
+ sample 5:
+ time = 166822
+ flags = 0
+ data = length 2288, hash 5D5FD1C8
+ sample 6:
+ time = 200200
+ flags = 0
+ data = length 3856, hash 3D7DCD46
+ sample 7:
+ time = 233555
+ flags = 0
+ data = length 4048, hash 47C78814
+ sample 8:
+ time = 266922
+ flags = 0
+ data = length 6144, hash 8FD9AD7D
+ sample 9:
+ time = 300300
+ flags = 0
+ data = length 7632, hash 4245F848
+ sample 10:
+ time = 333655
+ flags = 0
+ data = length 9792, hash B2B9AB4B
+ sample 11:
+ time = 367022
+ flags = 0
+ data = length 14496, hash E0F2E0BA
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 17664, hash 3E3189E
+ sample 13:
+ time = 433755
+ flags = 0
+ data = length 5712, hash CA808ECF
+ sample 14:
+ time = 467122
+ flags = 0
+ data = length 9776, hash C875D1AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 17712, hash 69AE17D4
+ sample 16:
+ time = 533855
+ flags = 0
+ data = length 11440, hash 7370E78C
+ sample 17:
+ time = 567222
+ flags = 0
+ data = length 8544, hash 5A581986
+ sample 18:
+ time = 600600
+ flags = 0
+ data = length 19904, hash 98AB5C44
+ sample 19:
+ time = 633955
+ flags = 0
+ data = length 14352, hash 74B754E3
+ sample 20:
+ time = 667322
+ flags = 0
+ data = length 9568, hash 369746A6
+ sample 21:
+ time = 700700
+ flags = 0
+ data = length 12192, hash E0F8A71A
+ sample 22:
+ time = 734055
+ flags = 0
+ data = length 22880, hash 75E833BA
+ sample 23:
+ time = 767422
+ flags = 0
+ data = length 16832, hash E8BFCFE3
+ sample 24:
+ time = 800800
+ flags = 0
+ data = length 5120, hash E04AEF94
+ sample 25:
+ time = 834155
+ flags = 0
+ data = length 9888, hash 1166103E
+ sample 26:
+ time = 867522
+ flags = 0
+ data = length 17024, hash F9A96740
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 20864, hash DF9E88B8
+ sample 28:
+ time = 934255
+ flags = 0
+ data = length 7216, hash BE22BE2F
+ sample 29:
+ time = 967622
+ flags = 536870912
+ data = length 14240, hash E190BF31
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ id = 3
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[mdta: key=com.android.version, value=13, xyz: latitude=40.68, longitude=-74.4999, Mp4Timestamp: creation time=2000000000, modification time=2000000000, timescale=10000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67208
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90437
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113645
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136875
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160083
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183312
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206520
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229750
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252958
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276187
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299416
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322625
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345854
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369062
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392291
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415500
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438729
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461958
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485166
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508395
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531604
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554833
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578041
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601270
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624479
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647708
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670937
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694145
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717375
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740583
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763812
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787020
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810250
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833458
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856687
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879916
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903125
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926354
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949562
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972791
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996000
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019229
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042437
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065666
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..ef97d7fe18
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2192]]
+ getPosition(1) = [[timeUs=0, position=2192]]
+ getPosition(512000) = [[timeUs=0, position=2192]]
+ getPosition(1024000) = [[timeUs=0, position=2192]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..239554ae9a
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,295 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2192]]
+ getPosition(1) = [[timeUs=0, position=2192]]
+ getPosition(512000) = [[timeUs=0, position=2192]]
+ getPosition(1024000) = [[timeUs=0, position=2192]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 7464
+ sample count = 33
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 1:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 2:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 3:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 4:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 5:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 6:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 7:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 8:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 9:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 10:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 11:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 12:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 13:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 14:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 15:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 16:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 17:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 18:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 19:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 20:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 21:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 22:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 23:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 24:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 25:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 26:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 27:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 28:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 29:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 30:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 31:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 32:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..b7c17e0e36
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,235 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2192]]
+ getPosition(1) = [[timeUs=0, position=2192]]
+ getPosition(512000) = [[timeUs=0, position=2192]]
+ getPosition(1024000) = [[timeUs=0, position=2192]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 4019
+ sample count = 18
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 1:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 2:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 3:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 4:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 5:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 6:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 7:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 8:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 9:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 10:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 11:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 12:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 13:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 14:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 15:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 16:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 17:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..ac009a7bfc
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,175 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2192]]
+ getPosition(1) = [[timeUs=0, position=2192]]
+ getPosition(512000) = [[timeUs=0, position=2192]]
+ getPosition(1024000) = [[timeUs=0, position=2192]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 470
+ sample count = 3
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 1:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 2:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..ef97d7fe18
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2192]]
+ getPosition(1) = [[timeUs=0, position=2192]]
+ getPosition(512000) = [[timeUs=0, position=2192]]
+ getPosition(1024000) = [[timeUs=0, position=2192]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..f7bfb9c442
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,139 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=754]]
+ getPosition(1) = [[timeUs=1, position=754]]
+ getPosition(300000) = [[timeUs=300000, position=754]]
+ getPosition(600000) = [[timeUs=600000, position=2982]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 365
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600]
+ initializationData:
+ data = length 60, hash C05CB07B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 335, hash E6334A80
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash FB7243AF
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash 284BFE1
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash CB614574
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash F97A6A30
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB636
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C7
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0CD
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 78, hash 8BA25136
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 79, hash 4FEDABA0
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 82, hash 7C80BC82
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 320, hash 58EEA8F6
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash 7349D247
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 77, hash 73C5B274
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1A8
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash E441B6B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..f7bfb9c442
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,139 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=754]]
+ getPosition(1) = [[timeUs=1, position=754]]
+ getPosition(300000) = [[timeUs=300000, position=754]]
+ getPosition(600000) = [[timeUs=600000, position=2982]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 365
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600]
+ initializationData:
+ data = length 60, hash C05CB07B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 335, hash E6334A80
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash FB7243AF
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash 284BFE1
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash CB614574
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash F97A6A30
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB636
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C7
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0CD
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 78, hash 8BA25136
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 79, hash 4FEDABA0
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 82, hash 7C80BC82
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 320, hash 58EEA8F6
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash 7349D247
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 77, hash 73C5B274
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1A8
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash E441B6B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..f7bfb9c442
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,139 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=754]]
+ getPosition(1) = [[timeUs=1, position=754]]
+ getPosition(300000) = [[timeUs=300000, position=754]]
+ getPosition(600000) = [[timeUs=600000, position=2982]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 365
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600]
+ initializationData:
+ data = length 60, hash C05CB07B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 335, hash E6334A80
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash FB7243AF
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash 284BFE1
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash CB614574
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash F97A6A30
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB636
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C7
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0CD
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 78, hash 8BA25136
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 79, hash 4FEDABA0
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 82, hash 7C80BC82
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 320, hash 58EEA8F6
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash 7349D247
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 77, hash 73C5B274
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1A8
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash E441B6B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..662779c99e
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,43 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=754]]
+ getPosition(1) = [[timeUs=1, position=754]]
+ getPosition(300000) = [[timeUs=300000, position=754]]
+ getPosition(600000) = [[timeUs=600000, position=2982]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 609
+ sample count = 5
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 365
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600]
+ initializationData:
+ data = length 60, hash C05CB07B
+ sample 0:
+ time = 512000
+ flags = 1
+ data = length 320, hash 58EEA8F6
+ sample 1:
+ time = 533333
+ flags = 0
+ data = length 77, hash 7349D247
+ sample 2:
+ time = 554666
+ flags = 0
+ data = length 77, hash 73C5B274
+ sample 3:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1A8
+ sample 4:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash E441B6B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..f7bfb9c442
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,139 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=754]]
+ getPosition(1) = [[timeUs=1, position=754]]
+ getPosition(300000) = [[timeUs=300000, position=754]]
+ getPosition(600000) = [[timeUs=600000, position=2982]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 365
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600]
+ initializationData:
+ data = length 60, hash C05CB07B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 335, hash E6334A80
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash FB7243AF
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash 284BFE1
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash CB614574
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash F97A6A30
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB636
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C7
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0CD
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 78, hash 8BA25136
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 79, hash 4FEDABA0
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 82, hash 7C80BC82
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 320, hash 58EEA8F6
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash 7349D247
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 77, hash 73C5B274
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1A8
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash E441B6B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..a60ddd957a
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,371 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1054]]
+ getPosition(1) = [[timeUs=1, position=1054]]
+ getPosition(900000) = [[timeUs=900000, position=6234]]
+ getPosition(1800000) = [[timeUs=1800000, position=33120]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 1476
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600]
+ initializationData:
+ data = length 64, hash DB1F936C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 485, hash 8E663C03
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 164, hash 136B1B66
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 158, hash 22E84AF0
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 158, hash BA6B7094
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 158, hash A9289DCC
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 158, hash 37B039B1
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 126, hash 78789B9C
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 153, hash CC86912D
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 162, hash 577737FF
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 160, hash 3BCD3677
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 490, hash FD29BE27
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 143, hash 38DF637D
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 120, hash 307A762E
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 154, hash E4D1CE2
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 143, hash C1C83A77
+ sample 29:
+ time = 600000
+ flags = 1
+ data = length 1278, hash 281C389B
+ sample 30:
+ time = 618666
+ flags = 0
+ data = length 611, hash 4D115F94
+ sample 31:
+ time = 640000
+ flags = 0
+ data = length 656, hash 29F0A8C8
+ sample 32:
+ time = 661333
+ flags = 0
+ data = length 640, hash 432215B3
+ sample 33:
+ time = 682666
+ flags = 0
+ data = length 609, hash 5B7AD544
+ sample 34:
+ time = 704000
+ flags = 0
+ data = length 658, hash A173EA7E
+ sample 35:
+ time = 725333
+ flags = 0
+ data = length 640, hash 432215CE
+ sample 36:
+ time = 746666
+ flags = 0
+ data = length 616, hash B059E5F3
+ sample 37:
+ time = 768000
+ flags = 0
+ data = length 657, hash 950B636D
+ sample 38:
+ time = 789333
+ flags = 0
+ data = length 640, hash 432215D9
+ sample 39:
+ time = 810666
+ flags = 0
+ data = length 641, hash 3246CD5C
+ sample 40:
+ time = 832000
+ flags = 0
+ data = length 658, hash D480782F
+ sample 41:
+ time = 853333
+ flags = 0
+ data = length 640, hash 432215B2
+ sample 42:
+ time = 874666
+ flags = 0
+ data = length 650, hash A2B8C618
+ sample 43:
+ time = 896000
+ flags = 0
+ data = length 657, hash ABB26E68
+ sample 44:
+ time = 917333
+ flags = 0
+ data = length 640, hash 432215BC
+ sample 45:
+ time = 938666
+ flags = 0
+ data = length 663, hash 8A51F8B7
+ sample 46:
+ time = 960000
+ flags = 0
+ data = length 657, hash 51796214
+ sample 47:
+ time = 981333
+ flags = 0
+ data = length 641, hash F27D0F35
+ sample 48:
+ time = 1002666
+ flags = 0
+ data = length 626, hash D84D4392
+ sample 49:
+ time = 1024000
+ flags = 1
+ data = length 1446, hash 57251DD3
+ sample 50:
+ time = 1045333
+ flags = 0
+ data = length 543, hash AC12F41B
+ sample 51:
+ time = 1066666
+ flags = 0
+ data = length 496, hash 7D75AE83
+ sample 52:
+ time = 1088000
+ flags = 0
+ data = length 559, hash B248FD63
+ sample 53:
+ time = 1109333
+ flags = 0
+ data = length 537, hash 2EEC4577
+ sample 54:
+ time = 1130666
+ flags = 0
+ data = length 496, hash 7D75AE90
+ sample 55:
+ time = 1152000
+ flags = 0
+ data = length 560, hash 77AD983C
+ sample 56:
+ time = 1173333
+ flags = 0
+ data = length 774, hash 8C885DAD
+ sample 57:
+ time = 1194666
+ flags = 0
+ data = length 733, hash 5199F868
+ sample 58:
+ time = 1200000
+ flags = 1
+ data = length 914, hash B404D154
+ sample 59:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 60:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 61:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 62:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 63:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 64:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 65:
+ time = 1344000
+ flags = 0
+ data = length 422, hash DE1E83F5
+ sample 66:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 67:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 68:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 69:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 70:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 71:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 72:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 73:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 74:
+ time = 1536000
+ flags = 1
+ data = length 814, hash 39B338CB
+ sample 75:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 76:
+ time = 1578666
+ flags = 0
+ data = length 423, hash 390144EE
+ sample 77:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 78:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 79:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 80:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 81:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 82:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 83:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 84:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 85:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 86:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..2dc6323d6a
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,255 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1054]]
+ getPosition(1) = [[timeUs=1, position=1054]]
+ getPosition(900000) = [[timeUs=900000, position=6234]]
+ getPosition(1800000) = [[timeUs=1800000, position=33120]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 33598
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 1476
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600]
+ initializationData:
+ data = length 64, hash DB1F936C
+ sample 0:
+ time = 600000
+ flags = 1
+ data = length 1278, hash 281C389B
+ sample 1:
+ time = 618666
+ flags = 0
+ data = length 611, hash 4D115F94
+ sample 2:
+ time = 640000
+ flags = 0
+ data = length 656, hash 29F0A8C8
+ sample 3:
+ time = 661333
+ flags = 0
+ data = length 640, hash 432215B3
+ sample 4:
+ time = 682666
+ flags = 0
+ data = length 609, hash 5B7AD544
+ sample 5:
+ time = 704000
+ flags = 0
+ data = length 658, hash A173EA7E
+ sample 6:
+ time = 725333
+ flags = 0
+ data = length 640, hash 432215CE
+ sample 7:
+ time = 746666
+ flags = 0
+ data = length 616, hash B059E5F3
+ sample 8:
+ time = 768000
+ flags = 0
+ data = length 657, hash 950B636D
+ sample 9:
+ time = 789333
+ flags = 0
+ data = length 640, hash 432215D9
+ sample 10:
+ time = 810666
+ flags = 0
+ data = length 641, hash 3246CD5C
+ sample 11:
+ time = 832000
+ flags = 0
+ data = length 658, hash D480782F
+ sample 12:
+ time = 853333
+ flags = 0
+ data = length 640, hash 432215B2
+ sample 13:
+ time = 874666
+ flags = 0
+ data = length 650, hash A2B8C618
+ sample 14:
+ time = 896000
+ flags = 0
+ data = length 657, hash ABB26E68
+ sample 15:
+ time = 917333
+ flags = 0
+ data = length 640, hash 432215BC
+ sample 16:
+ time = 938666
+ flags = 0
+ data = length 663, hash 8A51F8B7
+ sample 17:
+ time = 960000
+ flags = 0
+ data = length 657, hash 51796214
+ sample 18:
+ time = 981333
+ flags = 0
+ data = length 641, hash F27D0F35
+ sample 19:
+ time = 1002666
+ flags = 0
+ data = length 626, hash D84D4392
+ sample 20:
+ time = 1024000
+ flags = 1
+ data = length 1446, hash 57251DD3
+ sample 21:
+ time = 1045333
+ flags = 0
+ data = length 543, hash AC12F41B
+ sample 22:
+ time = 1066666
+ flags = 0
+ data = length 496, hash 7D75AE83
+ sample 23:
+ time = 1088000
+ flags = 0
+ data = length 559, hash B248FD63
+ sample 24:
+ time = 1109333
+ flags = 0
+ data = length 537, hash 2EEC4577
+ sample 25:
+ time = 1130666
+ flags = 0
+ data = length 496, hash 7D75AE90
+ sample 26:
+ time = 1152000
+ flags = 0
+ data = length 560, hash 77AD983C
+ sample 27:
+ time = 1173333
+ flags = 0
+ data = length 774, hash 8C885DAD
+ sample 28:
+ time = 1194666
+ flags = 0
+ data = length 733, hash 5199F868
+ sample 29:
+ time = 1200000
+ flags = 1
+ data = length 914, hash B404D154
+ sample 30:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 31:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 32:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 33:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 34:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 35:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 36:
+ time = 1344000
+ flags = 0
+ data = length 422, hash DE1E83F5
+ sample 37:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 38:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 39:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 40:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 41:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 42:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 43:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 44:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 45:
+ time = 1536000
+ flags = 1
+ data = length 814, hash 39B338CB
+ sample 46:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 47:
+ time = 1578666
+ flags = 0
+ data = length 423, hash 390144EE
+ sample 48:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 49:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 50:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 51:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 52:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 53:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 54:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 55:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 56:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 57:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..fbf71e0a3b
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,139 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1054]]
+ getPosition(1) = [[timeUs=1, position=1054]]
+ getPosition(900000) = [[timeUs=900000, position=6234]]
+ getPosition(1800000) = [[timeUs=1800000, position=33120]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 13976
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 1476
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600]
+ initializationData:
+ data = length 64, hash DB1F936C
+ sample 0:
+ time = 1200000
+ flags = 1
+ data = length 914, hash B404D154
+ sample 1:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 2:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 3:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 4:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 5:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 6:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 7:
+ time = 1344000
+ flags = 0
+ data = length 422, hash DE1E83F5
+ sample 8:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 9:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 10:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 11:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 12:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 13:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 14:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 15:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 16:
+ time = 1536000
+ flags = 1
+ data = length 814, hash 39B338CB
+ sample 17:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 18:
+ time = 1578666
+ flags = 0
+ data = length 423, hash 390144EE
+ sample 19:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 20:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 21:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 22:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 23:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 24:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 25:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 26:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 27:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 28:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..58515b9892
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,75 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1054]]
+ getPosition(1) = [[timeUs=1, position=1054]]
+ getPosition(900000) = [[timeUs=900000, position=6234]]
+ getPosition(1800000) = [[timeUs=1800000, position=33120]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 6712
+ sample count = 13
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 1476
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600]
+ initializationData:
+ data = length 64, hash DB1F936C
+ sample 0:
+ time = 1536000
+ flags = 1
+ data = length 814, hash 39B338CB
+ sample 1:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 2:
+ time = 1578666
+ flags = 0
+ data = length 423, hash 390144EE
+ sample 3:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 4:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 5:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 6:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 7:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 8:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 9:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 10:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 11:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 12:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..a60ddd957a
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,371 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1054]]
+ getPosition(1) = [[timeUs=1, position=1054]]
+ getPosition(900000) = [[timeUs=900000, position=6234]]
+ getPosition(1800000) = [[timeUs=1800000, position=33120]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ maxInputSize = 1476
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600]
+ initializationData:
+ data = length 64, hash DB1F936C
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 485, hash 8E663C03
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 164, hash 136B1B66
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 158, hash 22E84AF0
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 158, hash BA6B7094
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 158, hash A9289DCC
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 158, hash 37B039B1
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 126, hash 78789B9C
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 153, hash CC86912D
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 162, hash 577737FF
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 160, hash 3BCD3677
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 490, hash FD29BE27
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 143, hash 38DF637D
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 120, hash 307A762E
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 154, hash E4D1CE2
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 143, hash C1C83A77
+ sample 29:
+ time = 600000
+ flags = 1
+ data = length 1278, hash 281C389B
+ sample 30:
+ time = 618666
+ flags = 0
+ data = length 611, hash 4D115F94
+ sample 31:
+ time = 640000
+ flags = 0
+ data = length 656, hash 29F0A8C8
+ sample 32:
+ time = 661333
+ flags = 0
+ data = length 640, hash 432215B3
+ sample 33:
+ time = 682666
+ flags = 0
+ data = length 609, hash 5B7AD544
+ sample 34:
+ time = 704000
+ flags = 0
+ data = length 658, hash A173EA7E
+ sample 35:
+ time = 725333
+ flags = 0
+ data = length 640, hash 432215CE
+ sample 36:
+ time = 746666
+ flags = 0
+ data = length 616, hash B059E5F3
+ sample 37:
+ time = 768000
+ flags = 0
+ data = length 657, hash 950B636D
+ sample 38:
+ time = 789333
+ flags = 0
+ data = length 640, hash 432215D9
+ sample 39:
+ time = 810666
+ flags = 0
+ data = length 641, hash 3246CD5C
+ sample 40:
+ time = 832000
+ flags = 0
+ data = length 658, hash D480782F
+ sample 41:
+ time = 853333
+ flags = 0
+ data = length 640, hash 432215B2
+ sample 42:
+ time = 874666
+ flags = 0
+ data = length 650, hash A2B8C618
+ sample 43:
+ time = 896000
+ flags = 0
+ data = length 657, hash ABB26E68
+ sample 44:
+ time = 917333
+ flags = 0
+ data = length 640, hash 432215BC
+ sample 45:
+ time = 938666
+ flags = 0
+ data = length 663, hash 8A51F8B7
+ sample 46:
+ time = 960000
+ flags = 0
+ data = length 657, hash 51796214
+ sample 47:
+ time = 981333
+ flags = 0
+ data = length 641, hash F27D0F35
+ sample 48:
+ time = 1002666
+ flags = 0
+ data = length 626, hash D84D4392
+ sample 49:
+ time = 1024000
+ flags = 1
+ data = length 1446, hash 57251DD3
+ sample 50:
+ time = 1045333
+ flags = 0
+ data = length 543, hash AC12F41B
+ sample 51:
+ time = 1066666
+ flags = 0
+ data = length 496, hash 7D75AE83
+ sample 52:
+ time = 1088000
+ flags = 0
+ data = length 559, hash B248FD63
+ sample 53:
+ time = 1109333
+ flags = 0
+ data = length 537, hash 2EEC4577
+ sample 54:
+ time = 1130666
+ flags = 0
+ data = length 496, hash 7D75AE90
+ sample 55:
+ time = 1152000
+ flags = 0
+ data = length 560, hash 77AD983C
+ sample 56:
+ time = 1173333
+ flags = 0
+ data = length 774, hash 8C885DAD
+ sample 57:
+ time = 1194666
+ flags = 0
+ data = length 733, hash 5199F868
+ sample 58:
+ time = 1200000
+ flags = 1
+ data = length 914, hash B404D154
+ sample 59:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 60:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 61:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 62:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 63:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 64:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 65:
+ time = 1344000
+ flags = 0
+ data = length 422, hash DE1E83F5
+ sample 66:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 67:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 68:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 69:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 70:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 71:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 72:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 73:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 74:
+ time = 1536000
+ flags = 1
+ data = length 814, hash 39B338CB
+ sample 75:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 76:
+ time = 1578666
+ flags = 0
+ data = length 423, hash 390144EE
+ sample 77:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 78:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 79:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 80:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 81:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 82:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 83:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 84:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 85:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 86:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..8e45890034
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,140 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=767]]
+ getPosition(1) = [[timeUs=1, position=767]]
+ getPosition(300000) = [[timeUs=300000, position=767]]
+ getPosition(600000) = [[timeUs=600000, position=2991]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 368
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600]
+ initializationData:
+ data = length 63, hash 7D954866
+ data = length 1, hash 2F
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 338, hash CF711ADC
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash A0154CE2
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash E37A5065
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash 653631D3
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash FCDBFDFB
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB637
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C8
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0D9
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 70, hash FB797ACC
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 81, hash 3B32D906
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 81, hash 590B7E40
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 323, hash F3C25326
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash F3A2DCC5
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 78, hash D9DD04A0
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1D3
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash CE3E092E
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..8e45890034
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,140 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=767]]
+ getPosition(1) = [[timeUs=1, position=767]]
+ getPosition(300000) = [[timeUs=300000, position=767]]
+ getPosition(600000) = [[timeUs=600000, position=2991]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 368
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600]
+ initializationData:
+ data = length 63, hash 7D954866
+ data = length 1, hash 2F
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 338, hash CF711ADC
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash A0154CE2
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash E37A5065
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash 653631D3
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash FCDBFDFB
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB637
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C8
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0D9
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 70, hash FB797ACC
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 81, hash 3B32D906
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 81, hash 590B7E40
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 323, hash F3C25326
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash F3A2DCC5
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 78, hash D9DD04A0
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1D3
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash CE3E092E
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..8e45890034
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,140 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=767]]
+ getPosition(1) = [[timeUs=1, position=767]]
+ getPosition(300000) = [[timeUs=300000, position=767]]
+ getPosition(600000) = [[timeUs=600000, position=2991]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 368
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600]
+ initializationData:
+ data = length 63, hash 7D954866
+ data = length 1, hash 2F
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 338, hash CF711ADC
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash A0154CE2
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash E37A5065
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash 653631D3
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash FCDBFDFB
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB637
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C8
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0D9
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 70, hash FB797ACC
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 81, hash 3B32D906
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 81, hash 590B7E40
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 323, hash F3C25326
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash F3A2DCC5
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 78, hash D9DD04A0
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1D3
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash CE3E092E
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..5d94463aa5
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,44 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=767]]
+ getPosition(1) = [[timeUs=1, position=767]]
+ getPosition(300000) = [[timeUs=300000, position=767]]
+ getPosition(600000) = [[timeUs=600000, position=2991]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 613
+ sample count = 5
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 368
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600]
+ initializationData:
+ data = length 63, hash 7D954866
+ data = length 1, hash 2F
+ sample 0:
+ time = 512000
+ flags = 1
+ data = length 323, hash F3C25326
+ sample 1:
+ time = 533333
+ flags = 0
+ data = length 77, hash F3A2DCC5
+ sample 2:
+ time = 554666
+ flags = 0
+ data = length 78, hash D9DD04A0
+ sample 3:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1D3
+ sample 4:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash CE3E092E
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..8e45890034
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,140 @@
+seekMap:
+ isSeekable = true
+ duration = 600000
+ getPosition(0) = [[timeUs=0, position=767]]
+ getPosition(1) = [[timeUs=1, position=767]]
+ getPosition(300000) = [[timeUs=300000, position=767]]
+ getPosition(600000) = [[timeUs=600000, position=2991]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 368
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600]
+ initializationData:
+ data = length 63, hash 7D954866
+ data = length 1, hash 2F
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 338, hash CF711ADC
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 85, hash 8EFCDF36
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 98, hash BC03FE8A
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 105, hash 9FBA3169
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 93, hash BD1CBC0E
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 93, hash C0B46623
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 91, hash E4CA8D5
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 82, hash EB64F3A8
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 83, hash 97803527
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 82, hash 5972B44D
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 81, hash 3D9C7710
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 77, hash 27B26E3D
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 79, hash A0154CE2
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 80, hash E37A5065
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 78, hash 8F24DBB3
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 77, hash CD76338B
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 78, hash 653631D3
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 76, hash FCDBFDFB
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 56, hash E05FB637
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 81, hash 2B2350C8
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 79, hash DFF1D0D9
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 70, hash FB797ACC
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 81, hash 3B32D906
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 81, hash 590B7E40
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 323, hash F3C25326
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 77, hash F3A2DCC5
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 78, hash D9DD04A0
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 65, hash 622B1D3
+ sample 28:
+ time = 597333
+ flags = 536870912
+ data = length 70, hash CE3E092E
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..1befd0293e
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,372 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1067]]
+ getPosition(1) = [[timeUs=1, position=1067]]
+ getPosition(900000) = [[timeUs=900000, position=6256]]
+ getPosition(1800000) = [[timeUs=1800000, position=33133]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 1479
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600]
+ initializationData:
+ data = length 67, hash 3CF14937
+ data = length 1, hash 2F
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 488, hash 1ED69C37
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 164, hash 136B1B66
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 158, hash 22E84AF0
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 158, hash BA6B7094
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 158, hash A9289DCC
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 158, hash 37B039B1
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 126, hash 78789B9C
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 151, hash 2E40B4B2
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 163, hash 4E4CBFDD
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 160, hash 3BCD3677
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 493, hash 5CB15E73
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 143, hash 38DF6348
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 120, hash 307A7619
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 160, hash 85B40084
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 141, hash C14F9501
+ sample 29:
+ time = 600000
+ flags = 1
+ data = length 1281, hash 9131BB91
+ sample 30:
+ time = 618666
+ flags = 0
+ data = length 608, hash 1F8ADAAD
+ sample 31:
+ time = 640000
+ flags = 0
+ data = length 656, hash BAEB035
+ sample 32:
+ time = 661333
+ flags = 0
+ data = length 640, hash 432215C9
+ sample 33:
+ time = 682666
+ flags = 0
+ data = length 609, hash 5B7AD547
+ sample 34:
+ time = 704000
+ flags = 0
+ data = length 658, hash A173EA78
+ sample 35:
+ time = 725333
+ flags = 0
+ data = length 640, hash 432215C9
+ sample 36:
+ time = 746666
+ flags = 0
+ data = length 613, hash ECA1FB91
+ sample 37:
+ time = 768000
+ flags = 0
+ data = length 658, hash 6EC1708C
+ sample 38:
+ time = 789333
+ flags = 0
+ data = length 640, hash 432215C2
+ sample 39:
+ time = 810666
+ flags = 0
+ data = length 641, hash 3246CD5C
+ sample 40:
+ time = 832000
+ flags = 0
+ data = length 658, hash D480784A
+ sample 41:
+ time = 853333
+ flags = 0
+ data = length 640, hash 432215D6
+ sample 42:
+ time = 874666
+ flags = 0
+ data = length 647, hash C6E3E718
+ sample 43:
+ time = 896000
+ flags = 0
+ data = length 657, hash A204D6AF
+ sample 44:
+ time = 917333
+ flags = 0
+ data = length 640, hash 432215D4
+ sample 45:
+ time = 938666
+ flags = 0
+ data = length 663, hash 8A51F88A
+ sample 46:
+ time = 960000
+ flags = 0
+ data = length 657, hash 51796214
+ sample 47:
+ time = 981333
+ flags = 0
+ data = length 641, hash F27D0F36
+ sample 48:
+ time = 1002666
+ flags = 0
+ data = length 626, hash D84D4392
+ sample 49:
+ time = 1024000
+ flags = 1
+ data = length 1449, hash 773492CA
+ sample 50:
+ time = 1045333
+ flags = 0
+ data = length 542, hash 2689A516
+ sample 51:
+ time = 1066666
+ flags = 0
+ data = length 496, hash 7D75AE8C
+ sample 52:
+ time = 1088000
+ flags = 0
+ data = length 559, hash B248FD5C
+ sample 53:
+ time = 1109333
+ flags = 0
+ data = length 537, hash 2EEC4577
+ sample 54:
+ time = 1130666
+ flags = 0
+ data = length 496, hash 7D75AE8A
+ sample 55:
+ time = 1152000
+ flags = 0
+ data = length 560, hash 77AD983C
+ sample 56:
+ time = 1173333
+ flags = 0
+ data = length 773, hash 4FA8BAEF
+ sample 57:
+ time = 1194666
+ flags = 0
+ data = length 744, hash 6725112B
+ sample 58:
+ time = 1200000
+ flags = 1
+ data = length 917, hash 338496EB
+ sample 59:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 60:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 61:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 62:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 63:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 64:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 65:
+ time = 1344000
+ flags = 0
+ data = length 403, hash BCD6901D
+ sample 66:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 67:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 68:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 69:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 70:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 71:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 72:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 73:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 74:
+ time = 1536000
+ flags = 1
+ data = length 817, hash 9C51B5E2
+ sample 75:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 76:
+ time = 1578666
+ flags = 0
+ data = length 420, hash 7C4664D7
+ sample 77:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 78:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 79:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 80:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 81:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 82:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 83:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 84:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 85:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 86:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..60c9b2564d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,256 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1067]]
+ getPosition(1) = [[timeUs=1, position=1067]]
+ getPosition(900000) = [[timeUs=900000, position=6256]]
+ getPosition(1800000) = [[timeUs=1800000, position=33133]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 33589
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 1479
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600]
+ initializationData:
+ data = length 67, hash 3CF14937
+ data = length 1, hash 2F
+ sample 0:
+ time = 600000
+ flags = 1
+ data = length 1281, hash 9131BB91
+ sample 1:
+ time = 618666
+ flags = 0
+ data = length 608, hash 1F8ADAAD
+ sample 2:
+ time = 640000
+ flags = 0
+ data = length 656, hash BAEB035
+ sample 3:
+ time = 661333
+ flags = 0
+ data = length 640, hash 432215C9
+ sample 4:
+ time = 682666
+ flags = 0
+ data = length 609, hash 5B7AD547
+ sample 5:
+ time = 704000
+ flags = 0
+ data = length 658, hash A173EA78
+ sample 6:
+ time = 725333
+ flags = 0
+ data = length 640, hash 432215C9
+ sample 7:
+ time = 746666
+ flags = 0
+ data = length 613, hash ECA1FB91
+ sample 8:
+ time = 768000
+ flags = 0
+ data = length 658, hash 6EC1708C
+ sample 9:
+ time = 789333
+ flags = 0
+ data = length 640, hash 432215C2
+ sample 10:
+ time = 810666
+ flags = 0
+ data = length 641, hash 3246CD5C
+ sample 11:
+ time = 832000
+ flags = 0
+ data = length 658, hash D480784A
+ sample 12:
+ time = 853333
+ flags = 0
+ data = length 640, hash 432215D6
+ sample 13:
+ time = 874666
+ flags = 0
+ data = length 647, hash C6E3E718
+ sample 14:
+ time = 896000
+ flags = 0
+ data = length 657, hash A204D6AF
+ sample 15:
+ time = 917333
+ flags = 0
+ data = length 640, hash 432215D4
+ sample 16:
+ time = 938666
+ flags = 0
+ data = length 663, hash 8A51F88A
+ sample 17:
+ time = 960000
+ flags = 0
+ data = length 657, hash 51796214
+ sample 18:
+ time = 981333
+ flags = 0
+ data = length 641, hash F27D0F36
+ sample 19:
+ time = 1002666
+ flags = 0
+ data = length 626, hash D84D4392
+ sample 20:
+ time = 1024000
+ flags = 1
+ data = length 1449, hash 773492CA
+ sample 21:
+ time = 1045333
+ flags = 0
+ data = length 542, hash 2689A516
+ sample 22:
+ time = 1066666
+ flags = 0
+ data = length 496, hash 7D75AE8C
+ sample 23:
+ time = 1088000
+ flags = 0
+ data = length 559, hash B248FD5C
+ sample 24:
+ time = 1109333
+ flags = 0
+ data = length 537, hash 2EEC4577
+ sample 25:
+ time = 1130666
+ flags = 0
+ data = length 496, hash 7D75AE8A
+ sample 26:
+ time = 1152000
+ flags = 0
+ data = length 560, hash 77AD983C
+ sample 27:
+ time = 1173333
+ flags = 0
+ data = length 773, hash 4FA8BAEF
+ sample 28:
+ time = 1194666
+ flags = 0
+ data = length 744, hash 6725112B
+ sample 29:
+ time = 1200000
+ flags = 1
+ data = length 917, hash 338496EB
+ sample 30:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 31:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 32:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 33:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 34:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 35:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 36:
+ time = 1344000
+ flags = 0
+ data = length 403, hash BCD6901D
+ sample 37:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 38:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 39:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 40:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 41:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 42:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 43:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 44:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 45:
+ time = 1536000
+ flags = 1
+ data = length 817, hash 9C51B5E2
+ sample 46:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 47:
+ time = 1578666
+ flags = 0
+ data = length 420, hash 7C4664D7
+ sample 48:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 49:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 50:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 51:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 52:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 53:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 54:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 55:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 56:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 57:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..f8211a1989
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,140 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1067]]
+ getPosition(1) = [[timeUs=1, position=1067]]
+ getPosition(900000) = [[timeUs=900000, position=6256]]
+ getPosition(1800000) = [[timeUs=1800000, position=33133]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 13960
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 1479
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600]
+ initializationData:
+ data = length 67, hash 3CF14937
+ data = length 1, hash 2F
+ sample 0:
+ time = 1200000
+ flags = 1
+ data = length 917, hash 338496EB
+ sample 1:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 2:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 3:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 4:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 5:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 6:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 7:
+ time = 1344000
+ flags = 0
+ data = length 403, hash BCD6901D
+ sample 8:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 9:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 10:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 11:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 12:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 13:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 14:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 15:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 16:
+ time = 1536000
+ flags = 1
+ data = length 817, hash 9C51B5E2
+ sample 17:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 18:
+ time = 1578666
+ flags = 0
+ data = length 420, hash 7C4664D7
+ sample 19:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 20:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 21:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 22:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 23:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 24:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 25:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 26:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 27:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 28:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..3081be263d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,76 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1067]]
+ getPosition(1) = [[timeUs=1, position=1067]]
+ getPosition(900000) = [[timeUs=900000, position=6256]]
+ getPosition(1800000) = [[timeUs=1800000, position=33133]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 6712
+ sample count = 13
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 1479
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600]
+ initializationData:
+ data = length 67, hash 3CF14937
+ data = length 1, hash 2F
+ sample 0:
+ time = 1536000
+ flags = 1
+ data = length 817, hash 9C51B5E2
+ sample 1:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 2:
+ time = 1578666
+ flags = 0
+ data = length 420, hash 7C4664D7
+ sample 3:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 4:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 5:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 6:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 7:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 8:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 9:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 10:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 11:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 12:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..1befd0293e
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,372 @@
+seekMap:
+ isSeekable = true
+ duration = 1800000
+ getPosition(0) = [[timeUs=0, position=1067]]
+ getPosition(1) = [[timeUs=1, position=1067]]
+ getPosition(900000) = [[timeUs=900000, position=6256]]
+ getPosition(1800000) = [[timeUs=1800000, position=33133]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ maxInputSize = 1479
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600]
+ initializationData:
+ data = length 67, hash 3CF14937
+ data = length 1, hash 2F
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 488, hash 1ED69C37
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 164, hash 136B1B66
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 158, hash 22E84AF0
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 158, hash BA6B7094
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 158, hash A9289DCC
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 158, hash A9289DCD
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 158, hash 37B039B1
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 164, hash 7E2368C3
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 158, hash 10AC2CD4
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 126, hash 78789B9C
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 151, hash 2E40B4B2
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 163, hash 4E4CBFDD
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 160, hash 3BCD3677
+ sample 24:
+ time = 512000
+ flags = 1
+ data = length 493, hash 5CB15E73
+ sample 25:
+ time = 533333
+ flags = 0
+ data = length 143, hash 38DF6348
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 120, hash 307A7619
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 160, hash 85B40084
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 141, hash C14F9501
+ sample 29:
+ time = 600000
+ flags = 1
+ data = length 1281, hash 9131BB91
+ sample 30:
+ time = 618666
+ flags = 0
+ data = length 608, hash 1F8ADAAD
+ sample 31:
+ time = 640000
+ flags = 0
+ data = length 656, hash BAEB035
+ sample 32:
+ time = 661333
+ flags = 0
+ data = length 640, hash 432215C9
+ sample 33:
+ time = 682666
+ flags = 0
+ data = length 609, hash 5B7AD547
+ sample 34:
+ time = 704000
+ flags = 0
+ data = length 658, hash A173EA78
+ sample 35:
+ time = 725333
+ flags = 0
+ data = length 640, hash 432215C9
+ sample 36:
+ time = 746666
+ flags = 0
+ data = length 613, hash ECA1FB91
+ sample 37:
+ time = 768000
+ flags = 0
+ data = length 658, hash 6EC1708C
+ sample 38:
+ time = 789333
+ flags = 0
+ data = length 640, hash 432215C2
+ sample 39:
+ time = 810666
+ flags = 0
+ data = length 641, hash 3246CD5C
+ sample 40:
+ time = 832000
+ flags = 0
+ data = length 658, hash D480784A
+ sample 41:
+ time = 853333
+ flags = 0
+ data = length 640, hash 432215D6
+ sample 42:
+ time = 874666
+ flags = 0
+ data = length 647, hash C6E3E718
+ sample 43:
+ time = 896000
+ flags = 0
+ data = length 657, hash A204D6AF
+ sample 44:
+ time = 917333
+ flags = 0
+ data = length 640, hash 432215D4
+ sample 45:
+ time = 938666
+ flags = 0
+ data = length 663, hash 8A51F88A
+ sample 46:
+ time = 960000
+ flags = 0
+ data = length 657, hash 51796214
+ sample 47:
+ time = 981333
+ flags = 0
+ data = length 641, hash F27D0F36
+ sample 48:
+ time = 1002666
+ flags = 0
+ data = length 626, hash D84D4392
+ sample 49:
+ time = 1024000
+ flags = 1
+ data = length 1449, hash 773492CA
+ sample 50:
+ time = 1045333
+ flags = 0
+ data = length 542, hash 2689A516
+ sample 51:
+ time = 1066666
+ flags = 0
+ data = length 496, hash 7D75AE8C
+ sample 52:
+ time = 1088000
+ flags = 0
+ data = length 559, hash B248FD5C
+ sample 53:
+ time = 1109333
+ flags = 0
+ data = length 537, hash 2EEC4577
+ sample 54:
+ time = 1130666
+ flags = 0
+ data = length 496, hash 7D75AE8A
+ sample 55:
+ time = 1152000
+ flags = 0
+ data = length 560, hash 77AD983C
+ sample 56:
+ time = 1173333
+ flags = 0
+ data = length 773, hash 4FA8BAEF
+ sample 57:
+ time = 1194666
+ flags = 0
+ data = length 744, hash 6725112B
+ sample 58:
+ time = 1200000
+ flags = 1
+ data = length 917, hash 338496EB
+ sample 59:
+ time = 1216000
+ flags = 0
+ data = length 301, hash B72EAA19
+ sample 60:
+ time = 1237333
+ flags = 0
+ data = length 299, hash 90B92024
+ sample 61:
+ time = 1258666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 62:
+ time = 1280000
+ flags = 0
+ data = length 295, hash E35C19E
+ sample 63:
+ time = 1301333
+ flags = 0
+ data = length 299, hash 90B92029
+ sample 64:
+ time = 1322666
+ flags = 0
+ data = length 319, hash 5F47ED6D
+ sample 65:
+ time = 1344000
+ flags = 0
+ data = length 403, hash BCD6901D
+ sample 66:
+ time = 1365333
+ flags = 0
+ data = length 512, hash 71422ABF
+ sample 67:
+ time = 1386666
+ flags = 0
+ data = length 512, hash 12E1C091
+ sample 68:
+ time = 1408000
+ flags = 0
+ data = length 512, hash 4C28788B
+ sample 69:
+ time = 1429333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 70:
+ time = 1450666
+ flags = 0
+ data = length 512, hash 12E1C0B6
+ sample 71:
+ time = 1472000
+ flags = 0
+ data = length 512, hash 4C287853
+ sample 72:
+ time = 1493333
+ flags = 0
+ data = length 512, hash ED501288
+ sample 73:
+ time = 1514666
+ flags = 0
+ data = length 512, hash 9D4174B5
+ sample 74:
+ time = 1536000
+ flags = 1
+ data = length 817, hash 9C51B5E2
+ sample 75:
+ time = 1557333
+ flags = 0
+ data = length 299, hash 90B92026
+ sample 76:
+ time = 1578666
+ flags = 0
+ data = length 420, hash 7C4664D7
+ sample 77:
+ time = 1600000
+ flags = 0
+ data = length 512, hash 4C28784A
+ sample 78:
+ time = 1621333
+ flags = 0
+ data = length 512, hash 71422ABB
+ sample 79:
+ time = 1642666
+ flags = 0
+ data = length 512, hash 12E1C07F
+ sample 80:
+ time = 1664000
+ flags = 0
+ data = length 512, hash 4C287884
+ sample 81:
+ time = 1685333
+ flags = 0
+ data = length 512, hash 71422ABD
+ sample 82:
+ time = 1706666
+ flags = 0
+ data = length 512, hash 12E1C069
+ sample 83:
+ time = 1728000
+ flags = 0
+ data = length 512, hash 4C287890
+ sample 84:
+ time = 1749333
+ flags = 0
+ data = length 512, hash 71422AC0
+ sample 85:
+ time = 1770666
+ flags = 0
+ data = length 581, hash 64B79723
+ sample 86:
+ time = 1792000
+ flags = 536870912
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..34aad010a7
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,257 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1256]]
+ getPosition(1) = [[timeUs=1, position=1256]]
+ getPosition(584010) = [[timeUs=584010, position=46570]]
+ getPosition(1168020) = [[timeUs=1168020, position=91172]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 104853
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mha1
+ codecs = mha1.0D
+ maxInputSize = 3528
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1706, hash F69B88EF
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 1705, hash 20F7927C
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 1900, hash D986BAA7
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 2224, hash DC056DA8
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 2157, hash D9587B29
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 2252, hash 9935FAC5
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 2025, hash 388EC449
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 1818, hash 148B1B72
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 1844, hash E997B535
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 1717, hash 2A9D93FB
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 1701, hash 40238DB5
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 1684, hash C46763BF
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 1747, hash 5FC3C86E
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 1750, hash 7F164780
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 1742, hash B853D24D
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 1839, hash FBFCDC4A
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 1809, hash C4722031
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 1746, hash 5990EC1F
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 1657, hash 1973E3C4
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 1862, hash 47500487
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 1687, hash 6789C2B4
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 1661, hash 26AB63E4
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 1671, hash 85AA94AD
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 1666, hash 60AF02C
+ sample 24:
+ time = 512000
+ flags = 0
+ data = length 1744, hash 93B89CC9
+ sample 25:
+ time = 533333
+ flags = 1
+ data = length 3498, hash 3013997F
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 1645, hash 912C7F11
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 1679, hash 5C1D5E4B
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 1653, hash AAFDF0C4
+ sample 29:
+ time = 618666
+ flags = 0
+ data = length 1793, hash 7DEDF0E7
+ sample 30:
+ time = 640000
+ flags = 0
+ data = length 1673, hash 5123A069
+ sample 31:
+ time = 661333
+ flags = 0
+ data = length 1631, hash 668D073B
+ sample 32:
+ time = 682666
+ flags = 0
+ data = length 1645, hash 4BA09D58
+ sample 33:
+ time = 704000
+ flags = 0
+ data = length 1715, hash 6696D08A
+ sample 34:
+ time = 725333
+ flags = 0
+ data = length 1913, hash F22841A5
+ sample 35:
+ time = 746666
+ flags = 0
+ data = length 1808, hash 3EB2EF9A
+ sample 36:
+ time = 768000
+ flags = 0
+ data = length 1703, hash A76E92E6
+ sample 37:
+ time = 789333
+ flags = 0
+ data = length 1663, hash D60564B6
+ sample 38:
+ time = 810666
+ flags = 0
+ data = length 1691, hash 3E9DB1D0
+ sample 39:
+ time = 832000
+ flags = 0
+ data = length 1682, hash 66EF509A
+ sample 40:
+ time = 853333
+ flags = 0
+ data = length 1661, hash 1F1114BE
+ sample 41:
+ time = 874666
+ flags = 0
+ data = length 1651, hash 37C9B7B6
+ sample 42:
+ time = 896000
+ flags = 0
+ data = length 1675, hash 94616355
+ sample 43:
+ time = 917333
+ flags = 0
+ data = length 1671, hash DA7F4549
+ sample 44:
+ time = 938666
+ flags = 0
+ data = length 1799, hash 49EF8B35
+ sample 45:
+ time = 960000
+ flags = 0
+ data = length 1807, hash C8BDF3C1
+ sample 46:
+ time = 981333
+ flags = 0
+ data = length 1674, hash 36EA2B2F
+ sample 47:
+ time = 1002666
+ flags = 0
+ data = length 1662, hash A865F92C
+ sample 48:
+ time = 1024000
+ flags = 0
+ data = length 1856, hash D20294BC
+ sample 49:
+ time = 1045333
+ flags = 0
+ data = length 1754, hash 54C7681A
+ sample 50:
+ time = 1066666
+ flags = 1
+ data = length 3408, hash 48774BB2
+ sample 51:
+ time = 1088000
+ flags = 0
+ data = length 1602, hash 8E895F43
+ sample 52:
+ time = 1109333
+ flags = 0
+ data = length 1624, hash 9E0AD8CF
+ sample 53:
+ time = 1130666
+ flags = 0
+ data = length 1616, hash 1F123433
+ sample 54:
+ time = 1152000
+ flags = 0
+ data = length 1671, hash 29644955
+ sample 55:
+ time = 1173333
+ flags = 0
+ data = length 1641, hash 55E8050C
+ sample 56:
+ time = 1194666
+ flags = 0
+ data = length 1670, hash CC133185
+ sample 57:
+ time = 1216000
+ flags = 536870912
+ data = length 1705, hash 35C3F104
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..34aad010a7
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,257 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1256]]
+ getPosition(1) = [[timeUs=1, position=1256]]
+ getPosition(584010) = [[timeUs=584010, position=46570]]
+ getPosition(1168020) = [[timeUs=1168020, position=91172]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 104853
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mha1
+ codecs = mha1.0D
+ maxInputSize = 3528
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1706, hash F69B88EF
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 1705, hash 20F7927C
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 1900, hash D986BAA7
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 2224, hash DC056DA8
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 2157, hash D9587B29
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 2252, hash 9935FAC5
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 2025, hash 388EC449
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 1818, hash 148B1B72
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 1844, hash E997B535
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 1717, hash 2A9D93FB
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 1701, hash 40238DB5
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 1684, hash C46763BF
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 1747, hash 5FC3C86E
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 1750, hash 7F164780
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 1742, hash B853D24D
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 1839, hash FBFCDC4A
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 1809, hash C4722031
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 1746, hash 5990EC1F
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 1657, hash 1973E3C4
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 1862, hash 47500487
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 1687, hash 6789C2B4
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 1661, hash 26AB63E4
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 1671, hash 85AA94AD
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 1666, hash 60AF02C
+ sample 24:
+ time = 512000
+ flags = 0
+ data = length 1744, hash 93B89CC9
+ sample 25:
+ time = 533333
+ flags = 1
+ data = length 3498, hash 3013997F
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 1645, hash 912C7F11
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 1679, hash 5C1D5E4B
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 1653, hash AAFDF0C4
+ sample 29:
+ time = 618666
+ flags = 0
+ data = length 1793, hash 7DEDF0E7
+ sample 30:
+ time = 640000
+ flags = 0
+ data = length 1673, hash 5123A069
+ sample 31:
+ time = 661333
+ flags = 0
+ data = length 1631, hash 668D073B
+ sample 32:
+ time = 682666
+ flags = 0
+ data = length 1645, hash 4BA09D58
+ sample 33:
+ time = 704000
+ flags = 0
+ data = length 1715, hash 6696D08A
+ sample 34:
+ time = 725333
+ flags = 0
+ data = length 1913, hash F22841A5
+ sample 35:
+ time = 746666
+ flags = 0
+ data = length 1808, hash 3EB2EF9A
+ sample 36:
+ time = 768000
+ flags = 0
+ data = length 1703, hash A76E92E6
+ sample 37:
+ time = 789333
+ flags = 0
+ data = length 1663, hash D60564B6
+ sample 38:
+ time = 810666
+ flags = 0
+ data = length 1691, hash 3E9DB1D0
+ sample 39:
+ time = 832000
+ flags = 0
+ data = length 1682, hash 66EF509A
+ sample 40:
+ time = 853333
+ flags = 0
+ data = length 1661, hash 1F1114BE
+ sample 41:
+ time = 874666
+ flags = 0
+ data = length 1651, hash 37C9B7B6
+ sample 42:
+ time = 896000
+ flags = 0
+ data = length 1675, hash 94616355
+ sample 43:
+ time = 917333
+ flags = 0
+ data = length 1671, hash DA7F4549
+ sample 44:
+ time = 938666
+ flags = 0
+ data = length 1799, hash 49EF8B35
+ sample 45:
+ time = 960000
+ flags = 0
+ data = length 1807, hash C8BDF3C1
+ sample 46:
+ time = 981333
+ flags = 0
+ data = length 1674, hash 36EA2B2F
+ sample 47:
+ time = 1002666
+ flags = 0
+ data = length 1662, hash A865F92C
+ sample 48:
+ time = 1024000
+ flags = 0
+ data = length 1856, hash D20294BC
+ sample 49:
+ time = 1045333
+ flags = 0
+ data = length 1754, hash 54C7681A
+ sample 50:
+ time = 1066666
+ flags = 1
+ data = length 3408, hash 48774BB2
+ sample 51:
+ time = 1088000
+ flags = 0
+ data = length 1602, hash 8E895F43
+ sample 52:
+ time = 1109333
+ flags = 0
+ data = length 1624, hash 9E0AD8CF
+ sample 53:
+ time = 1130666
+ flags = 0
+ data = length 1616, hash 1F123433
+ sample 54:
+ time = 1152000
+ flags = 0
+ data = length 1671, hash 29644955
+ sample 55:
+ time = 1173333
+ flags = 0
+ data = length 1641, hash 55E8050C
+ sample 56:
+ time = 1194666
+ flags = 0
+ data = length 1670, hash CC133185
+ sample 57:
+ time = 1216000
+ flags = 536870912
+ data = length 1705, hash 35C3F104
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..08ca5906fb
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,157 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1256]]
+ getPosition(1) = [[timeUs=1, position=1256]]
+ getPosition(584010) = [[timeUs=584010, position=46570]]
+ getPosition(1168020) = [[timeUs=1168020, position=91172]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 59539
+ sample count = 33
+ format 0:
+ id = 1
+ sampleMimeType = audio/mha1
+ codecs = mha1.0D
+ maxInputSize = 3528
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ sample 0:
+ time = 533333
+ flags = 1
+ data = length 3498, hash 3013997F
+ sample 1:
+ time = 554666
+ flags = 0
+ data = length 1645, hash 912C7F11
+ sample 2:
+ time = 576000
+ flags = 0
+ data = length 1679, hash 5C1D5E4B
+ sample 3:
+ time = 597333
+ flags = 0
+ data = length 1653, hash AAFDF0C4
+ sample 4:
+ time = 618666
+ flags = 0
+ data = length 1793, hash 7DEDF0E7
+ sample 5:
+ time = 640000
+ flags = 0
+ data = length 1673, hash 5123A069
+ sample 6:
+ time = 661333
+ flags = 0
+ data = length 1631, hash 668D073B
+ sample 7:
+ time = 682666
+ flags = 0
+ data = length 1645, hash 4BA09D58
+ sample 8:
+ time = 704000
+ flags = 0
+ data = length 1715, hash 6696D08A
+ sample 9:
+ time = 725333
+ flags = 0
+ data = length 1913, hash F22841A5
+ sample 10:
+ time = 746666
+ flags = 0
+ data = length 1808, hash 3EB2EF9A
+ sample 11:
+ time = 768000
+ flags = 0
+ data = length 1703, hash A76E92E6
+ sample 12:
+ time = 789333
+ flags = 0
+ data = length 1663, hash D60564B6
+ sample 13:
+ time = 810666
+ flags = 0
+ data = length 1691, hash 3E9DB1D0
+ sample 14:
+ time = 832000
+ flags = 0
+ data = length 1682, hash 66EF509A
+ sample 15:
+ time = 853333
+ flags = 0
+ data = length 1661, hash 1F1114BE
+ sample 16:
+ time = 874666
+ flags = 0
+ data = length 1651, hash 37C9B7B6
+ sample 17:
+ time = 896000
+ flags = 0
+ data = length 1675, hash 94616355
+ sample 18:
+ time = 917333
+ flags = 0
+ data = length 1671, hash DA7F4549
+ sample 19:
+ time = 938666
+ flags = 0
+ data = length 1799, hash 49EF8B35
+ sample 20:
+ time = 960000
+ flags = 0
+ data = length 1807, hash C8BDF3C1
+ sample 21:
+ time = 981333
+ flags = 0
+ data = length 1674, hash 36EA2B2F
+ sample 22:
+ time = 1002666
+ flags = 0
+ data = length 1662, hash A865F92C
+ sample 23:
+ time = 1024000
+ flags = 0
+ data = length 1856, hash D20294BC
+ sample 24:
+ time = 1045333
+ flags = 0
+ data = length 1754, hash 54C7681A
+ sample 25:
+ time = 1066666
+ flags = 1
+ data = length 3408, hash 48774BB2
+ sample 26:
+ time = 1088000
+ flags = 0
+ data = length 1602, hash 8E895F43
+ sample 27:
+ time = 1109333
+ flags = 0
+ data = length 1624, hash 9E0AD8CF
+ sample 28:
+ time = 1130666
+ flags = 0
+ data = length 1616, hash 1F123433
+ sample 29:
+ time = 1152000
+ flags = 0
+ data = length 1671, hash 29644955
+ sample 30:
+ time = 1173333
+ flags = 0
+ data = length 1641, hash 55E8050C
+ sample 31:
+ time = 1194666
+ flags = 0
+ data = length 1670, hash CC133185
+ sample 32:
+ time = 1216000
+ flags = 536870912
+ data = length 1705, hash 35C3F104
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..19d3341933
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,57 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1256]]
+ getPosition(1) = [[timeUs=1, position=1256]]
+ getPosition(584010) = [[timeUs=584010, position=46570]]
+ getPosition(1168020) = [[timeUs=1168020, position=91172]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 14937
+ sample count = 8
+ format 0:
+ id = 1
+ sampleMimeType = audio/mha1
+ codecs = mha1.0D
+ maxInputSize = 3528
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ sample 0:
+ time = 1066666
+ flags = 1
+ data = length 3408, hash 48774BB2
+ sample 1:
+ time = 1088000
+ flags = 0
+ data = length 1602, hash 8E895F43
+ sample 2:
+ time = 1109333
+ flags = 0
+ data = length 1624, hash 9E0AD8CF
+ sample 3:
+ time = 1130666
+ flags = 0
+ data = length 1616, hash 1F123433
+ sample 4:
+ time = 1152000
+ flags = 0
+ data = length 1671, hash 29644955
+ sample 5:
+ time = 1173333
+ flags = 0
+ data = length 1641, hash 55E8050C
+ sample 6:
+ time = 1194666
+ flags = 0
+ data = length 1670, hash CC133185
+ sample 7:
+ time = 1216000
+ flags = 536870912
+ data = length 1705, hash 35C3F104
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..34aad010a7
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,257 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1256]]
+ getPosition(1) = [[timeUs=1, position=1256]]
+ getPosition(584010) = [[timeUs=584010, position=46570]]
+ getPosition(1168020) = [[timeUs=1168020, position=91172]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 104853
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mha1
+ codecs = mha1.0D
+ maxInputSize = 3528
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1706, hash F69B88EF
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 1705, hash 20F7927C
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 1900, hash D986BAA7
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 2224, hash DC056DA8
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 2157, hash D9587B29
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 2252, hash 9935FAC5
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 2025, hash 388EC449
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 1818, hash 148B1B72
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 1844, hash E997B535
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 1717, hash 2A9D93FB
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 1701, hash 40238DB5
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 1684, hash C46763BF
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 1747, hash 5FC3C86E
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 1750, hash 7F164780
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 1742, hash B853D24D
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 1839, hash FBFCDC4A
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 1809, hash C4722031
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 1746, hash 5990EC1F
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 1657, hash 1973E3C4
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 1862, hash 47500487
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 1687, hash 6789C2B4
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 1661, hash 26AB63E4
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 1671, hash 85AA94AD
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 1666, hash 60AF02C
+ sample 24:
+ time = 512000
+ flags = 0
+ data = length 1744, hash 93B89CC9
+ sample 25:
+ time = 533333
+ flags = 1
+ data = length 3498, hash 3013997F
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 1645, hash 912C7F11
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 1679, hash 5C1D5E4B
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 1653, hash AAFDF0C4
+ sample 29:
+ time = 618666
+ flags = 0
+ data = length 1793, hash 7DEDF0E7
+ sample 30:
+ time = 640000
+ flags = 0
+ data = length 1673, hash 5123A069
+ sample 31:
+ time = 661333
+ flags = 0
+ data = length 1631, hash 668D073B
+ sample 32:
+ time = 682666
+ flags = 0
+ data = length 1645, hash 4BA09D58
+ sample 33:
+ time = 704000
+ flags = 0
+ data = length 1715, hash 6696D08A
+ sample 34:
+ time = 725333
+ flags = 0
+ data = length 1913, hash F22841A5
+ sample 35:
+ time = 746666
+ flags = 0
+ data = length 1808, hash 3EB2EF9A
+ sample 36:
+ time = 768000
+ flags = 0
+ data = length 1703, hash A76E92E6
+ sample 37:
+ time = 789333
+ flags = 0
+ data = length 1663, hash D60564B6
+ sample 38:
+ time = 810666
+ flags = 0
+ data = length 1691, hash 3E9DB1D0
+ sample 39:
+ time = 832000
+ flags = 0
+ data = length 1682, hash 66EF509A
+ sample 40:
+ time = 853333
+ flags = 0
+ data = length 1661, hash 1F1114BE
+ sample 41:
+ time = 874666
+ flags = 0
+ data = length 1651, hash 37C9B7B6
+ sample 42:
+ time = 896000
+ flags = 0
+ data = length 1675, hash 94616355
+ sample 43:
+ time = 917333
+ flags = 0
+ data = length 1671, hash DA7F4549
+ sample 44:
+ time = 938666
+ flags = 0
+ data = length 1799, hash 49EF8B35
+ sample 45:
+ time = 960000
+ flags = 0
+ data = length 1807, hash C8BDF3C1
+ sample 46:
+ time = 981333
+ flags = 0
+ data = length 1674, hash 36EA2B2F
+ sample 47:
+ time = 1002666
+ flags = 0
+ data = length 1662, hash A865F92C
+ sample 48:
+ time = 1024000
+ flags = 0
+ data = length 1856, hash D20294BC
+ sample 49:
+ time = 1045333
+ flags = 0
+ data = length 1754, hash 54C7681A
+ sample 50:
+ time = 1066666
+ flags = 1
+ data = length 3408, hash 48774BB2
+ sample 51:
+ time = 1088000
+ flags = 0
+ data = length 1602, hash 8E895F43
+ sample 52:
+ time = 1109333
+ flags = 0
+ data = length 1624, hash 9E0AD8CF
+ sample 53:
+ time = 1130666
+ flags = 0
+ data = length 1616, hash 1F123433
+ sample 54:
+ time = 1152000
+ flags = 0
+ data = length 1671, hash 29644955
+ sample 55:
+ time = 1173333
+ flags = 0
+ data = length 1641, hash 55E8050C
+ sample 56:
+ time = 1194666
+ flags = 0
+ data = length 1670, hash CC133185
+ sample 57:
+ time = 1216000
+ flags = 536870912
+ data = length 1705, hash 35C3F104
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..e1752d5396
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,258 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1266]]
+ getPosition(1) = [[timeUs=1, position=1266]]
+ getPosition(584010) = [[timeUs=584010, position=46742]]
+ getPosition(1168020) = [[timeUs=1168020, position=91500]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 105242
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0D
+ maxInputSize = 3564
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ data = length 1, hash 31
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1739, hash 223F65A5
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 1710, hash 70B3AADF
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 1905, hash 72BD5146
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 2232, hash A58B4DC5
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 2165, hash 3E10668F
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 2260, hash B374D37E
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 2030, hash FCB6232D
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 1823, hash B9CA45FF
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 1849, hash 4DCFE09C
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 1722, hash 7278DF52
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 1706, hash D12F9D1C
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 1689, hash D1435FE7
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 1752, hash 688D50A7
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 1755, hash B0796C6A
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 1747, hash EC7EEF2F
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 1844, hash 50076328
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 1814, hash 29EC9FED
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 1751, hash B146EF05
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 1662, hash 9492B757
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 1867, hash C0579EC0
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 1692, hash 9AFA9229
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 1666, hash C45B1473
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 1676, hash B7BB2032
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 1671, hash A6F982C2
+ sample 24:
+ time = 512000
+ flags = 0
+ data = length 1749, hash 8027152D
+ sample 25:
+ time = 533333
+ flags = 1
+ data = length 3534, hash DD3DCCB9
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 1650, hash 9E17D3B0
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 1684, hash BFCE03C8
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 1658, hash 55346B5B
+ sample 29:
+ time = 618666
+ flags = 0
+ data = length 1798, hash F74966B3
+ sample 30:
+ time = 640000
+ flags = 0
+ data = length 1678, hash 4759E0EC
+ sample 31:
+ time = 661333
+ flags = 0
+ data = length 1636, hash 8F2DDFE8
+ sample 32:
+ time = 682666
+ flags = 0
+ data = length 1650, hash 588BF1F7
+ sample 33:
+ time = 704000
+ flags = 0
+ data = length 1720, hash DCFA30E3
+ sample 34:
+ time = 725333
+ flags = 0
+ data = length 1918, hash B7A719F9
+ sample 35:
+ time = 746666
+ flags = 0
+ data = length 1813, hash D2708A5D
+ sample 36:
+ time = 768000
+ flags = 0
+ data = length 1708, hash 485FE64B
+ sample 37:
+ time = 789333
+ flags = 0
+ data = length 1668, hash 96F9C543
+ sample 38:
+ time = 810666
+ flags = 0
+ data = length 1696, hash 36831C41
+ sample 39:
+ time = 832000
+ flags = 0
+ data = length 1687, hash F30B1340
+ sample 40:
+ time = 853333
+ flags = 0
+ data = length 1666, hash BCC0C54D
+ sample 41:
+ time = 874666
+ flags = 0
+ data = length 1656, hash 3406274F
+ sample 42:
+ time = 896000
+ flags = 0
+ data = length 1680, hash BF8C79D6
+ sample 43:
+ time = 917333
+ flags = 0
+ data = length 1676, hash C8FD0CE
+ sample 44:
+ time = 938666
+ flags = 0
+ data = length 1804, hash 411EC53B
+ sample 45:
+ time = 960000
+ flags = 0
+ data = length 1812, hash 993B6BF
+ sample 46:
+ time = 981333
+ flags = 0
+ data = length 1679, hash E616DDCD
+ sample 47:
+ time = 1002666
+ flags = 0
+ data = length 1667, hash 927C96BE
+ sample 48:
+ time = 1024000
+ flags = 0
+ data = length 1861, hash 4D50FDAF
+ sample 49:
+ time = 1045333
+ flags = 0
+ data = length 1759, hash F4DCEB08
+ sample 50:
+ time = 1066666
+ flags = 1
+ data = length 3444, hash 6694E812
+ sample 51:
+ time = 1088000
+ flags = 0
+ data = length 1607, hash 5FE47299
+ sample 52:
+ time = 1109333
+ flags = 0
+ data = length 1629, hash 794195BB
+ sample 53:
+ time = 1130666
+ flags = 0
+ data = length 1621, hash CEB5ED17
+ sample 54:
+ time = 1152000
+ flags = 0
+ data = length 1676, hash 5B74D4DA
+ sample 55:
+ time = 1173333
+ flags = 0
+ data = length 1646, hash CB368CAF
+ sample 56:
+ time = 1194666
+ flags = 0
+ data = length 1675, hash 1C7C361F
+ sample 57:
+ time = 1216000
+ flags = 536870912
+ data = length 1710, hash 85800967
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..e1752d5396
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,258 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1266]]
+ getPosition(1) = [[timeUs=1, position=1266]]
+ getPosition(584010) = [[timeUs=584010, position=46742]]
+ getPosition(1168020) = [[timeUs=1168020, position=91500]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 105242
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0D
+ maxInputSize = 3564
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ data = length 1, hash 31
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1739, hash 223F65A5
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 1710, hash 70B3AADF
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 1905, hash 72BD5146
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 2232, hash A58B4DC5
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 2165, hash 3E10668F
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 2260, hash B374D37E
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 2030, hash FCB6232D
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 1823, hash B9CA45FF
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 1849, hash 4DCFE09C
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 1722, hash 7278DF52
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 1706, hash D12F9D1C
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 1689, hash D1435FE7
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 1752, hash 688D50A7
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 1755, hash B0796C6A
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 1747, hash EC7EEF2F
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 1844, hash 50076328
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 1814, hash 29EC9FED
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 1751, hash B146EF05
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 1662, hash 9492B757
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 1867, hash C0579EC0
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 1692, hash 9AFA9229
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 1666, hash C45B1473
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 1676, hash B7BB2032
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 1671, hash A6F982C2
+ sample 24:
+ time = 512000
+ flags = 0
+ data = length 1749, hash 8027152D
+ sample 25:
+ time = 533333
+ flags = 1
+ data = length 3534, hash DD3DCCB9
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 1650, hash 9E17D3B0
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 1684, hash BFCE03C8
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 1658, hash 55346B5B
+ sample 29:
+ time = 618666
+ flags = 0
+ data = length 1798, hash F74966B3
+ sample 30:
+ time = 640000
+ flags = 0
+ data = length 1678, hash 4759E0EC
+ sample 31:
+ time = 661333
+ flags = 0
+ data = length 1636, hash 8F2DDFE8
+ sample 32:
+ time = 682666
+ flags = 0
+ data = length 1650, hash 588BF1F7
+ sample 33:
+ time = 704000
+ flags = 0
+ data = length 1720, hash DCFA30E3
+ sample 34:
+ time = 725333
+ flags = 0
+ data = length 1918, hash B7A719F9
+ sample 35:
+ time = 746666
+ flags = 0
+ data = length 1813, hash D2708A5D
+ sample 36:
+ time = 768000
+ flags = 0
+ data = length 1708, hash 485FE64B
+ sample 37:
+ time = 789333
+ flags = 0
+ data = length 1668, hash 96F9C543
+ sample 38:
+ time = 810666
+ flags = 0
+ data = length 1696, hash 36831C41
+ sample 39:
+ time = 832000
+ flags = 0
+ data = length 1687, hash F30B1340
+ sample 40:
+ time = 853333
+ flags = 0
+ data = length 1666, hash BCC0C54D
+ sample 41:
+ time = 874666
+ flags = 0
+ data = length 1656, hash 3406274F
+ sample 42:
+ time = 896000
+ flags = 0
+ data = length 1680, hash BF8C79D6
+ sample 43:
+ time = 917333
+ flags = 0
+ data = length 1676, hash C8FD0CE
+ sample 44:
+ time = 938666
+ flags = 0
+ data = length 1804, hash 411EC53B
+ sample 45:
+ time = 960000
+ flags = 0
+ data = length 1812, hash 993B6BF
+ sample 46:
+ time = 981333
+ flags = 0
+ data = length 1679, hash E616DDCD
+ sample 47:
+ time = 1002666
+ flags = 0
+ data = length 1667, hash 927C96BE
+ sample 48:
+ time = 1024000
+ flags = 0
+ data = length 1861, hash 4D50FDAF
+ sample 49:
+ time = 1045333
+ flags = 0
+ data = length 1759, hash F4DCEB08
+ sample 50:
+ time = 1066666
+ flags = 1
+ data = length 3444, hash 6694E812
+ sample 51:
+ time = 1088000
+ flags = 0
+ data = length 1607, hash 5FE47299
+ sample 52:
+ time = 1109333
+ flags = 0
+ data = length 1629, hash 794195BB
+ sample 53:
+ time = 1130666
+ flags = 0
+ data = length 1621, hash CEB5ED17
+ sample 54:
+ time = 1152000
+ flags = 0
+ data = length 1676, hash 5B74D4DA
+ sample 55:
+ time = 1173333
+ flags = 0
+ data = length 1646, hash CB368CAF
+ sample 56:
+ time = 1194666
+ flags = 0
+ data = length 1675, hash 1C7C361F
+ sample 57:
+ time = 1216000
+ flags = 536870912
+ data = length 1710, hash 85800967
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..4eef118db3
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,158 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1266]]
+ getPosition(1) = [[timeUs=1, position=1266]]
+ getPosition(584010) = [[timeUs=584010, position=46742]]
+ getPosition(1168020) = [[timeUs=1168020, position=91500]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 59766
+ sample count = 33
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0D
+ maxInputSize = 3564
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ data = length 1, hash 31
+ sample 0:
+ time = 533333
+ flags = 1
+ data = length 3534, hash DD3DCCB9
+ sample 1:
+ time = 554666
+ flags = 0
+ data = length 1650, hash 9E17D3B0
+ sample 2:
+ time = 576000
+ flags = 0
+ data = length 1684, hash BFCE03C8
+ sample 3:
+ time = 597333
+ flags = 0
+ data = length 1658, hash 55346B5B
+ sample 4:
+ time = 618666
+ flags = 0
+ data = length 1798, hash F74966B3
+ sample 5:
+ time = 640000
+ flags = 0
+ data = length 1678, hash 4759E0EC
+ sample 6:
+ time = 661333
+ flags = 0
+ data = length 1636, hash 8F2DDFE8
+ sample 7:
+ time = 682666
+ flags = 0
+ data = length 1650, hash 588BF1F7
+ sample 8:
+ time = 704000
+ flags = 0
+ data = length 1720, hash DCFA30E3
+ sample 9:
+ time = 725333
+ flags = 0
+ data = length 1918, hash B7A719F9
+ sample 10:
+ time = 746666
+ flags = 0
+ data = length 1813, hash D2708A5D
+ sample 11:
+ time = 768000
+ flags = 0
+ data = length 1708, hash 485FE64B
+ sample 12:
+ time = 789333
+ flags = 0
+ data = length 1668, hash 96F9C543
+ sample 13:
+ time = 810666
+ flags = 0
+ data = length 1696, hash 36831C41
+ sample 14:
+ time = 832000
+ flags = 0
+ data = length 1687, hash F30B1340
+ sample 15:
+ time = 853333
+ flags = 0
+ data = length 1666, hash BCC0C54D
+ sample 16:
+ time = 874666
+ flags = 0
+ data = length 1656, hash 3406274F
+ sample 17:
+ time = 896000
+ flags = 0
+ data = length 1680, hash BF8C79D6
+ sample 18:
+ time = 917333
+ flags = 0
+ data = length 1676, hash C8FD0CE
+ sample 19:
+ time = 938666
+ flags = 0
+ data = length 1804, hash 411EC53B
+ sample 20:
+ time = 960000
+ flags = 0
+ data = length 1812, hash 993B6BF
+ sample 21:
+ time = 981333
+ flags = 0
+ data = length 1679, hash E616DDCD
+ sample 22:
+ time = 1002666
+ flags = 0
+ data = length 1667, hash 927C96BE
+ sample 23:
+ time = 1024000
+ flags = 0
+ data = length 1861, hash 4D50FDAF
+ sample 24:
+ time = 1045333
+ flags = 0
+ data = length 1759, hash F4DCEB08
+ sample 25:
+ time = 1066666
+ flags = 1
+ data = length 3444, hash 6694E812
+ sample 26:
+ time = 1088000
+ flags = 0
+ data = length 1607, hash 5FE47299
+ sample 27:
+ time = 1109333
+ flags = 0
+ data = length 1629, hash 794195BB
+ sample 28:
+ time = 1130666
+ flags = 0
+ data = length 1621, hash CEB5ED17
+ sample 29:
+ time = 1152000
+ flags = 0
+ data = length 1676, hash 5B74D4DA
+ sample 30:
+ time = 1173333
+ flags = 0
+ data = length 1646, hash CB368CAF
+ sample 31:
+ time = 1194666
+ flags = 0
+ data = length 1675, hash 1C7C361F
+ sample 32:
+ time = 1216000
+ flags = 536870912
+ data = length 1710, hash 85800967
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..307d25017d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,58 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1266]]
+ getPosition(1) = [[timeUs=1, position=1266]]
+ getPosition(584010) = [[timeUs=584010, position=46742]]
+ getPosition(1168020) = [[timeUs=1168020, position=91500]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 15008
+ sample count = 8
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0D
+ maxInputSize = 3564
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ data = length 1, hash 31
+ sample 0:
+ time = 1066666
+ flags = 1
+ data = length 3444, hash 6694E812
+ sample 1:
+ time = 1088000
+ flags = 0
+ data = length 1607, hash 5FE47299
+ sample 2:
+ time = 1109333
+ flags = 0
+ data = length 1629, hash 794195BB
+ sample 3:
+ time = 1130666
+ flags = 0
+ data = length 1621, hash CEB5ED17
+ sample 4:
+ time = 1152000
+ flags = 0
+ data = length 1676, hash 5B74D4DA
+ sample 5:
+ time = 1173333
+ flags = 0
+ data = length 1646, hash CB368CAF
+ sample 6:
+ time = 1194666
+ flags = 0
+ data = length 1675, hash 1C7C361F
+ sample 7:
+ time = 1216000
+ flags = 536870912
+ data = length 1710, hash 85800967
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..e1752d5396
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,258 @@
+seekMap:
+ isSeekable = true
+ duration = 1168020
+ getPosition(0) = [[timeUs=0, position=1266]]
+ getPosition(1) = [[timeUs=1, position=1266]]
+ getPosition(584010) = [[timeUs=584010, position=46742]]
+ getPosition(1168020) = [[timeUs=1168020, position=91500]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 105242
+ sample count = 58
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0D
+ maxInputSize = 3564
+ channelCount = 0
+ sampleRate = 48000
+ encoderDelay = 3072
+ encoderPadding = 255
+ language = und
+ metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
+ initializationData:
+ data = length 26, hash 4E58F6C7
+ data = length 1, hash 31
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 1739, hash 223F65A5
+ sample 1:
+ time = 21333
+ flags = 0
+ data = length 1710, hash 70B3AADF
+ sample 2:
+ time = 42666
+ flags = 0
+ data = length 1905, hash 72BD5146
+ sample 3:
+ time = 64000
+ flags = 0
+ data = length 2232, hash A58B4DC5
+ sample 4:
+ time = 85333
+ flags = 0
+ data = length 2165, hash 3E10668F
+ sample 5:
+ time = 106666
+ flags = 0
+ data = length 2260, hash B374D37E
+ sample 6:
+ time = 128000
+ flags = 0
+ data = length 2030, hash FCB6232D
+ sample 7:
+ time = 149333
+ flags = 0
+ data = length 1823, hash B9CA45FF
+ sample 8:
+ time = 170666
+ flags = 0
+ data = length 1849, hash 4DCFE09C
+ sample 9:
+ time = 192000
+ flags = 0
+ data = length 1722, hash 7278DF52
+ sample 10:
+ time = 213333
+ flags = 0
+ data = length 1706, hash D12F9D1C
+ sample 11:
+ time = 234666
+ flags = 0
+ data = length 1689, hash D1435FE7
+ sample 12:
+ time = 256000
+ flags = 0
+ data = length 1752, hash 688D50A7
+ sample 13:
+ time = 277333
+ flags = 0
+ data = length 1755, hash B0796C6A
+ sample 14:
+ time = 298666
+ flags = 0
+ data = length 1747, hash EC7EEF2F
+ sample 15:
+ time = 320000
+ flags = 0
+ data = length 1844, hash 50076328
+ sample 16:
+ time = 341333
+ flags = 0
+ data = length 1814, hash 29EC9FED
+ sample 17:
+ time = 362666
+ flags = 0
+ data = length 1751, hash B146EF05
+ sample 18:
+ time = 384000
+ flags = 0
+ data = length 1662, hash 9492B757
+ sample 19:
+ time = 405333
+ flags = 0
+ data = length 1867, hash C0579EC0
+ sample 20:
+ time = 426666
+ flags = 0
+ data = length 1692, hash 9AFA9229
+ sample 21:
+ time = 448000
+ flags = 0
+ data = length 1666, hash C45B1473
+ sample 22:
+ time = 469333
+ flags = 0
+ data = length 1676, hash B7BB2032
+ sample 23:
+ time = 490666
+ flags = 0
+ data = length 1671, hash A6F982C2
+ sample 24:
+ time = 512000
+ flags = 0
+ data = length 1749, hash 8027152D
+ sample 25:
+ time = 533333
+ flags = 1
+ data = length 3534, hash DD3DCCB9
+ sample 26:
+ time = 554666
+ flags = 0
+ data = length 1650, hash 9E17D3B0
+ sample 27:
+ time = 576000
+ flags = 0
+ data = length 1684, hash BFCE03C8
+ sample 28:
+ time = 597333
+ flags = 0
+ data = length 1658, hash 55346B5B
+ sample 29:
+ time = 618666
+ flags = 0
+ data = length 1798, hash F74966B3
+ sample 30:
+ time = 640000
+ flags = 0
+ data = length 1678, hash 4759E0EC
+ sample 31:
+ time = 661333
+ flags = 0
+ data = length 1636, hash 8F2DDFE8
+ sample 32:
+ time = 682666
+ flags = 0
+ data = length 1650, hash 588BF1F7
+ sample 33:
+ time = 704000
+ flags = 0
+ data = length 1720, hash DCFA30E3
+ sample 34:
+ time = 725333
+ flags = 0
+ data = length 1918, hash B7A719F9
+ sample 35:
+ time = 746666
+ flags = 0
+ data = length 1813, hash D2708A5D
+ sample 36:
+ time = 768000
+ flags = 0
+ data = length 1708, hash 485FE64B
+ sample 37:
+ time = 789333
+ flags = 0
+ data = length 1668, hash 96F9C543
+ sample 38:
+ time = 810666
+ flags = 0
+ data = length 1696, hash 36831C41
+ sample 39:
+ time = 832000
+ flags = 0
+ data = length 1687, hash F30B1340
+ sample 40:
+ time = 853333
+ flags = 0
+ data = length 1666, hash BCC0C54D
+ sample 41:
+ time = 874666
+ flags = 0
+ data = length 1656, hash 3406274F
+ sample 42:
+ time = 896000
+ flags = 0
+ data = length 1680, hash BF8C79D6
+ sample 43:
+ time = 917333
+ flags = 0
+ data = length 1676, hash C8FD0CE
+ sample 44:
+ time = 938666
+ flags = 0
+ data = length 1804, hash 411EC53B
+ sample 45:
+ time = 960000
+ flags = 0
+ data = length 1812, hash 993B6BF
+ sample 46:
+ time = 981333
+ flags = 0
+ data = length 1679, hash E616DDCD
+ sample 47:
+ time = 1002666
+ flags = 0
+ data = length 1667, hash 927C96BE
+ sample 48:
+ time = 1024000
+ flags = 0
+ data = length 1861, hash 4D50FDAF
+ sample 49:
+ time = 1045333
+ flags = 0
+ data = length 1759, hash F4DCEB08
+ sample 50:
+ time = 1066666
+ flags = 1
+ data = length 3444, hash 6694E812
+ sample 51:
+ time = 1088000
+ flags = 0
+ data = length 1607, hash 5FE47299
+ sample 52:
+ time = 1109333
+ flags = 0
+ data = length 1629, hash 794195BB
+ sample 53:
+ time = 1130666
+ flags = 0
+ data = length 1621, hash CEB5ED17
+ sample 54:
+ time = 1152000
+ flags = 0
+ data = length 1676, hash 5B74D4DA
+ sample 55:
+ time = 1173333
+ flags = 0
+ data = length 1646, hash CB368CAF
+ sample 56:
+ time = 1194666
+ flags = 0
+ data = length 1675, hash 1C7C361F
+ sample 57:
+ time = 1216000
+ flags = 536870912
+ data = length 1710, hash 85800967
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..0841fad075
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,428 @@
+seekMap:
+ isSeekable = true
+ duration = 1460000
+ getPosition(0) = [[timeUs=0, position=179]]
+ getPosition(1) = [[timeUs=1, position=179]]
+ getPosition(730000) = [[timeUs=730000, position=398]]
+ getPosition(1460000) = [[timeUs=1460000, position=3701]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 3651
+ sample count = 101
+ format 0:
+ id = 1
+ sampleMimeType = audio/opus
+ maxInputSize = 278
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 19, hash 86852AE2
+ data = length 8, hash 72CBCBF5
+ data = length 8, hash 79C07075
+ sample 0:
+ time = -6500
+ flags = 1
+ data = length 3, hash 4732
+ sample 1:
+ time = 3500
+ flags = 1
+ data = length 3, hash 4732
+ sample 2:
+ time = 13500
+ flags = 1
+ data = length 3, hash 4732
+ sample 3:
+ time = 23500
+ flags = 1
+ data = length 3, hash 4732
+ sample 4:
+ time = 33500
+ flags = 1
+ data = length 3, hash 4732
+ sample 5:
+ time = 43500
+ flags = 1
+ data = length 3, hash 4732
+ sample 6:
+ time = 53500
+ flags = 1
+ data = length 3, hash 4732
+ sample 7:
+ time = 63500
+ flags = 1
+ data = length 3, hash 4732
+ sample 8:
+ time = 73500
+ flags = 1
+ data = length 3, hash 4732
+ sample 9:
+ time = 83500
+ flags = 1
+ data = length 3, hash 4732
+ sample 10:
+ time = 93500
+ flags = 1
+ data = length 3, hash 4732
+ sample 11:
+ time = 103500
+ flags = 1
+ data = length 3, hash 4732
+ sample 12:
+ time = 113500
+ flags = 1
+ data = length 3, hash 4732
+ sample 13:
+ time = 123500
+ flags = 1
+ data = length 3, hash 4732
+ sample 14:
+ time = 133500
+ flags = 1
+ data = length 3, hash 4732
+ sample 15:
+ time = 143500
+ flags = 1
+ data = length 3, hash 4732
+ sample 16:
+ time = 153500
+ flags = 1
+ data = length 3, hash 4732
+ sample 17:
+ time = 163500
+ flags = 1
+ data = length 3, hash 4732
+ sample 18:
+ time = 173500
+ flags = 1
+ data = length 3, hash 4732
+ sample 19:
+ time = 183500
+ flags = 1
+ data = length 3, hash 4732
+ sample 20:
+ time = 193500
+ flags = 1
+ data = length 3, hash 4732
+ sample 21:
+ time = 203500
+ flags = 1
+ data = length 3, hash 4732
+ sample 22:
+ time = 213500
+ flags = 1
+ data = length 3, hash 4732
+ sample 23:
+ time = 223500
+ flags = 1
+ data = length 3, hash 4732
+ sample 24:
+ time = 233500
+ flags = 1
+ data = length 3, hash 4732
+ sample 25:
+ time = 243500
+ flags = 1
+ data = length 3, hash 4732
+ sample 26:
+ time = 253500
+ flags = 1
+ data = length 3, hash 4732
+ sample 27:
+ time = 263500
+ flags = 1
+ data = length 3, hash 4732
+ sample 28:
+ time = 273500
+ flags = 1
+ data = length 3, hash 4732
+ sample 29:
+ time = 283500
+ flags = 1
+ data = length 3, hash 4732
+ sample 30:
+ time = 293500
+ flags = 1
+ data = length 3, hash 4732
+ sample 31:
+ time = 303500
+ flags = 1
+ data = length 3, hash 4732
+ sample 32:
+ time = 313500
+ flags = 1
+ data = length 3, hash 4732
+ sample 33:
+ time = 323500
+ flags = 1
+ data = length 3, hash 4732
+ sample 34:
+ time = 333500
+ flags = 1
+ data = length 3, hash 4732
+ sample 35:
+ time = 343500
+ flags = 1
+ data = length 3, hash 4732
+ sample 36:
+ time = 353500
+ flags = 1
+ data = length 3, hash 4732
+ sample 37:
+ time = 363500
+ flags = 1
+ data = length 3, hash 4732
+ sample 38:
+ time = 373500
+ flags = 1
+ data = length 3, hash 4732
+ sample 39:
+ time = 383500
+ flags = 1
+ data = length 3, hash 4732
+ sample 40:
+ time = 393500
+ flags = 1
+ data = length 3, hash 4732
+ sample 41:
+ time = 403500
+ flags = 1
+ data = length 3, hash 4732
+ sample 42:
+ time = 413500
+ flags = 1
+ data = length 3, hash 4732
+ sample 43:
+ time = 423500
+ flags = 1
+ data = length 3, hash 4732
+ sample 44:
+ time = 433500
+ flags = 1
+ data = length 3, hash 4732
+ sample 45:
+ time = 443500
+ flags = 1
+ data = length 3, hash 4732
+ sample 46:
+ time = 453500
+ flags = 1
+ data = length 3, hash 4732
+ sample 47:
+ time = 463500
+ flags = 1
+ data = length 3, hash 4732
+ sample 48:
+ time = 473500
+ flags = 1
+ data = length 3, hash 4732
+ sample 49:
+ time = 483500
+ flags = 1
+ data = length 3, hash 4732
+ sample 50:
+ time = 493500
+ flags = 1
+ data = length 3, hash 4732
+ sample 51:
+ time = 503500
+ flags = 1
+ data = length 3, hash 4732
+ sample 52:
+ time = 513500
+ flags = 1
+ data = length 3, hash 4732
+ sample 53:
+ time = 523500
+ flags = 1
+ data = length 3, hash 4732
+ sample 54:
+ time = 533500
+ flags = 1
+ data = length 3, hash 4732
+ sample 55:
+ time = 543500
+ flags = 1
+ data = length 3, hash 4732
+ sample 56:
+ time = 553500
+ flags = 1
+ data = length 3, hash 4732
+ sample 57:
+ time = 563500
+ flags = 1
+ data = length 3, hash 4732
+ sample 58:
+ time = 573500
+ flags = 1
+ data = length 3, hash 4732
+ sample 59:
+ time = 583500
+ flags = 1
+ data = length 3, hash 4732
+ sample 60:
+ time = 593500
+ flags = 1
+ data = length 3, hash 4732
+ sample 61:
+ time = 603500
+ flags = 1
+ data = length 3, hash 4732
+ sample 62:
+ time = 613500
+ flags = 1
+ data = length 3, hash 4732
+ sample 63:
+ time = 623500
+ flags = 1
+ data = length 3, hash 4732
+ sample 64:
+ time = 633500
+ flags = 1
+ data = length 3, hash 4732
+ sample 65:
+ time = 643500
+ flags = 1
+ data = length 3, hash 4732
+ sample 66:
+ time = 653500
+ flags = 1
+ data = length 3, hash 4732
+ sample 67:
+ time = 663500
+ flags = 1
+ data = length 3, hash 4732
+ sample 68:
+ time = 673500
+ flags = 1
+ data = length 3, hash 4732
+ sample 69:
+ time = 683500
+ flags = 1
+ data = length 3, hash 4732
+ sample 70:
+ time = 693500
+ flags = 1
+ data = length 3, hash 4732
+ sample 71:
+ time = 703500
+ flags = 1
+ data = length 3, hash 4732
+ sample 72:
+ time = 713500
+ flags = 1
+ data = length 3, hash 4732
+ sample 73:
+ time = 723500
+ flags = 1
+ data = length 3, hash 4732
+ sample 74:
+ time = 733500
+ flags = 1
+ data = length 3, hash 4732
+ sample 75:
+ time = 743500
+ flags = 1
+ data = length 66, hash 648F0BC5
+ sample 76:
+ time = 753500
+ flags = 1
+ data = length 248, hash D07B1166
+ sample 77:
+ time = 763500
+ flags = 1
+ data = length 239, hash 61AA7E3B
+ sample 78:
+ time = 773500
+ flags = 1
+ data = length 142, hash F01726AD
+ sample 79:
+ time = 783500
+ flags = 1
+ data = length 124, hash 35B50117
+ sample 80:
+ time = 793500
+ flags = 1
+ data = length 122, hash 6ED2EA14
+ sample 81:
+ time = 803500
+ flags = 1
+ data = length 118, hash AAB319C9
+ sample 82:
+ time = 813500
+ flags = 1
+ data = length 117, hash 7B08A466
+ sample 83:
+ time = 823500
+ flags = 1
+ data = length 120, hash AF62F442
+ sample 84:
+ time = 833500
+ flags = 1
+ data = length 120, hash 21A0E5E9
+ sample 85:
+ time = 843500
+ flags = 1
+ data = length 122, hash F191C09
+ sample 86:
+ time = 853500
+ flags = 1
+ data = length 120, hash C52E4F2D
+ sample 87:
+ time = 863500
+ flags = 1
+ data = length 120, hash D4554502
+ sample 88:
+ time = 873500
+ flags = 1
+ data = length 121, hash D4E641CF
+ sample 89:
+ time = 883500
+ flags = 1
+ data = length 123, hash 518700A8
+ sample 90:
+ time = 893500
+ flags = 1
+ data = length 123, hash 6EA13134
+ sample 91:
+ time = 903500
+ flags = 1
+ data = length 123, hash A4264A7B
+ sample 92:
+ time = 913500
+ flags = 1
+ data = length 126, hash 593B6BA5
+ sample 93:
+ time = 923500
+ flags = 1
+ data = length 127, hash 15988F8A
+ sample 94:
+ time = 933500
+ flags = 1
+ data = length 134, hash 165D0213
+ sample 95:
+ time = 943500
+ flags = 1
+ data = length 129, hash 1F5ABD5B
+ sample 96:
+ time = 953500
+ flags = 1
+ data = length 131, hash 65E1E196
+ sample 97:
+ time = 963500
+ flags = 1
+ data = length 128, hash 70A740A1
+ sample 98:
+ time = 973500
+ flags = 1
+ data = length 130, hash 2D3733ED
+ sample 99:
+ time = 983500
+ flags = 1
+ data = length 124, hash 6CC37521
+ sample 100:
+ time = 993500
+ flags = 536870913
+ data = length 129, hash 722253A8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..6e8325d298
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,232 @@
+seekMap:
+ isSeekable = true
+ duration = 1460000
+ getPosition(0) = [[timeUs=0, position=179]]
+ getPosition(1) = [[timeUs=1, position=179]]
+ getPosition(730000) = [[timeUs=730000, position=398]]
+ getPosition(1460000) = [[timeUs=1460000, position=3701]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 3504
+ sample count = 52
+ format 0:
+ id = 1
+ sampleMimeType = audio/opus
+ maxInputSize = 278
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 19, hash 86852AE2
+ data = length 8, hash 72CBCBF5
+ data = length 8, hash 79C07075
+ sample 0:
+ time = 483500
+ flags = 1
+ data = length 3, hash 4732
+ sample 1:
+ time = 493500
+ flags = 1
+ data = length 3, hash 4732
+ sample 2:
+ time = 503500
+ flags = 1
+ data = length 3, hash 4732
+ sample 3:
+ time = 513500
+ flags = 1
+ data = length 3, hash 4732
+ sample 4:
+ time = 523500
+ flags = 1
+ data = length 3, hash 4732
+ sample 5:
+ time = 533500
+ flags = 1
+ data = length 3, hash 4732
+ sample 6:
+ time = 543500
+ flags = 1
+ data = length 3, hash 4732
+ sample 7:
+ time = 553500
+ flags = 1
+ data = length 3, hash 4732
+ sample 8:
+ time = 563500
+ flags = 1
+ data = length 3, hash 4732
+ sample 9:
+ time = 573500
+ flags = 1
+ data = length 3, hash 4732
+ sample 10:
+ time = 583500
+ flags = 1
+ data = length 3, hash 4732
+ sample 11:
+ time = 593500
+ flags = 1
+ data = length 3, hash 4732
+ sample 12:
+ time = 603500
+ flags = 1
+ data = length 3, hash 4732
+ sample 13:
+ time = 613500
+ flags = 1
+ data = length 3, hash 4732
+ sample 14:
+ time = 623500
+ flags = 1
+ data = length 3, hash 4732
+ sample 15:
+ time = 633500
+ flags = 1
+ data = length 3, hash 4732
+ sample 16:
+ time = 643500
+ flags = 1
+ data = length 3, hash 4732
+ sample 17:
+ time = 653500
+ flags = 1
+ data = length 3, hash 4732
+ sample 18:
+ time = 663500
+ flags = 1
+ data = length 3, hash 4732
+ sample 19:
+ time = 673500
+ flags = 1
+ data = length 3, hash 4732
+ sample 20:
+ time = 683500
+ flags = 1
+ data = length 3, hash 4732
+ sample 21:
+ time = 693500
+ flags = 1
+ data = length 3, hash 4732
+ sample 22:
+ time = 703500
+ flags = 1
+ data = length 3, hash 4732
+ sample 23:
+ time = 713500
+ flags = 1
+ data = length 3, hash 4732
+ sample 24:
+ time = 723500
+ flags = 1
+ data = length 3, hash 4732
+ sample 25:
+ time = 733500
+ flags = 1
+ data = length 3, hash 4732
+ sample 26:
+ time = 743500
+ flags = 1
+ data = length 66, hash 648F0BC5
+ sample 27:
+ time = 753500
+ flags = 1
+ data = length 248, hash D07B1166
+ sample 28:
+ time = 763500
+ flags = 1
+ data = length 239, hash 61AA7E3B
+ sample 29:
+ time = 773500
+ flags = 1
+ data = length 142, hash F01726AD
+ sample 30:
+ time = 783500
+ flags = 1
+ data = length 124, hash 35B50117
+ sample 31:
+ time = 793500
+ flags = 1
+ data = length 122, hash 6ED2EA14
+ sample 32:
+ time = 803500
+ flags = 1
+ data = length 118, hash AAB319C9
+ sample 33:
+ time = 813500
+ flags = 1
+ data = length 117, hash 7B08A466
+ sample 34:
+ time = 823500
+ flags = 1
+ data = length 120, hash AF62F442
+ sample 35:
+ time = 833500
+ flags = 1
+ data = length 120, hash 21A0E5E9
+ sample 36:
+ time = 843500
+ flags = 1
+ data = length 122, hash F191C09
+ sample 37:
+ time = 853500
+ flags = 1
+ data = length 120, hash C52E4F2D
+ sample 38:
+ time = 863500
+ flags = 1
+ data = length 120, hash D4554502
+ sample 39:
+ time = 873500
+ flags = 1
+ data = length 121, hash D4E641CF
+ sample 40:
+ time = 883500
+ flags = 1
+ data = length 123, hash 518700A8
+ sample 41:
+ time = 893500
+ flags = 1
+ data = length 123, hash 6EA13134
+ sample 42:
+ time = 903500
+ flags = 1
+ data = length 123, hash A4264A7B
+ sample 43:
+ time = 913500
+ flags = 1
+ data = length 126, hash 593B6BA5
+ sample 44:
+ time = 923500
+ flags = 1
+ data = length 127, hash 15988F8A
+ sample 45:
+ time = 933500
+ flags = 1
+ data = length 134, hash 165D0213
+ sample 46:
+ time = 943500
+ flags = 1
+ data = length 129, hash 1F5ABD5B
+ sample 47:
+ time = 953500
+ flags = 1
+ data = length 131, hash 65E1E196
+ sample 48:
+ time = 963500
+ flags = 1
+ data = length 128, hash 70A740A1
+ sample 49:
+ time = 973500
+ flags = 1
+ data = length 130, hash 2D3733ED
+ sample 50:
+ time = 983500
+ flags = 1
+ data = length 124, hash 6CC37521
+ sample 51:
+ time = 993500
+ flags = 536870913
+ data = length 129, hash 722253A8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..e003409fed
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,40 @@
+seekMap:
+ isSeekable = true
+ duration = 1460000
+ getPosition(0) = [[timeUs=0, position=179]]
+ getPosition(1) = [[timeUs=1, position=179]]
+ getPosition(730000) = [[timeUs=730000, position=398]]
+ getPosition(1460000) = [[timeUs=1460000, position=3701]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 511
+ sample count = 4
+ format 0:
+ id = 1
+ sampleMimeType = audio/opus
+ maxInputSize = 278
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 19, hash 86852AE2
+ data = length 8, hash 72CBCBF5
+ data = length 8, hash 79C07075
+ sample 0:
+ time = 963500
+ flags = 1
+ data = length 128, hash 70A740A1
+ sample 1:
+ time = 973500
+ flags = 1
+ data = length 130, hash 2D3733ED
+ sample 2:
+ time = 983500
+ flags = 1
+ data = length 124, hash 6CC37521
+ sample 3:
+ time = 993500
+ flags = 536870913
+ data = length 129, hash 722253A8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..b422b8f8ac
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,28 @@
+seekMap:
+ isSeekable = true
+ duration = 1460000
+ getPosition(0) = [[timeUs=0, position=179]]
+ getPosition(1) = [[timeUs=1, position=179]]
+ getPosition(730000) = [[timeUs=730000, position=398]]
+ getPosition(1460000) = [[timeUs=1460000, position=3701]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 129
+ sample count = 1
+ format 0:
+ id = 1
+ sampleMimeType = audio/opus
+ maxInputSize = 278
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 19, hash 86852AE2
+ data = length 8, hash 72CBCBF5
+ data = length 8, hash 79C07075
+ sample 0:
+ time = 993500
+ flags = 536870913
+ data = length 129, hash 722253A8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..0841fad075
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,428 @@
+seekMap:
+ isSeekable = true
+ duration = 1460000
+ getPosition(0) = [[timeUs=0, position=179]]
+ getPosition(1) = [[timeUs=1, position=179]]
+ getPosition(730000) = [[timeUs=730000, position=398]]
+ getPosition(1460000) = [[timeUs=1460000, position=3701]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 3651
+ sample count = 101
+ format 0:
+ id = 1
+ sampleMimeType = audio/opus
+ maxInputSize = 278
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 19, hash 86852AE2
+ data = length 8, hash 72CBCBF5
+ data = length 8, hash 79C07075
+ sample 0:
+ time = -6500
+ flags = 1
+ data = length 3, hash 4732
+ sample 1:
+ time = 3500
+ flags = 1
+ data = length 3, hash 4732
+ sample 2:
+ time = 13500
+ flags = 1
+ data = length 3, hash 4732
+ sample 3:
+ time = 23500
+ flags = 1
+ data = length 3, hash 4732
+ sample 4:
+ time = 33500
+ flags = 1
+ data = length 3, hash 4732
+ sample 5:
+ time = 43500
+ flags = 1
+ data = length 3, hash 4732
+ sample 6:
+ time = 53500
+ flags = 1
+ data = length 3, hash 4732
+ sample 7:
+ time = 63500
+ flags = 1
+ data = length 3, hash 4732
+ sample 8:
+ time = 73500
+ flags = 1
+ data = length 3, hash 4732
+ sample 9:
+ time = 83500
+ flags = 1
+ data = length 3, hash 4732
+ sample 10:
+ time = 93500
+ flags = 1
+ data = length 3, hash 4732
+ sample 11:
+ time = 103500
+ flags = 1
+ data = length 3, hash 4732
+ sample 12:
+ time = 113500
+ flags = 1
+ data = length 3, hash 4732
+ sample 13:
+ time = 123500
+ flags = 1
+ data = length 3, hash 4732
+ sample 14:
+ time = 133500
+ flags = 1
+ data = length 3, hash 4732
+ sample 15:
+ time = 143500
+ flags = 1
+ data = length 3, hash 4732
+ sample 16:
+ time = 153500
+ flags = 1
+ data = length 3, hash 4732
+ sample 17:
+ time = 163500
+ flags = 1
+ data = length 3, hash 4732
+ sample 18:
+ time = 173500
+ flags = 1
+ data = length 3, hash 4732
+ sample 19:
+ time = 183500
+ flags = 1
+ data = length 3, hash 4732
+ sample 20:
+ time = 193500
+ flags = 1
+ data = length 3, hash 4732
+ sample 21:
+ time = 203500
+ flags = 1
+ data = length 3, hash 4732
+ sample 22:
+ time = 213500
+ flags = 1
+ data = length 3, hash 4732
+ sample 23:
+ time = 223500
+ flags = 1
+ data = length 3, hash 4732
+ sample 24:
+ time = 233500
+ flags = 1
+ data = length 3, hash 4732
+ sample 25:
+ time = 243500
+ flags = 1
+ data = length 3, hash 4732
+ sample 26:
+ time = 253500
+ flags = 1
+ data = length 3, hash 4732
+ sample 27:
+ time = 263500
+ flags = 1
+ data = length 3, hash 4732
+ sample 28:
+ time = 273500
+ flags = 1
+ data = length 3, hash 4732
+ sample 29:
+ time = 283500
+ flags = 1
+ data = length 3, hash 4732
+ sample 30:
+ time = 293500
+ flags = 1
+ data = length 3, hash 4732
+ sample 31:
+ time = 303500
+ flags = 1
+ data = length 3, hash 4732
+ sample 32:
+ time = 313500
+ flags = 1
+ data = length 3, hash 4732
+ sample 33:
+ time = 323500
+ flags = 1
+ data = length 3, hash 4732
+ sample 34:
+ time = 333500
+ flags = 1
+ data = length 3, hash 4732
+ sample 35:
+ time = 343500
+ flags = 1
+ data = length 3, hash 4732
+ sample 36:
+ time = 353500
+ flags = 1
+ data = length 3, hash 4732
+ sample 37:
+ time = 363500
+ flags = 1
+ data = length 3, hash 4732
+ sample 38:
+ time = 373500
+ flags = 1
+ data = length 3, hash 4732
+ sample 39:
+ time = 383500
+ flags = 1
+ data = length 3, hash 4732
+ sample 40:
+ time = 393500
+ flags = 1
+ data = length 3, hash 4732
+ sample 41:
+ time = 403500
+ flags = 1
+ data = length 3, hash 4732
+ sample 42:
+ time = 413500
+ flags = 1
+ data = length 3, hash 4732
+ sample 43:
+ time = 423500
+ flags = 1
+ data = length 3, hash 4732
+ sample 44:
+ time = 433500
+ flags = 1
+ data = length 3, hash 4732
+ sample 45:
+ time = 443500
+ flags = 1
+ data = length 3, hash 4732
+ sample 46:
+ time = 453500
+ flags = 1
+ data = length 3, hash 4732
+ sample 47:
+ time = 463500
+ flags = 1
+ data = length 3, hash 4732
+ sample 48:
+ time = 473500
+ flags = 1
+ data = length 3, hash 4732
+ sample 49:
+ time = 483500
+ flags = 1
+ data = length 3, hash 4732
+ sample 50:
+ time = 493500
+ flags = 1
+ data = length 3, hash 4732
+ sample 51:
+ time = 503500
+ flags = 1
+ data = length 3, hash 4732
+ sample 52:
+ time = 513500
+ flags = 1
+ data = length 3, hash 4732
+ sample 53:
+ time = 523500
+ flags = 1
+ data = length 3, hash 4732
+ sample 54:
+ time = 533500
+ flags = 1
+ data = length 3, hash 4732
+ sample 55:
+ time = 543500
+ flags = 1
+ data = length 3, hash 4732
+ sample 56:
+ time = 553500
+ flags = 1
+ data = length 3, hash 4732
+ sample 57:
+ time = 563500
+ flags = 1
+ data = length 3, hash 4732
+ sample 58:
+ time = 573500
+ flags = 1
+ data = length 3, hash 4732
+ sample 59:
+ time = 583500
+ flags = 1
+ data = length 3, hash 4732
+ sample 60:
+ time = 593500
+ flags = 1
+ data = length 3, hash 4732
+ sample 61:
+ time = 603500
+ flags = 1
+ data = length 3, hash 4732
+ sample 62:
+ time = 613500
+ flags = 1
+ data = length 3, hash 4732
+ sample 63:
+ time = 623500
+ flags = 1
+ data = length 3, hash 4732
+ sample 64:
+ time = 633500
+ flags = 1
+ data = length 3, hash 4732
+ sample 65:
+ time = 643500
+ flags = 1
+ data = length 3, hash 4732
+ sample 66:
+ time = 653500
+ flags = 1
+ data = length 3, hash 4732
+ sample 67:
+ time = 663500
+ flags = 1
+ data = length 3, hash 4732
+ sample 68:
+ time = 673500
+ flags = 1
+ data = length 3, hash 4732
+ sample 69:
+ time = 683500
+ flags = 1
+ data = length 3, hash 4732
+ sample 70:
+ time = 693500
+ flags = 1
+ data = length 3, hash 4732
+ sample 71:
+ time = 703500
+ flags = 1
+ data = length 3, hash 4732
+ sample 72:
+ time = 713500
+ flags = 1
+ data = length 3, hash 4732
+ sample 73:
+ time = 723500
+ flags = 1
+ data = length 3, hash 4732
+ sample 74:
+ time = 733500
+ flags = 1
+ data = length 3, hash 4732
+ sample 75:
+ time = 743500
+ flags = 1
+ data = length 66, hash 648F0BC5
+ sample 76:
+ time = 753500
+ flags = 1
+ data = length 248, hash D07B1166
+ sample 77:
+ time = 763500
+ flags = 1
+ data = length 239, hash 61AA7E3B
+ sample 78:
+ time = 773500
+ flags = 1
+ data = length 142, hash F01726AD
+ sample 79:
+ time = 783500
+ flags = 1
+ data = length 124, hash 35B50117
+ sample 80:
+ time = 793500
+ flags = 1
+ data = length 122, hash 6ED2EA14
+ sample 81:
+ time = 803500
+ flags = 1
+ data = length 118, hash AAB319C9
+ sample 82:
+ time = 813500
+ flags = 1
+ data = length 117, hash 7B08A466
+ sample 83:
+ time = 823500
+ flags = 1
+ data = length 120, hash AF62F442
+ sample 84:
+ time = 833500
+ flags = 1
+ data = length 120, hash 21A0E5E9
+ sample 85:
+ time = 843500
+ flags = 1
+ data = length 122, hash F191C09
+ sample 86:
+ time = 853500
+ flags = 1
+ data = length 120, hash C52E4F2D
+ sample 87:
+ time = 863500
+ flags = 1
+ data = length 120, hash D4554502
+ sample 88:
+ time = 873500
+ flags = 1
+ data = length 121, hash D4E641CF
+ sample 89:
+ time = 883500
+ flags = 1
+ data = length 123, hash 518700A8
+ sample 90:
+ time = 893500
+ flags = 1
+ data = length 123, hash 6EA13134
+ sample 91:
+ time = 903500
+ flags = 1
+ data = length 123, hash A4264A7B
+ sample 92:
+ time = 913500
+ flags = 1
+ data = length 126, hash 593B6BA5
+ sample 93:
+ time = 923500
+ flags = 1
+ data = length 127, hash 15988F8A
+ sample 94:
+ time = 933500
+ flags = 1
+ data = length 134, hash 165D0213
+ sample 95:
+ time = 943500
+ flags = 1
+ data = length 129, hash 1F5ABD5B
+ sample 96:
+ time = 953500
+ flags = 1
+ data = length 131, hash 65E1E196
+ sample 97:
+ time = 963500
+ flags = 1
+ data = length 128, hash 70A740A1
+ sample 98:
+ time = 973500
+ flags = 1
+ data = length 130, hash 2D3733ED
+ sample 99:
+ time = 983500
+ flags = 1
+ data = length 124, hash 6CC37521
+ sample 100:
+ time = 993500
+ flags = 536870913
+ data = length 129, hash 722253A8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..d6e8f4bd61
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,148 @@
+seekMap:
+ isSeekable = true
+ duration = 1000000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(500000) = [[timeUs=0, position=48]]
+ getPosition(1000000) = [[timeUs=0, position=48]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 942
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 188
+ width = 720
+ height = 1280
+ frameRate = 30.0
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf60.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 3DFDDB0E
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 84, hash 9C46A819
+ sample 1:
+ time = 33333
+ flags = 0
+ data = length 158, hash 43A1B544
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 3, hash D600
+ sample 3:
+ time = 100000
+ flags = 0
+ data = length 28, hash 27890E81
+ sample 4:
+ time = 133333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 5:
+ time = 166666
+ flags = 0
+ data = length 55, hash 9FC5012E
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 3, hash D600
+ sample 7:
+ time = 233333
+ flags = 0
+ data = length 27, hash 70CFAC05
+ sample 8:
+ time = 266666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 9:
+ time = 300000
+ flags = 0
+ data = length 82, hash 944218D6
+ sample 10:
+ time = 333333
+ flags = 0
+ data = length 3, hash D600
+ sample 11:
+ time = 366666
+ flags = 0
+ data = length 27, hash BA4D4A06
+ sample 12:
+ time = 400000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 13:
+ time = 433333
+ flags = 0
+ data = length 54, hash A98584CA
+ sample 14:
+ time = 466666
+ flags = 0
+ data = length 3, hash D600
+ sample 15:
+ time = 500000
+ flags = 0
+ data = length 27, hash 45D733B8
+ sample 16:
+ time = 533333
+ flags = 0
+ data = length 3, hash D5A0
+ sample 17:
+ time = 566666
+ flags = 0
+ data = length 112, hash B80B26FD
+ sample 18:
+ time = 600000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 19:
+ time = 633333
+ flags = 0
+ data = length 27, hash 37DD29D9
+ sample 20:
+ time = 666666
+ flags = 0
+ data = length 3, hash D5E0
+ sample 21:
+ time = 700000
+ flags = 0
+ data = length 54, hash 1C15581C
+ sample 22:
+ time = 733333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 23:
+ time = 766666
+ flags = 0
+ data = length 27, hash 49EC3531
+ sample 24:
+ time = 800000
+ flags = 0
+ data = length 3, hash D5B0
+ sample 25:
+ time = 833333
+ flags = 0
+ data = length 84, hash 2025C9F5
+ sample 26:
+ time = 866666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 27:
+ time = 900000
+ flags = 0
+ data = length 27, hash B927669C
+ sample 28:
+ time = 933333
+ flags = 0
+ data = length 3, hash D5C0
+ sample 29:
+ time = 966666
+ flags = 536870912
+ data = length 27, hash 706C58AD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..d6e8f4bd61
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,148 @@
+seekMap:
+ isSeekable = true
+ duration = 1000000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(500000) = [[timeUs=0, position=48]]
+ getPosition(1000000) = [[timeUs=0, position=48]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 942
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 188
+ width = 720
+ height = 1280
+ frameRate = 30.0
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf60.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 3DFDDB0E
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 84, hash 9C46A819
+ sample 1:
+ time = 33333
+ flags = 0
+ data = length 158, hash 43A1B544
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 3, hash D600
+ sample 3:
+ time = 100000
+ flags = 0
+ data = length 28, hash 27890E81
+ sample 4:
+ time = 133333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 5:
+ time = 166666
+ flags = 0
+ data = length 55, hash 9FC5012E
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 3, hash D600
+ sample 7:
+ time = 233333
+ flags = 0
+ data = length 27, hash 70CFAC05
+ sample 8:
+ time = 266666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 9:
+ time = 300000
+ flags = 0
+ data = length 82, hash 944218D6
+ sample 10:
+ time = 333333
+ flags = 0
+ data = length 3, hash D600
+ sample 11:
+ time = 366666
+ flags = 0
+ data = length 27, hash BA4D4A06
+ sample 12:
+ time = 400000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 13:
+ time = 433333
+ flags = 0
+ data = length 54, hash A98584CA
+ sample 14:
+ time = 466666
+ flags = 0
+ data = length 3, hash D600
+ sample 15:
+ time = 500000
+ flags = 0
+ data = length 27, hash 45D733B8
+ sample 16:
+ time = 533333
+ flags = 0
+ data = length 3, hash D5A0
+ sample 17:
+ time = 566666
+ flags = 0
+ data = length 112, hash B80B26FD
+ sample 18:
+ time = 600000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 19:
+ time = 633333
+ flags = 0
+ data = length 27, hash 37DD29D9
+ sample 20:
+ time = 666666
+ flags = 0
+ data = length 3, hash D5E0
+ sample 21:
+ time = 700000
+ flags = 0
+ data = length 54, hash 1C15581C
+ sample 22:
+ time = 733333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 23:
+ time = 766666
+ flags = 0
+ data = length 27, hash 49EC3531
+ sample 24:
+ time = 800000
+ flags = 0
+ data = length 3, hash D5B0
+ sample 25:
+ time = 833333
+ flags = 0
+ data = length 84, hash 2025C9F5
+ sample 26:
+ time = 866666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 27:
+ time = 900000
+ flags = 0
+ data = length 27, hash B927669C
+ sample 28:
+ time = 933333
+ flags = 0
+ data = length 3, hash D5C0
+ sample 29:
+ time = 966666
+ flags = 536870912
+ data = length 27, hash 706C58AD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..d6e8f4bd61
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,148 @@
+seekMap:
+ isSeekable = true
+ duration = 1000000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(500000) = [[timeUs=0, position=48]]
+ getPosition(1000000) = [[timeUs=0, position=48]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 942
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 188
+ width = 720
+ height = 1280
+ frameRate = 30.0
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf60.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 3DFDDB0E
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 84, hash 9C46A819
+ sample 1:
+ time = 33333
+ flags = 0
+ data = length 158, hash 43A1B544
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 3, hash D600
+ sample 3:
+ time = 100000
+ flags = 0
+ data = length 28, hash 27890E81
+ sample 4:
+ time = 133333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 5:
+ time = 166666
+ flags = 0
+ data = length 55, hash 9FC5012E
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 3, hash D600
+ sample 7:
+ time = 233333
+ flags = 0
+ data = length 27, hash 70CFAC05
+ sample 8:
+ time = 266666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 9:
+ time = 300000
+ flags = 0
+ data = length 82, hash 944218D6
+ sample 10:
+ time = 333333
+ flags = 0
+ data = length 3, hash D600
+ sample 11:
+ time = 366666
+ flags = 0
+ data = length 27, hash BA4D4A06
+ sample 12:
+ time = 400000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 13:
+ time = 433333
+ flags = 0
+ data = length 54, hash A98584CA
+ sample 14:
+ time = 466666
+ flags = 0
+ data = length 3, hash D600
+ sample 15:
+ time = 500000
+ flags = 0
+ data = length 27, hash 45D733B8
+ sample 16:
+ time = 533333
+ flags = 0
+ data = length 3, hash D5A0
+ sample 17:
+ time = 566666
+ flags = 0
+ data = length 112, hash B80B26FD
+ sample 18:
+ time = 600000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 19:
+ time = 633333
+ flags = 0
+ data = length 27, hash 37DD29D9
+ sample 20:
+ time = 666666
+ flags = 0
+ data = length 3, hash D5E0
+ sample 21:
+ time = 700000
+ flags = 0
+ data = length 54, hash 1C15581C
+ sample 22:
+ time = 733333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 23:
+ time = 766666
+ flags = 0
+ data = length 27, hash 49EC3531
+ sample 24:
+ time = 800000
+ flags = 0
+ data = length 3, hash D5B0
+ sample 25:
+ time = 833333
+ flags = 0
+ data = length 84, hash 2025C9F5
+ sample 26:
+ time = 866666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 27:
+ time = 900000
+ flags = 0
+ data = length 27, hash B927669C
+ sample 28:
+ time = 933333
+ flags = 0
+ data = length 3, hash D5C0
+ sample 29:
+ time = 966666
+ flags = 536870912
+ data = length 27, hash 706C58AD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..d6e8f4bd61
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,148 @@
+seekMap:
+ isSeekable = true
+ duration = 1000000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(500000) = [[timeUs=0, position=48]]
+ getPosition(1000000) = [[timeUs=0, position=48]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 942
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 188
+ width = 720
+ height = 1280
+ frameRate = 30.0
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf60.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 3DFDDB0E
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 84, hash 9C46A819
+ sample 1:
+ time = 33333
+ flags = 0
+ data = length 158, hash 43A1B544
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 3, hash D600
+ sample 3:
+ time = 100000
+ flags = 0
+ data = length 28, hash 27890E81
+ sample 4:
+ time = 133333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 5:
+ time = 166666
+ flags = 0
+ data = length 55, hash 9FC5012E
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 3, hash D600
+ sample 7:
+ time = 233333
+ flags = 0
+ data = length 27, hash 70CFAC05
+ sample 8:
+ time = 266666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 9:
+ time = 300000
+ flags = 0
+ data = length 82, hash 944218D6
+ sample 10:
+ time = 333333
+ flags = 0
+ data = length 3, hash D600
+ sample 11:
+ time = 366666
+ flags = 0
+ data = length 27, hash BA4D4A06
+ sample 12:
+ time = 400000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 13:
+ time = 433333
+ flags = 0
+ data = length 54, hash A98584CA
+ sample 14:
+ time = 466666
+ flags = 0
+ data = length 3, hash D600
+ sample 15:
+ time = 500000
+ flags = 0
+ data = length 27, hash 45D733B8
+ sample 16:
+ time = 533333
+ flags = 0
+ data = length 3, hash D5A0
+ sample 17:
+ time = 566666
+ flags = 0
+ data = length 112, hash B80B26FD
+ sample 18:
+ time = 600000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 19:
+ time = 633333
+ flags = 0
+ data = length 27, hash 37DD29D9
+ sample 20:
+ time = 666666
+ flags = 0
+ data = length 3, hash D5E0
+ sample 21:
+ time = 700000
+ flags = 0
+ data = length 54, hash 1C15581C
+ sample 22:
+ time = 733333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 23:
+ time = 766666
+ flags = 0
+ data = length 27, hash 49EC3531
+ sample 24:
+ time = 800000
+ flags = 0
+ data = length 3, hash D5B0
+ sample 25:
+ time = 833333
+ flags = 0
+ data = length 84, hash 2025C9F5
+ sample 26:
+ time = 866666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 27:
+ time = 900000
+ flags = 0
+ data = length 27, hash B927669C
+ sample 28:
+ time = 933333
+ flags = 0
+ data = length 3, hash D5C0
+ sample 29:
+ time = 966666
+ flags = 536870912
+ data = length 27, hash 706C58AD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..d6e8f4bd61
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,148 @@
+seekMap:
+ isSeekable = true
+ duration = 1000000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(500000) = [[timeUs=0, position=48]]
+ getPosition(1000000) = [[timeUs=0, position=48]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 942
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 188
+ width = 720
+ height = 1280
+ frameRate = 30.0
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf60.3.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 3DFDDB0E
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 84, hash 9C46A819
+ sample 1:
+ time = 33333
+ flags = 0
+ data = length 158, hash 43A1B544
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 3, hash D600
+ sample 3:
+ time = 100000
+ flags = 0
+ data = length 28, hash 27890E81
+ sample 4:
+ time = 133333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 5:
+ time = 166666
+ flags = 0
+ data = length 55, hash 9FC5012E
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 3, hash D600
+ sample 7:
+ time = 233333
+ flags = 0
+ data = length 27, hash 70CFAC05
+ sample 8:
+ time = 266666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 9:
+ time = 300000
+ flags = 0
+ data = length 82, hash 944218D6
+ sample 10:
+ time = 333333
+ flags = 0
+ data = length 3, hash D600
+ sample 11:
+ time = 366666
+ flags = 0
+ data = length 27, hash BA4D4A06
+ sample 12:
+ time = 400000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 13:
+ time = 433333
+ flags = 0
+ data = length 54, hash A98584CA
+ sample 14:
+ time = 466666
+ flags = 0
+ data = length 3, hash D600
+ sample 15:
+ time = 500000
+ flags = 0
+ data = length 27, hash 45D733B8
+ sample 16:
+ time = 533333
+ flags = 0
+ data = length 3, hash D5A0
+ sample 17:
+ time = 566666
+ flags = 0
+ data = length 112, hash B80B26FD
+ sample 18:
+ time = 600000
+ flags = 0
+ data = length 3, hash D5F0
+ sample 19:
+ time = 633333
+ flags = 0
+ data = length 27, hash 37DD29D9
+ sample 20:
+ time = 666666
+ flags = 0
+ data = length 3, hash D5E0
+ sample 21:
+ time = 700000
+ flags = 0
+ data = length 54, hash 1C15581C
+ sample 22:
+ time = 733333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 23:
+ time = 766666
+ flags = 0
+ data = length 27, hash 49EC3531
+ sample 24:
+ time = 800000
+ flags = 0
+ data = length 3, hash D5B0
+ sample 25:
+ time = 833333
+ flags = 0
+ data = length 84, hash 2025C9F5
+ sample 26:
+ time = 866666
+ flags = 0
+ data = length 3, hash D5D0
+ sample 27:
+ time = 900000
+ flags = 0
+ data = length 27, hash B927669C
+ sample 28:
+ time = 933333
+ flags = 0
+ data = length 3, hash D5C0
+ sample 29:
+ time = 966666
+ flags = 536870912
+ data = length 27, hash 706C58AD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..ed2754f15d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,143 @@
+seekMap:
+ isSeekable = true
+ duration = 298333
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(149166) = [[timeUs=0, position=36]]
+ getPosition(298333) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 122447
+ sample count = 9
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 40550
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 30.167633
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 526, hash 7B3FC433
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 40520, hash 6B3C7ED3
+ sample 1:
+ time = 133333
+ flags = 0
+ data = length 11652, hash 24B95831
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 9546, hash A8965647
+ sample 3:
+ time = 33333
+ flags = 0
+ data = length 7587, hash 624A0ECE
+ sample 4:
+ time = 100000
+ flags = 0
+ data = length 8584, hash 8F104D88
+ sample 5:
+ time = 266666
+ flags = 0
+ data = length 18275, hash E7639088
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 12112, hash 7CCEBA45
+ sample 7:
+ time = 166666
+ flags = 0
+ data = length 7180, hash 4E965EBB
+ sample 8:
+ time = 233333
+ flags = 536870912
+ data = length 6991, hash 84F4EA41
+track 1:
+ total output bytes = 5993
+ sample count = 15
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 568
+ channelCount = 2
+ sampleRate = 44100
+ encoderPadding = 2204
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 6, hash 6D3881D1
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 272, hash E2040CE0
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 476, hash E09EC12F
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 445, hash D23AB210
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 487, hash F68FF5DD
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 446, hash 62477362
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 429, hash BA59B5B5
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 431, hash 1A0A41B3
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 538, hash 9F604E03
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 485, hash 94C855CD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 460, hash F6AEAF79
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 444, hash F513A8A9
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 436, hash 2E976590
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 451, hash 45B8B663
+ sample 14:
+ time = 325079
+ flags = 536870913
+ data = length 187, hash 833755BD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..962b84314f
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,127 @@
+seekMap:
+ isSeekable = true
+ duration = 298333
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(149166) = [[timeUs=0, position=36]]
+ getPosition(298333) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 122447
+ sample count = 9
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 40550
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 30.167633
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 526, hash 7B3FC433
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 40520, hash 6B3C7ED3
+ sample 1:
+ time = 133333
+ flags = 0
+ data = length 11652, hash 24B95831
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 9546, hash A8965647
+ sample 3:
+ time = 33333
+ flags = 0
+ data = length 7587, hash 624A0ECE
+ sample 4:
+ time = 100000
+ flags = 0
+ data = length 8584, hash 8F104D88
+ sample 5:
+ time = 266666
+ flags = 0
+ data = length 18275, hash E7639088
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 12112, hash 7CCEBA45
+ sample 7:
+ time = 166666
+ flags = 0
+ data = length 7180, hash 4E965EBB
+ sample 8:
+ time = 233333
+ flags = 536870912
+ data = length 6991, hash 84F4EA41
+track 1:
+ total output bytes = 4794
+ sample count = 11
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 568
+ channelCount = 2
+ sampleRate = 44100
+ encoderPadding = 2204
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 92879
+ flags = 1
+ data = length 487, hash F68FF5DD
+ sample 1:
+ time = 116099
+ flags = 1
+ data = length 446, hash 62477362
+ sample 2:
+ time = 139319
+ flags = 1
+ data = length 429, hash BA59B5B5
+ sample 3:
+ time = 162539
+ flags = 1
+ data = length 431, hash 1A0A41B3
+ sample 4:
+ time = 185759
+ flags = 1
+ data = length 538, hash 9F604E03
+ sample 5:
+ time = 208979
+ flags = 1
+ data = length 485, hash 94C855CD
+ sample 6:
+ time = 232199
+ flags = 1
+ data = length 460, hash F6AEAF79
+ sample 7:
+ time = 255419
+ flags = 1
+ data = length 444, hash F513A8A9
+ sample 8:
+ time = 278639
+ flags = 1
+ data = length 436, hash 2E976590
+ sample 9:
+ time = 301859
+ flags = 1
+ data = length 451, hash 45B8B663
+ sample 10:
+ time = 325079
+ flags = 536870913
+ data = length 187, hash 833755BD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..4809ec661b
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,111 @@
+seekMap:
+ isSeekable = true
+ duration = 298333
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(149166) = [[timeUs=0, position=36]]
+ getPosition(298333) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 122447
+ sample count = 9
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 40550
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 30.167633
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 526, hash 7B3FC433
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 40520, hash 6B3C7ED3
+ sample 1:
+ time = 133333
+ flags = 0
+ data = length 11652, hash 24B95831
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 9546, hash A8965647
+ sample 3:
+ time = 33333
+ flags = 0
+ data = length 7587, hash 624A0ECE
+ sample 4:
+ time = 100000
+ flags = 0
+ data = length 8584, hash 8F104D88
+ sample 5:
+ time = 266666
+ flags = 0
+ data = length 18275, hash E7639088
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 12112, hash 7CCEBA45
+ sample 7:
+ time = 166666
+ flags = 0
+ data = length 7180, hash 4E965EBB
+ sample 8:
+ time = 233333
+ flags = 536870912
+ data = length 6991, hash 84F4EA41
+track 1:
+ total output bytes = 3001
+ sample count = 7
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 568
+ channelCount = 2
+ sampleRate = 44100
+ encoderPadding = 2204
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 185759
+ flags = 1
+ data = length 538, hash 9F604E03
+ sample 1:
+ time = 208979
+ flags = 1
+ data = length 485, hash 94C855CD
+ sample 2:
+ time = 232199
+ flags = 1
+ data = length 460, hash F6AEAF79
+ sample 3:
+ time = 255419
+ flags = 1
+ data = length 444, hash F513A8A9
+ sample 4:
+ time = 278639
+ flags = 1
+ data = length 436, hash 2E976590
+ sample 5:
+ time = 301859
+ flags = 1
+ data = length 451, hash 45B8B663
+ sample 6:
+ time = 325079
+ flags = 536870913
+ data = length 187, hash 833755BD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..f91c957ffc
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,95 @@
+seekMap:
+ isSeekable = true
+ duration = 298333
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(149166) = [[timeUs=0, position=36]]
+ getPosition(298333) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 122447
+ sample count = 9
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 40550
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 30.167633
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 526, hash 7B3FC433
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 40520, hash 6B3C7ED3
+ sample 1:
+ time = 133333
+ flags = 0
+ data = length 11652, hash 24B95831
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 9546, hash A8965647
+ sample 3:
+ time = 33333
+ flags = 0
+ data = length 7587, hash 624A0ECE
+ sample 4:
+ time = 100000
+ flags = 0
+ data = length 8584, hash 8F104D88
+ sample 5:
+ time = 266666
+ flags = 0
+ data = length 18275, hash E7639088
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 12112, hash 7CCEBA45
+ sample 7:
+ time = 166666
+ flags = 0
+ data = length 7180, hash 4E965EBB
+ sample 8:
+ time = 233333
+ flags = 536870912
+ data = length 6991, hash 84F4EA41
+track 1:
+ total output bytes = 1074
+ sample count = 3
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 568
+ channelCount = 2
+ sampleRate = 44100
+ encoderPadding = 2204
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 278639
+ flags = 1
+ data = length 436, hash 2E976590
+ sample 1:
+ time = 301859
+ flags = 1
+ data = length 451, hash 45B8B663
+ sample 2:
+ time = 325079
+ flags = 536870913
+ data = length 187, hash 833755BD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..ed2754f15d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,143 @@
+seekMap:
+ isSeekable = true
+ duration = 298333
+ getPosition(0) = [[timeUs=0, position=36]]
+ getPosition(1) = [[timeUs=0, position=36]]
+ getPosition(149166) = [[timeUs=0, position=36]]
+ getPosition(298333) = [[timeUs=0, position=36]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 122447
+ sample count = 9
+ format 0:
+ id = 1
+ sampleMimeType = video/dolby-vision
+ codecs = hev1.08.04
+ maxInputSize = 40550
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1080
+ frameRate = 30.167633
+ rotationDegrees = 90
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 7
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 526, hash 7B3FC433
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 40520, hash 6B3C7ED3
+ sample 1:
+ time = 133333
+ flags = 0
+ data = length 11652, hash 24B95831
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 9546, hash A8965647
+ sample 3:
+ time = 33333
+ flags = 0
+ data = length 7587, hash 624A0ECE
+ sample 4:
+ time = 100000
+ flags = 0
+ data = length 8584, hash 8F104D88
+ sample 5:
+ time = 266666
+ flags = 0
+ data = length 18275, hash E7639088
+ sample 6:
+ time = 200000
+ flags = 0
+ data = length 12112, hash 7CCEBA45
+ sample 7:
+ time = 166666
+ flags = 0
+ data = length 7180, hash 4E965EBB
+ sample 8:
+ time = 233333
+ flags = 536870912
+ data = length 6991, hash 84F4EA41
+track 1:
+ total output bytes = 5993
+ sample count = 15
+ format 0:
+ peakBitrate = 192000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 568
+ channelCount = 2
+ sampleRate = 44100
+ encoderPadding = 2204
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
+ initializationData:
+ data = length 2, hash 5FF
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 6, hash 6D3881D1
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 272, hash E2040CE0
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 476, hash E09EC12F
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 445, hash D23AB210
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 487, hash F68FF5DD
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 446, hash 62477362
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 429, hash BA59B5B5
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 431, hash 1A0A41B3
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 538, hash 9F604E03
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 485, hash 94C855CD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 460, hash F6AEAF79
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 444, hash F513A8A9
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 436, hash 2E976590
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 451, hash 45B8B663
+ sample 14:
+ time = 325079
+ flags = 536870913
+ data = length 187, hash 833755BD
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..db4c00d469
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,461 @@
+seekMap:
+ isSeekable = true
+ duration = 1022000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(511000) = [[timeUs=0, position=48]]
+ getPosition(1022000) = [[timeUs=0, position=48]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 266091
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 144656
+ width = 1920
+ height = 1080
+ frameRate = 59.940056
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 6
+ hdrStaticInfo = length 25, hash 423AFC35
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 4DF5B288
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 144626, hash 7C021D5F
+ sample 1:
+ time = 16683
+ flags = 0
+ data = length 4018, hash FA5E79FA
+ sample 2:
+ time = 33366
+ flags = 0
+ data = length 3, hash D5E0
+ sample 3:
+ time = 50050
+ flags = 0
+ data = length 144, hash 4A868A2F
+ sample 4:
+ time = 66733
+ flags = 0
+ data = length 3, hash D5D0
+ sample 5:
+ time = 83416
+ flags = 0
+ data = length 342, hash 5A2E1C3C
+ sample 6:
+ time = 100100
+ flags = 0
+ data = length 3, hash D610
+ sample 7:
+ time = 116783
+ flags = 0
+ data = length 173, hash CFE014B3
+ sample 8:
+ time = 133466
+ flags = 0
+ data = length 3, hash D5C0
+ sample 9:
+ time = 150150
+ flags = 0
+ data = length 655, hash 3A7738B6
+ sample 10:
+ time = 166833
+ flags = 0
+ data = length 3, hash D5D0
+ sample 11:
+ time = 183516
+ flags = 0
+ data = length 208, hash E7D2035A
+ sample 12:
+ time = 200200
+ flags = 0
+ data = length 3, hash D600
+ sample 13:
+ time = 216883
+ flags = 0
+ data = length 385, hash 4D025B28
+ sample 14:
+ time = 233566
+ flags = 0
+ data = length 3, hash D5E0
+ sample 15:
+ time = 250250
+ flags = 0
+ data = length 192, hash CC0BD164
+ sample 16:
+ time = 266933
+ flags = 0
+ data = length 3, hash D5B0
+ sample 17:
+ time = 283616
+ flags = 0
+ data = length 36989, hash C213D35E
+ sample 18:
+ time = 300300
+ flags = 0
+ data = length 3, hash D5C0
+ sample 19:
+ time = 316983
+ flags = 0
+ data = length 213, hash 2BBA39D3
+ sample 20:
+ time = 333666
+ flags = 0
+ data = length 3, hash D600
+ sample 21:
+ time = 350350
+ flags = 0
+ data = length 474, hash 83D66E3F
+ sample 22:
+ time = 367033
+ flags = 0
+ data = length 3, hash D5E0
+ sample 23:
+ time = 383716
+ flags = 0
+ data = length 246, hash CF512AF0
+ sample 24:
+ time = 400400
+ flags = 0
+ data = length 3, hash D610
+ sample 25:
+ time = 417083
+ flags = 0
+ data = length 880, hash 8BFDE683
+ sample 26:
+ time = 433766
+ flags = 0
+ data = length 3, hash D5C0
+ sample 27:
+ time = 450450
+ flags = 0
+ data = length 246, hash 16B70503
+ sample 28:
+ time = 467133
+ flags = 0
+ data = length 3, hash D600
+ sample 29:
+ time = 483816
+ flags = 0
+ data = length 402, hash 51B5FAC9
+ sample 30:
+ time = 500500
+ flags = 0
+ data = length 3, hash D610
+ sample 31:
+ time = 517183
+ flags = 0
+ data = length 199, hash 12005069
+ sample 32:
+ time = 533866
+ flags = 0
+ data = length 3, hash D5D0
+ sample 33:
+ time = 550550
+ flags = 0
+ data = length 32362, hash F9FE31F7
+ sample 34:
+ time = 567233
+ flags = 0
+ data = length 3, hash D5E0
+ sample 35:
+ time = 583916
+ flags = 0
+ data = length 215, hash 2D4E3DC4
+ sample 36:
+ time = 600600
+ flags = 0
+ data = length 3, hash D600
+ sample 37:
+ time = 617283
+ flags = 0
+ data = length 450, hash C1A95E3
+ sample 38:
+ time = 633966
+ flags = 0
+ data = length 3, hash D610
+ sample 39:
+ time = 650650
+ flags = 0
+ data = length 221, hash 964386D9
+ sample 40:
+ time = 667333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 41:
+ time = 684016
+ flags = 0
+ data = length 853, hash 2B9E0AAF
+ sample 42:
+ time = 700700
+ flags = 0
+ data = length 3, hash D5E0
+ sample 43:
+ time = 717383
+ flags = 0
+ data = length 236, hash 7E84BBAE
+ sample 44:
+ time = 734066
+ flags = 0
+ data = length 3, hash D600
+ sample 45:
+ time = 750750
+ flags = 0
+ data = length 419, hash 619235F2
+ sample 46:
+ time = 767433
+ flags = 0
+ data = length 3, hash D5F0
+ sample 47:
+ time = 784116
+ flags = 0
+ data = length 194, hash D386F352
+ sample 48:
+ time = 800800
+ flags = 0
+ data = length 3, hash D5A0
+ sample 49:
+ time = 817483
+ flags = 0
+ data = length 38679, hash 17E63FCD
+ sample 50:
+ time = 834166
+ flags = 0
+ data = length 3, hash D610
+ sample 51:
+ time = 850850
+ flags = 0
+ data = length 183, hash C8DD98E2
+ sample 52:
+ time = 867533
+ flags = 0
+ data = length 3, hash D600
+ sample 53:
+ time = 884216
+ flags = 0
+ data = length 457, hash 2B4E3476
+ sample 54:
+ time = 900900
+ flags = 0
+ data = length 3, hash D5F0
+ sample 55:
+ time = 917583
+ flags = 0
+ data = length 216, hash 7233540A
+ sample 56:
+ time = 934266
+ flags = 0
+ data = length 3, hash D5C0
+ sample 57:
+ time = 950950
+ flags = 0
+ data = length 894, hash 7319F313
+ sample 58:
+ time = 967633
+ flags = 0
+ data = length 3, hash D610
+ sample 59:
+ time = 984316
+ flags = 536870912
+ data = length 233, hash DE4DBE67
+track 1:
+ total output bytes = 16638
+ sample count = 44
+ format 0:
+ averageBitrate = 130279
+ peakBitrate = 130279
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 441
+ channelCount = 2
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 16, hash CAA21BBF
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 393, hash 706D1B6F
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 400, hash B48107D1
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 398, hash E5F4E9C1
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 400, hash 4317B40D
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 403, hash CB949D88
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 411, hash 616C8F82
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 392, hash 3BA50F06
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 401, hash 1C62F82C
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 400, hash 180FEA17
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 378, hash 2F6B0AE6
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 375, hash 6AE86D08
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 375, hash EF2FD9CC
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 374, hash 97B83243
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 382, hash 8BD6191C
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 393, hash D5F53221
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 375, hash 2437C16B
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 372, hash EE50108B
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 364, hash 9952E0FE
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 387, hash C4EC0E45
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 384, hash 7DFB424F
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 370, hash 28619E43
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 373, hash 440EB9E8
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 363, hash B7655913
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 362, hash A0690E92
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 377, hash 41BF1244
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 371, hash EE4124CD
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 372, hash 7A512168
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 370, hash ED00D55C
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 356, hash 43F4FFCA
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 373, hash 1950F38C
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 366, hash 5F426A7A
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 371, hash FCC286D2
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 366, hash CF6F5DD9
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 386, hash 83E3B1E6
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 369, hash 5BDF670B
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 367, hash DC847E4D
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 366, hash 8AC0C55C
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 375, hash C0D4BF4
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 367, hash 6C5284E2
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 380, hash BDFAB187
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 372, hash CEF87EB6
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 369, hash B0FF049B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 366, hash BADD46E6
+ sample 43:
+ time = 998458
+ flags = 536870913
+ data = length 374, hash 6102A531
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..bf8b791656
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,405 @@
+seekMap:
+ isSeekable = true
+ duration = 1022000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(511000) = [[timeUs=0, position=48]]
+ getPosition(1022000) = [[timeUs=0, position=48]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 266091
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 144656
+ width = 1920
+ height = 1080
+ frameRate = 59.940056
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 6
+ hdrStaticInfo = length 25, hash 423AFC35
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 4DF5B288
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 144626, hash 7C021D5F
+ sample 1:
+ time = 16683
+ flags = 0
+ data = length 4018, hash FA5E79FA
+ sample 2:
+ time = 33366
+ flags = 0
+ data = length 3, hash D5E0
+ sample 3:
+ time = 50050
+ flags = 0
+ data = length 144, hash 4A868A2F
+ sample 4:
+ time = 66733
+ flags = 0
+ data = length 3, hash D5D0
+ sample 5:
+ time = 83416
+ flags = 0
+ data = length 342, hash 5A2E1C3C
+ sample 6:
+ time = 100100
+ flags = 0
+ data = length 3, hash D610
+ sample 7:
+ time = 116783
+ flags = 0
+ data = length 173, hash CFE014B3
+ sample 8:
+ time = 133466
+ flags = 0
+ data = length 3, hash D5C0
+ sample 9:
+ time = 150150
+ flags = 0
+ data = length 655, hash 3A7738B6
+ sample 10:
+ time = 166833
+ flags = 0
+ data = length 3, hash D5D0
+ sample 11:
+ time = 183516
+ flags = 0
+ data = length 208, hash E7D2035A
+ sample 12:
+ time = 200200
+ flags = 0
+ data = length 3, hash D600
+ sample 13:
+ time = 216883
+ flags = 0
+ data = length 385, hash 4D025B28
+ sample 14:
+ time = 233566
+ flags = 0
+ data = length 3, hash D5E0
+ sample 15:
+ time = 250250
+ flags = 0
+ data = length 192, hash CC0BD164
+ sample 16:
+ time = 266933
+ flags = 0
+ data = length 3, hash D5B0
+ sample 17:
+ time = 283616
+ flags = 0
+ data = length 36989, hash C213D35E
+ sample 18:
+ time = 300300
+ flags = 0
+ data = length 3, hash D5C0
+ sample 19:
+ time = 316983
+ flags = 0
+ data = length 213, hash 2BBA39D3
+ sample 20:
+ time = 333666
+ flags = 0
+ data = length 3, hash D600
+ sample 21:
+ time = 350350
+ flags = 0
+ data = length 474, hash 83D66E3F
+ sample 22:
+ time = 367033
+ flags = 0
+ data = length 3, hash D5E0
+ sample 23:
+ time = 383716
+ flags = 0
+ data = length 246, hash CF512AF0
+ sample 24:
+ time = 400400
+ flags = 0
+ data = length 3, hash D610
+ sample 25:
+ time = 417083
+ flags = 0
+ data = length 880, hash 8BFDE683
+ sample 26:
+ time = 433766
+ flags = 0
+ data = length 3, hash D5C0
+ sample 27:
+ time = 450450
+ flags = 0
+ data = length 246, hash 16B70503
+ sample 28:
+ time = 467133
+ flags = 0
+ data = length 3, hash D600
+ sample 29:
+ time = 483816
+ flags = 0
+ data = length 402, hash 51B5FAC9
+ sample 30:
+ time = 500500
+ flags = 0
+ data = length 3, hash D610
+ sample 31:
+ time = 517183
+ flags = 0
+ data = length 199, hash 12005069
+ sample 32:
+ time = 533866
+ flags = 0
+ data = length 3, hash D5D0
+ sample 33:
+ time = 550550
+ flags = 0
+ data = length 32362, hash F9FE31F7
+ sample 34:
+ time = 567233
+ flags = 0
+ data = length 3, hash D5E0
+ sample 35:
+ time = 583916
+ flags = 0
+ data = length 215, hash 2D4E3DC4
+ sample 36:
+ time = 600600
+ flags = 0
+ data = length 3, hash D600
+ sample 37:
+ time = 617283
+ flags = 0
+ data = length 450, hash C1A95E3
+ sample 38:
+ time = 633966
+ flags = 0
+ data = length 3, hash D610
+ sample 39:
+ time = 650650
+ flags = 0
+ data = length 221, hash 964386D9
+ sample 40:
+ time = 667333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 41:
+ time = 684016
+ flags = 0
+ data = length 853, hash 2B9E0AAF
+ sample 42:
+ time = 700700
+ flags = 0
+ data = length 3, hash D5E0
+ sample 43:
+ time = 717383
+ flags = 0
+ data = length 236, hash 7E84BBAE
+ sample 44:
+ time = 734066
+ flags = 0
+ data = length 3, hash D600
+ sample 45:
+ time = 750750
+ flags = 0
+ data = length 419, hash 619235F2
+ sample 46:
+ time = 767433
+ flags = 0
+ data = length 3, hash D5F0
+ sample 47:
+ time = 784116
+ flags = 0
+ data = length 194, hash D386F352
+ sample 48:
+ time = 800800
+ flags = 0
+ data = length 3, hash D5A0
+ sample 49:
+ time = 817483
+ flags = 0
+ data = length 38679, hash 17E63FCD
+ sample 50:
+ time = 834166
+ flags = 0
+ data = length 3, hash D610
+ sample 51:
+ time = 850850
+ flags = 0
+ data = length 183, hash C8DD98E2
+ sample 52:
+ time = 867533
+ flags = 0
+ data = length 3, hash D600
+ sample 53:
+ time = 884216
+ flags = 0
+ data = length 457, hash 2B4E3476
+ sample 54:
+ time = 900900
+ flags = 0
+ data = length 3, hash D5F0
+ sample 55:
+ time = 917583
+ flags = 0
+ data = length 216, hash 7233540A
+ sample 56:
+ time = 934266
+ flags = 0
+ data = length 3, hash D5C0
+ sample 57:
+ time = 950950
+ flags = 0
+ data = length 894, hash 7319F313
+ sample 58:
+ time = 967633
+ flags = 0
+ data = length 3, hash D610
+ sample 59:
+ time = 984316
+ flags = 536870912
+ data = length 233, hash DE4DBE67
+track 1:
+ total output bytes = 11156
+ sample count = 30
+ format 0:
+ averageBitrate = 130279
+ peakBitrate = 130279
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 441
+ channelCount = 2
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 16, hash CAA21BBF
+ sample 0:
+ time = 325079
+ flags = 1
+ data = length 393, hash D5F53221
+ sample 1:
+ time = 348299
+ flags = 1
+ data = length 375, hash 2437C16B
+ sample 2:
+ time = 371519
+ flags = 1
+ data = length 372, hash EE50108B
+ sample 3:
+ time = 394739
+ flags = 1
+ data = length 364, hash 9952E0FE
+ sample 4:
+ time = 417959
+ flags = 1
+ data = length 387, hash C4EC0E45
+ sample 5:
+ time = 441179
+ flags = 1
+ data = length 384, hash 7DFB424F
+ sample 6:
+ time = 464399
+ flags = 1
+ data = length 370, hash 28619E43
+ sample 7:
+ time = 487619
+ flags = 1
+ data = length 373, hash 440EB9E8
+ sample 8:
+ time = 510839
+ flags = 1
+ data = length 363, hash B7655913
+ sample 9:
+ time = 534058
+ flags = 1
+ data = length 362, hash A0690E92
+ sample 10:
+ time = 557278
+ flags = 1
+ data = length 377, hash 41BF1244
+ sample 11:
+ time = 580498
+ flags = 1
+ data = length 371, hash EE4124CD
+ sample 12:
+ time = 603718
+ flags = 1
+ data = length 372, hash 7A512168
+ sample 13:
+ time = 626938
+ flags = 1
+ data = length 370, hash ED00D55C
+ sample 14:
+ time = 650158
+ flags = 1
+ data = length 356, hash 43F4FFCA
+ sample 15:
+ time = 673378
+ flags = 1
+ data = length 373, hash 1950F38C
+ sample 16:
+ time = 696598
+ flags = 1
+ data = length 366, hash 5F426A7A
+ sample 17:
+ time = 719818
+ flags = 1
+ data = length 371, hash FCC286D2
+ sample 18:
+ time = 743038
+ flags = 1
+ data = length 366, hash CF6F5DD9
+ sample 19:
+ time = 766258
+ flags = 1
+ data = length 386, hash 83E3B1E6
+ sample 20:
+ time = 789478
+ flags = 1
+ data = length 369, hash 5BDF670B
+ sample 21:
+ time = 812698
+ flags = 1
+ data = length 367, hash DC847E4D
+ sample 22:
+ time = 835918
+ flags = 1
+ data = length 366, hash 8AC0C55C
+ sample 23:
+ time = 859138
+ flags = 1
+ data = length 375, hash C0D4BF4
+ sample 24:
+ time = 882358
+ flags = 1
+ data = length 367, hash 6C5284E2
+ sample 25:
+ time = 905578
+ flags = 1
+ data = length 380, hash BDFAB187
+ sample 26:
+ time = 928798
+ flags = 1
+ data = length 372, hash CEF87EB6
+ sample 27:
+ time = 952018
+ flags = 1
+ data = length 369, hash B0FF049B
+ sample 28:
+ time = 975238
+ flags = 1
+ data = length 366, hash BADD46E6
+ sample 29:
+ time = 998458
+ flags = 536870913
+ data = length 374, hash 6102A531
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..a112e01a52
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,345 @@
+seekMap:
+ isSeekable = true
+ duration = 1022000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(511000) = [[timeUs=0, position=48]]
+ getPosition(1022000) = [[timeUs=0, position=48]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 266091
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 144656
+ width = 1920
+ height = 1080
+ frameRate = 59.940056
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 6
+ hdrStaticInfo = length 25, hash 423AFC35
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 4DF5B288
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 144626, hash 7C021D5F
+ sample 1:
+ time = 16683
+ flags = 0
+ data = length 4018, hash FA5E79FA
+ sample 2:
+ time = 33366
+ flags = 0
+ data = length 3, hash D5E0
+ sample 3:
+ time = 50050
+ flags = 0
+ data = length 144, hash 4A868A2F
+ sample 4:
+ time = 66733
+ flags = 0
+ data = length 3, hash D5D0
+ sample 5:
+ time = 83416
+ flags = 0
+ data = length 342, hash 5A2E1C3C
+ sample 6:
+ time = 100100
+ flags = 0
+ data = length 3, hash D610
+ sample 7:
+ time = 116783
+ flags = 0
+ data = length 173, hash CFE014B3
+ sample 8:
+ time = 133466
+ flags = 0
+ data = length 3, hash D5C0
+ sample 9:
+ time = 150150
+ flags = 0
+ data = length 655, hash 3A7738B6
+ sample 10:
+ time = 166833
+ flags = 0
+ data = length 3, hash D5D0
+ sample 11:
+ time = 183516
+ flags = 0
+ data = length 208, hash E7D2035A
+ sample 12:
+ time = 200200
+ flags = 0
+ data = length 3, hash D600
+ sample 13:
+ time = 216883
+ flags = 0
+ data = length 385, hash 4D025B28
+ sample 14:
+ time = 233566
+ flags = 0
+ data = length 3, hash D5E0
+ sample 15:
+ time = 250250
+ flags = 0
+ data = length 192, hash CC0BD164
+ sample 16:
+ time = 266933
+ flags = 0
+ data = length 3, hash D5B0
+ sample 17:
+ time = 283616
+ flags = 0
+ data = length 36989, hash C213D35E
+ sample 18:
+ time = 300300
+ flags = 0
+ data = length 3, hash D5C0
+ sample 19:
+ time = 316983
+ flags = 0
+ data = length 213, hash 2BBA39D3
+ sample 20:
+ time = 333666
+ flags = 0
+ data = length 3, hash D600
+ sample 21:
+ time = 350350
+ flags = 0
+ data = length 474, hash 83D66E3F
+ sample 22:
+ time = 367033
+ flags = 0
+ data = length 3, hash D5E0
+ sample 23:
+ time = 383716
+ flags = 0
+ data = length 246, hash CF512AF0
+ sample 24:
+ time = 400400
+ flags = 0
+ data = length 3, hash D610
+ sample 25:
+ time = 417083
+ flags = 0
+ data = length 880, hash 8BFDE683
+ sample 26:
+ time = 433766
+ flags = 0
+ data = length 3, hash D5C0
+ sample 27:
+ time = 450450
+ flags = 0
+ data = length 246, hash 16B70503
+ sample 28:
+ time = 467133
+ flags = 0
+ data = length 3, hash D600
+ sample 29:
+ time = 483816
+ flags = 0
+ data = length 402, hash 51B5FAC9
+ sample 30:
+ time = 500500
+ flags = 0
+ data = length 3, hash D610
+ sample 31:
+ time = 517183
+ flags = 0
+ data = length 199, hash 12005069
+ sample 32:
+ time = 533866
+ flags = 0
+ data = length 3, hash D5D0
+ sample 33:
+ time = 550550
+ flags = 0
+ data = length 32362, hash F9FE31F7
+ sample 34:
+ time = 567233
+ flags = 0
+ data = length 3, hash D5E0
+ sample 35:
+ time = 583916
+ flags = 0
+ data = length 215, hash 2D4E3DC4
+ sample 36:
+ time = 600600
+ flags = 0
+ data = length 3, hash D600
+ sample 37:
+ time = 617283
+ flags = 0
+ data = length 450, hash C1A95E3
+ sample 38:
+ time = 633966
+ flags = 0
+ data = length 3, hash D610
+ sample 39:
+ time = 650650
+ flags = 0
+ data = length 221, hash 964386D9
+ sample 40:
+ time = 667333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 41:
+ time = 684016
+ flags = 0
+ data = length 853, hash 2B9E0AAF
+ sample 42:
+ time = 700700
+ flags = 0
+ data = length 3, hash D5E0
+ sample 43:
+ time = 717383
+ flags = 0
+ data = length 236, hash 7E84BBAE
+ sample 44:
+ time = 734066
+ flags = 0
+ data = length 3, hash D600
+ sample 45:
+ time = 750750
+ flags = 0
+ data = length 419, hash 619235F2
+ sample 46:
+ time = 767433
+ flags = 0
+ data = length 3, hash D5F0
+ sample 47:
+ time = 784116
+ flags = 0
+ data = length 194, hash D386F352
+ sample 48:
+ time = 800800
+ flags = 0
+ data = length 3, hash D5A0
+ sample 49:
+ time = 817483
+ flags = 0
+ data = length 38679, hash 17E63FCD
+ sample 50:
+ time = 834166
+ flags = 0
+ data = length 3, hash D610
+ sample 51:
+ time = 850850
+ flags = 0
+ data = length 183, hash C8DD98E2
+ sample 52:
+ time = 867533
+ flags = 0
+ data = length 3, hash D600
+ sample 53:
+ time = 884216
+ flags = 0
+ data = length 457, hash 2B4E3476
+ sample 54:
+ time = 900900
+ flags = 0
+ data = length 3, hash D5F0
+ sample 55:
+ time = 917583
+ flags = 0
+ data = length 216, hash 7233540A
+ sample 56:
+ time = 934266
+ flags = 0
+ data = length 3, hash D5C0
+ sample 57:
+ time = 950950
+ flags = 0
+ data = length 894, hash 7319F313
+ sample 58:
+ time = 967633
+ flags = 0
+ data = length 3, hash D610
+ sample 59:
+ time = 984316
+ flags = 536870912
+ data = length 233, hash DE4DBE67
+track 1:
+ total output bytes = 5567
+ sample count = 15
+ format 0:
+ averageBitrate = 130279
+ peakBitrate = 130279
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 441
+ channelCount = 2
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 16, hash CAA21BBF
+ sample 0:
+ time = 673378
+ flags = 1
+ data = length 373, hash 1950F38C
+ sample 1:
+ time = 696598
+ flags = 1
+ data = length 366, hash 5F426A7A
+ sample 2:
+ time = 719818
+ flags = 1
+ data = length 371, hash FCC286D2
+ sample 3:
+ time = 743038
+ flags = 1
+ data = length 366, hash CF6F5DD9
+ sample 4:
+ time = 766258
+ flags = 1
+ data = length 386, hash 83E3B1E6
+ sample 5:
+ time = 789478
+ flags = 1
+ data = length 369, hash 5BDF670B
+ sample 6:
+ time = 812698
+ flags = 1
+ data = length 367, hash DC847E4D
+ sample 7:
+ time = 835918
+ flags = 1
+ data = length 366, hash 8AC0C55C
+ sample 8:
+ time = 859138
+ flags = 1
+ data = length 375, hash C0D4BF4
+ sample 9:
+ time = 882358
+ flags = 1
+ data = length 367, hash 6C5284E2
+ sample 10:
+ time = 905578
+ flags = 1
+ data = length 380, hash BDFAB187
+ sample 11:
+ time = 928798
+ flags = 1
+ data = length 372, hash CEF87EB6
+ sample 12:
+ time = 952018
+ flags = 1
+ data = length 369, hash B0FF049B
+ sample 13:
+ time = 975238
+ flags = 1
+ data = length 366, hash BADD46E6
+ sample 14:
+ time = 998458
+ flags = 536870913
+ data = length 374, hash 6102A531
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..0a9e49fb90
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,289 @@
+seekMap:
+ isSeekable = true
+ duration = 1022000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(511000) = [[timeUs=0, position=48]]
+ getPosition(1022000) = [[timeUs=0, position=48]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 266091
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 144656
+ width = 1920
+ height = 1080
+ frameRate = 59.940056
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 6
+ hdrStaticInfo = length 25, hash 423AFC35
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 4DF5B288
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 144626, hash 7C021D5F
+ sample 1:
+ time = 16683
+ flags = 0
+ data = length 4018, hash FA5E79FA
+ sample 2:
+ time = 33366
+ flags = 0
+ data = length 3, hash D5E0
+ sample 3:
+ time = 50050
+ flags = 0
+ data = length 144, hash 4A868A2F
+ sample 4:
+ time = 66733
+ flags = 0
+ data = length 3, hash D5D0
+ sample 5:
+ time = 83416
+ flags = 0
+ data = length 342, hash 5A2E1C3C
+ sample 6:
+ time = 100100
+ flags = 0
+ data = length 3, hash D610
+ sample 7:
+ time = 116783
+ flags = 0
+ data = length 173, hash CFE014B3
+ sample 8:
+ time = 133466
+ flags = 0
+ data = length 3, hash D5C0
+ sample 9:
+ time = 150150
+ flags = 0
+ data = length 655, hash 3A7738B6
+ sample 10:
+ time = 166833
+ flags = 0
+ data = length 3, hash D5D0
+ sample 11:
+ time = 183516
+ flags = 0
+ data = length 208, hash E7D2035A
+ sample 12:
+ time = 200200
+ flags = 0
+ data = length 3, hash D600
+ sample 13:
+ time = 216883
+ flags = 0
+ data = length 385, hash 4D025B28
+ sample 14:
+ time = 233566
+ flags = 0
+ data = length 3, hash D5E0
+ sample 15:
+ time = 250250
+ flags = 0
+ data = length 192, hash CC0BD164
+ sample 16:
+ time = 266933
+ flags = 0
+ data = length 3, hash D5B0
+ sample 17:
+ time = 283616
+ flags = 0
+ data = length 36989, hash C213D35E
+ sample 18:
+ time = 300300
+ flags = 0
+ data = length 3, hash D5C0
+ sample 19:
+ time = 316983
+ flags = 0
+ data = length 213, hash 2BBA39D3
+ sample 20:
+ time = 333666
+ flags = 0
+ data = length 3, hash D600
+ sample 21:
+ time = 350350
+ flags = 0
+ data = length 474, hash 83D66E3F
+ sample 22:
+ time = 367033
+ flags = 0
+ data = length 3, hash D5E0
+ sample 23:
+ time = 383716
+ flags = 0
+ data = length 246, hash CF512AF0
+ sample 24:
+ time = 400400
+ flags = 0
+ data = length 3, hash D610
+ sample 25:
+ time = 417083
+ flags = 0
+ data = length 880, hash 8BFDE683
+ sample 26:
+ time = 433766
+ flags = 0
+ data = length 3, hash D5C0
+ sample 27:
+ time = 450450
+ flags = 0
+ data = length 246, hash 16B70503
+ sample 28:
+ time = 467133
+ flags = 0
+ data = length 3, hash D600
+ sample 29:
+ time = 483816
+ flags = 0
+ data = length 402, hash 51B5FAC9
+ sample 30:
+ time = 500500
+ flags = 0
+ data = length 3, hash D610
+ sample 31:
+ time = 517183
+ flags = 0
+ data = length 199, hash 12005069
+ sample 32:
+ time = 533866
+ flags = 0
+ data = length 3, hash D5D0
+ sample 33:
+ time = 550550
+ flags = 0
+ data = length 32362, hash F9FE31F7
+ sample 34:
+ time = 567233
+ flags = 0
+ data = length 3, hash D5E0
+ sample 35:
+ time = 583916
+ flags = 0
+ data = length 215, hash 2D4E3DC4
+ sample 36:
+ time = 600600
+ flags = 0
+ data = length 3, hash D600
+ sample 37:
+ time = 617283
+ flags = 0
+ data = length 450, hash C1A95E3
+ sample 38:
+ time = 633966
+ flags = 0
+ data = length 3, hash D610
+ sample 39:
+ time = 650650
+ flags = 0
+ data = length 221, hash 964386D9
+ sample 40:
+ time = 667333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 41:
+ time = 684016
+ flags = 0
+ data = length 853, hash 2B9E0AAF
+ sample 42:
+ time = 700700
+ flags = 0
+ data = length 3, hash D5E0
+ sample 43:
+ time = 717383
+ flags = 0
+ data = length 236, hash 7E84BBAE
+ sample 44:
+ time = 734066
+ flags = 0
+ data = length 3, hash D600
+ sample 45:
+ time = 750750
+ flags = 0
+ data = length 419, hash 619235F2
+ sample 46:
+ time = 767433
+ flags = 0
+ data = length 3, hash D5F0
+ sample 47:
+ time = 784116
+ flags = 0
+ data = length 194, hash D386F352
+ sample 48:
+ time = 800800
+ flags = 0
+ data = length 3, hash D5A0
+ sample 49:
+ time = 817483
+ flags = 0
+ data = length 38679, hash 17E63FCD
+ sample 50:
+ time = 834166
+ flags = 0
+ data = length 3, hash D610
+ sample 51:
+ time = 850850
+ flags = 0
+ data = length 183, hash C8DD98E2
+ sample 52:
+ time = 867533
+ flags = 0
+ data = length 3, hash D600
+ sample 53:
+ time = 884216
+ flags = 0
+ data = length 457, hash 2B4E3476
+ sample 54:
+ time = 900900
+ flags = 0
+ data = length 3, hash D5F0
+ sample 55:
+ time = 917583
+ flags = 0
+ data = length 216, hash 7233540A
+ sample 56:
+ time = 934266
+ flags = 0
+ data = length 3, hash D5C0
+ sample 57:
+ time = 950950
+ flags = 0
+ data = length 894, hash 7319F313
+ sample 58:
+ time = 967633
+ flags = 0
+ data = length 3, hash D610
+ sample 59:
+ time = 984316
+ flags = 536870912
+ data = length 233, hash DE4DBE67
+track 1:
+ total output bytes = 374
+ sample count = 1
+ format 0:
+ averageBitrate = 130279
+ peakBitrate = 130279
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 441
+ channelCount = 2
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 16, hash CAA21BBF
+ sample 0:
+ time = 998458
+ flags = 536870913
+ data = length 374, hash 6102A531
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..db4c00d469
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,461 @@
+seekMap:
+ isSeekable = true
+ duration = 1022000
+ getPosition(0) = [[timeUs=0, position=48]]
+ getPosition(1) = [[timeUs=0, position=48]]
+ getPosition(511000) = [[timeUs=0, position=48]]
+ getPosition(1022000) = [[timeUs=0, position=48]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 266091
+ sample count = 60
+ format 0:
+ id = 1
+ sampleMimeType = video/av01
+ maxInputSize = 144656
+ width = 1920
+ height = 1080
+ frameRate = 59.940056
+ colorInfo:
+ colorSpace = 6
+ colorRange = 2
+ colorTransfer = 6
+ hdrStaticInfo = length 25, hash 423AFC35
+ lumaBitdepth = 10
+ chromaBitdepth = 10
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 20, hash 4DF5B288
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 144626, hash 7C021D5F
+ sample 1:
+ time = 16683
+ flags = 0
+ data = length 4018, hash FA5E79FA
+ sample 2:
+ time = 33366
+ flags = 0
+ data = length 3, hash D5E0
+ sample 3:
+ time = 50050
+ flags = 0
+ data = length 144, hash 4A868A2F
+ sample 4:
+ time = 66733
+ flags = 0
+ data = length 3, hash D5D0
+ sample 5:
+ time = 83416
+ flags = 0
+ data = length 342, hash 5A2E1C3C
+ sample 6:
+ time = 100100
+ flags = 0
+ data = length 3, hash D610
+ sample 7:
+ time = 116783
+ flags = 0
+ data = length 173, hash CFE014B3
+ sample 8:
+ time = 133466
+ flags = 0
+ data = length 3, hash D5C0
+ sample 9:
+ time = 150150
+ flags = 0
+ data = length 655, hash 3A7738B6
+ sample 10:
+ time = 166833
+ flags = 0
+ data = length 3, hash D5D0
+ sample 11:
+ time = 183516
+ flags = 0
+ data = length 208, hash E7D2035A
+ sample 12:
+ time = 200200
+ flags = 0
+ data = length 3, hash D600
+ sample 13:
+ time = 216883
+ flags = 0
+ data = length 385, hash 4D025B28
+ sample 14:
+ time = 233566
+ flags = 0
+ data = length 3, hash D5E0
+ sample 15:
+ time = 250250
+ flags = 0
+ data = length 192, hash CC0BD164
+ sample 16:
+ time = 266933
+ flags = 0
+ data = length 3, hash D5B0
+ sample 17:
+ time = 283616
+ flags = 0
+ data = length 36989, hash C213D35E
+ sample 18:
+ time = 300300
+ flags = 0
+ data = length 3, hash D5C0
+ sample 19:
+ time = 316983
+ flags = 0
+ data = length 213, hash 2BBA39D3
+ sample 20:
+ time = 333666
+ flags = 0
+ data = length 3, hash D600
+ sample 21:
+ time = 350350
+ flags = 0
+ data = length 474, hash 83D66E3F
+ sample 22:
+ time = 367033
+ flags = 0
+ data = length 3, hash D5E0
+ sample 23:
+ time = 383716
+ flags = 0
+ data = length 246, hash CF512AF0
+ sample 24:
+ time = 400400
+ flags = 0
+ data = length 3, hash D610
+ sample 25:
+ time = 417083
+ flags = 0
+ data = length 880, hash 8BFDE683
+ sample 26:
+ time = 433766
+ flags = 0
+ data = length 3, hash D5C0
+ sample 27:
+ time = 450450
+ flags = 0
+ data = length 246, hash 16B70503
+ sample 28:
+ time = 467133
+ flags = 0
+ data = length 3, hash D600
+ sample 29:
+ time = 483816
+ flags = 0
+ data = length 402, hash 51B5FAC9
+ sample 30:
+ time = 500500
+ flags = 0
+ data = length 3, hash D610
+ sample 31:
+ time = 517183
+ flags = 0
+ data = length 199, hash 12005069
+ sample 32:
+ time = 533866
+ flags = 0
+ data = length 3, hash D5D0
+ sample 33:
+ time = 550550
+ flags = 0
+ data = length 32362, hash F9FE31F7
+ sample 34:
+ time = 567233
+ flags = 0
+ data = length 3, hash D5E0
+ sample 35:
+ time = 583916
+ flags = 0
+ data = length 215, hash 2D4E3DC4
+ sample 36:
+ time = 600600
+ flags = 0
+ data = length 3, hash D600
+ sample 37:
+ time = 617283
+ flags = 0
+ data = length 450, hash C1A95E3
+ sample 38:
+ time = 633966
+ flags = 0
+ data = length 3, hash D610
+ sample 39:
+ time = 650650
+ flags = 0
+ data = length 221, hash 964386D9
+ sample 40:
+ time = 667333
+ flags = 0
+ data = length 3, hash D5F0
+ sample 41:
+ time = 684016
+ flags = 0
+ data = length 853, hash 2B9E0AAF
+ sample 42:
+ time = 700700
+ flags = 0
+ data = length 3, hash D5E0
+ sample 43:
+ time = 717383
+ flags = 0
+ data = length 236, hash 7E84BBAE
+ sample 44:
+ time = 734066
+ flags = 0
+ data = length 3, hash D600
+ sample 45:
+ time = 750750
+ flags = 0
+ data = length 419, hash 619235F2
+ sample 46:
+ time = 767433
+ flags = 0
+ data = length 3, hash D5F0
+ sample 47:
+ time = 784116
+ flags = 0
+ data = length 194, hash D386F352
+ sample 48:
+ time = 800800
+ flags = 0
+ data = length 3, hash D5A0
+ sample 49:
+ time = 817483
+ flags = 0
+ data = length 38679, hash 17E63FCD
+ sample 50:
+ time = 834166
+ flags = 0
+ data = length 3, hash D610
+ sample 51:
+ time = 850850
+ flags = 0
+ data = length 183, hash C8DD98E2
+ sample 52:
+ time = 867533
+ flags = 0
+ data = length 3, hash D600
+ sample 53:
+ time = 884216
+ flags = 0
+ data = length 457, hash 2B4E3476
+ sample 54:
+ time = 900900
+ flags = 0
+ data = length 3, hash D5F0
+ sample 55:
+ time = 917583
+ flags = 0
+ data = length 216, hash 7233540A
+ sample 56:
+ time = 934266
+ flags = 0
+ data = length 3, hash D5C0
+ sample 57:
+ time = 950950
+ flags = 0
+ data = length 894, hash 7319F313
+ sample 58:
+ time = 967633
+ flags = 0
+ data = length 3, hash D610
+ sample 59:
+ time = 984316
+ flags = 536870912
+ data = length 233, hash DE4DBE67
+track 1:
+ total output bytes = 16638
+ sample count = 44
+ format 0:
+ averageBitrate = 130279
+ peakBitrate = 130279
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 441
+ channelCount = 2
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
+ initializationData:
+ data = length 16, hash CAA21BBF
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 393, hash 706D1B6F
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 400, hash B48107D1
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 398, hash E5F4E9C1
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 400, hash 4317B40D
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 403, hash CB949D88
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 411, hash 616C8F82
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 392, hash 3BA50F06
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 401, hash 1C62F82C
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 400, hash 180FEA17
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 378, hash 2F6B0AE6
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 375, hash 6AE86D08
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 375, hash EF2FD9CC
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 374, hash 97B83243
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 382, hash 8BD6191C
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 393, hash D5F53221
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 375, hash 2437C16B
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 372, hash EE50108B
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 364, hash 9952E0FE
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 387, hash C4EC0E45
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 384, hash 7DFB424F
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 370, hash 28619E43
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 373, hash 440EB9E8
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 363, hash B7655913
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 362, hash A0690E92
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 377, hash 41BF1244
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 371, hash EE4124CD
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 372, hash 7A512168
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 370, hash ED00D55C
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 356, hash 43F4FFCA
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 373, hash 1950F38C
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 366, hash 5F426A7A
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 371, hash FCC286D2
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 366, hash CF6F5DD9
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 386, hash 83E3B1E6
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 369, hash 5BDF670B
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 367, hash DC847E4D
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 366, hash 8AC0C55C
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 375, hash C0D4BF4
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 367, hash 6C5284E2
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 380, hash BDFAB187
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 372, hash CEF87EB6
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 369, hash B0FF049B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 366, hash BADD46E6
+ sample 43:
+ time = 998458
+ flags = 536870913
+ data = length 374, hash 6102A531
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..3d55eea7cd
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2636]]
+ getPosition(1) = [[timeUs=0, position=2636]]
+ getPosition(512000) = [[timeUs=0, position=2636]]
+ getPosition(1024000) = [[timeUs=0, position=2636]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..2f6a3ea3f3
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,295 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2636]]
+ getPosition(1) = [[timeUs=0, position=2636]]
+ getPosition(512000) = [[timeUs=0, position=2636]]
+ getPosition(1024000) = [[timeUs=0, position=2636]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 7464
+ sample count = 33
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 1:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 2:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 3:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 4:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 5:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 6:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 7:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 8:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 9:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 10:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 11:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 12:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 13:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 14:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 15:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 16:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 17:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 18:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 19:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 20:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 21:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 22:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 23:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 24:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 25:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 26:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 27:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 28:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 29:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 30:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 31:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 32:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..92d9445fad
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,235 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2636]]
+ getPosition(1) = [[timeUs=0, position=2636]]
+ getPosition(512000) = [[timeUs=0, position=2636]]
+ getPosition(1024000) = [[timeUs=0, position=2636]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 4019
+ sample count = 18
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 1:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 2:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 3:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 4:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 5:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 6:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 7:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 8:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 9:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 10:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 11:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 12:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 13:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 14:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 15:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 16:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 17:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..7e51e24c67
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,175 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2636]]
+ getPosition(1) = [[timeUs=0, position=2636]]
+ getPosition(512000) = [[timeUs=0, position=2636]]
+ getPosition(1024000) = [[timeUs=0, position=2636]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 470
+ sample count = 3
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 1:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 2:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..3d55eea7cd
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_metadata.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2636]]
+ getPosition(1) = [[timeUs=0, position=2636]]
+ getPosition(512000) = [[timeUs=0, position=2636]]
+ getPosition(1024000) = [[timeUs=0, position=2636]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TPE1: description=null: values=[Test Artist], TALB: description=null: values=[Test Album], TRCK: description=null: values=[2/12], TPOS: description=null: values=[2/3], TDRC: description=null: values=[2024], TCON: description=null: values=[Gorpcore], TBPM: description=null: values=[120], TCMP: description=null: values=[1], COMM: language=und, description=ITUNESADVISORY, text=2, COMM: language=und, description=ITUNESGAPLESS, text=1, TSOP: description=null: values=[Sorting Artist], TSOA: description=null: values=[Sorting Album], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796909510, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..8cec6e81ec
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2295]]
+ getPosition(1) = [[timeUs=0, position=2295]]
+ getPosition(512000) = [[timeUs=0, position=2295]]
+ getPosition(1024000) = [[timeUs=0, position=2295]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..8d66e4668b
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,295 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2295]]
+ getPosition(1) = [[timeUs=0, position=2295]]
+ getPosition(512000) = [[timeUs=0, position=2295]]
+ getPosition(1024000) = [[timeUs=0, position=2295]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 7464
+ sample count = 33
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 1:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 2:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 3:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 4:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 5:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 6:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 7:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 8:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 9:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 10:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 11:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 12:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 13:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 14:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 15:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 16:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 17:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 18:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 19:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 20:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 21:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 22:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 23:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 24:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 25:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 26:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 27:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 28:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 29:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 30:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 31:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 32:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..7fee035823
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,235 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2295]]
+ getPosition(1) = [[timeUs=0, position=2295]]
+ getPosition(512000) = [[timeUs=0, position=2295]]
+ getPosition(1024000) = [[timeUs=0, position=2295]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 4019
+ sample count = 18
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 1:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 2:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 3:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 4:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 5:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 6:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 7:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 8:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 9:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 10:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 11:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 12:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 13:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 14:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 15:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 16:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 17:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..9809039aa5
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,175 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2295]]
+ getPosition(1) = [[timeUs=0, position=2295]]
+ getPosition(512000) = [[timeUs=0, position=2295]]
+ getPosition(1024000) = [[timeUs=0, position=2295]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 470
+ sample count = 3
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 1:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 2:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..8cec6e81ec
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_numeric_genre.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1024000
+ getPosition(0) = [[timeUs=0, position=2295]]
+ getPosition(1) = [[timeUs=0, position=2295]]
+ getPosition(512000) = [[timeUs=0, position=2295]]
+ getPosition(1024000) = [[timeUs=0, position=2295]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 89876
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxInputSize = 36722
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ frameRate = 29.970028
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 36692, hash D216076E
+ sample 1:
+ time = 66733
+ flags = 0
+ data = length 5312, hash D45D3CA0
+ sample 2:
+ time = 33366
+ flags = 67108864
+ data = length 599, hash 1BE7812D
+ sample 3:
+ time = 200200
+ flags = 0
+ data = length 7735, hash 4490F110
+ sample 4:
+ time = 133466
+ flags = 0
+ data = length 987, hash 560B5036
+ sample 5:
+ time = 100100
+ flags = 67108864
+ data = length 673, hash ED7CD8C7
+ sample 6:
+ time = 166833
+ flags = 67108864
+ data = length 523, hash 3020DF50
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 6061, hash 736C72B2
+ sample 8:
+ time = 266933
+ flags = 0
+ data = length 992, hash FE132F23
+ sample 9:
+ time = 233566
+ flags = 67108864
+ data = length 623, hash 5B2C1816
+ sample 10:
+ time = 300300
+ flags = 67108864
+ data = length 421, hash 742E69C1
+ sample 11:
+ time = 433766
+ flags = 0
+ data = length 4899, hash F72F86A1
+ sample 12:
+ time = 400400
+ flags = 0
+ data = length 568, hash 519A8E50
+ sample 13:
+ time = 367033
+ flags = 67108864
+ data = length 620, hash 3990AA39
+ sample 14:
+ time = 567233
+ flags = 0
+ data = length 5450, hash F06EC4AA
+ sample 15:
+ time = 500500
+ flags = 0
+ data = length 1051, hash 92DFA63A
+ sample 16:
+ time = 467133
+ flags = 67108864
+ data = length 874, hash 69587FB4
+ sample 17:
+ time = 533866
+ flags = 67108864
+ data = length 781, hash 36BE495B
+ sample 18:
+ time = 700700
+ flags = 0
+ data = length 4725, hash AC0C8CD3
+ sample 19:
+ time = 633966
+ flags = 0
+ data = length 1022, hash 5D8BFF34
+ sample 20:
+ time = 600600
+ flags = 67108864
+ data = length 790, hash 99413A99
+ sample 21:
+ time = 667333
+ flags = 67108864
+ data = length 610, hash 5E129290
+ sample 22:
+ time = 834166
+ flags = 0
+ data = length 2751, hash 769974CB
+ sample 23:
+ time = 767433
+ flags = 0
+ data = length 745, hash B78A477A
+ sample 24:
+ time = 734066
+ flags = 67108864
+ data = length 621, hash CF741E7A
+ sample 25:
+ time = 800800
+ flags = 67108864
+ data = length 505, hash 1DB4894E
+ sample 26:
+ time = 967633
+ flags = 0
+ data = length 1268, hash C15348DC
+ sample 27:
+ time = 900900
+ flags = 0
+ data = length 880, hash C2DE85D0
+ sample 28:
+ time = 867533
+ flags = 67108864
+ data = length 530, hash C98BC6A8
+ sample 29:
+ time = 934266
+ flags = 603979776
+ data = length 568, hash 4FE5C8EA
+track 1:
+ total output bytes = 9529
+ sample count = 45
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ maxInputSize = 294
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], TCON: description=null: values=[Metal], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3796908763, timescale=1000]
+ initializationData:
+ data = length 2, hash 5F7
+ sample 0:
+ time = 44000
+ flags = 1
+ data = length 23, hash 47DE9131
+ sample 1:
+ time = 67219
+ flags = 1
+ data = length 6, hash 31EC5206
+ sample 2:
+ time = 90439
+ flags = 1
+ data = length 148, hash 894A176B
+ sample 3:
+ time = 113659
+ flags = 1
+ data = length 189, hash CEF235A1
+ sample 4:
+ time = 136879
+ flags = 1
+ data = length 205, hash BBF5F7B0
+ sample 5:
+ time = 160099
+ flags = 1
+ data = length 210, hash F278B193
+ sample 6:
+ time = 183319
+ flags = 1
+ data = length 210, hash 82DA1589
+ sample 7:
+ time = 206539
+ flags = 1
+ data = length 207, hash 5BE231DF
+ sample 8:
+ time = 229759
+ flags = 1
+ data = length 225, hash 18819EE1
+ sample 9:
+ time = 252979
+ flags = 1
+ data = length 215, hash CA7FA67B
+ sample 10:
+ time = 276199
+ flags = 1
+ data = length 211, hash 581A1C18
+ sample 11:
+ time = 299419
+ flags = 1
+ data = length 216, hash ADB88187
+ sample 12:
+ time = 322639
+ flags = 1
+ data = length 229, hash 2E8BA4DC
+ sample 13:
+ time = 345859
+ flags = 1
+ data = length 232, hash 22F0C510
+ sample 14:
+ time = 369079
+ flags = 1
+ data = length 235, hash 867AD0DC
+ sample 15:
+ time = 392299
+ flags = 1
+ data = length 231, hash 84E823A8
+ sample 16:
+ time = 415519
+ flags = 1
+ data = length 226, hash 1BEF3A95
+ sample 17:
+ time = 438739
+ flags = 1
+ data = length 216, hash EAA345AE
+ sample 18:
+ time = 461959
+ flags = 1
+ data = length 229, hash 6957411F
+ sample 19:
+ time = 485179
+ flags = 1
+ data = length 219, hash 41275022
+ sample 20:
+ time = 508399
+ flags = 1
+ data = length 241, hash 6495DF96
+ sample 21:
+ time = 531619
+ flags = 1
+ data = length 228, hash 63D95906
+ sample 22:
+ time = 554839
+ flags = 1
+ data = length 238, hash 34F676F9
+ sample 23:
+ time = 578058
+ flags = 1
+ data = length 234, hash E5CBC045
+ sample 24:
+ time = 601278
+ flags = 1
+ data = length 231, hash 5FC43661
+ sample 25:
+ time = 624498
+ flags = 1
+ data = length 217, hash 682708ED
+ sample 26:
+ time = 647718
+ flags = 1
+ data = length 239, hash D43780FC
+ sample 27:
+ time = 670938
+ flags = 1
+ data = length 243, hash C5E17980
+ sample 28:
+ time = 694158
+ flags = 1
+ data = length 231, hash AC5837BA
+ sample 29:
+ time = 717378
+ flags = 1
+ data = length 230, hash 169EE895
+ sample 30:
+ time = 740598
+ flags = 1
+ data = length 238, hash C48FF3F1
+ sample 31:
+ time = 763818
+ flags = 1
+ data = length 225, hash 531E4599
+ sample 32:
+ time = 787038
+ flags = 1
+ data = length 232, hash CB3C6B8D
+ sample 33:
+ time = 810258
+ flags = 1
+ data = length 243, hash F8C94C7
+ sample 34:
+ time = 833478
+ flags = 1
+ data = length 232, hash A646A7D0
+ sample 35:
+ time = 856698
+ flags = 1
+ data = length 237, hash E8B787A5
+ sample 36:
+ time = 879918
+ flags = 1
+ data = length 228, hash 3FA7A29F
+ sample 37:
+ time = 903138
+ flags = 1
+ data = length 235, hash B9B33B0A
+ sample 38:
+ time = 926358
+ flags = 1
+ data = length 264, hash 71A4869E
+ sample 39:
+ time = 949578
+ flags = 1
+ data = length 257, hash D049B54C
+ sample 40:
+ time = 972798
+ flags = 1
+ data = length 227, hash 66757231
+ sample 41:
+ time = 996018
+ flags = 1
+ data = length 227, hash BD374F1B
+ sample 42:
+ time = 1019238
+ flags = 1
+ data = length 235, hash 999477F6
+ sample 43:
+ time = 1042458
+ flags = 1
+ data = length 229, hash FFF98DF0
+ sample 44:
+ time = 1065678
+ flags = 536870913
+ data = length 6, hash 31B22286
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..d39928a0f9
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,478 @@
+seekMap:
+ isSeekable = true
+ duration = 2741666
+ getPosition(0) = [[timeUs=0, position=16]]
+ getPosition(1) = [[timeUs=0, position=16], [timeUs=471666, position=694060]]
+ getPosition(1370833) = [[timeUs=1081666, position=1534024], [timeUs=1691666, position=2598705]]
+ getPosition(2741666) = [[timeUs=2438333, position=4019235]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 4478284
+ sample count = 80
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L150.B0
+ maxInputSize = 364750
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1440
+ frameRate = 29.179338
+ rotationDegrees = 90
+ colorInfo:
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ initializationData:
+ data = length 78, hash C57F938D
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 199307, hash 5864D22F
+ sample 1:
+ time = 135000
+ flags = 0
+ data = length 61191, hash 8D7235B7
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 21875, hash 9FD10CF3
+ sample 3:
+ time = 33333
+ flags = 0
+ data = length 10447, hash 14D226A7
+ sample 4:
+ time = 101666
+ flags = 0
+ data = length 16015, hash 188EE834
+ sample 5:
+ time = 270000
+ flags = 0
+ data = length 138443, hash EBCD299
+ sample 6:
+ time = 201666
+ flags = 0
+ data = length 32805, hash 7626D6C3
+ sample 7:
+ time = 168333
+ flags = 0
+ data = length 14883, hash A734B5FE
+ sample 8:
+ time = 236666
+ flags = 0
+ data = length 11948, hash BCCC2A33
+ sample 9:
+ time = 405000
+ flags = 0
+ data = length 88769, hash 149FF9D3
+ sample 10:
+ time = 336666
+ flags = 0
+ data = length 25855, hash A0C3D845
+ sample 11:
+ time = 303333
+ flags = 0
+ data = length 11071, hash 23BA2C6B
+ sample 12:
+ time = 371666
+ flags = 0
+ data = length 11859, hash FE106775
+ sample 13:
+ time = 438333
+ flags = 0
+ data = length 47560, hash F4A52500
+ sample 14:
+ time = 471666
+ flags = 1
+ data = length 206359, hash AA9C86B7
+ sample 15:
+ time = 606666
+ flags = 0
+ data = length 32316, hash 91F96807
+ sample 16:
+ time = 540000
+ flags = 0
+ data = length 15943, hash 45FA9864
+ sample 17:
+ time = 506666
+ flags = 0
+ data = length 7183, hash BEF025B1
+ sample 18:
+ time = 573333
+ flags = 0
+ data = length 9604, hash A6E08624
+ sample 19:
+ time = 741666
+ flags = 0
+ data = length 93206, hash 8D92A1BC
+ sample 20:
+ time = 675000
+ flags = 0
+ data = length 27500, hash 9DBA11AA
+ sample 21:
+ time = 641666
+ flags = 0
+ data = length 11687, hash E23F32C7
+ sample 22:
+ time = 708333
+ flags = 0
+ data = length 14906, hash DC2DA89D
+ sample 23:
+ time = 880000
+ flags = 0
+ data = length 80531, hash 5F281EEE
+ sample 24:
+ time = 811666
+ flags = 0
+ data = length 25736, hash 4D443883
+ sample 25:
+ time = 776666
+ flags = 0
+ data = length 45840, hash 4456028
+ sample 26:
+ time = 845000
+ flags = 0
+ data = length 20499, hash 9940E6F1
+ sample 27:
+ time = 1015000
+ flags = 0
+ data = length 89733, hash 5BBF699C
+ sample 28:
+ time = 946666
+ flags = 0
+ data = length 35009, hash DB122D5B
+ sample 29:
+ time = 913333
+ flags = 0
+ data = length 19035, hash 3C338E70
+ sample 30:
+ time = 980000
+ flags = 0
+ data = length 17084, hash 8E308D8C
+ sample 31:
+ time = 1048333
+ flags = 0
+ data = length 87793, hash FAC29674
+ sample 32:
+ time = 1081666
+ flags = 1
+ data = length 356935, hash 8C646516
+ sample 33:
+ time = 1216666
+ flags = 0
+ data = length 65937, hash 6F9EDC54
+ sample 34:
+ time = 1150000
+ flags = 0
+ data = length 18102, hash 703C5395
+ sample 35:
+ time = 1115000
+ flags = 0
+ data = length 6787, hash 3D0E2B31
+ sample 36:
+ time = 1183333
+ flags = 0
+ data = length 10192, hash 461CF7D3
+ sample 37:
+ time = 1353333
+ flags = 0
+ data = length 189823, hash FFBAEEFD
+ sample 38:
+ time = 1285000
+ flags = 0
+ data = length 25293, hash 33EFA370
+ sample 39:
+ time = 1250000
+ flags = 0
+ data = length 9088, hash 46BE5B80
+ sample 40:
+ time = 1318333
+ flags = 0
+ data = length 16795, hash F3915E7A
+ sample 41:
+ time = 1488333
+ flags = 0
+ data = length 71742, hash 170147AF
+ sample 42:
+ time = 1421666
+ flags = 0
+ data = length 29558, hash 181F9C60
+ sample 43:
+ time = 1388333
+ flags = 0
+ data = length 15494, hash 1F2B57F6
+ sample 44:
+ time = 1455000
+ flags = 0
+ data = length 14166, hash E1FD2EC1
+ sample 45:
+ time = 1623333
+ flags = 0
+ data = length 84016, hash 99426E2E
+ sample 46:
+ time = 1556666
+ flags = 0
+ data = length 28831, hash 5CD70807
+ sample 47:
+ time = 1523333
+ flags = 0
+ data = length 17372, hash AFF61899
+ sample 48:
+ time = 1590000
+ flags = 0
+ data = length 21827, hash E3B1A343
+ sample 49:
+ time = 1658333
+ flags = 0
+ data = length 82723, hash 116637ED
+ sample 50:
+ time = 1691666
+ flags = 1
+ data = length 364720, hash 97CC919
+ sample 51:
+ time = 1826666
+ flags = 0
+ data = length 56266, hash B00EE494
+ sample 52:
+ time = 1758333
+ flags = 0
+ data = length 15158, hash A9F99FBC
+ sample 53:
+ time = 1725000
+ flags = 0
+ data = length 9522, hash B3C6232B
+ sample 54:
+ time = 1793333
+ flags = 0
+ data = length 11191, hash C2118AB9
+ sample 55:
+ time = 1963333
+ flags = 0
+ data = length 77904, hash 19170263
+ sample 56:
+ time = 1895000
+ flags = 0
+ data = length 105375, hash E5C39C98
+ sample 57:
+ time = 1860000
+ flags = 0
+ data = length 16265, hash 478FD058
+ sample 58:
+ time = 1930000
+ flags = 0
+ data = length 9527, hash B8C5D790
+ sample 59:
+ time = 2031666
+ flags = 0
+ data = length 27558, hash 3CAFD1D3
+ sample 60:
+ time = 1996666
+ flags = 0
+ data = length 10814, hash 9CBA8FAA
+ sample 61:
+ time = 2065000
+ flags = 1
+ data = length 354639, hash 5F75524F
+ sample 62:
+ time = 2200000
+ flags = 0
+ data = length 34289, hash 7BD19879
+ sample 63:
+ time = 2131666
+ flags = 0
+ data = length 16370, hash 7247AF47
+ sample 64:
+ time = 2098333
+ flags = 0
+ data = length 8429, hash B9F88E07
+ sample 65:
+ time = 2166666
+ flags = 0
+ data = length 11477, hash 7E9AF3B8
+ sample 66:
+ time = 2335000
+ flags = 0
+ data = length 202300, hash FC193F4E
+ sample 67:
+ time = 2266666
+ flags = 0
+ data = length 17622, hash C230902B
+ sample 68:
+ time = 2233333
+ flags = 0
+ data = length 7898, hash 70F94769
+ sample 69:
+ time = 2301666
+ flags = 0
+ data = length 13175, hash 966061EB
+ sample 70:
+ time = 2403333
+ flags = 0
+ data = length 30833, hash B4420439
+ sample 71:
+ time = 2368333
+ flags = 0
+ data = length 10846, hash 88595E1
+ sample 72:
+ time = 2438333
+ flags = 1
+ data = length 302471, hash 94BDFA4A
+ sample 73:
+ time = 2573333
+ flags = 0
+ data = length 30489, hash C077BCC8
+ sample 74:
+ time = 2506666
+ flags = 0
+ data = length 20085, hash FD0232B7
+ sample 75:
+ time = 2471666
+ flags = 0
+ data = length 11066, hash 10D3869
+ sample 76:
+ time = 2540000
+ flags = 0
+ data = length 12144, hash FC1D71A8
+ sample 77:
+ time = 2708333
+ flags = 0
+ data = length 64048, hash AF8C69C4
+ sample 78:
+ time = 2640000
+ flags = 0
+ data = length 17710, hash ED7B986C
+ sample 79:
+ time = 2606666
+ flags = 536870912
+ data = length 11420, hash 712BAC8D
+track 1:
+ total output bytes = 232260
+ sample count = 29
+ format 0:
+ id = 2
+ sampleMimeType = audio/raw
+ maxInputSize = 8222
+ channelCount = 1
+ sampleRate = 44100
+ pcmEncoding = 2
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 8192, hash F5635F50
+ sample 1:
+ time = 92879
+ flags = 1
+ data = length 8192, hash 474BEB58
+ sample 2:
+ time = 185759
+ flags = 1
+ data = length 8192, hash 7749D89B
+ sample 3:
+ time = 278639
+ flags = 1
+ data = length 8192, hash ABCCD27C
+ sample 4:
+ time = 371519
+ flags = 1
+ data = length 8192, hash DBAED6B
+ sample 5:
+ time = 464399
+ flags = 1
+ data = length 8192, hash BD10BAD6
+ sample 6:
+ time = 557278
+ flags = 1
+ data = length 8192, hash 38454832
+ sample 7:
+ time = 650158
+ flags = 1
+ data = length 8192, hash 894C38EA
+ sample 8:
+ time = 743038
+ flags = 1
+ data = length 8192, hash D002964D
+ sample 9:
+ time = 835918
+ flags = 1
+ data = length 8192, hash 15A70C61
+ sample 10:
+ time = 928798
+ flags = 1
+ data = length 6280, hash 418D1C1
+ sample 11:
+ time = 1000000
+ flags = 1
+ data = length 8192, hash E1AE913E
+ sample 12:
+ time = 1092879
+ flags = 1
+ data = length 8192, hash 888B8687
+ sample 13:
+ time = 1185759
+ flags = 1
+ data = length 8192, hash F750B9D9
+ sample 14:
+ time = 1278639
+ flags = 1
+ data = length 8192, hash 4566AA2D
+ sample 15:
+ time = 1371519
+ flags = 1
+ data = length 8192, hash C6F827CD
+ sample 16:
+ time = 1464399
+ flags = 1
+ data = length 8192, hash 3A911603
+ sample 17:
+ time = 1557278
+ flags = 1
+ data = length 8192, hash FDE3EF6A
+ sample 18:
+ time = 1650158
+ flags = 1
+ data = length 8192, hash 450F2C8B
+ sample 19:
+ time = 1743038
+ flags = 1
+ data = length 8192, hash 9D74782F
+ sample 20:
+ time = 1835918
+ flags = 1
+ data = length 8192, hash 3A421696
+ sample 21:
+ time = 1928798
+ flags = 1
+ data = length 6280, hash CD4EC54B
+ sample 22:
+ time = 2000000
+ flags = 1
+ data = length 8192, hash A7477920
+ sample 23:
+ time = 2092879
+ flags = 1
+ data = length 8192, hash 1AF0CDAE
+ sample 24:
+ time = 2185759
+ flags = 1
+ data = length 8192, hash 8F158715
+ sample 25:
+ time = 2278639
+ flags = 1
+ data = length 8192, hash 4787ED61
+ sample 26:
+ time = 2371519
+ flags = 1
+ data = length 8192, hash 8E96B0F9
+ sample 27:
+ time = 2464399
+ flags = 1
+ data = length 8192, hash B6BDD1BD
+ sample 28:
+ time = 2557278
+ flags = 536870913
+ data = length 6708, hash BF420F22
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..78abb47da7
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,386 @@
+seekMap:
+ isSeekable = true
+ duration = 2741666
+ getPosition(0) = [[timeUs=0, position=16]]
+ getPosition(1) = [[timeUs=0, position=16], [timeUs=471666, position=694060]]
+ getPosition(1370833) = [[timeUs=1081666, position=1534024], [timeUs=1691666, position=2598705]]
+ getPosition(2741666) = [[timeUs=2438333, position=4019235]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 3786256
+ sample count = 66
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L150.B0
+ maxInputSize = 364750
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1440
+ frameRate = 29.179338
+ rotationDegrees = 90
+ colorInfo:
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ initializationData:
+ data = length 78, hash C57F938D
+ sample 0:
+ time = 471666
+ flags = 1
+ data = length 206359, hash AA9C86B7
+ sample 1:
+ time = 606666
+ flags = 0
+ data = length 32316, hash 91F96807
+ sample 2:
+ time = 540000
+ flags = 0
+ data = length 15943, hash 45FA9864
+ sample 3:
+ time = 506666
+ flags = 0
+ data = length 7183, hash BEF025B1
+ sample 4:
+ time = 573333
+ flags = 0
+ data = length 9604, hash A6E08624
+ sample 5:
+ time = 741666
+ flags = 0
+ data = length 93206, hash 8D92A1BC
+ sample 6:
+ time = 675000
+ flags = 0
+ data = length 27500, hash 9DBA11AA
+ sample 7:
+ time = 641666
+ flags = 0
+ data = length 11687, hash E23F32C7
+ sample 8:
+ time = 708333
+ flags = 0
+ data = length 14906, hash DC2DA89D
+ sample 9:
+ time = 880000
+ flags = 0
+ data = length 80531, hash 5F281EEE
+ sample 10:
+ time = 811666
+ flags = 0
+ data = length 25736, hash 4D443883
+ sample 11:
+ time = 776666
+ flags = 0
+ data = length 45840, hash 4456028
+ sample 12:
+ time = 845000
+ flags = 0
+ data = length 20499, hash 9940E6F1
+ sample 13:
+ time = 1015000
+ flags = 0
+ data = length 89733, hash 5BBF699C
+ sample 14:
+ time = 946666
+ flags = 0
+ data = length 35009, hash DB122D5B
+ sample 15:
+ time = 913333
+ flags = 0
+ data = length 19035, hash 3C338E70
+ sample 16:
+ time = 980000
+ flags = 0
+ data = length 17084, hash 8E308D8C
+ sample 17:
+ time = 1048333
+ flags = 0
+ data = length 87793, hash FAC29674
+ sample 18:
+ time = 1081666
+ flags = 1
+ data = length 356935, hash 8C646516
+ sample 19:
+ time = 1216666
+ flags = 0
+ data = length 65937, hash 6F9EDC54
+ sample 20:
+ time = 1150000
+ flags = 0
+ data = length 18102, hash 703C5395
+ sample 21:
+ time = 1115000
+ flags = 0
+ data = length 6787, hash 3D0E2B31
+ sample 22:
+ time = 1183333
+ flags = 0
+ data = length 10192, hash 461CF7D3
+ sample 23:
+ time = 1353333
+ flags = 0
+ data = length 189823, hash FFBAEEFD
+ sample 24:
+ time = 1285000
+ flags = 0
+ data = length 25293, hash 33EFA370
+ sample 25:
+ time = 1250000
+ flags = 0
+ data = length 9088, hash 46BE5B80
+ sample 26:
+ time = 1318333
+ flags = 0
+ data = length 16795, hash F3915E7A
+ sample 27:
+ time = 1488333
+ flags = 0
+ data = length 71742, hash 170147AF
+ sample 28:
+ time = 1421666
+ flags = 0
+ data = length 29558, hash 181F9C60
+ sample 29:
+ time = 1388333
+ flags = 0
+ data = length 15494, hash 1F2B57F6
+ sample 30:
+ time = 1455000
+ flags = 0
+ data = length 14166, hash E1FD2EC1
+ sample 31:
+ time = 1623333
+ flags = 0
+ data = length 84016, hash 99426E2E
+ sample 32:
+ time = 1556666
+ flags = 0
+ data = length 28831, hash 5CD70807
+ sample 33:
+ time = 1523333
+ flags = 0
+ data = length 17372, hash AFF61899
+ sample 34:
+ time = 1590000
+ flags = 0
+ data = length 21827, hash E3B1A343
+ sample 35:
+ time = 1658333
+ flags = 0
+ data = length 82723, hash 116637ED
+ sample 36:
+ time = 1691666
+ flags = 1
+ data = length 364720, hash 97CC919
+ sample 37:
+ time = 1826666
+ flags = 0
+ data = length 56266, hash B00EE494
+ sample 38:
+ time = 1758333
+ flags = 0
+ data = length 15158, hash A9F99FBC
+ sample 39:
+ time = 1725000
+ flags = 0
+ data = length 9522, hash B3C6232B
+ sample 40:
+ time = 1793333
+ flags = 0
+ data = length 11191, hash C2118AB9
+ sample 41:
+ time = 1963333
+ flags = 0
+ data = length 77904, hash 19170263
+ sample 42:
+ time = 1895000
+ flags = 0
+ data = length 105375, hash E5C39C98
+ sample 43:
+ time = 1860000
+ flags = 0
+ data = length 16265, hash 478FD058
+ sample 44:
+ time = 1930000
+ flags = 0
+ data = length 9527, hash B8C5D790
+ sample 45:
+ time = 2031666
+ flags = 0
+ data = length 27558, hash 3CAFD1D3
+ sample 46:
+ time = 1996666
+ flags = 0
+ data = length 10814, hash 9CBA8FAA
+ sample 47:
+ time = 2065000
+ flags = 1
+ data = length 354639, hash 5F75524F
+ sample 48:
+ time = 2200000
+ flags = 0
+ data = length 34289, hash 7BD19879
+ sample 49:
+ time = 2131666
+ flags = 0
+ data = length 16370, hash 7247AF47
+ sample 50:
+ time = 2098333
+ flags = 0
+ data = length 8429, hash B9F88E07
+ sample 51:
+ time = 2166666
+ flags = 0
+ data = length 11477, hash 7E9AF3B8
+ sample 52:
+ time = 2335000
+ flags = 0
+ data = length 202300, hash FC193F4E
+ sample 53:
+ time = 2266666
+ flags = 0
+ data = length 17622, hash C230902B
+ sample 54:
+ time = 2233333
+ flags = 0
+ data = length 7898, hash 70F94769
+ sample 55:
+ time = 2301666
+ flags = 0
+ data = length 13175, hash 966061EB
+ sample 56:
+ time = 2403333
+ flags = 0
+ data = length 30833, hash B4420439
+ sample 57:
+ time = 2368333
+ flags = 0
+ data = length 10846, hash 88595E1
+ sample 58:
+ time = 2438333
+ flags = 1
+ data = length 302471, hash 94BDFA4A
+ sample 59:
+ time = 2573333
+ flags = 0
+ data = length 30489, hash C077BCC8
+ sample 60:
+ time = 2506666
+ flags = 0
+ data = length 20085, hash FD0232B7
+ sample 61:
+ time = 2471666
+ flags = 0
+ data = length 11066, hash 10D3869
+ sample 62:
+ time = 2540000
+ flags = 0
+ data = length 12144, hash FC1D71A8
+ sample 63:
+ time = 2708333
+ flags = 0
+ data = length 64048, hash AF8C69C4
+ sample 64:
+ time = 2640000
+ flags = 0
+ data = length 17710, hash ED7B986C
+ sample 65:
+ time = 2606666
+ flags = 536870912
+ data = length 11420, hash 712BAC8D
+track 1:
+ total output bytes = 158532
+ sample count = 20
+ format 0:
+ id = 2
+ sampleMimeType = audio/raw
+ maxInputSize = 8222
+ channelCount = 1
+ sampleRate = 44100
+ pcmEncoding = 2
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ sample 0:
+ time = 835918
+ flags = 1
+ data = length 8192, hash 15A70C61
+ sample 1:
+ time = 928798
+ flags = 1
+ data = length 6280, hash 418D1C1
+ sample 2:
+ time = 1000000
+ flags = 1
+ data = length 8192, hash E1AE913E
+ sample 3:
+ time = 1092879
+ flags = 1
+ data = length 8192, hash 888B8687
+ sample 4:
+ time = 1185759
+ flags = 1
+ data = length 8192, hash F750B9D9
+ sample 5:
+ time = 1278639
+ flags = 1
+ data = length 8192, hash 4566AA2D
+ sample 6:
+ time = 1371519
+ flags = 1
+ data = length 8192, hash C6F827CD
+ sample 7:
+ time = 1464399
+ flags = 1
+ data = length 8192, hash 3A911603
+ sample 8:
+ time = 1557278
+ flags = 1
+ data = length 8192, hash FDE3EF6A
+ sample 9:
+ time = 1650158
+ flags = 1
+ data = length 8192, hash 450F2C8B
+ sample 10:
+ time = 1743038
+ flags = 1
+ data = length 8192, hash 9D74782F
+ sample 11:
+ time = 1835918
+ flags = 1
+ data = length 8192, hash 3A421696
+ sample 12:
+ time = 1928798
+ flags = 1
+ data = length 6280, hash CD4EC54B
+ sample 13:
+ time = 2000000
+ flags = 1
+ data = length 8192, hash A7477920
+ sample 14:
+ time = 2092879
+ flags = 1
+ data = length 8192, hash 1AF0CDAE
+ sample 15:
+ time = 2185759
+ flags = 1
+ data = length 8192, hash 8F158715
+ sample 16:
+ time = 2278639
+ flags = 1
+ data = length 8192, hash 4787ED61
+ sample 17:
+ time = 2371519
+ flags = 1
+ data = length 8192, hash 8E96B0F9
+ sample 18:
+ time = 2464399
+ flags = 1
+ data = length 8192, hash B6BDD1BD
+ sample 19:
+ time = 2557278
+ flags = 536870913
+ data = length 6708, hash BF420F22
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..7e3189d05e
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,202 @@
+seekMap:
+ isSeekable = true
+ duration = 2741666
+ getPosition(0) = [[timeUs=0, position=16]]
+ getPosition(1) = [[timeUs=0, position=16], [timeUs=471666, position=694060]]
+ getPosition(1370833) = [[timeUs=1081666, position=1534024], [timeUs=1691666, position=2598705]]
+ getPosition(2741666) = [[timeUs=2438333, position=4019235]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 1881611
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L150.B0
+ maxInputSize = 364750
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1440
+ frameRate = 29.179338
+ rotationDegrees = 90
+ colorInfo:
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ initializationData:
+ data = length 78, hash C57F938D
+ sample 0:
+ time = 1691666
+ flags = 1
+ data = length 364720, hash 97CC919
+ sample 1:
+ time = 1826666
+ flags = 0
+ data = length 56266, hash B00EE494
+ sample 2:
+ time = 1758333
+ flags = 0
+ data = length 15158, hash A9F99FBC
+ sample 3:
+ time = 1725000
+ flags = 0
+ data = length 9522, hash B3C6232B
+ sample 4:
+ time = 1793333
+ flags = 0
+ data = length 11191, hash C2118AB9
+ sample 5:
+ time = 1963333
+ flags = 0
+ data = length 77904, hash 19170263
+ sample 6:
+ time = 1895000
+ flags = 0
+ data = length 105375, hash E5C39C98
+ sample 7:
+ time = 1860000
+ flags = 0
+ data = length 16265, hash 478FD058
+ sample 8:
+ time = 1930000
+ flags = 0
+ data = length 9527, hash B8C5D790
+ sample 9:
+ time = 2031666
+ flags = 0
+ data = length 27558, hash 3CAFD1D3
+ sample 10:
+ time = 1996666
+ flags = 0
+ data = length 10814, hash 9CBA8FAA
+ sample 11:
+ time = 2065000
+ flags = 1
+ data = length 354639, hash 5F75524F
+ sample 12:
+ time = 2200000
+ flags = 0
+ data = length 34289, hash 7BD19879
+ sample 13:
+ time = 2131666
+ flags = 0
+ data = length 16370, hash 7247AF47
+ sample 14:
+ time = 2098333
+ flags = 0
+ data = length 8429, hash B9F88E07
+ sample 15:
+ time = 2166666
+ flags = 0
+ data = length 11477, hash 7E9AF3B8
+ sample 16:
+ time = 2335000
+ flags = 0
+ data = length 202300, hash FC193F4E
+ sample 17:
+ time = 2266666
+ flags = 0
+ data = length 17622, hash C230902B
+ sample 18:
+ time = 2233333
+ flags = 0
+ data = length 7898, hash 70F94769
+ sample 19:
+ time = 2301666
+ flags = 0
+ data = length 13175, hash 966061EB
+ sample 20:
+ time = 2403333
+ flags = 0
+ data = length 30833, hash B4420439
+ sample 21:
+ time = 2368333
+ flags = 0
+ data = length 10846, hash 88595E1
+ sample 22:
+ time = 2438333
+ flags = 1
+ data = length 302471, hash 94BDFA4A
+ sample 23:
+ time = 2573333
+ flags = 0
+ data = length 30489, hash C077BCC8
+ sample 24:
+ time = 2506666
+ flags = 0
+ data = length 20085, hash FD0232B7
+ sample 25:
+ time = 2471666
+ flags = 0
+ data = length 11066, hash 10D3869
+ sample 26:
+ time = 2540000
+ flags = 0
+ data = length 12144, hash FC1D71A8
+ sample 27:
+ time = 2708333
+ flags = 0
+ data = length 64048, hash AF8C69C4
+ sample 28:
+ time = 2640000
+ flags = 0
+ data = length 17710, hash ED7B986C
+ sample 29:
+ time = 2606666
+ flags = 536870912
+ data = length 11420, hash 712BAC8D
+track 1:
+ total output bytes = 78524
+ sample count = 10
+ format 0:
+ id = 2
+ sampleMimeType = audio/raw
+ maxInputSize = 8222
+ channelCount = 1
+ sampleRate = 44100
+ pcmEncoding = 2
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ sample 0:
+ time = 1743038
+ flags = 1
+ data = length 8192, hash 9D74782F
+ sample 1:
+ time = 1835918
+ flags = 1
+ data = length 8192, hash 3A421696
+ sample 2:
+ time = 1928798
+ flags = 1
+ data = length 6280, hash CD4EC54B
+ sample 3:
+ time = 2000000
+ flags = 1
+ data = length 8192, hash A7477920
+ sample 4:
+ time = 2092879
+ flags = 1
+ data = length 8192, hash 1AF0CDAE
+ sample 5:
+ time = 2185759
+ flags = 1
+ data = length 8192, hash 8F158715
+ sample 6:
+ time = 2278639
+ flags = 1
+ data = length 8192, hash 4787ED61
+ sample 7:
+ time = 2371519
+ flags = 1
+ data = length 8192, hash 8E96B0F9
+ sample 8:
+ time = 2464399
+ flags = 1
+ data = length 8192, hash B6BDD1BD
+ sample 9:
+ time = 2557278
+ flags = 536870913
+ data = length 6708, hash BF420F22
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..a79f6d3899
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,78 @@
+seekMap:
+ isSeekable = true
+ duration = 2741666
+ getPosition(0) = [[timeUs=0, position=16]]
+ getPosition(1) = [[timeUs=0, position=16], [timeUs=471666, position=694060]]
+ getPosition(1370833) = [[timeUs=1081666, position=1534024], [timeUs=1691666, position=2598705]]
+ getPosition(2741666) = [[timeUs=2438333, position=4019235]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 469433
+ sample count = 8
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L150.B0
+ maxInputSize = 364750
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1440
+ frameRate = 29.179338
+ rotationDegrees = 90
+ colorInfo:
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ initializationData:
+ data = length 78, hash C57F938D
+ sample 0:
+ time = 2438333
+ flags = 1
+ data = length 302471, hash 94BDFA4A
+ sample 1:
+ time = 2573333
+ flags = 0
+ data = length 30489, hash C077BCC8
+ sample 2:
+ time = 2506666
+ flags = 0
+ data = length 20085, hash FD0232B7
+ sample 3:
+ time = 2471666
+ flags = 0
+ data = length 11066, hash 10D3869
+ sample 4:
+ time = 2540000
+ flags = 0
+ data = length 12144, hash FC1D71A8
+ sample 5:
+ time = 2708333
+ flags = 0
+ data = length 64048, hash AF8C69C4
+ sample 6:
+ time = 2640000
+ flags = 0
+ data = length 17710, hash ED7B986C
+ sample 7:
+ time = 2606666
+ flags = 536870912
+ data = length 11420, hash 712BAC8D
+track 1:
+ total output bytes = 6708
+ sample count = 1
+ format 0:
+ id = 2
+ sampleMimeType = audio/raw
+ maxInputSize = 8222
+ channelCount = 1
+ sampleRate = 44100
+ pcmEncoding = 2
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ sample 0:
+ time = 2557278
+ flags = 536870913
+ data = length 6708, hash BF420F22
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..d39928a0f9
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,478 @@
+seekMap:
+ isSeekable = true
+ duration = 2741666
+ getPosition(0) = [[timeUs=0, position=16]]
+ getPosition(1) = [[timeUs=0, position=16], [timeUs=471666, position=694060]]
+ getPosition(1370833) = [[timeUs=1081666, position=1534024], [timeUs=1691666, position=2598705]]
+ getPosition(2741666) = [[timeUs=2438333, position=4019235]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 4478284
+ sample count = 80
+ format 0:
+ id = 1
+ sampleMimeType = video/hevc
+ codecs = hvc1.1.6.L150.B0
+ maxInputSize = 364750
+ maxNumReorderSamples = 2
+ width = 1920
+ height = 1440
+ frameRate = 29.179338
+ rotationDegrees = 90
+ colorInfo:
+ colorRange = 1
+ colorTransfer = 3
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ initializationData:
+ data = length 78, hash C57F938D
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 199307, hash 5864D22F
+ sample 1:
+ time = 135000
+ flags = 0
+ data = length 61191, hash 8D7235B7
+ sample 2:
+ time = 66666
+ flags = 0
+ data = length 21875, hash 9FD10CF3
+ sample 3:
+ time = 33333
+ flags = 0
+ data = length 10447, hash 14D226A7
+ sample 4:
+ time = 101666
+ flags = 0
+ data = length 16015, hash 188EE834
+ sample 5:
+ time = 270000
+ flags = 0
+ data = length 138443, hash EBCD299
+ sample 6:
+ time = 201666
+ flags = 0
+ data = length 32805, hash 7626D6C3
+ sample 7:
+ time = 168333
+ flags = 0
+ data = length 14883, hash A734B5FE
+ sample 8:
+ time = 236666
+ flags = 0
+ data = length 11948, hash BCCC2A33
+ sample 9:
+ time = 405000
+ flags = 0
+ data = length 88769, hash 149FF9D3
+ sample 10:
+ time = 336666
+ flags = 0
+ data = length 25855, hash A0C3D845
+ sample 11:
+ time = 303333
+ flags = 0
+ data = length 11071, hash 23BA2C6B
+ sample 12:
+ time = 371666
+ flags = 0
+ data = length 11859, hash FE106775
+ sample 13:
+ time = 438333
+ flags = 0
+ data = length 47560, hash F4A52500
+ sample 14:
+ time = 471666
+ flags = 1
+ data = length 206359, hash AA9C86B7
+ sample 15:
+ time = 606666
+ flags = 0
+ data = length 32316, hash 91F96807
+ sample 16:
+ time = 540000
+ flags = 0
+ data = length 15943, hash 45FA9864
+ sample 17:
+ time = 506666
+ flags = 0
+ data = length 7183, hash BEF025B1
+ sample 18:
+ time = 573333
+ flags = 0
+ data = length 9604, hash A6E08624
+ sample 19:
+ time = 741666
+ flags = 0
+ data = length 93206, hash 8D92A1BC
+ sample 20:
+ time = 675000
+ flags = 0
+ data = length 27500, hash 9DBA11AA
+ sample 21:
+ time = 641666
+ flags = 0
+ data = length 11687, hash E23F32C7
+ sample 22:
+ time = 708333
+ flags = 0
+ data = length 14906, hash DC2DA89D
+ sample 23:
+ time = 880000
+ flags = 0
+ data = length 80531, hash 5F281EEE
+ sample 24:
+ time = 811666
+ flags = 0
+ data = length 25736, hash 4D443883
+ sample 25:
+ time = 776666
+ flags = 0
+ data = length 45840, hash 4456028
+ sample 26:
+ time = 845000
+ flags = 0
+ data = length 20499, hash 9940E6F1
+ sample 27:
+ time = 1015000
+ flags = 0
+ data = length 89733, hash 5BBF699C
+ sample 28:
+ time = 946666
+ flags = 0
+ data = length 35009, hash DB122D5B
+ sample 29:
+ time = 913333
+ flags = 0
+ data = length 19035, hash 3C338E70
+ sample 30:
+ time = 980000
+ flags = 0
+ data = length 17084, hash 8E308D8C
+ sample 31:
+ time = 1048333
+ flags = 0
+ data = length 87793, hash FAC29674
+ sample 32:
+ time = 1081666
+ flags = 1
+ data = length 356935, hash 8C646516
+ sample 33:
+ time = 1216666
+ flags = 0
+ data = length 65937, hash 6F9EDC54
+ sample 34:
+ time = 1150000
+ flags = 0
+ data = length 18102, hash 703C5395
+ sample 35:
+ time = 1115000
+ flags = 0
+ data = length 6787, hash 3D0E2B31
+ sample 36:
+ time = 1183333
+ flags = 0
+ data = length 10192, hash 461CF7D3
+ sample 37:
+ time = 1353333
+ flags = 0
+ data = length 189823, hash FFBAEEFD
+ sample 38:
+ time = 1285000
+ flags = 0
+ data = length 25293, hash 33EFA370
+ sample 39:
+ time = 1250000
+ flags = 0
+ data = length 9088, hash 46BE5B80
+ sample 40:
+ time = 1318333
+ flags = 0
+ data = length 16795, hash F3915E7A
+ sample 41:
+ time = 1488333
+ flags = 0
+ data = length 71742, hash 170147AF
+ sample 42:
+ time = 1421666
+ flags = 0
+ data = length 29558, hash 181F9C60
+ sample 43:
+ time = 1388333
+ flags = 0
+ data = length 15494, hash 1F2B57F6
+ sample 44:
+ time = 1455000
+ flags = 0
+ data = length 14166, hash E1FD2EC1
+ sample 45:
+ time = 1623333
+ flags = 0
+ data = length 84016, hash 99426E2E
+ sample 46:
+ time = 1556666
+ flags = 0
+ data = length 28831, hash 5CD70807
+ sample 47:
+ time = 1523333
+ flags = 0
+ data = length 17372, hash AFF61899
+ sample 48:
+ time = 1590000
+ flags = 0
+ data = length 21827, hash E3B1A343
+ sample 49:
+ time = 1658333
+ flags = 0
+ data = length 82723, hash 116637ED
+ sample 50:
+ time = 1691666
+ flags = 1
+ data = length 364720, hash 97CC919
+ sample 51:
+ time = 1826666
+ flags = 0
+ data = length 56266, hash B00EE494
+ sample 52:
+ time = 1758333
+ flags = 0
+ data = length 15158, hash A9F99FBC
+ sample 53:
+ time = 1725000
+ flags = 0
+ data = length 9522, hash B3C6232B
+ sample 54:
+ time = 1793333
+ flags = 0
+ data = length 11191, hash C2118AB9
+ sample 55:
+ time = 1963333
+ flags = 0
+ data = length 77904, hash 19170263
+ sample 56:
+ time = 1895000
+ flags = 0
+ data = length 105375, hash E5C39C98
+ sample 57:
+ time = 1860000
+ flags = 0
+ data = length 16265, hash 478FD058
+ sample 58:
+ time = 1930000
+ flags = 0
+ data = length 9527, hash B8C5D790
+ sample 59:
+ time = 2031666
+ flags = 0
+ data = length 27558, hash 3CAFD1D3
+ sample 60:
+ time = 1996666
+ flags = 0
+ data = length 10814, hash 9CBA8FAA
+ sample 61:
+ time = 2065000
+ flags = 1
+ data = length 354639, hash 5F75524F
+ sample 62:
+ time = 2200000
+ flags = 0
+ data = length 34289, hash 7BD19879
+ sample 63:
+ time = 2131666
+ flags = 0
+ data = length 16370, hash 7247AF47
+ sample 64:
+ time = 2098333
+ flags = 0
+ data = length 8429, hash B9F88E07
+ sample 65:
+ time = 2166666
+ flags = 0
+ data = length 11477, hash 7E9AF3B8
+ sample 66:
+ time = 2335000
+ flags = 0
+ data = length 202300, hash FC193F4E
+ sample 67:
+ time = 2266666
+ flags = 0
+ data = length 17622, hash C230902B
+ sample 68:
+ time = 2233333
+ flags = 0
+ data = length 7898, hash 70F94769
+ sample 69:
+ time = 2301666
+ flags = 0
+ data = length 13175, hash 966061EB
+ sample 70:
+ time = 2403333
+ flags = 0
+ data = length 30833, hash B4420439
+ sample 71:
+ time = 2368333
+ flags = 0
+ data = length 10846, hash 88595E1
+ sample 72:
+ time = 2438333
+ flags = 1
+ data = length 302471, hash 94BDFA4A
+ sample 73:
+ time = 2573333
+ flags = 0
+ data = length 30489, hash C077BCC8
+ sample 74:
+ time = 2506666
+ flags = 0
+ data = length 20085, hash FD0232B7
+ sample 75:
+ time = 2471666
+ flags = 0
+ data = length 11066, hash 10D3869
+ sample 76:
+ time = 2540000
+ flags = 0
+ data = length 12144, hash FC1D71A8
+ sample 77:
+ time = 2708333
+ flags = 0
+ data = length 64048, hash AF8C69C4
+ sample 78:
+ time = 2640000
+ flags = 0
+ data = length 17710, hash ED7B986C
+ sample 79:
+ time = 2606666
+ flags = 536870912
+ data = length 11420, hash 712BAC8D
+track 1:
+ total output bytes = 232260
+ sample count = 29
+ format 0:
+ id = 2
+ sampleMimeType = audio/raw
+ maxInputSize = 8222
+ channelCount = 1
+ sampleRate = 44100
+ pcmEncoding = 2
+ language = und
+ metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 8192, hash F5635F50
+ sample 1:
+ time = 92879
+ flags = 1
+ data = length 8192, hash 474BEB58
+ sample 2:
+ time = 185759
+ flags = 1
+ data = length 8192, hash 7749D89B
+ sample 3:
+ time = 278639
+ flags = 1
+ data = length 8192, hash ABCCD27C
+ sample 4:
+ time = 371519
+ flags = 1
+ data = length 8192, hash DBAED6B
+ sample 5:
+ time = 464399
+ flags = 1
+ data = length 8192, hash BD10BAD6
+ sample 6:
+ time = 557278
+ flags = 1
+ data = length 8192, hash 38454832
+ sample 7:
+ time = 650158
+ flags = 1
+ data = length 8192, hash 894C38EA
+ sample 8:
+ time = 743038
+ flags = 1
+ data = length 8192, hash D002964D
+ sample 9:
+ time = 835918
+ flags = 1
+ data = length 8192, hash 15A70C61
+ sample 10:
+ time = 928798
+ flags = 1
+ data = length 6280, hash 418D1C1
+ sample 11:
+ time = 1000000
+ flags = 1
+ data = length 8192, hash E1AE913E
+ sample 12:
+ time = 1092879
+ flags = 1
+ data = length 8192, hash 888B8687
+ sample 13:
+ time = 1185759
+ flags = 1
+ data = length 8192, hash F750B9D9
+ sample 14:
+ time = 1278639
+ flags = 1
+ data = length 8192, hash 4566AA2D
+ sample 15:
+ time = 1371519
+ flags = 1
+ data = length 8192, hash C6F827CD
+ sample 16:
+ time = 1464399
+ flags = 1
+ data = length 8192, hash 3A911603
+ sample 17:
+ time = 1557278
+ flags = 1
+ data = length 8192, hash FDE3EF6A
+ sample 18:
+ time = 1650158
+ flags = 1
+ data = length 8192, hash 450F2C8B
+ sample 19:
+ time = 1743038
+ flags = 1
+ data = length 8192, hash 9D74782F
+ sample 20:
+ time = 1835918
+ flags = 1
+ data = length 8192, hash 3A421696
+ sample 21:
+ time = 1928798
+ flags = 1
+ data = length 6280, hash CD4EC54B
+ sample 22:
+ time = 2000000
+ flags = 1
+ data = length 8192, hash A7477920
+ sample 23:
+ time = 2092879
+ flags = 1
+ data = length 8192, hash 1AF0CDAE
+ sample 24:
+ time = 2185759
+ flags = 1
+ data = length 8192, hash 8F158715
+ sample 25:
+ time = 2278639
+ flags = 1
+ data = length 8192, hash 4787ED61
+ sample 26:
+ time = 2371519
+ flags = 1
+ data = length 8192, hash 8E96B0F9
+ sample 27:
+ time = 2464399
+ flags = 1
+ data = length 8192, hash B6BDD1BD
+ sample 28:
+ time = 2557278
+ flags = 536870913
+ data = length 6708, hash BF420F22
+tracksEnded = true