diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 105ed420a0..e7fd359e7f 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -26,6 +26,12 @@
* Extractors:
* Allow `Mp4Extractor` to identify H264 samples that are not used as
reference by subsequent samples.
+* DataSource:
+ * Update `HttpEngineDataSource` to allow use starting at version S
+ extension 7 instead of API level 34
+ ([#1262](https://github.com/androidx/media/issues/1262)).
+ * Allow `Mp4Extractor` and `FragmentedMp4Extractor` to identify H264
+ samples that are not used as reference by subsequent samples.
* Audio:
* Video:
* Text:
diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java
index e9a2d6ec3c..7b19c4bafc 100644
--- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java
+++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java
@@ -69,6 +69,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import java.util.UUID;
/** Extracts data from the FMP4 container format. */
@@ -87,7 +88,8 @@ public class FragmentedMp4Extractor implements Extractor {
/**
* Flags controlling the behavior of the extractor. Possible flag values are {@link
* #FLAG_WORKAROUND_EVERY_VIDEO_FRAME_IS_SYNC_FRAME}, {@link #FLAG_WORKAROUND_IGNORE_TFDT_BOX},
- * {@link #FLAG_ENABLE_EMSG_TRACK} and {@link #FLAG_WORKAROUND_IGNORE_EDIT_LISTS}.
+ * {@link #FLAG_ENABLE_EMSG_TRACK}, {@link #FLAG_WORKAROUND_IGNORE_EDIT_LISTS}, {@link
+ * #FLAG_EMIT_RAW_SUBTITLE_DATA} and {@link #FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES}.
*/
@Documented
@Retention(RetentionPolicy.SOURCE)
@@ -99,7 +101,8 @@ public class FragmentedMp4Extractor implements Extractor {
FLAG_WORKAROUND_IGNORE_TFDT_BOX,
FLAG_ENABLE_EMSG_TRACK,
FLAG_WORKAROUND_IGNORE_EDIT_LISTS,
- FLAG_EMIT_RAW_SUBTITLE_DATA
+ FLAG_EMIT_RAW_SUBTITLE_DATA,
+ FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES
})
public @interface Flags {}
@@ -130,6 +133,26 @@ public class FragmentedMp4Extractor implements Extractor {
*/
public static final int FLAG_EMIT_RAW_SUBTITLE_DATA = 1 << 5; // 32
+ /**
+ * 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 << 6; // 64
+
/**
* @deprecated Use {@link #newFactory(SubtitleParser.Factory)} instead.
*/
@@ -206,6 +229,7 @@ public class FragmentedMp4Extractor implements Extractor {
private int sampleSize;
private int sampleBytesWritten;
private int sampleCurrentNalBytesRemaining;
+ private boolean isSampleDependedOn;
private boolean processSeiNalUnitPayload;
// Outputs.
@@ -1507,6 +1531,13 @@ public class FragmentedMp4Extractor implements Extractor {
}
if (parserState == STATE_READING_SAMPLE_START) {
sampleSize = trackBundle.getCurrentSampleSize();
+ // We must check all NAL units in the Fragmented MP4 sample for dependencies.
+ // When FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES is unset, or codec is not supported,
+ // set isSampleDependedOn = true and skip parsing the payload bytes.
+ isSampleDependedOn =
+ (flags & FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES) == 0
+ || !Objects.equals(
+ trackBundle.moovSampleTable.track.format.sampleMimeType, MimeTypes.VIDEO_H264);
if (trackBundle.currentSampleIndex < trackBundle.firstSampleToOutputIndex) {
input.skipFully(sampleSize);
@@ -1579,6 +1610,12 @@ public class FragmentedMp4Extractor implements Extractor {
&& NalUnitUtil.isNalUnitSei(track.format.sampleMimeType, nalPrefixData[4]);
sampleBytesWritten += 5;
sampleSize += nalUnitLengthFieldLengthDiff;
+ if (!isSampleDependedOn
+ && Objects.equals(
+ trackBundle.moovSampleTable.track.format.sampleMimeType, MimeTypes.VIDEO_H264)
+ && NalUnitUtil.isH264NalUnitDependedOn(nalPrefixData[4])) {
+ isSampleDependedOn = true;
+ }
} else {
int writtenBytes;
if (processSeiNalUnitPayload) {
@@ -1623,6 +1660,9 @@ public class FragmentedMp4Extractor implements Extractor {
}
@C.BufferFlags int sampleFlags = trackBundle.getCurrentSampleFlags();
+ if ((flags & FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES) != 0 && !isSampleDependedOn) {
+ sampleFlags |= C.BUFFER_FLAG_NO_OTHER_SAMPLE_DEPENDS_ON_THIS;
+ }
// Encryption data.
@Nullable TrackOutput.CryptoData cryptoData = null;
diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java
index 95997d991f..9d324eff24 100644
--- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java
+++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorParameterizedTest.java
@@ -24,6 +24,7 @@ import androidx.media3.extractor.text.SubtitleParser;
import androidx.media3.test.utils.ExtractorAsserts;
import androidx.media3.test.utils.ExtractorAsserts.ExtractorFactory;
import com.google.common.collect.ImmutableList;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -40,12 +41,28 @@ import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class FragmentedMp4ExtractorParameterizedTest {
- @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;
}
@@ -56,22 +73,19 @@ public final class FragmentedMp4ExtractorParameterizedTest {
@Parameter(1)
public boolean subtitlesParsedDuringExtraction;
+ @Parameter(2)
+ public boolean readWithinGopSampleDependencies;
+
@Test
public void sample() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_fragmented.mp4");
}
@Test
public void sampleSeekable() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_fragmented_seekable.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_fragmented_seekable.mp4");
}
@Test
@@ -81,132 +95,115 @@ public final class FragmentedMp4ExtractorParameterizedTest {
Collections.singletonList(
new Format.Builder().setSampleMimeType(MimeTypes.APPLICATION_CEA608).build());
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(closedCaptions, subtitlesParsedDuringExtraction),
- "media/mp4/sample_fragmented_sei.mp4",
- simulationConfig);
+ assertExtractorBehavior(closedCaptions, "media/mp4/sample_fragmented_sei.mp4");
}
@Test
public void sampleWithAc3Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_ac3_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_ac3_fragmented.mp4");
}
@Test
public void sampleWithAc4Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_ac4_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_ac4_fragmented.mp4");
}
@Test
public void sampleWithProtectedAc4Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_ac4_protected.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_ac4_protected.mp4");
}
@Test
public void sampleWithEac3Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_eac3_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_eac3_fragmented.mp4");
}
@Test
public void sampleWithEac3jocTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_eac3joc_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_eac3joc_fragmented.mp4");
}
@Test
public void sampleWithOpusTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_opus_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_opus_fragmented.mp4");
}
@Test
public void samplePartiallyFragmented() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_partially_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(),
+ "media/mp4/sample_partially_fragmented.mp4");
}
/** https://github.com/google/ExoPlayer/issues/10381 */
@Test
public void sampleWithLargeBitrates() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_fragmented_large_bitrates.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(),
+ "media/mp4/sample_fragmented_large_bitrates.mp4");
}
@Test
public void sampleWithMhm1BlCicp1Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(),
+ "media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4");
}
@Test
public void sampleWithMhm1LcblCicp1Track() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(),
+ "media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4");
}
@Test
public void sampleWithMhm1BlConfigChangeTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_bl_configchange_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(),
+ "media/mp4/sample_mhm1_bl_configchange_fragmented.mp4");
}
@Test
public void sampleWithMhm1LcblConfigChangeTrack() throws Exception {
- ExtractorAsserts.assertBehavior(
- getExtractorFactory(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4",
- simulationConfig);
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(),
+ "media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4");
}
@Test
public void sampleWithIamfTrack() throws Exception {
+ assertExtractorBehavior(
+ /* closedCaptionFormats= */ ImmutableList.of(), "media/mp4/sample_fragmented_iamf.mp4");
+ }
+
+ private void assertExtractorBehavior(List closedCaptionFormats, 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(
- /* closedCaptionFormats= */ ImmutableList.of(), subtitlesParsedDuringExtraction),
- "media/mp4/sample_fragmented_iamf.mp4",
+ closedCaptionFormats, subtitlesParsedDuringExtraction, readWithinGopSampleDependencies),
+ file,
+ assertionConfigBuilder.build(),
simulationConfig);
}
private static ExtractorFactory getExtractorFactory(
- List closedCaptionFormats, boolean subtitlesParsedDuringExtraction) {
+ List closedCaptionFormats,
+ boolean subtitlesParsedDuringExtraction,
+ boolean readWithinGopSampleDependencies) {
SubtitleParser.Factory subtitleParserFactory;
@FragmentedMp4Extractor.Flags int flags;
if (subtitlesParsedDuringExtraction) {
@@ -216,11 +213,15 @@ public final class FragmentedMp4ExtractorParameterizedTest {
subtitleParserFactory = SubtitleParser.Factory.UNSUPPORTED;
flags = FLAG_EMIT_RAW_SUBTITLE_DATA;
}
+ if (readWithinGopSampleDependencies) {
+ flags |= FragmentedMp4Extractor.FLAG_READ_WITHIN_GOP_SAMPLE_DEPENDENCIES;
+ }
+ @FragmentedMp4Extractor.Flags int finalFlags = flags;
return () ->
new FragmentedMp4Extractor(
subtitleParserFactory,
- flags,
+ finalFlags,
/* timestampAdjuster= */ null,
/* sideloadedTrack= */ null,
closedCaptionFormats,
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..448e79e1fd
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,56 @@
+seekMap:
+ isSeekable = true
+ duration = 288000
+ getPosition(0) = [[timeUs=0, position=636]]
+ getPosition(1) = [[timeUs=0, position=636]]
+ getPosition(144000) = [[timeUs=0, position=636]]
+ getPosition(288000) = [[timeUs=0, position=636]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 13824
+ sample count = 9
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..4bcb712c34
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,44 @@
+seekMap:
+ isSeekable = true
+ duration = 288000
+ getPosition(0) = [[timeUs=0, position=636]]
+ getPosition(1) = [[timeUs=0, position=636]]
+ getPosition(144000) = [[timeUs=0, position=636]]
+ getPosition(288000) = [[timeUs=0, position=636]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 9216
+ sample count = 6
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..c03c03e6c0
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,32 @@
+seekMap:
+ isSeekable = true
+ duration = 288000
+ getPosition(0) = [[timeUs=0, position=636]]
+ getPosition(1) = [[timeUs=0, position=636]]
+ getPosition(144000) = [[timeUs=0, position=636]]
+ getPosition(288000) = [[timeUs=0, position=636]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 4608
+ sample count = 3
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..76738dd5b3
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,24 @@
+seekMap:
+ isSeekable = true
+ duration = 288000
+ getPosition(0) = [[timeUs=0, position=636]]
+ getPosition(1) = [[timeUs=0, position=636]]
+ getPosition(144000) = [[timeUs=0, position=636]]
+ getPosition(288000) = [[timeUs=0, position=636]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 1536
+ sample count = 1
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 256000
+ flags = 1
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..448e79e1fd
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,56 @@
+seekMap:
+ isSeekable = true
+ duration = 288000
+ getPosition(0) = [[timeUs=0, position=636]]
+ getPosition(1) = [[timeUs=0, position=636]]
+ getPosition(144000) = [[timeUs=0, position=636]]
+ getPosition(288000) = [[timeUs=0, position=636]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 13824
+ sample count = 9
+ format 0:
+ averageBitrate = 384000
+ peakBitrate = 384000
+ id = 1
+ sampleMimeType = audio/ac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 1536, hash AAD9FCD2
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..b2c54a9039
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,94 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=685]]
+ getPosition(1) = [[timeUs=0, position=685]]
+ getPosition(380000) = [[timeUs=0, position=685]]
+ getPosition(760000) = [[timeUs=0, position=685]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7613
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 367, hash D2762FA
+ sample 1:
+ time = 40000
+ flags = 1
+ data = length 367, hash BDD3224A
+ sample 2:
+ time = 80000
+ flags = 1
+ data = length 367, hash 9302227B
+ sample 3:
+ time = 120000
+ flags = 1
+ data = length 367, hash 72996003
+ sample 4:
+ time = 160000
+ flags = 1
+ data = length 367, hash 88AE5A1B
+ sample 5:
+ time = 200000
+ flags = 1
+ data = length 367, hash E5346FE3
+ sample 6:
+ time = 240000
+ flags = 1
+ data = length 367, hash CE558362
+ sample 7:
+ time = 280000
+ flags = 1
+ data = length 367, hash 51AD3043
+ sample 8:
+ time = 320000
+ flags = 1
+ data = length 367, hash EB72E95B
+ sample 9:
+ time = 360000
+ flags = 1
+ data = length 367, hash 47F8FF23
+ sample 10:
+ time = 400000
+ flags = 1
+ data = length 367, hash 8133883D
+ sample 11:
+ time = 440000
+ flags = 1
+ data = length 495, hash E14BDFEE
+ sample 12:
+ time = 480000
+ flags = 1
+ data = length 520, hash FEE56928
+ sample 13:
+ time = 520000
+ flags = 1
+ data = length 599, hash 41F496C5
+ sample 14:
+ time = 560000
+ flags = 1
+ data = length 436, hash 76D6404
+ sample 15:
+ time = 600000
+ flags = 1
+ data = length 366, hash 56D49D4D
+ sample 16:
+ time = 640000
+ flags = 1
+ data = length 393, hash 822FC8
+ sample 17:
+ time = 680000
+ flags = 1
+ data = length 374, hash FA8AE217
+ sample 18:
+ time = 720000
+ flags = 1
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..f8d4804fdb
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,70 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=685]]
+ getPosition(1) = [[timeUs=0, position=685]]
+ getPosition(380000) = [[timeUs=0, position=685]]
+ getPosition(760000) = [[timeUs=0, position=685]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 5411
+ sample count = 13
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 240000
+ flags = 1
+ data = length 367, hash CE558362
+ sample 1:
+ time = 280000
+ flags = 1
+ data = length 367, hash 51AD3043
+ sample 2:
+ time = 320000
+ flags = 1
+ data = length 367, hash EB72E95B
+ sample 3:
+ time = 360000
+ flags = 1
+ data = length 367, hash 47F8FF23
+ sample 4:
+ time = 400000
+ flags = 1
+ data = length 367, hash 8133883D
+ sample 5:
+ time = 440000
+ flags = 1
+ data = length 495, hash E14BDFEE
+ sample 6:
+ time = 480000
+ flags = 1
+ data = length 520, hash FEE56928
+ sample 7:
+ time = 520000
+ flags = 1
+ data = length 599, hash 41F496C5
+ sample 8:
+ time = 560000
+ flags = 1
+ data = length 436, hash 76D6404
+ sample 9:
+ time = 600000
+ flags = 1
+ data = length 366, hash 56D49D4D
+ sample 10:
+ time = 640000
+ flags = 1
+ data = length 393, hash 822FC8
+ sample 11:
+ time = 680000
+ flags = 1
+ data = length 374, hash FA8AE217
+ sample 12:
+ time = 720000
+ flags = 1
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..43751731c0
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,46 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=685]]
+ getPosition(1) = [[timeUs=0, position=685]]
+ getPosition(380000) = [[timeUs=0, position=685]]
+ getPosition(760000) = [[timeUs=0, position=685]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 3081
+ sample count = 7
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 480000
+ flags = 1
+ data = length 520, hash FEE56928
+ sample 1:
+ time = 520000
+ flags = 1
+ data = length 599, hash 41F496C5
+ sample 2:
+ time = 560000
+ flags = 1
+ data = length 436, hash 76D6404
+ sample 3:
+ time = 600000
+ flags = 1
+ data = length 366, hash 56D49D4D
+ sample 4:
+ time = 640000
+ flags = 1
+ data = length 393, hash 822FC8
+ sample 5:
+ time = 680000
+ flags = 1
+ data = length 374, hash FA8AE217
+ sample 6:
+ time = 720000
+ flags = 1
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..120dd66851
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,22 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=685]]
+ getPosition(1) = [[timeUs=0, position=685]]
+ getPosition(380000) = [[timeUs=0, position=685]]
+ getPosition(760000) = [[timeUs=0, position=685]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 393
+ sample count = 1
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 720000
+ flags = 1
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..b2c54a9039
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,94 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=685]]
+ getPosition(1) = [[timeUs=0, position=685]]
+ getPosition(380000) = [[timeUs=0, position=685]]
+ getPosition(760000) = [[timeUs=0, position=685]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7613
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 367, hash D2762FA
+ sample 1:
+ time = 40000
+ flags = 1
+ data = length 367, hash BDD3224A
+ sample 2:
+ time = 80000
+ flags = 1
+ data = length 367, hash 9302227B
+ sample 3:
+ time = 120000
+ flags = 1
+ data = length 367, hash 72996003
+ sample 4:
+ time = 160000
+ flags = 1
+ data = length 367, hash 88AE5A1B
+ sample 5:
+ time = 200000
+ flags = 1
+ data = length 367, hash E5346FE3
+ sample 6:
+ time = 240000
+ flags = 1
+ data = length 367, hash CE558362
+ sample 7:
+ time = 280000
+ flags = 1
+ data = length 367, hash 51AD3043
+ sample 8:
+ time = 320000
+ flags = 1
+ data = length 367, hash EB72E95B
+ sample 9:
+ time = 360000
+ flags = 1
+ data = length 367, hash 47F8FF23
+ sample 10:
+ time = 400000
+ flags = 1
+ data = length 367, hash 8133883D
+ sample 11:
+ time = 440000
+ flags = 1
+ data = length 495, hash E14BDFEE
+ sample 12:
+ time = 480000
+ flags = 1
+ data = length 520, hash FEE56928
+ sample 13:
+ time = 520000
+ flags = 1
+ data = length 599, hash 41F496C5
+ sample 14:
+ time = 560000
+ flags = 1
+ data = length 436, hash 76D6404
+ sample 15:
+ time = 600000
+ flags = 1
+ data = length 366, hash 56D49D4D
+ sample 16:
+ time = 640000
+ flags = 1
+ data = length 393, hash 822FC8
+ sample 17:
+ time = 680000
+ flags = 1
+ data = length 374, hash FA8AE217
+ sample 18:
+ time = 720000
+ flags = 1
+ data = length 393, hash 8506A1B
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..425e0f67e9
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,133 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=950]]
+ getPosition(1) = [[timeUs=0, position=950]]
+ getPosition(380000) = [[timeUs=0, position=950]]
+ getPosition(760000) = [[timeUs=0, position=950]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7936
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ drmInitData = -1683793742
+ sample 0:
+ time = 0
+ flags = 1073741825
+ data = length 384, hash 96EFFFF3
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 1:
+ time = 40000
+ flags = 1073741825
+ data = length 384, hash 899279C6
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 2:
+ time = 80000
+ flags = 1073741825
+ data = length 384, hash 9EA9F45
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 3:
+ time = 120000
+ flags = 1073741825
+ data = length 384, hash 82D362A9
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 4:
+ time = 160000
+ flags = 1073741825
+ data = length 384, hash B8705CFB
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 5:
+ time = 200000
+ flags = 1073741825
+ data = length 384, hash 58B5628E
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 6:
+ time = 240000
+ flags = 1073741825
+ data = length 384, hash 87F3C13B
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 7:
+ time = 280000
+ flags = 1073741825
+ data = length 384, hash 54333DC5
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 8:
+ time = 320000
+ flags = 1073741825
+ data = length 384, hash 1C49C4B3
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 9:
+ time = 360000
+ flags = 1073741825
+ data = length 384, hash 5FDC324F
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 10:
+ time = 400000
+ flags = 1073741825
+ data = length 384, hash B2A7F444
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 11:
+ time = 440000
+ flags = 1073741825
+ data = length 512, hash 5FD06C1E
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 12:
+ time = 480000
+ flags = 1073741825
+ data = length 537, hash 7ABBDCB
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 13:
+ time = 520000
+ flags = 1073741825
+ data = length 616, hash 3F657E23
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 14:
+ time = 560000
+ flags = 1073741825
+ data = length 453, hash 8FCF0529
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 15:
+ time = 600000
+ flags = 1073741825
+ data = length 383, hash 7F8C9E19
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 16:
+ time = 640000
+ flags = 1073741825
+ data = length 410, hash 3727858D
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 17:
+ time = 680000
+ flags = 1073741825
+ data = length 391, hash E2931212
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 18:
+ time = 720000
+ flags = 1073741825
+ data = length 410, hash 63017D46
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..64935a88ef
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,97 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=950]]
+ getPosition(1) = [[timeUs=0, position=950]]
+ getPosition(380000) = [[timeUs=0, position=950]]
+ getPosition(760000) = [[timeUs=0, position=950]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 5632
+ sample count = 13
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ drmInitData = -1683793742
+ sample 0:
+ time = 240000
+ flags = 1073741825
+ data = length 384, hash 87F3C13B
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 1:
+ time = 280000
+ flags = 1073741825
+ data = length 384, hash 54333DC5
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 2:
+ time = 320000
+ flags = 1073741825
+ data = length 384, hash 1C49C4B3
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 3:
+ time = 360000
+ flags = 1073741825
+ data = length 384, hash 5FDC324F
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 4:
+ time = 400000
+ flags = 1073741825
+ data = length 384, hash B2A7F444
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 5:
+ time = 440000
+ flags = 1073741825
+ data = length 512, hash 5FD06C1E
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 6:
+ time = 480000
+ flags = 1073741825
+ data = length 537, hash 7ABBDCB
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 7:
+ time = 520000
+ flags = 1073741825
+ data = length 616, hash 3F657E23
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 8:
+ time = 560000
+ flags = 1073741825
+ data = length 453, hash 8FCF0529
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 9:
+ time = 600000
+ flags = 1073741825
+ data = length 383, hash 7F8C9E19
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 10:
+ time = 640000
+ flags = 1073741825
+ data = length 410, hash 3727858D
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 11:
+ time = 680000
+ flags = 1073741825
+ data = length 391, hash E2931212
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 12:
+ time = 720000
+ flags = 1073741825
+ data = length 410, hash 63017D46
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..5fad73c5c5
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,61 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=950]]
+ getPosition(1) = [[timeUs=0, position=950]]
+ getPosition(380000) = [[timeUs=0, position=950]]
+ getPosition(760000) = [[timeUs=0, position=950]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 3200
+ sample count = 7
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ drmInitData = -1683793742
+ sample 0:
+ time = 480000
+ flags = 1073741825
+ data = length 537, hash 7ABBDCB
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 1:
+ time = 520000
+ flags = 1073741825
+ data = length 616, hash 3F657E23
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 2:
+ time = 560000
+ flags = 1073741825
+ data = length 453, hash 8FCF0529
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 3:
+ time = 600000
+ flags = 1073741825
+ data = length 383, hash 7F8C9E19
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 4:
+ time = 640000
+ flags = 1073741825
+ data = length 410, hash 3727858D
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 5:
+ time = 680000
+ flags = 1073741825
+ data = length 391, hash E2931212
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 6:
+ time = 720000
+ flags = 1073741825
+ data = length 410, hash 63017D46
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..3a857ff758
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,25 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=950]]
+ getPosition(1) = [[timeUs=0, position=950]]
+ getPosition(380000) = [[timeUs=0, position=950]]
+ getPosition(760000) = [[timeUs=0, position=950]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 410
+ sample count = 1
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ drmInitData = -1683793742
+ sample 0:
+ time = 720000
+ flags = 1073741825
+ data = length 410, hash 63017D46
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..425e0f67e9
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4_protected.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,133 @@
+seekMap:
+ isSeekable = true
+ duration = 760000
+ getPosition(0) = [[timeUs=0, position=950]]
+ getPosition(1) = [[timeUs=0, position=950]]
+ getPosition(380000) = [[timeUs=0, position=950]]
+ getPosition(760000) = [[timeUs=0, position=950]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 7936
+ sample count = 19
+ format 0:
+ id = 1
+ sampleMimeType = audio/ac4
+ channelCount = 2
+ sampleRate = 48000
+ language = und
+ drmInitData = -1683793742
+ sample 0:
+ time = 0
+ flags = 1073741825
+ data = length 384, hash 96EFFFF3
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 1:
+ time = 40000
+ flags = 1073741825
+ data = length 384, hash 899279C6
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 2:
+ time = 80000
+ flags = 1073741825
+ data = length 384, hash 9EA9F45
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 3:
+ time = 120000
+ flags = 1073741825
+ data = length 384, hash 82D362A9
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 4:
+ time = 160000
+ flags = 1073741825
+ data = length 384, hash B8705CFB
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 5:
+ time = 200000
+ flags = 1073741825
+ data = length 384, hash 58B5628E
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 6:
+ time = 240000
+ flags = 1073741825
+ data = length 384, hash 87F3C13B
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 7:
+ time = 280000
+ flags = 1073741825
+ data = length 384, hash 54333DC5
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 8:
+ time = 320000
+ flags = 1073741825
+ data = length 384, hash 1C49C4B3
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 9:
+ time = 360000
+ flags = 1073741825
+ data = length 384, hash 5FDC324F
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 10:
+ time = 400000
+ flags = 1073741825
+ data = length 384, hash B2A7F444
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 11:
+ time = 440000
+ flags = 1073741825
+ data = length 512, hash 5FD06C1E
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 12:
+ time = 480000
+ flags = 1073741825
+ data = length 537, hash 7ABBDCB
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 13:
+ time = 520000
+ flags = 1073741825
+ data = length 616, hash 3F657E23
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 14:
+ time = 560000
+ flags = 1073741825
+ data = length 453, hash 8FCF0529
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 15:
+ time = 600000
+ flags = 1073741825
+ data = length 383, hash 7F8C9E19
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 16:
+ time = 640000
+ flags = 1073741825
+ data = length 410, hash 3727858D
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 17:
+ time = 680000
+ flags = 1073741825
+ data = length 391, hash E2931212
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+ sample 18:
+ time = 720000
+ flags = 1073741825
+ data = length 410, hash 63017D46
+ crypto mode = 1
+ encryption key = length 16, hash 9FDDEA52
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..734051bb2d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,235 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=638]]
+ getPosition(1) = [[timeUs=0, position=638]]
+ getPosition(864000) = [[timeUs=0, position=638]]
+ getPosition(1728000) = [[timeUs=0, position=638]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 216000
+ sample count = 54
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..e33b92c7bc
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,163 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=638]]
+ getPosition(1) = [[timeUs=0, position=638]]
+ getPosition(864000) = [[timeUs=0, position=638]]
+ getPosition(1728000) = [[timeUs=0, position=638]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 144000
+ sample count = 36
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..a079fe334e
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,91 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=638]]
+ getPosition(1) = [[timeUs=0, position=638]]
+ getPosition(864000) = [[timeUs=0, position=638]]
+ getPosition(1728000) = [[timeUs=0, position=638]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 72000
+ sample count = 18
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..854d952ad8
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,23 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=638]]
+ getPosition(1) = [[timeUs=0, position=638]]
+ getPosition(864000) = [[timeUs=0, position=638]]
+ getPosition(1728000) = [[timeUs=0, position=638]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 4000
+ sample count = 1
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 1696000
+ flags = 1
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..734051bb2d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,235 @@
+seekMap:
+ isSeekable = true
+ duration = 1728000
+ getPosition(0) = [[timeUs=0, position=638]]
+ getPosition(1) = [[timeUs=0, position=638]]
+ getPosition(864000) = [[timeUs=0, position=638]]
+ getPosition(1728000) = [[timeUs=0, position=638]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 216000
+ sample count = 54
+ format 0:
+ peakBitrate = 1000000
+ id = 1
+ sampleMimeType = audio/eac3
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 4000, hash 4C987B7C
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..87930b0bfb
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,275 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=640]]
+ getPosition(1) = [[timeUs=0, position=640]]
+ getPosition(1024000) = [[timeUs=0, position=640]]
+ getPosition(2048000) = [[timeUs=0, position=640]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 163840
+ sample count = 64
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..e1aa764cfb
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,191 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=640]]
+ getPosition(1) = [[timeUs=0, position=640]]
+ getPosition(1024000) = [[timeUs=0, position=640]]
+ getPosition(2048000) = [[timeUs=0, position=640]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 110080
+ sample count = 43
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..c9f083805f
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,107 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=640]]
+ getPosition(1) = [[timeUs=0, position=640]]
+ getPosition(1024000) = [[timeUs=0, position=640]]
+ getPosition(2048000) = [[timeUs=0, position=640]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 56320
+ sample count = 22
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..a3875f612d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,23 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=640]]
+ getPosition(1) = [[timeUs=0, position=640]]
+ getPosition(1024000) = [[timeUs=0, position=640]]
+ getPosition(2048000) = [[timeUs=0, position=640]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2560
+ sample count = 1
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ sample 0:
+ time = 2016000
+ flags = 1
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..87930b0bfb
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,275 @@
+seekMap:
+ isSeekable = true
+ duration = 2048000
+ getPosition(0) = [[timeUs=0, position=640]]
+ getPosition(1) = [[timeUs=0, position=640]]
+ getPosition(1024000) = [[timeUs=0, position=640]]
+ getPosition(2048000) = [[timeUs=0, position=640]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 163840
+ sample count = 64
+ format 0:
+ peakBitrate = 640000
+ id = 1
+ sampleMimeType = audio/eac3-joc
+ channelCount = 6
+ sampleRate = 48000
+ language = und
+ 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 = 1
+ data = length 2560, hash EE4F848A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..839cb7aa25
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,339 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=1244]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..839cb7aa25
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,339 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=1244]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..8b1fd6f6db
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,520 @@
+seekMap:
+ isSeekable = true
+ duration = 500000
+ getPosition(0) = [[timeUs=0, position=776]]
+ getPosition(1) = [[timeUs=0, position=776]]
+ getPosition(250000) = [[timeUs=0, position=776]]
+ getPosition(500000) = [[timeUs=0, position=776]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 33375
+ sample count = 125
+ format 0:
+ id = 1
+ sampleMimeType = audio/iamf
+ channelCount = 0
+ sampleRate = 0
+ language = und
+ initializationData:
+ data = length 119, hash 5B2D6971
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 267, hash 256F07
+ sample 1:
+ time = 4000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 2:
+ time = 8000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 3:
+ time = 12000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 4:
+ time = 16000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 5:
+ time = 20000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 6:
+ time = 24000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 7:
+ time = 28000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 8:
+ time = 32000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 9:
+ time = 36000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 10:
+ time = 40000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 11:
+ time = 44000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 12:
+ time = 48000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 13:
+ time = 52000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 14:
+ time = 56000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 15:
+ time = 60000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 16:
+ time = 64000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 17:
+ time = 68000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 18:
+ time = 72000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 19:
+ time = 76000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 20:
+ time = 80000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 21:
+ time = 84000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 22:
+ time = 88000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 23:
+ time = 92000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 24:
+ time = 96000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 25:
+ time = 100000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 26:
+ time = 104000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 27:
+ time = 108000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 28:
+ time = 112000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 29:
+ time = 116000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 30:
+ time = 120000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 31:
+ time = 124000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 32:
+ time = 128000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 33:
+ time = 132000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 34:
+ time = 136000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 35:
+ time = 140000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 36:
+ time = 144000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 37:
+ time = 148000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 38:
+ time = 152000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 39:
+ time = 156000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 40:
+ time = 160000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 41:
+ time = 164000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 42:
+ time = 168000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 43:
+ time = 172000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 44:
+ time = 176000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 45:
+ time = 180000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 46:
+ time = 184000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 47:
+ time = 188000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 48:
+ time = 192000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 49:
+ time = 196000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 50:
+ time = 200000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 51:
+ time = 204000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 52:
+ time = 208000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 53:
+ time = 212000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 54:
+ time = 216000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 55:
+ time = 220000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 56:
+ time = 224000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 57:
+ time = 228000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 58:
+ time = 232000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 59:
+ time = 236000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 60:
+ time = 240000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 61:
+ time = 244000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 62:
+ time = 248000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 63:
+ time = 252000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 64:
+ time = 256000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 65:
+ time = 260000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 66:
+ time = 264000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 67:
+ time = 268000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 68:
+ time = 272000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 69:
+ time = 276000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 70:
+ time = 280000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 71:
+ time = 284000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 72:
+ time = 288000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 73:
+ time = 292000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 74:
+ time = 296000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 75:
+ time = 300000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 76:
+ time = 304000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 77:
+ time = 308000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 78:
+ time = 312000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 79:
+ time = 316000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 80:
+ time = 320000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 81:
+ time = 324000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 82:
+ time = 328000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 83:
+ time = 332000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 84:
+ time = 336000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 85:
+ time = 340000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 86:
+ time = 344000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 87:
+ time = 348000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 88:
+ time = 352000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 89:
+ time = 356000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 90:
+ time = 360000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 91:
+ time = 364000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 92:
+ time = 368000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 93:
+ time = 372000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 94:
+ time = 376000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 95:
+ time = 380000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 96:
+ time = 384000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 97:
+ time = 388000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 98:
+ time = 392000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 99:
+ time = 396000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 100:
+ time = 400000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 101:
+ time = 404000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 102:
+ time = 408000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 103:
+ time = 412000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 104:
+ time = 416000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 105:
+ time = 420000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 106:
+ time = 424000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 107:
+ time = 428000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 108:
+ time = 432000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 109:
+ time = 436000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 110:
+ time = 440000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 111:
+ time = 444000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 112:
+ time = 448000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 113:
+ time = 452000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 114:
+ time = 456000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 115:
+ time = 460000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 116:
+ time = 464000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 117:
+ time = 468000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 118:
+ time = 472000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 119:
+ time = 476000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 120:
+ time = 480000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 121:
+ time = 484000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 122:
+ time = 488000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 123:
+ time = 492000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 124:
+ time = 496000
+ flags = 1
+ data = length 267, hash B7B2DF07
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..995f8738c8
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,356 @@
+seekMap:
+ isSeekable = true
+ duration = 500000
+ getPosition(0) = [[timeUs=0, position=776]]
+ getPosition(1) = [[timeUs=0, position=776]]
+ getPosition(250000) = [[timeUs=0, position=776]]
+ getPosition(500000) = [[timeUs=0, position=776]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 22428
+ sample count = 84
+ format 0:
+ id = 1
+ sampleMimeType = audio/iamf
+ channelCount = 0
+ sampleRate = 0
+ language = und
+ initializationData:
+ data = length 119, hash 5B2D6971
+ sample 0:
+ time = 164000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 1:
+ time = 168000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 2:
+ time = 172000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 3:
+ time = 176000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 4:
+ time = 180000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 5:
+ time = 184000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 6:
+ time = 188000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 7:
+ time = 192000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 8:
+ time = 196000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 9:
+ time = 200000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 10:
+ time = 204000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 11:
+ time = 208000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 12:
+ time = 212000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 13:
+ time = 216000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 14:
+ time = 220000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 15:
+ time = 224000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 16:
+ time = 228000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 17:
+ time = 232000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 18:
+ time = 236000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 19:
+ time = 240000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 20:
+ time = 244000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 21:
+ time = 248000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 22:
+ time = 252000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 23:
+ time = 256000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 24:
+ time = 260000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 25:
+ time = 264000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 26:
+ time = 268000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 27:
+ time = 272000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 28:
+ time = 276000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 29:
+ time = 280000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 30:
+ time = 284000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 31:
+ time = 288000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 32:
+ time = 292000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 33:
+ time = 296000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 34:
+ time = 300000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 35:
+ time = 304000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 36:
+ time = 308000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 37:
+ time = 312000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 38:
+ time = 316000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 39:
+ time = 320000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 40:
+ time = 324000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 41:
+ time = 328000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 42:
+ time = 332000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 43:
+ time = 336000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 44:
+ time = 340000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 45:
+ time = 344000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 46:
+ time = 348000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 47:
+ time = 352000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 48:
+ time = 356000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 49:
+ time = 360000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 50:
+ time = 364000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 51:
+ time = 368000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 52:
+ time = 372000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 53:
+ time = 376000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 54:
+ time = 380000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 55:
+ time = 384000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 56:
+ time = 388000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 57:
+ time = 392000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 58:
+ time = 396000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 59:
+ time = 400000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 60:
+ time = 404000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 61:
+ time = 408000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 62:
+ time = 412000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 63:
+ time = 416000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 64:
+ time = 420000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 65:
+ time = 424000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 66:
+ time = 428000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 67:
+ time = 432000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 68:
+ time = 436000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 69:
+ time = 440000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 70:
+ time = 444000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 71:
+ time = 448000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 72:
+ time = 452000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 73:
+ time = 456000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 74:
+ time = 460000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 75:
+ time = 464000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 76:
+ time = 468000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 77:
+ time = 472000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 78:
+ time = 476000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 79:
+ time = 480000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 80:
+ time = 484000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 81:
+ time = 488000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 82:
+ time = 492000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 83:
+ time = 496000
+ flags = 1
+ data = length 267, hash B7B2DF07
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..ad7bcabc3d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,188 @@
+seekMap:
+ isSeekable = true
+ duration = 500000
+ getPosition(0) = [[timeUs=0, position=776]]
+ getPosition(1) = [[timeUs=0, position=776]]
+ getPosition(250000) = [[timeUs=0, position=776]]
+ getPosition(500000) = [[timeUs=0, position=776]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 11214
+ sample count = 42
+ format 0:
+ id = 1
+ sampleMimeType = audio/iamf
+ channelCount = 0
+ sampleRate = 0
+ language = und
+ initializationData:
+ data = length 119, hash 5B2D6971
+ sample 0:
+ time = 332000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 1:
+ time = 336000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 2:
+ time = 340000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 3:
+ time = 344000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 4:
+ time = 348000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 5:
+ time = 352000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 6:
+ time = 356000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 7:
+ time = 360000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 8:
+ time = 364000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 9:
+ time = 368000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 10:
+ time = 372000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 11:
+ time = 376000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 12:
+ time = 380000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 13:
+ time = 384000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 14:
+ time = 388000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 15:
+ time = 392000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 16:
+ time = 396000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 17:
+ time = 400000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 18:
+ time = 404000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 19:
+ time = 408000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 20:
+ time = 412000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 21:
+ time = 416000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 22:
+ time = 420000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 23:
+ time = 424000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 24:
+ time = 428000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 25:
+ time = 432000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 26:
+ time = 436000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 27:
+ time = 440000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 28:
+ time = 444000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 29:
+ time = 448000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 30:
+ time = 452000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 31:
+ time = 456000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 32:
+ time = 460000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 33:
+ time = 464000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 34:
+ time = 468000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 35:
+ time = 472000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 36:
+ time = 476000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 37:
+ time = 480000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 38:
+ time = 484000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 39:
+ time = 488000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 40:
+ time = 492000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 41:
+ time = 496000
+ flags = 1
+ data = length 267, hash B7B2DF07
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..4874194301
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,24 @@
+seekMap:
+ isSeekable = true
+ duration = 500000
+ getPosition(0) = [[timeUs=0, position=776]]
+ getPosition(1) = [[timeUs=0, position=776]]
+ getPosition(250000) = [[timeUs=0, position=776]]
+ getPosition(500000) = [[timeUs=0, position=776]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 267
+ sample count = 1
+ format 0:
+ id = 1
+ sampleMimeType = audio/iamf
+ channelCount = 0
+ sampleRate = 0
+ language = und
+ initializationData:
+ data = length 119, hash 5B2D6971
+ sample 0:
+ time = 496000
+ flags = 1
+ data = length 267, hash B7B2DF07
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..8b1fd6f6db
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_iamf.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,520 @@
+seekMap:
+ isSeekable = true
+ duration = 500000
+ getPosition(0) = [[timeUs=0, position=776]]
+ getPosition(1) = [[timeUs=0, position=776]]
+ getPosition(250000) = [[timeUs=0, position=776]]
+ getPosition(500000) = [[timeUs=0, position=776]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 33375
+ sample count = 125
+ format 0:
+ id = 1
+ sampleMimeType = audio/iamf
+ channelCount = 0
+ sampleRate = 0
+ language = und
+ initializationData:
+ data = length 119, hash 5B2D6971
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 267, hash 256F07
+ sample 1:
+ time = 4000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 2:
+ time = 8000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 3:
+ time = 12000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 4:
+ time = 16000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 5:
+ time = 20000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 6:
+ time = 24000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 7:
+ time = 28000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 8:
+ time = 32000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 9:
+ time = 36000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 10:
+ time = 40000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 11:
+ time = 44000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 12:
+ time = 48000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 13:
+ time = 52000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 14:
+ time = 56000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 15:
+ time = 60000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 16:
+ time = 64000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 17:
+ time = 68000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 18:
+ time = 72000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 19:
+ time = 76000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 20:
+ time = 80000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 21:
+ time = 84000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 22:
+ time = 88000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 23:
+ time = 92000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 24:
+ time = 96000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 25:
+ time = 100000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 26:
+ time = 104000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 27:
+ time = 108000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 28:
+ time = 112000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 29:
+ time = 116000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 30:
+ time = 120000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 31:
+ time = 124000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 32:
+ time = 128000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 33:
+ time = 132000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 34:
+ time = 136000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 35:
+ time = 140000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 36:
+ time = 144000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 37:
+ time = 148000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 38:
+ time = 152000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 39:
+ time = 156000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 40:
+ time = 160000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 41:
+ time = 164000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 42:
+ time = 168000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 43:
+ time = 172000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 44:
+ time = 176000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 45:
+ time = 180000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 46:
+ time = 184000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 47:
+ time = 188000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 48:
+ time = 192000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 49:
+ time = 196000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 50:
+ time = 200000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 51:
+ time = 204000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 52:
+ time = 208000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 53:
+ time = 212000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 54:
+ time = 216000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 55:
+ time = 220000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 56:
+ time = 224000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 57:
+ time = 228000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 58:
+ time = 232000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 59:
+ time = 236000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 60:
+ time = 240000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 61:
+ time = 244000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 62:
+ time = 248000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 63:
+ time = 252000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 64:
+ time = 256000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 65:
+ time = 260000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 66:
+ time = 264000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 67:
+ time = 268000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 68:
+ time = 272000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 69:
+ time = 276000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 70:
+ time = 280000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 71:
+ time = 284000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 72:
+ time = 288000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 73:
+ time = 292000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 74:
+ time = 296000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 75:
+ time = 300000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 76:
+ time = 304000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 77:
+ time = 308000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 78:
+ time = 312000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 79:
+ time = 316000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 80:
+ time = 320000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 81:
+ time = 324000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 82:
+ time = 328000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 83:
+ time = 332000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 84:
+ time = 336000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 85:
+ time = 340000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 86:
+ time = 344000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 87:
+ time = 348000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 88:
+ time = 352000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 89:
+ time = 356000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 90:
+ time = 360000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 91:
+ time = 364000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 92:
+ time = 368000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 93:
+ time = 372000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 94:
+ time = 376000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 95:
+ time = 380000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 96:
+ time = 384000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 97:
+ time = 388000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 98:
+ time = 392000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 99:
+ time = 396000
+ flags = 1
+ data = length 267, hash B7B2DF07
+ sample 100:
+ time = 400000
+ flags = 1
+ data = length 267, hash 256F07
+ sample 101:
+ time = 404000
+ flags = 1
+ data = length 267, hash AFD55288
+ sample 102:
+ time = 408000
+ flags = 1
+ data = length 267, hash 8AAA5F07
+ sample 103:
+ time = 412000
+ flags = 1
+ data = length 267, hash C0531D07
+ sample 104:
+ time = 416000
+ flags = 1
+ data = length 267, hash 1577888
+ sample 105:
+ time = 420000
+ flags = 1
+ data = length 267, hash 5DA1DF07
+ sample 106:
+ time = 424000
+ flags = 1
+ data = length 267, hash F4B8CB07
+ sample 107:
+ time = 428000
+ flags = 1
+ data = length 267, hash 76F19E88
+ sample 108:
+ time = 432000
+ flags = 1
+ data = length 267, hash 30995F07
+ sample 109:
+ time = 436000
+ flags = 1
+ data = length 267, hash 7D567907
+ sample 110:
+ time = 440000
+ flags = 1
+ data = length 267, hash 70A3C488
+ sample 111:
+ time = 444000
+ flags = 1
+ data = length 267, hash 390DF07
+ sample 112:
+ time = 448000
+ flags = 1
+ data = length 267, hash 3A2C2707
+ sample 113:
+ time = 452000
+ flags = 1
+ data = length 267, hash B4476F07
+ sample 114:
+ time = 456000
+ flags = 1
+ data = length 267, hash 52BCBA88
+ sample 115:
+ time = 460000
+ flags = 1
+ data = length 267, hash B39D507
+ sample 116:
+ time = 464000
+ flags = 1
+ data = length 267, hash 873EEF07
+ sample 117:
+ time = 468000
+ flags = 1
+ data = length 267, hash D3DEE088
+ sample 118:
+ time = 472000
+ flags = 1
+ data = length 267, hash D07F8307
+ sample 119:
+ time = 476000
+ flags = 1
+ data = length 267, hash 5A366F07
+ sample 120:
+ time = 480000
+ flags = 1
+ data = length 267, hash F9190688
+ sample 121:
+ time = 484000
+ flags = 1
+ data = length 267, hash 69FD3107
+ sample 122:
+ time = 488000
+ flags = 1
+ data = length 267, hash 2D2DEF07
+ sample 123:
+ time = 492000
+ flags = 1
+ data = length 267, hash 226B2C88
+ sample 124:
+ time = 496000
+ flags = 1
+ data = length 267, hash B7B2DF07
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..d6e5768056
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ averageBitrate = 2147483647
+ peakBitrate = 2147483647
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..de030671cf
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,283 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 13359
+ sample count = 31
+ format 0:
+ averageBitrate = 2147483647
+ peakBitrate = 2147483647
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 1:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 2:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 3:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 4:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 5:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 6:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 7:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 8:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 9:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 10:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 11:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 12:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 13:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 14:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 15:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 16:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 17:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 18:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 19:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 20:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 21:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 22:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 23:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 24:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 25:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 26:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 27:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 28:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 29:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 30:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..f55e9b9bf3
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,223 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 6804
+ sample count = 16
+ format 0:
+ averageBitrate = 2147483647
+ peakBitrate = 2147483647
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 1:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 2:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 3:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 4:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 5:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 6:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 7:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 8:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 9:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 10:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 11:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 12:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 13:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 14:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 15:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..7d9b45b2c7
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,163 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 10
+ sample count = 1
+ format 0:
+ averageBitrate = 2147483647
+ peakBitrate = 2147483647
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..d6e5768056
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ averageBitrate = 2147483647
+ peakBitrate = 2147483647
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..9fc225ebe9
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ averageBitrate = 136736
+ peakBitrate = 145976
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.1.dump
new file mode 100644
index 0000000000..52cf1812db
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.1.dump
@@ -0,0 +1,283 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 13359
+ sample count = 31
+ format 0:
+ averageBitrate = 136736
+ peakBitrate = 145976
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 1:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 2:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 3:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 4:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 5:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 6:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 7:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 8:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 9:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 10:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 11:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 12:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 13:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 14:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 15:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 16:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 17:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 18:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 19:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 20:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 21:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 22:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 23:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 24:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 25:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 26:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 27:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 28:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 29:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 30:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.2.dump
new file mode 100644
index 0000000000..614a0d98fa
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.2.dump
@@ -0,0 +1,223 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 6804
+ sample count = 16
+ format 0:
+ averageBitrate = 136736
+ peakBitrate = 145976
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 1:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 2:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 3:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 4:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 5:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 6:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 7:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 8:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 9:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 10:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 11:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 12:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 13:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 14:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 15:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.3.dump
new file mode 100644
index 0000000000..f466b98325
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.3.dump
@@ -0,0 +1,163 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 10
+ sample count = 1
+ format 0:
+ averageBitrate = 136736
+ peakBitrate = 145976
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..9fc225ebe9
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,343 @@
+seekMap:
+ isSeekable = true
+ duration = 1067733
+ getPosition(0) = [[timeUs=66733, position=1325]]
+ getPosition(1) = [[timeUs=66733, position=1325]]
+ getPosition(533866) = [[timeUs=66733, position=1325]]
+ getPosition(1067733) = [[timeUs=66733, position=1325]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ averageBitrate = 136736
+ peakBitrate = 145976
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..6f243807a0
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,344 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=1244]]
+numberOfTracks = 3
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+track 100:
+ total output bytes = 0
+ sample count = 0
+ format 0:
+ sampleMimeType = application/cea-608
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..6f243807a0
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,344 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=1244]]
+numberOfTracks = 3
+track 0:
+ total output bytes = 85933
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 38070, hash B58E1AEE
+ sample 1:
+ time = 200200
+ flags = 0
+ data = length 8340, hash 8AC449FF
+ sample 2:
+ time = 133466
+ flags = 0
+ data = length 1295, hash C0DA5090
+ sample 3:
+ time = 100100
+ flags = 67108864
+ data = length 469, hash D6E0A200
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 564, hash E5F56C5B
+ sample 5:
+ time = 333666
+ flags = 0
+ data = length 6075, hash 8756E49E
+ sample 6:
+ time = 266933
+ flags = 0
+ data = length 847, hash DCC2B618
+ sample 7:
+ time = 233566
+ flags = 67108864
+ data = length 455, hash B9CCE047
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 467, hash 69806D94
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4549, hash 3944F501
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1087, hash 491BF106
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 380, hash 5FED016A
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 455, hash 8A0610
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5190, hash B9031D8
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1071, hash 684E7DC8
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 653, hash 8494F326
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 485, hash 2CCC85F4
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4884, hash D16B6A96
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 997, hash 164FF210
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 640, hash F664125B
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 491, hash B5930C7C
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2989, hash 92CF4FCF
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 838, hash 294A3451
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 544, hash FCCE2DE6
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 329, hash A654FFA1
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1517, hash 5F7EBF8B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 803, hash 7A5C4C1D
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 415, hash B31BBC3B
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 415, hash 850DFEA3
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 619, hash AB5E56CA
+track 1:
+ total output bytes = 18257
+ sample count = 46
+ format 0:
+ peakBitrate = 200000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 18, hash 96519432
+ sample 1:
+ time = 23219
+ flags = 1
+ data = length 4, hash EE9DF
+ sample 2:
+ time = 46439
+ flags = 1
+ data = length 4, hash EEDBF
+ sample 3:
+ time = 69659
+ flags = 1
+ data = length 157, hash E2F078F4
+ sample 4:
+ time = 92879
+ flags = 1
+ data = length 371, hash B9471F94
+ sample 5:
+ time = 116099
+ flags = 1
+ data = length 373, hash 2AB265CB
+ sample 6:
+ time = 139319
+ flags = 1
+ data = length 402, hash 1295477C
+ sample 7:
+ time = 162539
+ flags = 1
+ data = length 455, hash 2D8146C8
+ sample 8:
+ time = 185759
+ flags = 1
+ data = length 434, hash F2C5D287
+ sample 9:
+ time = 208979
+ flags = 1
+ data = length 450, hash 84143FCD
+ sample 10:
+ time = 232199
+ flags = 1
+ data = length 429, hash EF769D50
+ sample 11:
+ time = 255419
+ flags = 1
+ data = length 450, hash EC3DE692
+ sample 12:
+ time = 278639
+ flags = 1
+ data = length 447, hash 3E519E13
+ sample 13:
+ time = 301859
+ flags = 1
+ data = length 457, hash 1E4F23A0
+ sample 14:
+ time = 325079
+ flags = 1
+ data = length 447, hash A439EA97
+ sample 15:
+ time = 348299
+ flags = 1
+ data = length 456, hash 1E9034C6
+ sample 16:
+ time = 371519
+ flags = 1
+ data = length 398, hash 99DB7345
+ sample 17:
+ time = 394739
+ flags = 1
+ data = length 474, hash 3F05F10A
+ sample 18:
+ time = 417959
+ flags = 1
+ data = length 416, hash C105EE09
+ sample 19:
+ time = 441179
+ flags = 1
+ data = length 454, hash 5FDBE458
+ sample 20:
+ time = 464399
+ flags = 1
+ data = length 438, hash 41A93AC3
+ sample 21:
+ time = 487619
+ flags = 1
+ data = length 443, hash 10FDA652
+ sample 22:
+ time = 510839
+ flags = 1
+ data = length 412, hash 1F791E25
+ sample 23:
+ time = 534058
+ flags = 1
+ data = length 482, hash A6D983D
+ sample 24:
+ time = 557278
+ flags = 1
+ data = length 386, hash BED7392F
+ sample 25:
+ time = 580498
+ flags = 1
+ data = length 463, hash 5309F8C9
+ sample 26:
+ time = 603718
+ flags = 1
+ data = length 394, hash 21C7321F
+ sample 27:
+ time = 626938
+ flags = 1
+ data = length 489, hash 71B4730D
+ sample 28:
+ time = 650158
+ flags = 1
+ data = length 403, hash D9C6DE89
+ sample 29:
+ time = 673378
+ flags = 1
+ data = length 447, hash 9B14B73B
+ sample 30:
+ time = 696598
+ flags = 1
+ data = length 439, hash 4760D35B
+ sample 31:
+ time = 719818
+ flags = 1
+ data = length 463, hash 1601F88D
+ sample 32:
+ time = 743038
+ flags = 1
+ data = length 423, hash D4AE6773
+ sample 33:
+ time = 766258
+ flags = 1
+ data = length 497, hash A3C674D3
+ sample 34:
+ time = 789478
+ flags = 1
+ data = length 419, hash D3734A1F
+ sample 35:
+ time = 812698
+ flags = 1
+ data = length 474, hash DFB41F9
+ sample 36:
+ time = 835918
+ flags = 1
+ data = length 413, hash 53E7CB9F
+ sample 37:
+ time = 859138
+ flags = 1
+ data = length 445, hash D15B0E39
+ sample 38:
+ time = 882358
+ flags = 1
+ data = length 453, hash 77ED81E4
+ sample 39:
+ time = 905578
+ flags = 1
+ data = length 545, hash 3321AEB9
+ sample 40:
+ time = 928798
+ flags = 1
+ data = length 317, hash F557D0E
+ sample 41:
+ time = 952018
+ flags = 1
+ data = length 537, hash ED58CF7B
+ sample 42:
+ time = 975238
+ flags = 1
+ data = length 458, hash 51CDAA10
+ sample 43:
+ time = 998458
+ flags = 1
+ data = length 465, hash CBA1EFD7
+ sample 44:
+ time = 1021678
+ flags = 1
+ data = length 446, hash D6735B8A
+ sample 45:
+ time = 1044897
+ flags = 1
+ data = length 10, hash A453EEBE
+track 100:
+ total output bytes = 0
+ sample count = 0
+ format 0:
+ sampleMimeType = application/cea-608
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..e91cd986d1
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,134 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=634]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 70, hash E441B6B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..e91cd986d1
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,134 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=634]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 70, hash E441B6B8
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..2ae108b09d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,366 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=638]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..2ae108b09d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,366 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=638]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.10
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..431719a58d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,135 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=647]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 70, hash CE3E092E
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..431719a58d
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,135 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=647]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 2837
+ sample count = 29
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 70, hash CE3E092E
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..fc7a4a1dd8
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,367 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=651]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..fc7a4a1dd8
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,367 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=651]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 38778
+ sample count = 87
+ format 0:
+ id = 1
+ sampleMimeType = audio/mhm1
+ codecs = mhm1.0B
+ channelCount = 0
+ sampleRate = 48000
+ language = und
+ 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 = 0
+ data = length 499, hash 9C5AEB9A
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..4f1fb74586
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,1019 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=564]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 81637
+ sample count = 250
+ format 0:
+ id = 1
+ sampleMimeType = audio/opus
+ channelCount = 2
+ sampleRate = 16000
+ language =
+ initializationData:
+ data = length 19, hash 4034F23B
+ data = length 8, hash 94446F01
+ data = length 8, hash 79C07075
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 326, hash ECC9FF90
+ sample 1:
+ time = 10000
+ flags = 1
+ data = length 326, hash B041EAAC
+ sample 2:
+ time = 20000
+ flags = 1
+ data = length 326, hash 3DBE1591
+ sample 3:
+ time = 30000
+ flags = 1
+ data = length 326, hash CE60149B
+ sample 4:
+ time = 40000
+ flags = 1
+ data = length 326, hash 6F04DA9
+ sample 5:
+ time = 50000
+ flags = 1
+ data = length 326, hash 4E221218
+ sample 6:
+ time = 60000
+ flags = 1
+ data = length 326, hash 659C80D8
+ sample 7:
+ time = 70000
+ flags = 1
+ data = length 326, hash E27BB70F
+ sample 8:
+ time = 80000
+ flags = 1
+ data = length 326, hash 3ACDE8E7
+ sample 9:
+ time = 90000
+ flags = 1
+ data = length 326, hash 1FFB9BDA
+ sample 10:
+ time = 100000
+ flags = 1
+ data = length 326, hash 133E65A0
+ sample 11:
+ time = 110000
+ flags = 1
+ data = length 326, hash 4216F22F
+ sample 12:
+ time = 120000
+ flags = 1
+ data = length 326, hash 9142C06
+ sample 13:
+ time = 130000
+ flags = 1
+ data = length 326, hash DF393C06
+ sample 14:
+ time = 140000
+ flags = 1
+ data = length 326, hash E062DBFA
+ sample 15:
+ time = 150000
+ flags = 1
+ data = length 326, hash 5342554C
+ sample 16:
+ time = 160000
+ flags = 1
+ data = length 326, hash 7FE3D513
+ sample 17:
+ time = 170000
+ flags = 1
+ data = length 326, hash A4961659
+ sample 18:
+ time = 180000
+ flags = 1
+ data = length 326, hash 1ADC8A22
+ sample 19:
+ time = 190000
+ flags = 1
+ data = length 326, hash 687C8DD5
+ sample 20:
+ time = 200000
+ flags = 1
+ data = length 326, hash B29283
+ sample 21:
+ time = 210000
+ flags = 1
+ data = length 326, hash 4D5CFDF4
+ sample 22:
+ time = 220000
+ flags = 1
+ data = length 326, hash D95E1184
+ sample 23:
+ time = 230000
+ flags = 1
+ data = length 326, hash 5FEDC88C
+ sample 24:
+ time = 240000
+ flags = 1
+ data = length 326, hash 33FAB6DC
+ sample 25:
+ time = 250000
+ flags = 1
+ data = length 326, hash CEAA63EC
+ sample 26:
+ time = 260000
+ flags = 1
+ data = length 326, hash E02FF364
+ sample 27:
+ time = 270000
+ flags = 1
+ data = length 326, hash E6E2E53F
+ sample 28:
+ time = 280000
+ flags = 1
+ data = length 326, hash 35154DBF
+ sample 29:
+ time = 290000
+ flags = 1
+ data = length 326, hash 595B194B
+ sample 30:
+ time = 300000
+ flags = 1
+ data = length 326, hash ADD13EB0
+ sample 31:
+ time = 310000
+ flags = 1
+ data = length 326, hash A3B2C3CF
+ sample 32:
+ time = 320000
+ flags = 1
+ data = length 326, hash A93847A3
+ sample 33:
+ time = 330000
+ flags = 1
+ data = length 326, hash F0E150D9
+ sample 34:
+ time = 340000
+ flags = 1
+ data = length 326, hash EB671D2B
+ sample 35:
+ time = 350000
+ flags = 1
+ data = length 326, hash A6D5875
+ sample 36:
+ time = 360000
+ flags = 1
+ data = length 326, hash A417F89D
+ sample 37:
+ time = 370000
+ flags = 1
+ data = length 326, hash BFDE9CD6
+ sample 38:
+ time = 380000
+ flags = 1
+ data = length 326, hash D6C5E0D9
+ sample 39:
+ time = 390000
+ flags = 1
+ data = length 326, hash 80BB14DB
+ sample 40:
+ time = 400000
+ flags = 1
+ data = length 326, hash 2E79E0D5
+ sample 41:
+ time = 410000
+ flags = 1
+ data = length 326, hash 8964BAB4
+ sample 42:
+ time = 420000
+ flags = 1
+ data = length 326, hash 4F439BE4
+ sample 43:
+ time = 430000
+ flags = 1
+ data = length 326, hash 92DBC089
+ sample 44:
+ time = 440000
+ flags = 1
+ data = length 326, hash 73614C9
+ sample 45:
+ time = 450000
+ flags = 1
+ data = length 326, hash 908631AA
+ sample 46:
+ time = 460000
+ flags = 1
+ data = length 326, hash ED49A6D4
+ sample 47:
+ time = 470000
+ flags = 1
+ data = length 326, hash B70E3393
+ sample 48:
+ time = 480000
+ flags = 1
+ data = length 326, hash 7D392160
+ sample 49:
+ time = 490000
+ flags = 1
+ data = length 326, hash 77957DEE
+ sample 50:
+ time = 500000
+ flags = 1
+ data = length 326, hash 42582970
+ sample 51:
+ time = 510000
+ flags = 1
+ data = length 326, hash BEEEECBE
+ sample 52:
+ time = 520000
+ flags = 1
+ data = length 326, hash 43BD23B8
+ sample 53:
+ time = 530000
+ flags = 1
+ data = length 326, hash A72E6AE9
+ sample 54:
+ time = 540000
+ flags = 1
+ data = length 326, hash 71A5E822
+ sample 55:
+ time = 550000
+ flags = 1
+ data = length 326, hash F0FCFB9E
+ sample 56:
+ time = 560000
+ flags = 1
+ data = length 326, hash 955628EC
+ sample 57:
+ time = 570000
+ flags = 1
+ data = length 326, hash 29EC8061
+ sample 58:
+ time = 580000
+ flags = 1
+ data = length 326, hash F4010F62
+ sample 59:
+ time = 590000
+ flags = 1
+ data = length 326, hash A0A3E80F
+ sample 60:
+ time = 600000
+ flags = 1
+ data = length 326, hash 87DB9495
+ sample 61:
+ time = 610000
+ flags = 1
+ data = length 326, hash 51012496
+ sample 62:
+ time = 620000
+ flags = 1
+ data = length 326, hash 8C8A5E6E
+ sample 63:
+ time = 630000
+ flags = 1
+ data = length 326, hash 61ECD20B
+ sample 64:
+ time = 640000
+ flags = 1
+ data = length 326, hash C8C6E306
+ sample 65:
+ time = 650000
+ flags = 1
+ data = length 327, hash A964C1EB
+ sample 66:
+ time = 660000
+ flags = 1
+ data = length 325, hash 752AE0E6
+ sample 67:
+ time = 670000
+ flags = 1
+ data = length 326, hash A823251B
+ sample 68:
+ time = 680000
+ flags = 1
+ data = length 326, hash 397840E0
+ sample 69:
+ time = 690000
+ flags = 1
+ data = length 326, hash 5913B4DA
+ sample 70:
+ time = 700000
+ flags = 1
+ data = length 326, hash BC5046E3
+ sample 71:
+ time = 710000
+ flags = 1
+ data = length 326, hash 77F42650
+ sample 72:
+ time = 720000
+ flags = 1
+ data = length 326, hash 2AF70D91
+ sample 73:
+ time = 730000
+ flags = 1
+ data = length 326, hash 7E736444
+ sample 74:
+ time = 740000
+ flags = 1
+ data = length 326, hash 74DE6BFC
+ sample 75:
+ time = 750000
+ flags = 1
+ data = length 326, hash C8D036DD
+ sample 76:
+ time = 760000
+ flags = 1
+ data = length 326, hash 85E61A08
+ sample 77:
+ time = 770000
+ flags = 1
+ data = length 326, hash 83C08838
+ sample 78:
+ time = 780000
+ flags = 1
+ data = length 326, hash 8C1F745A
+ sample 79:
+ time = 790000
+ flags = 1
+ data = length 326, hash 53097623
+ sample 80:
+ time = 800000
+ flags = 1
+ data = length 326, hash 5072DCD5
+ sample 81:
+ time = 810000
+ flags = 1
+ data = length 326, hash 865B8C61
+ sample 82:
+ time = 820000
+ flags = 1
+ data = length 326, hash C1D25AE1
+ sample 83:
+ time = 830000
+ flags = 1
+ data = length 326, hash DE2FA734
+ sample 84:
+ time = 840000
+ flags = 1
+ data = length 326, hash 134D37F4
+ sample 85:
+ time = 850000
+ flags = 1
+ data = length 326, hash BBAFEE2F
+ sample 86:
+ time = 860000
+ flags = 1
+ data = length 326, hash 44166A38
+ sample 87:
+ time = 870000
+ flags = 1
+ data = length 326, hash CE3592C0
+ sample 88:
+ time = 880000
+ flags = 1
+ data = length 326, hash 2F8BCB1B
+ sample 89:
+ time = 890000
+ flags = 1
+ data = length 326, hash 6EB0EE92
+ sample 90:
+ time = 900000
+ flags = 1
+ data = length 326, hash 26193E23
+ sample 91:
+ time = 910000
+ flags = 1
+ data = length 326, hash D9CC82FC
+ sample 92:
+ time = 920000
+ flags = 1
+ data = length 326, hash 72A71B6
+ sample 93:
+ time = 930000
+ flags = 1
+ data = length 326, hash 36D24EDA
+ sample 94:
+ time = 940000
+ flags = 1
+ data = length 326, hash 8CD8720A
+ sample 95:
+ time = 950000
+ flags = 1
+ data = length 326, hash 796DFD09
+ sample 96:
+ time = 960000
+ flags = 1
+ data = length 326, hash 2B300470
+ sample 97:
+ time = 970000
+ flags = 1
+ data = length 326, hash 5C224F72
+ sample 98:
+ time = 980000
+ flags = 1
+ data = length 326, hash DFCD788E
+ sample 99:
+ time = 990000
+ flags = 1
+ data = length 326, hash AD0EE96B
+ sample 100:
+ time = 1000000
+ flags = 1
+ data = length 336, hash 812F4581
+ sample 101:
+ time = 1010000
+ flags = 1
+ data = length 339, hash 7B767693
+ sample 102:
+ time = 1020000
+ flags = 1
+ data = length 335, hash 4D8D2DEA
+ sample 103:
+ time = 1030000
+ flags = 1
+ data = length 319, hash D6E65FC3
+ sample 104:
+ time = 1040000
+ flags = 1
+ data = length 337, hash 7EDAC403
+ sample 105:
+ time = 1050000
+ flags = 1
+ data = length 341, hash 9D6A1808
+ sample 106:
+ time = 1060000
+ flags = 1
+ data = length 321, hash C592CA8E
+ sample 107:
+ time = 1070000
+ flags = 1
+ data = length 315, hash 6F70ED6D
+ sample 108:
+ time = 1080000
+ flags = 1
+ data = length 303, hash 84BF23D4
+ sample 109:
+ time = 1090000
+ flags = 1
+ data = length 314, hash 6FF921D2
+ sample 110:
+ time = 1100000
+ flags = 1
+ data = length 326, hash C5CDBC78
+ sample 111:
+ time = 1110000
+ flags = 1
+ data = length 326, hash C1DC417A
+ sample 112:
+ time = 1120000
+ flags = 1
+ data = length 326, hash 1C12B6D8
+ sample 113:
+ time = 1130000
+ flags = 1
+ data = length 326, hash A7A8F4EF
+ sample 114:
+ time = 1140000
+ flags = 1
+ data = length 326, hash 46AF466
+ sample 115:
+ time = 1150000
+ flags = 1
+ data = length 326, hash 7DC33E91
+ sample 116:
+ time = 1160000
+ flags = 1
+ data = length 326, hash 14FD7EE3
+ sample 117:
+ time = 1170000
+ flags = 1
+ data = length 343, hash C81AA63
+ sample 118:
+ time = 1180000
+ flags = 1
+ data = length 337, hash 10348132
+ sample 119:
+ time = 1190000
+ flags = 1
+ data = length 324, hash 5039A7BF
+ sample 120:
+ time = 1200000
+ flags = 1
+ data = length 335, hash 7C13047E
+ sample 121:
+ time = 1210000
+ flags = 1
+ data = length 324, hash 86784B79
+ sample 122:
+ time = 1220000
+ flags = 1
+ data = length 358, hash 2F2E80E4
+ sample 123:
+ time = 1230000
+ flags = 1
+ data = length 345, hash B18584BD
+ sample 124:
+ time = 1240000
+ flags = 1
+ data = length 330, hash C817AA1A
+ sample 125:
+ time = 1250000
+ flags = 1
+ data = length 321, hash 4B1B165A
+ sample 126:
+ time = 1260000
+ flags = 1
+ data = length 336, hash 412253B8
+ sample 127:
+ time = 1270000
+ flags = 1
+ data = length 332, hash FD1EAC64
+ sample 128:
+ time = 1280000
+ flags = 1
+ data = length 334, hash 9E814A17
+ sample 129:
+ time = 1290000
+ flags = 1
+ data = length 321, hash 6A723041
+ sample 130:
+ time = 1300000
+ flags = 1
+ data = length 333, hash AF5E2A13
+ sample 131:
+ time = 1310000
+ flags = 1
+ data = length 332, hash C8DC1D61
+ sample 132:
+ time = 1320000
+ flags = 1
+ data = length 345, hash 269EDF4
+ sample 133:
+ time = 1330000
+ flags = 1
+ data = length 355, hash 14625CB5
+ sample 134:
+ time = 1340000
+ flags = 1
+ data = length 342, hash 6F45840D
+ sample 135:
+ time = 1350000
+ flags = 1
+ data = length 341, hash 72AEBC16
+ sample 136:
+ time = 1360000
+ flags = 1
+ data = length 317, hash 9F7FEC24
+ sample 137:
+ time = 1370000
+ flags = 1
+ data = length 349, hash 7CD57187
+ sample 138:
+ time = 1380000
+ flags = 1
+ data = length 345, hash 9CDC475E
+ sample 139:
+ time = 1390000
+ flags = 1
+ data = length 348, hash B73A1C36
+ sample 140:
+ time = 1400000
+ flags = 1
+ data = length 358, hash 37D19B
+ sample 141:
+ time = 1410000
+ flags = 1
+ data = length 350, hash 2238BB83
+ sample 142:
+ time = 1420000
+ flags = 1
+ data = length 334, hash 350DF51D
+ sample 143:
+ time = 1430000
+ flags = 1
+ data = length 338, hash 60CE5942
+ sample 144:
+ time = 1440000
+ flags = 1
+ data = length 317, hash 2DCBBC2F
+ sample 145:
+ time = 1450000
+ flags = 1
+ data = length 307, hash C67D43FB
+ sample 146:
+ time = 1460000
+ flags = 1
+ data = length 343, hash 807EBA32
+ sample 147:
+ time = 1470000
+ flags = 1
+ data = length 337, hash AD9764BE
+ sample 148:
+ time = 1480000
+ flags = 1
+ data = length 326, hash 5BBF2D25
+ sample 149:
+ time = 1490000
+ flags = 1
+ data = length 326, hash 2F0186AA
+ sample 150:
+ time = 1500000
+ flags = 1
+ data = length 326, hash 8550A008
+ sample 151:
+ time = 1510000
+ flags = 1
+ data = length 326, hash 548FBE7A
+ sample 152:
+ time = 1520000
+ flags = 1
+ data = length 326, hash 587D19C2
+ sample 153:
+ time = 1530000
+ flags = 1
+ data = length 326, hash BE3157BA
+ sample 154:
+ time = 1540000
+ flags = 1
+ data = length 326, hash CE358311
+ sample 155:
+ time = 1550000
+ flags = 1
+ data = length 326, hash 9F63610C
+ sample 156:
+ time = 1560000
+ flags = 1
+ data = length 326, hash 166C76E3
+ sample 157:
+ time = 1570000
+ flags = 1
+ data = length 324, hash DD8830DB
+ sample 158:
+ time = 1580000
+ flags = 1
+ data = length 328, hash 95BFDBE
+ sample 159:
+ time = 1590000
+ flags = 1
+ data = length 326, hash 859713E2
+ sample 160:
+ time = 1600000
+ flags = 1
+ data = length 326, hash A1D14AE4
+ sample 161:
+ time = 1610000
+ flags = 1
+ data = length 326, hash 3AD13AFC
+ sample 162:
+ time = 1620000
+ flags = 1
+ data = length 326, hash 3EACF164
+ sample 163:
+ time = 1630000
+ flags = 1
+ data = length 326, hash CF42F132
+ sample 164:
+ time = 1640000
+ flags = 1
+ data = length 326, hash A1CBE4F2
+ sample 165:
+ time = 1650000
+ flags = 1
+ data = length 326, hash D4EEE23E
+ sample 166:
+ time = 1660000
+ flags = 1
+ data = length 326, hash 6CF8758E
+ sample 167:
+ time = 1670000
+ flags = 1
+ data = length 326, hash DE1AECC0
+ sample 168:
+ time = 1680000
+ flags = 1
+ data = length 326, hash B41D28EC
+ sample 169:
+ time = 1690000
+ flags = 1
+ data = length 326, hash F67E91D9
+ sample 170:
+ time = 1700000
+ flags = 1
+ data = length 326, hash 7EE6CFF4
+ sample 171:
+ time = 1710000
+ flags = 1
+ data = length 326, hash D349B8F7
+ sample 172:
+ time = 1720000
+ flags = 1
+ data = length 326, hash 996EAE7
+ sample 173:
+ time = 1730000
+ flags = 1
+ data = length 326, hash BB666B7B
+ sample 174:
+ time = 1740000
+ flags = 1
+ data = length 326, hash DC59B61F
+ sample 175:
+ time = 1750000
+ flags = 1
+ data = length 326, hash ED75555F
+ sample 176:
+ time = 1760000
+ flags = 1
+ data = length 326, hash E934CD31
+ sample 177:
+ time = 1770000
+ flags = 1
+ data = length 326, hash C4A0F88D
+ sample 178:
+ time = 1780000
+ flags = 1
+ data = length 326, hash EF60D35
+ sample 179:
+ time = 1790000
+ flags = 1
+ data = length 326, hash 89D0C6FD
+ sample 180:
+ time = 1800000
+ flags = 1
+ data = length 326, hash A8065459
+ sample 181:
+ time = 1810000
+ flags = 1
+ data = length 319, hash DA5BE3EB
+ sample 182:
+ time = 1820000
+ flags = 1
+ data = length 301, hash 781565E7
+ sample 183:
+ time = 1830000
+ flags = 1
+ data = length 324, hash 453B347D
+ sample 184:
+ time = 1840000
+ flags = 1
+ data = length 344, hash AEFF20B2
+ sample 185:
+ time = 1850000
+ flags = 1
+ data = length 342, hash 98E8532B
+ sample 186:
+ time = 1860000
+ flags = 1
+ data = length 326, hash 56CD6CC3
+ sample 187:
+ time = 1870000
+ flags = 1
+ data = length 299, hash 8966DB
+ sample 188:
+ time = 1880000
+ flags = 1
+ data = length 295, hash 398A2974
+ sample 189:
+ time = 1890000
+ flags = 1
+ data = length 320, hash 3312D070
+ sample 190:
+ time = 1900000
+ flags = 1
+ data = length 338, hash BBCD81BA
+ sample 191:
+ time = 1910000
+ flags = 1
+ data = length 336, hash E0C58ECC
+ sample 192:
+ time = 1920000
+ flags = 1
+ data = length 325, hash AEF16A96
+ sample 193:
+ time = 1930000
+ flags = 1
+ data = length 350, hash 4C509E69
+ sample 194:
+ time = 1940000
+ flags = 1
+ data = length 344, hash DC402A4
+ sample 195:
+ time = 1950000
+ flags = 1
+ data = length 327, hash 1318C437
+ sample 196:
+ time = 1960000
+ flags = 1
+ data = length 316, hash A36FB835
+ sample 197:
+ time = 1970000
+ flags = 1
+ data = length 330, hash E2EFF591
+ sample 198:
+ time = 1980000
+ flags = 1
+ data = length 312, hash F67E05AF
+ sample 199:
+ time = 1990000
+ flags = 1
+ data = length 332, hash 93136C32
+ sample 200:
+ time = 2000000
+ flags = 1
+ data = length 340, hash 4AA7608A
+ sample 201:
+ time = 2010000
+ flags = 1
+ data = length 326, hash D3A44734
+ sample 202:
+ time = 2020000
+ flags = 1
+ data = length 323, hash 61A8A104
+ sample 203:
+ time = 2030000
+ flags = 1
+ data = length 317, hash 3C1D786D
+ sample 204:
+ time = 2040000
+ flags = 1
+ data = length 310, hash F5322F60
+ sample 205:
+ time = 2050000
+ flags = 1
+ data = length 320, hash 442CD2EC
+ sample 206:
+ time = 2060000
+ flags = 1
+ data = length 326, hash 76E93566
+ sample 207:
+ time = 2070000
+ flags = 1
+ data = length 360, hash F9977B24
+ sample 208:
+ time = 2080000
+ flags = 1
+ data = length 326, hash 1881F6EF
+ sample 209:
+ time = 2090000
+ flags = 1
+ data = length 326, hash D75687AB
+ sample 210:
+ time = 2100000
+ flags = 1
+ data = length 315, hash 533A1DA7
+ sample 211:
+ time = 2110000
+ flags = 1
+ data = length 304, hash 38E382E7
+ sample 212:
+ time = 2120000
+ flags = 1
+ data = length 328, hash 4C675814
+ sample 213:
+ time = 2130000
+ flags = 1
+ data = length 312, hash 1E1BDC5C
+ sample 214:
+ time = 2140000
+ flags = 1
+ data = length 298, hash C7456FFC
+ sample 215:
+ time = 2150000
+ flags = 1
+ data = length 293, hash 84FD8E23
+ sample 216:
+ time = 2160000
+ flags = 1
+ data = length 312, hash 4FC32BF6
+ sample 217:
+ time = 2170000
+ flags = 1
+ data = length 303, hash 908B7478
+ sample 218:
+ time = 2180000
+ flags = 1
+ data = length 316, hash 704860D
+ sample 219:
+ time = 2190000
+ flags = 1
+ data = length 328, hash B62E6465
+ sample 220:
+ time = 2200000
+ flags = 1
+ data = length 330, hash 5B6B17AE
+ sample 221:
+ time = 2210000
+ flags = 1
+ data = length 326, hash 87514738
+ sample 222:
+ time = 2220000
+ flags = 1
+ data = length 325, hash B0D3AA65
+ sample 223:
+ time = 2230000
+ flags = 1
+ data = length 344, hash D70C0C14
+ sample 224:
+ time = 2240000
+ flags = 1
+ data = length 359, hash E2416115
+ sample 225:
+ time = 2250000
+ flags = 1
+ data = length 353, hash 359E8F1D
+ sample 226:
+ time = 2260000
+ flags = 1
+ data = length 351, hash 89FFD6C8
+ sample 227:
+ time = 2270000
+ flags = 1
+ data = length 346, hash 6F4E6C8B
+ sample 228:
+ time = 2280000
+ flags = 1
+ data = length 341, hash 3DB3864B
+ sample 229:
+ time = 2290000
+ flags = 1
+ data = length 336, hash 82AEE005
+ sample 230:
+ time = 2300000
+ flags = 1
+ data = length 326, hash 8115A41A
+ sample 231:
+ time = 2310000
+ flags = 1
+ data = length 326, hash D7675B30
+ sample 232:
+ time = 2320000
+ flags = 1
+ data = length 326, hash 529C1134
+ sample 233:
+ time = 2330000
+ flags = 1
+ data = length 326, hash 30E917D7
+ sample 234:
+ time = 2340000
+ flags = 1
+ data = length 326, hash A0C5BBB5
+ sample 235:
+ time = 2350000
+ flags = 1
+ data = length 325, hash A1703C7F
+ sample 236:
+ time = 2360000
+ flags = 1
+ data = length 315, hash 443DC04E
+ sample 237:
+ time = 2370000
+ flags = 1
+ data = length 320, hash 3975FFC4
+ sample 238:
+ time = 2380000
+ flags = 1
+ data = length 324, hash 4F5CFD58
+ sample 239:
+ time = 2390000
+ flags = 1
+ data = length 321, hash BF9A6611
+ sample 240:
+ time = 2400000
+ flags = 1
+ data = length 330, hash B238370E
+ sample 241:
+ time = 2410000
+ flags = 1
+ data = length 321, hash 98A77876
+ sample 242:
+ time = 2420000
+ flags = 1
+ data = length 312, hash 3E6ACD6C
+ sample 243:
+ time = 2430000
+ flags = 1
+ data = length 318, hash FA97020A
+ sample 244:
+ time = 2440000
+ flags = 1
+ data = length 311, hash 8A101DFA
+ sample 245:
+ time = 2450000
+ flags = 1
+ data = length 310, hash C892E017
+ sample 246:
+ time = 2460000
+ flags = 1
+ data = length 306, hash C088A2D3
+ sample 247:
+ time = 2470000
+ flags = 1
+ data = length 292, hash 9C2757C6
+ sample 248:
+ time = 2480000
+ flags = 1
+ data = length 291, hash 656B9B94
+ sample 249:
+ time = 2490000
+ flags = 1
+ data = length 306, hash 18C812
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..4f1fb74586
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,1019 @@
+seekMap:
+ isSeekable = false
+ duration = UNSET TIME
+ getPosition(0) = [[timeUs=0, position=564]]
+numberOfTracks = 1
+track 0:
+ total output bytes = 81637
+ sample count = 250
+ format 0:
+ id = 1
+ sampleMimeType = audio/opus
+ channelCount = 2
+ sampleRate = 16000
+ language =
+ initializationData:
+ data = length 19, hash 4034F23B
+ data = length 8, hash 94446F01
+ data = length 8, hash 79C07075
+ sample 0:
+ time = 0
+ flags = 1
+ data = length 326, hash ECC9FF90
+ sample 1:
+ time = 10000
+ flags = 1
+ data = length 326, hash B041EAAC
+ sample 2:
+ time = 20000
+ flags = 1
+ data = length 326, hash 3DBE1591
+ sample 3:
+ time = 30000
+ flags = 1
+ data = length 326, hash CE60149B
+ sample 4:
+ time = 40000
+ flags = 1
+ data = length 326, hash 6F04DA9
+ sample 5:
+ time = 50000
+ flags = 1
+ data = length 326, hash 4E221218
+ sample 6:
+ time = 60000
+ flags = 1
+ data = length 326, hash 659C80D8
+ sample 7:
+ time = 70000
+ flags = 1
+ data = length 326, hash E27BB70F
+ sample 8:
+ time = 80000
+ flags = 1
+ data = length 326, hash 3ACDE8E7
+ sample 9:
+ time = 90000
+ flags = 1
+ data = length 326, hash 1FFB9BDA
+ sample 10:
+ time = 100000
+ flags = 1
+ data = length 326, hash 133E65A0
+ sample 11:
+ time = 110000
+ flags = 1
+ data = length 326, hash 4216F22F
+ sample 12:
+ time = 120000
+ flags = 1
+ data = length 326, hash 9142C06
+ sample 13:
+ time = 130000
+ flags = 1
+ data = length 326, hash DF393C06
+ sample 14:
+ time = 140000
+ flags = 1
+ data = length 326, hash E062DBFA
+ sample 15:
+ time = 150000
+ flags = 1
+ data = length 326, hash 5342554C
+ sample 16:
+ time = 160000
+ flags = 1
+ data = length 326, hash 7FE3D513
+ sample 17:
+ time = 170000
+ flags = 1
+ data = length 326, hash A4961659
+ sample 18:
+ time = 180000
+ flags = 1
+ data = length 326, hash 1ADC8A22
+ sample 19:
+ time = 190000
+ flags = 1
+ data = length 326, hash 687C8DD5
+ sample 20:
+ time = 200000
+ flags = 1
+ data = length 326, hash B29283
+ sample 21:
+ time = 210000
+ flags = 1
+ data = length 326, hash 4D5CFDF4
+ sample 22:
+ time = 220000
+ flags = 1
+ data = length 326, hash D95E1184
+ sample 23:
+ time = 230000
+ flags = 1
+ data = length 326, hash 5FEDC88C
+ sample 24:
+ time = 240000
+ flags = 1
+ data = length 326, hash 33FAB6DC
+ sample 25:
+ time = 250000
+ flags = 1
+ data = length 326, hash CEAA63EC
+ sample 26:
+ time = 260000
+ flags = 1
+ data = length 326, hash E02FF364
+ sample 27:
+ time = 270000
+ flags = 1
+ data = length 326, hash E6E2E53F
+ sample 28:
+ time = 280000
+ flags = 1
+ data = length 326, hash 35154DBF
+ sample 29:
+ time = 290000
+ flags = 1
+ data = length 326, hash 595B194B
+ sample 30:
+ time = 300000
+ flags = 1
+ data = length 326, hash ADD13EB0
+ sample 31:
+ time = 310000
+ flags = 1
+ data = length 326, hash A3B2C3CF
+ sample 32:
+ time = 320000
+ flags = 1
+ data = length 326, hash A93847A3
+ sample 33:
+ time = 330000
+ flags = 1
+ data = length 326, hash F0E150D9
+ sample 34:
+ time = 340000
+ flags = 1
+ data = length 326, hash EB671D2B
+ sample 35:
+ time = 350000
+ flags = 1
+ data = length 326, hash A6D5875
+ sample 36:
+ time = 360000
+ flags = 1
+ data = length 326, hash A417F89D
+ sample 37:
+ time = 370000
+ flags = 1
+ data = length 326, hash BFDE9CD6
+ sample 38:
+ time = 380000
+ flags = 1
+ data = length 326, hash D6C5E0D9
+ sample 39:
+ time = 390000
+ flags = 1
+ data = length 326, hash 80BB14DB
+ sample 40:
+ time = 400000
+ flags = 1
+ data = length 326, hash 2E79E0D5
+ sample 41:
+ time = 410000
+ flags = 1
+ data = length 326, hash 8964BAB4
+ sample 42:
+ time = 420000
+ flags = 1
+ data = length 326, hash 4F439BE4
+ sample 43:
+ time = 430000
+ flags = 1
+ data = length 326, hash 92DBC089
+ sample 44:
+ time = 440000
+ flags = 1
+ data = length 326, hash 73614C9
+ sample 45:
+ time = 450000
+ flags = 1
+ data = length 326, hash 908631AA
+ sample 46:
+ time = 460000
+ flags = 1
+ data = length 326, hash ED49A6D4
+ sample 47:
+ time = 470000
+ flags = 1
+ data = length 326, hash B70E3393
+ sample 48:
+ time = 480000
+ flags = 1
+ data = length 326, hash 7D392160
+ sample 49:
+ time = 490000
+ flags = 1
+ data = length 326, hash 77957DEE
+ sample 50:
+ time = 500000
+ flags = 1
+ data = length 326, hash 42582970
+ sample 51:
+ time = 510000
+ flags = 1
+ data = length 326, hash BEEEECBE
+ sample 52:
+ time = 520000
+ flags = 1
+ data = length 326, hash 43BD23B8
+ sample 53:
+ time = 530000
+ flags = 1
+ data = length 326, hash A72E6AE9
+ sample 54:
+ time = 540000
+ flags = 1
+ data = length 326, hash 71A5E822
+ sample 55:
+ time = 550000
+ flags = 1
+ data = length 326, hash F0FCFB9E
+ sample 56:
+ time = 560000
+ flags = 1
+ data = length 326, hash 955628EC
+ sample 57:
+ time = 570000
+ flags = 1
+ data = length 326, hash 29EC8061
+ sample 58:
+ time = 580000
+ flags = 1
+ data = length 326, hash F4010F62
+ sample 59:
+ time = 590000
+ flags = 1
+ data = length 326, hash A0A3E80F
+ sample 60:
+ time = 600000
+ flags = 1
+ data = length 326, hash 87DB9495
+ sample 61:
+ time = 610000
+ flags = 1
+ data = length 326, hash 51012496
+ sample 62:
+ time = 620000
+ flags = 1
+ data = length 326, hash 8C8A5E6E
+ sample 63:
+ time = 630000
+ flags = 1
+ data = length 326, hash 61ECD20B
+ sample 64:
+ time = 640000
+ flags = 1
+ data = length 326, hash C8C6E306
+ sample 65:
+ time = 650000
+ flags = 1
+ data = length 327, hash A964C1EB
+ sample 66:
+ time = 660000
+ flags = 1
+ data = length 325, hash 752AE0E6
+ sample 67:
+ time = 670000
+ flags = 1
+ data = length 326, hash A823251B
+ sample 68:
+ time = 680000
+ flags = 1
+ data = length 326, hash 397840E0
+ sample 69:
+ time = 690000
+ flags = 1
+ data = length 326, hash 5913B4DA
+ sample 70:
+ time = 700000
+ flags = 1
+ data = length 326, hash BC5046E3
+ sample 71:
+ time = 710000
+ flags = 1
+ data = length 326, hash 77F42650
+ sample 72:
+ time = 720000
+ flags = 1
+ data = length 326, hash 2AF70D91
+ sample 73:
+ time = 730000
+ flags = 1
+ data = length 326, hash 7E736444
+ sample 74:
+ time = 740000
+ flags = 1
+ data = length 326, hash 74DE6BFC
+ sample 75:
+ time = 750000
+ flags = 1
+ data = length 326, hash C8D036DD
+ sample 76:
+ time = 760000
+ flags = 1
+ data = length 326, hash 85E61A08
+ sample 77:
+ time = 770000
+ flags = 1
+ data = length 326, hash 83C08838
+ sample 78:
+ time = 780000
+ flags = 1
+ data = length 326, hash 8C1F745A
+ sample 79:
+ time = 790000
+ flags = 1
+ data = length 326, hash 53097623
+ sample 80:
+ time = 800000
+ flags = 1
+ data = length 326, hash 5072DCD5
+ sample 81:
+ time = 810000
+ flags = 1
+ data = length 326, hash 865B8C61
+ sample 82:
+ time = 820000
+ flags = 1
+ data = length 326, hash C1D25AE1
+ sample 83:
+ time = 830000
+ flags = 1
+ data = length 326, hash DE2FA734
+ sample 84:
+ time = 840000
+ flags = 1
+ data = length 326, hash 134D37F4
+ sample 85:
+ time = 850000
+ flags = 1
+ data = length 326, hash BBAFEE2F
+ sample 86:
+ time = 860000
+ flags = 1
+ data = length 326, hash 44166A38
+ sample 87:
+ time = 870000
+ flags = 1
+ data = length 326, hash CE3592C0
+ sample 88:
+ time = 880000
+ flags = 1
+ data = length 326, hash 2F8BCB1B
+ sample 89:
+ time = 890000
+ flags = 1
+ data = length 326, hash 6EB0EE92
+ sample 90:
+ time = 900000
+ flags = 1
+ data = length 326, hash 26193E23
+ sample 91:
+ time = 910000
+ flags = 1
+ data = length 326, hash D9CC82FC
+ sample 92:
+ time = 920000
+ flags = 1
+ data = length 326, hash 72A71B6
+ sample 93:
+ time = 930000
+ flags = 1
+ data = length 326, hash 36D24EDA
+ sample 94:
+ time = 940000
+ flags = 1
+ data = length 326, hash 8CD8720A
+ sample 95:
+ time = 950000
+ flags = 1
+ data = length 326, hash 796DFD09
+ sample 96:
+ time = 960000
+ flags = 1
+ data = length 326, hash 2B300470
+ sample 97:
+ time = 970000
+ flags = 1
+ data = length 326, hash 5C224F72
+ sample 98:
+ time = 980000
+ flags = 1
+ data = length 326, hash DFCD788E
+ sample 99:
+ time = 990000
+ flags = 1
+ data = length 326, hash AD0EE96B
+ sample 100:
+ time = 1000000
+ flags = 1
+ data = length 336, hash 812F4581
+ sample 101:
+ time = 1010000
+ flags = 1
+ data = length 339, hash 7B767693
+ sample 102:
+ time = 1020000
+ flags = 1
+ data = length 335, hash 4D8D2DEA
+ sample 103:
+ time = 1030000
+ flags = 1
+ data = length 319, hash D6E65FC3
+ sample 104:
+ time = 1040000
+ flags = 1
+ data = length 337, hash 7EDAC403
+ sample 105:
+ time = 1050000
+ flags = 1
+ data = length 341, hash 9D6A1808
+ sample 106:
+ time = 1060000
+ flags = 1
+ data = length 321, hash C592CA8E
+ sample 107:
+ time = 1070000
+ flags = 1
+ data = length 315, hash 6F70ED6D
+ sample 108:
+ time = 1080000
+ flags = 1
+ data = length 303, hash 84BF23D4
+ sample 109:
+ time = 1090000
+ flags = 1
+ data = length 314, hash 6FF921D2
+ sample 110:
+ time = 1100000
+ flags = 1
+ data = length 326, hash C5CDBC78
+ sample 111:
+ time = 1110000
+ flags = 1
+ data = length 326, hash C1DC417A
+ sample 112:
+ time = 1120000
+ flags = 1
+ data = length 326, hash 1C12B6D8
+ sample 113:
+ time = 1130000
+ flags = 1
+ data = length 326, hash A7A8F4EF
+ sample 114:
+ time = 1140000
+ flags = 1
+ data = length 326, hash 46AF466
+ sample 115:
+ time = 1150000
+ flags = 1
+ data = length 326, hash 7DC33E91
+ sample 116:
+ time = 1160000
+ flags = 1
+ data = length 326, hash 14FD7EE3
+ sample 117:
+ time = 1170000
+ flags = 1
+ data = length 343, hash C81AA63
+ sample 118:
+ time = 1180000
+ flags = 1
+ data = length 337, hash 10348132
+ sample 119:
+ time = 1190000
+ flags = 1
+ data = length 324, hash 5039A7BF
+ sample 120:
+ time = 1200000
+ flags = 1
+ data = length 335, hash 7C13047E
+ sample 121:
+ time = 1210000
+ flags = 1
+ data = length 324, hash 86784B79
+ sample 122:
+ time = 1220000
+ flags = 1
+ data = length 358, hash 2F2E80E4
+ sample 123:
+ time = 1230000
+ flags = 1
+ data = length 345, hash B18584BD
+ sample 124:
+ time = 1240000
+ flags = 1
+ data = length 330, hash C817AA1A
+ sample 125:
+ time = 1250000
+ flags = 1
+ data = length 321, hash 4B1B165A
+ sample 126:
+ time = 1260000
+ flags = 1
+ data = length 336, hash 412253B8
+ sample 127:
+ time = 1270000
+ flags = 1
+ data = length 332, hash FD1EAC64
+ sample 128:
+ time = 1280000
+ flags = 1
+ data = length 334, hash 9E814A17
+ sample 129:
+ time = 1290000
+ flags = 1
+ data = length 321, hash 6A723041
+ sample 130:
+ time = 1300000
+ flags = 1
+ data = length 333, hash AF5E2A13
+ sample 131:
+ time = 1310000
+ flags = 1
+ data = length 332, hash C8DC1D61
+ sample 132:
+ time = 1320000
+ flags = 1
+ data = length 345, hash 269EDF4
+ sample 133:
+ time = 1330000
+ flags = 1
+ data = length 355, hash 14625CB5
+ sample 134:
+ time = 1340000
+ flags = 1
+ data = length 342, hash 6F45840D
+ sample 135:
+ time = 1350000
+ flags = 1
+ data = length 341, hash 72AEBC16
+ sample 136:
+ time = 1360000
+ flags = 1
+ data = length 317, hash 9F7FEC24
+ sample 137:
+ time = 1370000
+ flags = 1
+ data = length 349, hash 7CD57187
+ sample 138:
+ time = 1380000
+ flags = 1
+ data = length 345, hash 9CDC475E
+ sample 139:
+ time = 1390000
+ flags = 1
+ data = length 348, hash B73A1C36
+ sample 140:
+ time = 1400000
+ flags = 1
+ data = length 358, hash 37D19B
+ sample 141:
+ time = 1410000
+ flags = 1
+ data = length 350, hash 2238BB83
+ sample 142:
+ time = 1420000
+ flags = 1
+ data = length 334, hash 350DF51D
+ sample 143:
+ time = 1430000
+ flags = 1
+ data = length 338, hash 60CE5942
+ sample 144:
+ time = 1440000
+ flags = 1
+ data = length 317, hash 2DCBBC2F
+ sample 145:
+ time = 1450000
+ flags = 1
+ data = length 307, hash C67D43FB
+ sample 146:
+ time = 1460000
+ flags = 1
+ data = length 343, hash 807EBA32
+ sample 147:
+ time = 1470000
+ flags = 1
+ data = length 337, hash AD9764BE
+ sample 148:
+ time = 1480000
+ flags = 1
+ data = length 326, hash 5BBF2D25
+ sample 149:
+ time = 1490000
+ flags = 1
+ data = length 326, hash 2F0186AA
+ sample 150:
+ time = 1500000
+ flags = 1
+ data = length 326, hash 8550A008
+ sample 151:
+ time = 1510000
+ flags = 1
+ data = length 326, hash 548FBE7A
+ sample 152:
+ time = 1520000
+ flags = 1
+ data = length 326, hash 587D19C2
+ sample 153:
+ time = 1530000
+ flags = 1
+ data = length 326, hash BE3157BA
+ sample 154:
+ time = 1540000
+ flags = 1
+ data = length 326, hash CE358311
+ sample 155:
+ time = 1550000
+ flags = 1
+ data = length 326, hash 9F63610C
+ sample 156:
+ time = 1560000
+ flags = 1
+ data = length 326, hash 166C76E3
+ sample 157:
+ time = 1570000
+ flags = 1
+ data = length 324, hash DD8830DB
+ sample 158:
+ time = 1580000
+ flags = 1
+ data = length 328, hash 95BFDBE
+ sample 159:
+ time = 1590000
+ flags = 1
+ data = length 326, hash 859713E2
+ sample 160:
+ time = 1600000
+ flags = 1
+ data = length 326, hash A1D14AE4
+ sample 161:
+ time = 1610000
+ flags = 1
+ data = length 326, hash 3AD13AFC
+ sample 162:
+ time = 1620000
+ flags = 1
+ data = length 326, hash 3EACF164
+ sample 163:
+ time = 1630000
+ flags = 1
+ data = length 326, hash CF42F132
+ sample 164:
+ time = 1640000
+ flags = 1
+ data = length 326, hash A1CBE4F2
+ sample 165:
+ time = 1650000
+ flags = 1
+ data = length 326, hash D4EEE23E
+ sample 166:
+ time = 1660000
+ flags = 1
+ data = length 326, hash 6CF8758E
+ sample 167:
+ time = 1670000
+ flags = 1
+ data = length 326, hash DE1AECC0
+ sample 168:
+ time = 1680000
+ flags = 1
+ data = length 326, hash B41D28EC
+ sample 169:
+ time = 1690000
+ flags = 1
+ data = length 326, hash F67E91D9
+ sample 170:
+ time = 1700000
+ flags = 1
+ data = length 326, hash 7EE6CFF4
+ sample 171:
+ time = 1710000
+ flags = 1
+ data = length 326, hash D349B8F7
+ sample 172:
+ time = 1720000
+ flags = 1
+ data = length 326, hash 996EAE7
+ sample 173:
+ time = 1730000
+ flags = 1
+ data = length 326, hash BB666B7B
+ sample 174:
+ time = 1740000
+ flags = 1
+ data = length 326, hash DC59B61F
+ sample 175:
+ time = 1750000
+ flags = 1
+ data = length 326, hash ED75555F
+ sample 176:
+ time = 1760000
+ flags = 1
+ data = length 326, hash E934CD31
+ sample 177:
+ time = 1770000
+ flags = 1
+ data = length 326, hash C4A0F88D
+ sample 178:
+ time = 1780000
+ flags = 1
+ data = length 326, hash EF60D35
+ sample 179:
+ time = 1790000
+ flags = 1
+ data = length 326, hash 89D0C6FD
+ sample 180:
+ time = 1800000
+ flags = 1
+ data = length 326, hash A8065459
+ sample 181:
+ time = 1810000
+ flags = 1
+ data = length 319, hash DA5BE3EB
+ sample 182:
+ time = 1820000
+ flags = 1
+ data = length 301, hash 781565E7
+ sample 183:
+ time = 1830000
+ flags = 1
+ data = length 324, hash 453B347D
+ sample 184:
+ time = 1840000
+ flags = 1
+ data = length 344, hash AEFF20B2
+ sample 185:
+ time = 1850000
+ flags = 1
+ data = length 342, hash 98E8532B
+ sample 186:
+ time = 1860000
+ flags = 1
+ data = length 326, hash 56CD6CC3
+ sample 187:
+ time = 1870000
+ flags = 1
+ data = length 299, hash 8966DB
+ sample 188:
+ time = 1880000
+ flags = 1
+ data = length 295, hash 398A2974
+ sample 189:
+ time = 1890000
+ flags = 1
+ data = length 320, hash 3312D070
+ sample 190:
+ time = 1900000
+ flags = 1
+ data = length 338, hash BBCD81BA
+ sample 191:
+ time = 1910000
+ flags = 1
+ data = length 336, hash E0C58ECC
+ sample 192:
+ time = 1920000
+ flags = 1
+ data = length 325, hash AEF16A96
+ sample 193:
+ time = 1930000
+ flags = 1
+ data = length 350, hash 4C509E69
+ sample 194:
+ time = 1940000
+ flags = 1
+ data = length 344, hash DC402A4
+ sample 195:
+ time = 1950000
+ flags = 1
+ data = length 327, hash 1318C437
+ sample 196:
+ time = 1960000
+ flags = 1
+ data = length 316, hash A36FB835
+ sample 197:
+ time = 1970000
+ flags = 1
+ data = length 330, hash E2EFF591
+ sample 198:
+ time = 1980000
+ flags = 1
+ data = length 312, hash F67E05AF
+ sample 199:
+ time = 1990000
+ flags = 1
+ data = length 332, hash 93136C32
+ sample 200:
+ time = 2000000
+ flags = 1
+ data = length 340, hash 4AA7608A
+ sample 201:
+ time = 2010000
+ flags = 1
+ data = length 326, hash D3A44734
+ sample 202:
+ time = 2020000
+ flags = 1
+ data = length 323, hash 61A8A104
+ sample 203:
+ time = 2030000
+ flags = 1
+ data = length 317, hash 3C1D786D
+ sample 204:
+ time = 2040000
+ flags = 1
+ data = length 310, hash F5322F60
+ sample 205:
+ time = 2050000
+ flags = 1
+ data = length 320, hash 442CD2EC
+ sample 206:
+ time = 2060000
+ flags = 1
+ data = length 326, hash 76E93566
+ sample 207:
+ time = 2070000
+ flags = 1
+ data = length 360, hash F9977B24
+ sample 208:
+ time = 2080000
+ flags = 1
+ data = length 326, hash 1881F6EF
+ sample 209:
+ time = 2090000
+ flags = 1
+ data = length 326, hash D75687AB
+ sample 210:
+ time = 2100000
+ flags = 1
+ data = length 315, hash 533A1DA7
+ sample 211:
+ time = 2110000
+ flags = 1
+ data = length 304, hash 38E382E7
+ sample 212:
+ time = 2120000
+ flags = 1
+ data = length 328, hash 4C675814
+ sample 213:
+ time = 2130000
+ flags = 1
+ data = length 312, hash 1E1BDC5C
+ sample 214:
+ time = 2140000
+ flags = 1
+ data = length 298, hash C7456FFC
+ sample 215:
+ time = 2150000
+ flags = 1
+ data = length 293, hash 84FD8E23
+ sample 216:
+ time = 2160000
+ flags = 1
+ data = length 312, hash 4FC32BF6
+ sample 217:
+ time = 2170000
+ flags = 1
+ data = length 303, hash 908B7478
+ sample 218:
+ time = 2180000
+ flags = 1
+ data = length 316, hash 704860D
+ sample 219:
+ time = 2190000
+ flags = 1
+ data = length 328, hash B62E6465
+ sample 220:
+ time = 2200000
+ flags = 1
+ data = length 330, hash 5B6B17AE
+ sample 221:
+ time = 2210000
+ flags = 1
+ data = length 326, hash 87514738
+ sample 222:
+ time = 2220000
+ flags = 1
+ data = length 325, hash B0D3AA65
+ sample 223:
+ time = 2230000
+ flags = 1
+ data = length 344, hash D70C0C14
+ sample 224:
+ time = 2240000
+ flags = 1
+ data = length 359, hash E2416115
+ sample 225:
+ time = 2250000
+ flags = 1
+ data = length 353, hash 359E8F1D
+ sample 226:
+ time = 2260000
+ flags = 1
+ data = length 351, hash 89FFD6C8
+ sample 227:
+ time = 2270000
+ flags = 1
+ data = length 346, hash 6F4E6C8B
+ sample 228:
+ time = 2280000
+ flags = 1
+ data = length 341, hash 3DB3864B
+ sample 229:
+ time = 2290000
+ flags = 1
+ data = length 336, hash 82AEE005
+ sample 230:
+ time = 2300000
+ flags = 1
+ data = length 326, hash 8115A41A
+ sample 231:
+ time = 2310000
+ flags = 1
+ data = length 326, hash D7675B30
+ sample 232:
+ time = 2320000
+ flags = 1
+ data = length 326, hash 529C1134
+ sample 233:
+ time = 2330000
+ flags = 1
+ data = length 326, hash 30E917D7
+ sample 234:
+ time = 2340000
+ flags = 1
+ data = length 326, hash A0C5BBB5
+ sample 235:
+ time = 2350000
+ flags = 1
+ data = length 325, hash A1703C7F
+ sample 236:
+ time = 2360000
+ flags = 1
+ data = length 315, hash 443DC04E
+ sample 237:
+ time = 2370000
+ flags = 1
+ data = length 320, hash 3975FFC4
+ sample 238:
+ time = 2380000
+ flags = 1
+ data = length 324, hash 4F5CFD58
+ sample 239:
+ time = 2390000
+ flags = 1
+ data = length 321, hash BF9A6611
+ sample 240:
+ time = 2400000
+ flags = 1
+ data = length 330, hash B238370E
+ sample 241:
+ time = 2410000
+ flags = 1
+ data = length 321, hash 98A77876
+ sample 242:
+ time = 2420000
+ flags = 1
+ data = length 312, hash 3E6ACD6C
+ sample 243:
+ time = 2430000
+ flags = 1
+ data = length 318, hash FA97020A
+ sample 244:
+ time = 2440000
+ flags = 1
+ data = length 311, hash 8A101DFA
+ sample 245:
+ time = 2450000
+ flags = 1
+ data = length 310, hash C892E017
+ sample 246:
+ time = 2460000
+ flags = 1
+ data = length 306, hash C088A2D3
+ sample 247:
+ time = 2470000
+ flags = 1
+ data = length 292, hash 9C2757C6
+ sample 248:
+ time = 2480000
+ flags = 1
+ data = length 291, hash 656B9B94
+ sample 249:
+ time = 2490000
+ flags = 1
+ data = length 306, hash 18C812
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
new file mode 100644
index 0000000000..01688a61f5
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.reading_within_gop_sample_dependencies.0.dump
@@ -0,0 +1,336 @@
+seekMap:
+ isSeekable = false
+ duration = 134000
+ getPosition(0) = [[timeUs=0, position=1428]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 87715
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 37655, hash 265F7BA7
+ sample 1:
+ time = 133466
+ flags = 0
+ data = length 5023, hash 30768D40
+ sample 2:
+ time = 100100
+ flags = 67108864
+ data = length 497, hash 9E536CA2
+ sample 3:
+ time = 200200
+ flags = 536870912
+ data = length 5867, hash 56F9EE87
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 570, hash 984421BD
+ sample 5:
+ time = 266933
+ flags = 0
+ data = length 3406, hash 9A33201E
+ sample 6:
+ time = 233566
+ flags = 67108864
+ data = length 476, hash C59620F3
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 4310, hash 291E6161
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 497, hash 398CBFAA
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4449, hash 322CAA2B
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1076, hash B479B634
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 365, hash 68C7D4C2
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 463, hash A85F9769
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5339, hash F232195D
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1085, hash 47AFB6FE
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 689, hash 3EB753A3
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 516, hash E6DF9C1C
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4899, hash A9A8F4B7
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 963, hash 684782FB
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 625, hash ED1C8EF1
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 492, hash E6E066EA
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2973, hash A3C54C3B
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 833, hash 41CA807D
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 516, hash 5B21BB11
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 384, hash A0E8FA50
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1450, hash 92741C3B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 831, hash DDA0685B
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 413, hash 886904C
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 427, hash FC2FA8CC
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 626, hash DCE82342
+track 1:
+ total output bytes = 10107
+ sample count = 45
+ format 0:
+ averageBitrate = 1254
+ peakBitrate = 69000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 21, hash D57A2CCC
+ sample 1:
+ time = 133945
+ flags = 1
+ data = length 6, hash 336D5819
+ sample 2:
+ time = 157165
+ flags = 1
+ data = length 279, hash 6E3E48B0
+ sample 3:
+ time = 180385
+ flags = 1
+ data = length 286, hash 5AABFF
+ sample 4:
+ time = 203605
+ flags = 1
+ data = length 275, hash D3109764
+ sample 5:
+ time = 226825
+ flags = 1
+ data = length 284, hash 154B6E9
+ sample 6:
+ time = 250045
+ flags = 1
+ data = length 273, hash 40C8A066
+ sample 7:
+ time = 273265
+ flags = 1
+ data = length 272, hash 4211880F
+ sample 8:
+ time = 296485
+ flags = 1
+ data = length 281, hash 1F534130
+ sample 9:
+ time = 319705
+ flags = 1
+ data = length 279, hash F5B3EE5F
+ sample 10:
+ time = 342925
+ flags = 1
+ data = length 282, hash 6CDF1B54
+ sample 11:
+ time = 366145
+ flags = 1
+ data = length 291, hash 6EC03046
+ sample 12:
+ time = 389365
+ flags = 1
+ data = length 296, hash 9C7F2E6A
+ sample 13:
+ time = 412585
+ flags = 1
+ data = length 282, hash 584ABD5E
+ sample 14:
+ time = 435804
+ flags = 1
+ data = length 283, hash 38CB1734
+ sample 15:
+ time = 459024
+ flags = 1
+ data = length 274, hash 648EC8BD
+ sample 16:
+ time = 482244
+ flags = 1
+ data = length 274, hash E8FE0F68
+ sample 17:
+ time = 505464
+ flags = 1
+ data = length 277, hash 2E1B8A11
+ sample 18:
+ time = 528684
+ flags = 1
+ data = length 282, hash FB6ACCED
+ sample 19:
+ time = 551904
+ flags = 1
+ data = length 283, hash 152D69D
+ sample 20:
+ time = 575124
+ flags = 1
+ data = length 274, hash 45F44C4B
+ sample 21:
+ time = 598344
+ flags = 1
+ data = length 242, hash F9225BB7
+ sample 22:
+ time = 621564
+ flags = 1
+ data = length 207, hash F5DFB6B2
+ sample 23:
+ time = 644784
+ flags = 1
+ data = length 226, hash 41DC63E1
+ sample 24:
+ time = 668004
+ flags = 1
+ data = length 218, hash A82772CF
+ sample 25:
+ time = 691224
+ flags = 1
+ data = length 223, hash 861AB80
+ sample 26:
+ time = 714444
+ flags = 1
+ data = length 220, hash F1CBA15E
+ sample 27:
+ time = 737664
+ flags = 1
+ data = length 203, hash CB57EEF7
+ sample 28:
+ time = 760884
+ flags = 1
+ data = length 206, hash 766F4D9E
+ sample 29:
+ time = 784104
+ flags = 1
+ data = length 210, hash FE2A2935
+ sample 30:
+ time = 807324
+ flags = 1
+ data = length 207, hash A06A178D
+ sample 31:
+ time = 830544
+ flags = 1
+ data = length 206, hash 1ABD9A5F
+ sample 32:
+ time = 853764
+ flags = 1
+ data = length 209, hash 69D7E5F3
+ sample 33:
+ time = 876984
+ flags = 1
+ data = length 173, hash 7CE0FDCA
+ sample 34:
+ time = 900204
+ flags = 1
+ data = length 208, hash 21D67E09
+ sample 35:
+ time = 923424
+ flags = 1
+ data = length 207, hash C7187D46
+ sample 36:
+ time = 946643
+ flags = 1
+ data = length 180, hash D17CFAF8
+ sample 37:
+ time = 969863
+ flags = 1
+ data = length 206, hash C58FD669
+ sample 38:
+ time = 993083
+ flags = 1
+ data = length 212, hash 27E2F2C4
+ sample 39:
+ time = 1016303
+ flags = 1
+ data = length 190, hash 534CC89E
+ sample 40:
+ time = 1039523
+ flags = 1
+ data = length 180, hash 1C58DF95
+ sample 41:
+ time = 1062743
+ flags = 1
+ data = length 213, hash 24FBF10A
+ sample 42:
+ time = 1085963
+ flags = 1
+ data = length 186, hash EFC31805
+ sample 43:
+ time = 1109183
+ flags = 1
+ data = length 208, hash 4A050A0D
+ sample 44:
+ time = 1132403
+ flags = 1
+ data = length 13, hash 2555A7DC
+tracksEnded = true
diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
new file mode 100644
index 0000000000..01688a61f5
--- /dev/null
+++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.reading_within_gop_sample_dependencies.unknown_length.dump
@@ -0,0 +1,336 @@
+seekMap:
+ isSeekable = false
+ duration = 134000
+ getPosition(0) = [[timeUs=0, position=1428]]
+numberOfTracks = 2
+track 0:
+ total output bytes = 87715
+ sample count = 30
+ format 0:
+ id = 1
+ sampleMimeType = video/avc
+ codecs = avc1.64001F
+ maxNumReorderSamples = 2
+ width = 1080
+ height = 720
+ colorInfo:
+ lumaBitdepth = 8
+ chromaBitdepth = 8
+ initializationData:
+ data = length 29, hash 4746B5D9
+ data = length 10, hash 7A0D0F2B
+ sample 0:
+ time = 66733
+ flags = 1
+ data = length 37655, hash 265F7BA7
+ sample 1:
+ time = 133466
+ flags = 0
+ data = length 5023, hash 30768D40
+ sample 2:
+ time = 100100
+ flags = 67108864
+ data = length 497, hash 9E536CA2
+ sample 3:
+ time = 200200
+ flags = 536870912
+ data = length 5867, hash 56F9EE87
+ sample 4:
+ time = 166833
+ flags = 67108864
+ data = length 570, hash 984421BD
+ sample 5:
+ time = 266933
+ flags = 0
+ data = length 3406, hash 9A33201E
+ sample 6:
+ time = 233566
+ flags = 67108864
+ data = length 476, hash C59620F3
+ sample 7:
+ time = 333666
+ flags = 0
+ data = length 4310, hash 291E6161
+ sample 8:
+ time = 300300
+ flags = 67108864
+ data = length 497, hash 398CBFAA
+ sample 9:
+ time = 467133
+ flags = 0
+ data = length 4449, hash 322CAA2B
+ sample 10:
+ time = 400400
+ flags = 0
+ data = length 1076, hash B479B634
+ sample 11:
+ time = 367033
+ flags = 67108864
+ data = length 365, hash 68C7D4C2
+ sample 12:
+ time = 433766
+ flags = 67108864
+ data = length 463, hash A85F9769
+ sample 13:
+ time = 600600
+ flags = 0
+ data = length 5339, hash F232195D
+ sample 14:
+ time = 533866
+ flags = 0
+ data = length 1085, hash 47AFB6FE
+ sample 15:
+ time = 500500
+ flags = 67108864
+ data = length 689, hash 3EB753A3
+ sample 16:
+ time = 567233
+ flags = 67108864
+ data = length 516, hash E6DF9C1C
+ sample 17:
+ time = 734066
+ flags = 0
+ data = length 4899, hash A9A8F4B7
+ sample 18:
+ time = 667333
+ flags = 0
+ data = length 963, hash 684782FB
+ sample 19:
+ time = 633966
+ flags = 67108864
+ data = length 625, hash ED1C8EF1
+ sample 20:
+ time = 700700
+ flags = 67108864
+ data = length 492, hash E6E066EA
+ sample 21:
+ time = 867533
+ flags = 0
+ data = length 2973, hash A3C54C3B
+ sample 22:
+ time = 800800
+ flags = 0
+ data = length 833, hash 41CA807D
+ sample 23:
+ time = 767433
+ flags = 67108864
+ data = length 516, hash 5B21BB11
+ sample 24:
+ time = 834166
+ flags = 67108864
+ data = length 384, hash A0E8FA50
+ sample 25:
+ time = 1001000
+ flags = 0
+ data = length 1450, hash 92741C3B
+ sample 26:
+ time = 934266
+ flags = 0
+ data = length 831, hash DDA0685B
+ sample 27:
+ time = 900900
+ flags = 67108864
+ data = length 413, hash 886904C
+ sample 28:
+ time = 967633
+ flags = 67108864
+ data = length 427, hash FC2FA8CC
+ sample 29:
+ time = 1034366
+ flags = 0
+ data = length 626, hash DCE82342
+track 1:
+ total output bytes = 10107
+ sample count = 45
+ format 0:
+ averageBitrate = 1254
+ peakBitrate = 69000
+ id = 2
+ sampleMimeType = audio/mp4a-latm
+ codecs = mp4a.40.2
+ channelCount = 1
+ sampleRate = 44100
+ language = und
+ initializationData:
+ data = length 5, hash 2B7623A
+ sample 0:
+ time = 0
+ flags = 536870913
+ data = length 21, hash D57A2CCC
+ sample 1:
+ time = 133945
+ flags = 1
+ data = length 6, hash 336D5819
+ sample 2:
+ time = 157165
+ flags = 1
+ data = length 279, hash 6E3E48B0
+ sample 3:
+ time = 180385
+ flags = 1
+ data = length 286, hash 5AABFF
+ sample 4:
+ time = 203605
+ flags = 1
+ data = length 275, hash D3109764
+ sample 5:
+ time = 226825
+ flags = 1
+ data = length 284, hash 154B6E9
+ sample 6:
+ time = 250045
+ flags = 1
+ data = length 273, hash 40C8A066
+ sample 7:
+ time = 273265
+ flags = 1
+ data = length 272, hash 4211880F
+ sample 8:
+ time = 296485
+ flags = 1
+ data = length 281, hash 1F534130
+ sample 9:
+ time = 319705
+ flags = 1
+ data = length 279, hash F5B3EE5F
+ sample 10:
+ time = 342925
+ flags = 1
+ data = length 282, hash 6CDF1B54
+ sample 11:
+ time = 366145
+ flags = 1
+ data = length 291, hash 6EC03046
+ sample 12:
+ time = 389365
+ flags = 1
+ data = length 296, hash 9C7F2E6A
+ sample 13:
+ time = 412585
+ flags = 1
+ data = length 282, hash 584ABD5E
+ sample 14:
+ time = 435804
+ flags = 1
+ data = length 283, hash 38CB1734
+ sample 15:
+ time = 459024
+ flags = 1
+ data = length 274, hash 648EC8BD
+ sample 16:
+ time = 482244
+ flags = 1
+ data = length 274, hash E8FE0F68
+ sample 17:
+ time = 505464
+ flags = 1
+ data = length 277, hash 2E1B8A11
+ sample 18:
+ time = 528684
+ flags = 1
+ data = length 282, hash FB6ACCED
+ sample 19:
+ time = 551904
+ flags = 1
+ data = length 283, hash 152D69D
+ sample 20:
+ time = 575124
+ flags = 1
+ data = length 274, hash 45F44C4B
+ sample 21:
+ time = 598344
+ flags = 1
+ data = length 242, hash F9225BB7
+ sample 22:
+ time = 621564
+ flags = 1
+ data = length 207, hash F5DFB6B2
+ sample 23:
+ time = 644784
+ flags = 1
+ data = length 226, hash 41DC63E1
+ sample 24:
+ time = 668004
+ flags = 1
+ data = length 218, hash A82772CF
+ sample 25:
+ time = 691224
+ flags = 1
+ data = length 223, hash 861AB80
+ sample 26:
+ time = 714444
+ flags = 1
+ data = length 220, hash F1CBA15E
+ sample 27:
+ time = 737664
+ flags = 1
+ data = length 203, hash CB57EEF7
+ sample 28:
+ time = 760884
+ flags = 1
+ data = length 206, hash 766F4D9E
+ sample 29:
+ time = 784104
+ flags = 1
+ data = length 210, hash FE2A2935
+ sample 30:
+ time = 807324
+ flags = 1
+ data = length 207, hash A06A178D
+ sample 31:
+ time = 830544
+ flags = 1
+ data = length 206, hash 1ABD9A5F
+ sample 32:
+ time = 853764
+ flags = 1
+ data = length 209, hash 69D7E5F3
+ sample 33:
+ time = 876984
+ flags = 1
+ data = length 173, hash 7CE0FDCA
+ sample 34:
+ time = 900204
+ flags = 1
+ data = length 208, hash 21D67E09
+ sample 35:
+ time = 923424
+ flags = 1
+ data = length 207, hash C7187D46
+ sample 36:
+ time = 946643
+ flags = 1
+ data = length 180, hash D17CFAF8
+ sample 37:
+ time = 969863
+ flags = 1
+ data = length 206, hash C58FD669
+ sample 38:
+ time = 993083
+ flags = 1
+ data = length 212, hash 27E2F2C4
+ sample 39:
+ time = 1016303
+ flags = 1
+ data = length 190, hash 534CC89E
+ sample 40:
+ time = 1039523
+ flags = 1
+ data = length 180, hash 1C58DF95
+ sample 41:
+ time = 1062743
+ flags = 1
+ data = length 213, hash 24FBF10A
+ sample 42:
+ time = 1085963
+ flags = 1
+ data = length 186, hash EFC31805
+ sample 43:
+ time = 1109183
+ flags = 1
+ data = length 208, hash 4A050A0D
+ sample 44:
+ time = 1132403
+ flags = 1
+ data = length 13, hash 2555A7DC
+tracksEnded = true