From 94442291bd5ea01ece7d8230283a62eb4ac85378 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Mon, 9 Oct 2023 12:08:43 +0200 Subject: [PATCH 1/5] Extend MP4 extractor implementation with complete parsing of mhaC and mhaP boxes --- .../main/java/androidx/media3/common/C.java | 72 +++++++++++++++++++ .../java/androidx/media3/common/Format.java | 72 +++++++++++++++++++ .../androidx/media3/extractor/mp4/Atom.java | 28 ++++++++ .../media3/extractor/mp4/AtomParsers.java | 61 ++++++++++++++-- 4 files changed, 228 insertions(+), 5 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/C.java b/libraries/common/src/main/java/androidx/media3/common/C.java index df6736b80a..f1264fb560 100644 --- a/libraries/common/src/main/java/androidx/media3/common/C.java +++ b/libraries/common/src/main/java/androidx/media3/common/C.java @@ -1,3 +1,28 @@ +/*************************************************************************** + +Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, +irrevocable, non-exclusive copyright license with the right to sublicense +through multiple tiers to use, copy, distribute, modify and create +derivative works of the Software Patches for Exoplayer in source code form +and/or object code versions of the software. For the avoidance of doubt, +this license does not include any license to any Fraunhofer patents or any +third-party patents. Since the license is granted without any charge, +Fraunhofer provides the Software Patches for Exoplayer, in accordance with +the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT +WARRANTIES or conditions of any kind, either express or implied, including, +without limitation, any warranties or conditions of title, non-infringement, +merchantability, or fitness for a particular purpose. + +For the purpose of clarity, the provision of the Software Patches for +Exoplayer by Fraunhofer and the use of the same by Google shall be subject +solely to the license stated above. + +This file was originally licensed under the Apache 2.0 license (see license +note below). Fraunhofer has modified this files and provides its copyright +in the modifications to Google under the above terms, which shall not be +considered a contribution under the Apache 2.0 license. + +***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * @@ -1608,4 +1633,51 @@ public final class C { int mediaDrmErrorCode) { return Util.getErrorCodeForMediaDrmErrorCode(mediaDrmErrorCode); } + + @Documented + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + Format.NO_VALUE, + MPEGH_PROFILE_MAIN_L1, + MPEGH_PROFILE_MAIN_L2, + MPEGH_PROFILE_MAIN_L3, + MPEGH_PROFILE_MAIN_L4, + MPEGH_PROFILE_MAIN_L5, + MPEGH_PROFILE_HIGH_L1, + MPEGH_PROFILE_HIGH_L2, + MPEGH_PROFILE_HIGH_L3, + MPEGH_PROFILE_HIGH_L4, + MPEGH_PROFILE_HIGH_L5, + MPEGH_PROFILE_LC_L1, + MPEGH_PROFILE_LC_L2, + MPEGH_PROFILE_LC_L3, + MPEGH_PROFILE_LC_L4, + MPEGH_PROFILE_LC_L5, + MPEGH_PROFILE_BL_L1, + MPEGH_PROFILE_BL_L2, + MPEGH_PROFILE_BL_L3, + MPEGH_PROFILE_BL_L4, + MPEGH_PROFILE_BL_L5 + }) + public @interface MpeghProfileLevelIndication {} + public static final int MPEGH_PROFILE_MAIN_L1 = 1; + public static final int MPEGH_PROFILE_MAIN_L2 = 2; + public static final int MPEGH_PROFILE_MAIN_L3 = 3; + public static final int MPEGH_PROFILE_MAIN_L4 = 4; + public static final int MPEGH_PROFILE_MAIN_L5 = 5; + public static final int MPEGH_PROFILE_HIGH_L1 = 6; + public static final int MPEGH_PROFILE_HIGH_L2 = 7; + public static final int MPEGH_PROFILE_HIGH_L3 = 8; + public static final int MPEGH_PROFILE_HIGH_L4 = 9; + public static final int MPEGH_PROFILE_HIGH_L5 = 10; + public static final int MPEGH_PROFILE_LC_L1 = 11; + public static final int MPEGH_PROFILE_LC_L2 = 12; + public static final int MPEGH_PROFILE_LC_L3 = 13; + public static final int MPEGH_PROFILE_LC_L4 = 14; + public static final int MPEGH_PROFILE_LC_L5 = 15; + public static final int MPEGH_PROFILE_BL_L1 = 16; + public static final int MPEGH_PROFILE_BL_L2 = 17; + public static final int MPEGH_PROFILE_BL_L3 = 18; + public static final int MPEGH_PROFILE_BL_L4 = 19; + public static final int MPEGH_PROFILE_BL_L5 = 20; } diff --git a/libraries/common/src/main/java/androidx/media3/common/Format.java b/libraries/common/src/main/java/androidx/media3/common/Format.java index 5795a1437b..df3d2a080b 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Format.java +++ b/libraries/common/src/main/java/androidx/media3/common/Format.java @@ -1,3 +1,28 @@ +/*************************************************************************** + +Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, +irrevocable, non-exclusive copyright license with the right to sublicense +through multiple tiers to use, copy, distribute, modify and create +derivative works of the Software Patches for Exoplayer in source code form +and/or object code versions of the software. For the avoidance of doubt, +this license does not include any license to any Fraunhofer patents or any +third-party patents. Since the license is granted without any charge, +Fraunhofer provides the Software Patches for Exoplayer, in accordance with +the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT +WARRANTIES or conditions of any kind, either express or implied, including, +without limitation, any warranties or conditions of title, non-infringement, +merchantability, or fitness for a particular purpose. + +For the purpose of clarity, the provision of the Software Patches for +Exoplayer by Fraunhofer and the use of the same by Google shall be subject +solely to the license stated above. + +This file was originally licensed under the Apache 2.0 license (see license +note below). Fraunhofer has modified this files and provides its copyright +in the modifications to Google under the above terms, which shall not be +considered a contribution under the Apache 2.0 license. + +***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * @@ -176,6 +201,10 @@ public final class Format implements Bundleable { private int encoderDelay; private int encoderPadding; + @C.MpeghProfileLevelIndication private int mpeghProfileLevelIndication; + private int mpeghReferenceChannelLayout; + @Nullable @C.MpeghProfileLevelIndication private int[] mpeghCompatibleProfileLevelSet; + // Text specific. private int accessibilityChannel; @@ -207,6 +236,8 @@ public final class Format implements Bundleable { channelCount = NO_VALUE; sampleRate = NO_VALUE; pcmEncoding = NO_VALUE; + mpeghProfileLevelIndication = NO_VALUE; + mpeghReferenceChannelLayout = NO_VALUE; // Text specific. accessibilityChannel = NO_VALUE; cueReplacementBehavior = CUE_REPLACEMENT_BEHAVIOR_MERGE; @@ -255,6 +286,9 @@ public final class Format implements Bundleable { this.pcmEncoding = format.pcmEncoding; this.encoderDelay = format.encoderDelay; this.encoderPadding = format.encoderPadding; + this.mpeghReferenceChannelLayout = format.mpeghReferenceChannelLayout; + this.mpeghProfileLevelIndication = format.mpeghProfileLevelIndication; + this.mpeghCompatibleProfileLevelSet = format.mpeghCompatibleProfileLevelSet; // Text specific. this.accessibilityChannel = format.accessibilityChannel; this.cueReplacementBehavior = format.cueReplacementBehavior; @@ -622,6 +656,19 @@ public final class Format implements Bundleable { return this; } + public Builder setMpeghProfileLevelIndication(@C.MpeghProfileLevelIndication int mpeghProfileLevelIndication) { + this.mpeghProfileLevelIndication = mpeghProfileLevelIndication; + return this; + } + public Builder setMpeghReferenceChannelLayout(int mpeghReferenceChannelLayout) { + this.mpeghReferenceChannelLayout = mpeghReferenceChannelLayout; + return this; + } + public Builder setMpeghCompatibleProfileLevelSet(@Nullable @C.MpeghProfileLevelIndication int[] mpeghCompatibleProfileLevelSet) { + this.mpeghCompatibleProfileLevelSet = mpeghCompatibleProfileLevelSet; + return this; + } + // Text specific. /** @@ -895,6 +942,10 @@ public final class Format implements Bundleable { */ @UnstableApi public final int encoderPadding; + @C.MpeghProfileLevelIndication public final int mpeghProfileLevelIndication; + public final int mpeghReferenceChannelLayout; + @Nullable @C.MpeghProfileLevelIndication public final int[] mpeghCompatibleProfileLevelSet; + // Text specific. /** The Accessibility channel, or {@link #NO_VALUE} if not known or applicable. */ @@ -965,6 +1016,9 @@ public final class Format implements Bundleable { pcmEncoding = builder.pcmEncoding; encoderDelay = builder.encoderDelay == NO_VALUE ? 0 : builder.encoderDelay; encoderPadding = builder.encoderPadding == NO_VALUE ? 0 : builder.encoderPadding; + mpeghProfileLevelIndication = builder.mpeghProfileLevelIndication; + mpeghReferenceChannelLayout = builder.mpeghReferenceChannelLayout; + mpeghCompatibleProfileLevelSet = builder.mpeghCompatibleProfileLevelSet; // Text specific. accessibilityChannel = builder.accessibilityChannel; cueReplacementBehavior = builder.cueReplacementBehavior; @@ -1138,6 +1192,9 @@ public final class Format implements Bundleable { result = 31 * result + pcmEncoding; result = 31 * result + encoderDelay; result = 31 * result + encoderPadding; + result = 31 * result + mpeghProfileLevelIndication; + result = 31 * result + mpeghReferenceChannelLayout; + // [Omitted] mpeghCompatibleProfileLevelSet. // Text specific. result = 31 * result + accessibilityChannel; // Image specific. @@ -1178,6 +1235,9 @@ public final class Format implements Bundleable { && pcmEncoding == other.pcmEncoding && encoderDelay == other.encoderDelay && encoderPadding == other.encoderPadding + && mpeghReferenceChannelLayout == other.mpeghReferenceChannelLayout + && mpeghProfileLevelIndication == other.mpeghProfileLevelIndication + && Util.areEqual(mpeghCompatibleProfileLevelSet, other.mpeghCompatibleProfileLevelSet) && accessibilityChannel == other.accessibilityChannel && tileCountHorizontal == other.tileCountHorizontal && tileCountVertical == other.tileCountVertical @@ -1382,6 +1442,9 @@ public final class Format implements Bundleable { private static final String FIELD_CRYPTO_TYPE = Util.intToStringMaxRadix(29); private static final String FIELD_TILE_COUNT_HORIZONTAL = Util.intToStringMaxRadix(30); private static final String FIELD_TILE_COUNT_VERTICAL = Util.intToStringMaxRadix(31); + private static final String FIELD_MPEGH_PROFILE_LEVEL_INDICATION = Util.intToStringMaxRadix(32); + private static final String FIELD_MPEGH_REFERENCE_CHANNEL_LAYOUT = Util.intToStringMaxRadix(33); + private static final String FIELD_MPEGH_COMPATIBLE_PROFILE_LEVEL_SET = Util.intToStringMaxRadix(34); @UnstableApi @Override @@ -1437,6 +1500,9 @@ public final class Format implements Bundleable { bundle.putInt(FIELD_PCM_ENCODING, pcmEncoding); bundle.putInt(FIELD_ENCODER_DELAY, encoderDelay); bundle.putInt(FIELD_ENCODER_PADDING, encoderPadding); + bundle.putInt(FIELD_MPEGH_PROFILE_LEVEL_INDICATION, mpeghProfileLevelIndication); + bundle.putInt(FIELD_MPEGH_REFERENCE_CHANNEL_LAYOUT, mpeghReferenceChannelLayout); + bundle.putIntArray(FIELD_MPEGH_COMPATIBLE_PROFILE_LEVEL_SET, mpeghCompatibleProfileLevelSet); // Text specific. bundle.putInt(FIELD_ACCESSIBILITY_CHANNEL, accessibilityChannel); // Image specific. @@ -1512,6 +1578,12 @@ public final class Format implements Bundleable { .setPcmEncoding(bundle.getInt(FIELD_PCM_ENCODING, DEFAULT.pcmEncoding)) .setEncoderDelay(bundle.getInt(FIELD_ENCODER_DELAY, DEFAULT.encoderDelay)) .setEncoderPadding(bundle.getInt(FIELD_ENCODER_PADDING, DEFAULT.encoderPadding)) + .setMpeghProfileLevelIndication( + bundle.getInt(FIELD_MPEGH_PROFILE_LEVEL_INDICATION, DEFAULT.mpeghProfileLevelIndication)) + .setMpeghReferenceChannelLayout( + bundle.getInt(FIELD_MPEGH_REFERENCE_CHANNEL_LAYOUT, DEFAULT.mpeghReferenceChannelLayout)) + .setMpeghCompatibleProfileLevelSet( + bundle.getIntArray(FIELD_MPEGH_COMPATIBLE_PROFILE_LEVEL_SET)) // Text specific. .setAccessibilityChannel( bundle.getInt(FIELD_ACCESSIBILITY_CHANNEL, DEFAULT.accessibilityChannel)) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java index 91d2a1dc6f..d9e5bdb292 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java @@ -1,3 +1,28 @@ +/*************************************************************************** + +Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, +irrevocable, non-exclusive copyright license with the right to sublicense +through multiple tiers to use, copy, distribute, modify and create +derivative works of the Software Patches for Exoplayer in source code form +and/or object code versions of the software. For the avoidance of doubt, +this license does not include any license to any Fraunhofer patents or any +third-party patents. Since the license is granted without any charge, +Fraunhofer provides the Software Patches for Exoplayer, in accordance with +the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT +WARRANTIES or conditions of any kind, either express or implied, including, +without limitation, any warranties or conditions of title, non-infringement, +merchantability, or fitness for a particular purpose. + +For the purpose of clarity, the provision of the Software Patches for +Exoplayer by Fraunhofer and the use of the same by Google shall be subject +solely to the license stated above. + +This file was originally licensed under the Apache 2.0 license (see license +note below). Fraunhofer has modified this files and provides its copyright +in the modifications to Google under the above terms, which shall not be +considered a contribution under the Apache 2.0 license. + +***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * @@ -125,6 +150,9 @@ import java.util.List; @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_mhaC = 0x6d686143; + @SuppressWarnings("ConstantCaseForConstants") + public static final int TYPE_mhaP = 0x6d686150; + @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_wave = 0x77617665; diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java index 9f0638ceae..2f4e581c1f 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java @@ -1,3 +1,28 @@ +/*************************************************************************** + +Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, +irrevocable, non-exclusive copyright license with the right to sublicense +through multiple tiers to use, copy, distribute, modify and create +derivative works of the Software Patches for Exoplayer in source code form +and/or object code versions of the software. For the avoidance of doubt, +this license does not include any license to any Fraunhofer patents or any +third-party patents. Since the license is granted without any charge, +Fraunhofer provides the Software Patches for Exoplayer, in accordance with +the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT +WARRANTIES or conditions of any kind, either express or implied, including, +without limitation, any warranties or conditions of title, non-infringement, +merchantability, or fitness for a particular purpose. + +For the purpose of clarity, the provision of the Software Patches for +Exoplayer by Fraunhofer and the use of the same by Google shall be subject +solely to the license stated above. + +This file was originally licensed under the Apache 2.0 license (see license +note below). Fraunhofer has modified this files and provides its copyright +in the modifications to Google under the above terms, which shall not be +considered a contribution under the Apache 2.0 license. + +***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * @@ -1598,6 +1623,9 @@ import java.util.List; int sampleRateMlp = 0; @C.PcmEncoding int pcmEncoding = Format.NO_VALUE; @Nullable String codecs = null; + @C.MpeghProfileLevelIndication int mpeghProfileLevelIndication = Format.NO_VALUE; + int mpeghReferenceChannelLayout = Format.NO_VALUE; + @Nullable @C.MpeghProfileLevelIndication int[] mpeghCompatibleProfileLevelSet = null; @Nullable EsdsData esdsData = null; if (quickTimeSoundDescriptionVersion == 0 || quickTimeSoundDescriptionVersion == 1) { @@ -1720,15 +1748,35 @@ import java.util.List; ExtractorUtil.checkContainerInput(childAtomSize > 0, "childAtomSize must be positive"); int childAtomType = parent.readInt(); if (childAtomType == Atom.TYPE_mhaC) { - // See ISO_IEC_23008-3;2019 MHADecoderConfigurationRecord + // See ISO_IEC_23008-3;2022 MHADecoderConfigurationRecord // The header consists of: size (4), boxtype 'mhaC' (4), configurationVersion (1), // mpegh3daProfileLevelIndication (1), referenceChannelLayout (1), mpegh3daConfigLength (2). int mhacHeaderSize = 13; - int childAtomBodySize = childAtomSize - mhacHeaderSize; - byte[] initializationDataBytes = new byte[childAtomBodySize]; - parent.setPosition(childPosition + mhacHeaderSize); - parent.readBytes(initializationDataBytes, 0, childAtomBodySize); + parent.setPosition(childPosition + Atom.HEADER_SIZE); + int configurationVersion = parent.readUnsignedByte(); + mpeghProfileLevelIndication = parent.readUnsignedByte(); + mpeghReferenceChannelLayout = parent.readUnsignedByte(); + if (mimeType.equals(MimeTypes.AUDIO_MPEGH_MHM1)) { + codecs = String.format("mhm1.0x%02X", mpeghProfileLevelIndication); + } else { + codecs = String.format("mha1.0x%02X", mpeghProfileLevelIndication); + } + int mpegh3daConfigLength = parent.readUnsignedShort(); + byte[] initializationDataBytes = new byte[mpegh3daConfigLength]; + parent.readBytes(initializationDataBytes, 0, mpegh3daConfigLength); initializationData = ImmutableList.of(initializationDataBytes); + } else if (childAtomType == Atom.TYPE_mhaP) { + // See ISO_IEC_23008-3;2022 MHAProfileAndLevelCompatibilitySetBox + // The header consists of: size (4), boxtype 'mhaP' (4), numCompatibleSets (1). + int mhapHeaderSize = 9; + parent.setPosition(childPosition + Atom.HEADER_SIZE); + int numCompatibleSets = parent.readUnsignedByte(); + if (numCompatibleSets > 0) { + mpeghCompatibleProfileLevelSet = new int[numCompatibleSets]; + for (int i = 0; i < numCompatibleSets; i++) { + mpeghCompatibleProfileLevelSet[i] = parent.readUnsignedByte(); + } + } } else if (childAtomType == Atom.TYPE_esds || (isQuickTime && childAtomType == Atom.TYPE_wave)) { int esdsAtomPosition = @@ -1835,6 +1883,9 @@ import java.util.List; .setPcmEncoding(pcmEncoding) .setInitializationData(initializationData) .setDrmInitData(drmInitData) + .setMpeghProfileLevelIndication(mpeghProfileLevelIndication) + .setMpeghReferenceChannelLayout(mpeghReferenceChannelLayout) + .setMpeghCompatibleProfileLevelSet(mpeghCompatibleProfileLevelSet) .setLanguage(language); if (esdsData != null) { From 6d2059080ba0c48529a6eab4023be3b275ee60a4 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Thu, 26 Oct 2023 15:09:04 +0200 Subject: [PATCH 2/5] - changes according to review comments - add test data and dumps --- .../main/java/androidx/media3/common/C.java | 72 --- .../java/androidx/media3/common/Format.java | 72 --- .../androidx/media3/extractor/mp4/Atom.java | 25 - .../media3/extractor/mp4/AtomParsers.java | 62 +- .../mp4/FragmentedMp4ExtractorTest.java | 32 + .../extractor/mp4/Mp4ExtractorTest.java | 24 + .../mp4/sample_mhm1_bl_cicp1.mp4.0.dump | 211 +++++++ .../mp4/sample_mhm1_bl_cicp1.mp4.1.dump | 211 +++++++ .../mp4/sample_mhm1_bl_cicp1.mp4.2.dump | 115 ++++ .../mp4/sample_mhm1_bl_cicp1.mp4.3.dump | 115 ++++ ...mple_mhm1_bl_cicp1.mp4.unknown_length.dump | 211 +++++++ ...sample_mhm1_bl_cicp1_fragmented.mp4.0.dump | 206 ++++++ ...l_cicp1_fragmented.mp4.unknown_length.dump | 206 ++++++ .../sample_mhm1_bl_configchange.mp4.0.dump | 595 ++++++++++++++++++ .../sample_mhm1_bl_configchange.mp4.1.dump | 407 ++++++++++++ .../sample_mhm1_bl_configchange.mp4.2.dump | 215 +++++++ .../sample_mhm1_bl_configchange.mp4.3.dump | 107 ++++ ...m1_bl_configchange.mp4.unknown_length.dump | 595 ++++++++++++++++++ ...mhm1_bl_configchange_fragmented.mp4.0.dump | 590 +++++++++++++++++ ...gchange_fragmented.mp4.unknown_length.dump | 590 +++++++++++++++++ .../mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump | 212 +++++++ .../mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump | 212 +++++++ .../mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump | 116 ++++ .../mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump | 116 ++++ ...le_mhm1_lcbl_cicp1.mp4.unknown_length.dump | 212 +++++++ ...mple_mhm1_lcbl_cicp1_fragmented.mp4.0.dump | 207 ++++++ ...l_cicp1_fragmented.mp4.unknown_length.dump | 207 ++++++ .../sample_mhm1_lcbl_configchange.mp4.0.dump | 595 ++++++++++++++++++ .../sample_mhm1_lcbl_configchange.mp4.1.dump | 407 ++++++++++++ .../sample_mhm1_lcbl_configchange.mp4.2.dump | 215 +++++++ .../sample_mhm1_lcbl_configchange.mp4.3.dump | 107 ++++ ..._lcbl_configchange.mp4.unknown_length.dump | 595 ++++++++++++++++++ ...m1_lcbl_configchange_fragmented.mp4.0.dump | 591 +++++++++++++++++ ...gchange_fragmented.mp4.unknown_length.dump | 591 +++++++++++++++++ .../mp4/sample_mpegh_mha1.mp4.0.dump | 1 + .../mp4/sample_mpegh_mha1.mp4.1.dump | 1 + .../mp4/sample_mpegh_mha1.mp4.2.dump | 1 + .../mp4/sample_mpegh_mha1.mp4.3.dump | 1 + .../sample_mpegh_mha1.mp4.unknown_length.dump | 1 + .../mp4/sample_mpegh_mhm1.mp4.0.dump | 2 + .../mp4/sample_mpegh_mhm1.mp4.1.dump | 2 + .../mp4/sample_mpegh_mhm1.mp4.2.dump | 2 + .../mp4/sample_mpegh_mhm1.mp4.3.dump | 2 + .../sample_mpegh_mhm1.mp4.unknown_length.dump | 2 + .../assets/media/mp4/sample_mhm1_bl_cicp1.mp4 | Bin 0 -> 4996 bytes .../mp4/sample_mhm1_bl_cicp1_fragmented.mp4 | Bin 0 -> 5288 bytes .../media/mp4/sample_mhm1_bl_configchange.mp4 | Bin 0 -> 129565 bytes ...sample_mhm1_bl_configchange_fragmented.mp4 | Bin 0 -> 130585 bytes .../media/mp4/sample_mhm1_lcbl_cicp1.mp4 | Bin 0 -> 5031 bytes .../mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 | Bin 0 -> 5323 bytes .../mp4/sample_mhm1_lcbl_configchange.mp4 | Bin 0 -> 257620 bytes ...mple_mhm1_lcbl_configchange_fragmented.mp4 | Bin 0 -> 130598 bytes 52 files changed, 8850 insertions(+), 209 deletions(-) create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1.mp4 create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4 create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange.mp4 create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange_fragmented.mp4 create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1.mp4 create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange.mp4 create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4 diff --git a/libraries/common/src/main/java/androidx/media3/common/C.java b/libraries/common/src/main/java/androidx/media3/common/C.java index f1264fb560..df6736b80a 100644 --- a/libraries/common/src/main/java/androidx/media3/common/C.java +++ b/libraries/common/src/main/java/androidx/media3/common/C.java @@ -1,28 +1,3 @@ -/*************************************************************************** - -Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, -irrevocable, non-exclusive copyright license with the right to sublicense -through multiple tiers to use, copy, distribute, modify and create -derivative works of the Software Patches for Exoplayer in source code form -and/or object code versions of the software. For the avoidance of doubt, -this license does not include any license to any Fraunhofer patents or any -third-party patents. Since the license is granted without any charge, -Fraunhofer provides the Software Patches for Exoplayer, in accordance with -the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT -WARRANTIES or conditions of any kind, either express or implied, including, -without limitation, any warranties or conditions of title, non-infringement, -merchantability, or fitness for a particular purpose. - -For the purpose of clarity, the provision of the Software Patches for -Exoplayer by Fraunhofer and the use of the same by Google shall be subject -solely to the license stated above. - -This file was originally licensed under the Apache 2.0 license (see license -note below). Fraunhofer has modified this files and provides its copyright -in the modifications to Google under the above terms, which shall not be -considered a contribution under the Apache 2.0 license. - -***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * @@ -1633,51 +1608,4 @@ public final class C { int mediaDrmErrorCode) { return Util.getErrorCodeForMediaDrmErrorCode(mediaDrmErrorCode); } - - @Documented - @Retention(RetentionPolicy.SOURCE) - @IntDef({ - Format.NO_VALUE, - MPEGH_PROFILE_MAIN_L1, - MPEGH_PROFILE_MAIN_L2, - MPEGH_PROFILE_MAIN_L3, - MPEGH_PROFILE_MAIN_L4, - MPEGH_PROFILE_MAIN_L5, - MPEGH_PROFILE_HIGH_L1, - MPEGH_PROFILE_HIGH_L2, - MPEGH_PROFILE_HIGH_L3, - MPEGH_PROFILE_HIGH_L4, - MPEGH_PROFILE_HIGH_L5, - MPEGH_PROFILE_LC_L1, - MPEGH_PROFILE_LC_L2, - MPEGH_PROFILE_LC_L3, - MPEGH_PROFILE_LC_L4, - MPEGH_PROFILE_LC_L5, - MPEGH_PROFILE_BL_L1, - MPEGH_PROFILE_BL_L2, - MPEGH_PROFILE_BL_L3, - MPEGH_PROFILE_BL_L4, - MPEGH_PROFILE_BL_L5 - }) - public @interface MpeghProfileLevelIndication {} - public static final int MPEGH_PROFILE_MAIN_L1 = 1; - public static final int MPEGH_PROFILE_MAIN_L2 = 2; - public static final int MPEGH_PROFILE_MAIN_L3 = 3; - public static final int MPEGH_PROFILE_MAIN_L4 = 4; - public static final int MPEGH_PROFILE_MAIN_L5 = 5; - public static final int MPEGH_PROFILE_HIGH_L1 = 6; - public static final int MPEGH_PROFILE_HIGH_L2 = 7; - public static final int MPEGH_PROFILE_HIGH_L3 = 8; - public static final int MPEGH_PROFILE_HIGH_L4 = 9; - public static final int MPEGH_PROFILE_HIGH_L5 = 10; - public static final int MPEGH_PROFILE_LC_L1 = 11; - public static final int MPEGH_PROFILE_LC_L2 = 12; - public static final int MPEGH_PROFILE_LC_L3 = 13; - public static final int MPEGH_PROFILE_LC_L4 = 14; - public static final int MPEGH_PROFILE_LC_L5 = 15; - public static final int MPEGH_PROFILE_BL_L1 = 16; - public static final int MPEGH_PROFILE_BL_L2 = 17; - public static final int MPEGH_PROFILE_BL_L3 = 18; - public static final int MPEGH_PROFILE_BL_L4 = 19; - public static final int MPEGH_PROFILE_BL_L5 = 20; } diff --git a/libraries/common/src/main/java/androidx/media3/common/Format.java b/libraries/common/src/main/java/androidx/media3/common/Format.java index df3d2a080b..5795a1437b 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Format.java +++ b/libraries/common/src/main/java/androidx/media3/common/Format.java @@ -1,28 +1,3 @@ -/*************************************************************************** - -Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, -irrevocable, non-exclusive copyright license with the right to sublicense -through multiple tiers to use, copy, distribute, modify and create -derivative works of the Software Patches for Exoplayer in source code form -and/or object code versions of the software. For the avoidance of doubt, -this license does not include any license to any Fraunhofer patents or any -third-party patents. Since the license is granted without any charge, -Fraunhofer provides the Software Patches for Exoplayer, in accordance with -the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT -WARRANTIES or conditions of any kind, either express or implied, including, -without limitation, any warranties or conditions of title, non-infringement, -merchantability, or fitness for a particular purpose. - -For the purpose of clarity, the provision of the Software Patches for -Exoplayer by Fraunhofer and the use of the same by Google shall be subject -solely to the license stated above. - -This file was originally licensed under the Apache 2.0 license (see license -note below). Fraunhofer has modified this files and provides its copyright -in the modifications to Google under the above terms, which shall not be -considered a contribution under the Apache 2.0 license. - -***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * @@ -201,10 +176,6 @@ public final class Format implements Bundleable { private int encoderDelay; private int encoderPadding; - @C.MpeghProfileLevelIndication private int mpeghProfileLevelIndication; - private int mpeghReferenceChannelLayout; - @Nullable @C.MpeghProfileLevelIndication private int[] mpeghCompatibleProfileLevelSet; - // Text specific. private int accessibilityChannel; @@ -236,8 +207,6 @@ public final class Format implements Bundleable { channelCount = NO_VALUE; sampleRate = NO_VALUE; pcmEncoding = NO_VALUE; - mpeghProfileLevelIndication = NO_VALUE; - mpeghReferenceChannelLayout = NO_VALUE; // Text specific. accessibilityChannel = NO_VALUE; cueReplacementBehavior = CUE_REPLACEMENT_BEHAVIOR_MERGE; @@ -286,9 +255,6 @@ public final class Format implements Bundleable { this.pcmEncoding = format.pcmEncoding; this.encoderDelay = format.encoderDelay; this.encoderPadding = format.encoderPadding; - this.mpeghReferenceChannelLayout = format.mpeghReferenceChannelLayout; - this.mpeghProfileLevelIndication = format.mpeghProfileLevelIndication; - this.mpeghCompatibleProfileLevelSet = format.mpeghCompatibleProfileLevelSet; // Text specific. this.accessibilityChannel = format.accessibilityChannel; this.cueReplacementBehavior = format.cueReplacementBehavior; @@ -656,19 +622,6 @@ public final class Format implements Bundleable { return this; } - public Builder setMpeghProfileLevelIndication(@C.MpeghProfileLevelIndication int mpeghProfileLevelIndication) { - this.mpeghProfileLevelIndication = mpeghProfileLevelIndication; - return this; - } - public Builder setMpeghReferenceChannelLayout(int mpeghReferenceChannelLayout) { - this.mpeghReferenceChannelLayout = mpeghReferenceChannelLayout; - return this; - } - public Builder setMpeghCompatibleProfileLevelSet(@Nullable @C.MpeghProfileLevelIndication int[] mpeghCompatibleProfileLevelSet) { - this.mpeghCompatibleProfileLevelSet = mpeghCompatibleProfileLevelSet; - return this; - } - // Text specific. /** @@ -942,10 +895,6 @@ public final class Format implements Bundleable { */ @UnstableApi public final int encoderPadding; - @C.MpeghProfileLevelIndication public final int mpeghProfileLevelIndication; - public final int mpeghReferenceChannelLayout; - @Nullable @C.MpeghProfileLevelIndication public final int[] mpeghCompatibleProfileLevelSet; - // Text specific. /** The Accessibility channel, or {@link #NO_VALUE} if not known or applicable. */ @@ -1016,9 +965,6 @@ public final class Format implements Bundleable { pcmEncoding = builder.pcmEncoding; encoderDelay = builder.encoderDelay == NO_VALUE ? 0 : builder.encoderDelay; encoderPadding = builder.encoderPadding == NO_VALUE ? 0 : builder.encoderPadding; - mpeghProfileLevelIndication = builder.mpeghProfileLevelIndication; - mpeghReferenceChannelLayout = builder.mpeghReferenceChannelLayout; - mpeghCompatibleProfileLevelSet = builder.mpeghCompatibleProfileLevelSet; // Text specific. accessibilityChannel = builder.accessibilityChannel; cueReplacementBehavior = builder.cueReplacementBehavior; @@ -1192,9 +1138,6 @@ public final class Format implements Bundleable { result = 31 * result + pcmEncoding; result = 31 * result + encoderDelay; result = 31 * result + encoderPadding; - result = 31 * result + mpeghProfileLevelIndication; - result = 31 * result + mpeghReferenceChannelLayout; - // [Omitted] mpeghCompatibleProfileLevelSet. // Text specific. result = 31 * result + accessibilityChannel; // Image specific. @@ -1235,9 +1178,6 @@ public final class Format implements Bundleable { && pcmEncoding == other.pcmEncoding && encoderDelay == other.encoderDelay && encoderPadding == other.encoderPadding - && mpeghReferenceChannelLayout == other.mpeghReferenceChannelLayout - && mpeghProfileLevelIndication == other.mpeghProfileLevelIndication - && Util.areEqual(mpeghCompatibleProfileLevelSet, other.mpeghCompatibleProfileLevelSet) && accessibilityChannel == other.accessibilityChannel && tileCountHorizontal == other.tileCountHorizontal && tileCountVertical == other.tileCountVertical @@ -1442,9 +1382,6 @@ public final class Format implements Bundleable { private static final String FIELD_CRYPTO_TYPE = Util.intToStringMaxRadix(29); private static final String FIELD_TILE_COUNT_HORIZONTAL = Util.intToStringMaxRadix(30); private static final String FIELD_TILE_COUNT_VERTICAL = Util.intToStringMaxRadix(31); - private static final String FIELD_MPEGH_PROFILE_LEVEL_INDICATION = Util.intToStringMaxRadix(32); - private static final String FIELD_MPEGH_REFERENCE_CHANNEL_LAYOUT = Util.intToStringMaxRadix(33); - private static final String FIELD_MPEGH_COMPATIBLE_PROFILE_LEVEL_SET = Util.intToStringMaxRadix(34); @UnstableApi @Override @@ -1500,9 +1437,6 @@ public final class Format implements Bundleable { bundle.putInt(FIELD_PCM_ENCODING, pcmEncoding); bundle.putInt(FIELD_ENCODER_DELAY, encoderDelay); bundle.putInt(FIELD_ENCODER_PADDING, encoderPadding); - bundle.putInt(FIELD_MPEGH_PROFILE_LEVEL_INDICATION, mpeghProfileLevelIndication); - bundle.putInt(FIELD_MPEGH_REFERENCE_CHANNEL_LAYOUT, mpeghReferenceChannelLayout); - bundle.putIntArray(FIELD_MPEGH_COMPATIBLE_PROFILE_LEVEL_SET, mpeghCompatibleProfileLevelSet); // Text specific. bundle.putInt(FIELD_ACCESSIBILITY_CHANNEL, accessibilityChannel); // Image specific. @@ -1578,12 +1512,6 @@ public final class Format implements Bundleable { .setPcmEncoding(bundle.getInt(FIELD_PCM_ENCODING, DEFAULT.pcmEncoding)) .setEncoderDelay(bundle.getInt(FIELD_ENCODER_DELAY, DEFAULT.encoderDelay)) .setEncoderPadding(bundle.getInt(FIELD_ENCODER_PADDING, DEFAULT.encoderPadding)) - .setMpeghProfileLevelIndication( - bundle.getInt(FIELD_MPEGH_PROFILE_LEVEL_INDICATION, DEFAULT.mpeghProfileLevelIndication)) - .setMpeghReferenceChannelLayout( - bundle.getInt(FIELD_MPEGH_REFERENCE_CHANNEL_LAYOUT, DEFAULT.mpeghReferenceChannelLayout)) - .setMpeghCompatibleProfileLevelSet( - bundle.getIntArray(FIELD_MPEGH_COMPATIBLE_PROFILE_LEVEL_SET)) // Text specific. .setAccessibilityChannel( bundle.getInt(FIELD_ACCESSIBILITY_CHANNEL, DEFAULT.accessibilityChannel)) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java index d9e5bdb292..c5daea2a6d 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Atom.java @@ -1,28 +1,3 @@ -/*************************************************************************** - -Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, -irrevocable, non-exclusive copyright license with the right to sublicense -through multiple tiers to use, copy, distribute, modify and create -derivative works of the Software Patches for Exoplayer in source code form -and/or object code versions of the software. For the avoidance of doubt, -this license does not include any license to any Fraunhofer patents or any -third-party patents. Since the license is granted without any charge, -Fraunhofer provides the Software Patches for Exoplayer, in accordance with -the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT -WARRANTIES or conditions of any kind, either express or implied, including, -without limitation, any warranties or conditions of title, non-infringement, -merchantability, or fitness for a particular purpose. - -For the purpose of clarity, the provision of the Software Patches for -Exoplayer by Fraunhofer and the use of the same by Google shall be subject -solely to the license stated above. - -This file was originally licensed under the Apache 2.0 license (see license -note below). Fraunhofer has modified this files and provides its copyright -in the modifications to Google under the above terms, which shall not be -considered a contribution under the Apache 2.0 license. - -***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java index 2f4e581c1f..d4aa7517ba 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java @@ -1,28 +1,3 @@ -/*************************************************************************** - -Fraunhofer hereby grants to Google free of charge a worldwide, perpetual, -irrevocable, non-exclusive copyright license with the right to sublicense -through multiple tiers to use, copy, distribute, modify and create -derivative works of the Software Patches for Exoplayer in source code form -and/or object code versions of the software. For the avoidance of doubt, -this license does not include any license to any Fraunhofer patents or any -third-party patents. Since the license is granted without any charge, -Fraunhofer provides the Software Patches for Exoplayer, in accordance with -the laws of the Federal Republic of Germany, on an “as is” basis, WITHOUT -WARRANTIES or conditions of any kind, either express or implied, including, -without limitation, any warranties or conditions of title, non-infringement, -merchantability, or fitness for a particular purpose. - -For the purpose of clarity, the provision of the Software Patches for -Exoplayer by Fraunhofer and the use of the same by Google shall be subject -solely to the license stated above. - -This file was originally licensed under the Apache 2.0 license (see license -note below). Fraunhofer has modified this files and provides its copyright -in the modifications to Google under the above terms, which shall not be -considered a contribution under the Apache 2.0 license. - -***************************************************************************/ /* * Copyright (C) 2016 The Android Open Source Project * @@ -1623,9 +1598,6 @@ import java.util.List; int sampleRateMlp = 0; @C.PcmEncoding int pcmEncoding = Format.NO_VALUE; @Nullable String codecs = null; - @C.MpeghProfileLevelIndication int mpeghProfileLevelIndication = Format.NO_VALUE; - int mpeghReferenceChannelLayout = Format.NO_VALUE; - @Nullable @C.MpeghProfileLevelIndication int[] mpeghCompatibleProfileLevelSet = null; @Nullable EsdsData esdsData = null; if (quickTimeSoundDescriptionVersion == 0 || quickTimeSoundDescriptionVersion == 1) { @@ -1754,27 +1726,40 @@ import java.util.List; int mhacHeaderSize = 13; parent.setPosition(childPosition + Atom.HEADER_SIZE); int configurationVersion = parent.readUnsignedByte(); - mpeghProfileLevelIndication = parent.readUnsignedByte(); - mpeghReferenceChannelLayout = parent.readUnsignedByte(); + int mpeghProfileLevelIndication = parent.readUnsignedByte(); + int mpeghReferenceChannelLayout = parent.readUnsignedByte(); if (mimeType.equals(MimeTypes.AUDIO_MPEGH_MHM1)) { - codecs = String.format("mhm1.0x%02X", mpeghProfileLevelIndication); + codecs = String.format("mhm1.%02X", mpeghProfileLevelIndication); } else { - codecs = String.format("mha1.0x%02X", mpeghProfileLevelIndication); + codecs = String.format("mha1.%02X", mpeghProfileLevelIndication); } int mpegh3daConfigLength = parent.readUnsignedShort(); byte[] initializationDataBytes = new byte[mpegh3daConfigLength]; parent.readBytes(initializationDataBytes, 0, mpegh3daConfigLength); - initializationData = ImmutableList.of(initializationDataBytes); + // The mpegh3daConfig should always be the first entry in initializationData. + if (initializationData == null) { + initializationData = ImmutableList.of(initializationDataBytes); + } else { + // We assume that the mhaP box has been parsed before and add the compatible profile level + // sets as the second entry. + initializationData = ImmutableList.of(initializationDataBytes, initializationData.get(0)); + } } else if (childAtomType == Atom.TYPE_mhaP) { // See ISO_IEC_23008-3;2022 MHAProfileAndLevelCompatibilitySetBox // The header consists of: size (4), boxtype 'mhaP' (4), numCompatibleSets (1). int mhapHeaderSize = 9; parent.setPosition(childPosition + Atom.HEADER_SIZE); - int numCompatibleSets = parent.readUnsignedByte(); + int numCompatibleSets = parent.readUnsignedByte(); if (numCompatibleSets > 0) { - mpeghCompatibleProfileLevelSet = new int[numCompatibleSets]; - for (int i = 0; i < numCompatibleSets; i++) { - mpeghCompatibleProfileLevelSet[i] = parent.readUnsignedByte(); + byte[] mpeghCompatibleProfileLevelSet = new byte[numCompatibleSets]; + parent.readBytes(mpeghCompatibleProfileLevelSet, 0, numCompatibleSets); + if (initializationData == null) { + initializationData = ImmutableList.of(mpeghCompatibleProfileLevelSet); + } else { + // We assume that the mhaC box has been parsed before and add the compatible profile + // level sets as the second entry. + initializationData = + ImmutableList.of(initializationData.get(0), mpeghCompatibleProfileLevelSet); } } } else if (childAtomType == Atom.TYPE_esds @@ -1883,9 +1868,6 @@ import java.util.List; .setPcmEncoding(pcmEncoding) .setInitializationData(initializationData) .setDrmInitData(drmInitData) - .setMpeghProfileLevelIndication(mpeghProfileLevelIndication) - .setMpeghReferenceChannelLayout(mpeghReferenceChannelLayout) - .setMpeghCompatibleProfileLevelSet(mpeghCompatibleProfileLevelSet) .setLanguage(language); if (esdsData != null) { diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java index 269ac4291c..ca42f0b1cc 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java @@ -131,6 +131,38 @@ public final class FragmentedMp4ExtractorTest { simulationConfig); } + @Test + public void sampleWithMhm1BlCicp1Track() throws Exception { + ExtractorAsserts.assertBehavior( + getExtractorFactory(ImmutableList.of()), + "media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4", + simulationConfig); + } + + @Test + public void sampleWithMhm1LcblCicp1Track() throws Exception { + ExtractorAsserts.assertBehavior( + getExtractorFactory(ImmutableList.of()), + "media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4", + simulationConfig); + } + + @Test + public void sampleWithMhm1BlConfigChangeTrack() throws Exception { + ExtractorAsserts.assertBehavior( + getExtractorFactory(ImmutableList.of()), + "media/mp4/sample_mhm1_bl_configchange_fragmented.mp4", + simulationConfig); + } + + @Test + public void sampleWithMhm1LcblConfigChangeTrack() throws Exception { + ExtractorAsserts.assertBehavior( + getExtractorFactory(ImmutableList.of()), + "media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4", + simulationConfig); + } + private static ExtractorFactory getExtractorFactory(final List closedCaptionFormats) { return () -> new FragmentedMp4Extractor( diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorTest.java index 4a52f2bbb8..6cd7f22563 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorTest.java @@ -140,4 +140,28 @@ public final class Mp4ExtractorTest { ExtractorAsserts.assertBehavior( Mp4Extractor::new, "media/mp4/sample_with_av1c.mp4", simulationConfig); } + + @Test + public void mp4SampleWithMhm1BlCicp1Track() throws Exception { + ExtractorAsserts.assertBehavior( + Mp4Extractor::new, "media/mp4/sample_mhm1_bl_cicp1.mp4", simulationConfig); + } + + @Test + public void mp4SampleWithMhm1LcBlCicp1Track() throws Exception { + ExtractorAsserts.assertBehavior( + Mp4Extractor::new, "media/mp4/sample_mhm1_lcbl_cicp1.mp4", simulationConfig); + } + + @Test + public void mp4SampleWithMhm1BlConfigChangeTrack() throws Exception { + ExtractorAsserts.assertBehavior( + Mp4Extractor::new, "media/mp4/sample_mhm1_bl_configchange.mp4", simulationConfig); + } + + @Test + public void mp4SampleWithMhm1LcBlConfigChangeTrack() throws Exception { + ExtractorAsserts.assertBehavior( + Mp4Extractor::new, "media/mp4/sample_mhm1_lcbl_configchange.mp4", simulationConfig); + } } diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump new file mode 100644 index 0000000000..061238c48d --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump @@ -0,0 +1,211 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=826]] + getPosition(1) = [[timeUs=1, position=826]] + getPosition(500000) = [[timeUs=500000, position=826]] + getPosition(1000000) = [[timeUs=1000000, position=3054]] +numberOfTracks = 1 +track 0: + total output bytes = 4170 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 365 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189787000] + initializationData: + data = length 60, hash C05CBBFC + sample 0: + time = 0 + flags = 1 + data = length 335, hash 8D9A8041 + 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 9FA4C955 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash 7349D247 + sample 26: + time = 554666 + flags = 0 + data = length 76, hash 63335304 + sample 27: + time = 576000 + flags = 0 + data = length 69, hash 5BA9463B + sample 28: + time = 597333 + flags = 0 + data = length 77, hash 14939B8E + sample 29: + time = 618666 + flags = 0 + data = length 73, hash 7CB696EC + sample 30: + time = 640000 + flags = 0 + data = length 62, hash 60D8A635 + sample 31: + time = 661333 + flags = 0 + data = length 81, hash 2930186C + sample 32: + time = 682666 + flags = 0 + data = length 73, hash 98B39B7B + sample 33: + time = 704000 + flags = 0 + data = length 69, hash F8554057 + sample 34: + time = 725333 + flags = 0 + data = length 79, hash D4207851 + sample 35: + time = 746666 + flags = 0 + data = length 74, hash 29F4B7BA + sample 36: + time = 768000 + flags = 0 + data = length 68, hash 54023ACC + sample 37: + time = 789333 + flags = 0 + data = length 79, hash 2212A7FE + sample 38: + time = 810666 + flags = 0 + data = length 74, hash 29F4B7B9 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 8156AB6 + sample 40: + time = 853333 + flags = 0 + data = length 79, hash 37CA8B53 + sample 41: + time = 874666 + flags = 0 + data = length 74, hash E4ACCCD7 + sample 42: + time = 896000 + flags = 0 + data = length 69, hash F8554081 + sample 43: + time = 917333 + flags = 0 + data = length 79, hash FEEC61CE + sample 44: + time = 938666 + flags = 0 + data = length 74, hash 71B4C816 + sample 45: + time = 960000 + flags = 0 + data = length 81, hash 74B27A40 + sample 46: + time = 981333 + flags = 536870912 + data = length 66, hash 2E45BE0D +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump new file mode 100644 index 0000000000..061238c48d --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump @@ -0,0 +1,211 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=826]] + getPosition(1) = [[timeUs=1, position=826]] + getPosition(500000) = [[timeUs=500000, position=826]] + getPosition(1000000) = [[timeUs=1000000, position=3054]] +numberOfTracks = 1 +track 0: + total output bytes = 4170 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 365 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189787000] + initializationData: + data = length 60, hash C05CBBFC + sample 0: + time = 0 + flags = 1 + data = length 335, hash 8D9A8041 + 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 9FA4C955 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash 7349D247 + sample 26: + time = 554666 + flags = 0 + data = length 76, hash 63335304 + sample 27: + time = 576000 + flags = 0 + data = length 69, hash 5BA9463B + sample 28: + time = 597333 + flags = 0 + data = length 77, hash 14939B8E + sample 29: + time = 618666 + flags = 0 + data = length 73, hash 7CB696EC + sample 30: + time = 640000 + flags = 0 + data = length 62, hash 60D8A635 + sample 31: + time = 661333 + flags = 0 + data = length 81, hash 2930186C + sample 32: + time = 682666 + flags = 0 + data = length 73, hash 98B39B7B + sample 33: + time = 704000 + flags = 0 + data = length 69, hash F8554057 + sample 34: + time = 725333 + flags = 0 + data = length 79, hash D4207851 + sample 35: + time = 746666 + flags = 0 + data = length 74, hash 29F4B7BA + sample 36: + time = 768000 + flags = 0 + data = length 68, hash 54023ACC + sample 37: + time = 789333 + flags = 0 + data = length 79, hash 2212A7FE + sample 38: + time = 810666 + flags = 0 + data = length 74, hash 29F4B7B9 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 8156AB6 + sample 40: + time = 853333 + flags = 0 + data = length 79, hash 37CA8B53 + sample 41: + time = 874666 + flags = 0 + data = length 74, hash E4ACCCD7 + sample 42: + time = 896000 + flags = 0 + data = length 69, hash F8554081 + sample 43: + time = 917333 + flags = 0 + data = length 79, hash FEEC61CE + sample 44: + time = 938666 + flags = 0 + data = length 74, hash 71B4C816 + sample 45: + time = 960000 + flags = 0 + data = length 81, hash 74B27A40 + sample 46: + time = 981333 + flags = 536870912 + data = length 66, hash 2E45BE0D +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump new file mode 100644 index 0000000000..c970e640e5 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump @@ -0,0 +1,115 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=826]] + getPosition(1) = [[timeUs=1, position=826]] + getPosition(500000) = [[timeUs=500000, position=826]] + getPosition(1000000) = [[timeUs=1000000, position=3054]] +numberOfTracks = 1 +track 0: + total output bytes = 1942 + sample count = 23 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 365 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189787000] + initializationData: + data = length 60, hash C05CBBFC + sample 0: + time = 512000 + flags = 1 + data = length 320, hash 9FA4C955 + sample 1: + time = 533333 + flags = 0 + data = length 77, hash 7349D247 + sample 2: + time = 554666 + flags = 0 + data = length 76, hash 63335304 + sample 3: + time = 576000 + flags = 0 + data = length 69, hash 5BA9463B + sample 4: + time = 597333 + flags = 0 + data = length 77, hash 14939B8E + sample 5: + time = 618666 + flags = 0 + data = length 73, hash 7CB696EC + sample 6: + time = 640000 + flags = 0 + data = length 62, hash 60D8A635 + sample 7: + time = 661333 + flags = 0 + data = length 81, hash 2930186C + sample 8: + time = 682666 + flags = 0 + data = length 73, hash 98B39B7B + sample 9: + time = 704000 + flags = 0 + data = length 69, hash F8554057 + sample 10: + time = 725333 + flags = 0 + data = length 79, hash D4207851 + sample 11: + time = 746666 + flags = 0 + data = length 74, hash 29F4B7BA + sample 12: + time = 768000 + flags = 0 + data = length 68, hash 54023ACC + sample 13: + time = 789333 + flags = 0 + data = length 79, hash 2212A7FE + sample 14: + time = 810666 + flags = 0 + data = length 74, hash 29F4B7B9 + sample 15: + time = 832000 + flags = 0 + data = length 69, hash 8156AB6 + sample 16: + time = 853333 + flags = 0 + data = length 79, hash 37CA8B53 + sample 17: + time = 874666 + flags = 0 + data = length 74, hash E4ACCCD7 + sample 18: + time = 896000 + flags = 0 + data = length 69, hash F8554081 + sample 19: + time = 917333 + flags = 0 + data = length 79, hash FEEC61CE + sample 20: + time = 938666 + flags = 0 + data = length 74, hash 71B4C816 + sample 21: + time = 960000 + flags = 0 + data = length 81, hash 74B27A40 + sample 22: + time = 981333 + flags = 536870912 + data = length 66, hash 2E45BE0D +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump new file mode 100644 index 0000000000..c970e640e5 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump @@ -0,0 +1,115 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=826]] + getPosition(1) = [[timeUs=1, position=826]] + getPosition(500000) = [[timeUs=500000, position=826]] + getPosition(1000000) = [[timeUs=1000000, position=3054]] +numberOfTracks = 1 +track 0: + total output bytes = 1942 + sample count = 23 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 365 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189787000] + initializationData: + data = length 60, hash C05CBBFC + sample 0: + time = 512000 + flags = 1 + data = length 320, hash 9FA4C955 + sample 1: + time = 533333 + flags = 0 + data = length 77, hash 7349D247 + sample 2: + time = 554666 + flags = 0 + data = length 76, hash 63335304 + sample 3: + time = 576000 + flags = 0 + data = length 69, hash 5BA9463B + sample 4: + time = 597333 + flags = 0 + data = length 77, hash 14939B8E + sample 5: + time = 618666 + flags = 0 + data = length 73, hash 7CB696EC + sample 6: + time = 640000 + flags = 0 + data = length 62, hash 60D8A635 + sample 7: + time = 661333 + flags = 0 + data = length 81, hash 2930186C + sample 8: + time = 682666 + flags = 0 + data = length 73, hash 98B39B7B + sample 9: + time = 704000 + flags = 0 + data = length 69, hash F8554057 + sample 10: + time = 725333 + flags = 0 + data = length 79, hash D4207851 + sample 11: + time = 746666 + flags = 0 + data = length 74, hash 29F4B7BA + sample 12: + time = 768000 + flags = 0 + data = length 68, hash 54023ACC + sample 13: + time = 789333 + flags = 0 + data = length 79, hash 2212A7FE + sample 14: + time = 810666 + flags = 0 + data = length 74, hash 29F4B7B9 + sample 15: + time = 832000 + flags = 0 + data = length 69, hash 8156AB6 + sample 16: + time = 853333 + flags = 0 + data = length 79, hash 37CA8B53 + sample 17: + time = 874666 + flags = 0 + data = length 74, hash E4ACCCD7 + sample 18: + time = 896000 + flags = 0 + data = length 69, hash F8554081 + sample 19: + time = 917333 + flags = 0 + data = length 79, hash FEEC61CE + sample 20: + time = 938666 + flags = 0 + data = length 74, hash 71B4C816 + sample 21: + time = 960000 + flags = 0 + data = length 81, hash 74B27A40 + sample 22: + time = 981333 + flags = 536870912 + data = length 66, hash 2E45BE0D +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump new file mode 100644 index 0000000000..061238c48d --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump @@ -0,0 +1,211 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=826]] + getPosition(1) = [[timeUs=1, position=826]] + getPosition(500000) = [[timeUs=500000, position=826]] + getPosition(1000000) = [[timeUs=1000000, position=3054]] +numberOfTracks = 1 +track 0: + total output bytes = 4170 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 365 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189787000] + initializationData: + data = length 60, hash C05CBBFC + sample 0: + time = 0 + flags = 1 + data = length 335, hash 8D9A8041 + 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 9FA4C955 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash 7349D247 + sample 26: + time = 554666 + flags = 0 + data = length 76, hash 63335304 + sample 27: + time = 576000 + flags = 0 + data = length 69, hash 5BA9463B + sample 28: + time = 597333 + flags = 0 + data = length 77, hash 14939B8E + sample 29: + time = 618666 + flags = 0 + data = length 73, hash 7CB696EC + sample 30: + time = 640000 + flags = 0 + data = length 62, hash 60D8A635 + sample 31: + time = 661333 + flags = 0 + data = length 81, hash 2930186C + sample 32: + time = 682666 + flags = 0 + data = length 73, hash 98B39B7B + sample 33: + time = 704000 + flags = 0 + data = length 69, hash F8554057 + sample 34: + time = 725333 + flags = 0 + data = length 79, hash D4207851 + sample 35: + time = 746666 + flags = 0 + data = length 74, hash 29F4B7BA + sample 36: + time = 768000 + flags = 0 + data = length 68, hash 54023ACC + sample 37: + time = 789333 + flags = 0 + data = length 79, hash 2212A7FE + sample 38: + time = 810666 + flags = 0 + data = length 74, hash 29F4B7B9 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 8156AB6 + sample 40: + time = 853333 + flags = 0 + data = length 79, hash 37CA8B53 + sample 41: + time = 874666 + flags = 0 + data = length 74, hash E4ACCCD7 + sample 42: + time = 896000 + flags = 0 + data = length 69, hash F8554081 + sample 43: + time = 917333 + flags = 0 + data = length 79, hash FEEC61CE + sample 44: + time = 938666 + flags = 0 + data = length 74, hash 71B4C816 + sample 45: + time = 960000 + flags = 0 + data = length 81, hash 74B27A40 + sample 46: + time = 981333 + flags = 536870912 + data = length 66, hash 2E45BE0D +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump new file mode 100644 index 0000000000..704d95fa53 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump @@ -0,0 +1,206 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=634]] +numberOfTracks = 1 +track 0: + total output bytes = 4170 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + channelCount = 0 + sampleRate = 48000 + language = und + initializationData: + data = length 60, hash C05CBBFC + sample 0: + time = 0 + flags = 1 + data = length 335, hash 8D9A8041 + 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 9FA4C955 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash 7349D247 + sample 26: + time = 554666 + flags = 0 + data = length 76, hash 63335304 + sample 27: + time = 576000 + flags = 0 + data = length 69, hash 5BA9463B + sample 28: + time = 597333 + flags = 0 + data = length 77, hash 14939B8E + sample 29: + time = 618666 + flags = 0 + data = length 73, hash 7CB696EC + sample 30: + time = 640000 + flags = 0 + data = length 62, hash 60D8A635 + sample 31: + time = 661333 + flags = 0 + data = length 81, hash 2930186C + sample 32: + time = 682666 + flags = 0 + data = length 73, hash 98B39B7B + sample 33: + time = 704000 + flags = 0 + data = length 69, hash F8554057 + sample 34: + time = 725333 + flags = 0 + data = length 79, hash D4207851 + sample 35: + time = 746666 + flags = 0 + data = length 74, hash 29F4B7BA + sample 36: + time = 768000 + flags = 0 + data = length 68, hash 54023ACC + sample 37: + time = 789333 + flags = 0 + data = length 79, hash 2212A7FE + sample 38: + time = 810666 + flags = 0 + data = length 74, hash 29F4B7B9 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 8156AB6 + sample 40: + time = 853333 + flags = 0 + data = length 79, hash 37CA8B53 + sample 41: + time = 874666 + flags = 0 + data = length 74, hash E4ACCCD7 + sample 42: + time = 896000 + flags = 0 + data = length 69, hash F8554081 + sample 43: + time = 917333 + flags = 0 + data = length 79, hash FEEC61CE + sample 44: + time = 938666 + flags = 0 + data = length 74, hash 71B4C816 + sample 45: + time = 960000 + flags = 0 + data = length 81, hash 74B27A40 + sample 46: + time = 981333 + flags = 0 + data = length 66, hash 2E45BE0D +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump new file mode 100644 index 0000000000..704d95fa53 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump @@ -0,0 +1,206 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=634]] +numberOfTracks = 1 +track 0: + total output bytes = 4170 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + channelCount = 0 + sampleRate = 48000 + language = und + initializationData: + data = length 60, hash C05CBBFC + sample 0: + time = 0 + flags = 1 + data = length 335, hash 8D9A8041 + 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 9FA4C955 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash 7349D247 + sample 26: + time = 554666 + flags = 0 + data = length 76, hash 63335304 + sample 27: + time = 576000 + flags = 0 + data = length 69, hash 5BA9463B + sample 28: + time = 597333 + flags = 0 + data = length 77, hash 14939B8E + sample 29: + time = 618666 + flags = 0 + data = length 73, hash 7CB696EC + sample 30: + time = 640000 + flags = 0 + data = length 62, hash 60D8A635 + sample 31: + time = 661333 + flags = 0 + data = length 81, hash 2930186C + sample 32: + time = 682666 + flags = 0 + data = length 73, hash 98B39B7B + sample 33: + time = 704000 + flags = 0 + data = length 69, hash F8554057 + sample 34: + time = 725333 + flags = 0 + data = length 79, hash D4207851 + sample 35: + time = 746666 + flags = 0 + data = length 74, hash 29F4B7BA + sample 36: + time = 768000 + flags = 0 + data = length 68, hash 54023ACC + sample 37: + time = 789333 + flags = 0 + data = length 79, hash 2212A7FE + sample 38: + time = 810666 + flags = 0 + data = length 74, hash 29F4B7B9 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 8156AB6 + sample 40: + time = 853333 + flags = 0 + data = length 79, hash 37CA8B53 + sample 41: + time = 874666 + flags = 0 + data = length 74, hash E4ACCCD7 + sample 42: + time = 896000 + flags = 0 + data = length 69, hash F8554081 + sample 43: + time = 917333 + flags = 0 + data = length 79, hash FEEC61CE + sample 44: + time = 938666 + flags = 0 + data = length 74, hash 71B4C816 + sample 45: + time = 960000 + flags = 0 + data = length 81, hash 74B27A40 + sample 46: + time = 981333 + flags = 0 + data = length 66, hash 2E45BE0D +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump new file mode 100644 index 0000000000..fb61fab254 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump @@ -0,0 +1,595 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=13281]] + getPosition(3000000) = [[timeUs=3000000, position=118721]] +numberOfTracks = 1 +track 0: + total output bytes = 128279 + sample count = 143 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 2078 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189743000] + 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 158, hash 37B039AC + sample 21: + time = 448000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 22: + time = 469333 + flags = 0 + data = length 159, hash 95787660 + sample 23: + time = 490666 + flags = 0 + data = length 161, hash 16788957 + sample 24: + time = 512000 + flags = 1 + data = length 491, hash E4A095D9 + sample 25: + time = 533333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 26: + time = 554666 + flags = 0 + data = length 158, hash BA6B70A1 + sample 27: + time = 576000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 28: + time = 597333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 29: + time = 618666 + flags = 0 + data = length 158, hash BA6B709B + sample 30: + time = 640000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 31: + time = 661333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 32: + time = 682666 + flags = 0 + data = length 158, hash BA6B70A5 + sample 33: + time = 704000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 34: + time = 725333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 35: + time = 746666 + flags = 0 + data = length 158, hash BA6B708A + sample 36: + time = 768000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 37: + time = 789333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 38: + time = 810666 + flags = 0 + data = length 134, hash E78A2560 + sample 39: + time = 832000 + flags = 0 + data = length 137, hash AED0A139 + sample 40: + time = 853333 + flags = 0 + data = length 140, hash 554CB5DF + sample 41: + time = 874666 + flags = 0 + data = length 119, hash 2C238137 + sample 42: + time = 896000 + flags = 0 + data = length 163, hash 2223D99B + sample 43: + time = 917333 + flags = 0 + data = length 157, hash CB2B0DA9 + sample 44: + time = 938666 + flags = 0 + data = length 157, hash 5DEF94E6 + sample 45: + time = 960000 + flags = 0 + data = length 201, hash 8F3FC720 + sample 46: + time = 981333 + flags = 0 + data = length 212, hash 16161E7E + sample 47: + time = 1000000 + flags = 1 + data = length 1889, hash 52B16452 + sample 48: + time = 1002666 + flags = 0 + data = length 1946, hash 7CBAD516 + sample 49: + time = 1024000 + flags = 1 + data = length 1943, hash D2337230 + sample 50: + time = 1045333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 51: + time = 1066666 + flags = 0 + data = length 1946, hash E699F72C + sample 52: + time = 1088000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 53: + time = 1109333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 54: + time = 1130666 + flags = 0 + data = length 1946, hash E699F72E + sample 55: + time = 1152000 + flags = 0 + data = length 1946, hash EDE7C06D + sample 56: + time = 1173333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 57: + time = 1194666 + flags = 0 + data = length 1946, hash E699F737 + sample 58: + time = 1216000 + flags = 0 + data = length 1946, hash EDE7C06F + sample 59: + time = 1237333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 60: + time = 1258666 + flags = 0 + data = length 1946, hash E699F72D + sample 61: + time = 1280000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 62: + time = 1301333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 63: + time = 1322666 + flags = 0 + data = length 1946, hash E699F731 + sample 64: + time = 1344000 + flags = 0 + data = length 1946, hash EDE7C06E + sample 65: + time = 1365333 + flags = 0 + data = length 1990, hash 8176E8F8 + sample 66: + time = 1386666 + flags = 0 + data = length 2048, hash 409F44AB + sample 67: + time = 1408000 + flags = 0 + data = length 2048, hash 5431547E + sample 68: + time = 1429333 + flags = 0 + data = length 2048, hash 1193639E + sample 69: + time = 1450666 + flags = 0 + data = length 2048, hash 409F44AD + sample 70: + time = 1472000 + flags = 0 + data = length 2048, hash 5431547F + sample 71: + time = 1493333 + flags = 0 + data = length 2048, hash 184105C3 + sample 72: + time = 1514666 + flags = 0 + data = length 2048, hash 8308185C + sample 73: + time = 1536000 + flags = 1 + data = length 2045, hash CB73C51D + sample 74: + time = 1557333 + flags = 0 + data = length 2048, hash 1193639E + sample 75: + time = 1578666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 76: + time = 1600000 + flags = 0 + data = length 2048, hash 5431547E + sample 77: + time = 1621333 + flags = 0 + data = length 2048, hash 1193639D + sample 78: + time = 1642666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 79: + time = 1664000 + flags = 0 + data = length 2048, hash 5431547E + sample 80: + time = 1685333 + flags = 0 + data = length 2048, hash 1193639D + sample 81: + time = 1706666 + flags = 0 + data = length 2048, hash 409F44AA + sample 82: + time = 1728000 + flags = 0 + data = length 2048, hash 5431547F + sample 83: + time = 1749333 + flags = 0 + data = length 2048, hash 1193639D + sample 84: + time = 1770666 + flags = 0 + data = length 2048, hash 409F44AC + sample 85: + time = 1792000 + flags = 0 + data = length 2048, hash 5431547E + sample 86: + time = 1813333 + flags = 0 + data = length 2048, hash 1193639D + sample 87: + time = 1834666 + flags = 0 + data = length 2048, hash 409F44AE + sample 88: + time = 1856000 + flags = 0 + data = length 2048, hash 5431547D + sample 89: + time = 1877333 + flags = 0 + data = length 2048, hash 1193639E + sample 90: + time = 1898666 + flags = 0 + data = length 2048, hash 409F44B6 + sample 91: + time = 1920000 + flags = 0 + data = length 2048, hash 5431547F + sample 92: + time = 1941333 + flags = 0 + data = length 2048, hash 1193639E + sample 93: + time = 1962666 + flags = 0 + data = length 2048, hash 9C157230 + sample 94: + time = 1984000 + flags = 0 + data = length 1946, hash 4A0BC4F0 + sample 95: + time = 2000000 + flags = 1 + data = length 744, hash 5DDA64AA + sample 96: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 97: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 98: + time = 2048000 + flags = 1 + data = length 811, hash 8342FA71 + sample 99: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 100: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 101: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 102: + time = 2133333 + flags = 0 + data = length 481, hash 7A8A4708 + sample 103: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 104: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 105: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 106: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 107: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 108: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 109: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 110: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 111: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 112: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 113: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 114: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 115: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 116: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 117: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 118: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 119: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 120: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 121: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 122: + time = 2560000 + flags = 1 + data = length 814, hash 34823CE2 + sample 123: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 124: + time = 2602666 + flags = 0 + data = length 423, hash 390144D7 + sample 125: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 126: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 127: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 128: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 129: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 130: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 131: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 132: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 133: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 134: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 135: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 136: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 137: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 138: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 139: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 140: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 141: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 142: + time = 2986666 + flags = 536870912 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump new file mode 100644 index 0000000000..cc10b5e943 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump @@ -0,0 +1,407 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=13281]] + getPosition(3000000) = [[timeUs=3000000, position=118721]] +numberOfTracks = 1 +track 0: + total output bytes = 120119 + sample count = 96 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 2078 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189743000] + initializationData: + data = length 64, hash DB1F936C + sample 0: + time = 1000000 + flags = 1 + data = length 1889, hash 52B16452 + sample 1: + time = 1002666 + flags = 0 + data = length 1946, hash 7CBAD516 + sample 2: + time = 1024000 + flags = 1 + data = length 1943, hash D2337230 + sample 3: + time = 1045333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 4: + time = 1066666 + flags = 0 + data = length 1946, hash E699F72C + sample 5: + time = 1088000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 6: + time = 1109333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 7: + time = 1130666 + flags = 0 + data = length 1946, hash E699F72E + sample 8: + time = 1152000 + flags = 0 + data = length 1946, hash EDE7C06D + sample 9: + time = 1173333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 10: + time = 1194666 + flags = 0 + data = length 1946, hash E699F737 + sample 11: + time = 1216000 + flags = 0 + data = length 1946, hash EDE7C06F + sample 12: + time = 1237333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 13: + time = 1258666 + flags = 0 + data = length 1946, hash E699F72D + sample 14: + time = 1280000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 15: + time = 1301333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 16: + time = 1322666 + flags = 0 + data = length 1946, hash E699F731 + sample 17: + time = 1344000 + flags = 0 + data = length 1946, hash EDE7C06E + sample 18: + time = 1365333 + flags = 0 + data = length 1990, hash 8176E8F8 + sample 19: + time = 1386666 + flags = 0 + data = length 2048, hash 409F44AB + sample 20: + time = 1408000 + flags = 0 + data = length 2048, hash 5431547E + sample 21: + time = 1429333 + flags = 0 + data = length 2048, hash 1193639E + sample 22: + time = 1450666 + flags = 0 + data = length 2048, hash 409F44AD + sample 23: + time = 1472000 + flags = 0 + data = length 2048, hash 5431547F + sample 24: + time = 1493333 + flags = 0 + data = length 2048, hash 184105C3 + sample 25: + time = 1514666 + flags = 0 + data = length 2048, hash 8308185C + sample 26: + time = 1536000 + flags = 1 + data = length 2045, hash CB73C51D + sample 27: + time = 1557333 + flags = 0 + data = length 2048, hash 1193639E + sample 28: + time = 1578666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 29: + time = 1600000 + flags = 0 + data = length 2048, hash 5431547E + sample 30: + time = 1621333 + flags = 0 + data = length 2048, hash 1193639D + sample 31: + time = 1642666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 32: + time = 1664000 + flags = 0 + data = length 2048, hash 5431547E + sample 33: + time = 1685333 + flags = 0 + data = length 2048, hash 1193639D + sample 34: + time = 1706666 + flags = 0 + data = length 2048, hash 409F44AA + sample 35: + time = 1728000 + flags = 0 + data = length 2048, hash 5431547F + sample 36: + time = 1749333 + flags = 0 + data = length 2048, hash 1193639D + sample 37: + time = 1770666 + flags = 0 + data = length 2048, hash 409F44AC + sample 38: + time = 1792000 + flags = 0 + data = length 2048, hash 5431547E + sample 39: + time = 1813333 + flags = 0 + data = length 2048, hash 1193639D + sample 40: + time = 1834666 + flags = 0 + data = length 2048, hash 409F44AE + sample 41: + time = 1856000 + flags = 0 + data = length 2048, hash 5431547D + sample 42: + time = 1877333 + flags = 0 + data = length 2048, hash 1193639E + sample 43: + time = 1898666 + flags = 0 + data = length 2048, hash 409F44B6 + sample 44: + time = 1920000 + flags = 0 + data = length 2048, hash 5431547F + sample 45: + time = 1941333 + flags = 0 + data = length 2048, hash 1193639E + sample 46: + time = 1962666 + flags = 0 + data = length 2048, hash 9C157230 + sample 47: + time = 1984000 + flags = 0 + data = length 1946, hash 4A0BC4F0 + sample 48: + time = 2000000 + flags = 1 + data = length 744, hash 5DDA64AA + sample 49: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 50: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 51: + time = 2048000 + flags = 1 + data = length 811, hash 8342FA71 + sample 52: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 53: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 54: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 55: + time = 2133333 + flags = 0 + data = length 481, hash 7A8A4708 + sample 56: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 57: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 58: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 59: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 60: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 61: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 62: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 63: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 64: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 65: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 66: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 67: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 68: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 69: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 70: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 71: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 72: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 73: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 74: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 75: + time = 2560000 + flags = 1 + data = length 814, hash 34823CE2 + sample 76: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 77: + time = 2602666 + flags = 0 + data = length 423, hash 390144D7 + sample 78: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 79: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 80: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 81: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 82: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 83: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 84: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 85: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 86: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 87: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 88: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 89: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 90: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 91: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 92: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 93: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 94: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 95: + time = 2986666 + flags = 536870912 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump new file mode 100644 index 0000000000..2e022c6246 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump @@ -0,0 +1,215 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=13281]] + getPosition(3000000) = [[timeUs=3000000, position=118721]] +numberOfTracks = 1 +track 0: + total output bytes = 23874 + sample count = 48 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 2078 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189743000] + initializationData: + data = length 64, hash DB1F936C + sample 0: + time = 2000000 + flags = 1 + data = length 744, hash 5DDA64AA + sample 1: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 2: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 3: + time = 2048000 + flags = 1 + data = length 811, hash 8342FA71 + sample 4: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 5: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 6: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 7: + time = 2133333 + flags = 0 + data = length 481, hash 7A8A4708 + sample 8: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 9: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 10: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 11: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 12: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 13: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 14: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 15: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 16: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 17: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 18: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 19: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 20: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 21: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 22: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 23: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 24: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 25: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 26: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 27: + time = 2560000 + flags = 1 + data = length 814, hash 34823CE2 + sample 28: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 29: + time = 2602666 + flags = 0 + data = length 423, hash 390144D7 + sample 30: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 31: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 32: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 33: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 34: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 35: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 36: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 37: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 38: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 39: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 40: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 41: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 42: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 43: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 44: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 45: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 46: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 47: + time = 2986666 + flags = 536870912 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump new file mode 100644 index 0000000000..6d68e91793 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump @@ -0,0 +1,107 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=13281]] + getPosition(3000000) = [[timeUs=3000000, position=118721]] +numberOfTracks = 1 +track 0: + total output bytes = 10844 + sample count = 21 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 2078 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189743000] + initializationData: + data = length 64, hash DB1F936C + sample 0: + time = 2560000 + flags = 1 + data = length 814, hash 34823CE2 + sample 1: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 2: + time = 2602666 + flags = 0 + data = length 423, hash 390144D7 + sample 3: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 4: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 5: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 6: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 7: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 8: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 9: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 10: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 11: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 12: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 13: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 14: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 15: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 16: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 17: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 18: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 19: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 20: + time = 2986666 + flags = 536870912 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump new file mode 100644 index 0000000000..fb61fab254 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump @@ -0,0 +1,595 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=13281]] + getPosition(3000000) = [[timeUs=3000000, position=118721]] +numberOfTracks = 1 +track 0: + total output bytes = 128279 + sample count = 143 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 2078 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189743000] + 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 158, hash 37B039AC + sample 21: + time = 448000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 22: + time = 469333 + flags = 0 + data = length 159, hash 95787660 + sample 23: + time = 490666 + flags = 0 + data = length 161, hash 16788957 + sample 24: + time = 512000 + flags = 1 + data = length 491, hash E4A095D9 + sample 25: + time = 533333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 26: + time = 554666 + flags = 0 + data = length 158, hash BA6B70A1 + sample 27: + time = 576000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 28: + time = 597333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 29: + time = 618666 + flags = 0 + data = length 158, hash BA6B709B + sample 30: + time = 640000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 31: + time = 661333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 32: + time = 682666 + flags = 0 + data = length 158, hash BA6B70A5 + sample 33: + time = 704000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 34: + time = 725333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 35: + time = 746666 + flags = 0 + data = length 158, hash BA6B708A + sample 36: + time = 768000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 37: + time = 789333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 38: + time = 810666 + flags = 0 + data = length 134, hash E78A2560 + sample 39: + time = 832000 + flags = 0 + data = length 137, hash AED0A139 + sample 40: + time = 853333 + flags = 0 + data = length 140, hash 554CB5DF + sample 41: + time = 874666 + flags = 0 + data = length 119, hash 2C238137 + sample 42: + time = 896000 + flags = 0 + data = length 163, hash 2223D99B + sample 43: + time = 917333 + flags = 0 + data = length 157, hash CB2B0DA9 + sample 44: + time = 938666 + flags = 0 + data = length 157, hash 5DEF94E6 + sample 45: + time = 960000 + flags = 0 + data = length 201, hash 8F3FC720 + sample 46: + time = 981333 + flags = 0 + data = length 212, hash 16161E7E + sample 47: + time = 1000000 + flags = 1 + data = length 1889, hash 52B16452 + sample 48: + time = 1002666 + flags = 0 + data = length 1946, hash 7CBAD516 + sample 49: + time = 1024000 + flags = 1 + data = length 1943, hash D2337230 + sample 50: + time = 1045333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 51: + time = 1066666 + flags = 0 + data = length 1946, hash E699F72C + sample 52: + time = 1088000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 53: + time = 1109333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 54: + time = 1130666 + flags = 0 + data = length 1946, hash E699F72E + sample 55: + time = 1152000 + flags = 0 + data = length 1946, hash EDE7C06D + sample 56: + time = 1173333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 57: + time = 1194666 + flags = 0 + data = length 1946, hash E699F737 + sample 58: + time = 1216000 + flags = 0 + data = length 1946, hash EDE7C06F + sample 59: + time = 1237333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 60: + time = 1258666 + flags = 0 + data = length 1946, hash E699F72D + sample 61: + time = 1280000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 62: + time = 1301333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 63: + time = 1322666 + flags = 0 + data = length 1946, hash E699F731 + sample 64: + time = 1344000 + flags = 0 + data = length 1946, hash EDE7C06E + sample 65: + time = 1365333 + flags = 0 + data = length 1990, hash 8176E8F8 + sample 66: + time = 1386666 + flags = 0 + data = length 2048, hash 409F44AB + sample 67: + time = 1408000 + flags = 0 + data = length 2048, hash 5431547E + sample 68: + time = 1429333 + flags = 0 + data = length 2048, hash 1193639E + sample 69: + time = 1450666 + flags = 0 + data = length 2048, hash 409F44AD + sample 70: + time = 1472000 + flags = 0 + data = length 2048, hash 5431547F + sample 71: + time = 1493333 + flags = 0 + data = length 2048, hash 184105C3 + sample 72: + time = 1514666 + flags = 0 + data = length 2048, hash 8308185C + sample 73: + time = 1536000 + flags = 1 + data = length 2045, hash CB73C51D + sample 74: + time = 1557333 + flags = 0 + data = length 2048, hash 1193639E + sample 75: + time = 1578666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 76: + time = 1600000 + flags = 0 + data = length 2048, hash 5431547E + sample 77: + time = 1621333 + flags = 0 + data = length 2048, hash 1193639D + sample 78: + time = 1642666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 79: + time = 1664000 + flags = 0 + data = length 2048, hash 5431547E + sample 80: + time = 1685333 + flags = 0 + data = length 2048, hash 1193639D + sample 81: + time = 1706666 + flags = 0 + data = length 2048, hash 409F44AA + sample 82: + time = 1728000 + flags = 0 + data = length 2048, hash 5431547F + sample 83: + time = 1749333 + flags = 0 + data = length 2048, hash 1193639D + sample 84: + time = 1770666 + flags = 0 + data = length 2048, hash 409F44AC + sample 85: + time = 1792000 + flags = 0 + data = length 2048, hash 5431547E + sample 86: + time = 1813333 + flags = 0 + data = length 2048, hash 1193639D + sample 87: + time = 1834666 + flags = 0 + data = length 2048, hash 409F44AE + sample 88: + time = 1856000 + flags = 0 + data = length 2048, hash 5431547D + sample 89: + time = 1877333 + flags = 0 + data = length 2048, hash 1193639E + sample 90: + time = 1898666 + flags = 0 + data = length 2048, hash 409F44B6 + sample 91: + time = 1920000 + flags = 0 + data = length 2048, hash 5431547F + sample 92: + time = 1941333 + flags = 0 + data = length 2048, hash 1193639E + sample 93: + time = 1962666 + flags = 0 + data = length 2048, hash 9C157230 + sample 94: + time = 1984000 + flags = 0 + data = length 1946, hash 4A0BC4F0 + sample 95: + time = 2000000 + flags = 1 + data = length 744, hash 5DDA64AA + sample 96: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 97: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 98: + time = 2048000 + flags = 1 + data = length 811, hash 8342FA71 + sample 99: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 100: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 101: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 102: + time = 2133333 + flags = 0 + data = length 481, hash 7A8A4708 + sample 103: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 104: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 105: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 106: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 107: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 108: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 109: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 110: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 111: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 112: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 113: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 114: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 115: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 116: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 117: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 118: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 119: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 120: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 121: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 122: + time = 2560000 + flags = 1 + data = length 814, hash 34823CE2 + sample 123: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 124: + time = 2602666 + flags = 0 + data = length 423, hash 390144D7 + sample 125: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 126: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 127: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 128: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 129: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 130: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 131: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 132: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 133: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 134: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 135: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 136: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 137: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 138: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 139: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 140: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 141: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 142: + time = 2986666 + flags = 536870912 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump new file mode 100644 index 0000000000..6d9d17feb0 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump @@ -0,0 +1,590 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=638]] +numberOfTracks = 1 +track 0: + total output bytes = 128279 + sample count = 143 + 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 158, hash 37B039AC + sample 21: + time = 448000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 22: + time = 469333 + flags = 0 + data = length 159, hash 95787660 + sample 23: + time = 490666 + flags = 0 + data = length 161, hash 16788957 + sample 24: + time = 512000 + flags = 1 + data = length 491, hash E4A095D9 + sample 25: + time = 533333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 26: + time = 554666 + flags = 0 + data = length 158, hash BA6B70A1 + sample 27: + time = 576000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 28: + time = 597333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 29: + time = 618666 + flags = 0 + data = length 158, hash BA6B709B + sample 30: + time = 640000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 31: + time = 661333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 32: + time = 682666 + flags = 0 + data = length 158, hash BA6B70A5 + sample 33: + time = 704000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 34: + time = 725333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 35: + time = 746666 + flags = 0 + data = length 158, hash BA6B708A + sample 36: + time = 768000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 37: + time = 789333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 38: + time = 810666 + flags = 0 + data = length 134, hash E78A2560 + sample 39: + time = 832000 + flags = 0 + data = length 137, hash AED0A139 + sample 40: + time = 853333 + flags = 0 + data = length 140, hash 554CB5DF + sample 41: + time = 874666 + flags = 0 + data = length 119, hash 2C238137 + sample 42: + time = 896000 + flags = 0 + data = length 163, hash 2223D99B + sample 43: + time = 917333 + flags = 0 + data = length 157, hash CB2B0DA9 + sample 44: + time = 938666 + flags = 0 + data = length 157, hash 5DEF94E6 + sample 45: + time = 960000 + flags = 0 + data = length 201, hash 8F3FC720 + sample 46: + time = 981333 + flags = 0 + data = length 212, hash 16161E7E + sample 47: + time = 1000000 + flags = 1 + data = length 1889, hash 52B16452 + sample 48: + time = 1002666 + flags = 0 + data = length 1946, hash 7CBAD516 + sample 49: + time = 1024000 + flags = 1 + data = length 1943, hash D2337230 + sample 50: + time = 1045333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 51: + time = 1066666 + flags = 0 + data = length 1946, hash E699F72C + sample 52: + time = 1088000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 53: + time = 1109333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 54: + time = 1130666 + flags = 0 + data = length 1946, hash E699F72E + sample 55: + time = 1152000 + flags = 0 + data = length 1946, hash EDE7C06D + sample 56: + time = 1173333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 57: + time = 1194666 + flags = 0 + data = length 1946, hash E699F737 + sample 58: + time = 1216000 + flags = 0 + data = length 1946, hash EDE7C06F + sample 59: + time = 1237333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 60: + time = 1258666 + flags = 0 + data = length 1946, hash E699F72D + sample 61: + time = 1280000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 62: + time = 1301333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 63: + time = 1322666 + flags = 0 + data = length 1946, hash E699F731 + sample 64: + time = 1344000 + flags = 0 + data = length 1946, hash EDE7C06E + sample 65: + time = 1365333 + flags = 0 + data = length 1990, hash 8176E8F8 + sample 66: + time = 1386666 + flags = 0 + data = length 2048, hash 409F44AB + sample 67: + time = 1408000 + flags = 0 + data = length 2048, hash 5431547E + sample 68: + time = 1429333 + flags = 0 + data = length 2048, hash 1193639E + sample 69: + time = 1450666 + flags = 0 + data = length 2048, hash 409F44AD + sample 70: + time = 1472000 + flags = 0 + data = length 2048, hash 5431547F + sample 71: + time = 1493333 + flags = 0 + data = length 2048, hash 184105C3 + sample 72: + time = 1514666 + flags = 0 + data = length 2048, hash 8308185C + sample 73: + time = 1536000 + flags = 1 + data = length 2045, hash CB73C51D + sample 74: + time = 1557333 + flags = 0 + data = length 2048, hash 1193639E + sample 75: + time = 1578666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 76: + time = 1600000 + flags = 0 + data = length 2048, hash 5431547E + sample 77: + time = 1621333 + flags = 0 + data = length 2048, hash 1193639D + sample 78: + time = 1642666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 79: + time = 1664000 + flags = 0 + data = length 2048, hash 5431547E + sample 80: + time = 1685333 + flags = 0 + data = length 2048, hash 1193639D + sample 81: + time = 1706666 + flags = 0 + data = length 2048, hash 409F44AA + sample 82: + time = 1728000 + flags = 0 + data = length 2048, hash 5431547F + sample 83: + time = 1749333 + flags = 0 + data = length 2048, hash 1193639D + sample 84: + time = 1770666 + flags = 0 + data = length 2048, hash 409F44AC + sample 85: + time = 1792000 + flags = 0 + data = length 2048, hash 5431547E + sample 86: + time = 1813333 + flags = 0 + data = length 2048, hash 1193639D + sample 87: + time = 1834666 + flags = 0 + data = length 2048, hash 409F44AE + sample 88: + time = 1856000 + flags = 0 + data = length 2048, hash 5431547D + sample 89: + time = 1877333 + flags = 0 + data = length 2048, hash 1193639E + sample 90: + time = 1898666 + flags = 0 + data = length 2048, hash 409F44B6 + sample 91: + time = 1920000 + flags = 0 + data = length 2048, hash 5431547F + sample 92: + time = 1941333 + flags = 0 + data = length 2048, hash 1193639E + sample 93: + time = 1962666 + flags = 0 + data = length 2048, hash 9C157230 + sample 94: + time = 1984000 + flags = 0 + data = length 1946, hash 4A0BC4F0 + sample 95: + time = 2000000 + flags = 1 + data = length 744, hash 5DDA64AA + sample 96: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 97: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 98: + time = 2048000 + flags = 1 + data = length 811, hash 8342FA71 + sample 99: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 100: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 101: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 102: + time = 2133333 + flags = 0 + data = length 481, hash 7A8A4708 + sample 103: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 104: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 105: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 106: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 107: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 108: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 109: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 110: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 111: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 112: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 113: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 114: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 115: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 116: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 117: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 118: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 119: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 120: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 121: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 122: + time = 2560000 + flags = 1 + data = length 814, hash 34823CE2 + sample 123: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 124: + time = 2602666 + flags = 0 + data = length 423, hash 390144D7 + sample 125: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 126: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 127: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 128: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 129: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 130: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 131: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 132: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 133: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 134: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 135: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 136: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 137: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 138: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 139: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 140: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 141: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 142: + time = 2986666 + flags = 0 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump new file mode 100644 index 0000000000..6d9d17feb0 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump @@ -0,0 +1,590 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=638]] +numberOfTracks = 1 +track 0: + total output bytes = 128279 + sample count = 143 + 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 158, hash 37B039AC + sample 21: + time = 448000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 22: + time = 469333 + flags = 0 + data = length 159, hash 95787660 + sample 23: + time = 490666 + flags = 0 + data = length 161, hash 16788957 + sample 24: + time = 512000 + flags = 1 + data = length 491, hash E4A095D9 + sample 25: + time = 533333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 26: + time = 554666 + flags = 0 + data = length 158, hash BA6B70A1 + sample 27: + time = 576000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 28: + time = 597333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 29: + time = 618666 + flags = 0 + data = length 158, hash BA6B709B + sample 30: + time = 640000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 31: + time = 661333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 32: + time = 682666 + flags = 0 + data = length 158, hash BA6B70A5 + sample 33: + time = 704000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 34: + time = 725333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 35: + time = 746666 + flags = 0 + data = length 158, hash BA6B708A + sample 36: + time = 768000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 37: + time = 789333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 38: + time = 810666 + flags = 0 + data = length 134, hash E78A2560 + sample 39: + time = 832000 + flags = 0 + data = length 137, hash AED0A139 + sample 40: + time = 853333 + flags = 0 + data = length 140, hash 554CB5DF + sample 41: + time = 874666 + flags = 0 + data = length 119, hash 2C238137 + sample 42: + time = 896000 + flags = 0 + data = length 163, hash 2223D99B + sample 43: + time = 917333 + flags = 0 + data = length 157, hash CB2B0DA9 + sample 44: + time = 938666 + flags = 0 + data = length 157, hash 5DEF94E6 + sample 45: + time = 960000 + flags = 0 + data = length 201, hash 8F3FC720 + sample 46: + time = 981333 + flags = 0 + data = length 212, hash 16161E7E + sample 47: + time = 1000000 + flags = 1 + data = length 1889, hash 52B16452 + sample 48: + time = 1002666 + flags = 0 + data = length 1946, hash 7CBAD516 + sample 49: + time = 1024000 + flags = 1 + data = length 1943, hash D2337230 + sample 50: + time = 1045333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 51: + time = 1066666 + flags = 0 + data = length 1946, hash E699F72C + sample 52: + time = 1088000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 53: + time = 1109333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 54: + time = 1130666 + flags = 0 + data = length 1946, hash E699F72E + sample 55: + time = 1152000 + flags = 0 + data = length 1946, hash EDE7C06D + sample 56: + time = 1173333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 57: + time = 1194666 + flags = 0 + data = length 1946, hash E699F737 + sample 58: + time = 1216000 + flags = 0 + data = length 1946, hash EDE7C06F + sample 59: + time = 1237333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 60: + time = 1258666 + flags = 0 + data = length 1946, hash E699F72D + sample 61: + time = 1280000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 62: + time = 1301333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 63: + time = 1322666 + flags = 0 + data = length 1946, hash E699F731 + sample 64: + time = 1344000 + flags = 0 + data = length 1946, hash EDE7C06E + sample 65: + time = 1365333 + flags = 0 + data = length 1990, hash 8176E8F8 + sample 66: + time = 1386666 + flags = 0 + data = length 2048, hash 409F44AB + sample 67: + time = 1408000 + flags = 0 + data = length 2048, hash 5431547E + sample 68: + time = 1429333 + flags = 0 + data = length 2048, hash 1193639E + sample 69: + time = 1450666 + flags = 0 + data = length 2048, hash 409F44AD + sample 70: + time = 1472000 + flags = 0 + data = length 2048, hash 5431547F + sample 71: + time = 1493333 + flags = 0 + data = length 2048, hash 184105C3 + sample 72: + time = 1514666 + flags = 0 + data = length 2048, hash 8308185C + sample 73: + time = 1536000 + flags = 1 + data = length 2045, hash CB73C51D + sample 74: + time = 1557333 + flags = 0 + data = length 2048, hash 1193639E + sample 75: + time = 1578666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 76: + time = 1600000 + flags = 0 + data = length 2048, hash 5431547E + sample 77: + time = 1621333 + flags = 0 + data = length 2048, hash 1193639D + sample 78: + time = 1642666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 79: + time = 1664000 + flags = 0 + data = length 2048, hash 5431547E + sample 80: + time = 1685333 + flags = 0 + data = length 2048, hash 1193639D + sample 81: + time = 1706666 + flags = 0 + data = length 2048, hash 409F44AA + sample 82: + time = 1728000 + flags = 0 + data = length 2048, hash 5431547F + sample 83: + time = 1749333 + flags = 0 + data = length 2048, hash 1193639D + sample 84: + time = 1770666 + flags = 0 + data = length 2048, hash 409F44AC + sample 85: + time = 1792000 + flags = 0 + data = length 2048, hash 5431547E + sample 86: + time = 1813333 + flags = 0 + data = length 2048, hash 1193639D + sample 87: + time = 1834666 + flags = 0 + data = length 2048, hash 409F44AE + sample 88: + time = 1856000 + flags = 0 + data = length 2048, hash 5431547D + sample 89: + time = 1877333 + flags = 0 + data = length 2048, hash 1193639E + sample 90: + time = 1898666 + flags = 0 + data = length 2048, hash 409F44B6 + sample 91: + time = 1920000 + flags = 0 + data = length 2048, hash 5431547F + sample 92: + time = 1941333 + flags = 0 + data = length 2048, hash 1193639E + sample 93: + time = 1962666 + flags = 0 + data = length 2048, hash 9C157230 + sample 94: + time = 1984000 + flags = 0 + data = length 1946, hash 4A0BC4F0 + sample 95: + time = 2000000 + flags = 1 + data = length 744, hash 5DDA64AA + sample 96: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 97: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 98: + time = 2048000 + flags = 1 + data = length 811, hash 8342FA71 + sample 99: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 100: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 101: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 102: + time = 2133333 + flags = 0 + data = length 481, hash 7A8A4708 + sample 103: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 104: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 105: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 106: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 107: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 108: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 109: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 110: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 111: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 112: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 113: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 114: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 115: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 116: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 117: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 118: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 119: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 120: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 121: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 122: + time = 2560000 + flags = 1 + data = length 814, hash 34823CE2 + sample 123: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 124: + time = 2602666 + flags = 0 + data = length 423, hash 390144D7 + sample 125: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 126: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 127: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 128: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 129: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 130: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 131: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 132: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 133: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 134: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 135: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 136: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 137: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 138: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 139: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 140: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 141: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 142: + time = 2986666 + flags = 0 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump new file mode 100644 index 0000000000..302fda3a31 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump @@ -0,0 +1,212 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=839]] + getPosition(1) = [[timeUs=1, position=839]] + getPosition(500000) = [[timeUs=500000, position=839]] + getPosition(1000000) = [[timeUs=1000000, position=3063]] +numberOfTracks = 1 +track 0: + total output bytes = 4192 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.0B + maxInputSize = 368 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189788000] + initializationData: + data = length 63, hash 82D00145 + data = length 1, hash 2F + sample 0: + time = 0 + flags = 1 + data = length 338, hash B319817B + 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 B8036267 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash F3A2DCC5 + sample 26: + time = 554666 + flags = 0 + data = length 77, hash F75CC85D + sample 27: + time = 576000 + flags = 0 + data = length 57, hash 7CC1708C + sample 28: + time = 597333 + flags = 0 + data = length 81, hash 2B2350C7 + sample 29: + time = 618666 + flags = 0 + data = length 77, hash D8F6FDAC + sample 30: + time = 640000 + flags = 0 + data = length 77, hash 42EF016 + sample 31: + time = 661333 + flags = 0 + data = length 80, hash 4675D185 + sample 32: + time = 682666 + flags = 0 + data = length 76, hash 1A7FEA3D + sample 33: + time = 704000 + flags = 0 + data = length 56, hash 3BDC1EB1 + sample 34: + time = 725333 + flags = 0 + data = length 83, hash ADB7179F + sample 35: + time = 746666 + flags = 0 + data = length 77, hash 67FF2471 + sample 36: + time = 768000 + flags = 0 + data = length 76, hash 4E946044 + sample 37: + time = 789333 + flags = 0 + data = length 80, hash 4675D18C + sample 38: + time = 810666 + flags = 0 + data = length 76, hash 135136C6 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 54B620CE + sample 40: + time = 853333 + flags = 0 + data = length 80, hash 600CF0ED + sample 41: + time = 874666 + flags = 0 + data = length 77, hash 700F9258 + sample 42: + time = 896000 + flags = 0 + data = length 57, hash C279FB37 + sample 43: + time = 917333 + flags = 0 + data = length 83, hash 8E933F98 + sample 44: + time = 938666 + flags = 0 + data = length 77, hash C1D1E4A2 + sample 45: + time = 960000 + flags = 0 + data = length 84, hash CB9DC2AE + sample 46: + time = 981333 + flags = 536870912 + data = length 68, hash 90F95DDC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump new file mode 100644 index 0000000000..302fda3a31 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump @@ -0,0 +1,212 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=839]] + getPosition(1) = [[timeUs=1, position=839]] + getPosition(500000) = [[timeUs=500000, position=839]] + getPosition(1000000) = [[timeUs=1000000, position=3063]] +numberOfTracks = 1 +track 0: + total output bytes = 4192 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.0B + maxInputSize = 368 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189788000] + initializationData: + data = length 63, hash 82D00145 + data = length 1, hash 2F + sample 0: + time = 0 + flags = 1 + data = length 338, hash B319817B + 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 B8036267 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash F3A2DCC5 + sample 26: + time = 554666 + flags = 0 + data = length 77, hash F75CC85D + sample 27: + time = 576000 + flags = 0 + data = length 57, hash 7CC1708C + sample 28: + time = 597333 + flags = 0 + data = length 81, hash 2B2350C7 + sample 29: + time = 618666 + flags = 0 + data = length 77, hash D8F6FDAC + sample 30: + time = 640000 + flags = 0 + data = length 77, hash 42EF016 + sample 31: + time = 661333 + flags = 0 + data = length 80, hash 4675D185 + sample 32: + time = 682666 + flags = 0 + data = length 76, hash 1A7FEA3D + sample 33: + time = 704000 + flags = 0 + data = length 56, hash 3BDC1EB1 + sample 34: + time = 725333 + flags = 0 + data = length 83, hash ADB7179F + sample 35: + time = 746666 + flags = 0 + data = length 77, hash 67FF2471 + sample 36: + time = 768000 + flags = 0 + data = length 76, hash 4E946044 + sample 37: + time = 789333 + flags = 0 + data = length 80, hash 4675D18C + sample 38: + time = 810666 + flags = 0 + data = length 76, hash 135136C6 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 54B620CE + sample 40: + time = 853333 + flags = 0 + data = length 80, hash 600CF0ED + sample 41: + time = 874666 + flags = 0 + data = length 77, hash 700F9258 + sample 42: + time = 896000 + flags = 0 + data = length 57, hash C279FB37 + sample 43: + time = 917333 + flags = 0 + data = length 83, hash 8E933F98 + sample 44: + time = 938666 + flags = 0 + data = length 77, hash C1D1E4A2 + sample 45: + time = 960000 + flags = 0 + data = length 84, hash CB9DC2AE + sample 46: + time = 981333 + flags = 536870912 + data = length 68, hash 90F95DDC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump new file mode 100644 index 0000000000..fdc89c6f62 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump @@ -0,0 +1,116 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=839]] + getPosition(1) = [[timeUs=1, position=839]] + getPosition(500000) = [[timeUs=500000, position=839]] + getPosition(1000000) = [[timeUs=1000000, position=3063]] +numberOfTracks = 1 +track 0: + total output bytes = 1968 + sample count = 23 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.0B + maxInputSize = 368 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189788000] + initializationData: + data = length 63, hash 82D00145 + data = length 1, hash 2F + sample 0: + time = 512000 + flags = 1 + data = length 323, hash B8036267 + sample 1: + time = 533333 + flags = 0 + data = length 77, hash F3A2DCC5 + sample 2: + time = 554666 + flags = 0 + data = length 77, hash F75CC85D + sample 3: + time = 576000 + flags = 0 + data = length 57, hash 7CC1708C + sample 4: + time = 597333 + flags = 0 + data = length 81, hash 2B2350C7 + sample 5: + time = 618666 + flags = 0 + data = length 77, hash D8F6FDAC + sample 6: + time = 640000 + flags = 0 + data = length 77, hash 42EF016 + sample 7: + time = 661333 + flags = 0 + data = length 80, hash 4675D185 + sample 8: + time = 682666 + flags = 0 + data = length 76, hash 1A7FEA3D + sample 9: + time = 704000 + flags = 0 + data = length 56, hash 3BDC1EB1 + sample 10: + time = 725333 + flags = 0 + data = length 83, hash ADB7179F + sample 11: + time = 746666 + flags = 0 + data = length 77, hash 67FF2471 + sample 12: + time = 768000 + flags = 0 + data = length 76, hash 4E946044 + sample 13: + time = 789333 + flags = 0 + data = length 80, hash 4675D18C + sample 14: + time = 810666 + flags = 0 + data = length 76, hash 135136C6 + sample 15: + time = 832000 + flags = 0 + data = length 69, hash 54B620CE + sample 16: + time = 853333 + flags = 0 + data = length 80, hash 600CF0ED + sample 17: + time = 874666 + flags = 0 + data = length 77, hash 700F9258 + sample 18: + time = 896000 + flags = 0 + data = length 57, hash C279FB37 + sample 19: + time = 917333 + flags = 0 + data = length 83, hash 8E933F98 + sample 20: + time = 938666 + flags = 0 + data = length 77, hash C1D1E4A2 + sample 21: + time = 960000 + flags = 0 + data = length 84, hash CB9DC2AE + sample 22: + time = 981333 + flags = 536870912 + data = length 68, hash 90F95DDC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump new file mode 100644 index 0000000000..fdc89c6f62 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump @@ -0,0 +1,116 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=839]] + getPosition(1) = [[timeUs=1, position=839]] + getPosition(500000) = [[timeUs=500000, position=839]] + getPosition(1000000) = [[timeUs=1000000, position=3063]] +numberOfTracks = 1 +track 0: + total output bytes = 1968 + sample count = 23 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.0B + maxInputSize = 368 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189788000] + initializationData: + data = length 63, hash 82D00145 + data = length 1, hash 2F + sample 0: + time = 512000 + flags = 1 + data = length 323, hash B8036267 + sample 1: + time = 533333 + flags = 0 + data = length 77, hash F3A2DCC5 + sample 2: + time = 554666 + flags = 0 + data = length 77, hash F75CC85D + sample 3: + time = 576000 + flags = 0 + data = length 57, hash 7CC1708C + sample 4: + time = 597333 + flags = 0 + data = length 81, hash 2B2350C7 + sample 5: + time = 618666 + flags = 0 + data = length 77, hash D8F6FDAC + sample 6: + time = 640000 + flags = 0 + data = length 77, hash 42EF016 + sample 7: + time = 661333 + flags = 0 + data = length 80, hash 4675D185 + sample 8: + time = 682666 + flags = 0 + data = length 76, hash 1A7FEA3D + sample 9: + time = 704000 + flags = 0 + data = length 56, hash 3BDC1EB1 + sample 10: + time = 725333 + flags = 0 + data = length 83, hash ADB7179F + sample 11: + time = 746666 + flags = 0 + data = length 77, hash 67FF2471 + sample 12: + time = 768000 + flags = 0 + data = length 76, hash 4E946044 + sample 13: + time = 789333 + flags = 0 + data = length 80, hash 4675D18C + sample 14: + time = 810666 + flags = 0 + data = length 76, hash 135136C6 + sample 15: + time = 832000 + flags = 0 + data = length 69, hash 54B620CE + sample 16: + time = 853333 + flags = 0 + data = length 80, hash 600CF0ED + sample 17: + time = 874666 + flags = 0 + data = length 77, hash 700F9258 + sample 18: + time = 896000 + flags = 0 + data = length 57, hash C279FB37 + sample 19: + time = 917333 + flags = 0 + data = length 83, hash 8E933F98 + sample 20: + time = 938666 + flags = 0 + data = length 77, hash C1D1E4A2 + sample 21: + time = 960000 + flags = 0 + data = length 84, hash CB9DC2AE + sample 22: + time = 981333 + flags = 536870912 + data = length 68, hash 90F95DDC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump new file mode 100644 index 0000000000..302fda3a31 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump @@ -0,0 +1,212 @@ +seekMap: + isSeekable = true + duration = 1000000 + getPosition(0) = [[timeUs=0, position=839]] + getPosition(1) = [[timeUs=1, position=839]] + getPosition(500000) = [[timeUs=500000, position=839]] + getPosition(1000000) = [[timeUs=1000000, position=3063]] +numberOfTracks = 1 +track 0: + total output bytes = 4192 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.0B + maxInputSize = 368 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189788000] + initializationData: + data = length 63, hash 82D00145 + data = length 1, hash 2F + sample 0: + time = 0 + flags = 1 + data = length 338, hash B319817B + 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 B8036267 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash F3A2DCC5 + sample 26: + time = 554666 + flags = 0 + data = length 77, hash F75CC85D + sample 27: + time = 576000 + flags = 0 + data = length 57, hash 7CC1708C + sample 28: + time = 597333 + flags = 0 + data = length 81, hash 2B2350C7 + sample 29: + time = 618666 + flags = 0 + data = length 77, hash D8F6FDAC + sample 30: + time = 640000 + flags = 0 + data = length 77, hash 42EF016 + sample 31: + time = 661333 + flags = 0 + data = length 80, hash 4675D185 + sample 32: + time = 682666 + flags = 0 + data = length 76, hash 1A7FEA3D + sample 33: + time = 704000 + flags = 0 + data = length 56, hash 3BDC1EB1 + sample 34: + time = 725333 + flags = 0 + data = length 83, hash ADB7179F + sample 35: + time = 746666 + flags = 0 + data = length 77, hash 67FF2471 + sample 36: + time = 768000 + flags = 0 + data = length 76, hash 4E946044 + sample 37: + time = 789333 + flags = 0 + data = length 80, hash 4675D18C + sample 38: + time = 810666 + flags = 0 + data = length 76, hash 135136C6 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 54B620CE + sample 40: + time = 853333 + flags = 0 + data = length 80, hash 600CF0ED + sample 41: + time = 874666 + flags = 0 + data = length 77, hash 700F9258 + sample 42: + time = 896000 + flags = 0 + data = length 57, hash C279FB37 + sample 43: + time = 917333 + flags = 0 + data = length 83, hash 8E933F98 + sample 44: + time = 938666 + flags = 0 + data = length 77, hash C1D1E4A2 + sample 45: + time = 960000 + flags = 0 + data = length 84, hash CB9DC2AE + sample 46: + time = 981333 + flags = 536870912 + data = length 68, hash 90F95DDC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump new file mode 100644 index 0000000000..cbad1f4898 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump @@ -0,0 +1,207 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=647]] +numberOfTracks = 1 +track 0: + total output bytes = 4192 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.0B + channelCount = 0 + sampleRate = 48000 + language = und + initializationData: + data = length 63, hash 82D00145 + data = length 1, hash 2F + sample 0: + time = 0 + flags = 1 + data = length 338, hash B319817B + 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 B8036267 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash F3A2DCC5 + sample 26: + time = 554666 + flags = 0 + data = length 77, hash F75CC85D + sample 27: + time = 576000 + flags = 0 + data = length 57, hash 7CC1708C + sample 28: + time = 597333 + flags = 0 + data = length 81, hash 2B2350C7 + sample 29: + time = 618666 + flags = 0 + data = length 77, hash D8F6FDAC + sample 30: + time = 640000 + flags = 0 + data = length 77, hash 42EF016 + sample 31: + time = 661333 + flags = 0 + data = length 80, hash 4675D185 + sample 32: + time = 682666 + flags = 0 + data = length 76, hash 1A7FEA3D + sample 33: + time = 704000 + flags = 0 + data = length 56, hash 3BDC1EB1 + sample 34: + time = 725333 + flags = 0 + data = length 83, hash ADB7179F + sample 35: + time = 746666 + flags = 0 + data = length 77, hash 67FF2471 + sample 36: + time = 768000 + flags = 0 + data = length 76, hash 4E946044 + sample 37: + time = 789333 + flags = 0 + data = length 80, hash 4675D18C + sample 38: + time = 810666 + flags = 0 + data = length 76, hash 135136C6 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 54B620CE + sample 40: + time = 853333 + flags = 0 + data = length 80, hash 600CF0ED + sample 41: + time = 874666 + flags = 0 + data = length 77, hash 700F9258 + sample 42: + time = 896000 + flags = 0 + data = length 57, hash C279FB37 + sample 43: + time = 917333 + flags = 0 + data = length 83, hash 8E933F98 + sample 44: + time = 938666 + flags = 0 + data = length 77, hash C1D1E4A2 + sample 45: + time = 960000 + flags = 0 + data = length 84, hash CB9DC2AE + sample 46: + time = 981333 + flags = 0 + data = length 68, hash 90F95DDC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump new file mode 100644 index 0000000000..cbad1f4898 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump @@ -0,0 +1,207 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=647]] +numberOfTracks = 1 +track 0: + total output bytes = 4192 + sample count = 47 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.0B + channelCount = 0 + sampleRate = 48000 + language = und + initializationData: + data = length 63, hash 82D00145 + data = length 1, hash 2F + sample 0: + time = 0 + flags = 1 + data = length 338, hash B319817B + 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 B8036267 + sample 25: + time = 533333 + flags = 0 + data = length 77, hash F3A2DCC5 + sample 26: + time = 554666 + flags = 0 + data = length 77, hash F75CC85D + sample 27: + time = 576000 + flags = 0 + data = length 57, hash 7CC1708C + sample 28: + time = 597333 + flags = 0 + data = length 81, hash 2B2350C7 + sample 29: + time = 618666 + flags = 0 + data = length 77, hash D8F6FDAC + sample 30: + time = 640000 + flags = 0 + data = length 77, hash 42EF016 + sample 31: + time = 661333 + flags = 0 + data = length 80, hash 4675D185 + sample 32: + time = 682666 + flags = 0 + data = length 76, hash 1A7FEA3D + sample 33: + time = 704000 + flags = 0 + data = length 56, hash 3BDC1EB1 + sample 34: + time = 725333 + flags = 0 + data = length 83, hash ADB7179F + sample 35: + time = 746666 + flags = 0 + data = length 77, hash 67FF2471 + sample 36: + time = 768000 + flags = 0 + data = length 76, hash 4E946044 + sample 37: + time = 789333 + flags = 0 + data = length 80, hash 4675D18C + sample 38: + time = 810666 + flags = 0 + data = length 76, hash 135136C6 + sample 39: + time = 832000 + flags = 0 + data = length 69, hash 54B620CE + sample 40: + time = 853333 + flags = 0 + data = length 80, hash 600CF0ED + sample 41: + time = 874666 + flags = 0 + data = length 77, hash 700F9258 + sample 42: + time = 896000 + flags = 0 + data = length 57, hash C279FB37 + sample 43: + time = 917333 + flags = 0 + data = length 83, hash 8E933F98 + sample 44: + time = 938666 + flags = 0 + data = length 77, hash C1D1E4A2 + sample 45: + time = 960000 + flags = 0 + data = length 84, hash CB9DC2AE + sample 46: + time = 981333 + flags = 0 + data = length 68, hash 90F95DDC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump new file mode 100644 index 0000000000..8b54f84aa6 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump @@ -0,0 +1,595 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=25275]] + getPosition(3000000) = [[timeUs=3000000, position=236167]] +numberOfTracks = 1 +track 0: + total output bytes = 256334 + sample count = 143 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 4126 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189744000] + initializationData: + data = length 64, hash 7A6EA64F + sample 0: + time = 0 + flags = 1 + data = length 620, hash 6EDA7757 + sample 1: + time = 21333 + flags = 0 + data = length 204, hash 96F91771 + sample 2: + time = 42666 + flags = 0 + data = length 202, hash DB12DFC8 + sample 3: + time = 64000 + flags = 0 + data = length 339, hash 72DE92AC + sample 4: + time = 85333 + flags = 0 + data = length 342, hash FD3E7470 + sample 5: + time = 106666 + flags = 0 + data = length 341, hash D0034AB0 + sample 6: + time = 128000 + flags = 0 + data = length 341, hash A3075A48 + sample 7: + time = 149333 + flags = 0 + data = length 342, hash FD3E7475 + sample 8: + time = 170666 + flags = 0 + data = length 341, hash D0034AB1 + sample 9: + time = 192000 + flags = 0 + data = length 341, hash A3075A48 + sample 10: + time = 213333 + flags = 0 + data = length 342, hash FD3E747B + sample 11: + time = 234666 + flags = 0 + data = length 341, hash D0034AB0 + sample 12: + time = 256000 + flags = 0 + data = length 341, hash A3075A48 + sample 13: + time = 277333 + flags = 0 + data = length 342, hash FD3E7474 + sample 14: + time = 298666 + flags = 0 + data = length 341, hash D0034AB1 + sample 15: + time = 320000 + flags = 0 + data = length 341, hash A3075A48 + sample 16: + time = 341333 + flags = 0 + data = length 342, hash FD3E7462 + sample 17: + time = 362666 + flags = 0 + data = length 341, hash D0034AB0 + sample 18: + time = 384000 + flags = 0 + data = length 341, hash A3075A48 + sample 19: + time = 405333 + flags = 0 + data = length 342, hash FD3E746B + sample 20: + time = 426666 + flags = 0 + data = length 341, hash D0034AB0 + sample 21: + time = 448000 + flags = 0 + data = length 341, hash A3075A48 + sample 22: + time = 469333 + flags = 0 + data = length 342, hash 63A0363E + sample 23: + time = 490666 + flags = 0 + data = length 341, hash 51F65393 + sample 24: + time = 512000 + flags = 1 + data = length 577, hash 32D21653 + sample 25: + time = 533333 + flags = 0 + data = length 197, hash CB0DB412 + sample 26: + time = 554666 + flags = 0 + data = length 250, hash 9BDE48D4 + sample 27: + time = 576000 + flags = 0 + data = length 341, hash A3075A48 + sample 28: + time = 597333 + flags = 0 + data = length 342, hash FD3E7476 + sample 29: + time = 618666 + flags = 0 + data = length 341, hash D0034AAE + sample 30: + time = 640000 + flags = 0 + data = length 341, hash A3075A48 + sample 31: + time = 661333 + flags = 0 + data = length 342, hash FD3E7464 + sample 32: + time = 682666 + flags = 0 + data = length 341, hash D0034AB0 + sample 33: + time = 704000 + flags = 0 + data = length 341, hash A3075A48 + sample 34: + time = 725333 + flags = 0 + data = length 342, hash FD3E7468 + sample 35: + time = 746666 + flags = 0 + data = length 341, hash D0034AAE + sample 36: + time = 768000 + flags = 0 + data = length 341, hash A3075A48 + sample 37: + time = 789333 + flags = 0 + data = length 342, hash FD3E746B + sample 38: + time = 810666 + flags = 0 + data = length 341, hash D0034AB1 + sample 39: + time = 832000 + flags = 0 + data = length 341, hash A3075A48 + sample 40: + time = 853333 + flags = 0 + data = length 342, hash FD3E747C + sample 41: + time = 874666 + flags = 0 + data = length 341, hash D0034AB1 + sample 42: + time = 896000 + flags = 0 + data = length 341, hash A3075A48 + sample 43: + time = 917333 + flags = 0 + data = length 342, hash FD3E747F + sample 44: + time = 938666 + flags = 0 + data = length 341, hash D0034AAE + sample 45: + time = 960000 + flags = 0 + data = length 357, hash 790D09FE + sample 46: + time = 981333 + flags = 0 + data = length 472, hash 6A997000 + sample 47: + time = 1000000 + flags = 1 + data = length 3908, hash CDC05E32 + sample 48: + time = 1002666 + flags = 0 + data = length 3892, hash FB47D264 + sample 49: + time = 1024000 + flags = 1 + data = length 3892, hash 76D5402B + sample 50: + time = 1045333 + flags = 0 + data = length 3892, hash 99AE1080 + sample 51: + time = 1066666 + flags = 0 + data = length 3892, hash 7DA3A5B7 + sample 52: + time = 1088000 + flags = 0 + data = length 3892, hash 886247CE + sample 53: + time = 1109333 + flags = 0 + data = length 3892, hash 99AE1077 + sample 54: + time = 1130666 + flags = 0 + data = length 3892, hash 7DA3A5E0 + sample 55: + time = 1152000 + flags = 0 + data = length 3892, hash 886247BA + sample 56: + time = 1173333 + flags = 0 + data = length 3892, hash 99AE106D + sample 57: + time = 1194666 + flags = 0 + data = length 3892, hash 7DA3A5CD + sample 58: + time = 1216000 + flags = 0 + data = length 3892, hash 886247CA + sample 59: + time = 1237333 + flags = 0 + data = length 3892, hash 99AE1079 + sample 60: + time = 1258666 + flags = 0 + data = length 3892, hash 7DA3A5D1 + sample 61: + time = 1280000 + flags = 0 + data = length 3892, hash 886247BD + sample 62: + time = 1301333 + flags = 0 + data = length 3892, hash 99AE106D + sample 63: + time = 1322666 + flags = 0 + data = length 3892, hash 7DA3A5A7 + sample 64: + time = 1344000 + flags = 0 + data = length 3892, hash 886247C5 + sample 65: + time = 1365333 + flags = 0 + data = length 3980, hash 8DF782E + sample 66: + time = 1386666 + flags = 0 + data = length 4096, hash 6C926695 + sample 67: + time = 1408000 + flags = 0 + data = length 4096, hash BFCBCEDC + sample 68: + time = 1429333 + flags = 0 + data = length 4096, hash 886C00CF + sample 69: + time = 1450666 + flags = 0 + data = length 4096, hash 6C92668B + sample 70: + time = 1472000 + flags = 0 + data = length 4096, hash BFCBCEC6 + sample 71: + time = 1493333 + flags = 0 + data = length 4096, hash E431EAA2 + sample 72: + time = 1514666 + flags = 0 + data = length 4096, hash 21C24AE1 + sample 73: + time = 1536000 + flags = 1 + data = length 4096, hash 884E3535 + sample 74: + time = 1557333 + flags = 0 + data = length 4096, hash 886C00CE + sample 75: + time = 1578666 + flags = 0 + data = length 4096, hash 6C926678 + sample 76: + time = 1600000 + flags = 0 + data = length 4096, hash BFCBCEC1 + sample 77: + time = 1621333 + flags = 0 + data = length 4096, hash 886C00B5 + sample 78: + time = 1642666 + flags = 0 + data = length 4096, hash 6C926680 + sample 79: + time = 1664000 + flags = 0 + data = length 4096, hash BFCBCECA + sample 80: + time = 1685333 + flags = 0 + data = length 4096, hash 886C00C4 + sample 81: + time = 1706666 + flags = 0 + data = length 4096, hash 6C9266A3 + sample 82: + time = 1728000 + flags = 0 + data = length 4096, hash BFCBCECB + sample 83: + time = 1749333 + flags = 0 + data = length 4096, hash 886C00B9 + sample 84: + time = 1770666 + flags = 0 + data = length 4096, hash 6C926673 + sample 85: + time = 1792000 + flags = 0 + data = length 4096, hash BFCBCEDF + sample 86: + time = 1813333 + flags = 0 + data = length 4096, hash 886C00C8 + sample 87: + time = 1834666 + flags = 0 + data = length 4096, hash 6C926684 + sample 88: + time = 1856000 + flags = 0 + data = length 4096, hash BFCBCEDD + sample 89: + time = 1877333 + flags = 0 + data = length 4096, hash 886C00B2 + sample 90: + time = 1898666 + flags = 0 + data = length 4096, hash 6C926684 + sample 91: + time = 1920000 + flags = 0 + data = length 4096, hash BFCBCEDA + sample 92: + time = 1941333 + flags = 0 + data = length 4096, hash 886C00C7 + sample 93: + time = 1962666 + flags = 0 + data = length 4096, hash AFF7C654 + sample 94: + time = 1984000 + flags = 0 + data = length 3892, hash 7B3EC7FD + sample 95: + time = 2000000 + flags = 1 + data = length 764, hash B77EB08E + sample 96: + time = 2005333 + flags = 0 + data = length 413, hash A778FC60 + sample 97: + time = 2026666 + flags = 0 + data = length 973, hash 21498BD8 + sample 98: + time = 2048000 + flags = 1 + data = length 973, hash 66EB9A28 + sample 99: + time = 2069333 + flags = 0 + data = length 973, hash EA24022E + sample 100: + time = 2090666 + flags = 0 + data = length 973, hash B888BDB6 + sample 101: + time = 2112000 + flags = 0 + data = length 973, hash 52B402A + sample 102: + time = 2133333 + flags = 0 + data = length 973, hash EA24022E + sample 103: + time = 2154666 + flags = 0 + data = length 973, hash B888BE0C + sample 104: + time = 2176000 + flags = 0 + data = length 973, hash 52B4028 + sample 105: + time = 2197333 + flags = 0 + data = length 973, hash EA24022E + sample 106: + time = 2218666 + flags = 0 + data = length 973, hash B888BDDA + sample 107: + time = 2240000 + flags = 0 + data = length 973, hash 52B4016 + sample 108: + time = 2261333 + flags = 0 + data = length 973, hash EA24022E + sample 109: + time = 2282666 + flags = 0 + data = length 973, hash B888BDBD + sample 110: + time = 2304000 + flags = 0 + data = length 973, hash 52B406C + sample 111: + time = 2325333 + flags = 0 + data = length 1021, hash 2C16D82E + sample 112: + time = 2346666 + flags = 0 + data = length 1024, hash 64B5D698 + sample 113: + time = 2368000 + flags = 0 + data = length 1024, hash 6084A5F9 + sample 114: + time = 2389333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 115: + time = 2410666 + flags = 0 + data = length 1024, hash 64B5D68B + sample 116: + time = 2432000 + flags = 0 + data = length 1024, hash 6084A645 + sample 117: + time = 2453333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 118: + time = 2474666 + flags = 0 + data = length 1024, hash 64B5D6CD + sample 119: + time = 2496000 + flags = 0 + data = length 1024, hash 6084A632 + sample 120: + time = 2517333 + flags = 0 + data = length 1024, hash 9990F104 + sample 121: + time = 2538666 + flags = 0 + data = length 1024, hash 828D7A4 + sample 122: + time = 2560000 + flags = 1 + data = length 1024, hash 1F972702 + sample 123: + time = 2581333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 124: + time = 2602666 + flags = 0 + data = length 1024, hash 64B5D6DB + sample 125: + time = 2624000 + flags = 0 + data = length 1024, hash 6084A61E + sample 126: + time = 2645333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 127: + time = 2666666 + flags = 0 + data = length 1024, hash 64B5D6A9 + sample 128: + time = 2688000 + flags = 0 + data = length 1024, hash 6084A625 + sample 129: + time = 2709333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 130: + time = 2730666 + flags = 0 + data = length 1024, hash 64B5D6CA + sample 131: + time = 2752000 + flags = 0 + data = length 1024, hash 6084A5E2 + sample 132: + time = 2773333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 133: + time = 2794666 + flags = 0 + data = length 1024, hash 64B5D66B + sample 134: + time = 2816000 + flags = 0 + data = length 1024, hash 6084A629 + sample 135: + time = 2837333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 136: + time = 2858666 + flags = 0 + data = length 1024, hash 64B5D6B4 + sample 137: + time = 2880000 + flags = 0 + data = length 1024, hash 6084A627 + sample 138: + time = 2901333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 139: + time = 2922666 + flags = 0 + data = length 1024, hash 64B5D6B5 + sample 140: + time = 2944000 + flags = 0 + data = length 1024, hash 6084A61D + sample 141: + time = 2965333 + flags = 0 + data = length 1024, hash 5A1932E8 + sample 142: + time = 2986666 + flags = 536870912 + data = length 973, hash 9C376715 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump new file mode 100644 index 0000000000..2f4f9f62db --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump @@ -0,0 +1,407 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=25275]] + getPosition(3000000) = [[timeUs=3000000, position=236167]] +numberOfTracks = 1 +track 0: + total output bytes = 240145 + sample count = 96 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 4126 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189744000] + initializationData: + data = length 64, hash 7A6EA64F + sample 0: + time = 1000000 + flags = 1 + data = length 3908, hash CDC05E32 + sample 1: + time = 1002666 + flags = 0 + data = length 3892, hash FB47D264 + sample 2: + time = 1024000 + flags = 1 + data = length 3892, hash 76D5402B + sample 3: + time = 1045333 + flags = 0 + data = length 3892, hash 99AE1080 + sample 4: + time = 1066666 + flags = 0 + data = length 3892, hash 7DA3A5B7 + sample 5: + time = 1088000 + flags = 0 + data = length 3892, hash 886247CE + sample 6: + time = 1109333 + flags = 0 + data = length 3892, hash 99AE1077 + sample 7: + time = 1130666 + flags = 0 + data = length 3892, hash 7DA3A5E0 + sample 8: + time = 1152000 + flags = 0 + data = length 3892, hash 886247BA + sample 9: + time = 1173333 + flags = 0 + data = length 3892, hash 99AE106D + sample 10: + time = 1194666 + flags = 0 + data = length 3892, hash 7DA3A5CD + sample 11: + time = 1216000 + flags = 0 + data = length 3892, hash 886247CA + sample 12: + time = 1237333 + flags = 0 + data = length 3892, hash 99AE1079 + sample 13: + time = 1258666 + flags = 0 + data = length 3892, hash 7DA3A5D1 + sample 14: + time = 1280000 + flags = 0 + data = length 3892, hash 886247BD + sample 15: + time = 1301333 + flags = 0 + data = length 3892, hash 99AE106D + sample 16: + time = 1322666 + flags = 0 + data = length 3892, hash 7DA3A5A7 + sample 17: + time = 1344000 + flags = 0 + data = length 3892, hash 886247C5 + sample 18: + time = 1365333 + flags = 0 + data = length 3980, hash 8DF782E + sample 19: + time = 1386666 + flags = 0 + data = length 4096, hash 6C926695 + sample 20: + time = 1408000 + flags = 0 + data = length 4096, hash BFCBCEDC + sample 21: + time = 1429333 + flags = 0 + data = length 4096, hash 886C00CF + sample 22: + time = 1450666 + flags = 0 + data = length 4096, hash 6C92668B + sample 23: + time = 1472000 + flags = 0 + data = length 4096, hash BFCBCEC6 + sample 24: + time = 1493333 + flags = 0 + data = length 4096, hash E431EAA2 + sample 25: + time = 1514666 + flags = 0 + data = length 4096, hash 21C24AE1 + sample 26: + time = 1536000 + flags = 1 + data = length 4096, hash 884E3535 + sample 27: + time = 1557333 + flags = 0 + data = length 4096, hash 886C00CE + sample 28: + time = 1578666 + flags = 0 + data = length 4096, hash 6C926678 + sample 29: + time = 1600000 + flags = 0 + data = length 4096, hash BFCBCEC1 + sample 30: + time = 1621333 + flags = 0 + data = length 4096, hash 886C00B5 + sample 31: + time = 1642666 + flags = 0 + data = length 4096, hash 6C926680 + sample 32: + time = 1664000 + flags = 0 + data = length 4096, hash BFCBCECA + sample 33: + time = 1685333 + flags = 0 + data = length 4096, hash 886C00C4 + sample 34: + time = 1706666 + flags = 0 + data = length 4096, hash 6C9266A3 + sample 35: + time = 1728000 + flags = 0 + data = length 4096, hash BFCBCECB + sample 36: + time = 1749333 + flags = 0 + data = length 4096, hash 886C00B9 + sample 37: + time = 1770666 + flags = 0 + data = length 4096, hash 6C926673 + sample 38: + time = 1792000 + flags = 0 + data = length 4096, hash BFCBCEDF + sample 39: + time = 1813333 + flags = 0 + data = length 4096, hash 886C00C8 + sample 40: + time = 1834666 + flags = 0 + data = length 4096, hash 6C926684 + sample 41: + time = 1856000 + flags = 0 + data = length 4096, hash BFCBCEDD + sample 42: + time = 1877333 + flags = 0 + data = length 4096, hash 886C00B2 + sample 43: + time = 1898666 + flags = 0 + data = length 4096, hash 6C926684 + sample 44: + time = 1920000 + flags = 0 + data = length 4096, hash BFCBCEDA + sample 45: + time = 1941333 + flags = 0 + data = length 4096, hash 886C00C7 + sample 46: + time = 1962666 + flags = 0 + data = length 4096, hash AFF7C654 + sample 47: + time = 1984000 + flags = 0 + data = length 3892, hash 7B3EC7FD + sample 48: + time = 2000000 + flags = 1 + data = length 764, hash B77EB08E + sample 49: + time = 2005333 + flags = 0 + data = length 413, hash A778FC60 + sample 50: + time = 2026666 + flags = 0 + data = length 973, hash 21498BD8 + sample 51: + time = 2048000 + flags = 1 + data = length 973, hash 66EB9A28 + sample 52: + time = 2069333 + flags = 0 + data = length 973, hash EA24022E + sample 53: + time = 2090666 + flags = 0 + data = length 973, hash B888BDB6 + sample 54: + time = 2112000 + flags = 0 + data = length 973, hash 52B402A + sample 55: + time = 2133333 + flags = 0 + data = length 973, hash EA24022E + sample 56: + time = 2154666 + flags = 0 + data = length 973, hash B888BE0C + sample 57: + time = 2176000 + flags = 0 + data = length 973, hash 52B4028 + sample 58: + time = 2197333 + flags = 0 + data = length 973, hash EA24022E + sample 59: + time = 2218666 + flags = 0 + data = length 973, hash B888BDDA + sample 60: + time = 2240000 + flags = 0 + data = length 973, hash 52B4016 + sample 61: + time = 2261333 + flags = 0 + data = length 973, hash EA24022E + sample 62: + time = 2282666 + flags = 0 + data = length 973, hash B888BDBD + sample 63: + time = 2304000 + flags = 0 + data = length 973, hash 52B406C + sample 64: + time = 2325333 + flags = 0 + data = length 1021, hash 2C16D82E + sample 65: + time = 2346666 + flags = 0 + data = length 1024, hash 64B5D698 + sample 66: + time = 2368000 + flags = 0 + data = length 1024, hash 6084A5F9 + sample 67: + time = 2389333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 68: + time = 2410666 + flags = 0 + data = length 1024, hash 64B5D68B + sample 69: + time = 2432000 + flags = 0 + data = length 1024, hash 6084A645 + sample 70: + time = 2453333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 71: + time = 2474666 + flags = 0 + data = length 1024, hash 64B5D6CD + sample 72: + time = 2496000 + flags = 0 + data = length 1024, hash 6084A632 + sample 73: + time = 2517333 + flags = 0 + data = length 1024, hash 9990F104 + sample 74: + time = 2538666 + flags = 0 + data = length 1024, hash 828D7A4 + sample 75: + time = 2560000 + flags = 1 + data = length 1024, hash 1F972702 + sample 76: + time = 2581333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 77: + time = 2602666 + flags = 0 + data = length 1024, hash 64B5D6DB + sample 78: + time = 2624000 + flags = 0 + data = length 1024, hash 6084A61E + sample 79: + time = 2645333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 80: + time = 2666666 + flags = 0 + data = length 1024, hash 64B5D6A9 + sample 81: + time = 2688000 + flags = 0 + data = length 1024, hash 6084A625 + sample 82: + time = 2709333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 83: + time = 2730666 + flags = 0 + data = length 1024, hash 64B5D6CA + sample 84: + time = 2752000 + flags = 0 + data = length 1024, hash 6084A5E2 + sample 85: + time = 2773333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 86: + time = 2794666 + flags = 0 + data = length 1024, hash 64B5D66B + sample 87: + time = 2816000 + flags = 0 + data = length 1024, hash 6084A629 + sample 88: + time = 2837333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 89: + time = 2858666 + flags = 0 + data = length 1024, hash 64B5D6B4 + sample 90: + time = 2880000 + flags = 0 + data = length 1024, hash 6084A627 + sample 91: + time = 2901333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 92: + time = 2922666 + flags = 0 + data = length 1024, hash 64B5D6B5 + sample 93: + time = 2944000 + flags = 0 + data = length 1024, hash 6084A61D + sample 94: + time = 2965333 + flags = 0 + data = length 1024, hash 5A1932E8 + sample 95: + time = 2986666 + flags = 536870912 + data = length 973, hash 9C376715 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump new file mode 100644 index 0000000000..c8a319bc81 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump @@ -0,0 +1,215 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=25275]] + getPosition(3000000) = [[timeUs=3000000, position=236167]] +numberOfTracks = 1 +track 0: + total output bytes = 47513 + sample count = 48 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 4126 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189744000] + initializationData: + data = length 64, hash 7A6EA64F + sample 0: + time = 2000000 + flags = 1 + data = length 764, hash B77EB08E + sample 1: + time = 2005333 + flags = 0 + data = length 413, hash A778FC60 + sample 2: + time = 2026666 + flags = 0 + data = length 973, hash 21498BD8 + sample 3: + time = 2048000 + flags = 1 + data = length 973, hash 66EB9A28 + sample 4: + time = 2069333 + flags = 0 + data = length 973, hash EA24022E + sample 5: + time = 2090666 + flags = 0 + data = length 973, hash B888BDB6 + sample 6: + time = 2112000 + flags = 0 + data = length 973, hash 52B402A + sample 7: + time = 2133333 + flags = 0 + data = length 973, hash EA24022E + sample 8: + time = 2154666 + flags = 0 + data = length 973, hash B888BE0C + sample 9: + time = 2176000 + flags = 0 + data = length 973, hash 52B4028 + sample 10: + time = 2197333 + flags = 0 + data = length 973, hash EA24022E + sample 11: + time = 2218666 + flags = 0 + data = length 973, hash B888BDDA + sample 12: + time = 2240000 + flags = 0 + data = length 973, hash 52B4016 + sample 13: + time = 2261333 + flags = 0 + data = length 973, hash EA24022E + sample 14: + time = 2282666 + flags = 0 + data = length 973, hash B888BDBD + sample 15: + time = 2304000 + flags = 0 + data = length 973, hash 52B406C + sample 16: + time = 2325333 + flags = 0 + data = length 1021, hash 2C16D82E + sample 17: + time = 2346666 + flags = 0 + data = length 1024, hash 64B5D698 + sample 18: + time = 2368000 + flags = 0 + data = length 1024, hash 6084A5F9 + sample 19: + time = 2389333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 20: + time = 2410666 + flags = 0 + data = length 1024, hash 64B5D68B + sample 21: + time = 2432000 + flags = 0 + data = length 1024, hash 6084A645 + sample 22: + time = 2453333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 23: + time = 2474666 + flags = 0 + data = length 1024, hash 64B5D6CD + sample 24: + time = 2496000 + flags = 0 + data = length 1024, hash 6084A632 + sample 25: + time = 2517333 + flags = 0 + data = length 1024, hash 9990F104 + sample 26: + time = 2538666 + flags = 0 + data = length 1024, hash 828D7A4 + sample 27: + time = 2560000 + flags = 1 + data = length 1024, hash 1F972702 + sample 28: + time = 2581333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 29: + time = 2602666 + flags = 0 + data = length 1024, hash 64B5D6DB + sample 30: + time = 2624000 + flags = 0 + data = length 1024, hash 6084A61E + sample 31: + time = 2645333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 32: + time = 2666666 + flags = 0 + data = length 1024, hash 64B5D6A9 + sample 33: + time = 2688000 + flags = 0 + data = length 1024, hash 6084A625 + sample 34: + time = 2709333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 35: + time = 2730666 + flags = 0 + data = length 1024, hash 64B5D6CA + sample 36: + time = 2752000 + flags = 0 + data = length 1024, hash 6084A5E2 + sample 37: + time = 2773333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 38: + time = 2794666 + flags = 0 + data = length 1024, hash 64B5D66B + sample 39: + time = 2816000 + flags = 0 + data = length 1024, hash 6084A629 + sample 40: + time = 2837333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 41: + time = 2858666 + flags = 0 + data = length 1024, hash 64B5D6B4 + sample 42: + time = 2880000 + flags = 0 + data = length 1024, hash 6084A627 + sample 43: + time = 2901333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 44: + time = 2922666 + flags = 0 + data = length 1024, hash 64B5D6B5 + sample 45: + time = 2944000 + flags = 0 + data = length 1024, hash 6084A61D + sample 46: + time = 2965333 + flags = 0 + data = length 1024, hash 5A1932E8 + sample 47: + time = 2986666 + flags = 536870912 + data = length 973, hash 9C376715 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump new file mode 100644 index 0000000000..4e0220eff9 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump @@ -0,0 +1,107 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=25275]] + getPosition(3000000) = [[timeUs=3000000, position=236167]] +numberOfTracks = 1 +track 0: + total output bytes = 21453 + sample count = 21 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 4126 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189744000] + initializationData: + data = length 64, hash 7A6EA64F + sample 0: + time = 2560000 + flags = 1 + data = length 1024, hash 1F972702 + sample 1: + time = 2581333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 2: + time = 2602666 + flags = 0 + data = length 1024, hash 64B5D6DB + sample 3: + time = 2624000 + flags = 0 + data = length 1024, hash 6084A61E + sample 4: + time = 2645333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 5: + time = 2666666 + flags = 0 + data = length 1024, hash 64B5D6A9 + sample 6: + time = 2688000 + flags = 0 + data = length 1024, hash 6084A625 + sample 7: + time = 2709333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 8: + time = 2730666 + flags = 0 + data = length 1024, hash 64B5D6CA + sample 9: + time = 2752000 + flags = 0 + data = length 1024, hash 6084A5E2 + sample 10: + time = 2773333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 11: + time = 2794666 + flags = 0 + data = length 1024, hash 64B5D66B + sample 12: + time = 2816000 + flags = 0 + data = length 1024, hash 6084A629 + sample 13: + time = 2837333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 14: + time = 2858666 + flags = 0 + data = length 1024, hash 64B5D6B4 + sample 15: + time = 2880000 + flags = 0 + data = length 1024, hash 6084A627 + sample 16: + time = 2901333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 17: + time = 2922666 + flags = 0 + data = length 1024, hash 64B5D6B5 + sample 18: + time = 2944000 + flags = 0 + data = length 1024, hash 6084A61D + sample 19: + time = 2965333 + flags = 0 + data = length 1024, hash 5A1932E8 + sample 20: + time = 2986666 + flags = 536870912 + data = length 973, hash 9C376715 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump new file mode 100644 index 0000000000..8b54f84aa6 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump @@ -0,0 +1,595 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=1286]] + getPosition(1) = [[timeUs=1, position=1286]] + getPosition(1500000) = [[timeUs=1500000, position=25275]] + getPosition(3000000) = [[timeUs=3000000, position=236167]] +numberOfTracks = 1 +track 0: + total output bytes = 256334 + sample count = 143 + format 0: + id = 1 + sampleMimeType = audio/mhm1 + codecs = mhm1.10 + maxInputSize = 4126 + channelCount = 0 + sampleRate = 48000 + language = und + metadata = entries=[Creation time: 1697189744000] + initializationData: + data = length 64, hash 7A6EA64F + sample 0: + time = 0 + flags = 1 + data = length 620, hash 6EDA7757 + sample 1: + time = 21333 + flags = 0 + data = length 204, hash 96F91771 + sample 2: + time = 42666 + flags = 0 + data = length 202, hash DB12DFC8 + sample 3: + time = 64000 + flags = 0 + data = length 339, hash 72DE92AC + sample 4: + time = 85333 + flags = 0 + data = length 342, hash FD3E7470 + sample 5: + time = 106666 + flags = 0 + data = length 341, hash D0034AB0 + sample 6: + time = 128000 + flags = 0 + data = length 341, hash A3075A48 + sample 7: + time = 149333 + flags = 0 + data = length 342, hash FD3E7475 + sample 8: + time = 170666 + flags = 0 + data = length 341, hash D0034AB1 + sample 9: + time = 192000 + flags = 0 + data = length 341, hash A3075A48 + sample 10: + time = 213333 + flags = 0 + data = length 342, hash FD3E747B + sample 11: + time = 234666 + flags = 0 + data = length 341, hash D0034AB0 + sample 12: + time = 256000 + flags = 0 + data = length 341, hash A3075A48 + sample 13: + time = 277333 + flags = 0 + data = length 342, hash FD3E7474 + sample 14: + time = 298666 + flags = 0 + data = length 341, hash D0034AB1 + sample 15: + time = 320000 + flags = 0 + data = length 341, hash A3075A48 + sample 16: + time = 341333 + flags = 0 + data = length 342, hash FD3E7462 + sample 17: + time = 362666 + flags = 0 + data = length 341, hash D0034AB0 + sample 18: + time = 384000 + flags = 0 + data = length 341, hash A3075A48 + sample 19: + time = 405333 + flags = 0 + data = length 342, hash FD3E746B + sample 20: + time = 426666 + flags = 0 + data = length 341, hash D0034AB0 + sample 21: + time = 448000 + flags = 0 + data = length 341, hash A3075A48 + sample 22: + time = 469333 + flags = 0 + data = length 342, hash 63A0363E + sample 23: + time = 490666 + flags = 0 + data = length 341, hash 51F65393 + sample 24: + time = 512000 + flags = 1 + data = length 577, hash 32D21653 + sample 25: + time = 533333 + flags = 0 + data = length 197, hash CB0DB412 + sample 26: + time = 554666 + flags = 0 + data = length 250, hash 9BDE48D4 + sample 27: + time = 576000 + flags = 0 + data = length 341, hash A3075A48 + sample 28: + time = 597333 + flags = 0 + data = length 342, hash FD3E7476 + sample 29: + time = 618666 + flags = 0 + data = length 341, hash D0034AAE + sample 30: + time = 640000 + flags = 0 + data = length 341, hash A3075A48 + sample 31: + time = 661333 + flags = 0 + data = length 342, hash FD3E7464 + sample 32: + time = 682666 + flags = 0 + data = length 341, hash D0034AB0 + sample 33: + time = 704000 + flags = 0 + data = length 341, hash A3075A48 + sample 34: + time = 725333 + flags = 0 + data = length 342, hash FD3E7468 + sample 35: + time = 746666 + flags = 0 + data = length 341, hash D0034AAE + sample 36: + time = 768000 + flags = 0 + data = length 341, hash A3075A48 + sample 37: + time = 789333 + flags = 0 + data = length 342, hash FD3E746B + sample 38: + time = 810666 + flags = 0 + data = length 341, hash D0034AB1 + sample 39: + time = 832000 + flags = 0 + data = length 341, hash A3075A48 + sample 40: + time = 853333 + flags = 0 + data = length 342, hash FD3E747C + sample 41: + time = 874666 + flags = 0 + data = length 341, hash D0034AB1 + sample 42: + time = 896000 + flags = 0 + data = length 341, hash A3075A48 + sample 43: + time = 917333 + flags = 0 + data = length 342, hash FD3E747F + sample 44: + time = 938666 + flags = 0 + data = length 341, hash D0034AAE + sample 45: + time = 960000 + flags = 0 + data = length 357, hash 790D09FE + sample 46: + time = 981333 + flags = 0 + data = length 472, hash 6A997000 + sample 47: + time = 1000000 + flags = 1 + data = length 3908, hash CDC05E32 + sample 48: + time = 1002666 + flags = 0 + data = length 3892, hash FB47D264 + sample 49: + time = 1024000 + flags = 1 + data = length 3892, hash 76D5402B + sample 50: + time = 1045333 + flags = 0 + data = length 3892, hash 99AE1080 + sample 51: + time = 1066666 + flags = 0 + data = length 3892, hash 7DA3A5B7 + sample 52: + time = 1088000 + flags = 0 + data = length 3892, hash 886247CE + sample 53: + time = 1109333 + flags = 0 + data = length 3892, hash 99AE1077 + sample 54: + time = 1130666 + flags = 0 + data = length 3892, hash 7DA3A5E0 + sample 55: + time = 1152000 + flags = 0 + data = length 3892, hash 886247BA + sample 56: + time = 1173333 + flags = 0 + data = length 3892, hash 99AE106D + sample 57: + time = 1194666 + flags = 0 + data = length 3892, hash 7DA3A5CD + sample 58: + time = 1216000 + flags = 0 + data = length 3892, hash 886247CA + sample 59: + time = 1237333 + flags = 0 + data = length 3892, hash 99AE1079 + sample 60: + time = 1258666 + flags = 0 + data = length 3892, hash 7DA3A5D1 + sample 61: + time = 1280000 + flags = 0 + data = length 3892, hash 886247BD + sample 62: + time = 1301333 + flags = 0 + data = length 3892, hash 99AE106D + sample 63: + time = 1322666 + flags = 0 + data = length 3892, hash 7DA3A5A7 + sample 64: + time = 1344000 + flags = 0 + data = length 3892, hash 886247C5 + sample 65: + time = 1365333 + flags = 0 + data = length 3980, hash 8DF782E + sample 66: + time = 1386666 + flags = 0 + data = length 4096, hash 6C926695 + sample 67: + time = 1408000 + flags = 0 + data = length 4096, hash BFCBCEDC + sample 68: + time = 1429333 + flags = 0 + data = length 4096, hash 886C00CF + sample 69: + time = 1450666 + flags = 0 + data = length 4096, hash 6C92668B + sample 70: + time = 1472000 + flags = 0 + data = length 4096, hash BFCBCEC6 + sample 71: + time = 1493333 + flags = 0 + data = length 4096, hash E431EAA2 + sample 72: + time = 1514666 + flags = 0 + data = length 4096, hash 21C24AE1 + sample 73: + time = 1536000 + flags = 1 + data = length 4096, hash 884E3535 + sample 74: + time = 1557333 + flags = 0 + data = length 4096, hash 886C00CE + sample 75: + time = 1578666 + flags = 0 + data = length 4096, hash 6C926678 + sample 76: + time = 1600000 + flags = 0 + data = length 4096, hash BFCBCEC1 + sample 77: + time = 1621333 + flags = 0 + data = length 4096, hash 886C00B5 + sample 78: + time = 1642666 + flags = 0 + data = length 4096, hash 6C926680 + sample 79: + time = 1664000 + flags = 0 + data = length 4096, hash BFCBCECA + sample 80: + time = 1685333 + flags = 0 + data = length 4096, hash 886C00C4 + sample 81: + time = 1706666 + flags = 0 + data = length 4096, hash 6C9266A3 + sample 82: + time = 1728000 + flags = 0 + data = length 4096, hash BFCBCECB + sample 83: + time = 1749333 + flags = 0 + data = length 4096, hash 886C00B9 + sample 84: + time = 1770666 + flags = 0 + data = length 4096, hash 6C926673 + sample 85: + time = 1792000 + flags = 0 + data = length 4096, hash BFCBCEDF + sample 86: + time = 1813333 + flags = 0 + data = length 4096, hash 886C00C8 + sample 87: + time = 1834666 + flags = 0 + data = length 4096, hash 6C926684 + sample 88: + time = 1856000 + flags = 0 + data = length 4096, hash BFCBCEDD + sample 89: + time = 1877333 + flags = 0 + data = length 4096, hash 886C00B2 + sample 90: + time = 1898666 + flags = 0 + data = length 4096, hash 6C926684 + sample 91: + time = 1920000 + flags = 0 + data = length 4096, hash BFCBCEDA + sample 92: + time = 1941333 + flags = 0 + data = length 4096, hash 886C00C7 + sample 93: + time = 1962666 + flags = 0 + data = length 4096, hash AFF7C654 + sample 94: + time = 1984000 + flags = 0 + data = length 3892, hash 7B3EC7FD + sample 95: + time = 2000000 + flags = 1 + data = length 764, hash B77EB08E + sample 96: + time = 2005333 + flags = 0 + data = length 413, hash A778FC60 + sample 97: + time = 2026666 + flags = 0 + data = length 973, hash 21498BD8 + sample 98: + time = 2048000 + flags = 1 + data = length 973, hash 66EB9A28 + sample 99: + time = 2069333 + flags = 0 + data = length 973, hash EA24022E + sample 100: + time = 2090666 + flags = 0 + data = length 973, hash B888BDB6 + sample 101: + time = 2112000 + flags = 0 + data = length 973, hash 52B402A + sample 102: + time = 2133333 + flags = 0 + data = length 973, hash EA24022E + sample 103: + time = 2154666 + flags = 0 + data = length 973, hash B888BE0C + sample 104: + time = 2176000 + flags = 0 + data = length 973, hash 52B4028 + sample 105: + time = 2197333 + flags = 0 + data = length 973, hash EA24022E + sample 106: + time = 2218666 + flags = 0 + data = length 973, hash B888BDDA + sample 107: + time = 2240000 + flags = 0 + data = length 973, hash 52B4016 + sample 108: + time = 2261333 + flags = 0 + data = length 973, hash EA24022E + sample 109: + time = 2282666 + flags = 0 + data = length 973, hash B888BDBD + sample 110: + time = 2304000 + flags = 0 + data = length 973, hash 52B406C + sample 111: + time = 2325333 + flags = 0 + data = length 1021, hash 2C16D82E + sample 112: + time = 2346666 + flags = 0 + data = length 1024, hash 64B5D698 + sample 113: + time = 2368000 + flags = 0 + data = length 1024, hash 6084A5F9 + sample 114: + time = 2389333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 115: + time = 2410666 + flags = 0 + data = length 1024, hash 64B5D68B + sample 116: + time = 2432000 + flags = 0 + data = length 1024, hash 6084A645 + sample 117: + time = 2453333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 118: + time = 2474666 + flags = 0 + data = length 1024, hash 64B5D6CD + sample 119: + time = 2496000 + flags = 0 + data = length 1024, hash 6084A632 + sample 120: + time = 2517333 + flags = 0 + data = length 1024, hash 9990F104 + sample 121: + time = 2538666 + flags = 0 + data = length 1024, hash 828D7A4 + sample 122: + time = 2560000 + flags = 1 + data = length 1024, hash 1F972702 + sample 123: + time = 2581333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 124: + time = 2602666 + flags = 0 + data = length 1024, hash 64B5D6DB + sample 125: + time = 2624000 + flags = 0 + data = length 1024, hash 6084A61E + sample 126: + time = 2645333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 127: + time = 2666666 + flags = 0 + data = length 1024, hash 64B5D6A9 + sample 128: + time = 2688000 + flags = 0 + data = length 1024, hash 6084A625 + sample 129: + time = 2709333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 130: + time = 2730666 + flags = 0 + data = length 1024, hash 64B5D6CA + sample 131: + time = 2752000 + flags = 0 + data = length 1024, hash 6084A5E2 + sample 132: + time = 2773333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 133: + time = 2794666 + flags = 0 + data = length 1024, hash 64B5D66B + sample 134: + time = 2816000 + flags = 0 + data = length 1024, hash 6084A629 + sample 135: + time = 2837333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 136: + time = 2858666 + flags = 0 + data = length 1024, hash 64B5D6B4 + sample 137: + time = 2880000 + flags = 0 + data = length 1024, hash 6084A627 + sample 138: + time = 2901333 + flags = 0 + data = length 1024, hash 3D9FA477 + sample 139: + time = 2922666 + flags = 0 + data = length 1024, hash 64B5D6B5 + sample 140: + time = 2944000 + flags = 0 + data = length 1024, hash 6084A61D + sample 141: + time = 2965333 + flags = 0 + data = length 1024, hash 5A1932E8 + sample 142: + time = 2986666 + flags = 536870912 + data = length 973, hash 9C376715 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump new file mode 100644 index 0000000000..5ed0e99036 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump @@ -0,0 +1,591 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=651]] +numberOfTracks = 1 +track 0: + total output bytes = 128279 + sample count = 143 + 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 158, hash 37B039AC + sample 21: + time = 448000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 22: + time = 469333 + flags = 0 + data = length 159, hash 95787660 + sample 23: + time = 490666 + flags = 0 + data = length 161, hash 16788957 + sample 24: + time = 512000 + flags = 1 + data = length 494, hash 760CFF0D + sample 25: + time = 533333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 26: + time = 554666 + flags = 0 + data = length 158, hash BA6B70A1 + sample 27: + time = 576000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 28: + time = 597333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 29: + time = 618666 + flags = 0 + data = length 158, hash BA6B709B + sample 30: + time = 640000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 31: + time = 661333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 32: + time = 682666 + flags = 0 + data = length 158, hash BA6B70A5 + sample 33: + time = 704000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 34: + time = 725333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 35: + time = 746666 + flags = 0 + data = length 158, hash BA6B708A + sample 36: + time = 768000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 37: + time = 789333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 38: + time = 810666 + flags = 0 + data = length 133, hash 1CC194C2 + sample 39: + time = 832000 + flags = 0 + data = length 137, hash AED0A139 + sample 40: + time = 853333 + flags = 0 + data = length 138, hash DC4D2879 + sample 41: + time = 874666 + flags = 0 + data = length 118, hash B83EEC69 + sample 42: + time = 896000 + flags = 0 + data = length 163, hash 9C0874EC + sample 43: + time = 917333 + flags = 0 + data = length 157, hash CB2B0DA9 + sample 44: + time = 938666 + flags = 0 + data = length 157, hash 5DEF94E6 + sample 45: + time = 960000 + flags = 0 + data = length 199, hash 95B42394 + sample 46: + time = 981333 + flags = 0 + data = length 212, hash 16161E7E + sample 47: + time = 1000000 + flags = 1 + data = length 1889, hash 4CBC0E10 + sample 48: + time = 1002666 + flags = 0 + data = length 1946, hash 7CBAD516 + sample 49: + time = 1024000 + flags = 1 + data = length 1943, hash 107D8B89 + sample 50: + time = 1045333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 51: + time = 1066666 + flags = 0 + data = length 1946, hash E699F72C + sample 52: + time = 1088000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 53: + time = 1109333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 54: + time = 1130666 + flags = 0 + data = length 1946, hash E699F72E + sample 55: + time = 1152000 + flags = 0 + data = length 1946, hash EDE7C06D + sample 56: + time = 1173333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 57: + time = 1194666 + flags = 0 + data = length 1946, hash E699F737 + sample 58: + time = 1216000 + flags = 0 + data = length 1946, hash EDE7C06F + sample 59: + time = 1237333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 60: + time = 1258666 + flags = 0 + data = length 1946, hash E699F72D + sample 61: + time = 1280000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 62: + time = 1301333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 63: + time = 1322666 + flags = 0 + data = length 1946, hash E699F731 + sample 64: + time = 1344000 + flags = 0 + data = length 1946, hash EDE7C06E + sample 65: + time = 1365333 + flags = 0 + data = length 1990, hash 8176E8F8 + sample 66: + time = 1386666 + flags = 0 + data = length 2048, hash 409F44AB + sample 67: + time = 1408000 + flags = 0 + data = length 2048, hash 5431547E + sample 68: + time = 1429333 + flags = 0 + data = length 2048, hash 1193639E + sample 69: + time = 1450666 + flags = 0 + data = length 2048, hash 409F44AD + sample 70: + time = 1472000 + flags = 0 + data = length 2048, hash 5431547F + sample 71: + time = 1493333 + flags = 0 + data = length 2048, hash 184105C3 + sample 72: + time = 1514666 + flags = 0 + data = length 2048, hash 8308185C + sample 73: + time = 1536000 + flags = 1 + data = length 2045, hash CDE033BF + sample 74: + time = 1557333 + flags = 0 + data = length 2048, hash 1193639E + sample 75: + time = 1578666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 76: + time = 1600000 + flags = 0 + data = length 2048, hash 5431547E + sample 77: + time = 1621333 + flags = 0 + data = length 2048, hash 1193639D + sample 78: + time = 1642666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 79: + time = 1664000 + flags = 0 + data = length 2048, hash 5431547E + sample 80: + time = 1685333 + flags = 0 + data = length 2048, hash 1193639D + sample 81: + time = 1706666 + flags = 0 + data = length 2048, hash 409F44AA + sample 82: + time = 1728000 + flags = 0 + data = length 2048, hash 5431547F + sample 83: + time = 1749333 + flags = 0 + data = length 2048, hash 1193639D + sample 84: + time = 1770666 + flags = 0 + data = length 2048, hash 409F44AC + sample 85: + time = 1792000 + flags = 0 + data = length 2048, hash 5431547E + sample 86: + time = 1813333 + flags = 0 + data = length 2048, hash 1193639D + sample 87: + time = 1834666 + flags = 0 + data = length 2048, hash 409F44AE + sample 88: + time = 1856000 + flags = 0 + data = length 2048, hash 5431547D + sample 89: + time = 1877333 + flags = 0 + data = length 2048, hash 1193639E + sample 90: + time = 1898666 + flags = 0 + data = length 2048, hash 409F44B6 + sample 91: + time = 1920000 + flags = 0 + data = length 2048, hash 5431547F + sample 92: + time = 1941333 + flags = 0 + data = length 2048, hash 1193639E + sample 93: + time = 1962666 + flags = 0 + data = length 2048, hash 9C157230 + sample 94: + time = 1984000 + flags = 0 + data = length 1946, hash 4A0BC4F0 + sample 95: + time = 2000000 + flags = 1 + data = length 747, hash 825A1CE1 + sample 96: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 97: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 98: + time = 2048000 + flags = 1 + data = length 814, hash BB697ADA + sample 99: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 100: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 101: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 102: + time = 2133333 + flags = 0 + data = length 475, hash 5C915E92 + sample 103: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 104: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 105: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 106: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 107: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 108: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 109: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 110: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 111: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 112: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 113: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 114: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 115: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 116: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 117: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 118: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 119: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 120: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 121: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 122: + time = 2560000 + flags = 1 + data = length 817, hash 7CFB77D9 + sample 123: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 124: + time = 2602666 + flags = 0 + data = length 420, hash 7C4664C0 + sample 125: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 126: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 127: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 128: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 129: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 130: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 131: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 132: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 133: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 134: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 135: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 136: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 137: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 138: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 139: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 140: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 141: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 142: + time = 2986666 + flags = 0 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump new file mode 100644 index 0000000000..5ed0e99036 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump @@ -0,0 +1,591 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=651]] +numberOfTracks = 1 +track 0: + total output bytes = 128279 + sample count = 143 + 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 158, hash 37B039AC + sample 21: + time = 448000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 22: + time = 469333 + flags = 0 + data = length 159, hash 95787660 + sample 23: + time = 490666 + flags = 0 + data = length 161, hash 16788957 + sample 24: + time = 512000 + flags = 1 + data = length 494, hash 760CFF0D + sample 25: + time = 533333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 26: + time = 554666 + flags = 0 + data = length 158, hash BA6B70A1 + sample 27: + time = 576000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 28: + time = 597333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 29: + time = 618666 + flags = 0 + data = length 158, hash BA6B709B + sample 30: + time = 640000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 31: + time = 661333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 32: + time = 682666 + flags = 0 + data = length 158, hash BA6B70A5 + sample 33: + time = 704000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 34: + time = 725333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 35: + time = 746666 + flags = 0 + data = length 158, hash BA6B708A + sample 36: + time = 768000 + flags = 0 + data = length 164, hash 7E2368C3 + sample 37: + time = 789333 + flags = 0 + data = length 158, hash 10AC2CD4 + sample 38: + time = 810666 + flags = 0 + data = length 133, hash 1CC194C2 + sample 39: + time = 832000 + flags = 0 + data = length 137, hash AED0A139 + sample 40: + time = 853333 + flags = 0 + data = length 138, hash DC4D2879 + sample 41: + time = 874666 + flags = 0 + data = length 118, hash B83EEC69 + sample 42: + time = 896000 + flags = 0 + data = length 163, hash 9C0874EC + sample 43: + time = 917333 + flags = 0 + data = length 157, hash CB2B0DA9 + sample 44: + time = 938666 + flags = 0 + data = length 157, hash 5DEF94E6 + sample 45: + time = 960000 + flags = 0 + data = length 199, hash 95B42394 + sample 46: + time = 981333 + flags = 0 + data = length 212, hash 16161E7E + sample 47: + time = 1000000 + flags = 1 + data = length 1889, hash 4CBC0E10 + sample 48: + time = 1002666 + flags = 0 + data = length 1946, hash 7CBAD516 + sample 49: + time = 1024000 + flags = 1 + data = length 1943, hash 107D8B89 + sample 50: + time = 1045333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 51: + time = 1066666 + flags = 0 + data = length 1946, hash E699F72C + sample 52: + time = 1088000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 53: + time = 1109333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 54: + time = 1130666 + flags = 0 + data = length 1946, hash E699F72E + sample 55: + time = 1152000 + flags = 0 + data = length 1946, hash EDE7C06D + sample 56: + time = 1173333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 57: + time = 1194666 + flags = 0 + data = length 1946, hash E699F737 + sample 58: + time = 1216000 + flags = 0 + data = length 1946, hash EDE7C06F + sample 59: + time = 1237333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 60: + time = 1258666 + flags = 0 + data = length 1946, hash E699F72D + sample 61: + time = 1280000 + flags = 0 + data = length 1946, hash EDE7C070 + sample 62: + time = 1301333 + flags = 0 + data = length 1946, hash 7ACED7E4 + sample 63: + time = 1322666 + flags = 0 + data = length 1946, hash E699F731 + sample 64: + time = 1344000 + flags = 0 + data = length 1946, hash EDE7C06E + sample 65: + time = 1365333 + flags = 0 + data = length 1990, hash 8176E8F8 + sample 66: + time = 1386666 + flags = 0 + data = length 2048, hash 409F44AB + sample 67: + time = 1408000 + flags = 0 + data = length 2048, hash 5431547E + sample 68: + time = 1429333 + flags = 0 + data = length 2048, hash 1193639E + sample 69: + time = 1450666 + flags = 0 + data = length 2048, hash 409F44AD + sample 70: + time = 1472000 + flags = 0 + data = length 2048, hash 5431547F + sample 71: + time = 1493333 + flags = 0 + data = length 2048, hash 184105C3 + sample 72: + time = 1514666 + flags = 0 + data = length 2048, hash 8308185C + sample 73: + time = 1536000 + flags = 1 + data = length 2045, hash CDE033BF + sample 74: + time = 1557333 + flags = 0 + data = length 2048, hash 1193639E + sample 75: + time = 1578666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 76: + time = 1600000 + flags = 0 + data = length 2048, hash 5431547E + sample 77: + time = 1621333 + flags = 0 + data = length 2048, hash 1193639D + sample 78: + time = 1642666 + flags = 0 + data = length 2048, hash 409F44B3 + sample 79: + time = 1664000 + flags = 0 + data = length 2048, hash 5431547E + sample 80: + time = 1685333 + flags = 0 + data = length 2048, hash 1193639D + sample 81: + time = 1706666 + flags = 0 + data = length 2048, hash 409F44AA + sample 82: + time = 1728000 + flags = 0 + data = length 2048, hash 5431547F + sample 83: + time = 1749333 + flags = 0 + data = length 2048, hash 1193639D + sample 84: + time = 1770666 + flags = 0 + data = length 2048, hash 409F44AC + sample 85: + time = 1792000 + flags = 0 + data = length 2048, hash 5431547E + sample 86: + time = 1813333 + flags = 0 + data = length 2048, hash 1193639D + sample 87: + time = 1834666 + flags = 0 + data = length 2048, hash 409F44AE + sample 88: + time = 1856000 + flags = 0 + data = length 2048, hash 5431547D + sample 89: + time = 1877333 + flags = 0 + data = length 2048, hash 1193639E + sample 90: + time = 1898666 + flags = 0 + data = length 2048, hash 409F44B6 + sample 91: + time = 1920000 + flags = 0 + data = length 2048, hash 5431547F + sample 92: + time = 1941333 + flags = 0 + data = length 2048, hash 1193639E + sample 93: + time = 1962666 + flags = 0 + data = length 2048, hash 9C157230 + sample 94: + time = 1984000 + flags = 0 + data = length 1946, hash 4A0BC4F0 + sample 95: + time = 2000000 + flags = 1 + data = length 747, hash 825A1CE1 + sample 96: + time = 2005333 + flags = 0 + data = length 238, hash DA502A4F + sample 97: + time = 2026666 + flags = 0 + data = length 324, hash A76C55FD + sample 98: + time = 2048000 + flags = 1 + data = length 814, hash BB697ADA + sample 99: + time = 2069333 + flags = 0 + data = length 299, hash 90B92023 + sample 100: + time = 2090666 + flags = 0 + data = length 319, hash 5F47ED6D + sample 101: + time = 2112000 + flags = 0 + data = length 295, hash E35C19E + sample 102: + time = 2133333 + flags = 0 + data = length 475, hash 5C915E92 + sample 103: + time = 2154666 + flags = 0 + data = length 487, hash CB0F60F6 + sample 104: + time = 2176000 + flags = 0 + data = length 487, hash 4FFB63CA + sample 105: + time = 2197333 + flags = 0 + data = length 487, hash 97A7C57C + sample 106: + time = 2218666 + flags = 0 + data = length 487, hash CB0F611B + sample 107: + time = 2240000 + flags = 0 + data = length 487, hash 4FFB6392 + sample 108: + time = 2261333 + flags = 0 + data = length 487, hash 97A7C57D + sample 109: + time = 2282666 + flags = 0 + data = length 487, hash CB0F60C9 + sample 110: + time = 2304000 + flags = 0 + data = length 487, hash 4FFB63CB + sample 111: + time = 2325333 + flags = 0 + data = length 503, hash 56E1AE8B + sample 112: + time = 2346666 + flags = 0 + data = length 512, hash 12E1C0A8 + sample 113: + time = 2368000 + flags = 0 + data = length 512, hash 4C28784B + sample 114: + time = 2389333 + flags = 0 + data = length 512, hash 71422AB9 + sample 115: + time = 2410666 + flags = 0 + data = length 512, hash 12E1C076 + sample 116: + time = 2432000 + flags = 0 + data = length 512, hash 4C287892 + sample 117: + time = 2453333 + flags = 0 + data = length 512, hash 71422ABB + sample 118: + time = 2474666 + flags = 0 + data = length 512, hash 12E1C0B9 + sample 119: + time = 2496000 + flags = 0 + data = length 512, hash 4C28789F + sample 120: + time = 2517333 + flags = 0 + data = length 512, hash ED501283 + sample 121: + time = 2538666 + flags = 0 + data = length 512, hash 9D4174B7 + sample 122: + time = 2560000 + flags = 1 + data = length 817, hash 7CFB77D9 + sample 123: + time = 2581333 + flags = 0 + data = length 299, hash 90B9202B + sample 124: + time = 2602666 + flags = 0 + data = length 420, hash 7C4664C0 + sample 125: + time = 2624000 + flags = 0 + data = length 512, hash 4C287858 + sample 126: + time = 2645333 + flags = 0 + data = length 512, hash 71422ABF + sample 127: + time = 2666666 + flags = 0 + data = length 512, hash 12E1C05A + sample 128: + time = 2688000 + flags = 0 + data = length 512, hash 4C287822 + sample 129: + time = 2709333 + flags = 0 + data = length 512, hash 71422ABB + sample 130: + time = 2730666 + flags = 0 + data = length 512, hash 12E1C097 + sample 131: + time = 2752000 + flags = 0 + data = length 512, hash 4C28783B + sample 132: + time = 2773333 + flags = 0 + data = length 512, hash 71422ABC + sample 133: + time = 2794666 + flags = 0 + data = length 512, hash 12E1C088 + sample 134: + time = 2816000 + flags = 0 + data = length 512, hash 4C28786A + sample 135: + time = 2837333 + flags = 0 + data = length 512, hash 71422ABA + sample 136: + time = 2858666 + flags = 0 + data = length 512, hash 12E1C05D + sample 137: + time = 2880000 + flags = 0 + data = length 512, hash 4C287851 + sample 138: + time = 2901333 + flags = 0 + data = length 512, hash 71422ABF + sample 139: + time = 2922666 + flags = 0 + data = length 512, hash 12E1C09A + sample 140: + time = 2944000 + flags = 0 + data = length 512, hash 4C28782A + sample 141: + time = 2965333 + flags = 0 + data = length 604, hash 5CC9EA3F + sample 142: + time = 2986666 + flags = 0 + data = length 512, hash C97A4FD2 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.0.dump index 82697f2f5c..34aad010a7 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.0.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mha1 + codecs = mha1.0D maxInputSize = 3528 channelCount = 0 sampleRate = 48000 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.1.dump index 82697f2f5c..34aad010a7 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.1.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mha1 + codecs = mha1.0D maxInputSize = 3528 channelCount = 0 sampleRate = 48000 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.2.dump index 9cfc34af92..08ca5906fb 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.2.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mha1 + codecs = mha1.0D maxInputSize = 3528 channelCount = 0 sampleRate = 48000 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.3.dump index 8827b69f2e..19d3341933 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.3.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mha1 + codecs = mha1.0D maxInputSize = 3528 channelCount = 0 sampleRate = 48000 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.unknown_length.dump index 82697f2f5c..34aad010a7 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mha1.mp4.unknown_length.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mha1 + codecs = mha1.0D maxInputSize = 3528 channelCount = 0 sampleRate = 48000 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.0.dump index 7a90b85f07..e1752d5396 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.0.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mhm1 + codecs = mhm1.0D maxInputSize = 3564 channelCount = 0 sampleRate = 48000 @@ -21,6 +22,7 @@ track 0: metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000] initializationData: data = length 26, hash 4E58F6C7 + data = length 1, hash 31 sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.1.dump index 7a90b85f07..e1752d5396 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.1.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mhm1 + codecs = mhm1.0D maxInputSize = 3564 channelCount = 0 sampleRate = 48000 @@ -21,6 +22,7 @@ track 0: metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000] initializationData: data = length 26, hash 4E58F6C7 + data = length 1, hash 31 sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.2.dump index b499a43773..4eef118db3 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.2.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mhm1 + codecs = mhm1.0D maxInputSize = 3564 channelCount = 0 sampleRate = 48000 @@ -21,6 +22,7 @@ track 0: metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000] initializationData: data = length 26, hash 4E58F6C7 + data = length 1, hash 31 sample 0: time = 533333 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.3.dump index 40d39a2132..307d25017d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.3.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mhm1 + codecs = mhm1.0D maxInputSize = 3564 channelCount = 0 sampleRate = 48000 @@ -21,6 +22,7 @@ track 0: metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000] initializationData: data = length 26, hash 4E58F6C7 + data = length 1, hash 31 sample 0: time = 1066666 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.unknown_length.dump index 7a90b85f07..e1752d5396 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mpegh_mhm1.mp4.unknown_length.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = audio/mhm1 + codecs = mhm1.0D maxInputSize = 3564 channelCount = 0 sampleRate = 48000 @@ -21,6 +22,7 @@ track 0: metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000] initializationData: data = length 26, hash 4E58F6C7 + data = length 1, hash 31 sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c9cec56405dff5426ed532843da77156a90b881b GIT binary patch literal 4996 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 Vv#etF`jm@#1rMRq`ipvI{{{5&t_uJF literal 0 HcmV?d00001 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..94a81a5f19c34b3e53480b9a78501592a173c240 GIT binary patch literal 5288 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 aASkaU6S>y0+k7izyhHoZ89l|Flm7yQFU+?9 literal 0 HcmV?d00001 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..981fb72a80ca123116492387aa00cbd8c5ba05ef GIT binary patch literal 129565 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 L0C1NRl4tloT9f%w literal 0 HcmV?d00001 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange_fragmented.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..97f5e586d59d21d5b429696361a97d0c22830fdb GIT binary patch literal 130585 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 literal 0 HcmV?d00001 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..233930aefda1ead487e5d79f3a94302ea961d26d GIT binary patch literal 257620 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
  • ?h~juoI8>g86l7d7IIV-XYH{3^a_&wKNDrPo)go__6&IIjtCE$K zRcP0`7}`^H-Uq|R#)b=x4d*}f=6rHT|Nccqi3C_N%haS-g+-_4a4thWzDWkfom^`# zOj~pu>CCkjmA<1Lm#R&w+E5v}(^YXyA$r@|{^bN$C{c8qX#FSer#X?X%FoqWu-g(G z9J?m5fXAZC-&G~lFrjz<0r`M?y;>yJLVNEVAojL6)h)9v$gYeqA#K6we%>RmM&sVV zXv#VJD+T6#y@rN5sd1PqHq`!0uQnz&6MN}9;^TF+8!%fJva*&euJ@)Tp9??$0zd!= z00AHX1c1N~BT$Y?6-U&l7&iNo#F^R-uu}^9vB{$-5gfv|zQV{61o6vfBa4$2LJ&4f zq#nVeL{R(2$b1Po_TnUrX`LZ)>%+c{;n3nBI7ui**K))YQStTly@U`Uh^Q$dh#omecqsgO7BGfPjD-vsjV@4-(n(*kK|X5h99m zrgGZ8X#|Dzi6aDkNKa1b%YJu=534e~#jeMx0?oF~v@g6Zp2-t>@=pBOwtR9ywQRf_@ zw}jnb^${Sft5%had{VwXv{nPnLo;k@PG9hPo3H6G_xcLG*+b3GZ#_8nP{(+5uC?Kg zf-`Npv~kc{;;7xUns**oPIRd>^Lp8BA@JQnt{J&U!rZ=Zy{s+G>+>k|pP`TP$l8YK z9O8$eE6p`Fby6Ge$hA*sQe6FuhmvbW#{D4jvID zn{4dPqvZ&Cj>2*M^EerFELwV(Ecz+B4p|7gUr%~Vdv1iroyyk~!7EhdYZ6918OZMw zq&=?EpN-s(qyY@)! zC>#FSjdd|CH#l0O|5KL!M96I+`N$#WbCqnc^gY1h%w+D<0u7&7c*z+u!_CpCfD4MBwbd*6+$ z<1(I4{SAUXZbOn`Yb(M=#K0EiD=vsQiG=#xox^=AbNk+%RJvGU#a0~T6jPSAe%I{) z;`9ph{V(e#Yb&M-cU*o>tY&5$kjUGR%&q(I@pdn~>V_wAFci&2wpBp778_%ZRuL2oO(?~zG=nsYxOzz6dn*zZF_suo+=ubaV^v2xM8iat$dIzshCdq zT_~4%JBqpS8Nx)djSa1y=jtwA6COaLjQUKyuX*1p^wYl+ee9FTc=Hm@i6dExLnkfgapX4nmx|5 zKBhkDGqba_DS2s1U9z$?TRc=knGD8~MW@$nlbT^UIW7GrOIIqHH;n&MeyW5vSHpvn ztaXZarq?)+4=KO8)YT?kLjJ^nI;e~|ampY$=y5vDW4selHXPFXMHGvAT)VpB&z*l{ zd@{CzT`huQJ<~N|4#UHRZECDTeh=@y_1HX9BV?b!xKTb+w1`(JKIPFpiS@-#ubWo# zqOXRV3!7RfR2@3QuRof@b8H#Ab;IS-BQq}ZX$j+J9=Chfiw#x#i^kPG*2|5IS5FYu zUWP*Ql7-DwW<`W>E;N3Bh_`lV?8bdB-@*~>+l`CvBt+jZMG!iI&8#ei$SK`^{p%A` z3j)@7jWyQRkLWXS?{!n0Z);f7xcI|U@m}PGqNn`RZCf8-fljZJVI6)w7UndftCZ{* zj2M*7m{=g8PcqV1JrPNb@_iO3eOoMNnFjTylQV+h#&0s#wI_zR-*Jwnt;J2;Xz_GK z*||W}jQx}Wk3MR}+?FDRqi^mzP&4q|JlM;=(ZS%z3~#k-!{!rZMidIhq9r;ijbsj& z@t!eri*bdr`t|ue8%%OKB-i6K-HM1OI=zWhuX=!-O3{3I z!Kx4%;Sqeb&*)<-|GUcZ@ux*FK}@Z&DgJ%P$8KYTuv&e5G67!vi2)DKMBEzcv z2^45k3UnA|+{@L@?iHKI(^mJb-sGuN1xG1qLPRUp7&uvPUIhK2vzk*u^e;V>Ux+Bg z)XdoNwPjHVf_=Dln~S%POr)K$)r1ExEho`o5vxn<1cvAzTfcc_SX_1Ysd0c=zgn}A zU8Yh?_q@-l1xZFNIhBq3_POic(y_R+p+V$?)M}NPGovimEGBiz(A#cbewI%@;aRd> z?X~0D2dAaP-t?4;ZM;L+K*HR&VRBjj0~)*8gJc)mq~mT{i)K)5H@o{#Mz1>}VVotu zW}Wa&D{fw z+!NmqJ=rx(VSPTGSO+ZpqW|TKVUL*8)dk!>@z36CKZX3?n+`4`8s+dCIB1Z?e*%F| zj5%a};cO@C@Pf|?e4Y!L$Hk)P5u1aImDP?4TTa~C#5d}}?tQd!2kSCi93H+Et2{kc zWv~RSHQ4h`rJ%>X0I2(0}NvSuH()AHGdZ2r4Gw5p0=&hByY|F!_&Lp}$X9#s$ zDA-uy{Dgu2sRGR$rCt11gL1V*Hv*4Oa;UocYYuunZcW)xoLy=p!<)Wo_cad_VfAa5 zO`BHbN$3(#46YNay)mKl6FhACcR#ZT>%t($vX9Wa`3h!rS7e;ZRo~B?IAn_b5oo$8 zq3(hJgKulD??>>XsSlxmP{Zl8A+a4WVV;7rDGek)34T-4?gsUBY=m{mu8o} zNfqsS#&rG;uaz@`&ra;qd(xEIlB>+7tvB0t!{hNT2b}Or>#~_|>?)^~<9*h);nA)5 z6PkRV)x=hqo)Xd!X7&Hk=>0}lS#1gbtVW^l8?&HmZt z4buOK1Y$ojW^l8?&Hkr3p8u}v`NWvP&Hl`@{$vx}?4MYxK+@k&AnhY#1~(hr?C&p8 zki!2Pfl++_!%kKe*+e_~D;z{9w1d>i_K*A5IJe zJ`l+H$o|2T|Jj~=!wx8TK;Ty*kouARLm&Ik>0>|p+c<-e(SIF*PwXH3|Ib|hPd35- z|CMSk$jgr)ko1xLgZ~fy|BonBkjC#rVEiNd2mc@Z|9_qT`)|MCPwXH3|4$tL&o;pS z|9$E;$m!oB@aQA^2mc@Z|G!siV6T4)fgY^=W9PGmnHhhc`sd8Q-N}UO|78ha?Elj# z(``lm(h8tN?#!+a2o5(=j49v+T%uX+{D(P3^TRVW5&Ta~;ig)7cJ(W8CR!V8S ziB@~-$!z!KT%ODM%PCHdqD${;@`rD_Xmr55Ra5kon9aGJjksqlsEgf{hw?73w@EgP zD$%`F7Z5>pfMV5C`MAdf$#t)9rOG>d=y_i~q^03`+jXSW^0b?I#VJ)w*9&B`{l!iTgx9xi=a0@eO zIwt(5Ig2sVw)*|DMFTSSFCg%{&9c4?Gt2sBwskR|&a%$E$K>q$|MT#wZ}I;;FtRFM zy1a9{=HpklNs1pTnXq4q39OPW49yVkcUxv5=eF}# zYD!UOBil*E@Aq|UG}qIx-PEDWokPpNV@1gQ{gjt0*O?98 zAUfWi)F#1l%{?RhMb^s`6b-hw8D1FcHAXu*=!+;jMCkbW&yY4ZFf;1l}?|NkR*|1YcH|Nk0w7Ubf`5h(r0{=xqT|NqC8EJ*2hAkgxW{e%Ax z{{J_6k#N}WO5hXw2mk*sPX9*{;Q#*)H5%mcYY6myWdGp*ga7|EWe4{C{Ru>TWdGp* zga7}#y0MV&ZzS-E{e%Dik-PtwRq+3R|N0KD;8Oy=AK5?n|KR_BS~_6spH86tBl`#c zAN>Ds^djM~-<7~8_7DF5U!4ArBEbLur`Lx6zU!<1$o|3q2mk-yX9552E57@Y{e%Ax z{{Qdl#zMZok-#VR5B~p0?*3m^!T06Zok8kMa_U z&{-&|zlQdce}K#b>zyeWb@c<$K6Gi($0l}aYgy{3B1c)+|v zTUN_p<;^|XmlkWQE`a9)4n;kU|j#2WWDEg~+UCdMV6Vcx&5);Z$q0Ow=u*64K~AdYXqmb*!xg#^mE{ zv?&S^slr;*7PO?yJVr&!*MzsM@)NsxNgPG*LY(XAQ98_g%BNUc%3fR+2M=e}1?qiD zW5=|dSZnS1Q(7yw%Ok6Iwmoc@7mnO~@VQ%{bY81EH@AFLPDhsBWp=z-yBMXB`kceb z7e?k@x=|3WnWj3fo_40c`&yN2ftaR-GBe%V>k>^F!Gg7v!K_u!@VcW6;#{7Vj}urc z=OX}>n zx@c;PRbmoP2UDQ`HvH9fH;{gpI9rZRKiLNn%`PFN+eP=+Kjf4@H7Y9~gKwFYuI?kD zK9zgNtkV6p2%&t+TimOM>LryDjw-PC%J5n8D-2y?u7I zccd*__S*HzoZjiGeI&|oMV($rlXX;-!s+x|^j)L`GySb0B+Snc*cWd#3s+lBqhn zv;&+sb`?ckZ|`Hx9h)Yc$NkdlEyCI-^XaSH#}|z(pypB7<+B%#*KX|8X2>T6)1{Wxo|SEPDe3RjQyb@PL)|L&hT3);Z$1O zLddwG!8M-r$wQ6X$0+VqOcVa`q8P(mNBJSbKFpsFwH1>N-aDfnuX{$qw9od4 zcg%zHPuWb|63dgtR@)9Y9ei@SJbU%EWghJ*Lo@2;5*o8-^`6wpnP1&}FU}++W2=vU zNyqF(egc_IJnn9(eb0&x$c8z;p)EvfXS-=$;Y+d4%$z8+zq|fm{Z{Q!AMWzEwKO|k zU#;K2LcG6Sx3mMD+hZDX@Patetyjj4&daM*FNJKBr4{kJ&{H>r&vf+F)vMW*ug)c{ znrT2Pkr%sH*m6;|q!g+Y>Zqg|VqPkk)lXk`g_u`XDqs83udH^=D_i^1SM*)+cLx4x zVVrJ^Pe6^mIUt%Jkdr#UkeozND)lnkG`kW(P>*yy;QPM;RfKf%q&jRUKg+tA?cYjI$bpIsQa`@$TidjrgMop)D^2T9%9nFs aFY?w@-w!(&-on7ZeAHO9&Lq^EXaE3PZ_j4{ literal 0 HcmV?d00001 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..e551f787c1f35f6d5dec4b5ff9fc70f6968e5c31 GIT binary patch literal 130598 zcmeHQ1wa)`+un2N5DrQlLO3X`NQZ*7G>U|TL5g%Mp}-*&P)b6;Af!P`QdBw>P-zvE zQbAAwNs06C5%ePJjqm&Z>%F>j*qz;(-JRLzoqgw>XWm@^06>~KyV={=3-SYCz{aLV zPUZjrce1gwI|U|L+nh2t#pVs{ub9FvV4f~^AAo)Q`?&dO|F@mh{Pp`%>vz81hJ#n@ zc6Kzf0<(@dTYW5(;I}fdrF|VfCT`5xurKw+X)q@nQwt+731wrt@xE@Ov4?8cV%Gqx zxv90|$1QN>WOvf`(>69<+lR5)SlF6@`v@nS)r+ki#A3Rd&S2_z9Gi~~*lLlUbhJjT zZNGMMHns-0L!6wQJ_5X!?rCFg!v}6-!}?o6U=voW2&mhb8_B{*;D9U%trQwAY-lmW zj6is!Ed^c*WeQXQxCj8|GC>N!xz+Fi4YU-X1#IWgB|v>F zf*8D>I(RPjPMn>cuqCYpaNo(~(+(I@g8T04_OYAbF(!8F(y-^OzXpfRspGC-KFZng zV~jl%TkQI~!=_b&P3|L_HfEpE#2%9lHVbSz(ixi$2ROiOFdg^P6%fv5rp{p6r{L=B zh!qzc4@^LUOXF$=Yy^yx!6j~8{J+?a2d|e1!f?pO)X2FKmcsGBkczo78V$;k5C8-X z0bT&$FA)gf+Ln=tKxJNMNlQ#iIz}^P0{V@uXmw5BqM6t+c2~ z5|k_fOpmk`h`AM*bn0=z@+J62AC#2RDL{iR2Zc^^rUHtO+@x|BEnaMUN-@`eyzKeo=H%}N|eACW}Bk0$Zq$oS< zhBFw=Gn8$wL9u+tIHLLx>kac`js~TXy(6WOJ9}<+PDtZKc53|rjk7)6fCDWl|aE(H(l7tQmhYq<_&uD9N zWoBk(fa@dy0h@3Y8)b0!w~#&!iW|joY>N$Bf`&Kfl9MF8s$bMcNDKmH!WiX;niL{Bd zoxKuRFfx*(-4}>vr5=2CBcmx?lP2z(hJ*7f&fUd};jwcu+I9^?A=_^A2t*ljpL}Vy z<3{u6(4zfCP{-C0hgR|Gr#jX-VrB^ztyWZ{_|=l}ak_iSQ<&_B_Vf?ex1ggQEO%7k zo*tLo`o7J;)OMF3u#)gD^zcm{N&bVV8wL1h2@i6t)Gyu(6unCP+Ms%-=S*<>^|#3# zbk3$9VDYC@bc%xsOK%omRyH$&udCAMx^3KO!FdSQj@0B6f|75NDi$5dpU+@qa<6G_ zF_wEdPFujVDe+DwZpRhA6PMx&dYO0PE}_#ZD-owp?QYyJyU%b48PiooYb(g+LMv@dk>ocS!uX0DAe6R|`kupsg_LPZo zTG{id>okQ`FuhxK;6a>NQdLdY`r7_rO#!N|-zsPJTl>RqrEjd=Z}R07*5zd^@Au$X z^r!76U=y~+&GCAhGQa(~G4fqp_~Ld4hXjHdf-~-Y7u^=Z1M!Z>2y(~-D$I&J(^9JK z*U?y^$*CE(y+(7AEulS${UPaMAJ^SN^L=$ug>9MwgjDNl^xaK!Ml^_>2`(hx{~!5= zA;}HwB_cg)g2sF!=!M}rl5-kM6z}p$T^=ZTTr4epi1Wd>e6MZeouwu@pPS8el+1ET zi}dffSO)EPWO$Ku8%>GqzfcyTZt*B$1mELr)UhXm+XnAFvEYpLBQ6m5;~+>b1zg?@ujXsQ>+c>3{jvYX2Gb)d}eN{r`D>{~_}Icj)J9sJ(swY~wKL zA7enrC+N4e0jQ4^{LO|2pJ7~r+)^fGiGli)RZYQHU_0U$Gdv0Bdd`WxN-l5gJz@@9 zmVVAyVtUNe^t!a3*(PGd^@Gd7b5WZeM5#I|&W`0R(5LO|Q%V;cX`057m{ZQRp`&m( zZX+1kT#cs}`^VujK>}!FQAB`a5Xx_`A|P1?EUmF3lxwUA3QU8oaVqN=5koK;c(}@l z;9waM8t^a%Y~n`-1%SO>jj^l<$f$f|M?S_NQ}V_Br~Lmm{p{Lx1J~m7YcWVRek?C( zExxuPZU9HLXs~`A06>2E-@&w~bV#GNOp}023ogLAY`(QL$6%!rW8>8no~l%eM$gRQ zj4JeswwCVZD==hr!kpx(Vq8QtoSBY(On)I5kW3dF>KecBpgB@;$Ihxm8A@fz{PL;m z``O`T(Gz!1F>QAqxt$?|e~nfGed5`u_M0S`T|2W=!((Hlvi{hJ7Z8wIrK421cS~CLkw-MFR8D8CHDBCUcd^$0i!P;BLF%j@q}64p44=ph}aj7yBAdb6u6Wz8viC#kR_SBR%hCL{)VhXyJt{vOoRdjg z+C6)n{1vaBaOML18G{YAi?NG&T`9^|sgHdSeGd;y|hUtta@pW%w_Grj2ZZ!`$G;e3Td(S?G zw^@6c!kn*fY3;(qk2*8f`HdD?Tg2}1*7`iDvd&h@_&jS7@Cl9D=X1m4&*!Fk=~>`> zN%q1CvXYnm&DcTQdB-DrpkKnqTIk|*7;zZRi%8X zjl`Uoaek^yrn7_V?7d+biPBx2mJz2r1WFEySP1YP{fx@-FQ-rBJ{oQHREo}PHF=Bw z6!VbjO>RiaaPLkW_>ugJ<6Ek$+ci9trf8cAM=usW3h}q$n9uV|UpA=Ml~WwPlWujv&t5Fvk+MLRIWLxwV(l0fE4Y*1c>di$4AsTm zGvhT@d4=cqQ}-}=KQ?I+E`((qsped=JL}p|_Thecki7?Gk?cL5fJw_IY#m-Zt1>vf z9V@+0y99IN>0DqB4@tb2ptV=~@^zEcKQnLmxpKdai7#E*`B bFsWsxf-KxI8g( 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 F{{S2PWTgNA literal 0 HcmV?d00001 From 8e554c6d6aad3a956f20740a75c3bb2fb46f8b9d Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Tue, 7 Nov 2023 09:58:39 +0100 Subject: [PATCH 3/5] - some further changes according to review comments - update MPEG-H test data and extractor dumps --- .../media3/extractor/mp4/AtomParsers.java | 8 +- .../mp4/sample_mhm1_bl_cicp1.mp4.0.dump | 2 +- .../mp4/sample_mhm1_bl_cicp1.mp4.1.dump | 2 +- .../mp4/sample_mhm1_bl_cicp1.mp4.2.dump | 2 +- .../mp4/sample_mhm1_bl_cicp1.mp4.3.dump | 2 +- ...mple_mhm1_bl_cicp1.mp4.unknown_length.dump | 2 +- .../sample_mhm1_bl_configchange.mp4.0.dump | 2 +- .../sample_mhm1_bl_configchange.mp4.1.dump | 2 +- .../sample_mhm1_bl_configchange.mp4.2.dump | 2 +- .../sample_mhm1_bl_configchange.mp4.3.dump | 2 +- ...m1_bl_configchange.mp4.unknown_length.dump | 2 +- .../mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump | 2 +- .../mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump | 2 +- .../mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump | 2 +- .../mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump | 2 +- ...le_mhm1_lcbl_cicp1.mp4.unknown_length.dump | 2 +- .../sample_mhm1_lcbl_configchange.mp4.0.dump | 305 +++++++++--------- .../sample_mhm1_lcbl_configchange.mp4.1.dump | 211 ++++++------ .../sample_mhm1_lcbl_configchange.mp4.2.dump | 115 +++---- .../sample_mhm1_lcbl_configchange.mp4.3.dump | 61 ++-- ..._lcbl_configchange.mp4.unknown_length.dump | 305 +++++++++--------- .../assets/media/mp4/sample_mhm1_bl_cicp1.mp4 | Bin 4996 -> 4996 bytes .../mp4/sample_mhm1_bl_cicp1_fragmented.mp4 | Bin 5288 -> 5288 bytes .../media/mp4/sample_mhm1_bl_configchange.mp4 | Bin 129565 -> 129565 bytes ...sample_mhm1_bl_configchange_fragmented.mp4 | Bin 130585 -> 130585 bytes .../media/mp4/sample_mhm1_lcbl_cicp1.mp4 | Bin 5031 -> 5031 bytes .../mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 | Bin 5323 -> 5323 bytes .../mp4/sample_mhm1_lcbl_configchange.mp4 | Bin 257620 -> 129578 bytes ...mple_mhm1_lcbl_configchange_fragmented.mp4 | Bin 130598 -> 130598 bytes 29 files changed, 519 insertions(+), 516 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java index d4aa7517ba..6a573dd967 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java @@ -1723,12 +1723,11 @@ import java.util.List; // See ISO_IEC_23008-3;2022 MHADecoderConfigurationRecord // The header consists of: size (4), boxtype 'mhaC' (4), configurationVersion (1), // mpegh3daProfileLevelIndication (1), referenceChannelLayout (1), mpegh3daConfigLength (2). - int mhacHeaderSize = 13; parent.setPosition(childPosition + Atom.HEADER_SIZE); - int configurationVersion = parent.readUnsignedByte(); + parent.skipBytes(1); // configurationVersion int mpeghProfileLevelIndication = parent.readUnsignedByte(); - int mpeghReferenceChannelLayout = parent.readUnsignedByte(); - if (mimeType.equals(MimeTypes.AUDIO_MPEGH_MHM1)) { + parent.skipBytes(1); // mpeghReferenceChannelLayout + if (MimeTypes.AUDIO_MPEGH_MHM1.equals(mimeType)) { codecs = String.format("mhm1.%02X", mpeghProfileLevelIndication); } else { codecs = String.format("mha1.%02X", mpeghProfileLevelIndication); @@ -1747,7 +1746,6 @@ import java.util.List; } else if (childAtomType == Atom.TYPE_mhaP) { // See ISO_IEC_23008-3;2022 MHAProfileAndLevelCompatibilitySetBox // The header consists of: size (4), boxtype 'mhaP' (4), numCompatibleSets (1). - int mhapHeaderSize = 9; parent.setPosition(childPosition + Atom.HEADER_SIZE); int numCompatibleSets = parent.readUnsignedByte(); if (numCompatibleSets > 0) { diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump index 061238c48d..4d4738271b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189787000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 60, hash C05CBBFC sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump index 061238c48d..4d4738271b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189787000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 60, hash C05CBBFC sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump index c970e640e5..b9f19aea49 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189787000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 60, hash C05CBBFC sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump index c970e640e5..b9f19aea49 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189787000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 60, hash C05CBBFC sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump index 061238c48d..4d4738271b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189787000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 60, hash C05CBBFC sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump index fb61fab254..e9804a7c26 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189743000] + metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump index cc10b5e943..f37c37d996 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189743000] + metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump index 2e022c6246..5248df28f4 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189743000] + metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump index 6d68e91793..3278f168d3 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189743000] + metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump index fb61fab254..e9804a7c26 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189743000] + metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump index 302fda3a31..3ec36c107d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189788000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 63, hash 82D00145 data = length 1, hash 2F diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump index 302fda3a31..3ec36c107d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189788000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 63, hash 82D00145 data = length 1, hash 2F diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump index fdc89c6f62..a718d28847 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189788000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 63, hash 82D00145 data = length 1, hash 2F diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump index fdc89c6f62..a718d28847 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189788000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 63, hash 82D00145 data = length 1, hash 2F diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump index 302fda3a31..3ec36c107d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump @@ -17,7 +17,7 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189788000] + metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] initializationData: data = length 63, hash 82D00145 data = length 1, hash 2F diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump index 8b54f84aa6..0fc4009c9c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump @@ -1,595 +1,596 @@ seekMap: isSeekable = true duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=25275]] - getPosition(3000000) = [[timeUs=3000000, position=236167]] + getPosition(0) = [[timeUs=0, position=1299]] + getPosition(1) = [[timeUs=1, position=1299]] + getPosition(1500000) = [[timeUs=1500000, position=13294]] + getPosition(3000000) = [[timeUs=3000000, position=118734]] numberOfTracks = 1 track 0: - total output bytes = 256334 + total output bytes = 128279 sample count = 143 format 0: id = 1 sampleMimeType = audio/mhm1 - codecs = mhm1.10 - maxInputSize = 4126 + codecs = mhm1.0B + maxInputSize = 2078 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189744000] + metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] initializationData: - data = length 64, hash 7A6EA64F + data = length 67, hash 3CF14937 + data = length 1, hash 2F sample 0: time = 0 flags = 1 - data = length 620, hash 6EDA7757 + data = length 488, hash 1ED69C37 sample 1: time = 21333 flags = 0 - data = length 204, hash 96F91771 + data = length 164, hash 136B1B66 sample 2: time = 42666 flags = 0 - data = length 202, hash DB12DFC8 + data = length 158, hash A9289DCD sample 3: time = 64000 flags = 0 - data = length 339, hash 72DE92AC + data = length 164, hash 7E2368C3 sample 4: time = 85333 flags = 0 - data = length 342, hash FD3E7470 + data = length 158, hash 10AC2CD4 sample 5: time = 106666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash 22E84AF0 sample 6: time = 128000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 7: time = 149333 flags = 0 - data = length 342, hash FD3E7475 + data = length 158, hash 10AC2CD4 sample 8: time = 170666 flags = 0 - data = length 341, hash D0034AB1 + data = length 158, hash BA6B7094 sample 9: time = 192000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 10: time = 213333 flags = 0 - data = length 342, hash FD3E747B + data = length 158, hash 10AC2CD4 sample 11: time = 234666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash A9289DCC sample 12: time = 256000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 13: time = 277333 flags = 0 - data = length 342, hash FD3E7474 + data = length 158, hash 10AC2CD4 sample 14: time = 298666 flags = 0 - data = length 341, hash D0034AB1 + data = length 158, hash A9289DCD sample 15: time = 320000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 16: time = 341333 flags = 0 - data = length 342, hash FD3E7462 + data = length 158, hash 10AC2CD4 sample 17: time = 362666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash 37B039B1 sample 18: time = 384000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 19: time = 405333 flags = 0 - data = length 342, hash FD3E746B + data = length 158, hash 10AC2CD4 sample 20: time = 426666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash 37B039AC sample 21: time = 448000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 22: time = 469333 flags = 0 - data = length 342, hash 63A0363E + data = length 159, hash 95787660 sample 23: time = 490666 flags = 0 - data = length 341, hash 51F65393 + data = length 161, hash 16788957 sample 24: time = 512000 flags = 1 - data = length 577, hash 32D21653 + data = length 494, hash 760CFF0D sample 25: time = 533333 flags = 0 - data = length 197, hash CB0DB412 + data = length 158, hash 10AC2CD4 sample 26: time = 554666 flags = 0 - data = length 250, hash 9BDE48D4 + data = length 158, hash BA6B70A1 sample 27: time = 576000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 28: time = 597333 flags = 0 - data = length 342, hash FD3E7476 + data = length 158, hash 10AC2CD4 sample 29: time = 618666 flags = 0 - data = length 341, hash D0034AAE + data = length 158, hash BA6B709B sample 30: time = 640000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 31: time = 661333 flags = 0 - data = length 342, hash FD3E7464 + data = length 158, hash 10AC2CD4 sample 32: time = 682666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash BA6B70A5 sample 33: time = 704000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 34: time = 725333 flags = 0 - data = length 342, hash FD3E7468 + data = length 158, hash 10AC2CD4 sample 35: time = 746666 flags = 0 - data = length 341, hash D0034AAE + data = length 158, hash BA6B708A sample 36: time = 768000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 37: time = 789333 flags = 0 - data = length 342, hash FD3E746B + data = length 158, hash 10AC2CD4 sample 38: time = 810666 flags = 0 - data = length 341, hash D0034AB1 + data = length 133, hash 1CC194C2 sample 39: time = 832000 flags = 0 - data = length 341, hash A3075A48 + data = length 137, hash AED0A139 sample 40: time = 853333 flags = 0 - data = length 342, hash FD3E747C + data = length 138, hash DC4D2879 sample 41: time = 874666 flags = 0 - data = length 341, hash D0034AB1 + data = length 118, hash B83EEC69 sample 42: time = 896000 flags = 0 - data = length 341, hash A3075A48 + data = length 163, hash 9C0874EC sample 43: time = 917333 flags = 0 - data = length 342, hash FD3E747F + data = length 157, hash CB2B0DA9 sample 44: time = 938666 flags = 0 - data = length 341, hash D0034AAE + data = length 157, hash 5DEF94E6 sample 45: time = 960000 flags = 0 - data = length 357, hash 790D09FE + data = length 199, hash 95B42394 sample 46: time = 981333 flags = 0 - data = length 472, hash 6A997000 + data = length 212, hash 16161E7E sample 47: time = 1000000 flags = 1 - data = length 3908, hash CDC05E32 + data = length 1889, hash 4CBC0E10 sample 48: time = 1002666 flags = 0 - data = length 3892, hash FB47D264 + data = length 1946, hash 7CBAD516 sample 49: time = 1024000 flags = 1 - data = length 3892, hash 76D5402B + data = length 1943, hash 107D8B89 sample 50: time = 1045333 flags = 0 - data = length 3892, hash 99AE1080 + data = length 1946, hash 7ACED7E4 sample 51: time = 1066666 flags = 0 - data = length 3892, hash 7DA3A5B7 + data = length 1946, hash E699F72C sample 52: time = 1088000 flags = 0 - data = length 3892, hash 886247CE + data = length 1946, hash EDE7C070 sample 53: time = 1109333 flags = 0 - data = length 3892, hash 99AE1077 + data = length 1946, hash 7ACED7E4 sample 54: time = 1130666 flags = 0 - data = length 3892, hash 7DA3A5E0 + data = length 1946, hash E699F72E sample 55: time = 1152000 flags = 0 - data = length 3892, hash 886247BA + data = length 1946, hash EDE7C06D sample 56: time = 1173333 flags = 0 - data = length 3892, hash 99AE106D + data = length 1946, hash 7ACED7E4 sample 57: time = 1194666 flags = 0 - data = length 3892, hash 7DA3A5CD + data = length 1946, hash E699F737 sample 58: time = 1216000 flags = 0 - data = length 3892, hash 886247CA + data = length 1946, hash EDE7C06F sample 59: time = 1237333 flags = 0 - data = length 3892, hash 99AE1079 + data = length 1946, hash 7ACED7E4 sample 60: time = 1258666 flags = 0 - data = length 3892, hash 7DA3A5D1 + data = length 1946, hash E699F72D sample 61: time = 1280000 flags = 0 - data = length 3892, hash 886247BD + data = length 1946, hash EDE7C070 sample 62: time = 1301333 flags = 0 - data = length 3892, hash 99AE106D + data = length 1946, hash 7ACED7E4 sample 63: time = 1322666 flags = 0 - data = length 3892, hash 7DA3A5A7 + data = length 1946, hash E699F731 sample 64: time = 1344000 flags = 0 - data = length 3892, hash 886247C5 + data = length 1946, hash EDE7C06E sample 65: time = 1365333 flags = 0 - data = length 3980, hash 8DF782E + data = length 1990, hash 8176E8F8 sample 66: time = 1386666 flags = 0 - data = length 4096, hash 6C926695 + data = length 2048, hash 409F44AB sample 67: time = 1408000 flags = 0 - data = length 4096, hash BFCBCEDC + data = length 2048, hash 5431547E sample 68: time = 1429333 flags = 0 - data = length 4096, hash 886C00CF + data = length 2048, hash 1193639E sample 69: time = 1450666 flags = 0 - data = length 4096, hash 6C92668B + data = length 2048, hash 409F44AD sample 70: time = 1472000 flags = 0 - data = length 4096, hash BFCBCEC6 + data = length 2048, hash 5431547F sample 71: time = 1493333 flags = 0 - data = length 4096, hash E431EAA2 + data = length 2048, hash 184105C3 sample 72: time = 1514666 flags = 0 - data = length 4096, hash 21C24AE1 + data = length 2048, hash 8308185C sample 73: time = 1536000 flags = 1 - data = length 4096, hash 884E3535 + data = length 2045, hash CDE033BF sample 74: time = 1557333 flags = 0 - data = length 4096, hash 886C00CE + data = length 2048, hash 1193639E sample 75: time = 1578666 flags = 0 - data = length 4096, hash 6C926678 + data = length 2048, hash 409F44B3 sample 76: time = 1600000 flags = 0 - data = length 4096, hash BFCBCEC1 + data = length 2048, hash 5431547E sample 77: time = 1621333 flags = 0 - data = length 4096, hash 886C00B5 + data = length 2048, hash 1193639D sample 78: time = 1642666 flags = 0 - data = length 4096, hash 6C926680 + data = length 2048, hash 409F44B3 sample 79: time = 1664000 flags = 0 - data = length 4096, hash BFCBCECA + data = length 2048, hash 5431547E sample 80: time = 1685333 flags = 0 - data = length 4096, hash 886C00C4 + data = length 2048, hash 1193639D sample 81: time = 1706666 flags = 0 - data = length 4096, hash 6C9266A3 + data = length 2048, hash 409F44AA sample 82: time = 1728000 flags = 0 - data = length 4096, hash BFCBCECB + data = length 2048, hash 5431547F sample 83: time = 1749333 flags = 0 - data = length 4096, hash 886C00B9 + data = length 2048, hash 1193639D sample 84: time = 1770666 flags = 0 - data = length 4096, hash 6C926673 + data = length 2048, hash 409F44AC sample 85: time = 1792000 flags = 0 - data = length 4096, hash BFCBCEDF + data = length 2048, hash 5431547E sample 86: time = 1813333 flags = 0 - data = length 4096, hash 886C00C8 + data = length 2048, hash 1193639D sample 87: time = 1834666 flags = 0 - data = length 4096, hash 6C926684 + data = length 2048, hash 409F44AE sample 88: time = 1856000 flags = 0 - data = length 4096, hash BFCBCEDD + data = length 2048, hash 5431547D sample 89: time = 1877333 flags = 0 - data = length 4096, hash 886C00B2 + data = length 2048, hash 1193639E sample 90: time = 1898666 flags = 0 - data = length 4096, hash 6C926684 + data = length 2048, hash 409F44B6 sample 91: time = 1920000 flags = 0 - data = length 4096, hash BFCBCEDA + data = length 2048, hash 5431547F sample 92: time = 1941333 flags = 0 - data = length 4096, hash 886C00C7 + data = length 2048, hash 1193639E sample 93: time = 1962666 flags = 0 - data = length 4096, hash AFF7C654 + data = length 2048, hash 9C157230 sample 94: time = 1984000 flags = 0 - data = length 3892, hash 7B3EC7FD + data = length 1946, hash 4A0BC4F0 sample 95: time = 2000000 flags = 1 - data = length 764, hash B77EB08E + data = length 747, hash 825A1CE1 sample 96: time = 2005333 flags = 0 - data = length 413, hash A778FC60 + data = length 238, hash DA502A4F sample 97: time = 2026666 flags = 0 - data = length 973, hash 21498BD8 + data = length 324, hash A76C55FD sample 98: time = 2048000 flags = 1 - data = length 973, hash 66EB9A28 + data = length 814, hash BB697ADA sample 99: time = 2069333 flags = 0 - data = length 973, hash EA24022E + data = length 299, hash 90B92023 sample 100: time = 2090666 flags = 0 - data = length 973, hash B888BDB6 + data = length 319, hash 5F47ED6D sample 101: time = 2112000 flags = 0 - data = length 973, hash 52B402A + data = length 295, hash E35C19E sample 102: time = 2133333 flags = 0 - data = length 973, hash EA24022E + data = length 475, hash 5C915E92 sample 103: time = 2154666 flags = 0 - data = length 973, hash B888BE0C + data = length 487, hash CB0F60F6 sample 104: time = 2176000 flags = 0 - data = length 973, hash 52B4028 + data = length 487, hash 4FFB63CA sample 105: time = 2197333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57C sample 106: time = 2218666 flags = 0 - data = length 973, hash B888BDDA + data = length 487, hash CB0F611B sample 107: time = 2240000 flags = 0 - data = length 973, hash 52B4016 + data = length 487, hash 4FFB6392 sample 108: time = 2261333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57D sample 109: time = 2282666 flags = 0 - data = length 973, hash B888BDBD + data = length 487, hash CB0F60C9 sample 110: time = 2304000 flags = 0 - data = length 973, hash 52B406C + data = length 487, hash 4FFB63CB sample 111: time = 2325333 flags = 0 - data = length 1021, hash 2C16D82E + data = length 503, hash 56E1AE8B sample 112: time = 2346666 flags = 0 - data = length 1024, hash 64B5D698 + data = length 512, hash 12E1C0A8 sample 113: time = 2368000 flags = 0 - data = length 1024, hash 6084A5F9 + data = length 512, hash 4C28784B sample 114: time = 2389333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422AB9 sample 115: time = 2410666 flags = 0 - data = length 1024, hash 64B5D68B + data = length 512, hash 12E1C076 sample 116: time = 2432000 flags = 0 - data = length 1024, hash 6084A645 + data = length 512, hash 4C287892 sample 117: time = 2453333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 118: time = 2474666 flags = 0 - data = length 1024, hash 64B5D6CD + data = length 512, hash 12E1C0B9 sample 119: time = 2496000 flags = 0 - data = length 1024, hash 6084A632 + data = length 512, hash 4C28789F sample 120: time = 2517333 flags = 0 - data = length 1024, hash 9990F104 + data = length 512, hash ED501283 sample 121: time = 2538666 flags = 0 - data = length 1024, hash 828D7A4 + data = length 512, hash 9D4174B7 sample 122: time = 2560000 flags = 1 - data = length 1024, hash 1F972702 + data = length 817, hash 7CFB77D9 sample 123: time = 2581333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 299, hash 90B9202B sample 124: time = 2602666 flags = 0 - data = length 1024, hash 64B5D6DB + data = length 420, hash 7C4664C0 sample 125: time = 2624000 flags = 0 - data = length 1024, hash 6084A61E + data = length 512, hash 4C287858 sample 126: time = 2645333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 127: time = 2666666 flags = 0 - data = length 1024, hash 64B5D6A9 + data = length 512, hash 12E1C05A sample 128: time = 2688000 flags = 0 - data = length 1024, hash 6084A625 + data = length 512, hash 4C287822 sample 129: time = 2709333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 130: time = 2730666 flags = 0 - data = length 1024, hash 64B5D6CA + data = length 512, hash 12E1C097 sample 131: time = 2752000 flags = 0 - data = length 1024, hash 6084A5E2 + data = length 512, hash 4C28783B sample 132: time = 2773333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABC sample 133: time = 2794666 flags = 0 - data = length 1024, hash 64B5D66B + data = length 512, hash 12E1C088 sample 134: time = 2816000 flags = 0 - data = length 1024, hash 6084A629 + data = length 512, hash 4C28786A sample 135: time = 2837333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABA sample 136: time = 2858666 flags = 0 - data = length 1024, hash 64B5D6B4 + data = length 512, hash 12E1C05D sample 137: time = 2880000 flags = 0 - data = length 1024, hash 6084A627 + data = length 512, hash 4C287851 sample 138: time = 2901333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 139: time = 2922666 flags = 0 - data = length 1024, hash 64B5D6B5 + data = length 512, hash 12E1C09A sample 140: time = 2944000 flags = 0 - data = length 1024, hash 6084A61D + data = length 512, hash 4C28782A sample 141: time = 2965333 flags = 0 - data = length 1024, hash 5A1932E8 + data = length 604, hash 5CC9EA3F sample 142: time = 2986666 flags = 536870912 - data = length 973, hash 9C376715 + data = length 512, hash C97A4FD2 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump index 2f4f9f62db..db53cdbbf7 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump @@ -1,407 +1,408 @@ seekMap: isSeekable = true duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=25275]] - getPosition(3000000) = [[timeUs=3000000, position=236167]] + getPosition(0) = [[timeUs=0, position=1299]] + getPosition(1) = [[timeUs=1, position=1299]] + getPosition(1500000) = [[timeUs=1500000, position=13294]] + getPosition(3000000) = [[timeUs=3000000, position=118734]] numberOfTracks = 1 track 0: - total output bytes = 240145 + total output bytes = 120119 sample count = 96 format 0: id = 1 sampleMimeType = audio/mhm1 - codecs = mhm1.10 - maxInputSize = 4126 + codecs = mhm1.0B + maxInputSize = 2078 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189744000] + metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] initializationData: - data = length 64, hash 7A6EA64F + data = length 67, hash 3CF14937 + data = length 1, hash 2F sample 0: time = 1000000 flags = 1 - data = length 3908, hash CDC05E32 + data = length 1889, hash 4CBC0E10 sample 1: time = 1002666 flags = 0 - data = length 3892, hash FB47D264 + data = length 1946, hash 7CBAD516 sample 2: time = 1024000 flags = 1 - data = length 3892, hash 76D5402B + data = length 1943, hash 107D8B89 sample 3: time = 1045333 flags = 0 - data = length 3892, hash 99AE1080 + data = length 1946, hash 7ACED7E4 sample 4: time = 1066666 flags = 0 - data = length 3892, hash 7DA3A5B7 + data = length 1946, hash E699F72C sample 5: time = 1088000 flags = 0 - data = length 3892, hash 886247CE + data = length 1946, hash EDE7C070 sample 6: time = 1109333 flags = 0 - data = length 3892, hash 99AE1077 + data = length 1946, hash 7ACED7E4 sample 7: time = 1130666 flags = 0 - data = length 3892, hash 7DA3A5E0 + data = length 1946, hash E699F72E sample 8: time = 1152000 flags = 0 - data = length 3892, hash 886247BA + data = length 1946, hash EDE7C06D sample 9: time = 1173333 flags = 0 - data = length 3892, hash 99AE106D + data = length 1946, hash 7ACED7E4 sample 10: time = 1194666 flags = 0 - data = length 3892, hash 7DA3A5CD + data = length 1946, hash E699F737 sample 11: time = 1216000 flags = 0 - data = length 3892, hash 886247CA + data = length 1946, hash EDE7C06F sample 12: time = 1237333 flags = 0 - data = length 3892, hash 99AE1079 + data = length 1946, hash 7ACED7E4 sample 13: time = 1258666 flags = 0 - data = length 3892, hash 7DA3A5D1 + data = length 1946, hash E699F72D sample 14: time = 1280000 flags = 0 - data = length 3892, hash 886247BD + data = length 1946, hash EDE7C070 sample 15: time = 1301333 flags = 0 - data = length 3892, hash 99AE106D + data = length 1946, hash 7ACED7E4 sample 16: time = 1322666 flags = 0 - data = length 3892, hash 7DA3A5A7 + data = length 1946, hash E699F731 sample 17: time = 1344000 flags = 0 - data = length 3892, hash 886247C5 + data = length 1946, hash EDE7C06E sample 18: time = 1365333 flags = 0 - data = length 3980, hash 8DF782E + data = length 1990, hash 8176E8F8 sample 19: time = 1386666 flags = 0 - data = length 4096, hash 6C926695 + data = length 2048, hash 409F44AB sample 20: time = 1408000 flags = 0 - data = length 4096, hash BFCBCEDC + data = length 2048, hash 5431547E sample 21: time = 1429333 flags = 0 - data = length 4096, hash 886C00CF + data = length 2048, hash 1193639E sample 22: time = 1450666 flags = 0 - data = length 4096, hash 6C92668B + data = length 2048, hash 409F44AD sample 23: time = 1472000 flags = 0 - data = length 4096, hash BFCBCEC6 + data = length 2048, hash 5431547F sample 24: time = 1493333 flags = 0 - data = length 4096, hash E431EAA2 + data = length 2048, hash 184105C3 sample 25: time = 1514666 flags = 0 - data = length 4096, hash 21C24AE1 + data = length 2048, hash 8308185C sample 26: time = 1536000 flags = 1 - data = length 4096, hash 884E3535 + data = length 2045, hash CDE033BF sample 27: time = 1557333 flags = 0 - data = length 4096, hash 886C00CE + data = length 2048, hash 1193639E sample 28: time = 1578666 flags = 0 - data = length 4096, hash 6C926678 + data = length 2048, hash 409F44B3 sample 29: time = 1600000 flags = 0 - data = length 4096, hash BFCBCEC1 + data = length 2048, hash 5431547E sample 30: time = 1621333 flags = 0 - data = length 4096, hash 886C00B5 + data = length 2048, hash 1193639D sample 31: time = 1642666 flags = 0 - data = length 4096, hash 6C926680 + data = length 2048, hash 409F44B3 sample 32: time = 1664000 flags = 0 - data = length 4096, hash BFCBCECA + data = length 2048, hash 5431547E sample 33: time = 1685333 flags = 0 - data = length 4096, hash 886C00C4 + data = length 2048, hash 1193639D sample 34: time = 1706666 flags = 0 - data = length 4096, hash 6C9266A3 + data = length 2048, hash 409F44AA sample 35: time = 1728000 flags = 0 - data = length 4096, hash BFCBCECB + data = length 2048, hash 5431547F sample 36: time = 1749333 flags = 0 - data = length 4096, hash 886C00B9 + data = length 2048, hash 1193639D sample 37: time = 1770666 flags = 0 - data = length 4096, hash 6C926673 + data = length 2048, hash 409F44AC sample 38: time = 1792000 flags = 0 - data = length 4096, hash BFCBCEDF + data = length 2048, hash 5431547E sample 39: time = 1813333 flags = 0 - data = length 4096, hash 886C00C8 + data = length 2048, hash 1193639D sample 40: time = 1834666 flags = 0 - data = length 4096, hash 6C926684 + data = length 2048, hash 409F44AE sample 41: time = 1856000 flags = 0 - data = length 4096, hash BFCBCEDD + data = length 2048, hash 5431547D sample 42: time = 1877333 flags = 0 - data = length 4096, hash 886C00B2 + data = length 2048, hash 1193639E sample 43: time = 1898666 flags = 0 - data = length 4096, hash 6C926684 + data = length 2048, hash 409F44B6 sample 44: time = 1920000 flags = 0 - data = length 4096, hash BFCBCEDA + data = length 2048, hash 5431547F sample 45: time = 1941333 flags = 0 - data = length 4096, hash 886C00C7 + data = length 2048, hash 1193639E sample 46: time = 1962666 flags = 0 - data = length 4096, hash AFF7C654 + data = length 2048, hash 9C157230 sample 47: time = 1984000 flags = 0 - data = length 3892, hash 7B3EC7FD + data = length 1946, hash 4A0BC4F0 sample 48: time = 2000000 flags = 1 - data = length 764, hash B77EB08E + data = length 747, hash 825A1CE1 sample 49: time = 2005333 flags = 0 - data = length 413, hash A778FC60 + data = length 238, hash DA502A4F sample 50: time = 2026666 flags = 0 - data = length 973, hash 21498BD8 + data = length 324, hash A76C55FD sample 51: time = 2048000 flags = 1 - data = length 973, hash 66EB9A28 + data = length 814, hash BB697ADA sample 52: time = 2069333 flags = 0 - data = length 973, hash EA24022E + data = length 299, hash 90B92023 sample 53: time = 2090666 flags = 0 - data = length 973, hash B888BDB6 + data = length 319, hash 5F47ED6D sample 54: time = 2112000 flags = 0 - data = length 973, hash 52B402A + data = length 295, hash E35C19E sample 55: time = 2133333 flags = 0 - data = length 973, hash EA24022E + data = length 475, hash 5C915E92 sample 56: time = 2154666 flags = 0 - data = length 973, hash B888BE0C + data = length 487, hash CB0F60F6 sample 57: time = 2176000 flags = 0 - data = length 973, hash 52B4028 + data = length 487, hash 4FFB63CA sample 58: time = 2197333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57C sample 59: time = 2218666 flags = 0 - data = length 973, hash B888BDDA + data = length 487, hash CB0F611B sample 60: time = 2240000 flags = 0 - data = length 973, hash 52B4016 + data = length 487, hash 4FFB6392 sample 61: time = 2261333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57D sample 62: time = 2282666 flags = 0 - data = length 973, hash B888BDBD + data = length 487, hash CB0F60C9 sample 63: time = 2304000 flags = 0 - data = length 973, hash 52B406C + data = length 487, hash 4FFB63CB sample 64: time = 2325333 flags = 0 - data = length 1021, hash 2C16D82E + data = length 503, hash 56E1AE8B sample 65: time = 2346666 flags = 0 - data = length 1024, hash 64B5D698 + data = length 512, hash 12E1C0A8 sample 66: time = 2368000 flags = 0 - data = length 1024, hash 6084A5F9 + data = length 512, hash 4C28784B sample 67: time = 2389333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422AB9 sample 68: time = 2410666 flags = 0 - data = length 1024, hash 64B5D68B + data = length 512, hash 12E1C076 sample 69: time = 2432000 flags = 0 - data = length 1024, hash 6084A645 + data = length 512, hash 4C287892 sample 70: time = 2453333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 71: time = 2474666 flags = 0 - data = length 1024, hash 64B5D6CD + data = length 512, hash 12E1C0B9 sample 72: time = 2496000 flags = 0 - data = length 1024, hash 6084A632 + data = length 512, hash 4C28789F sample 73: time = 2517333 flags = 0 - data = length 1024, hash 9990F104 + data = length 512, hash ED501283 sample 74: time = 2538666 flags = 0 - data = length 1024, hash 828D7A4 + data = length 512, hash 9D4174B7 sample 75: time = 2560000 flags = 1 - data = length 1024, hash 1F972702 + data = length 817, hash 7CFB77D9 sample 76: time = 2581333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 299, hash 90B9202B sample 77: time = 2602666 flags = 0 - data = length 1024, hash 64B5D6DB + data = length 420, hash 7C4664C0 sample 78: time = 2624000 flags = 0 - data = length 1024, hash 6084A61E + data = length 512, hash 4C287858 sample 79: time = 2645333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 80: time = 2666666 flags = 0 - data = length 1024, hash 64B5D6A9 + data = length 512, hash 12E1C05A sample 81: time = 2688000 flags = 0 - data = length 1024, hash 6084A625 + data = length 512, hash 4C287822 sample 82: time = 2709333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 83: time = 2730666 flags = 0 - data = length 1024, hash 64B5D6CA + data = length 512, hash 12E1C097 sample 84: time = 2752000 flags = 0 - data = length 1024, hash 6084A5E2 + data = length 512, hash 4C28783B sample 85: time = 2773333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABC sample 86: time = 2794666 flags = 0 - data = length 1024, hash 64B5D66B + data = length 512, hash 12E1C088 sample 87: time = 2816000 flags = 0 - data = length 1024, hash 6084A629 + data = length 512, hash 4C28786A sample 88: time = 2837333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABA sample 89: time = 2858666 flags = 0 - data = length 1024, hash 64B5D6B4 + data = length 512, hash 12E1C05D sample 90: time = 2880000 flags = 0 - data = length 1024, hash 6084A627 + data = length 512, hash 4C287851 sample 91: time = 2901333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 92: time = 2922666 flags = 0 - data = length 1024, hash 64B5D6B5 + data = length 512, hash 12E1C09A sample 93: time = 2944000 flags = 0 - data = length 1024, hash 6084A61D + data = length 512, hash 4C28782A sample 94: time = 2965333 flags = 0 - data = length 1024, hash 5A1932E8 + data = length 604, hash 5CC9EA3F sample 95: time = 2986666 flags = 536870912 - data = length 973, hash 9C376715 + data = length 512, hash C97A4FD2 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump index c8a319bc81..3f4deb8ba1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump @@ -1,215 +1,216 @@ seekMap: isSeekable = true duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=25275]] - getPosition(3000000) = [[timeUs=3000000, position=236167]] + getPosition(0) = [[timeUs=0, position=1299]] + getPosition(1) = [[timeUs=1, position=1299]] + getPosition(1500000) = [[timeUs=1500000, position=13294]] + getPosition(3000000) = [[timeUs=3000000, position=118734]] numberOfTracks = 1 track 0: - total output bytes = 47513 + total output bytes = 23874 sample count = 48 format 0: id = 1 sampleMimeType = audio/mhm1 - codecs = mhm1.10 - maxInputSize = 4126 + codecs = mhm1.0B + maxInputSize = 2078 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189744000] + metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] initializationData: - data = length 64, hash 7A6EA64F + data = length 67, hash 3CF14937 + data = length 1, hash 2F sample 0: time = 2000000 flags = 1 - data = length 764, hash B77EB08E + data = length 747, hash 825A1CE1 sample 1: time = 2005333 flags = 0 - data = length 413, hash A778FC60 + data = length 238, hash DA502A4F sample 2: time = 2026666 flags = 0 - data = length 973, hash 21498BD8 + data = length 324, hash A76C55FD sample 3: time = 2048000 flags = 1 - data = length 973, hash 66EB9A28 + data = length 814, hash BB697ADA sample 4: time = 2069333 flags = 0 - data = length 973, hash EA24022E + data = length 299, hash 90B92023 sample 5: time = 2090666 flags = 0 - data = length 973, hash B888BDB6 + data = length 319, hash 5F47ED6D sample 6: time = 2112000 flags = 0 - data = length 973, hash 52B402A + data = length 295, hash E35C19E sample 7: time = 2133333 flags = 0 - data = length 973, hash EA24022E + data = length 475, hash 5C915E92 sample 8: time = 2154666 flags = 0 - data = length 973, hash B888BE0C + data = length 487, hash CB0F60F6 sample 9: time = 2176000 flags = 0 - data = length 973, hash 52B4028 + data = length 487, hash 4FFB63CA sample 10: time = 2197333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57C sample 11: time = 2218666 flags = 0 - data = length 973, hash B888BDDA + data = length 487, hash CB0F611B sample 12: time = 2240000 flags = 0 - data = length 973, hash 52B4016 + data = length 487, hash 4FFB6392 sample 13: time = 2261333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57D sample 14: time = 2282666 flags = 0 - data = length 973, hash B888BDBD + data = length 487, hash CB0F60C9 sample 15: time = 2304000 flags = 0 - data = length 973, hash 52B406C + data = length 487, hash 4FFB63CB sample 16: time = 2325333 flags = 0 - data = length 1021, hash 2C16D82E + data = length 503, hash 56E1AE8B sample 17: time = 2346666 flags = 0 - data = length 1024, hash 64B5D698 + data = length 512, hash 12E1C0A8 sample 18: time = 2368000 flags = 0 - data = length 1024, hash 6084A5F9 + data = length 512, hash 4C28784B sample 19: time = 2389333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422AB9 sample 20: time = 2410666 flags = 0 - data = length 1024, hash 64B5D68B + data = length 512, hash 12E1C076 sample 21: time = 2432000 flags = 0 - data = length 1024, hash 6084A645 + data = length 512, hash 4C287892 sample 22: time = 2453333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 23: time = 2474666 flags = 0 - data = length 1024, hash 64B5D6CD + data = length 512, hash 12E1C0B9 sample 24: time = 2496000 flags = 0 - data = length 1024, hash 6084A632 + data = length 512, hash 4C28789F sample 25: time = 2517333 flags = 0 - data = length 1024, hash 9990F104 + data = length 512, hash ED501283 sample 26: time = 2538666 flags = 0 - data = length 1024, hash 828D7A4 + data = length 512, hash 9D4174B7 sample 27: time = 2560000 flags = 1 - data = length 1024, hash 1F972702 + data = length 817, hash 7CFB77D9 sample 28: time = 2581333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 299, hash 90B9202B sample 29: time = 2602666 flags = 0 - data = length 1024, hash 64B5D6DB + data = length 420, hash 7C4664C0 sample 30: time = 2624000 flags = 0 - data = length 1024, hash 6084A61E + data = length 512, hash 4C287858 sample 31: time = 2645333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 32: time = 2666666 flags = 0 - data = length 1024, hash 64B5D6A9 + data = length 512, hash 12E1C05A sample 33: time = 2688000 flags = 0 - data = length 1024, hash 6084A625 + data = length 512, hash 4C287822 sample 34: time = 2709333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 35: time = 2730666 flags = 0 - data = length 1024, hash 64B5D6CA + data = length 512, hash 12E1C097 sample 36: time = 2752000 flags = 0 - data = length 1024, hash 6084A5E2 + data = length 512, hash 4C28783B sample 37: time = 2773333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABC sample 38: time = 2794666 flags = 0 - data = length 1024, hash 64B5D66B + data = length 512, hash 12E1C088 sample 39: time = 2816000 flags = 0 - data = length 1024, hash 6084A629 + data = length 512, hash 4C28786A sample 40: time = 2837333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABA sample 41: time = 2858666 flags = 0 - data = length 1024, hash 64B5D6B4 + data = length 512, hash 12E1C05D sample 42: time = 2880000 flags = 0 - data = length 1024, hash 6084A627 + data = length 512, hash 4C287851 sample 43: time = 2901333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 44: time = 2922666 flags = 0 - data = length 1024, hash 64B5D6B5 + data = length 512, hash 12E1C09A sample 45: time = 2944000 flags = 0 - data = length 1024, hash 6084A61D + data = length 512, hash 4C28782A sample 46: time = 2965333 flags = 0 - data = length 1024, hash 5A1932E8 + data = length 604, hash 5CC9EA3F sample 47: time = 2986666 flags = 536870912 - data = length 973, hash 9C376715 + data = length 512, hash C97A4FD2 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump index 4e0220eff9..8a5db2942e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump @@ -1,107 +1,108 @@ seekMap: isSeekable = true duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=25275]] - getPosition(3000000) = [[timeUs=3000000, position=236167]] + getPosition(0) = [[timeUs=0, position=1299]] + getPosition(1) = [[timeUs=1, position=1299]] + getPosition(1500000) = [[timeUs=1500000, position=13294]] + getPosition(3000000) = [[timeUs=3000000, position=118734]] numberOfTracks = 1 track 0: - total output bytes = 21453 + total output bytes = 10844 sample count = 21 format 0: id = 1 sampleMimeType = audio/mhm1 - codecs = mhm1.10 - maxInputSize = 4126 + codecs = mhm1.0B + maxInputSize = 2078 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189744000] + metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] initializationData: - data = length 64, hash 7A6EA64F + data = length 67, hash 3CF14937 + data = length 1, hash 2F sample 0: time = 2560000 flags = 1 - data = length 1024, hash 1F972702 + data = length 817, hash 7CFB77D9 sample 1: time = 2581333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 299, hash 90B9202B sample 2: time = 2602666 flags = 0 - data = length 1024, hash 64B5D6DB + data = length 420, hash 7C4664C0 sample 3: time = 2624000 flags = 0 - data = length 1024, hash 6084A61E + data = length 512, hash 4C287858 sample 4: time = 2645333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 5: time = 2666666 flags = 0 - data = length 1024, hash 64B5D6A9 + data = length 512, hash 12E1C05A sample 6: time = 2688000 flags = 0 - data = length 1024, hash 6084A625 + data = length 512, hash 4C287822 sample 7: time = 2709333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 8: time = 2730666 flags = 0 - data = length 1024, hash 64B5D6CA + data = length 512, hash 12E1C097 sample 9: time = 2752000 flags = 0 - data = length 1024, hash 6084A5E2 + data = length 512, hash 4C28783B sample 10: time = 2773333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABC sample 11: time = 2794666 flags = 0 - data = length 1024, hash 64B5D66B + data = length 512, hash 12E1C088 sample 12: time = 2816000 flags = 0 - data = length 1024, hash 6084A629 + data = length 512, hash 4C28786A sample 13: time = 2837333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABA sample 14: time = 2858666 flags = 0 - data = length 1024, hash 64B5D6B4 + data = length 512, hash 12E1C05D sample 15: time = 2880000 flags = 0 - data = length 1024, hash 6084A627 + data = length 512, hash 4C287851 sample 16: time = 2901333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 17: time = 2922666 flags = 0 - data = length 1024, hash 64B5D6B5 + data = length 512, hash 12E1C09A sample 18: time = 2944000 flags = 0 - data = length 1024, hash 6084A61D + data = length 512, hash 4C28782A sample 19: time = 2965333 flags = 0 - data = length 1024, hash 5A1932E8 + data = length 604, hash 5CC9EA3F sample 20: time = 2986666 flags = 536870912 - data = length 973, hash 9C376715 + data = length 512, hash C97A4FD2 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump index 8b54f84aa6..0fc4009c9c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump @@ -1,595 +1,596 @@ seekMap: isSeekable = true duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=25275]] - getPosition(3000000) = [[timeUs=3000000, position=236167]] + getPosition(0) = [[timeUs=0, position=1299]] + getPosition(1) = [[timeUs=1, position=1299]] + getPosition(1500000) = [[timeUs=1500000, position=13294]] + getPosition(3000000) = [[timeUs=3000000, position=118734]] numberOfTracks = 1 track 0: - total output bytes = 256334 + total output bytes = 128279 sample count = 143 format 0: id = 1 sampleMimeType = audio/mhm1 - codecs = mhm1.10 - maxInputSize = 4126 + codecs = mhm1.0B + maxInputSize = 2078 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Creation time: 1697189744000] + metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] initializationData: - data = length 64, hash 7A6EA64F + data = length 67, hash 3CF14937 + data = length 1, hash 2F sample 0: time = 0 flags = 1 - data = length 620, hash 6EDA7757 + data = length 488, hash 1ED69C37 sample 1: time = 21333 flags = 0 - data = length 204, hash 96F91771 + data = length 164, hash 136B1B66 sample 2: time = 42666 flags = 0 - data = length 202, hash DB12DFC8 + data = length 158, hash A9289DCD sample 3: time = 64000 flags = 0 - data = length 339, hash 72DE92AC + data = length 164, hash 7E2368C3 sample 4: time = 85333 flags = 0 - data = length 342, hash FD3E7470 + data = length 158, hash 10AC2CD4 sample 5: time = 106666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash 22E84AF0 sample 6: time = 128000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 7: time = 149333 flags = 0 - data = length 342, hash FD3E7475 + data = length 158, hash 10AC2CD4 sample 8: time = 170666 flags = 0 - data = length 341, hash D0034AB1 + data = length 158, hash BA6B7094 sample 9: time = 192000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 10: time = 213333 flags = 0 - data = length 342, hash FD3E747B + data = length 158, hash 10AC2CD4 sample 11: time = 234666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash A9289DCC sample 12: time = 256000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 13: time = 277333 flags = 0 - data = length 342, hash FD3E7474 + data = length 158, hash 10AC2CD4 sample 14: time = 298666 flags = 0 - data = length 341, hash D0034AB1 + data = length 158, hash A9289DCD sample 15: time = 320000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 16: time = 341333 flags = 0 - data = length 342, hash FD3E7462 + data = length 158, hash 10AC2CD4 sample 17: time = 362666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash 37B039B1 sample 18: time = 384000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 19: time = 405333 flags = 0 - data = length 342, hash FD3E746B + data = length 158, hash 10AC2CD4 sample 20: time = 426666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash 37B039AC sample 21: time = 448000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 22: time = 469333 flags = 0 - data = length 342, hash 63A0363E + data = length 159, hash 95787660 sample 23: time = 490666 flags = 0 - data = length 341, hash 51F65393 + data = length 161, hash 16788957 sample 24: time = 512000 flags = 1 - data = length 577, hash 32D21653 + data = length 494, hash 760CFF0D sample 25: time = 533333 flags = 0 - data = length 197, hash CB0DB412 + data = length 158, hash 10AC2CD4 sample 26: time = 554666 flags = 0 - data = length 250, hash 9BDE48D4 + data = length 158, hash BA6B70A1 sample 27: time = 576000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 28: time = 597333 flags = 0 - data = length 342, hash FD3E7476 + data = length 158, hash 10AC2CD4 sample 29: time = 618666 flags = 0 - data = length 341, hash D0034AAE + data = length 158, hash BA6B709B sample 30: time = 640000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 31: time = 661333 flags = 0 - data = length 342, hash FD3E7464 + data = length 158, hash 10AC2CD4 sample 32: time = 682666 flags = 0 - data = length 341, hash D0034AB0 + data = length 158, hash BA6B70A5 sample 33: time = 704000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 34: time = 725333 flags = 0 - data = length 342, hash FD3E7468 + data = length 158, hash 10AC2CD4 sample 35: time = 746666 flags = 0 - data = length 341, hash D0034AAE + data = length 158, hash BA6B708A sample 36: time = 768000 flags = 0 - data = length 341, hash A3075A48 + data = length 164, hash 7E2368C3 sample 37: time = 789333 flags = 0 - data = length 342, hash FD3E746B + data = length 158, hash 10AC2CD4 sample 38: time = 810666 flags = 0 - data = length 341, hash D0034AB1 + data = length 133, hash 1CC194C2 sample 39: time = 832000 flags = 0 - data = length 341, hash A3075A48 + data = length 137, hash AED0A139 sample 40: time = 853333 flags = 0 - data = length 342, hash FD3E747C + data = length 138, hash DC4D2879 sample 41: time = 874666 flags = 0 - data = length 341, hash D0034AB1 + data = length 118, hash B83EEC69 sample 42: time = 896000 flags = 0 - data = length 341, hash A3075A48 + data = length 163, hash 9C0874EC sample 43: time = 917333 flags = 0 - data = length 342, hash FD3E747F + data = length 157, hash CB2B0DA9 sample 44: time = 938666 flags = 0 - data = length 341, hash D0034AAE + data = length 157, hash 5DEF94E6 sample 45: time = 960000 flags = 0 - data = length 357, hash 790D09FE + data = length 199, hash 95B42394 sample 46: time = 981333 flags = 0 - data = length 472, hash 6A997000 + data = length 212, hash 16161E7E sample 47: time = 1000000 flags = 1 - data = length 3908, hash CDC05E32 + data = length 1889, hash 4CBC0E10 sample 48: time = 1002666 flags = 0 - data = length 3892, hash FB47D264 + data = length 1946, hash 7CBAD516 sample 49: time = 1024000 flags = 1 - data = length 3892, hash 76D5402B + data = length 1943, hash 107D8B89 sample 50: time = 1045333 flags = 0 - data = length 3892, hash 99AE1080 + data = length 1946, hash 7ACED7E4 sample 51: time = 1066666 flags = 0 - data = length 3892, hash 7DA3A5B7 + data = length 1946, hash E699F72C sample 52: time = 1088000 flags = 0 - data = length 3892, hash 886247CE + data = length 1946, hash EDE7C070 sample 53: time = 1109333 flags = 0 - data = length 3892, hash 99AE1077 + data = length 1946, hash 7ACED7E4 sample 54: time = 1130666 flags = 0 - data = length 3892, hash 7DA3A5E0 + data = length 1946, hash E699F72E sample 55: time = 1152000 flags = 0 - data = length 3892, hash 886247BA + data = length 1946, hash EDE7C06D sample 56: time = 1173333 flags = 0 - data = length 3892, hash 99AE106D + data = length 1946, hash 7ACED7E4 sample 57: time = 1194666 flags = 0 - data = length 3892, hash 7DA3A5CD + data = length 1946, hash E699F737 sample 58: time = 1216000 flags = 0 - data = length 3892, hash 886247CA + data = length 1946, hash EDE7C06F sample 59: time = 1237333 flags = 0 - data = length 3892, hash 99AE1079 + data = length 1946, hash 7ACED7E4 sample 60: time = 1258666 flags = 0 - data = length 3892, hash 7DA3A5D1 + data = length 1946, hash E699F72D sample 61: time = 1280000 flags = 0 - data = length 3892, hash 886247BD + data = length 1946, hash EDE7C070 sample 62: time = 1301333 flags = 0 - data = length 3892, hash 99AE106D + data = length 1946, hash 7ACED7E4 sample 63: time = 1322666 flags = 0 - data = length 3892, hash 7DA3A5A7 + data = length 1946, hash E699F731 sample 64: time = 1344000 flags = 0 - data = length 3892, hash 886247C5 + data = length 1946, hash EDE7C06E sample 65: time = 1365333 flags = 0 - data = length 3980, hash 8DF782E + data = length 1990, hash 8176E8F8 sample 66: time = 1386666 flags = 0 - data = length 4096, hash 6C926695 + data = length 2048, hash 409F44AB sample 67: time = 1408000 flags = 0 - data = length 4096, hash BFCBCEDC + data = length 2048, hash 5431547E sample 68: time = 1429333 flags = 0 - data = length 4096, hash 886C00CF + data = length 2048, hash 1193639E sample 69: time = 1450666 flags = 0 - data = length 4096, hash 6C92668B + data = length 2048, hash 409F44AD sample 70: time = 1472000 flags = 0 - data = length 4096, hash BFCBCEC6 + data = length 2048, hash 5431547F sample 71: time = 1493333 flags = 0 - data = length 4096, hash E431EAA2 + data = length 2048, hash 184105C3 sample 72: time = 1514666 flags = 0 - data = length 4096, hash 21C24AE1 + data = length 2048, hash 8308185C sample 73: time = 1536000 flags = 1 - data = length 4096, hash 884E3535 + data = length 2045, hash CDE033BF sample 74: time = 1557333 flags = 0 - data = length 4096, hash 886C00CE + data = length 2048, hash 1193639E sample 75: time = 1578666 flags = 0 - data = length 4096, hash 6C926678 + data = length 2048, hash 409F44B3 sample 76: time = 1600000 flags = 0 - data = length 4096, hash BFCBCEC1 + data = length 2048, hash 5431547E sample 77: time = 1621333 flags = 0 - data = length 4096, hash 886C00B5 + data = length 2048, hash 1193639D sample 78: time = 1642666 flags = 0 - data = length 4096, hash 6C926680 + data = length 2048, hash 409F44B3 sample 79: time = 1664000 flags = 0 - data = length 4096, hash BFCBCECA + data = length 2048, hash 5431547E sample 80: time = 1685333 flags = 0 - data = length 4096, hash 886C00C4 + data = length 2048, hash 1193639D sample 81: time = 1706666 flags = 0 - data = length 4096, hash 6C9266A3 + data = length 2048, hash 409F44AA sample 82: time = 1728000 flags = 0 - data = length 4096, hash BFCBCECB + data = length 2048, hash 5431547F sample 83: time = 1749333 flags = 0 - data = length 4096, hash 886C00B9 + data = length 2048, hash 1193639D sample 84: time = 1770666 flags = 0 - data = length 4096, hash 6C926673 + data = length 2048, hash 409F44AC sample 85: time = 1792000 flags = 0 - data = length 4096, hash BFCBCEDF + data = length 2048, hash 5431547E sample 86: time = 1813333 flags = 0 - data = length 4096, hash 886C00C8 + data = length 2048, hash 1193639D sample 87: time = 1834666 flags = 0 - data = length 4096, hash 6C926684 + data = length 2048, hash 409F44AE sample 88: time = 1856000 flags = 0 - data = length 4096, hash BFCBCEDD + data = length 2048, hash 5431547D sample 89: time = 1877333 flags = 0 - data = length 4096, hash 886C00B2 + data = length 2048, hash 1193639E sample 90: time = 1898666 flags = 0 - data = length 4096, hash 6C926684 + data = length 2048, hash 409F44B6 sample 91: time = 1920000 flags = 0 - data = length 4096, hash BFCBCEDA + data = length 2048, hash 5431547F sample 92: time = 1941333 flags = 0 - data = length 4096, hash 886C00C7 + data = length 2048, hash 1193639E sample 93: time = 1962666 flags = 0 - data = length 4096, hash AFF7C654 + data = length 2048, hash 9C157230 sample 94: time = 1984000 flags = 0 - data = length 3892, hash 7B3EC7FD + data = length 1946, hash 4A0BC4F0 sample 95: time = 2000000 flags = 1 - data = length 764, hash B77EB08E + data = length 747, hash 825A1CE1 sample 96: time = 2005333 flags = 0 - data = length 413, hash A778FC60 + data = length 238, hash DA502A4F sample 97: time = 2026666 flags = 0 - data = length 973, hash 21498BD8 + data = length 324, hash A76C55FD sample 98: time = 2048000 flags = 1 - data = length 973, hash 66EB9A28 + data = length 814, hash BB697ADA sample 99: time = 2069333 flags = 0 - data = length 973, hash EA24022E + data = length 299, hash 90B92023 sample 100: time = 2090666 flags = 0 - data = length 973, hash B888BDB6 + data = length 319, hash 5F47ED6D sample 101: time = 2112000 flags = 0 - data = length 973, hash 52B402A + data = length 295, hash E35C19E sample 102: time = 2133333 flags = 0 - data = length 973, hash EA24022E + data = length 475, hash 5C915E92 sample 103: time = 2154666 flags = 0 - data = length 973, hash B888BE0C + data = length 487, hash CB0F60F6 sample 104: time = 2176000 flags = 0 - data = length 973, hash 52B4028 + data = length 487, hash 4FFB63CA sample 105: time = 2197333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57C sample 106: time = 2218666 flags = 0 - data = length 973, hash B888BDDA + data = length 487, hash CB0F611B sample 107: time = 2240000 flags = 0 - data = length 973, hash 52B4016 + data = length 487, hash 4FFB6392 sample 108: time = 2261333 flags = 0 - data = length 973, hash EA24022E + data = length 487, hash 97A7C57D sample 109: time = 2282666 flags = 0 - data = length 973, hash B888BDBD + data = length 487, hash CB0F60C9 sample 110: time = 2304000 flags = 0 - data = length 973, hash 52B406C + data = length 487, hash 4FFB63CB sample 111: time = 2325333 flags = 0 - data = length 1021, hash 2C16D82E + data = length 503, hash 56E1AE8B sample 112: time = 2346666 flags = 0 - data = length 1024, hash 64B5D698 + data = length 512, hash 12E1C0A8 sample 113: time = 2368000 flags = 0 - data = length 1024, hash 6084A5F9 + data = length 512, hash 4C28784B sample 114: time = 2389333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422AB9 sample 115: time = 2410666 flags = 0 - data = length 1024, hash 64B5D68B + data = length 512, hash 12E1C076 sample 116: time = 2432000 flags = 0 - data = length 1024, hash 6084A645 + data = length 512, hash 4C287892 sample 117: time = 2453333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 118: time = 2474666 flags = 0 - data = length 1024, hash 64B5D6CD + data = length 512, hash 12E1C0B9 sample 119: time = 2496000 flags = 0 - data = length 1024, hash 6084A632 + data = length 512, hash 4C28789F sample 120: time = 2517333 flags = 0 - data = length 1024, hash 9990F104 + data = length 512, hash ED501283 sample 121: time = 2538666 flags = 0 - data = length 1024, hash 828D7A4 + data = length 512, hash 9D4174B7 sample 122: time = 2560000 flags = 1 - data = length 1024, hash 1F972702 + data = length 817, hash 7CFB77D9 sample 123: time = 2581333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 299, hash 90B9202B sample 124: time = 2602666 flags = 0 - data = length 1024, hash 64B5D6DB + data = length 420, hash 7C4664C0 sample 125: time = 2624000 flags = 0 - data = length 1024, hash 6084A61E + data = length 512, hash 4C287858 sample 126: time = 2645333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 127: time = 2666666 flags = 0 - data = length 1024, hash 64B5D6A9 + data = length 512, hash 12E1C05A sample 128: time = 2688000 flags = 0 - data = length 1024, hash 6084A625 + data = length 512, hash 4C287822 sample 129: time = 2709333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABB sample 130: time = 2730666 flags = 0 - data = length 1024, hash 64B5D6CA + data = length 512, hash 12E1C097 sample 131: time = 2752000 flags = 0 - data = length 1024, hash 6084A5E2 + data = length 512, hash 4C28783B sample 132: time = 2773333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABC sample 133: time = 2794666 flags = 0 - data = length 1024, hash 64B5D66B + data = length 512, hash 12E1C088 sample 134: time = 2816000 flags = 0 - data = length 1024, hash 6084A629 + data = length 512, hash 4C28786A sample 135: time = 2837333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABA sample 136: time = 2858666 flags = 0 - data = length 1024, hash 64B5D6B4 + data = length 512, hash 12E1C05D sample 137: time = 2880000 flags = 0 - data = length 1024, hash 6084A627 + data = length 512, hash 4C287851 sample 138: time = 2901333 flags = 0 - data = length 1024, hash 3D9FA477 + data = length 512, hash 71422ABF sample 139: time = 2922666 flags = 0 - data = length 1024, hash 64B5D6B5 + data = length 512, hash 12E1C09A sample 140: time = 2944000 flags = 0 - data = length 1024, hash 6084A61D + data = length 512, hash 4C28782A sample 141: time = 2965333 flags = 0 - data = length 1024, hash 5A1932E8 + data = length 604, hash 5CC9EA3F sample 142: time = 2986666 flags = 536870912 - data = length 973, hash 9C376715 + data = length 512, hash C97A4FD2 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1.mp4 index c9cec56405dff5426ed532843da77156a90b881b..b15603ea86bf97fdb014b6c8fe30a26fbb9754a6 100644 GIT binary patch delta 41 hcmZosZ&9D1$sTLU@eqh78sx&6OJZTn%^Zw1LI4a73~m4b delta 41 hcmZosZ&9D1$?kVR`XLZcG{}WBm&C%Dn>iS3gaA%T56A!j diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4 index 94a81a5f19c34b3e53480b9a78501592a173c240..15fff41a51ede3013bd4c1aacef7ebb40b6ee06f 100644 GIT binary patch delta 48 rcmZ3Xxk7V-E_bOmZ_1;~ZfCw-ga( diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange.mp4 index 981fb72a80ca123116492387aa00cbd8c5ba05ef..275513e09c3eaa4834c1af18d2e79b385ae5062d 100644 GIT binary patch delta 47 ocmbRHg?;W9_6eHou_hlM0`WwHTsU({ER5OA!ML4+kx}#~01y=v$p8QV delta 47 ocmbRHg?;W9_6eHoe*51)1mcMXxp3x^SQxXJgK;|tBctd~090oer2qf` diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange_fragmented.mp4 index 97f5e586d59d21d5b429696361a97d0c22830fdb..1c3f411348119f4fe09c159e5359783e7d6adfc6 100644 GIT binary patch delta 54 xcmbRFhkfQB_6fS|u_m7$0`WwXTy7|nfq{W>Vxh>y1FkU1W*)}vJdBLIe*uTU76JeO delta 54 ycmbRFhkfQB_6fS|e)~T>1mcM%x!h1D0|NuppY2V7y2%{+|Tc^Daa{{jHnY8c)C diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1.mp4 index fd0066ed200f9ad7598e90206a68200d19b75af4..e7b540ce2d1f6c2ffb59d89c33ef12f1726d85a9 100644 GIT binary patch delta 41 icmZ3kzFd8RCVQ+Y$3q~VXpjqME{TOPH*+w~7XknmL=4ve delta 41 icmZ3kzFd8RCcEDOnTJ3;(I6MjToMaoZsuT|F9ZNt@(?!w diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 index 270d8c38f8deb5ae2b999282d4574368f6d74d5c..df07587f004947b4b701f2b849723c8b68e2f75b 100644 GIT binary patch delta 48 rcmX@Dd0KOVE_bOmZ_1<9=ZP#KIBP diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange.mp4 index 233930aefda1ead487e5d79f3a94302ea961d26d..b703f4bad1f0a056e1a6685d0b0d57ac0daf14f0 100644 GIT binary patch literal 129578 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
  • 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 aFY?w@-w!(&-on7ZeAHO9&Lq^EXaE3PZ_j4{ diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4 index e551f787c1f35f6d5dec4b5ff9fc70f6968e5c31..0e897e03a9682044b717915dc1458706ecaf90e7 100644 GIT binary patch delta 54 xcmZ4Xhke-}_6fS|u_m7%0`WwXTy7|nfq{W>Vxh>y1FkU1W*)}vJdBJ|e*ulv7B2t* delta 54 ycmZ4Xhke-}_6fS|e)~T?1mcM%x!h1D0|NuppY2V7y2%{+|Tc^Da`{sI8tB^eO_ From 6297e7aeae2b92dc9714d2007b7be6219623d50b Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Tue, 7 Nov 2023 14:23:07 +0000 Subject: [PATCH 4/5] Changes based on internal review --- .../androidx/media3/extractor/mp4/AtomParsers.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java index 6a573dd967..a276c05725 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java @@ -1727,11 +1727,10 @@ import java.util.List; parent.skipBytes(1); // configurationVersion int mpeghProfileLevelIndication = parent.readUnsignedByte(); parent.skipBytes(1); // mpeghReferenceChannelLayout - if (MimeTypes.AUDIO_MPEGH_MHM1.equals(mimeType)) { - codecs = String.format("mhm1.%02X", mpeghProfileLevelIndication); - } else { - codecs = String.format("mha1.%02X", mpeghProfileLevelIndication); - } + codecs = + MimeTypes.AUDIO_MPEGH_MHM1.equals(mimeType) + ? String.format("mhm1.%02X", mpeghProfileLevelIndication) + : String.format("mha1.%02X", mpeghProfileLevelIndication); int mpegh3daConfigLength = parent.readUnsignedShort(); byte[] initializationDataBytes = new byte[mpegh3daConfigLength]; parent.readBytes(initializationDataBytes, 0, mpegh3daConfigLength); @@ -1739,7 +1738,8 @@ import java.util.List; if (initializationData == null) { initializationData = ImmutableList.of(initializationDataBytes); } else { - // We assume that the mhaP box has been parsed before and add the compatible profile level + // We assume that the mhaP box has been parsed before and so add the compatible profile + // level // sets as the second entry. initializationData = ImmutableList.of(initializationDataBytes, initializationData.get(0)); } @@ -1754,7 +1754,7 @@ import java.util.List; if (initializationData == null) { initializationData = ImmutableList.of(mpeghCompatibleProfileLevelSet); } else { - // We assume that the mhaC box has been parsed before and add the compatible profile + // We assume that the mhaC box has been parsed before and so add the compatible profile // level sets as the second entry. initializationData = ImmutableList.of(initializationData.get(0), mpeghCompatibleProfileLevelSet); From 4c3ca9b6f4b17d3f661ea980f5824d56d253b867 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Thu, 16 Nov 2023 15:33:18 +0100 Subject: [PATCH 5/5] update mhm1 mp4 samples and corresponding extractor dumps --- .../media3/extractor/mp4/AtomParsers.java | 6 +- .../mp4/sample_mhm1_bl_cicp1.mp4.0.dump | 100 +--- .../mp4/sample_mhm1_bl_cicp1.mp4.1.dump | 100 +--- .../mp4/sample_mhm1_bl_cicp1.mp4.2.dump | 202 ++++---- .../mp4/sample_mhm1_bl_cicp1.mp4.3.dump | 98 +--- ...mple_mhm1_bl_cicp1.mp4.unknown_length.dump | 100 +--- ...sample_mhm1_bl_cicp1_fragmented.mp4.0.dump | 88 +--- ...l_cicp1_fragmented.mp4.unknown_length.dump | 88 +--- .../sample_mhm1_bl_configchange.mp4.0.dump | 476 +++++------------- .../sample_mhm1_bl_configchange.mp4.1.dump | 476 ++++++------------ .../sample_mhm1_bl_configchange.mp4.2.dump | 238 +++------ .../sample_mhm1_bl_configchange.mp4.3.dump | 112 ++--- ...m1_bl_configchange.mp4.unknown_length.dump | 476 +++++------------- ...mhm1_bl_configchange_fragmented.mp4.0.dump | 462 +++++------------ ...gchange_fragmented.mp4.unknown_length.dump | 462 +++++------------ .../mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump | 100 +--- .../mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump | 100 +--- .../mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump | 202 ++++---- .../mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump | 98 +--- ...le_mhm1_lcbl_cicp1.mp4.unknown_length.dump | 100 +--- ...mple_mhm1_lcbl_cicp1_fragmented.mp4.0.dump | 88 +--- ...l_cicp1_fragmented.mp4.unknown_length.dump | 88 +--- .../sample_mhm1_lcbl_configchange.mp4.0.dump | 476 +++++------------- .../sample_mhm1_lcbl_configchange.mp4.1.dump | 476 ++++++------------ .../sample_mhm1_lcbl_configchange.mp4.2.dump | 238 +++------ .../sample_mhm1_lcbl_configchange.mp4.3.dump | 112 ++--- ..._lcbl_configchange.mp4.unknown_length.dump | 476 +++++------------- ...m1_lcbl_configchange_fragmented.mp4.0.dump | 462 +++++------------ ...gchange_fragmented.mp4.unknown_length.dump | 462 +++++------------ .../assets/media/mp4/sample_mhm1_bl_cicp1.mp4 | Bin 4996 -> 3591 bytes .../mp4/sample_mhm1_bl_cicp1_fragmented.mp4 | Bin 5288 -> 3811 bytes .../media/mp4/sample_mhm1_bl_configchange.mp4 | Bin 129565 -> 39832 bytes ...sample_mhm1_bl_configchange_fragmented.mp4 | Bin 130585 -> 40620 bytes .../media/mp4/sample_mhm1_lcbl_cicp1.mp4 | Bin 5031 -> 3604 bytes .../mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 | Bin 5323 -> 3824 bytes .../mp4/sample_mhm1_lcbl_configchange.mp4 | Bin 129578 -> 39845 bytes ...mple_mhm1_lcbl_configchange_fragmented.mp4 | Bin 130598 -> 40633 bytes 37 files changed, 1917 insertions(+), 5045 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java index a276c05725..44b034a84c 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java @@ -56,6 +56,7 @@ import java.nio.ByteOrder; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; /** Utility methods for parsing MP4 format atom payloads according to ISO/IEC 14496-12. */ @SuppressWarnings("ConstantField") @@ -1728,7 +1729,7 @@ import java.util.List; int mpeghProfileLevelIndication = parent.readUnsignedByte(); parent.skipBytes(1); // mpeghReferenceChannelLayout codecs = - MimeTypes.AUDIO_MPEGH_MHM1.equals(mimeType) + Objects.equals(mimeType, MimeTypes.AUDIO_MPEGH_MHM1) ? String.format("mhm1.%02X", mpeghProfileLevelIndication) : String.format("mha1.%02X", mpeghProfileLevelIndication); int mpegh3daConfigLength = parent.readUnsignedShort(); @@ -1739,8 +1740,7 @@ import java.util.List; initializationData = ImmutableList.of(initializationDataBytes); } else { // We assume that the mhaP box has been parsed before and so add the compatible profile - // level - // sets as the second entry. + // level sets as the second entry. initializationData = ImmutableList.of(initializationDataBytes, initializationData.get(0)); } } else if (childAtomType == Atom.TYPE_mhaP) { diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump index 4d4738271b..f7bfb9c442 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.0.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=826]] - getPosition(1) = [[timeUs=1, position=826]] - getPosition(500000) = [[timeUs=500000, position=826]] - getPosition(1000000) = [[timeUs=1000000, position=3054]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=754]] + getPosition(1) = [[timeUs=1, position=754]] + getPosition(300000) = [[timeUs=300000, position=754]] + getPosition(600000) = [[timeUs=600000, position=2982]] numberOfTracks = 1 track 0: - total output bytes = 4170 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,13 +17,13 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600] initializationData: - data = length 60, hash C05CBBFC + data = length 60, hash C05CB07B sample 0: time = 0 flags = 1 - data = length 335, hash 8D9A8041 + data = length 335, hash E6334A80 sample 1: time = 21333 flags = 0 @@ -119,7 +119,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 320, hash 9FA4C955 + data = length 320, hash 58EEA8F6 sample 25: time = 533333 flags = 0 @@ -127,85 +127,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 76, hash 63335304 + data = length 77, hash 73C5B274 sample 27: time = 576000 flags = 0 - data = length 69, hash 5BA9463B + data = length 65, hash 622B1A8 sample 28: time = 597333 - flags = 0 - data = length 77, hash 14939B8E - sample 29: - time = 618666 - flags = 0 - data = length 73, hash 7CB696EC - sample 30: - time = 640000 - flags = 0 - data = length 62, hash 60D8A635 - sample 31: - time = 661333 - flags = 0 - data = length 81, hash 2930186C - sample 32: - time = 682666 - flags = 0 - data = length 73, hash 98B39B7B - sample 33: - time = 704000 - flags = 0 - data = length 69, hash F8554057 - sample 34: - time = 725333 - flags = 0 - data = length 79, hash D4207851 - sample 35: - time = 746666 - flags = 0 - data = length 74, hash 29F4B7BA - sample 36: - time = 768000 - flags = 0 - data = length 68, hash 54023ACC - sample 37: - time = 789333 - flags = 0 - data = length 79, hash 2212A7FE - sample 38: - time = 810666 - flags = 0 - data = length 74, hash 29F4B7B9 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 8156AB6 - sample 40: - time = 853333 - flags = 0 - data = length 79, hash 37CA8B53 - sample 41: - time = 874666 - flags = 0 - data = length 74, hash E4ACCCD7 - sample 42: - time = 896000 - flags = 0 - data = length 69, hash F8554081 - sample 43: - time = 917333 - flags = 0 - data = length 79, hash FEEC61CE - sample 44: - time = 938666 - flags = 0 - data = length 74, hash 71B4C816 - sample 45: - time = 960000 - flags = 0 - data = length 81, hash 74B27A40 - sample 46: - time = 981333 flags = 536870912 - data = length 66, hash 2E45BE0D + data = length 70, hash E441B6B8 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump index 4d4738271b..f7bfb9c442 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.1.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=826]] - getPosition(1) = [[timeUs=1, position=826]] - getPosition(500000) = [[timeUs=500000, position=826]] - getPosition(1000000) = [[timeUs=1000000, position=3054]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=754]] + getPosition(1) = [[timeUs=1, position=754]] + getPosition(300000) = [[timeUs=300000, position=754]] + getPosition(600000) = [[timeUs=600000, position=2982]] numberOfTracks = 1 track 0: - total output bytes = 4170 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,13 +17,13 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600] initializationData: - data = length 60, hash C05CBBFC + data = length 60, hash C05CB07B sample 0: time = 0 flags = 1 - data = length 335, hash 8D9A8041 + data = length 335, hash E6334A80 sample 1: time = 21333 flags = 0 @@ -119,7 +119,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 320, hash 9FA4C955 + data = length 320, hash 58EEA8F6 sample 25: time = 533333 flags = 0 @@ -127,85 +127,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 76, hash 63335304 + data = length 77, hash 73C5B274 sample 27: time = 576000 flags = 0 - data = length 69, hash 5BA9463B + data = length 65, hash 622B1A8 sample 28: time = 597333 - flags = 0 - data = length 77, hash 14939B8E - sample 29: - time = 618666 - flags = 0 - data = length 73, hash 7CB696EC - sample 30: - time = 640000 - flags = 0 - data = length 62, hash 60D8A635 - sample 31: - time = 661333 - flags = 0 - data = length 81, hash 2930186C - sample 32: - time = 682666 - flags = 0 - data = length 73, hash 98B39B7B - sample 33: - time = 704000 - flags = 0 - data = length 69, hash F8554057 - sample 34: - time = 725333 - flags = 0 - data = length 79, hash D4207851 - sample 35: - time = 746666 - flags = 0 - data = length 74, hash 29F4B7BA - sample 36: - time = 768000 - flags = 0 - data = length 68, hash 54023ACC - sample 37: - time = 789333 - flags = 0 - data = length 79, hash 2212A7FE - sample 38: - time = 810666 - flags = 0 - data = length 74, hash 29F4B7B9 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 8156AB6 - sample 40: - time = 853333 - flags = 0 - data = length 79, hash 37CA8B53 - sample 41: - time = 874666 - flags = 0 - data = length 74, hash E4ACCCD7 - sample 42: - time = 896000 - flags = 0 - data = length 69, hash F8554081 - sample 43: - time = 917333 - flags = 0 - data = length 79, hash FEEC61CE - sample 44: - time = 938666 - flags = 0 - data = length 74, hash 71B4C816 - sample 45: - time = 960000 - flags = 0 - data = length 81, hash 74B27A40 - sample 46: - time = 981333 flags = 536870912 - data = length 66, hash 2E45BE0D + data = length 70, hash E441B6B8 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump index b9f19aea49..f7bfb9c442 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.2.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=826]] - getPosition(1) = [[timeUs=1, position=826]] - getPosition(500000) = [[timeUs=500000, position=826]] - getPosition(1000000) = [[timeUs=1000000, position=3054]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=754]] + getPosition(1) = [[timeUs=1, position=754]] + getPosition(300000) = [[timeUs=300000, position=754]] + getPosition(600000) = [[timeUs=600000, position=2982]] numberOfTracks = 1 track 0: - total output bytes = 1942 - sample count = 23 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,99 +17,123 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600] initializationData: - data = length 60, hash C05CBBFC + 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 9FA4C955 - sample 1: + data = length 320, hash 58EEA8F6 + sample 25: time = 533333 flags = 0 data = length 77, hash 7349D247 - sample 2: + sample 26: time = 554666 flags = 0 - data = length 76, hash 63335304 - sample 3: + data = length 77, hash 73C5B274 + sample 27: time = 576000 flags = 0 - data = length 69, hash 5BA9463B - sample 4: + data = length 65, hash 622B1A8 + sample 28: time = 597333 - flags = 0 - data = length 77, hash 14939B8E - sample 5: - time = 618666 - flags = 0 - data = length 73, hash 7CB696EC - sample 6: - time = 640000 - flags = 0 - data = length 62, hash 60D8A635 - sample 7: - time = 661333 - flags = 0 - data = length 81, hash 2930186C - sample 8: - time = 682666 - flags = 0 - data = length 73, hash 98B39B7B - sample 9: - time = 704000 - flags = 0 - data = length 69, hash F8554057 - sample 10: - time = 725333 - flags = 0 - data = length 79, hash D4207851 - sample 11: - time = 746666 - flags = 0 - data = length 74, hash 29F4B7BA - sample 12: - time = 768000 - flags = 0 - data = length 68, hash 54023ACC - sample 13: - time = 789333 - flags = 0 - data = length 79, hash 2212A7FE - sample 14: - time = 810666 - flags = 0 - data = length 74, hash 29F4B7B9 - sample 15: - time = 832000 - flags = 0 - data = length 69, hash 8156AB6 - sample 16: - time = 853333 - flags = 0 - data = length 79, hash 37CA8B53 - sample 17: - time = 874666 - flags = 0 - data = length 74, hash E4ACCCD7 - sample 18: - time = 896000 - flags = 0 - data = length 69, hash F8554081 - sample 19: - time = 917333 - flags = 0 - data = length 79, hash FEEC61CE - sample 20: - time = 938666 - flags = 0 - data = length 74, hash 71B4C816 - sample 21: - time = 960000 - flags = 0 - data = length 81, hash 74B27A40 - sample 22: - time = 981333 flags = 536870912 - data = length 66, hash 2E45BE0D + data = length 70, hash E441B6B8 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump index b9f19aea49..662779c99e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.3.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=826]] - getPosition(1) = [[timeUs=1, position=826]] - getPosition(500000) = [[timeUs=500000, position=826]] - getPosition(1000000) = [[timeUs=1000000, position=3054]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=754]] + getPosition(1) = [[timeUs=1, position=754]] + getPosition(300000) = [[timeUs=300000, position=754]] + getPosition(600000) = [[timeUs=600000, position=2982]] numberOfTracks = 1 track 0: - total output bytes = 1942 - sample count = 23 + total output bytes = 609 + sample count = 5 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,13 +17,13 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600] initializationData: - data = length 60, hash C05CBBFC + data = length 60, hash C05CB07B sample 0: time = 512000 flags = 1 - data = length 320, hash 9FA4C955 + data = length 320, hash 58EEA8F6 sample 1: time = 533333 flags = 0 @@ -31,85 +31,13 @@ track 0: sample 2: time = 554666 flags = 0 - data = length 76, hash 63335304 + data = length 77, hash 73C5B274 sample 3: time = 576000 flags = 0 - data = length 69, hash 5BA9463B + data = length 65, hash 622B1A8 sample 4: time = 597333 - flags = 0 - data = length 77, hash 14939B8E - sample 5: - time = 618666 - flags = 0 - data = length 73, hash 7CB696EC - sample 6: - time = 640000 - flags = 0 - data = length 62, hash 60D8A635 - sample 7: - time = 661333 - flags = 0 - data = length 81, hash 2930186C - sample 8: - time = 682666 - flags = 0 - data = length 73, hash 98B39B7B - sample 9: - time = 704000 - flags = 0 - data = length 69, hash F8554057 - sample 10: - time = 725333 - flags = 0 - data = length 79, hash D4207851 - sample 11: - time = 746666 - flags = 0 - data = length 74, hash 29F4B7BA - sample 12: - time = 768000 - flags = 0 - data = length 68, hash 54023ACC - sample 13: - time = 789333 - flags = 0 - data = length 79, hash 2212A7FE - sample 14: - time = 810666 - flags = 0 - data = length 74, hash 29F4B7B9 - sample 15: - time = 832000 - flags = 0 - data = length 69, hash 8156AB6 - sample 16: - time = 853333 - flags = 0 - data = length 79, hash 37CA8B53 - sample 17: - time = 874666 - flags = 0 - data = length 74, hash E4ACCCD7 - sample 18: - time = 896000 - flags = 0 - data = length 69, hash F8554081 - sample 19: - time = 917333 - flags = 0 - data = length 79, hash FEEC61CE - sample 20: - time = 938666 - flags = 0 - data = length 74, hash 71B4C816 - sample 21: - time = 960000 - flags = 0 - data = length 81, hash 74B27A40 - sample 22: - time = 981333 flags = 536870912 - data = length 66, hash 2E45BE0D + data = length 70, hash E441B6B8 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump index 4d4738271b..f7bfb9c442 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1.mp4.unknown_length.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=826]] - getPosition(1) = [[timeUs=1, position=826]] - getPosition(500000) = [[timeUs=500000, position=826]] - getPosition(1000000) = [[timeUs=1000000, position=3054]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=754]] + getPosition(1) = [[timeUs=1, position=754]] + getPosition(300000) = [[timeUs=300000, position=754]] + getPosition(600000) = [[timeUs=600000, position=2982]] numberOfTracks = 1 track 0: - total output bytes = 4170 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,13 +17,13 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733149, modification time=3782733149, timescale=600] initializationData: - data = length 60, hash C05CBBFC + data = length 60, hash C05CB07B sample 0: time = 0 flags = 1 - data = length 335, hash 8D9A8041 + data = length 335, hash E6334A80 sample 1: time = 21333 flags = 0 @@ -119,7 +119,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 320, hash 9FA4C955 + data = length 320, hash 58EEA8F6 sample 25: time = 533333 flags = 0 @@ -127,85 +127,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 76, hash 63335304 + data = length 77, hash 73C5B274 sample 27: time = 576000 flags = 0 - data = length 69, hash 5BA9463B + data = length 65, hash 622B1A8 sample 28: time = 597333 - flags = 0 - data = length 77, hash 14939B8E - sample 29: - time = 618666 - flags = 0 - data = length 73, hash 7CB696EC - sample 30: - time = 640000 - flags = 0 - data = length 62, hash 60D8A635 - sample 31: - time = 661333 - flags = 0 - data = length 81, hash 2930186C - sample 32: - time = 682666 - flags = 0 - data = length 73, hash 98B39B7B - sample 33: - time = 704000 - flags = 0 - data = length 69, hash F8554057 - sample 34: - time = 725333 - flags = 0 - data = length 79, hash D4207851 - sample 35: - time = 746666 - flags = 0 - data = length 74, hash 29F4B7BA - sample 36: - time = 768000 - flags = 0 - data = length 68, hash 54023ACC - sample 37: - time = 789333 - flags = 0 - data = length 79, hash 2212A7FE - sample 38: - time = 810666 - flags = 0 - data = length 74, hash 29F4B7B9 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 8156AB6 - sample 40: - time = 853333 - flags = 0 - data = length 79, hash 37CA8B53 - sample 41: - time = 874666 - flags = 0 - data = length 74, hash E4ACCCD7 - sample 42: - time = 896000 - flags = 0 - data = length 69, hash F8554081 - sample 43: - time = 917333 - flags = 0 - data = length 79, hash FEEC61CE - sample 44: - time = 938666 - flags = 0 - data = length 74, hash 71B4C816 - sample 45: - time = 960000 - flags = 0 - data = length 81, hash 74B27A40 - sample 46: - time = 981333 flags = 536870912 - data = length 66, hash 2E45BE0D + data = length 70, hash E441B6B8 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump index 704d95fa53..e91cd986d1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.0.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=634]] numberOfTracks = 1 track 0: - total output bytes = 4170 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -14,11 +14,11 @@ track 0: sampleRate = 48000 language = und initializationData: - data = length 60, hash C05CBBFC + data = length 60, hash C05CB07B sample 0: time = 0 flags = 1 - data = length 335, hash 8D9A8041 + data = length 335, hash E6334A80 sample 1: time = 21333 flags = 0 @@ -114,7 +114,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 320, hash 9FA4C955 + data = length 320, hash 58EEA8F6 sample 25: time = 533333 flags = 0 @@ -122,85 +122,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 76, hash 63335304 + data = length 77, hash 73C5B274 sample 27: time = 576000 flags = 0 - data = length 69, hash 5BA9463B + data = length 65, hash 622B1A8 sample 28: time = 597333 flags = 0 - data = length 77, hash 14939B8E - sample 29: - time = 618666 - flags = 0 - data = length 73, hash 7CB696EC - sample 30: - time = 640000 - flags = 0 - data = length 62, hash 60D8A635 - sample 31: - time = 661333 - flags = 0 - data = length 81, hash 2930186C - sample 32: - time = 682666 - flags = 0 - data = length 73, hash 98B39B7B - sample 33: - time = 704000 - flags = 0 - data = length 69, hash F8554057 - sample 34: - time = 725333 - flags = 0 - data = length 79, hash D4207851 - sample 35: - time = 746666 - flags = 0 - data = length 74, hash 29F4B7BA - sample 36: - time = 768000 - flags = 0 - data = length 68, hash 54023ACC - sample 37: - time = 789333 - flags = 0 - data = length 79, hash 2212A7FE - sample 38: - time = 810666 - flags = 0 - data = length 74, hash 29F4B7B9 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 8156AB6 - sample 40: - time = 853333 - flags = 0 - data = length 79, hash 37CA8B53 - sample 41: - time = 874666 - flags = 0 - data = length 74, hash E4ACCCD7 - sample 42: - time = 896000 - flags = 0 - data = length 69, hash F8554081 - sample 43: - time = 917333 - flags = 0 - data = length 79, hash FEEC61CE - sample 44: - time = 938666 - flags = 0 - data = length 74, hash 71B4C816 - sample 45: - time = 960000 - flags = 0 - data = length 81, hash 74B27A40 - sample 46: - time = 981333 - flags = 0 - data = length 66, hash 2E45BE0D + data = length 70, hash E441B6B8 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump index 704d95fa53..e91cd986d1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_cicp1_fragmented.mp4.unknown_length.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=634]] numberOfTracks = 1 track 0: - total output bytes = 4170 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -14,11 +14,11 @@ track 0: sampleRate = 48000 language = und initializationData: - data = length 60, hash C05CBBFC + data = length 60, hash C05CB07B sample 0: time = 0 flags = 1 - data = length 335, hash 8D9A8041 + data = length 335, hash E6334A80 sample 1: time = 21333 flags = 0 @@ -114,7 +114,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 320, hash 9FA4C955 + data = length 320, hash 58EEA8F6 sample 25: time = 533333 flags = 0 @@ -122,85 +122,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 76, hash 63335304 + data = length 77, hash 73C5B274 sample 27: time = 576000 flags = 0 - data = length 69, hash 5BA9463B + data = length 65, hash 622B1A8 sample 28: time = 597333 flags = 0 - data = length 77, hash 14939B8E - sample 29: - time = 618666 - flags = 0 - data = length 73, hash 7CB696EC - sample 30: - time = 640000 - flags = 0 - data = length 62, hash 60D8A635 - sample 31: - time = 661333 - flags = 0 - data = length 81, hash 2930186C - sample 32: - time = 682666 - flags = 0 - data = length 73, hash 98B39B7B - sample 33: - time = 704000 - flags = 0 - data = length 69, hash F8554057 - sample 34: - time = 725333 - flags = 0 - data = length 79, hash D4207851 - sample 35: - time = 746666 - flags = 0 - data = length 74, hash 29F4B7BA - sample 36: - time = 768000 - flags = 0 - data = length 68, hash 54023ACC - sample 37: - time = 789333 - flags = 0 - data = length 79, hash 2212A7FE - sample 38: - time = 810666 - flags = 0 - data = length 74, hash 29F4B7B9 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 8156AB6 - sample 40: - time = 853333 - flags = 0 - data = length 79, hash 37CA8B53 - sample 41: - time = 874666 - flags = 0 - data = length 74, hash E4ACCCD7 - sample 42: - time = 896000 - flags = 0 - data = length 69, hash F8554081 - sample 43: - time = 917333 - flags = 0 - data = length 79, hash FEEC61CE - sample 44: - time = 938666 - flags = 0 - data = length 74, hash 71B4C816 - sample 45: - time = 960000 - flags = 0 - data = length 81, hash 74B27A40 - sample 46: - time = 981333 - flags = 0 - data = length 66, hash 2E45BE0D + data = length 70, hash E441B6B8 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump index e9804a7c26..a60ddd957a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.0.dump @@ -1,23 +1,23 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=13281]] - getPosition(3000000) = [[timeUs=3000000, position=118721]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1054]] + getPosition(1) = [[timeUs=1, position=1054]] + getPosition(900000) = [[timeUs=900000, position=6234]] + getPosition(1800000) = [[timeUs=1800000, position=33120]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.10 - maxInputSize = 2078 + maxInputSize = 1476 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: @@ -103,493 +103,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 153, hash CC86912D sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 162, hash 577737FF sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 491, hash E4A095D9 + data = length 490, hash FD29BE27 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF637D sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A762E sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 154, hash E4D1CE2 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash C1C83A77 sample 29: + time = 600000 + flags = 1 + data = length 1278, hash 281C389B + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 611, hash 4D115F94 + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash 29F0A8C8 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215B3 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD544 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA7E + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215CE + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 616, hash B059E5F3 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 657, hash 950B636D + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215D9 + sample 39: time = 810666 flags = 0 - data = length 134, hash E78A2560 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480782F + sample 41: time = 853333 flags = 0 - data = length 140, hash 554CB5DF - sample 41: + data = length 640, hash 432215B2 + sample 42: time = 874666 flags = 0 - data = length 119, hash 2C238137 - sample 42: + data = length 650, hash A2B8C618 + sample 43: time = 896000 flags = 0 - data = length 163, hash 2223D99B - sample 43: + data = length 657, hash ABB26E68 + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215BC + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F8B7 + sample 46: time = 960000 flags = 0 - data = length 201, hash 8F3FC720 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 52B16452 + data = length 641, hash F27D0F35 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash D2337230 + data = length 1446, hash 57251DD3 sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 543, hash AC12F41B sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE83 sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD63 sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE90 sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 774, hash 8C885DAD sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 733, hash 5199F868 sample 58: + time = 1200000 + flags = 1 + data = length 914, hash B404D154 + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 422, hash DE1E83F5 + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CB73C51D - sample 74: + data = length 814, hash 39B338CB + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 423, hash 390144EE + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: - time = 1792000 - flags = 0 - data = length 2048, hash 5431547E + data = length 581, hash 64B79723 sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 744, hash 5DDA64AA - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 811, hash 8342FA71 - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 481, hash 7A8A4708 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 814, hash 34823CE2 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 423, hash 390144D7 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump index f37c37d996..2dc6323d6a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.1.dump @@ -1,407 +1,255 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=13281]] - getPosition(3000000) = [[timeUs=3000000, position=118721]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1054]] + getPosition(1) = [[timeUs=1, position=1054]] + getPosition(900000) = [[timeUs=900000, position=6234]] + getPosition(1800000) = [[timeUs=1800000, position=33120]] numberOfTracks = 1 track 0: - total output bytes = 120119 - sample count = 96 + total output bytes = 33598 + sample count = 58 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.10 - maxInputSize = 2078 + maxInputSize = 1476 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: - time = 1000000 + time = 600000 flags = 1 - data = length 1889, hash 52B16452 + data = length 1278, hash 281C389B sample 1: + time = 618666 + flags = 0 + data = length 611, hash 4D115F94 + sample 2: + time = 640000 + flags = 0 + data = length 656, hash 29F0A8C8 + sample 3: + time = 661333 + flags = 0 + data = length 640, hash 432215B3 + sample 4: + time = 682666 + flags = 0 + data = length 609, hash 5B7AD544 + sample 5: + time = 704000 + flags = 0 + data = length 658, hash A173EA7E + sample 6: + time = 725333 + flags = 0 + data = length 640, hash 432215CE + sample 7: + time = 746666 + flags = 0 + data = length 616, hash B059E5F3 + sample 8: + time = 768000 + flags = 0 + data = length 657, hash 950B636D + sample 9: + time = 789333 + flags = 0 + data = length 640, hash 432215D9 + sample 10: + time = 810666 + flags = 0 + data = length 641, hash 3246CD5C + sample 11: + time = 832000 + flags = 0 + data = length 658, hash D480782F + sample 12: + time = 853333 + flags = 0 + data = length 640, hash 432215B2 + sample 13: + time = 874666 + flags = 0 + data = length 650, hash A2B8C618 + sample 14: + time = 896000 + flags = 0 + data = length 657, hash ABB26E68 + sample 15: + time = 917333 + flags = 0 + data = length 640, hash 432215BC + sample 16: + time = 938666 + flags = 0 + data = length 663, hash 8A51F8B7 + sample 17: + time = 960000 + flags = 0 + data = length 657, hash 51796214 + sample 18: + time = 981333 + flags = 0 + data = length 641, hash F27D0F35 + sample 19: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 - sample 2: + data = length 626, hash D84D4392 + sample 20: time = 1024000 flags = 1 - data = length 1943, hash D2337230 - sample 3: + data = length 1446, hash 57251DD3 + sample 21: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 4: + data = length 543, hash AC12F41B + sample 22: time = 1066666 flags = 0 - data = length 1946, hash E699F72C - sample 5: + data = length 496, hash 7D75AE83 + sample 23: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 - sample 6: + data = length 559, hash B248FD63 + sample 24: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 7: + data = length 537, hash 2EEC4577 + sample 25: time = 1130666 flags = 0 - data = length 1946, hash E699F72E - sample 8: + data = length 496, hash 7D75AE90 + sample 26: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D - sample 9: + data = length 560, hash 77AD983C + sample 27: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 10: + data = length 774, hash 8C885DAD + sample 28: time = 1194666 flags = 0 - data = length 1946, hash E699F737 - sample 11: + data = length 733, hash 5199F868 + sample 29: + time = 1200000 + flags = 1 + data = length 914, hash B404D154 + sample 30: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 12: + data = length 301, hash B72EAA19 + sample 31: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 13: + data = length 299, hash 90B92024 + sample 32: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 14: + data = length 319, hash 5F47ED6D + sample 33: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 15: + data = length 295, hash E35C19E + sample 34: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 16: + data = length 299, hash 90B92029 + sample 35: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 17: + data = length 319, hash 5F47ED6D + sample 36: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 18: + data = length 422, hash DE1E83F5 + sample 37: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 19: + data = length 512, hash 71422ABF + sample 38: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 20: + data = length 512, hash 12E1C091 + sample 39: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 21: + data = length 512, hash 4C28788B + sample 40: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 22: + data = length 512, hash 71422ABD + sample 41: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 23: + data = length 512, hash 12E1C0B6 + sample 42: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 24: + data = length 512, hash 4C287853 + sample 43: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 25: + data = length 512, hash ED501288 + sample 44: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 26: + data = length 512, hash 9D4174B5 + sample 45: time = 1536000 flags = 1 - data = length 2045, hash CB73C51D - sample 27: + data = length 814, hash 39B338CB + sample 46: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 28: + data = length 299, hash 90B92026 + sample 47: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 29: + data = length 423, hash 390144EE + sample 48: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 30: + data = length 512, hash 4C28784A + sample 49: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 31: + data = length 512, hash 71422ABB + sample 50: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 32: + data = length 512, hash 12E1C07F + sample 51: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 33: + data = length 512, hash 4C287884 + sample 52: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 34: + data = length 512, hash 71422ABD + sample 53: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 35: + data = length 512, hash 12E1C069 + sample 54: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 36: + data = length 512, hash 4C287890 + sample 55: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 37: + data = length 512, hash 71422AC0 + sample 56: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 38: - time = 1792000 - flags = 0 - data = length 2048, hash 5431547E - sample 39: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 40: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 41: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 42: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 43: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 44: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 45: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 46: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 47: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 48: - time = 2000000 - flags = 1 - data = length 744, hash 5DDA64AA - sample 49: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 50: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 51: - time = 2048000 - flags = 1 - data = length 811, hash 8342FA71 - sample 52: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 53: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 54: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 55: - time = 2133333 - flags = 0 - data = length 481, hash 7A8A4708 - sample 56: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 + data = length 581, hash 64B79723 sample 57: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 58: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 59: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 60: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 61: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 62: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 63: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 64: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 65: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 66: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 67: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 68: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 69: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 70: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 71: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 72: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 73: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 74: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 75: - time = 2560000 - flags = 1 - data = length 814, hash 34823CE2 - sample 76: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 77: - time = 2602666 - flags = 0 - data = length 423, hash 390144D7 - sample 78: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 79: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 80: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 81: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 82: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 83: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 84: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 85: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 86: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 87: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 88: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 89: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 90: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 91: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 92: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 93: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 94: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 95: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump index 5248df28f4..fbf71e0a3b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.2.dump @@ -1,215 +1,139 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=13281]] - getPosition(3000000) = [[timeUs=3000000, position=118721]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1054]] + getPosition(1) = [[timeUs=1, position=1054]] + getPosition(900000) = [[timeUs=900000, position=6234]] + getPosition(1800000) = [[timeUs=1800000, position=33120]] numberOfTracks = 1 track 0: - total output bytes = 23874 - sample count = 48 + total output bytes = 13976 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.10 - maxInputSize = 2078 + maxInputSize = 1476 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: - time = 2000000 + time = 1200000 flags = 1 - data = length 744, hash 5DDA64AA + data = length 914, hash B404D154 sample 1: - time = 2005333 + time = 1216000 flags = 0 - data = length 238, hash DA502A4F + data = length 301, hash B72EAA19 sample 2: - time = 2026666 + time = 1237333 flags = 0 - data = length 324, hash A76C55FD + data = length 299, hash 90B92024 sample 3: - time = 2048000 - flags = 1 - data = length 811, hash 8342FA71 - sample 4: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 5: - time = 2090666 + time = 1258666 flags = 0 data = length 319, hash 5F47ED6D - sample 6: - time = 2112000 + sample 4: + time = 1280000 flags = 0 data = length 295, hash E35C19E + sample 5: + time = 1301333 + flags = 0 + data = length 299, hash 90B92029 + sample 6: + time = 1322666 + flags = 0 + data = length 319, hash 5F47ED6D sample 7: - time = 2133333 + time = 1344000 flags = 0 - data = length 481, hash 7A8A4708 + data = length 422, hash DE1E83F5 sample 8: - time = 2154666 + time = 1365333 flags = 0 - data = length 487, hash CB0F60F6 + data = length 512, hash 71422ABF sample 9: - time = 2176000 + time = 1386666 flags = 0 - data = length 487, hash 4FFB63CA + data = length 512, hash 12E1C091 sample 10: - time = 2197333 + time = 1408000 flags = 0 - data = length 487, hash 97A7C57C + data = length 512, hash 4C28788B sample 11: - time = 2218666 + time = 1429333 flags = 0 - data = length 487, hash CB0F611B + data = length 512, hash 71422ABD sample 12: - time = 2240000 + time = 1450666 flags = 0 - data = length 487, hash 4FFB6392 + data = length 512, hash 12E1C0B6 sample 13: - time = 2261333 + time = 1472000 flags = 0 - data = length 487, hash 97A7C57D + data = length 512, hash 4C287853 sample 14: - time = 2282666 + time = 1493333 flags = 0 - data = length 487, hash CB0F60C9 + data = length 512, hash ED501288 sample 15: - time = 2304000 + time = 1514666 flags = 0 - data = length 487, hash 4FFB63CB + data = length 512, hash 9D4174B5 sample 16: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 17: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 18: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 19: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 20: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 21: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 22: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 23: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 24: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 25: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 26: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 27: - time = 2560000 + time = 1536000 flags = 1 - data = length 814, hash 34823CE2 - sample 28: - time = 2581333 + data = length 814, hash 39B338CB + sample 17: + time = 1557333 flags = 0 - data = length 299, hash 90B9202B - sample 29: - time = 2602666 + data = length 299, hash 90B92026 + sample 18: + time = 1578666 flags = 0 - data = length 423, hash 390144D7 - sample 30: - time = 2624000 + data = length 423, hash 390144EE + sample 19: + time = 1600000 flags = 0 - data = length 512, hash 4C287858 - sample 31: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 32: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 33: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 34: - time = 2709333 + data = length 512, hash 4C28784A + sample 20: + time = 1621333 flags = 0 data = length 512, hash 71422ABB - sample 35: - time = 2730666 + sample 21: + time = 1642666 flags = 0 - data = length 512, hash 12E1C097 - sample 36: - time = 2752000 + data = length 512, hash 12E1C07F + sample 22: + time = 1664000 flags = 0 - data = length 512, hash 4C28783B - sample 37: - time = 2773333 + data = length 512, hash 4C287884 + sample 23: + time = 1685333 flags = 0 - data = length 512, hash 71422ABC - sample 38: - time = 2794666 + data = length 512, hash 71422ABD + sample 24: + time = 1706666 flags = 0 - data = length 512, hash 12E1C088 - sample 39: - time = 2816000 + data = length 512, hash 12E1C069 + sample 25: + time = 1728000 flags = 0 - data = length 512, hash 4C28786A - sample 40: - time = 2837333 + data = length 512, hash 4C287890 + sample 26: + time = 1749333 flags = 0 - data = length 512, hash 71422ABA - sample 41: - time = 2858666 + data = length 512, hash 71422AC0 + sample 27: + time = 1770666 flags = 0 - data = length 512, hash 12E1C05D - sample 42: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 43: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 44: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 45: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 46: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 47: - time = 2986666 + data = length 581, hash 64B79723 + sample 28: + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump index 3278f168d3..58515b9892 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.3.dump @@ -1,107 +1,75 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=13281]] - getPosition(3000000) = [[timeUs=3000000, position=118721]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1054]] + getPosition(1) = [[timeUs=1, position=1054]] + getPosition(900000) = [[timeUs=900000, position=6234]] + getPosition(1800000) = [[timeUs=1800000, position=33120]] numberOfTracks = 1 track 0: - total output bytes = 10844 - sample count = 21 + total output bytes = 6712 + sample count = 13 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.10 - maxInputSize = 2078 + maxInputSize = 1476 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: - time = 2560000 + time = 1536000 flags = 1 - data = length 814, hash 34823CE2 + data = length 814, hash 39B338CB sample 1: - time = 2581333 + time = 1557333 flags = 0 - data = length 299, hash 90B9202B + data = length 299, hash 90B92026 sample 2: - time = 2602666 + time = 1578666 flags = 0 - data = length 423, hash 390144D7 + data = length 423, hash 390144EE sample 3: - time = 2624000 + time = 1600000 flags = 0 - data = length 512, hash 4C287858 + data = length 512, hash 4C28784A sample 4: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 5: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 6: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 7: - time = 2709333 + time = 1621333 flags = 0 data = length 512, hash 71422ABB + sample 5: + time = 1642666 + flags = 0 + data = length 512, hash 12E1C07F + sample 6: + time = 1664000 + flags = 0 + data = length 512, hash 4C287884 + sample 7: + time = 1685333 + flags = 0 + data = length 512, hash 71422ABD sample 8: - time = 2730666 + time = 1706666 flags = 0 - data = length 512, hash 12E1C097 + data = length 512, hash 12E1C069 sample 9: - time = 2752000 + time = 1728000 flags = 0 - data = length 512, hash 4C28783B + data = length 512, hash 4C287890 sample 10: - time = 2773333 + time = 1749333 flags = 0 - data = length 512, hash 71422ABC + data = length 512, hash 71422AC0 sample 11: - time = 2794666 + time = 1770666 flags = 0 - data = length 512, hash 12E1C088 + data = length 581, hash 64B79723 sample 12: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 13: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 14: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 15: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 16: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 17: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 18: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 19: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 20: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump index e9804a7c26..a60ddd957a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange.mp4.unknown_length.dump @@ -1,23 +1,23 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1286]] - getPosition(1) = [[timeUs=1, position=1286]] - getPosition(1500000) = [[timeUs=1500000, position=13281]] - getPosition(3000000) = [[timeUs=3000000, position=118721]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1054]] + getPosition(1) = [[timeUs=1, position=1054]] + getPosition(900000) = [[timeUs=900000, position=6234]] + getPosition(1800000) = [[timeUs=1800000, position=33120]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.10 - maxInputSize = 2078 + maxInputSize = 1476 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982001, modification time=3780982001, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733089, modification time=3782733089, timescale=600] initializationData: data = length 64, hash DB1F936C sample 0: @@ -103,493 +103,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 153, hash CC86912D sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 162, hash 577737FF sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 491, hash E4A095D9 + data = length 490, hash FD29BE27 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF637D sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A762E sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 154, hash E4D1CE2 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash C1C83A77 sample 29: + time = 600000 + flags = 1 + data = length 1278, hash 281C389B + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 611, hash 4D115F94 + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash 29F0A8C8 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215B3 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD544 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA7E + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215CE + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 616, hash B059E5F3 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 657, hash 950B636D + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215D9 + sample 39: time = 810666 flags = 0 - data = length 134, hash E78A2560 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480782F + sample 41: time = 853333 flags = 0 - data = length 140, hash 554CB5DF - sample 41: + data = length 640, hash 432215B2 + sample 42: time = 874666 flags = 0 - data = length 119, hash 2C238137 - sample 42: + data = length 650, hash A2B8C618 + sample 43: time = 896000 flags = 0 - data = length 163, hash 2223D99B - sample 43: + data = length 657, hash ABB26E68 + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215BC + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F8B7 + sample 46: time = 960000 flags = 0 - data = length 201, hash 8F3FC720 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 52B16452 + data = length 641, hash F27D0F35 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash D2337230 + data = length 1446, hash 57251DD3 sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 543, hash AC12F41B sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE83 sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD63 sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE90 sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 774, hash 8C885DAD sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 733, hash 5199F868 sample 58: + time = 1200000 + flags = 1 + data = length 914, hash B404D154 + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 422, hash DE1E83F5 + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CB73C51D - sample 74: + data = length 814, hash 39B338CB + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 423, hash 390144EE + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: - time = 1792000 - flags = 0 - data = length 2048, hash 5431547E + data = length 581, hash 64B79723 sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 744, hash 5DDA64AA - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 811, hash 8342FA71 - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 481, hash 7A8A4708 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 814, hash 34823CE2 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 423, hash 390144D7 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump index 6d9d17feb0..2ae108b09d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.0.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=638]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -98,493 +98,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 153, hash CC86912D sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 162, hash 577737FF sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 491, hash E4A095D9 + data = length 490, hash FD29BE27 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF637D sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A762E sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 154, hash E4D1CE2 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash C1C83A77 sample 29: + time = 600000 + flags = 1 + data = length 1278, hash 281C389B + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 611, hash 4D115F94 + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash 29F0A8C8 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215B3 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD544 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA7E + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215CE + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 616, hash B059E5F3 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 657, hash 950B636D + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215D9 + sample 39: time = 810666 flags = 0 - data = length 134, hash E78A2560 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480782F + sample 41: time = 853333 flags = 0 - data = length 140, hash 554CB5DF - sample 41: + data = length 640, hash 432215B2 + sample 42: time = 874666 flags = 0 - data = length 119, hash 2C238137 - sample 42: + data = length 650, hash A2B8C618 + sample 43: time = 896000 flags = 0 - data = length 163, hash 2223D99B - sample 43: + data = length 657, hash ABB26E68 + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215BC + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F8B7 + sample 46: time = 960000 flags = 0 - data = length 201, hash 8F3FC720 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 52B16452 + data = length 641, hash F27D0F35 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash D2337230 + data = length 1446, hash 57251DD3 sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 543, hash AC12F41B sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE83 sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD63 sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE90 sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 774, hash 8C885DAD sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 733, hash 5199F868 sample 58: + time = 1200000 + flags = 1 + data = length 914, hash B404D154 + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 422, hash DE1E83F5 + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CB73C51D - sample 74: + data = length 814, hash 39B338CB + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 423, hash 390144EE + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: + data = length 581, hash 64B79723 + sample 86: time = 1792000 flags = 0 - data = length 2048, hash 5431547E - sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 744, hash 5DDA64AA - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 811, hash 8342FA71 - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 481, hash 7A8A4708 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 814, hash 34823CE2 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 423, hash 390144D7 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 - flags = 0 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump index 6d9d17feb0..2ae108b09d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_bl_configchange_fragmented.mp4.unknown_length.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=638]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -98,493 +98,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 153, hash CC86912D sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 162, hash 577737FF sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 491, hash E4A095D9 + data = length 490, hash FD29BE27 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF637D sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A762E sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 154, hash E4D1CE2 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash C1C83A77 sample 29: + time = 600000 + flags = 1 + data = length 1278, hash 281C389B + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 611, hash 4D115F94 + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash 29F0A8C8 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215B3 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD544 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA7E + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215CE + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 616, hash B059E5F3 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 657, hash 950B636D + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215D9 + sample 39: time = 810666 flags = 0 - data = length 134, hash E78A2560 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480782F + sample 41: time = 853333 flags = 0 - data = length 140, hash 554CB5DF - sample 41: + data = length 640, hash 432215B2 + sample 42: time = 874666 flags = 0 - data = length 119, hash 2C238137 - sample 42: + data = length 650, hash A2B8C618 + sample 43: time = 896000 flags = 0 - data = length 163, hash 2223D99B - sample 43: + data = length 657, hash ABB26E68 + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215BC + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F8B7 + sample 46: time = 960000 flags = 0 - data = length 201, hash 8F3FC720 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 52B16452 + data = length 641, hash F27D0F35 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash D2337230 + data = length 1446, hash 57251DD3 sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 543, hash AC12F41B sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE83 sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD63 sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE90 sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 774, hash 8C885DAD sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 733, hash 5199F868 sample 58: + time = 1200000 + flags = 1 + data = length 914, hash B404D154 + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 422, hash DE1E83F5 + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CB73C51D - sample 74: + data = length 814, hash 39B338CB + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 423, hash 390144EE + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: + data = length 581, hash 64B79723 + sample 86: time = 1792000 flags = 0 - data = length 2048, hash 5431547E - sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 744, hash 5DDA64AA - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 811, hash 8342FA71 - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 481, hash 7A8A4708 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 814, hash 34823CE2 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 423, hash 390144D7 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 - flags = 0 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump index 3ec36c107d..8e45890034 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.0.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=839]] - getPosition(1) = [[timeUs=1, position=839]] - getPosition(500000) = [[timeUs=500000, position=839]] - getPosition(1000000) = [[timeUs=1000000, position=3063]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=767]] + getPosition(1) = [[timeUs=1, position=767]] + getPosition(300000) = [[timeUs=300000, position=767]] + getPosition(600000) = [[timeUs=600000, position=2991]] numberOfTracks = 1 track 0: - total output bytes = 4192 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,14 +17,14 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600] initializationData: - data = length 63, hash 82D00145 + data = length 63, hash 7D954866 data = length 1, hash 2F sample 0: time = 0 flags = 1 - data = length 338, hash B319817B + data = length 338, hash CF711ADC sample 1: time = 21333 flags = 0 @@ -120,7 +120,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 323, hash B8036267 + data = length 323, hash F3C25326 sample 25: time = 533333 flags = 0 @@ -128,85 +128,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 77, hash F75CC85D + data = length 78, hash D9DD04A0 sample 27: time = 576000 flags = 0 - data = length 57, hash 7CC1708C + data = length 65, hash 622B1D3 sample 28: time = 597333 - flags = 0 - data = length 81, hash 2B2350C7 - sample 29: - time = 618666 - flags = 0 - data = length 77, hash D8F6FDAC - sample 30: - time = 640000 - flags = 0 - data = length 77, hash 42EF016 - sample 31: - time = 661333 - flags = 0 - data = length 80, hash 4675D185 - sample 32: - time = 682666 - flags = 0 - data = length 76, hash 1A7FEA3D - sample 33: - time = 704000 - flags = 0 - data = length 56, hash 3BDC1EB1 - sample 34: - time = 725333 - flags = 0 - data = length 83, hash ADB7179F - sample 35: - time = 746666 - flags = 0 - data = length 77, hash 67FF2471 - sample 36: - time = 768000 - flags = 0 - data = length 76, hash 4E946044 - sample 37: - time = 789333 - flags = 0 - data = length 80, hash 4675D18C - sample 38: - time = 810666 - flags = 0 - data = length 76, hash 135136C6 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 54B620CE - sample 40: - time = 853333 - flags = 0 - data = length 80, hash 600CF0ED - sample 41: - time = 874666 - flags = 0 - data = length 77, hash 700F9258 - sample 42: - time = 896000 - flags = 0 - data = length 57, hash C279FB37 - sample 43: - time = 917333 - flags = 0 - data = length 83, hash 8E933F98 - sample 44: - time = 938666 - flags = 0 - data = length 77, hash C1D1E4A2 - sample 45: - time = 960000 - flags = 0 - data = length 84, hash CB9DC2AE - sample 46: - time = 981333 flags = 536870912 - data = length 68, hash 90F95DDC + data = length 70, hash CE3E092E tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump index 3ec36c107d..8e45890034 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.1.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=839]] - getPosition(1) = [[timeUs=1, position=839]] - getPosition(500000) = [[timeUs=500000, position=839]] - getPosition(1000000) = [[timeUs=1000000, position=3063]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=767]] + getPosition(1) = [[timeUs=1, position=767]] + getPosition(300000) = [[timeUs=300000, position=767]] + getPosition(600000) = [[timeUs=600000, position=2991]] numberOfTracks = 1 track 0: - total output bytes = 4192 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,14 +17,14 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600] initializationData: - data = length 63, hash 82D00145 + data = length 63, hash 7D954866 data = length 1, hash 2F sample 0: time = 0 flags = 1 - data = length 338, hash B319817B + data = length 338, hash CF711ADC sample 1: time = 21333 flags = 0 @@ -120,7 +120,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 323, hash B8036267 + data = length 323, hash F3C25326 sample 25: time = 533333 flags = 0 @@ -128,85 +128,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 77, hash F75CC85D + data = length 78, hash D9DD04A0 sample 27: time = 576000 flags = 0 - data = length 57, hash 7CC1708C + data = length 65, hash 622B1D3 sample 28: time = 597333 - flags = 0 - data = length 81, hash 2B2350C7 - sample 29: - time = 618666 - flags = 0 - data = length 77, hash D8F6FDAC - sample 30: - time = 640000 - flags = 0 - data = length 77, hash 42EF016 - sample 31: - time = 661333 - flags = 0 - data = length 80, hash 4675D185 - sample 32: - time = 682666 - flags = 0 - data = length 76, hash 1A7FEA3D - sample 33: - time = 704000 - flags = 0 - data = length 56, hash 3BDC1EB1 - sample 34: - time = 725333 - flags = 0 - data = length 83, hash ADB7179F - sample 35: - time = 746666 - flags = 0 - data = length 77, hash 67FF2471 - sample 36: - time = 768000 - flags = 0 - data = length 76, hash 4E946044 - sample 37: - time = 789333 - flags = 0 - data = length 80, hash 4675D18C - sample 38: - time = 810666 - flags = 0 - data = length 76, hash 135136C6 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 54B620CE - sample 40: - time = 853333 - flags = 0 - data = length 80, hash 600CF0ED - sample 41: - time = 874666 - flags = 0 - data = length 77, hash 700F9258 - sample 42: - time = 896000 - flags = 0 - data = length 57, hash C279FB37 - sample 43: - time = 917333 - flags = 0 - data = length 83, hash 8E933F98 - sample 44: - time = 938666 - flags = 0 - data = length 77, hash C1D1E4A2 - sample 45: - time = 960000 - flags = 0 - data = length 84, hash CB9DC2AE - sample 46: - time = 981333 flags = 536870912 - data = length 68, hash 90F95DDC + data = length 70, hash CE3E092E tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump index a718d28847..8e45890034 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.2.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=839]] - getPosition(1) = [[timeUs=1, position=839]] - getPosition(500000) = [[timeUs=500000, position=839]] - getPosition(1000000) = [[timeUs=1000000, position=3063]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=767]] + getPosition(1) = [[timeUs=1, position=767]] + getPosition(300000) = [[timeUs=300000, position=767]] + getPosition(600000) = [[timeUs=600000, position=2991]] numberOfTracks = 1 track 0: - total output bytes = 1968 - sample count = 23 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,100 +17,124 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600] initializationData: - data = length 63, hash 82D00145 + 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 B8036267 - sample 1: + data = length 323, hash F3C25326 + sample 25: time = 533333 flags = 0 data = length 77, hash F3A2DCC5 - sample 2: + sample 26: time = 554666 flags = 0 - data = length 77, hash F75CC85D - sample 3: + data = length 78, hash D9DD04A0 + sample 27: time = 576000 flags = 0 - data = length 57, hash 7CC1708C - sample 4: + data = length 65, hash 622B1D3 + sample 28: time = 597333 - flags = 0 - data = length 81, hash 2B2350C7 - sample 5: - time = 618666 - flags = 0 - data = length 77, hash D8F6FDAC - sample 6: - time = 640000 - flags = 0 - data = length 77, hash 42EF016 - sample 7: - time = 661333 - flags = 0 - data = length 80, hash 4675D185 - sample 8: - time = 682666 - flags = 0 - data = length 76, hash 1A7FEA3D - sample 9: - time = 704000 - flags = 0 - data = length 56, hash 3BDC1EB1 - sample 10: - time = 725333 - flags = 0 - data = length 83, hash ADB7179F - sample 11: - time = 746666 - flags = 0 - data = length 77, hash 67FF2471 - sample 12: - time = 768000 - flags = 0 - data = length 76, hash 4E946044 - sample 13: - time = 789333 - flags = 0 - data = length 80, hash 4675D18C - sample 14: - time = 810666 - flags = 0 - data = length 76, hash 135136C6 - sample 15: - time = 832000 - flags = 0 - data = length 69, hash 54B620CE - sample 16: - time = 853333 - flags = 0 - data = length 80, hash 600CF0ED - sample 17: - time = 874666 - flags = 0 - data = length 77, hash 700F9258 - sample 18: - time = 896000 - flags = 0 - data = length 57, hash C279FB37 - sample 19: - time = 917333 - flags = 0 - data = length 83, hash 8E933F98 - sample 20: - time = 938666 - flags = 0 - data = length 77, hash C1D1E4A2 - sample 21: - time = 960000 - flags = 0 - data = length 84, hash CB9DC2AE - sample 22: - time = 981333 flags = 536870912 - data = length 68, hash 90F95DDC + data = length 70, hash CE3E092E tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump index a718d28847..5d94463aa5 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.3.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=839]] - getPosition(1) = [[timeUs=1, position=839]] - getPosition(500000) = [[timeUs=500000, position=839]] - getPosition(1000000) = [[timeUs=1000000, position=3063]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=767]] + getPosition(1) = [[timeUs=1, position=767]] + getPosition(300000) = [[timeUs=300000, position=767]] + getPosition(600000) = [[timeUs=600000, position=2991]] numberOfTracks = 1 track 0: - total output bytes = 1968 - sample count = 23 + total output bytes = 613 + sample count = 5 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,14 +17,14 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600] initializationData: - data = length 63, hash 82D00145 + data = length 63, hash 7D954866 data = length 1, hash 2F sample 0: time = 512000 flags = 1 - data = length 323, hash B8036267 + data = length 323, hash F3C25326 sample 1: time = 533333 flags = 0 @@ -32,85 +32,13 @@ track 0: sample 2: time = 554666 flags = 0 - data = length 77, hash F75CC85D + data = length 78, hash D9DD04A0 sample 3: time = 576000 flags = 0 - data = length 57, hash 7CC1708C + data = length 65, hash 622B1D3 sample 4: time = 597333 - flags = 0 - data = length 81, hash 2B2350C7 - sample 5: - time = 618666 - flags = 0 - data = length 77, hash D8F6FDAC - sample 6: - time = 640000 - flags = 0 - data = length 77, hash 42EF016 - sample 7: - time = 661333 - flags = 0 - data = length 80, hash 4675D185 - sample 8: - time = 682666 - flags = 0 - data = length 76, hash 1A7FEA3D - sample 9: - time = 704000 - flags = 0 - data = length 56, hash 3BDC1EB1 - sample 10: - time = 725333 - flags = 0 - data = length 83, hash ADB7179F - sample 11: - time = 746666 - flags = 0 - data = length 77, hash 67FF2471 - sample 12: - time = 768000 - flags = 0 - data = length 76, hash 4E946044 - sample 13: - time = 789333 - flags = 0 - data = length 80, hash 4675D18C - sample 14: - time = 810666 - flags = 0 - data = length 76, hash 135136C6 - sample 15: - time = 832000 - flags = 0 - data = length 69, hash 54B620CE - sample 16: - time = 853333 - flags = 0 - data = length 80, hash 600CF0ED - sample 17: - time = 874666 - flags = 0 - data = length 77, hash 700F9258 - sample 18: - time = 896000 - flags = 0 - data = length 57, hash C279FB37 - sample 19: - time = 917333 - flags = 0 - data = length 83, hash 8E933F98 - sample 20: - time = 938666 - flags = 0 - data = length 77, hash C1D1E4A2 - sample 21: - time = 960000 - flags = 0 - data = length 84, hash CB9DC2AE - sample 22: - time = 981333 flags = 536870912 - data = length 68, hash 90F95DDC + data = length 70, hash CE3E092E tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump index 3ec36c107d..8e45890034 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1.mp4.unknown_length.dump @@ -1,14 +1,14 @@ seekMap: isSeekable = true - duration = 1000000 - getPosition(0) = [[timeUs=0, position=839]] - getPosition(1) = [[timeUs=1, position=839]] - getPosition(500000) = [[timeUs=500000, position=839]] - getPosition(1000000) = [[timeUs=1000000, position=3063]] + duration = 600000 + getPosition(0) = [[timeUs=0, position=767]] + getPosition(1) = [[timeUs=1, position=767]] + getPosition(300000) = [[timeUs=300000, position=767]] + getPosition(600000) = [[timeUs=600000, position=2991]] numberOfTracks = 1 track 0: - total output bytes = 4192 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -17,14 +17,14 @@ track 0: channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982024, modification time=3780982024, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733150, modification time=3782733150, timescale=600] initializationData: - data = length 63, hash 82D00145 + data = length 63, hash 7D954866 data = length 1, hash 2F sample 0: time = 0 flags = 1 - data = length 338, hash B319817B + data = length 338, hash CF711ADC sample 1: time = 21333 flags = 0 @@ -120,7 +120,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 323, hash B8036267 + data = length 323, hash F3C25326 sample 25: time = 533333 flags = 0 @@ -128,85 +128,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 77, hash F75CC85D + data = length 78, hash D9DD04A0 sample 27: time = 576000 flags = 0 - data = length 57, hash 7CC1708C + data = length 65, hash 622B1D3 sample 28: time = 597333 - flags = 0 - data = length 81, hash 2B2350C7 - sample 29: - time = 618666 - flags = 0 - data = length 77, hash D8F6FDAC - sample 30: - time = 640000 - flags = 0 - data = length 77, hash 42EF016 - sample 31: - time = 661333 - flags = 0 - data = length 80, hash 4675D185 - sample 32: - time = 682666 - flags = 0 - data = length 76, hash 1A7FEA3D - sample 33: - time = 704000 - flags = 0 - data = length 56, hash 3BDC1EB1 - sample 34: - time = 725333 - flags = 0 - data = length 83, hash ADB7179F - sample 35: - time = 746666 - flags = 0 - data = length 77, hash 67FF2471 - sample 36: - time = 768000 - flags = 0 - data = length 76, hash 4E946044 - sample 37: - time = 789333 - flags = 0 - data = length 80, hash 4675D18C - sample 38: - time = 810666 - flags = 0 - data = length 76, hash 135136C6 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 54B620CE - sample 40: - time = 853333 - flags = 0 - data = length 80, hash 600CF0ED - sample 41: - time = 874666 - flags = 0 - data = length 77, hash 700F9258 - sample 42: - time = 896000 - flags = 0 - data = length 57, hash C279FB37 - sample 43: - time = 917333 - flags = 0 - data = length 83, hash 8E933F98 - sample 44: - time = 938666 - flags = 0 - data = length 77, hash C1D1E4A2 - sample 45: - time = 960000 - flags = 0 - data = length 84, hash CB9DC2AE - sample 46: - time = 981333 flags = 536870912 - data = length 68, hash 90F95DDC + data = length 70, hash CE3E092E tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump index cbad1f4898..431719a58d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.0.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=647]] numberOfTracks = 1 track 0: - total output bytes = 4192 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -14,12 +14,12 @@ track 0: sampleRate = 48000 language = und initializationData: - data = length 63, hash 82D00145 + data = length 63, hash 7D954866 data = length 1, hash 2F sample 0: time = 0 flags = 1 - data = length 338, hash B319817B + data = length 338, hash CF711ADC sample 1: time = 21333 flags = 0 @@ -115,7 +115,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 323, hash B8036267 + data = length 323, hash F3C25326 sample 25: time = 533333 flags = 0 @@ -123,85 +123,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 77, hash F75CC85D + data = length 78, hash D9DD04A0 sample 27: time = 576000 flags = 0 - data = length 57, hash 7CC1708C + data = length 65, hash 622B1D3 sample 28: time = 597333 flags = 0 - data = length 81, hash 2B2350C7 - sample 29: - time = 618666 - flags = 0 - data = length 77, hash D8F6FDAC - sample 30: - time = 640000 - flags = 0 - data = length 77, hash 42EF016 - sample 31: - time = 661333 - flags = 0 - data = length 80, hash 4675D185 - sample 32: - time = 682666 - flags = 0 - data = length 76, hash 1A7FEA3D - sample 33: - time = 704000 - flags = 0 - data = length 56, hash 3BDC1EB1 - sample 34: - time = 725333 - flags = 0 - data = length 83, hash ADB7179F - sample 35: - time = 746666 - flags = 0 - data = length 77, hash 67FF2471 - sample 36: - time = 768000 - flags = 0 - data = length 76, hash 4E946044 - sample 37: - time = 789333 - flags = 0 - data = length 80, hash 4675D18C - sample 38: - time = 810666 - flags = 0 - data = length 76, hash 135136C6 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 54B620CE - sample 40: - time = 853333 - flags = 0 - data = length 80, hash 600CF0ED - sample 41: - time = 874666 - flags = 0 - data = length 77, hash 700F9258 - sample 42: - time = 896000 - flags = 0 - data = length 57, hash C279FB37 - sample 43: - time = 917333 - flags = 0 - data = length 83, hash 8E933F98 - sample 44: - time = 938666 - flags = 0 - data = length 77, hash C1D1E4A2 - sample 45: - time = 960000 - flags = 0 - data = length 84, hash CB9DC2AE - sample 46: - time = 981333 - flags = 0 - data = length 68, hash 90F95DDC + data = length 70, hash CE3E092E tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump index cbad1f4898..431719a58d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4.unknown_length.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=647]] numberOfTracks = 1 track 0: - total output bytes = 4192 - sample count = 47 + total output bytes = 2837 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -14,12 +14,12 @@ track 0: sampleRate = 48000 language = und initializationData: - data = length 63, hash 82D00145 + data = length 63, hash 7D954866 data = length 1, hash 2F sample 0: time = 0 flags = 1 - data = length 338, hash B319817B + data = length 338, hash CF711ADC sample 1: time = 21333 flags = 0 @@ -115,7 +115,7 @@ track 0: sample 24: time = 512000 flags = 1 - data = length 323, hash B8036267 + data = length 323, hash F3C25326 sample 25: time = 533333 flags = 0 @@ -123,85 +123,13 @@ track 0: sample 26: time = 554666 flags = 0 - data = length 77, hash F75CC85D + data = length 78, hash D9DD04A0 sample 27: time = 576000 flags = 0 - data = length 57, hash 7CC1708C + data = length 65, hash 622B1D3 sample 28: time = 597333 flags = 0 - data = length 81, hash 2B2350C7 - sample 29: - time = 618666 - flags = 0 - data = length 77, hash D8F6FDAC - sample 30: - time = 640000 - flags = 0 - data = length 77, hash 42EF016 - sample 31: - time = 661333 - flags = 0 - data = length 80, hash 4675D185 - sample 32: - time = 682666 - flags = 0 - data = length 76, hash 1A7FEA3D - sample 33: - time = 704000 - flags = 0 - data = length 56, hash 3BDC1EB1 - sample 34: - time = 725333 - flags = 0 - data = length 83, hash ADB7179F - sample 35: - time = 746666 - flags = 0 - data = length 77, hash 67FF2471 - sample 36: - time = 768000 - flags = 0 - data = length 76, hash 4E946044 - sample 37: - time = 789333 - flags = 0 - data = length 80, hash 4675D18C - sample 38: - time = 810666 - flags = 0 - data = length 76, hash 135136C6 - sample 39: - time = 832000 - flags = 0 - data = length 69, hash 54B620CE - sample 40: - time = 853333 - flags = 0 - data = length 80, hash 600CF0ED - sample 41: - time = 874666 - flags = 0 - data = length 77, hash 700F9258 - sample 42: - time = 896000 - flags = 0 - data = length 57, hash C279FB37 - sample 43: - time = 917333 - flags = 0 - data = length 83, hash 8E933F98 - sample 44: - time = 938666 - flags = 0 - data = length 77, hash C1D1E4A2 - sample 45: - time = 960000 - flags = 0 - data = length 84, hash CB9DC2AE - sample 46: - time = 981333 - flags = 0 - data = length 68, hash 90F95DDC + data = length 70, hash CE3E092E tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump index 0fc4009c9c..1befd0293e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.0.dump @@ -1,23 +1,23 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1299]] - getPosition(1) = [[timeUs=1, position=1299]] - getPosition(1500000) = [[timeUs=1500000, position=13294]] - getPosition(3000000) = [[timeUs=3000000, position=118734]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1067]] + getPosition(1) = [[timeUs=1, position=1067]] + getPosition(900000) = [[timeUs=900000, position=6256]] + getPosition(1800000) = [[timeUs=1800000, position=33133]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.0B - maxInputSize = 2078 + maxInputSize = 1479 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600] initializationData: data = length 67, hash 3CF14937 data = length 1, hash 2F @@ -104,493 +104,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 151, hash 2E40B4B2 sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 163, hash 4E4CBFDD sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 494, hash 760CFF0D + data = length 493, hash 5CB15E73 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF6348 sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A7619 sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 160, hash 85B40084 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 141, hash C14F9501 sample 29: + time = 600000 + flags = 1 + data = length 1281, hash 9131BB91 + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 608, hash 1F8ADAAD + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash BAEB035 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215C9 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD547 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA78 + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215C9 + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 613, hash ECA1FB91 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 658, hash 6EC1708C + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215C2 + sample 39: time = 810666 flags = 0 - data = length 133, hash 1CC194C2 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480784A + sample 41: time = 853333 flags = 0 - data = length 138, hash DC4D2879 - sample 41: + data = length 640, hash 432215D6 + sample 42: time = 874666 flags = 0 - data = length 118, hash B83EEC69 - sample 42: + data = length 647, hash C6E3E718 + sample 43: time = 896000 flags = 0 - data = length 163, hash 9C0874EC - sample 43: + data = length 657, hash A204D6AF + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215D4 + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F88A + sample 46: time = 960000 flags = 0 - data = length 199, hash 95B42394 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 4CBC0E10 + data = length 641, hash F27D0F36 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash 107D8B89 + data = length 1449, hash 773492CA sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 542, hash 2689A516 sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE8C sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD5C sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE8A sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 773, hash 4FA8BAEF sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 744, hash 6725112B sample 58: + time = 1200000 + flags = 1 + data = length 917, hash 338496EB + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 403, hash BCD6901D + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CDE033BF - sample 74: + data = length 817, hash 9C51B5E2 + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 420, hash 7C4664D7 + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: - time = 1792000 - flags = 0 - data = length 2048, hash 5431547E + data = length 581, hash 64B79723 sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 747, hash 825A1CE1 - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 814, hash BB697ADA - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 475, hash 5C915E92 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 817, hash 7CFB77D9 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 420, hash 7C4664C0 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump index db53cdbbf7..60c9b2564d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.1.dump @@ -1,408 +1,256 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1299]] - getPosition(1) = [[timeUs=1, position=1299]] - getPosition(1500000) = [[timeUs=1500000, position=13294]] - getPosition(3000000) = [[timeUs=3000000, position=118734]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1067]] + getPosition(1) = [[timeUs=1, position=1067]] + getPosition(900000) = [[timeUs=900000, position=6256]] + getPosition(1800000) = [[timeUs=1800000, position=33133]] numberOfTracks = 1 track 0: - total output bytes = 120119 - sample count = 96 + total output bytes = 33589 + sample count = 58 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.0B - maxInputSize = 2078 + maxInputSize = 1479 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600] initializationData: data = length 67, hash 3CF14937 data = length 1, hash 2F sample 0: - time = 1000000 + time = 600000 flags = 1 - data = length 1889, hash 4CBC0E10 + data = length 1281, hash 9131BB91 sample 1: + time = 618666 + flags = 0 + data = length 608, hash 1F8ADAAD + sample 2: + time = 640000 + flags = 0 + data = length 656, hash BAEB035 + sample 3: + time = 661333 + flags = 0 + data = length 640, hash 432215C9 + sample 4: + time = 682666 + flags = 0 + data = length 609, hash 5B7AD547 + sample 5: + time = 704000 + flags = 0 + data = length 658, hash A173EA78 + sample 6: + time = 725333 + flags = 0 + data = length 640, hash 432215C9 + sample 7: + time = 746666 + flags = 0 + data = length 613, hash ECA1FB91 + sample 8: + time = 768000 + flags = 0 + data = length 658, hash 6EC1708C + sample 9: + time = 789333 + flags = 0 + data = length 640, hash 432215C2 + sample 10: + time = 810666 + flags = 0 + data = length 641, hash 3246CD5C + sample 11: + time = 832000 + flags = 0 + data = length 658, hash D480784A + sample 12: + time = 853333 + flags = 0 + data = length 640, hash 432215D6 + sample 13: + time = 874666 + flags = 0 + data = length 647, hash C6E3E718 + sample 14: + time = 896000 + flags = 0 + data = length 657, hash A204D6AF + sample 15: + time = 917333 + flags = 0 + data = length 640, hash 432215D4 + sample 16: + time = 938666 + flags = 0 + data = length 663, hash 8A51F88A + sample 17: + time = 960000 + flags = 0 + data = length 657, hash 51796214 + sample 18: + time = 981333 + flags = 0 + data = length 641, hash F27D0F36 + sample 19: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 - sample 2: + data = length 626, hash D84D4392 + sample 20: time = 1024000 flags = 1 - data = length 1943, hash 107D8B89 - sample 3: + data = length 1449, hash 773492CA + sample 21: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 4: + data = length 542, hash 2689A516 + sample 22: time = 1066666 flags = 0 - data = length 1946, hash E699F72C - sample 5: + data = length 496, hash 7D75AE8C + sample 23: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 - sample 6: + data = length 559, hash B248FD5C + sample 24: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 7: + data = length 537, hash 2EEC4577 + sample 25: time = 1130666 flags = 0 - data = length 1946, hash E699F72E - sample 8: + data = length 496, hash 7D75AE8A + sample 26: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D - sample 9: + data = length 560, hash 77AD983C + sample 27: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 10: + data = length 773, hash 4FA8BAEF + sample 28: time = 1194666 flags = 0 - data = length 1946, hash E699F737 - sample 11: + data = length 744, hash 6725112B + sample 29: + time = 1200000 + flags = 1 + data = length 917, hash 338496EB + sample 30: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 12: + data = length 301, hash B72EAA19 + sample 31: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 13: + data = length 299, hash 90B92024 + sample 32: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 14: + data = length 319, hash 5F47ED6D + sample 33: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 15: + data = length 295, hash E35C19E + sample 34: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 16: + data = length 299, hash 90B92029 + sample 35: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 17: + data = length 319, hash 5F47ED6D + sample 36: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 18: + data = length 403, hash BCD6901D + sample 37: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 19: + data = length 512, hash 71422ABF + sample 38: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 20: + data = length 512, hash 12E1C091 + sample 39: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 21: + data = length 512, hash 4C28788B + sample 40: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 22: + data = length 512, hash 71422ABD + sample 41: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 23: + data = length 512, hash 12E1C0B6 + sample 42: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 24: + data = length 512, hash 4C287853 + sample 43: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 25: + data = length 512, hash ED501288 + sample 44: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 26: + data = length 512, hash 9D4174B5 + sample 45: time = 1536000 flags = 1 - data = length 2045, hash CDE033BF - sample 27: + data = length 817, hash 9C51B5E2 + sample 46: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 28: + data = length 299, hash 90B92026 + sample 47: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 29: + data = length 420, hash 7C4664D7 + sample 48: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 30: + data = length 512, hash 4C28784A + sample 49: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 31: + data = length 512, hash 71422ABB + sample 50: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 32: + data = length 512, hash 12E1C07F + sample 51: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 33: + data = length 512, hash 4C287884 + sample 52: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 34: + data = length 512, hash 71422ABD + sample 53: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 35: + data = length 512, hash 12E1C069 + sample 54: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 36: + data = length 512, hash 4C287890 + sample 55: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 37: + data = length 512, hash 71422AC0 + sample 56: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 38: - time = 1792000 - flags = 0 - data = length 2048, hash 5431547E - sample 39: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 40: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 41: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 42: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 43: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 44: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 45: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 46: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 47: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 48: - time = 2000000 - flags = 1 - data = length 747, hash 825A1CE1 - sample 49: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 50: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 51: - time = 2048000 - flags = 1 - data = length 814, hash BB697ADA - sample 52: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 53: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 54: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 55: - time = 2133333 - flags = 0 - data = length 475, hash 5C915E92 - sample 56: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 + data = length 581, hash 64B79723 sample 57: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 58: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 59: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 60: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 61: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 62: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 63: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 64: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 65: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 66: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 67: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 68: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 69: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 70: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 71: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 72: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 73: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 74: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 75: - time = 2560000 - flags = 1 - data = length 817, hash 7CFB77D9 - sample 76: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 77: - time = 2602666 - flags = 0 - data = length 420, hash 7C4664C0 - sample 78: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 79: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 80: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 81: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 82: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 83: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 84: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 85: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 86: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 87: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 88: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 89: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 90: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 91: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 92: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 93: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 94: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 95: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump index 3f4deb8ba1..f8211a1989 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.2.dump @@ -1,216 +1,140 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1299]] - getPosition(1) = [[timeUs=1, position=1299]] - getPosition(1500000) = [[timeUs=1500000, position=13294]] - getPosition(3000000) = [[timeUs=3000000, position=118734]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1067]] + getPosition(1) = [[timeUs=1, position=1067]] + getPosition(900000) = [[timeUs=900000, position=6256]] + getPosition(1800000) = [[timeUs=1800000, position=33133]] numberOfTracks = 1 track 0: - total output bytes = 23874 - sample count = 48 + total output bytes = 13960 + sample count = 29 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.0B - maxInputSize = 2078 + maxInputSize = 1479 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600] initializationData: data = length 67, hash 3CF14937 data = length 1, hash 2F sample 0: - time = 2000000 + time = 1200000 flags = 1 - data = length 747, hash 825A1CE1 + data = length 917, hash 338496EB sample 1: - time = 2005333 + time = 1216000 flags = 0 - data = length 238, hash DA502A4F + data = length 301, hash B72EAA19 sample 2: - time = 2026666 + time = 1237333 flags = 0 - data = length 324, hash A76C55FD + data = length 299, hash 90B92024 sample 3: - time = 2048000 - flags = 1 - data = length 814, hash BB697ADA - sample 4: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 5: - time = 2090666 + time = 1258666 flags = 0 data = length 319, hash 5F47ED6D - sample 6: - time = 2112000 + sample 4: + time = 1280000 flags = 0 data = length 295, hash E35C19E + sample 5: + time = 1301333 + flags = 0 + data = length 299, hash 90B92029 + sample 6: + time = 1322666 + flags = 0 + data = length 319, hash 5F47ED6D sample 7: - time = 2133333 + time = 1344000 flags = 0 - data = length 475, hash 5C915E92 + data = length 403, hash BCD6901D sample 8: - time = 2154666 + time = 1365333 flags = 0 - data = length 487, hash CB0F60F6 + data = length 512, hash 71422ABF sample 9: - time = 2176000 + time = 1386666 flags = 0 - data = length 487, hash 4FFB63CA + data = length 512, hash 12E1C091 sample 10: - time = 2197333 + time = 1408000 flags = 0 - data = length 487, hash 97A7C57C + data = length 512, hash 4C28788B sample 11: - time = 2218666 + time = 1429333 flags = 0 - data = length 487, hash CB0F611B + data = length 512, hash 71422ABD sample 12: - time = 2240000 + time = 1450666 flags = 0 - data = length 487, hash 4FFB6392 + data = length 512, hash 12E1C0B6 sample 13: - time = 2261333 + time = 1472000 flags = 0 - data = length 487, hash 97A7C57D + data = length 512, hash 4C287853 sample 14: - time = 2282666 + time = 1493333 flags = 0 - data = length 487, hash CB0F60C9 + data = length 512, hash ED501288 sample 15: - time = 2304000 + time = 1514666 flags = 0 - data = length 487, hash 4FFB63CB + data = length 512, hash 9D4174B5 sample 16: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 17: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 18: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 19: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 20: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 21: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 22: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 23: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 24: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 25: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 26: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 27: - time = 2560000 + time = 1536000 flags = 1 - data = length 817, hash 7CFB77D9 - sample 28: - time = 2581333 + data = length 817, hash 9C51B5E2 + sample 17: + time = 1557333 flags = 0 - data = length 299, hash 90B9202B - sample 29: - time = 2602666 + data = length 299, hash 90B92026 + sample 18: + time = 1578666 flags = 0 - data = length 420, hash 7C4664C0 - sample 30: - time = 2624000 + data = length 420, hash 7C4664D7 + sample 19: + time = 1600000 flags = 0 - data = length 512, hash 4C287858 - sample 31: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 32: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 33: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 34: - time = 2709333 + data = length 512, hash 4C28784A + sample 20: + time = 1621333 flags = 0 data = length 512, hash 71422ABB - sample 35: - time = 2730666 + sample 21: + time = 1642666 flags = 0 - data = length 512, hash 12E1C097 - sample 36: - time = 2752000 + data = length 512, hash 12E1C07F + sample 22: + time = 1664000 flags = 0 - data = length 512, hash 4C28783B - sample 37: - time = 2773333 + data = length 512, hash 4C287884 + sample 23: + time = 1685333 flags = 0 - data = length 512, hash 71422ABC - sample 38: - time = 2794666 + data = length 512, hash 71422ABD + sample 24: + time = 1706666 flags = 0 - data = length 512, hash 12E1C088 - sample 39: - time = 2816000 + data = length 512, hash 12E1C069 + sample 25: + time = 1728000 flags = 0 - data = length 512, hash 4C28786A - sample 40: - time = 2837333 + data = length 512, hash 4C287890 + sample 26: + time = 1749333 flags = 0 - data = length 512, hash 71422ABA - sample 41: - time = 2858666 + data = length 512, hash 71422AC0 + sample 27: + time = 1770666 flags = 0 - data = length 512, hash 12E1C05D - sample 42: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 43: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 44: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 45: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 46: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 47: - time = 2986666 + data = length 581, hash 64B79723 + sample 28: + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump index 8a5db2942e..3081be263d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.3.dump @@ -1,108 +1,76 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1299]] - getPosition(1) = [[timeUs=1, position=1299]] - getPosition(1500000) = [[timeUs=1500000, position=13294]] - getPosition(3000000) = [[timeUs=3000000, position=118734]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1067]] + getPosition(1) = [[timeUs=1, position=1067]] + getPosition(900000) = [[timeUs=900000, position=6256]] + getPosition(1800000) = [[timeUs=1800000, position=33133]] numberOfTracks = 1 track 0: - total output bytes = 10844 - sample count = 21 + total output bytes = 6712 + sample count = 13 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.0B - maxInputSize = 2078 + maxInputSize = 1479 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600] initializationData: data = length 67, hash 3CF14937 data = length 1, hash 2F sample 0: - time = 2560000 + time = 1536000 flags = 1 - data = length 817, hash 7CFB77D9 + data = length 817, hash 9C51B5E2 sample 1: - time = 2581333 + time = 1557333 flags = 0 - data = length 299, hash 90B9202B + data = length 299, hash 90B92026 sample 2: - time = 2602666 + time = 1578666 flags = 0 - data = length 420, hash 7C4664C0 + data = length 420, hash 7C4664D7 sample 3: - time = 2624000 + time = 1600000 flags = 0 - data = length 512, hash 4C287858 + data = length 512, hash 4C28784A sample 4: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 5: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 6: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 7: - time = 2709333 + time = 1621333 flags = 0 data = length 512, hash 71422ABB + sample 5: + time = 1642666 + flags = 0 + data = length 512, hash 12E1C07F + sample 6: + time = 1664000 + flags = 0 + data = length 512, hash 4C287884 + sample 7: + time = 1685333 + flags = 0 + data = length 512, hash 71422ABD sample 8: - time = 2730666 + time = 1706666 flags = 0 - data = length 512, hash 12E1C097 + data = length 512, hash 12E1C069 sample 9: - time = 2752000 + time = 1728000 flags = 0 - data = length 512, hash 4C28783B + data = length 512, hash 4C287890 sample 10: - time = 2773333 + time = 1749333 flags = 0 - data = length 512, hash 71422ABC + data = length 512, hash 71422AC0 sample 11: - time = 2794666 + time = 1770666 flags = 0 - data = length 512, hash 12E1C088 + data = length 581, hash 64B79723 sample 12: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 13: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 14: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 15: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 16: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 17: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 18: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 19: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 20: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump index 0fc4009c9c..1befd0293e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange.mp4.unknown_length.dump @@ -1,23 +1,23 @@ seekMap: isSeekable = true - duration = 3000000 - getPosition(0) = [[timeUs=0, position=1299]] - getPosition(1) = [[timeUs=1, position=1299]] - getPosition(1500000) = [[timeUs=1500000, position=13294]] - getPosition(3000000) = [[timeUs=3000000, position=118734]] + duration = 1800000 + getPosition(0) = [[timeUs=0, position=1067]] + getPosition(1) = [[timeUs=1, position=1067]] + getPosition(900000) = [[timeUs=900000, position=6256]] + getPosition(1800000) = [[timeUs=1800000, position=33133]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 codecs = mhm1.0B - maxInputSize = 2078 + maxInputSize = 1479 channelCount = 0 sampleRate = 48000 language = und - metadata = entries=[Mp4Timestamp: creation time=3780982002, modification time=3780982002, timescale=600] + metadata = entries=[Mp4Timestamp: creation time=3782733090, modification time=3782733090, timescale=600] initializationData: data = length 67, hash 3CF14937 data = length 1, hash 2F @@ -104,493 +104,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 151, hash 2E40B4B2 sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 163, hash 4E4CBFDD sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 494, hash 760CFF0D + data = length 493, hash 5CB15E73 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF6348 sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A7619 sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 160, hash 85B40084 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 141, hash C14F9501 sample 29: + time = 600000 + flags = 1 + data = length 1281, hash 9131BB91 + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 608, hash 1F8ADAAD + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash BAEB035 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215C9 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD547 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA78 + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215C9 + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 613, hash ECA1FB91 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 658, hash 6EC1708C + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215C2 + sample 39: time = 810666 flags = 0 - data = length 133, hash 1CC194C2 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480784A + sample 41: time = 853333 flags = 0 - data = length 138, hash DC4D2879 - sample 41: + data = length 640, hash 432215D6 + sample 42: time = 874666 flags = 0 - data = length 118, hash B83EEC69 - sample 42: + data = length 647, hash C6E3E718 + sample 43: time = 896000 flags = 0 - data = length 163, hash 9C0874EC - sample 43: + data = length 657, hash A204D6AF + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215D4 + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F88A + sample 46: time = 960000 flags = 0 - data = length 199, hash 95B42394 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 4CBC0E10 + data = length 641, hash F27D0F36 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash 107D8B89 + data = length 1449, hash 773492CA sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 542, hash 2689A516 sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE8C sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD5C sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE8A sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 773, hash 4FA8BAEF sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 744, hash 6725112B sample 58: + time = 1200000 + flags = 1 + data = length 917, hash 338496EB + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 403, hash BCD6901D + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CDE033BF - sample 74: + data = length 817, hash 9C51B5E2 + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 420, hash 7C4664D7 + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: - time = 1792000 - flags = 0 - data = length 2048, hash 5431547E + data = length 581, hash 64B79723 sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 747, hash 825A1CE1 - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 814, hash BB697ADA - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 475, hash 5C915E92 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 817, hash 7CFB77D9 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 420, hash 7C4664C0 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 + time = 1792000 flags = 536870912 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump index 5ed0e99036..fc7a4a1dd8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.0.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=651]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -99,493 +99,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 151, hash 2E40B4B2 sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 163, hash 4E4CBFDD sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 494, hash 760CFF0D + data = length 493, hash 5CB15E73 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF6348 sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A7619 sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 160, hash 85B40084 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 141, hash C14F9501 sample 29: + time = 600000 + flags = 1 + data = length 1281, hash 9131BB91 + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 608, hash 1F8ADAAD + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash BAEB035 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215C9 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD547 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA78 + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215C9 + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 613, hash ECA1FB91 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 658, hash 6EC1708C + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215C2 + sample 39: time = 810666 flags = 0 - data = length 133, hash 1CC194C2 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480784A + sample 41: time = 853333 flags = 0 - data = length 138, hash DC4D2879 - sample 41: + data = length 640, hash 432215D6 + sample 42: time = 874666 flags = 0 - data = length 118, hash B83EEC69 - sample 42: + data = length 647, hash C6E3E718 + sample 43: time = 896000 flags = 0 - data = length 163, hash 9C0874EC - sample 43: + data = length 657, hash A204D6AF + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215D4 + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F88A + sample 46: time = 960000 flags = 0 - data = length 199, hash 95B42394 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 4CBC0E10 + data = length 641, hash F27D0F36 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash 107D8B89 + data = length 1449, hash 773492CA sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 542, hash 2689A516 sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE8C sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD5C sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE8A sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 773, hash 4FA8BAEF sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 744, hash 6725112B sample 58: + time = 1200000 + flags = 1 + data = length 917, hash 338496EB + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 403, hash BCD6901D + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CDE033BF - sample 74: + data = length 817, hash 9C51B5E2 + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 420, hash 7C4664D7 + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: + data = length 581, hash 64B79723 + sample 86: time = 1792000 flags = 0 - data = length 2048, hash 5431547E - sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 747, hash 825A1CE1 - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 814, hash BB697ADA - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 475, hash 5C915E92 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 817, hash 7CFB77D9 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 420, hash 7C4664C0 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 - flags = 0 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump index 5ed0e99036..fc7a4a1dd8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mhm1_lcbl_configchange_fragmented.mp4.unknown_length.dump @@ -4,8 +4,8 @@ seekMap: getPosition(0) = [[timeUs=0, position=651]] numberOfTracks = 1 track 0: - total output bytes = 128279 - sample count = 143 + total output bytes = 38778 + sample count = 87 format 0: id = 1 sampleMimeType = audio/mhm1 @@ -99,493 +99,269 @@ track 0: sample 20: time = 426666 flags = 0 - data = length 158, hash 37B039AC + data = length 126, hash 78789B9C sample 21: time = 448000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 151, hash 2E40B4B2 sample 22: time = 469333 flags = 0 - data = length 159, hash 95787660 + data = length 163, hash 4E4CBFDD sample 23: time = 490666 flags = 0 - data = length 161, hash 16788957 + data = length 160, hash 3BCD3677 sample 24: time = 512000 flags = 1 - data = length 494, hash 760CFF0D + data = length 493, hash 5CB15E73 sample 25: time = 533333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 143, hash 38DF6348 sample 26: time = 554666 flags = 0 - data = length 158, hash BA6B70A1 + data = length 120, hash 307A7619 sample 27: time = 576000 flags = 0 - data = length 164, hash 7E2368C3 + data = length 160, hash 85B40084 sample 28: time = 597333 flags = 0 - data = length 158, hash 10AC2CD4 + data = length 141, hash C14F9501 sample 29: + time = 600000 + flags = 1 + data = length 1281, hash 9131BB91 + sample 30: time = 618666 flags = 0 - data = length 158, hash BA6B709B - sample 30: + data = length 608, hash 1F8ADAAD + sample 31: time = 640000 flags = 0 - data = length 164, hash 7E2368C3 - sample 31: + data = length 656, hash BAEB035 + sample 32: time = 661333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 32: + data = length 640, hash 432215C9 + sample 33: time = 682666 flags = 0 - data = length 158, hash BA6B70A5 - sample 33: + data = length 609, hash 5B7AD547 + sample 34: time = 704000 flags = 0 - data = length 164, hash 7E2368C3 - sample 34: + data = length 658, hash A173EA78 + sample 35: time = 725333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 35: + data = length 640, hash 432215C9 + sample 36: time = 746666 flags = 0 - data = length 158, hash BA6B708A - sample 36: + data = length 613, hash ECA1FB91 + sample 37: time = 768000 flags = 0 - data = length 164, hash 7E2368C3 - sample 37: + data = length 658, hash 6EC1708C + sample 38: time = 789333 flags = 0 - data = length 158, hash 10AC2CD4 - sample 38: + data = length 640, hash 432215C2 + sample 39: time = 810666 flags = 0 - data = length 133, hash 1CC194C2 - sample 39: + data = length 641, hash 3246CD5C + sample 40: time = 832000 flags = 0 - data = length 137, hash AED0A139 - sample 40: + data = length 658, hash D480784A + sample 41: time = 853333 flags = 0 - data = length 138, hash DC4D2879 - sample 41: + data = length 640, hash 432215D6 + sample 42: time = 874666 flags = 0 - data = length 118, hash B83EEC69 - sample 42: + data = length 647, hash C6E3E718 + sample 43: time = 896000 flags = 0 - data = length 163, hash 9C0874EC - sample 43: + data = length 657, hash A204D6AF + sample 44: time = 917333 flags = 0 - data = length 157, hash CB2B0DA9 - sample 44: + data = length 640, hash 432215D4 + sample 45: time = 938666 flags = 0 - data = length 157, hash 5DEF94E6 - sample 45: + data = length 663, hash 8A51F88A + sample 46: time = 960000 flags = 0 - data = length 199, hash 95B42394 - sample 46: + data = length 657, hash 51796214 + sample 47: time = 981333 flags = 0 - data = length 212, hash 16161E7E - sample 47: - time = 1000000 - flags = 1 - data = length 1889, hash 4CBC0E10 + data = length 641, hash F27D0F36 sample 48: time = 1002666 flags = 0 - data = length 1946, hash 7CBAD516 + data = length 626, hash D84D4392 sample 49: time = 1024000 flags = 1 - data = length 1943, hash 107D8B89 + data = length 1449, hash 773492CA sample 50: time = 1045333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 542, hash 2689A516 sample 51: time = 1066666 flags = 0 - data = length 1946, hash E699F72C + data = length 496, hash 7D75AE8C sample 52: time = 1088000 flags = 0 - data = length 1946, hash EDE7C070 + data = length 559, hash B248FD5C sample 53: time = 1109333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 537, hash 2EEC4577 sample 54: time = 1130666 flags = 0 - data = length 1946, hash E699F72E + data = length 496, hash 7D75AE8A sample 55: time = 1152000 flags = 0 - data = length 1946, hash EDE7C06D + data = length 560, hash 77AD983C sample 56: time = 1173333 flags = 0 - data = length 1946, hash 7ACED7E4 + data = length 773, hash 4FA8BAEF sample 57: time = 1194666 flags = 0 - data = length 1946, hash E699F737 + data = length 744, hash 6725112B sample 58: + time = 1200000 + flags = 1 + data = length 917, hash 338496EB + sample 59: time = 1216000 flags = 0 - data = length 1946, hash EDE7C06F - sample 59: + data = length 301, hash B72EAA19 + sample 60: time = 1237333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 60: + data = length 299, hash 90B92024 + sample 61: time = 1258666 flags = 0 - data = length 1946, hash E699F72D - sample 61: + data = length 319, hash 5F47ED6D + sample 62: time = 1280000 flags = 0 - data = length 1946, hash EDE7C070 - sample 62: + data = length 295, hash E35C19E + sample 63: time = 1301333 flags = 0 - data = length 1946, hash 7ACED7E4 - sample 63: + data = length 299, hash 90B92029 + sample 64: time = 1322666 flags = 0 - data = length 1946, hash E699F731 - sample 64: + data = length 319, hash 5F47ED6D + sample 65: time = 1344000 flags = 0 - data = length 1946, hash EDE7C06E - sample 65: + data = length 403, hash BCD6901D + sample 66: time = 1365333 flags = 0 - data = length 1990, hash 8176E8F8 - sample 66: + data = length 512, hash 71422ABF + sample 67: time = 1386666 flags = 0 - data = length 2048, hash 409F44AB - sample 67: + data = length 512, hash 12E1C091 + sample 68: time = 1408000 flags = 0 - data = length 2048, hash 5431547E - sample 68: + data = length 512, hash 4C28788B + sample 69: time = 1429333 flags = 0 - data = length 2048, hash 1193639E - sample 69: + data = length 512, hash 71422ABD + sample 70: time = 1450666 flags = 0 - data = length 2048, hash 409F44AD - sample 70: + data = length 512, hash 12E1C0B6 + sample 71: time = 1472000 flags = 0 - data = length 2048, hash 5431547F - sample 71: + data = length 512, hash 4C287853 + sample 72: time = 1493333 flags = 0 - data = length 2048, hash 184105C3 - sample 72: + data = length 512, hash ED501288 + sample 73: time = 1514666 flags = 0 - data = length 2048, hash 8308185C - sample 73: + data = length 512, hash 9D4174B5 + sample 74: time = 1536000 flags = 1 - data = length 2045, hash CDE033BF - sample 74: + data = length 817, hash 9C51B5E2 + sample 75: time = 1557333 flags = 0 - data = length 2048, hash 1193639E - sample 75: + data = length 299, hash 90B92026 + sample 76: time = 1578666 flags = 0 - data = length 2048, hash 409F44B3 - sample 76: + data = length 420, hash 7C4664D7 + sample 77: time = 1600000 flags = 0 - data = length 2048, hash 5431547E - sample 77: + data = length 512, hash 4C28784A + sample 78: time = 1621333 flags = 0 - data = length 2048, hash 1193639D - sample 78: + data = length 512, hash 71422ABB + sample 79: time = 1642666 flags = 0 - data = length 2048, hash 409F44B3 - sample 79: + data = length 512, hash 12E1C07F + sample 80: time = 1664000 flags = 0 - data = length 2048, hash 5431547E - sample 80: + data = length 512, hash 4C287884 + sample 81: time = 1685333 flags = 0 - data = length 2048, hash 1193639D - sample 81: + data = length 512, hash 71422ABD + sample 82: time = 1706666 flags = 0 - data = length 2048, hash 409F44AA - sample 82: + data = length 512, hash 12E1C069 + sample 83: time = 1728000 flags = 0 - data = length 2048, hash 5431547F - sample 83: + data = length 512, hash 4C287890 + sample 84: time = 1749333 flags = 0 - data = length 2048, hash 1193639D - sample 84: + data = length 512, hash 71422AC0 + sample 85: time = 1770666 flags = 0 - data = length 2048, hash 409F44AC - sample 85: + data = length 581, hash 64B79723 + sample 86: time = 1792000 flags = 0 - data = length 2048, hash 5431547E - sample 86: - time = 1813333 - flags = 0 - data = length 2048, hash 1193639D - sample 87: - time = 1834666 - flags = 0 - data = length 2048, hash 409F44AE - sample 88: - time = 1856000 - flags = 0 - data = length 2048, hash 5431547D - sample 89: - time = 1877333 - flags = 0 - data = length 2048, hash 1193639E - sample 90: - time = 1898666 - flags = 0 - data = length 2048, hash 409F44B6 - sample 91: - time = 1920000 - flags = 0 - data = length 2048, hash 5431547F - sample 92: - time = 1941333 - flags = 0 - data = length 2048, hash 1193639E - sample 93: - time = 1962666 - flags = 0 - data = length 2048, hash 9C157230 - sample 94: - time = 1984000 - flags = 0 - data = length 1946, hash 4A0BC4F0 - sample 95: - time = 2000000 - flags = 1 - data = length 747, hash 825A1CE1 - sample 96: - time = 2005333 - flags = 0 - data = length 238, hash DA502A4F - sample 97: - time = 2026666 - flags = 0 - data = length 324, hash A76C55FD - sample 98: - time = 2048000 - flags = 1 - data = length 814, hash BB697ADA - sample 99: - time = 2069333 - flags = 0 - data = length 299, hash 90B92023 - sample 100: - time = 2090666 - flags = 0 - data = length 319, hash 5F47ED6D - sample 101: - time = 2112000 - flags = 0 - data = length 295, hash E35C19E - sample 102: - time = 2133333 - flags = 0 - data = length 475, hash 5C915E92 - sample 103: - time = 2154666 - flags = 0 - data = length 487, hash CB0F60F6 - sample 104: - time = 2176000 - flags = 0 - data = length 487, hash 4FFB63CA - sample 105: - time = 2197333 - flags = 0 - data = length 487, hash 97A7C57C - sample 106: - time = 2218666 - flags = 0 - data = length 487, hash CB0F611B - sample 107: - time = 2240000 - flags = 0 - data = length 487, hash 4FFB6392 - sample 108: - time = 2261333 - flags = 0 - data = length 487, hash 97A7C57D - sample 109: - time = 2282666 - flags = 0 - data = length 487, hash CB0F60C9 - sample 110: - time = 2304000 - flags = 0 - data = length 487, hash 4FFB63CB - sample 111: - time = 2325333 - flags = 0 - data = length 503, hash 56E1AE8B - sample 112: - time = 2346666 - flags = 0 - data = length 512, hash 12E1C0A8 - sample 113: - time = 2368000 - flags = 0 - data = length 512, hash 4C28784B - sample 114: - time = 2389333 - flags = 0 - data = length 512, hash 71422AB9 - sample 115: - time = 2410666 - flags = 0 - data = length 512, hash 12E1C076 - sample 116: - time = 2432000 - flags = 0 - data = length 512, hash 4C287892 - sample 117: - time = 2453333 - flags = 0 - data = length 512, hash 71422ABB - sample 118: - time = 2474666 - flags = 0 - data = length 512, hash 12E1C0B9 - sample 119: - time = 2496000 - flags = 0 - data = length 512, hash 4C28789F - sample 120: - time = 2517333 - flags = 0 - data = length 512, hash ED501283 - sample 121: - time = 2538666 - flags = 0 - data = length 512, hash 9D4174B7 - sample 122: - time = 2560000 - flags = 1 - data = length 817, hash 7CFB77D9 - sample 123: - time = 2581333 - flags = 0 - data = length 299, hash 90B9202B - sample 124: - time = 2602666 - flags = 0 - data = length 420, hash 7C4664C0 - sample 125: - time = 2624000 - flags = 0 - data = length 512, hash 4C287858 - sample 126: - time = 2645333 - flags = 0 - data = length 512, hash 71422ABF - sample 127: - time = 2666666 - flags = 0 - data = length 512, hash 12E1C05A - sample 128: - time = 2688000 - flags = 0 - data = length 512, hash 4C287822 - sample 129: - time = 2709333 - flags = 0 - data = length 512, hash 71422ABB - sample 130: - time = 2730666 - flags = 0 - data = length 512, hash 12E1C097 - sample 131: - time = 2752000 - flags = 0 - data = length 512, hash 4C28783B - sample 132: - time = 2773333 - flags = 0 - data = length 512, hash 71422ABC - sample 133: - time = 2794666 - flags = 0 - data = length 512, hash 12E1C088 - sample 134: - time = 2816000 - flags = 0 - data = length 512, hash 4C28786A - sample 135: - time = 2837333 - flags = 0 - data = length 512, hash 71422ABA - sample 136: - time = 2858666 - flags = 0 - data = length 512, hash 12E1C05D - sample 137: - time = 2880000 - flags = 0 - data = length 512, hash 4C287851 - sample 138: - time = 2901333 - flags = 0 - data = length 512, hash 71422ABF - sample 139: - time = 2922666 - flags = 0 - data = length 512, hash 12E1C09A - sample 140: - time = 2944000 - flags = 0 - data = length 512, hash 4C28782A - sample 141: - time = 2965333 - flags = 0 - data = length 604, hash 5CC9EA3F - sample 142: - time = 2986666 - flags = 0 - data = length 512, hash C97A4FD2 + data = length 499, hash 9C5AEB9A tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1.mp4 index b15603ea86bf97fdb014b6c8fe30a26fbb9754a6..5fa77d64e93044317586c85d7a423564e6705625 100644 GIT binary patch delta 501 zcmZosZw=5$CNHaVve;W(J3=B*W3=E7J6D@*OlS+ybvw?Ck zCD~v_>kH&M07|I+;FAmSUD-gN>m;(!(BPSiQm?8;1YU%2ff`FrYu#iz&O_ z2gr2=VqYNk1Y$cN4urBn;{HJF1;j2$Y-Dj{Hb|cn5Q`L-BC)F9ijLYo0o`4v!P+cKs;mW?=ur zz%??X_h2@qSZ<&_$vRAw3gHldjI(xouV2X025~FvY_i zWSFl8(0elNfA;Z-EnxWHz)-cTGTwvTLBx`svEIYQW!JB(vcEWD1a{am?&@zU+1~lz zC8??VqJM0h8PId-VQH&Ytq%6ELGs-D>vK&Q4lrE45c}q}LSw_e!kSt`p-Gm>nd&Fk z7#3{Ja=5}jpD*iA?*nh3zrwF(t?=*%>9z)X>S4pL&)2;f!~}lYf1TiPpgvyrS#49O z?Ay2gX7BddJiq*{qH)*M4((}MMeY{lZ7|Q=`f#tU?1S{yQ`5Z8+_|-K=4NBC&w7!4 zHu2y2UR?$>p8-9#T{2f(drH)*O^mS}{0CS!_AEKP=gp$iQ~Glk8ygE7UrWncRln*A z{%Di;aaqzAam({lHdpJ@U($UiE`>SABt-Ag_NY)kvgX9uw5_38t5%tM_`+k2;n(MD zTeBFLd3Itjn9t0u|6mP#B!__t8>LixQFdpZ**_@m!%VjJppu0|G%{F+% z1$sCkMI1(|tVieNuioPi)PUNi9!SJh<}p{-r4|?|eLIdn9k^ zZH_(bo*746v!Ai{nQQ3GowHWWoNcrT=K!fgnz_|L~;Fc&PVw0Lv7HzxVE%Ff35~R1eO%^%-$4wZ@08PMQ=j zXR3_Uy!~803rx<{FIPWou_dgu??#ESQrb+(PhOkN&xV`i&uU-V(U4pk@so$GblOeE`<0xLe`Z{MWNhR!smNuL z%7up>Obrbl)}Tb+eqfI@^H2M*X)^NpI~VYW>rKCwp!V?tzr&$Kk@dMfpEBhwM8w@Z W?AJI|7sPMkjLv?{HtE)iYkvR?a_n0G diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_cicp1_fragmented.mp4 index 15fff41a51ede3013bd4c1aacef7ebb40b6ee06f..8f1996f0b1b0a5caa87d0ceba3d40f312ee0b782 100644 GIT binary patch delta 363 zcmZ3X`B-*>E_?agxQ9SI(Il4}%4A?*V4PSeGVy>bOmZ?0<9nvW)0_V?HZy|gCgw5@ zDTbEZ{QNYaVu9SWj1(XZ0!%=hGg*j7ThO7Ts5Fm(fteL30>V9${dlBBeHj>7fE)%# zAZ`F+H=vfx$#%?6AY+4g{TS=L6%-h**<9J{@M!gf`lpvY7#NpX-qluUY*-XqwPQ;} z`F**64cjJzNNPBVPU0JyWLfB{?3^*IMc3%1{*_xq=!AouzH0(HVpsy z8xL67+7~e2i9S?yM&^JL;|s-8&Rzn?UFW;aYWn_hqR+NlVy0^!hOD#KJ86}(*s$~L zv{wtX9(ph}H$aTB-e4oL_(Sw^rvuFYR~Aj^I-{CUp&{Y@w3;Vzn)ku%eSyIzm)NfF a)B1n#W`w!JtrNnfYnPo|a_6enDro>I(uxcK delta 1852 zcmaDXyFzn%??X_h2@qSZ< z&_$vRAw3gHldjI(xouV2X025~FvY_iWSFl8(0elNfA;Z-EnxWHz)-cTGTwvTLBx`s zvEIYQW!JB(vcEWD1a{am?&@zU+1~lzC8??VqJM0h8PId-VQH&Ytq%6ELGs-D>vK&Q z4lrE45c}q}LSw_e!kSt`p-Gm>nd&Fk7#3{Ja=5}jpD*iA?*nh3zrwF(t?=*%>9z)X z>S4pL&)2;f!~}lYf1TiPpgvyrS#49O?Ay2gX7BddJiq*{qH)*M4((}MMeY{lZ7|Q= z`f#tU?1S{yQ`5Z8+_|-K=4NBC&w7!4Hu2y2UR?$>p8-9#T{2f(drH)*O^mS}{0CS! z_AEKP=gp$iQ~Glk8ygE7UrWncRln*A{%Di;aaqzAam({lHdpJ@U($UiE`>SABt-Ag z_NY)kvgX9uw5_38t5%tM_`+k2;n(MDTeBFLd3Itjn9t0u|6mP#B!__t8 z>LixQFdpZ**_@m!%VjJppu0|G%{F+%1$sCkMI1(|tVieNuio zPi)PUNi9!SJh<}p{-r4|?|eLIdn9k^ZH_(bo*746v!Ai{nQQ3GowHWWoNcrT=K!fgnz_|L~;Fc&PVw0Lv7H zzxVE%Ff35~R1eO%^%-$4wZ@08PMQ=jXR3_Uy!~803rx<{FIPWou_dgu??#ESQrb+( zPhOkN&xV`i&uU-V(U4pk z@so$GblOeE`<0xLe`Z{MWNhR!smNuL%7up>Obrbl)}Tb+eqfI@^H2M*X)^NpI~VYW u>rKCwp!V?tzr&$Kk@dMfpEBhwM8w@Z?AJI|7sPMkjLv?{HtE)iYkvS#>eZzH diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange.mp4 index 275513e09c3eaa4834c1af18d2e79b385ae5062d..6474be8e1359fedb1042fadf9e65de122a6adc99 100644 GIT binary patch literal 39832 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 L0JzHu$us;Pm3#Jf diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_bl_configchange_fragmented.mp4 index 1c3f411348119f4fe09c159e5359783e7d6adfc6..3fbbdb473a6a730af205fbccf2c96433b616f325 100644 GIT binary patch literal 40620 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 literal 130585 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 M^HqB^Yjub;0JQO+jsO4v delta 1719 zcmb_cX;4#F6ut?_E}%q3L=2!0)Sw|SjgE=t z;tEK31RRtPybazZKzW8J*iK?Z=r(wyL9iik8HXo?JA^ZYHw3Q3&olZ>ALN<0Gd4a@ z?+QVRj^Rc^juW043+pAC5DmkyG2%v;c?CnQR14>Cb=idNTghb5>1IP`4g?>qiH~Xn z21=k=Qj{?)iXph9MUj$Sx0YSgtv>nv83plVampL@mm|z)@^qEVs-Vlwtm)k(pTB3X ztcAnjcrQkru)npJnvPLo%rDniZ%99R+o^T3M~t=)tGq3DaD1#04@{tCjBU_yMA^v4 z$bG~96FG6FfG`EXNX$@en!f0(gZjj@Q>R6AMZz}Ie5{dVE$^{s?UjuB)a5GrWH-Sj zo}ybKmSp=@;E@-;cgDCzXDHSsO&xxa27pO|ZcR4N&~8!d8voT<54dCUM<_yK=09mz zBM;b!*7`@O?l2-R4tfu<7tlI=8k(9*tfhs}n~xu|9dC-$4LWnsZdp}Np@^iu-eUsy z)%4p-tFFblS(M5ns$QcO<1Ccs*|LP6I=?a^IH}#MWbM5AQk2Xq;74BgNdoC-DWq^@ z%S@B|hMlJje*8KZ(9k+S4_sH4ua>K0dR&xmVG(Q){{&;LT0XQ%=juJ7!dBVWT@n^I z4uT3i3Z%`=cbZ2e7o^fkJM68t89K13f_SROr73SjSNV87zt?tmN1%P-W|_1YVb97v z@X%oH92@f?^d&h-bjw5ITy=8ViT;Cx%hfxCsuvk~jXZxCd{K9z*`(~AKzTQ)eLT|H zFSDun_eY=7_nAE@=P6c>CZK~arT=e3k)htMe0k7|eRb`ATCaqxXe!l+TH+WEn-Pp` z!F05jqZ4E{5lbX@%srr^63P{Z6SZiDN29Bc!q?k!wY^L#mB3MW{?C&*@L>`%I?5c3 z4Ea_0-M$DWm=b}6oAJ95O(uz^NkCj(>jY%C^N+80W~OGB_{ZvH*v>Edp>mzeh4aqE z52@5|sGWSg5-#F`x0)e?OJ@^2Rni>+azRI1;48e@wFlzmiLFeQD`<3d-)rHeqII>J zqQ1{V=%ad11L6k__?vfxU-6SlkG(GuBk7u>$n&BJ)un)~_vR3HdD_rLWmj+Azj)4H zDRz+fX8s}N^99Y_uqzzO?1?bi%Tlz;zci4!6Z`w!!$+4M3e`6cztTgWpCBIT!n&+(Qtr=}Meyn0=ZLH)q-SGSzxL`5GDG1k1lXqt9xg4>G7>QpOv#(aLWHFUB*E z4uxi&yGz+$Z<3bRKxr+1ovO}}$>Vak9;a#PJc$)@hGx03A0diF2p#vFQdhl1O~r_2 z{yBD}g=tnANRicT8|X7jO1`}+sAuuB`|G1@&${Rpg^lZ?V@nmO%OxjPRI-cFmHz>v C5V1V~ diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_cicp1_fragmented.mp4 index df07587f004947b4b701f2b849723c8b68e2f75b..3f499972f7e4490742214325132f22a5eb4360a3 100644 GIT binary patch delta 389 zcmX@D`9XGqE_?agxQ9SI(Il4}%4A?*V4PSeGVy>bOmZ?0<9nvW)0_V?PGAJl{mexi zQVcD*`T1!;#R9o$87V*-1ekz0XR_Mj0E9|jh_|M;Xz{=LXfcZ}Jp{g@72b36JD4ufm5;*QU-)&aY_m2~Ow%rmlT^ssv zoxR>ktDMD#ooA=LS`hlsgQ>XzVvMzkjmYBl+SO7H4E102f&?R5*6_13bJna+>@hl7 jpq3D0RT@XR&yReLmRb%- z6r)IPetsHIu|RHGMhcJy0VW{+Gg+EPyZ%B+QE46n12Zd7L>y?M3`m-Rfdz;eogp-X zFB)wLY7-liLK_Ng7Gyu(UVPIgN z?8WR1^!((0=D5k4yr2EN6%-h*dFt3YJWisvh zzlD2GTi3+rOl>RL-?6;@>hR?7q@QclmfrA`JN4~fT3S;2nzNyyp}~?K=93+{WMzKq zmnbgUtK~SU?U4Dof467UU;OejSUD^-M9af}@*WO}$rHKE>H|ICHb3|h{dZo43*!jfJ7ID- z#;JZ^bivOf_WARl27d|^wY(N`;?$YdTC0`;O$&+g@B;;k`3_r$rv~!7Z!c>QVX^c7 z3o`4}mDg%FBp1xl-&*_gzVKOzIrWwSXQk76gtlfUG+qo^Z7q0oUA;oe(zN_pD`x`1 zrd2?Y<>3Vj$M9bHfrPr3C)Udz0NYRX(|LZ9Jd* zT<^z&o2xS_{xHNX^yPsEbLaj!BD zT#Vv)lj~k=Y%FZN+AIqg7zrL;lcP9Q>i;SPGEJ^lxXfF~^)vVIbAiA6>ZkgjbP0JL z8LX^rv}V<+nZT$BpmIzULStf$ZN0fQe2g;s5HJ z*$fL9E?I_L*#=vaxSVA5>X$6UxvrOI=l#@IuCNObn z>aBN+f6q9)>n`5 zt(zBqiSYs}pW}fbK|uq#_OkmD;(V!k?&Ul=-?P|{{;1~P$}nHbb9duWHlRmJ(?I2q zPohT<*e4cy9Uib>cblUV>A-wHAdPM6j4I_10mV}|>aR{U&RAvtj`{mmtDIMVX4id6 zoipvUe%?{335!qYpWE=Zhb45);fi_5{+*VSQf8`oOte&Xdg#H_(BNSUGP(W09%<&E z_Qeh_e%GFLkXsk4zvh7N;|Fq$Er&GYZc9G7WLKa!#hGV$#vktb-?GnpRA#oSZVg;f GuMPkk|DBZp diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_mhm1_lcbl_configchange.mp4 index b703f4bad1f0a056e1a6685d0b0d57ac0daf14f0..aa1874bc3bb644d3def7df76eb7bcf8f66854dff 100644 GIT binary patch literal 39845 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�W2OL#qR!JK^ct6OmFEtA3aoct zn#W;xF1^qGg}mQOo_Q)mX@I=|U<=>{-9sl9^gw-j8m)}&d$cl+^JryH1%OyFz(3h& zIgeK6flO@=H&}gt4^0yS+p)n#!GYkCz$7}=d>|AL2M{b&*_;1Bs4~58p~{fj&q9^q zPws($SY^B*q_4rsR6uaaAQiZgiAgL7gvItWTp2tKE;cd}h(T$~0|-2JEdMI}-btQc zVtH8#DS+nK{vD)e>`WVsnylv~<>)PAOi4aR`!eXninh-Jun6 zyX(ETrh~tYF%X7#x0tXPGt!NdsShRY0W0qzKyiVXYOok&{1b>k^fYfc1XwMiNu30M z>nCA(rTiz&r-8zLsw7gygdJ%_jcnS2E8g@)8Cby+YWv=%dkdw_I5V6 zMlto8eFbE_{9PfgEXb+k@6z5_=b1i88=7xMV!V*(hxaXsnG zU33^Hp1b)UZO4O-wBgAkQ z@je10b~#6=HVV2Bt&P;tD*LXoz zR^DIadmg|6j$H-J2opRQVIYtx;DB&1%#FWyX;S`C znN&EY1&$;1wSCoFdfeTcO+H?mUp~)c_DO=R7+yi4y;7e92Rtr3&uxBd`eagNi4fUr z@Rif{i1dw;Ssk~aK7M2$$y*b)t@*RMF88?1pj(1@5+B_$yOoV{#SH6<=9fRQL*0Uh?ROG!l>5oP9f_&x#zzMyP1IhI>5Qh&H!h_)q$|C|sB8jJ`pzwmla)-K z=&po{MkX`qExFh{wzmDE7qJSFa)$vxFj@LTx_a8#l_ZB-VxLO2!@Ra&>8+w7O?#~1 z!dZlm$D7!cC)Geh1eVN4GCd-DJS<~Q<-_+5=^;zafx-Dx-o4nsBOqNO6)^pIW0|lc zS8eSh4=x=ZGIC_;N%=EkIflN*aeY=PBN#Dc4JihJDa2}|Le|^uc1Z1f74p4qAG)JQ z+8rd07(jR?a8c)w4{@Qj_W798k4bCvOOFXG2) z>7;yD)Wcdfyi}FJaUAJ}C#EHv%yA?pv)N1!W}gtgOsg_iz{`1N=qEtCC$%Tw_Fn}BB*A8}rMO>0Q-6ZQcEKeD+E^d+tg{m^i*ED*%&Yl8n; zd5rWk*I793cYdP{%?8-_=Ux(NjS%#l6bP3ApvY-tFLbS~vzRx{D&QOEO=ZfCJhBBu zg}t|a5==`J%S1Co1ZM8pFnouN6F)!X$Rg2Xw3xKUr&yaDwS3Jyfu;*@tkx-xNf_z++2&1@_f?NWQqwA{z%od`O%PU zgGyCvHLs88sCA@yjAKOYMcAZqqwEQ7&qiIL?}l@C623adbUfBv5(ABYE{eH)CV|iG z?tI%OFCaT6f6@#E|5LfkM;j`CDVDs{98xlbO@~1G?D>Ps18ByN5E*q z*4jimb`rB2#=cS=8wr?JX~YR}HM!Hc4bC6Nk`e%Z0}fIF(|m8fzdI}|hLgC`EvINj znrN@qyS15e2_ZVhd{Te$<}xjN`{9NW8ADu|33DJJ+2{Afq3|S~D-k9LmR1vdgdW-g zg16jwrP8UC`iI`jv+ci#TdmR{y;=g|c|8+>m+Q>c#)G;iQdft896s-6dO&@fM7Lu5 z#Yk#s`TM=D**l$$;-zp#wzGRl^Wt-q5*O(|)dgAz&?34m+u#$XA;)Rhp>mf1^Kc*> z$`4rP>EJt43ksA5q}mG%49sBqdwYAw^Q=r-z1H)Z^Tc=n(J+Cv0726qp@(aE#)3b_ z_WIhU=MVoGkU+2cO9Qgw&wxB1WB zeQfau`v2ko|9brY$`ADa!~g&F`2XHd^#8;E|JC?^0gV2z^;EDq*&hM$j|D)&|2_Sm z8KD2yW0ExuN5o{zQDD#cR&y7ZI)pIYzW?+bult9K}6cgbq7TvBkm@goX@|fdby# z4*mS*1K+GrLCu6_2K#<=NqD(_aS1i$ncr7nXhrYxXvS)kn-Zzy8cHt0bD+=HqO8HpTW*Bv!C`~!7w6Ab})1q3|#|( zP`x3cq4zzcnJgz2*5ASzNCW?k0T#haA~Q-gh9brTfY;#I&JbIa{)YdhU4!v|ojp+n z&UIq)f*^!G>TGe*S5qQ}0p!r_#Yf786aMbhI=stzanztYwiU5o>JbdDackU(uo}LW zaRXD)GDH75W}Kk}7s9S(yn!L%Vg$=W^%4Hc;kUKkCUsn5Bg>tC6<-TW^x$dRu zs(E+5@4haQLj5gLl z=a&^~r$Fyt*?FGXU@l>v{u>bf69D#>(Zg9^lDUv(L57;httHh``j`;}3;ueQBari} z9YXZHx5NJH&sWpnRlv6iwmfEGdyV1UXu7x`4@k9YUsD$p_&MX%<>$>v-1U&2DI_|rb>FE79jJ!cP!;3d=Su5t1 zbWBAN77kWR?eMZ0gG-bzrnphOFmyz_my>l-m_pX4YX8(+v)OH{!9Eo}U2D%tU6GS4M1nvf#FTfyCL?GKkL-?ZuZe{+k9`_ygm zW7qLpM{I5`E1R)wzWvN-E5{F|x|e3&7YwNXw#ABZ?t-J+Mb8PoZ@=|!pOFHy#hJ5V z7WI8r9%aYhxR-mr-CniQ%%NsWpw)+ma~51afBNgCnpU4q>8S;|s~4~yZEaqaI4|Yw zd7kf?DL*pLt2J<*QQqZwOuUde_4}vJ)K{*b4W6x=Qn;l)Tvk#$mdCX8;69euH)ZFDz9x>m6p9P&dKP6meqo=HV^jQ{Fb?mw_^ zsK*B9{AWOcjQ^3LFl4d0#jdB!=_RWddO1y==Axu5IoXg`(*ZbX@#ysw-np07wQ6$t zMGACulrX)GdogR;?Aj0VXAPXiy*xH`e=D+KmEm|#F0kqy$S+b5b!S=@# zC*ITS{aiPGpN`Gbne>S7OMtCS&$Nh^lM0*i7WXLL+A*PQcNim=_XV*6fAbV}<>&v~ z#s4$^+^ixvvGsWe%l@VAEOTw7H_w0N-NJOsWM*3Zp|}52MK+ixQ5}-yh6+9HFY8e{TfGGT|Rp(V!tW7tb1?fgYX%&=I z5L7@?;{JPrKB$jRy#M!oLU-==Hg9J3^PBz6%y;MZ001C2b#$?_wiDn3z_2mLUbMEg zJrAy0S)VsE!E7HoDKLwf006E70C@NS48Xj9316&$o4;C@{N>1BTY>`swwL2sLrZYy z2}jG1Y2y8o=BL=ebhm_$Nqm*grz1ZdCi!XM;~bmO+Qi%tTtr%%e0^S}C;-lf(yIM< zAd8ua)!9#9b+A2W^Jy6~-(1J)ur{|b1=kS{)*F#+9>i?2v7O%J>}kw?Ou%H5_}p15 zB%tI1WN`g@#O@Jx@8v($arilSKmntrxj*vnJzv;SjETeib7$I*jl zXN)-j444BjQ_#j74yNVc3NC*N;C9$JxRMA?FX#{7R!(EgSP%7$N%OrCpO{$$Q>Mw zZNUs+0$9#)c7Sspu#9aj&zSN@gV_#F7_35h@;!{#MccpLwao~kToY^v*%1QJR7Z;ZmoMZ|8 zM)A$rEx-*b06u9YT_yJ5I1CtM#~lQoXO_QHJoI=FNft(+rzc5&KF{c?hU0Y{Nf`RW zp}Ujot*R1uMXLbgV=Z|?E_p`ndTcO#ao&mcqGH;tJD~zbL&Y~?#S+9S5@;~I7mc}C zK%^z=d|zgQ*&#sdShtKS&f+Qd+0{Mb-nULjs9AgDnw%f*7>=I?01q^H5*~-N=-CVC z-Snvu5@I{h{S|_02&60z0x(;gk-c4pTOK>L@_H^k(HiM>Jd4I_MPT6G8H4L@IytZe zyqgjfWENboh9kL0GVRpK)*cvzRv%-zYj*0aesNg;cyZX?zI)v>;`@4tEb!v=(5!Eo zw@WC^=)Q;9l1ch9GR_OaCEi6FqurXGpF4a<^jzCP41FJT4WTqVUT5l;Bld# z5tr(DEiKOU^z=0FGl8GqIz-u830(apq|SlnhVv=hK_Y?2+>?@TWEvJ=GwU%mPAa$J zP2pOVQ`7qCdsC?8$j{sFI>BGLFF2y?96b+PHj`{U2lsZbN(SX48c!J5u8L7h51&Np zkE@YWTZh>!-1N&EAJ5Vn@I$ds4nMz}))b;a6?0qN-tiU3{=$`z=*1{4+lGnh=Vs)@K*z5S#~jCLaj21n~# zQQ_@tT@~0Dret=$@6b1~*(U(3$GrS^Au}uNPXe9)YrQXw7al(J zzB#j)X5@8g`HI*M{w~5~(_g|D0JSt-!92qJe<8Tl$|lxVC){PykMT9O&hx%*z1(`~ z$OCnb3$Jz_zbH^ z4i7{5pd0&&4^1x~tB@6TmdD$qrQI)#sNcnetn9Y8kHeeCyXZP_-DNq%59f500K2rG z{DSavO~u+lZS{4kteR1q+f?UR<2n=A9ucn$aF*qp9jXh@@6h1Kr`VFC?=G4#pg?xU z*pPkyH}(ytCe^nS4|A*WpY#f)6M}0?EUK@Py~`zbYFBi-UR?YL>w{PML7T=0t4*?( z?zPa8Gsz~b(7oei9=6+)=0VhJI4gYkT1lvy`Qy-WT(`I3r=AMz8g71S&JpcRn8*M7 zL4Z^ev@dS}WZ(aVeg853*$A@l4{cwl{{5fSzkI5-|BUw48R+``-(0`{5c~c+{PS(( zL2m%|bvNlB(}0eR)9dH}kRLPnOB))zhOzOoiy4)~hw9H&H3i&+?TKAUbH`uoyCV83 zvAnVWgc)p2>IFlQ$tib}J5su)+XxYNj;;kPhHtkQq3Ei(JejjhmvU%8F;!r^X%0(# zQ7PM+mdyUNwLn-)HI8od?}r66&>lBy4Kzjrm$yk zRlGF0l0svh$3)9mh-41aWWEh@;LtpU`@fAiZyIW^zb$lw`*5H&prg zB{%x&cA&rzIUl?5_{G|Nymuea@!D-^e!05{>Szsa?J|(*6?`!lAKl1XNwo5$nZmqB zu?-Q3Lwq@1>E0#!*8RQY9eYSp`sa-Xt0uK_^7-W)h6&Hotaq6-*vbu1q8p9Na?^Xx zWK!*5eQE}jv4%H?Cv;>T4dOn*{`9O?>B%ATo$V@Ask+gxaWuAMne)pI-9gaWz`wG$ z`48!h+<`+7n4{eRon>$95gu%1tvC2=E?&xTUR z;GkROhog(qDXaSz?vTFX(G^NxhCipbrgSoLGOH^_+9(bX&`#_@83-Q0z4>N%4xR_w zOPbhswRQp6)<=0GM}c?9*Q((|9v_bGcO_j@Q>(B|$=PQk6B2K#K6q40#J-qRZL|Td z%FtC0ZO6XYrmZI*KTZ@=Z}Q-w*{&WoMXs0y;8vqPYwG%BMcyc_(G0FmDf)oA+{#Wf z-(yR*M*9yOqJNulkTKZt&W^SobnJv9L!I|Tft7jm0Z+}(Hx9P6mC`;d^S+;G)V^38 zC4I3t+fT;~=S{E^ikmv*5%eA%SEJ87f**^1!GR}#>4tU>b8k^htqxgbdm%-}dncs^ zUeoUODHi4O)ea&vLWZT;66x+P&dbfC(&EMYx-CL4bnzD*6*lMRJ^7i+=`U{)$bM|J z)l(=qZsz1I?lbfw#y8o4Nu&LHvEV0iuTSl$uI^NKQ=Fw~%AdHN|2WXcntdt9J9SOJ zUPo48G$PrpMTajmXjv=Jc&V=LWkJCG!gYQ{qTdwSYd+pRF;a;CWQc@{XCJ&)-7Cg5 zSY^z-u!jS94wG^0)S=>u6J@)nDBhRNJ$J-mYRPl2;WUn$c=Pi5*!;;BT&3N&1@&I4 zliWix%3d45l^bL(m&a0~*FnFqsbixWSv%h;rW2Krr~RRN=%`R=W#Y*TRIr9?BwU@< zWHtj?rY9xSKXWlP{fdk{rt?BwuW<8|i8gPZ)EV)ey?niJPtr0;`jTi|lGWMZXo0)hfk|K-Pf1Djc-8B&0wPztRd&t=%~kOUL@Z1@g)LqMeqM~dzB z^bY4Gyu^53{7T?X1dY+14ZUWzrG*2UI| zs;)-6R`VTG;=Ui zVS@!2ykkv~vXFZCoC84_3xV$;G4B@;C%Q z0pP!gfHeXtcHpppOVfXTSO6aL=V1Y?RvW_tP7F?i!vc74H--faslgLa$1b%DB8kH= zy?JsN5Qldcw(*t-t|U-HJ`stZkG4m-RwA~%cPtYF;qYytR~dC9sXu?=cNcgVssU{A z?!ijCGqg%Tbt1o)8Y>{rQ?>)v&xMW9!L78z0f6MEHvmSom1TP#Bl@s=$p!ldDrf>%2xH z{Ei|hZ&0LFBE0RH7Yi-n32FS{TKB!Sx?0(4gShz;vC}3ZBLyS){VMHf4nLpkW~7)w z5nz~xap(7u?Tj*@oNm!qH@whn<}|2j&m9u>_{iXM{*~9Vwi7lw2?dLXak#XsuF$5Z zXJRTANf<9{pxz?_`Cv_E0=Wim^!l3~A3B-c=GseOMfeDiIwM`MdMTrJN3``*g1qY` zN%_E$UQvUZ!j7&FR_Q;V_b2d*2?2c0jN-o(|MX*wRxtytqBB_J@%alSh`qI zuhP=e8gs;26+;Ugs5z3r ziOPZbbl#hcYhkcY<$Lu*k<&HhuBlzq>wD@m%uCPe7ddyo;sdU1A3WI~175S3AaSR` zqDk3)`!gEC@?~k8OFYyc3m5kPcYlT+#wVD~c6E8I39rT&pqGl##lPwhX!G^9Pbu^r z93PW7HEc9fXhDM$_o24<`N!;mMfPd0h&QEpo#8_wt_IHZJ67`dDM;xKFdRJY-le;) z##We&!W>CDp8NEkdcSO8y>xcD+RZqBT(DS!mx=x$5qUlo{_6zpXh&^m^7w8URj9!> zfiT!*g)_KuDnOv2D=Sv99zHT>8)}dc04`4lop^MS!Ch?qoyBFX)TX0=Kz{*B@Odls z%-t>uAITFuMonTVZ_Ec(gah})hkFntFzmBt&M7WU+~+HPS0Z1q8i_|so4#n;G@2Zw zV~Q~HPUZ1vA)mnF!1vponZ{A$@chg@T%vmb7OBj=1?<4^+@g*LX{>UWJkALS5_vDS zmferZI6%PS`6f^9Ia@@Ll6&!3w$wJnDnocWg3PCq(?7ezs*#H0j;!=#M&_;p7s;shuj?t)X11Aw^9u9$QacEO{qMcr9Z|*0%aozLC3x>CK_1rz_|$ za`{Zr7pWR#Nlc##Ia36GW*bc3U|@5_FYJ71|7r<)8!Dyb5L;n`L;6tK+-@A7yOqbD zzk6-1XQ=w-)x)5*)1g3mdeUac<)p9Q?dZ@gD)etH@-Qq(g5@9EV6hr=9qblH)Jb9n z7O^HDH8r>}gxN;s^#U_U6!8D*P`q*kxD`fIe1#Lh+yD^dyT*_8n}<>#oJN6P!LNGf z4bA{L(u+uN2ItvK$G08-EUdRT2LKwA5!15qQH+bTnroM|9M5T~r)Q}BdTxxktNF{F z4hz}_*`fg0B{{EBeG=!KqtCaGYH8_#1N=5~NsGqjNP+@H03rYpfC&5sfgiQ&d#vom z;J$dI>c(Ac7-@ks4?RtN2#P0-c(98AMb^SCTj@k3g-r>|p@&HVh;p*Y8>C+C4Y31n z)Y1!RIFYzFBXV#{pCm8{-nf)APIQG>mo029Q;gusOr0ZN_K<*aU29?l6_w-V$9Ua7 z3s;I|fe{(4Q&UgG!X8f&R}-s+;#0|B;5N&WoZdMI%9%bJn~fChk%+tP^#pEDRpEp2doq+VQ; zsZ%in))Tv$_qKf1F8EISHH27l?g-1@7L+zA=qSYs^re}aHG2~{03V{Hueop}rpqA-f zb;X-!&$WEqn0&hG za$5vZa0zEZ)iSQdYZ!cq=fmYWJ6D}4t2fKJ-7^~WkL#ritEAJ&UDtS2snQOQ&fo7( z@^>sYZtTb-lEO-t@)0PL7E%zuYW}#1OubWqg+;2>te`$LmiwT+lK@xFMdMp=C)0|3 zBn78i^4^i`X()1eh_~I1{(>@*DbekH9};J2N{$`UV7Zq^J>EBG$j7o0nkwwR5xm8YKy?Vw-kQ zOCDzL#Lhi^KYB9~>VrHea2I~nABx~p4z|@JB-S5+-?L({3?3$U<#s3aJMq!^BR%E- z^dbr%jF}Gd%ZpZbOs#f&Y*JXVnYREBRIqvn6d(fMA#g)G3KZD;xPmc-ej}Lkc%h$q zzFAs#E86AbI`A@_0=CDlcUO7j&;xAiYd{|MzU_}K`09XAPD65fQmx6%xG)Wu5x2`3 z0e8pWS+ILsYfe$xU*e*9Dp0;PT|H0cMdC#+kB6uw( z18uq=Oi8vEV$D%pv5X)ux8}LtcGv7p#QkJ}hV)nhw{@W`i-Qj(#**Dz%9uh#+|p83 zY;}f;IBP=+&l6{rt#@>t*;($CEOGt)y@RjTE7v-X!Ho#etlA;L5~toI-W#WK>}qYA z4(!u9Wy(h@XUoGv<(KTdVEIfhvT>0>OYN+xgM^rsWhB2ycGH&w>u%&fGx>Z6@mCir zH@pD#=Cy4sh^WEs%Zi*2VQFdEy!z@%KROJoO*cTid4cnO+HJvfWn1n^?n!3l=uaNQ zpW&l3!R7fX_Du)yz1u?m_GenO1A?re=nOz(HTP-E{+iUxH&Bmfg|d=nM3u;|!L z$sxO$s^B^SjWQG<0uTX+07T&LCGc&{Y{}#IV*Qra^14S|^6=3^CTaIkSle3s9Ud?y zVMnzCC8uB0n5~Z*E~qX8mU|-_G%5Jf$3)&KGVIPC9Z=HPmy^=#Crp&HC}ht+*UNA* zfr2tA2z5cxIpGO^3B9X=Ohw~sX23L%seouYwY0PA90QjvP3dq}eywl34psN9*GRjl zhbXI<{T;6NPf)k46TOD7&2~JRIWm%%E+H3XH|TD+rt*`jSHofZv`z8?=+1TC)qHg@{?X}vxO1Q+8R_cqaig1U zI-GreWw|aLPJ7Mo6Sbjevuf#kMn%c(kFXh95l&yzmeP{(i66j;_WeV@DE+D*VDMGV z3U>FTWj*a#-dkvxe!cHIm1t`%uiACw3B`*~!=6O_XBGCRm_?{1(F*{29( zx%wKFTMXJqoEH*OMpdx~Jvw z*6!N9Ew;IT{FT8O$+sgdZY-T4wx+zIK&+8@_cnro(d}-HozE+BG*ox__Q5R9?~9P{ z%jU|KlbhudEP&n6N^~jrCa7j$@3fyOc@dgvPPLfXa-$lpLl^Gl^3u_*%;U~NlLN`0`j==oIWtUJzTWuDdenv*_PHB;Q^AnLrt0Ry9QWwpuPWtF)#F!{YilBpkFY`O zSf7MS<5!V=>QjHG>il}Q4UZ>!0R?uL-v-9dJ^-`32KnhjRKkedDXN;y#K5CMn) zMBpbT@NLZuso9X44XN4xeR&Fs5h4H)fC&6S0$ShJ%#fOm5v?IL`)^irpyVL}5CMq5 z&q^Td+nO0tvmrJ6Cl-;QQ-=sZ1Rw%`JArR&W=PG3)NDx2{)3tmbQnYcA^;Ki?-Mxn zZOsg+*^rw3vr0(Nc|!ys0uX_J0)cO9W=PG3)a<`q%7HQf5r7Cl1b$)y-`32KnhmMh zkedD9m#3f@Ap#Hqh`=8tp!sdh45`_Wn*C2ubD%sx1Rw$sfuEEB^rR8!x!KTjvwvdE z3_5j)07T%QNZ{K(Go)riYBr>1|3S?OIt(HJ5r7E%_X+5HTQfsyHl$|%qzV#r+7JPV z07T%QKpq0f1pMFB3Ca?b2Z#Vf03rYp_zMVpTmM5(SoxWs zurl@?oe0_t5r7Cl1Rw%G7J+Z;e@Op_^nXbI|BLiDC>e+VL;xc2cM;J1w*H6oe@OrT z3xp>q35Wnh03rYp_&W(ig7yDFZvdYw7y*0=&<%i}`3AtqkEL%xX9E#{2tWiN0>4T? zNqap`ucHG%;`IXdUUx0Q#ns-HQPTA5tG+%DhW$IX?P@iyA74$TdUzS z6Io)*a-3YsjKD(3jQqVbjv{lxJ|5S*6o6KG84IeRqfRNQuf_D9^E=g@H1{Ku&f(73 z-z7Q38worSb4Z*&Tg)51O4Wt4GL{rS9NVC%=^nr*S(iW~!eH(#E^oMfusi&HtY^=( zK-mGZ^U>Fn!x>2t3~Ksm0>Yv<)l3r%Q8sZ0qGKZ3L6&xgvn zYD`0GH(oNP#Ra1&zQPI2FJesy@?GP{>cq$F^WXSU9k#)jhf*KpL4kYmTWfjM@Un{; z71P3Wqkj9)stIpQgmR=RNN@({aW%xOl6h^WBN8QveuRe(zYD!meup_FJ|%^7R|+Q(hlK)&Gh2pJIf-84;^MO6;^HwA`iMlw9kR`VpM}| z4?_sz-RuEBfF{A$T6&dp-`xC8`D@4PZI&`Jd3UiN!y=jy7Q{7OIVhBJ_>;XOas!T&6#LuF9BG_@nBBqHGH8*AzU222goV3otxh@Ken@L0 z{XPyiBNtEbK1m(DMpNH$_=8>DkF?Z=#+{^0jc{}^H$whg__{qJjHr`jC?9lVO+IRB z@Kx*M*PAZ?L4)W!tsI{n_>3O_^lSkN;3SOWuB1kAyKG}?N$S4v(1iOiKM$)ZCj7Bn zQ6mt5m3a4HrQI1?C7?Qy-%E`Zkmo7e0qf_&M(E&H+Tnmjm|CWH)fI2@1DgLb#UYz9 zEmlc*swvVMc1@wm^W2VF*?5;R}&0W*)LV>r+Dz!82xR8LxdO_*Fnpht`^JlFDZWAf>$%WV-v!6lptRm->* zuVL^do)4Gj>|AxGtlli=cF$ivx552Snh-NP6Avx7maVholGnCkrbS6$$Lk#r=iH@ zA>MX3`U}cLrbM^*eMp?8DLHmXgXLZx^?2W$B|n=QXYxmyTRyDPGeh~dtbeumRpXW> z{|aKqRe`F#x;Ca#zujuxEH|bd)RKqUJF#<5-;dsGOn+)2f2TlvYW99r@V3<>B-S5+ z?P4ni%iv*xS8jJwzY`ywKhk3kKrf;I!kFnGzr1L5$JA=a$0mg(n^6aNpn5u>01^0C z5P16S&3{Py2kW~V`Oi##yJKIuQI%0|IvQg^L=A3VR^)sLOH0e9E2!V-b7O7#B;rkf z$NOow1=E#nxhJ_NnU$kIxv$NBKkjBX{d4S_-spR~G5%{6)4e|-MqYQeMkJ>9J71`= z_a;RHq-Z1n6L5SJ6|=DD*!{%=>7l{@zbcYJ8zBM^0f@j4N8sD~|67S4g|)54-{Apc z5_VKOP;&Y;joJFB;ezTiV7WJ0L}ofDq$m(aT^$W%1GW(G_HnF@%eQ%gI$&M|P=(v%Ko<=6Vg>ri#ydX2P; zdWf=$+27%M{{(f*I?-$R+HA+8nIj{K=@N3$NTbL8w@3x58F%OS*;zC%w^vR&)1JDG zU#imBsTAbnOUlmOb%XA9YbrmfdNmxjPunCffbLx9UCmbq;~$;whdT#Kl98?sA2+($ zro-9iSC;G2;k4KMK2aNrHmjDtXH=Bj{swjqQ zKSuAq$(do&@_peuYU4)y=PvzC1w#^>s+$jU+@piP5(d806K_rA@ewv?9qW@&Y5Xd( zPx`>`$OoTx+wgdz7f@j5|7~FWOn#Fl*2b;`;%Yp!Bq`b%0B-5Ykv*6X$>n8> zzUXC{x|zJ?D)jK5zjGiilr}^FA^;KiO9^~i|3mser2qeLG8c405CMn)L;xc2B>`~o zKlJc_NdE_i4t$m}Fk|K*{r|7h-=K6L0uTX+z~4pS+xj2U{~`VVFO{I6#2^9?0f+!Z z;BO%CZT%1F|B(LwrAP#=K?EQI5CMq54@Usf|Do~!UyVM5^#8w0i-XdI2tWiN0)HWa zqu=)bA^jiH|NjOd3Q7_p01DtKYyhR1*HWMfCxYY zAOe3ifp6=7X#77|{X_cy7Lf>Aga|+cAOaA9AC3T||3mser2qdz#5gD$5CMn)MBpzZ zp!IG4AJYFJ{r|64p`i320uTX+07T#~CJ_E@{SWE?kpBO}>0HnWK?EQI5CMq5R|LMT z|Dpf?h5r8+dj9`ksKG%=K?EQI5P`pgz{zjxe@Op_^#8wDg@TfU2tWiN0uX_}ngI0t zA2BP-NPdxQ==nbYfGfC8F!q%`1g$~@AOa8ph`^6Y;G6zG%z@{M2V+j`yWXM?B0NcQ zEQA-1_=oKjO*++L2qQzF6PvwI)`&FWC#fd!|>mBrSU-Gg{nPzf|J&@y<@IFtRPM1wE`CPlap)ycXpm&?=VP2H{lApSs~Ob zILeROIU zD!0czhw}cT1$g_4e0wfait1dlw5gJxd+KoT#qCLTNwcRq`4XQP?50Wf%&$dN7kJ&LiA~6@nLzTYr+CID}GZRVs#l@6)KM zUNp`N2X2nxK4&`(|5K#j1d@+o+xwu8fkDi9W@w~lqy`KhKdLrka4@A_iR5-iwkZ$F*ViNQB@@1Hy)RQhBQxV{LkauKnrc@= z%weSFGa+6nju}tHN!-K$=YlalzOT=R z!$t^Sf0Mat%$FECM_BLAE| z8iE+a>>KDYZ~wL(-z|~>9;l`cC_n`MK?IhD)Zm_gcIa0R0ft@S@n;}ixFFD-9}#j~ zGvv~V)1_8;+MaYZ4Ry?9zLGF@`AKtsj^^%HION2I3L zq(qI1TLfo^xsxO1RLuu_E=@WI%y-6?9`<{gt^ICq*qY1soaf=XB{sJ4qsC-9-Ulo2 zXS%cef-bLShw~`~UTU8R44j)5u{xBGUEpcApk-vqE~uj6J^{14cjf2`yhTq|nB3*Q zhN<(E_|bXdNkYm4XI<2oWwng6{cn?v6WBXbaooNBR{i-C&atwkFuOAX*vvQ48I&wj z!r6Qpd2!i_&u>#xzgTIH!ZEO}I>c+EV;^JncIMpC%KNuXXy3m`;2B>RzoM%JpPxQf>UKlKzc)?fMyHXu zjcgMozsm7cvGF3ec;fxZN&OtMy+v1TEuByAbY?={>^?fU&ypg}BIlAz#qA^Ts|_kw zXC>d=JL~9ef2U-7)V>BYi@H>S4j(xCacGH zqDJU^Vr?n0M4lJ0EOo?job*#IE0k9d=_ z^Axr%DIAkKmG zm!Va;f^-f(Ni|}2l2dQ9UGUW*o3#)SNn`U2);%aUJu{<-ZS<*GgI)aad>=_RT-Yb* zs={tW{hvDZ|HgUozC@&xE*!jJZh2hZ1NaKj&CE;E<#_LR-*zgDP0rRFPQ{6Txc8iA zH(kVNn{>dU4!x>>M04eiv3tm4ktJ%6hbWf8{)0 zw_n-q(zkqE#S@p3!s-TAO7-KNfzARayj7pAU^Uus&?KBLaam0jt&0VY@VHXkV856U z&@r55&Nowmu-d~cR-jK77E{-tB9)Ysq<6A_U(58g)@d!%^bEfA^bCQ!&FNrB;s;kS zA%lIRW%+gCvRuWH{;SnnD7_z-KzJoANd!1TOe2LNj4&`CVM6eDB4uF+0FJkY;sd~* zlV={1I6{&a0FWj?6M&5XU{2G-D7;B7R@aU1{kEWcnTEl=zes&Rr>-KpYkdAkJ(VPUR$eiHnQN3Qi`3 zexvy2>=xjL766~LlCF|`a0!3`gCYR#An-i1{N0ca08apP;JkGJ5<8zjPfv0u5Qldc zw(*t;uJ&ZeCs)vxuMnHAngpaK0aZH$U_~6PAW2URq&^b@NYVL`Sr4Km*4Haer4$WW zpjSv&)~O`decjcYk6wGN;dmV|06SOPIo1(_>Ke!Ty!;t-e2r08sBv~E;(K$noqP3C zm0uvw-H`kMPB)J%HF>uWmbYJgMp-^I zMhCzcw1OmP^MO1hWkRH40L9Lvw0vd7I$69VYnXf$`coLxo788G7JgDnUd^-WpoB%U zU_(vU?RE%2SWK37^w=N0d)m5T@gnK_5OX#wbc~*sRscbo`?aS9^&74O{6rbrcP@>% zV`uITLZgQP-)9uI>Sz@NVJTCSWLo}c1e+!tF_=?&0zD?P*St!#O#lzw=SG!9fSy0If^pI%n4=?+^qvlA`f~4_+ZNt0Q_bM zpRq59&99V~#MJ>Dp=V5&?|)fOuzA4%wvV32GfQ&ZOs7wLa`YUaeixjW|gz}zRc6RR7~R! z$ZgLKz3jCo66fnG<}t2#_mrIWZp`x+0ckE8T3XuOT9}{?+DzC+HsDz<^D}dfyLoy% z7ltusL2SfU3v9Cl&vrlgK|ulf?JYGezOswd8G5hNU#F*s9wp|nzB=KdyX!b7p{2H^|+#{~PV z6_#H%h!S)+`0BLayc+IlVaaE?rag;r)w=eM`~IE%39-`&umxjSH6LB$t~*>=ku;~y zk`K~WU0yUX!AqWKenC{bf3|7B3R|S`e0XTqRndUhvf0bY)Z{unE%F4;698Qm0r51Y zKYg^fnuPhO%0qQoj`F^RS1Hnn>Z~64>I_lk%%1XAlX81o^t7Y$gR1Y{BL={Lr+Egp z7XwX{WCs6#6nGATjtc;=4I69m&?r1~CFqI{HXpI6hb2;%ycOI5H&w0WRm00JW>icI z(~V+?LV-uad0dUa8Gv8&uXBz%aMu@u_(Mo`0V2>bV#BbQw#ur&`Abd2n2lfH$e!&5%xkD43Ue|*TBBEBX!D(+d@NnS$EB>Tl)Kr9cyHMt~!`sE8mU#kBE~IjI-wx=0WE)D}fOT8c zcwCY~cm`G@bhtd3xSNbq#Q*No*J9#lwX%y^hr+1xdn;8IM0m_$McR}J?hLVKT!@a` zO{bJ)IO=_WY6u+)WUCvqUk^TB&7H2gclY?BtZKvbMUf*m^EG>ygM@0$`T8x&_&;3K z>#U-yz{zWw8^(sOEZ-3 z^e1q_Q7H5R2m_}nEu+!1H$m~*JiAbEHQZhguZk;BfFl=?!+!zX5@(E-Cqs6<}o73 z$qfXz&9fs>r}sITYTZ@KqW4@kX)Q)G_M9BON_8ix!djCw*M@AjR+oox zhSfohb^_)#a#&&J^BC4W=RaJGfGy|vMN&HPQ)aTBq4;ojD<;q@X9$^|R^0pKE9b-a zxjb$b8{=)sNQn<11-MYDPk&vbDMIh%9cqJT6dmjLWba1@Z#Wd)G;eMHe)%uD>J0bD8od*lA!FSe+HJ$!YGFK=0mcVV^77E4GoqgfNURA z!~4E7^s`L52Jf=Fs8^exH4gASJ02T6XkLGGowZ}OCjav6g~xH^C$^C=;Vtv{UO={{w8Q>6g9q1~Zzdgn+#c(EZ;Bd8K!4+OwD14(>a3?Hmh@NwJXS$; z2!r>yYp(L=o+9>EMu*xHYceZPZPyn{5;EN^k@cGwr@s!2`4@ax=p(`I5}lKS8cz3B zu9Mi1xu7%8KX@7^kZd=^dZ>X_u-5&drGPY!OVrqj*c=vC-j}z2s{)f zTsl-!vkmY1xVzidKVx*&h^g6wwV`d5X0I;h59_p- zzA!W7w0}^ieQ%4IA*cPrI&H2kW`>;h59_p(zc4f8w0}^iJ*fkm`_ylSoc3=z?Vgig zG+zJJE1Wv8wNGY;ocN!2;`-m~x&BMGgB|QG_J_Rt_q@C1zr>z@Hk;{N><_v9-*)>+ z|7uVF>zQZYVt>g0|9t+x_zU|({{Lt5|1(?c5BdL}&;LX1|Ib4x{*&<*0sr>)|H_u@ z-;x*d|391mU&q)VGxQf4oA$e7(|T_IdK>!RycN^_|8g+&x4i%a{CLu6`+4N<{g3a> zo(K(m+$}YDHsi7kN1x-f1B!8MrQRd_A{Cm~9b8{NSzG9iA*X(Q;DR+Jwy3{L$iw+_ z6IVU^x39cLKfN%-6OBa?6xc%#_~pn1y~=6ZKPr8%>Vpt%>2^Y__{`}( z9?9+d1s?JvIJXW{{1eNcN4N6A&{HsQSSg$xSPL#ghu8`PZ1`|a`2-F5%cLa_H= zIFQ@z#UOzcl0EFpf!wCZ75CUa#))-_$B8vNSWIs20+byeM8B=YK660mlyZpu(*vnu zBwBW3IQUbMSqdWPzC$UfT>&m_v9=2d&`ls{s9r_#qhh)>r&tBhAo^pd`t z{>qVytUHiKxie2|P-H^*_Nxmt4Pw5>bVMiTaV7W)XN6S?dtQx-(AtN2_~k#ydBb!u zX3h+U3d=bKYdMurao3(pbegXZ86xJa5-htBx7ysOxpzHhozTd4c=dd5DK0)-o;BLk z2uF9zaK}Hf=sDqw8DhMf1Q#i>hLTtZ2WYFAkj+f05hU5r6UGSr&RA~5FFyc+#&Z9m zvD{(MSnfYMmb+aC77yK9z+9gH(OB*P-ajkm{s+f*LG6E>KQLfC;78T}i?-Mw(tmzF z{RbQ_zvccP^n05>`Fopxz5a9S3;RR*&(Eg+cy6&jWXtsr>HpvT z!RQa${=c!s{*eFw`TYN$E%yIb`GF>)c*h3+W$>k><{_>pU?ku zY_UJ&|9`&mpRr%qAM*b{oBz+*Vt>g0|9t)*(*J*M{ilD+^$+PkKcD{NrvumB9HRk4 z@silSdKBwn+b|IMD81*9xfc0UEa}ai9a)z-2vv0PeJcSD-4@TQ2ZKz`b98af5>`b@ z&7V&e#ZhO{qj=DDm4Vvp;Y?4txa?W}^8Tn^?eLsk6(nhLR{L&^EU2nDV}+8apVV97 z#~s@*Dv66v;y0A>uvdq@x^KPZT<$5>hp|ov6zsZoaI+0&zG_N3QGX^$n>H?ZKq@#`(tI@vqZoRcc@J(oSYZZsR4 zJBT~$X^?sN8Yrl(%#VhQ5hq6=6*P(~PcKLLH^`AQ+aDkKpwTuh*Qd7P(kA6B=<49( zR_J~Lp~kLJK>aFOis{};d^9yt@}SDmnc$O*hs=Z4jkmW@HcxpTmYQ z2{bS~FAmKmSvz1fKggIp{eFpbnsIRBB~iKMRfPuEJW%K_U$AwoCA?|ULAH&@ex5(# z(;7ITEgg25buajrJG`by%n+3?w@TU_JKlE0sj(ox>^ar|gA9z7R{ywOQ8w`Fas2w$ zJ(veld!lq;i=Rr^b>3}P^?QdpdJ0;~cf=Z`QoYkR{7`oF0hj}Z>%@=nasnB5cutng zg`Orz?j|yGJz}>Fcb-VTtyH?Sx4lxEEUvT`OPSyP=%tI~gRD|xesE@$yE6~V-cy7Y zV+|=^SL1SnNi7wP(4NVjdeb~4oy{~OB7AWe>#WJ!S8AfJ*Vl2C$e+3k$`cG!QH@b|7RA!$HW#W)VQd%M66jA&+PY4&7bKEaQ#Us_se$3DH% zGxauJ=>n1f)wqLXeO~Iz+ldkd#i9lW082 zWlO`OcOrj(C+uy13`d1OU->D|`@_$`7RFlo>Oc|1SnKC@y>)@zDq9Ep23^+EGBQ6( z0bdr6txQhSu=peorZ(0$(E;*U7RJX9JGtqS)^Rzhmbo_UIxN7dg=S@L1UX61Sy*Zq z0qFn>ON*lpJ}GxH)-z@S(y(y0DOj+A<0^tAjP=y-fX~B$?wlv$b%Enh)1RWm!g7TO zfU!Vu$OkUWAP*48H6Ma@ffslbL<>|6LcjunpDd$+;26b`KvFKeAQ{j_S_Ndt(JN4a z=Scv+g|)=e(gOCTlK|u`G*2@?j0fcH&g5Z9;2zD#XUbr|Ir|J+V{2_2;5x+8{3wRq z3VZF@*1^iEfGKy>o5niddJ}d}Dljcz<%E{7aySqzkOs;TPM?5fsiS2Hl${0}OLN$8 z!65<#gutii_yTwah?9U%+?n|QC+!40Cj$5+0-t!G8?G2@sasZolWG4eMnzB5#RV8g z6cC7A4a5uru@hLY-4Ejs?67kWAM%n~=W9HZwhTt(1w(i5 zX3ihBi}N5C?}I2l$O@q{3Q@>6AOP>b%`)3jTtb}vDwJJgq9htz!hO7F~GvhbIc>%Ak6xTQk7y3cUiBSx7=!q_=i%X+eFGGQ46a)ttpaK0-`N?S%a|;(bTzO3b3nIXb1=8DE5r}<1n`sA{(1=$US3GAp1R}t^>mj$13~^0s(zsn&(}-)3^yc$a%O-ZHU; zt1()A)?vtO`xe?|e+Uw=I>HkP$DG!&-WF;L(@F%L7v6L$~|+;u?;AH zPOLPphQQ|qqI?SUgz|KRo@f@`=W+SNlvfb;U0zpJVcA=AHQm2+S8WRNWblhc8SWK% zA(N$=yOQv)194`DuC+hbd~-nw!`6NHzO+S1h)j|fb;8|FZZc}7!zW*bHd|XgqF1)k zG~C^Gp5DS`>p@M?`5u1gKv@|WkpugE@4>U9tY!Rc*6B{V9BWhi2FqN#XS>^jaw$6d zFJwv%w~6H|^HS$`94lXT^%Y$Xv|C7Qzv29jq?w-w4U5QaN=EQrIa|eKHIz1a9WQ8z z0&iW^X~%pgvuc2Wmdse;n8`d4cg| z@&7%({~hD|zlJ_*{2t$b>GA!|fB#$fFROUn{|@;|_xJk!|6aci-{fbD!*}jG{cBRI z;&m5J_-|(#R6hPL-+6LT_>%32(Og24nHE{khzv6;DdwWqd(OmtvT9FW9%@I$ zeLF6ai}=Zqd>xkH*30Pw|G7N6R?K@D+w7g)B@qqpJ|;6_tmyh*d!@IHTfbKLHKn;) zrRktzL6D8+eEu`evD&Sv8Bct2b*@{^W18z1@}t>kBCc(U;# z{~V&Q(sTM8*VxadSM~4UCiPd^#!}l@YCF$*yU{}GQBHUrL@x#)Ot-t^%DP~ zjz-y;4Mp#dbv*95aN)T4hh1GD$WbMK5RD<+j#ayoTNrHF7-B{r&nZJk?kx*d)Uk|l zU)~g)oZ`it!`R+?fCvf3$d1|OnRd(_|(<85@ksDX%#Q9zeK8PpU zDwDO>>-6|t#+h>G7=!Y@-VkYOE)9Rwg45gRWzKa3reA}{Si6Xf5g`Q%cat0z{Ap;Eik ze{F0%A*zX`>iph73%-7z$a|~+L^RKI(L6WOcCLQBE(VO(!y6jo)$_7%3fKfKCQ;3a z4tum39}A9LfHrBq%T4do%_6|19@GQ9qYiHgPwdK;3}jNK9WtV4_-RWWJ~ zQTmMVPXFVM@p$41`=1iDx-kH>*xNBduYsG{lrR$6+!jQ|&}Vs!I2Grnk$3lrH>dp< zTZI6j>*tgtIbP(|dORGr5x8Z4l0@;#PK0p%rR^ zc_~(4_W3ez?ds68`_~^=sjSRVZ5qght&gfR#rqX$2--=pm{Z@{%%OmUP^x+HBaNqL zO44rVG+U^C_eK3gGK|3o^GYE0$jrfx$ilQPTNFI~YT0`7Qp;5Tujxw>m@WDpL|+Fr z+u9(qzZ|XTWBTAO90$C&n`u(xuCB{e`;0~n$u4>)LRq1%Wkz)y9OYqXOcK>a5T(VF z4pXh1a@3Uk8Qg-62YUsjSgN@!+u<7%Mhiqm0>e6PvI78R;Bz+RAUEXxPOB;nn2 z-6Ge&hMRMRScG{9XrfLC!@0W%KZRA2*`T+Y>YO?%-9ki7?**^{rg@J~zA=)UuEA?s zBE!-z3#wBo8PC{XBQo^gH)MN|fe_Qa3%B)}Ng!4sE)ep(V#%JerTr7}A{$fJCoY4l zG@FF|>T=`O!}ol(a!fPi@dh}=gTon(()%*xP7@qaQ{z; z6+BQr{r8BKsS9v#$r)mW2N0+uY6P?$xP}NmCQfi_Cvnh83|xcV2B&@!hx}Bo{flzf zUzB^Dln4Lx900^Ude3S3>F)vjpFQn_NHR;K5#4dYC^~}LdA~#LY^P9r-wD*-ehRf$ zAyYkh+Fv!eO`-~ceZd=!8#`2?N}zyHT@VafLDL{AQy9p*{11S<9^XJ-YQJNUmvnp? z0C|~_jzQiD3AlI{8IiGZx_F52It=S2BTLn$g~71f1@Ry-6uRPgl-u8saseSjp*7cz zvy@#&*>PeC5C{rAfC~eGc%b`qE*DmS!ElCN+J*1m=TRz%ksJFkgCS{<<4IR0?CJ^! z>pqMpu_NGdKDQtg)jp* z3P9hO(2pQB&|x62xv#7Pop_f38VVNAi;H7WXwhJLJVZ1Ov0M!VqJTaWF}()u1Vf{D zxxp=rvdhWWMX;D5ye^<1d^Z%iyxeHtFv%uopnr;*4S1l?DNUsG=x3v47VR-KyvKud zSOpJ4Ublk}dzdjHY7zob<8|HtKn@IMQLii*PR50C3K%Ttt{O%qfb{SE+(bejcR~bu zuLlw1z`%dHHU^!*ElU>}^EGe6!U7p_Muh;=p%;e-y5o_@1Kkb~fuuMiRUTxO(P4Xg6)6`uxH%Czuv`l*o6LHi4mjqsqe^0RCh;7BCOUoZo3EM37+1#eKb&$lIz% zC)XJM1};xC^XG&2UoKD=7-CehSS*W}i({HqL3>-%3@z(6)eG1-0=~q&qr3LHhaO*6 z77?fh5P&L`UNRXJQPOH|aHaI&6=y=M!xWIqQ?mn40<{96)CnVd!xF5tX(R}=Y~#J` zJa1Wv(lgT2y@N2Zs*uU-K_DcQP1QOz4}#_uO^z!KKG$<`du6SFhf8?Ou3)I#!mMsA zE>>|uqXqG0^`l+ZZJ&7ZfX|S0dGf+C|AOzwbi5%s#ZF^4DoTQh`7~A7z`M&{+!T z!9^%E$r-vH2t5o2hX3(63(^==i(+=~ko~E6TTvepsD#LGfxDPmE&;R1v%NuylrfE9 z;0ozRxnWD~08w8c-WNw51RTPa$+1^OLQ?G1SQsPk{As@s+(?vPqot-2A-nD+CbaQb z(E-|#J59$s&NN5Wf7ey9&6D@}ds2fg<_}MmuUwydZ!1{?zH88<_)5HeDmA$O%Y2`d z*9`IB)Ixld(W9cmIv%=r!ehaPLKA~rhf;YBs^*+h*^wJu8e$AN+3htmAe$P5b!QMe zN|h#lB5I1Dk0_8!5Z-6yJ2y~ZsqC29r^NS6_o*9#>Qi*tv~Wk#hf&sQik_>K+M5oY zG9uW@Sc9*n7|yvju%{2)8^%jz3fXb-P`jvY&56a=Ba}djnfk(LE-EVS;H(gLMxOga zl2u2inccsRMZ!M2HW%|UYCbbJ2vGI{Q-*~TqybBuheA_cuww8cL3j>a0G12CxzC{{ zt3xBF##dWc$KkvUzcYWV5du|3T+y;en3x)s4tBo0)f1o)*=c+;w--CgC(`7ud9=Tv z?-DUrsp#v);7Rm6t!Gxt3H^Om2c_fZvzDlJ#Q0iD>v$D0x7WgZ?<_|jiVS4W@;`#y z(2mXgD{1VznDzoiD&W`i%V?Yh&AEFWd1?RffL@-3!I0TQQ#N>{Dr++Crf%Mo7*9;L zEBKWS@N>6%TXeBeG*y`Dhw}Ms&|M0`+pV?;oVj;7R8wDU2i%^(o2#(N;6owTLkf9| zPia@LEsB^%xDwwQwle4RnW0W;CLArdGFB=_v_VulJTLwUT)g}uZR}|Lqg2j zhCwt9qW#6qy*FKzUqIy(S04_mr(i`zNc_C{JElgb-)S&vAYperC}`>#E_I~PJv-!` zLuc}l!DOvr{{$^f*#H{mX6!lExAUmUt%SGn)R4m49>wyoXB9-gWbzUC5Rzl{0#~J}@0hyWH%euSy;C6YX418>oN%jeW-mMA zw%O~XPmzI>cLvOONiQgGwSd(|nP2pmqt6xCmn9=|nW$v(j%XxXjC`WrJ^%F0XHV&u zSD-E-rbO4Xbo!ITFk|+WsAKnZ&lkhp-JA3lYwNKUlz%tue}`!`!H!z{uk?PfR?5oC zNICuGe1wPAE?|DiIp}|urs#W7OOWtmP9(8WA4d4XmDY71YHVwVx>bLgxH``WB5sDs zHqo(ejdY}^ISqyRJ!u#B!|?a~XLmRCcj*W6NWk-Y7;QCTqdFg+jnfQG53?A7v_;4n zl>}bgi93H6E4>UFYwlNHI1irzsrwwe@RF#l0|`!+&UviT_Krcx^NR_@4L;pyq|XQ$-#v8@B};VtO2k_Gi7 zhsQ-UqsMMv^}4?FNN&w0VqA>due>ZwHm&;RscU-v6Z$+9BnP*sz}+#ruiU z&?0=vS^8!$fqc`%d3#y}IQ#x*PmpvBQ2$W*qZWMs5*J{uE@DVN(DJchgRFz z`}o2Xuz`o|V5D!~j88T)4~k;HLZY#~G!cm(%sS#xGU6lL`z{1`%+eNbi7WmS#QK%A zmb?U`wRQEi{14ih4=&l0`88d|XGkJ_zq@@->qT_mLBqmbkFJ~{l2@$s#5RtV6C!r! z#IH|Zr7u^!74{_MtmghF#r<&;Wr(Fze?9-q$5~LnIPbzARH_EjMMzsPas-`dd_&~U z5lcC^(Dt<~Dk=Asn1&?BPIk>jWx3b(ke~_;o@ah*pF;RZ@Ycg9^*-74+s2tn+xv{e z|dxF?r^=cw!I$~lm5a;7Q7 zJyrANPV$fe-vxE>mA^;h&kQM$3^8Ogsh$BJi9ak}n0K(UZ2<#?gAFJ{W=M*X8RT1o zF!_tS_yv}x)Yw2|=jA>xWTh7NJnEJy5@#M^&Gwt;Fw!C1zslxNSlLVERTW;6d&7Kv zLs+rf7;t1+^*Of6O=%FlYBV&dT!{@yHaY6mbeK2QMRNU@2 zVc>5h+M}W}YrOIZsX3JHu)&|o4FJK0z^2~eutYVk3laoocSHcK!%@aEU1vcrJ!;(k zdYbg5VMeuMX1n~Re9dWHxwYZa^xF#yWVbXH5|?k>{^}J|S#!{)9VN6KlTuMg)Wl!s zM+DNTo_N%qT88E;i}n&Z&n=zX&Y{L=A|#%-+}9>L`TmE_+tg(h96DIie~=RXynz0x zRM4*{*e@6^Qk0Ir)qC;EP3vxnPL2*AqfA}K-0pkVN4j=WIrZdgy^0+>z}g1qp6 zM!S`)V~HD^^NQ4@AZ3dW=-WOLB{DK9zUR8B8x-eNk8%BtpbGtT5h_DSo4m6O@^G#ehv0=hUu@nvV<{)s_&s5yscu)iEk zHS^M4Vg4A(x57|pfojr{8k0CMD{lUBZ3FUVTN;MCV(3ys+T0C=P(>1)evq$ie*ZmK;}tqza8c5DKC= z90!5;ghs~icfI}U@n+tyggh-w7HJqB>&c$8gmYly4qYf^2`>$Y48i-vlFtrO_YLMQ z8Qa{elirK6YF`sW5wUPdU&$MDkjq%m4_t5a^OpE3H0_`Ii2+3V=#tk2KYE4ftxdCJ z-rykft}EUQ4>C*WDnIC|et?^sT~WE*xnbs>j86pBYQG)(m4JEDIdRqk+A5t++E(Uz zwy`Zg4%czc<2TFw&2s;#ELZc_6!AODb$+aQHRba|V~E~_iZ}N=PGRNk>9fp znf+(?xJQ&GR598b6Oh$mq{ENXj?mLW71*_J_3zJQhO-X&fL%7W;Ae$~xrfJf-Y<0r zKhjzIS~Msiu_0V6;#k#B_jt{}@6CgEhyyLfEEXp1TOq!KzFHS^%M~W7O8JgU20I&5}1r6iMzv=mN9?o-pxv$BVo<`4lAvNLK-+m4}d!ad)p^Z=)lV z$DP$?X~q%-v~%VSLT~PqbAM8g=BR6A8NI`aV%{suWaP%F@zl7}?Fllc~JrnwXw?p|(_k+Dyy6zJSuX`(xA50Y@BVr0g_AAk1ztBJ- z8xlz{bK+~z&>0h$N-%c2hvK}KT@oShCJ!+ms zt3?|f+dt#ma;pNyvV;mk8+k+isI=fC(WK}VBcdgpVL>T;FQL&vtxHb+)*2ca96 zT8*zIA!s`afur?93tV`V7%4h%|0GuL3rityE;H`kP3ZlaT7-qOLfXooL& zxRYoNVvYsTT7f?(mZ2{DbcwKalGol@^sOp=a`n2X+q@O!9QIyN!Uc|zosTyYn*J8s zjs4Abf3w|xBHP84a{e{j1(4-)tdvYSB&tsZ6s|es(BIdD62`JcR9`{l^ zHBnxX{J0q(KiKdzl%~1hyy8#*G>&J?QCHRBycPI3x>~ITffkXIHf;{9av6 z|146>afK+UNQk~-P1fcU#sV9&tK6UQslO}}$p>i9w=E+EDH057UclU&-`^v$y3RTz zjCO3zFdgpRnYA7id~^FFS`{*XZ)vr#C*H)mklxGYVc)VvWglkk$Cgt`H2Zq+3)Ve|6)8HV)J02_i7ukl4{}A)WxJft>D>G;}{g1HX#A-Ag-%td@@6Gx34%lRs1@#kj(-rFI+{`M|Y63ZFCSbHt z^Cf|xGFbuYav#i=zK~k?EWektbZf(fj_`)iYbv?OIKLQ>GFbJ^P5c*?F4>;EYd)p`3n6_MmrSpLQli)?m_`sVTnN1 z40MYj+wD=LozG)!y;kl-nN=EZ*V?_jlD}q`z}E$Mu-$-RxQ8+U+@>lqe%AMyOz!t8 z@j9)~R*(m&tTLPXOv|*jrv7Y^|06q-Ibvt0dI9F%Dh&+hgLm-zP@X`OMX5X!!OlFE z^hVrBE$Q*?xOu-B^A0mCA+{{F>m?R3!?Y+{XHDI z;GulhzckW0-U%E0X34)<@;{L!(@1&#nk5@USm3u|XeQLTQ6NRUS){-nBzCXA(Ksu8 zw-2q06Qi3+>QI6{1vP21~!d*Uc+2=G&oOqRdD!v zs4WWN?YwowkDptUBA?Z5g3v!+c=1MLi|M*3V1+3SFxdZO-~d>*+BYe`*rkr-aBLai z$xscVBbE#{Wh44%Zz48O&P=zO&5#(ar}VyiHfuAg0?sH+rDkqy1|GbwWxF*{5^Qv? z=K|9WXN4iA(KzcH2|OZlaEyuT4!fkdAw;F4(K)115p;g+=MO$ug)->(zNdm~a&C;t zPN(n~TfN`@L=R?X)PJQg}YFAtH{+h^NpUbNKp zHtb}HzJ&&&zAJNx5}Km*O$Suy?Y>C*>~TRx2i?yBJK5I1*C=`)slZ=P!(TwuRat|t zoor&nea)_$USMM=-@{_&ih0bxF2}_^!jz)41iIgxpk#5;SAZrCBhGtYO?C!60?y8< z8a3YSiLJbKcUnA;s*7>g0NGIGvjlNzd?LDDhcAoa%)`$m@9~#gwcX#pNPVEZ&7o8u zpwnTcsyJzfUl+xDBSQ~!bU`zGzXq=fVfj@jap)G?)%c&y5P#&%QZQN{|4nrz5BBDQ zZmwgl?H_W#Efj4oCE;&s$RK@?bh9N$ot;i8dxLV3#8K^@mUKMtR+XN{&TIV%VoNxG zUZEmoBe5^hxxV*QTEm_cu)U}YSY(jXUtPW2b}qpCYtp1m*$b&)logV6(CF*Kpvef) z(sP9S5K&G_*V_5{B>svh&$Y(hbfXyjg}|Y&wW81%xHXSbL$jxmd{LfGX+OwK$L#6b zcNVNgf?b5dGK@&`hOav{)i;5i%`Y@!NNUBkXl=@|0Du`^DeSOhtP z96c&nua1i^HR?Ok zYYZ5fL5r7RMi<^%!>#wVNG)8hB5B^lG;WT*?m70Tsq2mZLs5@`2Ku~<=yg?v(plkq z+0QFVCE^LMBM7WpG)H>ccBd~~s~3`$AAfa$W#Q>I>vQWK@(ZmgxAV0j_K301*FTY8 zTUyn=NsCt?W~eAz|FGBexzlB^_pWHjo7apIZ#!?RPzviJ*sgP6)oy0%JOQk={(gvt zaXpTf8(3B8Sdn%DPj$YT&(KyKL-GeD32xLtnggJl$C~3a`{wrnTA2ld=WD-n=+c?H zOS5u3@O5F^Z0_ejE5vOR}U2yi3#*P z^vh}W837)>c&-T5REX>Rgf;p*BUZV*LQLN=@k>3Hg*n0Sjgi@EY{>Ukq`M6S<>E6N zP0n`*2Q=3&x**-z8B2Z67BHWX_rGobTxh9%YjtGWqI)1c!hl2lfm%=FTf~6v>~NM2 z=#=6GX*kh)-R5sW9PMI3K!ut;BbKi7|F*AL!ngwlSY9y?!zBKE9dLerKvwF=_3GKTICC^DP+YQTzEAA zNio<}ts*7?BVBXc^o~wSWw?&z1f%YujBK1yIP){7vZ8jETxET-WCfkW{&T$n;15XW zACyj#qNC@$CU}Z*1@cw7vGPe~8a{ZqeeKR&C-%>j*Pe@1FYe(dDMw)0J=*9B<5210 zOKg8Fi&^t{heqdZ@;OTZP*ktA%!AR!B(U#SEUOW|SIRY5dimBI@t21!I`{SlVppSPCpb0mWj}Z@ zTBt85x{n_|_!ye&_lWt`kSmfzBhQ+kkd?YT?c@5}97ncXeZ}gU{-}!SrT+l~2JgcTk;MHie>qaB2*3p}ssn{0Rer{3lyVh$K6Mm_zjneSsR zXF^+^<+q2VU_a=W8+dbp!T(}G2HM!*#Esml8<1-Kty_0o6AITSm#gbN$XX+}zHWq5 z#ovso(9_Flh^eE_Yv$yx)F|)`nZ&$TQ6}}YbP3A}rHPF7Gg9q3;0;3B$cq_(9O!%|| zs>Uxo}Ub(OE$VcYM@25uva z$}zGl*YLf?Mf(1St{{Fu0J;fh(py=(Gp%x-^o!w}8JYWy7V zDmJ2{IBzU?v+6y#jPhxh7kxV(K(Q3i^ZC0LWwh+{RwzWWk zVN#|(!gE!np5OuQ5RuJ#Tjy8yFN?BDrUK*P58H2glJ;jj=FVto)-Li3VWtZ(iQ{>Q z$G3rNHj!hiy~)IzbjVfwCL?Tnz9?$4uAb~gWgh{mPeB|a)%?d2j9Ut3CUIE4){9R( zB%W|Ht0X8AI5blIEzbguaYFaXp4F#b|#t9Yg8Lx>sGyWT^7mb>;*BJbKx^SxhoTR)Xz$IL_N4#n(d%5ibB6yAVN11gG=-Q zRBu+J2DrI%LB4ns~|{8_T2bYxU>a$kKaAe*MMlumW~i>xbh|9#yCChcd%O zIDkX{!=jPI7R5{DX*=&Ep58yN+j%1|ra$De<9<2j&^s;@gLqwAPwBFg}Kk6cqM9+f8xuuHxK+lcBLNv_(msWfHZv*ZeU@$ z+DwX#ED_#>DR&SLXzf{30>5W7QrN|&Z?kG87QS@GR%!95gahz;$SO0&2$%noX~ zDu$h>OyGQj*MR+VwaCHcSZ$mfzD682+b6ntFD~I2p$ipcOLIA5q7e+JU1;5Bq8HU$ z-u7decvLB8(Gq}lZX5t!{$q(7`JeMzR4K+^jJF9u4V=5DDFVlqKBvjcH2KGuVlFW> zKhirN>F&=&j7r{R+P~?^$s8P{*P-C>#9YkS#J{~~dk?PxE@QxOkRbBG9ZE~brQ4X+ z_X?+Mwk~QPnqhw71^dJ?+aSM6dpaGW8DJ@*`+76vW*Ek!4rY6w787$Re(dd?YOR*S zhTFELw=Gtp+4~2k9?8Wn+g0F5C)<$6o4gkL**HS`r%6l?V>PF_!zWK#+^R;;T* z_(ecIUhuog{V6}vL?8SNao%=tKiGzf6J`1bmAGLbk7{eGhL&ORv~3Ky^7{m;@Cll; zC%#p5KGe6kHI`6kmv~GN!;AS+oB!XaydTmB+`CdkpWGz>ra`8q;cuaqg zPVAi;cQdhP8|DR}2~ORkFQUvhOV@{}cYt#}&ZuGjKo{h)o-SHo@$BE`JKT3p@#_<8 zQszU3Ut-P8X&ynL_-waOl_1cV14-l}mK@2fgtC{$nf3KQ9YmHJs__ro+U4-{jcxZ% zb-O6dJkdKb>e$M5k3#=#4h77rSDS}^2mv78t@33OvUgooldIFIZviE1Al#o6r)s>_zsD8Gjr=Y1W z@@AUTcX=G4;1c5!XWg*Mgw$B#pb(XcYkBBHb|49>yPVmHKlW}sP4!6ync#?#tQwalKEe~9Zo{Mf)} z@Ugi`X;jN@=J)2boo&i#I`x~;@yR|G@m<|i8k!bm2yw@s@eb>RQ{ExPApj=)@D{gt zi9gGo1F7s9r((5k4nk6ptYAgqB^$aoE7u?D`hITl@%JL9=%WgGw5V@MjqjJ(!d}~n z`kMSzcF9F62R80HOMCrke!wZC`M$v2+w^6{2`%YjYx4nX9}INPdX%-C*7!6|mOvkT zddfM32e1${1sCp*y+bWR`$#;~GogzZSB?|HCriBB6Fi<$TQ{N~#}rLZ%|UA8tnf_a zNnvtlq#SD?Z8s(_eT?0+vT^_3<+d&C4~wsZ&v&!3UFO2Z+fJVw^`cK>>&U*@aW^e0 zGCThp6{A0`#AzJP`(KO;u(CW^r_|d1mum9pA)lDn<0!89&5441e{pLcFv(y5XUv(u=u+ zPC^N>vbyv91-EYcr!wBH?+|l&w;oaCLYg5}{gB-cgG|53Hs&T%v>Bfo+Y2p+TrMG< zoZU+{ih&CN<2d7H{xeIKmCaC>hX3>V0*)GIL4fZddz5S@d#UHOqz)HN?dL|zj8Z=c z937W8KNYj&qns$0cl?i8{Ft08L8fKZboql~vuTX;1-sMN5v0EwiXx9_6f9;(+-&)@ z4If&Wi}3XRg&G9h`|CFuD-#B8z6p$t-*D0uMl#(G40v%FidRl<(uLWTWLGX1 zZJUdA8$W#D-5&Ey1D4=Ke zHL$$>bmEU4pMSpK8^G%E6rp3n=oU@- zBwJ*X+SpM=xGa=_Y$}V+c0m8m*uBSMhLwK}Vsgj*Q}O7Rx{&=4GPRpb80>7La@C%1 zc_Jh@h(0D`aifI3C9u;s!{H1qUV$7` zVFQaFY{r`sdZZ&yEQ^MS*m2EE#!tV*j3(>K{>4!uf$4qGLp3k!#jct7fDgz>IZ-CuY#n_MS6d4H^Nzvhmt z@p(*4td(M~pT`&j)&#Q@T`r&zpLIB={4@z0V9XOZzsVgWHSvp;@Jx*b@s_wsWsRQq zbKw*mioE|r%a8>LFYy>ht*Y%-bUD_iiPZxMDr?fI?7l;@G>DS)nV3-}& zGPJ=P5hrb6uM@@$oMx2?MU6nr=egzkYLI)x9=}ELj?z7&bZv+%ytlj*%U2C18{sVe z8lGF8Zn%fi={tmm&pkJr+8>!bU&`EFsX=@;NBKzT!0?{_KMZ+u26$Zt5BLL3~X*RwGtS$sR*U z({rkHsorBh3u|d_=^3e?J->A0rRo<8v-=Y2HN?mi@C%>sm_ND*x1X3PODwh8Cpo;z zG9>Hp`7kc#>Y!zr+;Z1@J9Z*<3oao!asvrCe1+sxcxKh>&#B`md(U^xMC;VC?JgN~ z4T>0rg%zBJZ}dAo{fKyqTn0|%@QGjnk=a{{z6ic<4%USB3e-=Yw$&|d_Os^vKti#C z8{=D^7S;MHt8y3f^h$7yFQ*{AG{bcU=_dq9OyzTq&av(FTzp>X-(~zXyx(h{cEm$30pGj;ayrTO&qI2U9pYqA+RrIxG*>nTs)XqqlycJ;$j1W9Ub@P zA2>Qr>)X+BNNvYQ$Kj1{11g$vP7u<`;c*HexCD>_+|bxKCIoWT^62=oM{vUT1iNUxYVQzk!?rIxIR9(7lKYxj2N_IhTBP;w(C zvuQ0sz#iFBr$}M0}bGw?Wt}MU(rL|u6ek`}s3l!0}!&NIGlT;1& z_^Zj@x3OkbDyL`;EDBrQ?7lte|Ba4-(A_@>2?#MF-8!6jU+nC&_znV87dYb%b|xIp z7$R_*ojV)?tQFxTcDz9OVNgy9&tcQi!EHY@5~+O5iX^03GI`b!ck+S+tYWi8g%wvf z?Nvf4{o;ii(5P_kf+s?UV2=TUvrs&jfO7@x)H$T17r4?C!MYL%KX;%joGF0(qXh}` zk`jXM*m!Z5Vh(R^Z?3HmV`w#b@=CgSJ3<_L8b7s3QeR%*x;Nip|A)Pq-ReA^^rrzc4*bNjuR_@kkOW!TBNJGFDrDCQydMZ<`wlk#M=3S#6 zT+Y47Zpt@&Hm)#FfNa$N+HPY={8sU_hLc|p53+~o?J>)i+-XgR2kb`Bb-o;tkIon$ zYU!? z-VLLrAWcFAFzsn)8L%K%uJ0iC&+qNgv!-i_dDCOs24-P9MpQ`fg$$TOia=m;p=z;! zl{TwQ5-U%cT(>)W&S;@lyKzH0kn3a8`vJC}xO}U8mZAdUG*P`t$Rc_MR>=_F?NHD~ zuyECYeVwPS(O>RH{8%L(pX-RaSHp~(q|iT#Enff3uy~Czn%H1EgW=KiGlEyimBuod zxhB{bWqX{jXBcrycbvO)fCnzh8jYi7u-oq!J(rq za%JF5$H9`op=u`q{-p8fDaWSFa2#*FhU=SjupWMXMW{A}-*uQLPznG)M<=bJsjb(+ zx{9z#0etJUs|;C?ht`3UiXW^T`co4|Fb}Loj+q&-y(-eEHy6LmC0mma zws6BZ_EIPANR3%kjB2`Y={pOf!##rzR5U9x?jm0}vW8pD+Ph`z^}JutIc_*FaxX`U zxjt)bG{gW2e57n#`>0F0N~x%}l+#1F-!jxR!aAh%GH6`CLGqBgYqhq(bJhMsJf1T8 zWDMr#c)Cm8*(k=+Y4{#@KIHl5$naZmt*f0JBh&HHCU1cda*p(cc9i$eo@J*U^B={? zDG*p!G>`(Pg6)Bv_kq=hrM8B2U?*fXh;^kZDily3UlJz3QRPVH&^f&sQ;Zk*4cJcs zeCd1l{pqqSAB<;DF`b~k+em$_&Z*UqogdLQ@{{t*H<<}!! zfYV6<-weOWkI=p49DTmCXRV#|>FLeC7bGyN{?>wQ|Ggkj*VsR}Ade1;`U^h!dqIN0 z{?~rk#-7>H{?{j8D}WD9Y2zXB*!{!! z|CW)yok#nljO1_lKRPP^b1$1aGycEn|Gyvozj9{$f7AbeKl;D@!}$NE|Nn0EKMywk zF#k5#p6oXR_-h6b`>!YeGXmp(;$B7s33B0N1_11zfkrGirR3=jYsf{e4|%J~p#dLy z`NqvNJnztbv>du25>NBiV~UNlQYP5K?(@LGW^WuG;oJ>-;|mBk{cJ;8H>_r#xenv( z%|Qq4Czzw)@dE?;NI^bt?gV~$^PX#(Kd*XBHI-#2yg0Z_yQr9lvZ~uJabG<7lb8Pa z>8(Uw+7gm_PKtJ3snh>?0W;bqQAzdqY%x=9dtv3eXl&xk+bh~1nR#)z*jw5D-ha+J z#>{^BJ^{lBO3jA&gEc7!d{7#&@Lxsa=mm4|pL z2J>s&$%GylzpC;w3uIMv%6`WpannuJQFZTu12ry0BX?!6)&-jb#cY3*sPUG!oWjld z4J01cqSfnSMSWkUIf>1}oP7$)-z-u(#I5Tg62RNMhTlm=6`^8qBaxZAtB$p9lxWzC z74zPakcn!PdRDr?;>+ljw@4^(Lex<@8b5hI9)Z?>=gak2pL7x9=wHn690Eftp@qFN zFL5r}gcLQ7Lrtu?V;%7y($sS`ElHNX}P=FT*`u}t@NI7Qg& zI!Li{M^zK#`z7`DK`sl=Z+CEHq2I^36}iLg|7bInsW;ZYxASo*UL$<$P0blz z{Oc>=T8{e_DQLae^qhW~gLAiTo6F`Dw@-u-6!ce#ZE`Z}gNx-aBs!75)U`eTAT#}f z0J)?`>B0mw6qF;SNgEubRKt`me&yoKmVkKUvIFM>la1OdJAoW^`mDnS@7Q)79(Grg zR3fxy@)j_#>x3CJzKkmpld2%CB!dE;>1WS4hf%8DBTbwlgCVt!B5?S_iQ=SPRwk5H z`vjEr`v&_rr)4y`_9u$?ZqRZB)xenvMqc)1Y-{2^`jQA%=-U@8SZcMBEY=pUsadA zbY}d2)Bk@z`p={Q$A5y+fPGj{maF$GBBcG%sUExW)%Vkq+)RFiDuoyG|F%g{P=Z0g zhzO6TQ4{8$GtS(&#l7+}SKe3ugeR}I{aFSalQU60nxhi(XU8S(m}7CX@3%iW zbt{VP)-t(?x20O_p7p#Gw$`mbH!178|9&2YsY_jRP0~F6<`%aqd^tI#GwO?gh*iYu zIXeSpd5L97voRMkMV-1jF=*H4;!AE(ai6*^e(XAa>xj+GWo0v#&9|Q!ZRPl(RQJ-% z`+@=W-?msW&RuYHyXZN=_wBdd?K4tfwm5S(%%Z-}%A@S~8~1Y0x7({$nmN>L3AFm~ zaL$6u=TCpVRMYCyDLu6ycl83+qpi)W66d9yJkBJvDr+)v` znfl80v%#}L-MZBv-~s7typ#c zYs;-x@Y%C6_T=Zxi_7m%_c|2icsb~1a;B=FSTFC?L*=zCtJ1Rf#W@+B(DJ$(uN^yU zX7%1#t?9NZoHH5cTiP~l-7~4kj`3d|%l!xT4fWXIoc|0cknuk<6oxFEx7hWRIlW}{ zLNBMu(_EC4B_|v5YB~Vt7aqNy!aMiUx>ijtzes_OjuNJ~aW7^~n_c@s{;YwsxR=MK z?r%jl4D-N~HH>J9;3Q3HJy`SsG@6)k)I+GspeF?C&>6sSM za#CSa-r^p`TRSF{?G9t)^1dKe;BTJ7uKfIeyZC?RpPN+#C$>KCVA;Raon@|#^yc}m zyjz%VnaoV9KlJv0s>sG1(>GO8($=z#!LjBg^LSLt4A(FmnpbEUy{1mYpkL!?tIKDP zMeH|acYK<&DELp%vpB`pm64rJB`XRaO)L#?xm(_#xL-Bpox~lXl@oXBE(=|rKS}sp zT7m2mk3WgwXCp(!SEj`^sB}h)o$9U@`rGF&sT@=HTRMXMu4RHI+j09%`$L?4*XI73 zyrOw;Ur=1B3qyIaN@n3wSGzd}ZpEkHJ!f}vBA4kJ&a2CB$v02eQrKW|uI2jW8nkPA{_IB-2 zU|^7&*t1_U7C1xq=KwJBm#e6DA;f?DdT>+0nc@8w$CjTCC97Q^dnmYyoZ{9et><81 dU|*7~f6O1eGXSLX)iHLD008_=`%eG> literal 130598 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