diff --git a/libraries/container/src/main/java/androidx/media3/container/CreationTime.java b/libraries/container/src/main/java/androidx/media3/container/CreationTime.java new file mode 100644 index 00000000000..3eb2e3939a9 --- /dev/null +++ b/libraries/container/src/main/java/androidx/media3/container/CreationTime.java @@ -0,0 +1,91 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.container; + +import android.os.Parcel; +import android.os.Parcelable; +import androidx.annotation.Nullable; +import androidx.media3.common.Metadata; +import androidx.media3.common.util.UnstableApi; +import com.google.common.primitives.Longs; + +/** Stores creation time. */ +@UnstableApi +public final class CreationTime implements Metadata.Entry { + public final long timestampMs; + + /** + * Creates an instance. + * + * @param timestampMs The creation time UTC in milliseconds since the Unix epoch. + */ + public CreationTime(long timestampMs) { + this.timestampMs = timestampMs; + } + + private CreationTime(Parcel in) { + this.timestampMs = in.readLong(); + } + + @Override + public boolean equals(@Nullable Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof CreationTime)) { + return false; + } + + return timestampMs == ((CreationTime) obj).timestampMs; + } + + @Override + public int hashCode() { + return Longs.hashCode(timestampMs); + } + + @Override + public String toString() { + long unsetCreationTime = -2_082_844_800_000L; + return "Creation time: " + (timestampMs == unsetCreationTime ? "unset" : timestampMs); + } + + // Parcelable implementation. + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeLong(timestampMs); + } + + public static final Parcelable.Creator CREATOR = + new Parcelable.Creator() { + + @Override + public CreationTime createFromParcel(Parcel in) { + return new CreationTime(in); + } + + @Override + public CreationTime[] newArray(int size) { + return new CreationTime[size]; + } + }; +} diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/MetadataRetrieverTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/MetadataRetrieverTest.java index 9749d7e55e5..f5e4bde3b18 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/MetadataRetrieverTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/MetadataRetrieverTest.java @@ -26,6 +26,7 @@ import androidx.media3.common.C; import androidx.media3.common.MediaItem; import androidx.media3.common.MimeTypes; +import androidx.media3.container.CreationTime; import androidx.media3.container.MdtaMetadataEntry; import androidx.media3.exoplayer.source.TrackGroupArray; import androidx.media3.extractor.metadata.mp4.MotionPhotoMetadata; @@ -162,6 +163,7 @@ public void retrieveMetadata_sefSlowMotion_outputsExpectedMetadata() throws Exce new SlowMotionData.Segment( /* startTimeMs= */ 1255, /* endTimeMs= */ 1970, /* speedDivisor= */ 8)); SlowMotionData expectedSlowMotionData = new SlowMotionData(segments); + CreationTime expectedCreationTime = new CreationTime(/* timestampMs= */ 1604060090000L); MdtaMetadataEntry expectedMdtaEntry = new MdtaMetadataEntry( KEY_ANDROID_CAPTURE_FPS, @@ -176,14 +178,17 @@ public void retrieveMetadata_sefSlowMotion_outputsExpectedMetadata() throws Exce assertThat(trackGroups.length).isEqualTo(2); // Video and audio // Audio - assertThat(trackGroups.get(0).getFormat(0).metadata.length()).isEqualTo(2); + assertThat(trackGroups.get(0).getFormat(0).metadata.length()).isEqualTo(3); assertThat(trackGroups.get(0).getFormat(0).metadata.get(0)).isEqualTo(expectedSmtaEntry); assertThat(trackGroups.get(0).getFormat(0).metadata.get(1)).isEqualTo(expectedSlowMotionData); + assertThat(trackGroups.get(0).getFormat(0).metadata.get(2)).isEqualTo(expectedCreationTime); + // Video - assertThat(trackGroups.get(1).getFormat(0).metadata.length()).isEqualTo(3); + assertThat(trackGroups.get(1).getFormat(0).metadata.length()).isEqualTo(4); assertThat(trackGroups.get(1).getFormat(0).metadata.get(0)).isEqualTo(expectedMdtaEntry); assertThat(trackGroups.get(1).getFormat(0).metadata.get(1)).isEqualTo(expectedSmtaEntry); assertThat(trackGroups.get(1).getFormat(0).metadata.get(2)).isEqualTo(expectedSlowMotionData); + assertThat(trackGroups.get(1).getFormat(0).metadata.get(3)).isEqualTo(expectedCreationTime); } @Test 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 e950696b2bf..0fd3f76203c 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 @@ -33,6 +33,7 @@ import androidx.media3.common.util.Log; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.Util; +import androidx.media3.container.CreationTime; import androidx.media3.container.Mp4LocationData; import androidx.media3.extractor.AacUtil; import androidx.media3.extractor.Ac3Util; @@ -79,6 +80,19 @@ public UdtaInfo( } } + /** Stores data retrieved from the mvhd atom. */ + public static final class MvhdInfo { + /** The metadata. */ + public final Metadata metadata; + /** The movie timescale. */ + public final long timescale; + + public MvhdInfo(Metadata metadata, long timescale) { + this.metadata = metadata; + this.timescale = timescale; + } + } + private static final String TAG = "AtomParsers"; @SuppressWarnings("ConstantCaseForConstants") @@ -205,6 +219,35 @@ public static UdtaInfo parseUdta(Atom.LeafAtom udtaAtom) { return new UdtaInfo(metaMetadata, smtaMetadata, xyzMetadata); } + /** + * Parses a mvhd atom (defined in ISO/IEC 14496-12), returning the timescale for the movie. + * + * @param mvhd Contents of the mvhd atom to be parsed. + * @return An object containing the parsed data. + */ + public static MvhdInfo parseMvhd(ParsableByteArray mvhd) { + mvhd.setPosition(Atom.HEADER_SIZE); + int fullAtom = mvhd.readInt(); + int version = Atom.parseFullAtomVersion(fullAtom); + long creationTimestampSeconds; + if (version == 0) { + creationTimestampSeconds = mvhd.readUnsignedInt(); + mvhd.skipBytes(4); // modification_time + } else { + creationTimestampSeconds = mvhd.readLong(); + mvhd.skipBytes(8); // modification_time + } + + // Convert creation time from MP4 format to Unix epoch timestamp in Ms. + // Time delta between January 1, 1904 (MP4 format) and January 1, 1970 (Unix epoch). + // Includes leap year. + int timeDeltaSeconds = (66 * 365 + 17) * (24 * 60 * 60); + long unixTimestampMs = (creationTimestampSeconds - timeDeltaSeconds) * 1000; + + long timescale = mvhd.readUnsignedInt(); + return new MvhdInfo(new Metadata(new CreationTime(unixTimestampMs)), timescale); + } + /** * Parses a metadata meta atom if it contains metadata with handler 'mdta'. * @@ -318,7 +361,7 @@ private static Track parseTrak( if (duration == C.TIME_UNSET) { duration = tkhdData.duration; } - long movieTimescale = parseMvhd(mvhd.data); + long movieTimescale = parseMvhd(mvhd.data).timescale; long durationUs; if (duration == C.TIME_UNSET) { durationUs = C.TIME_UNSET; @@ -835,23 +878,10 @@ private static Metadata parseSmta(ParsableByteArray smta, int limit) { return null; } - /** - * Parses a mvhd atom (defined in ISO/IEC 14496-12), returning the timescale for the movie. - * - * @param mvhd Contents of the mvhd atom to be parsed. - * @return Timescale for the movie. - */ - private static long parseMvhd(ParsableByteArray mvhd) { - mvhd.setPosition(Atom.HEADER_SIZE); - int fullAtom = mvhd.readInt(); - int version = Atom.parseFullAtomVersion(fullAtom); - mvhd.skipBytes(version == 0 ? 8 : 16); - return mvhd.readUnsignedInt(); - } - /** * Parses a tkhd atom (defined in ISO/IEC 14496-12). * + * @param tkhd Contents of the tkhd atom to be parsed. * @return An object containing the parsed data. */ private static TkhdData parseTkhd(ParsableByteArray tkhd) { diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java index f3082ee1385..8179dd8f37c 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java @@ -15,6 +15,7 @@ */ package androidx.media3.extractor.mp4; +import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Util.castNonNull; import static androidx.media3.extractor.mp4.AtomParsers.parseTraks; import static androidx.media3.extractor.mp4.Sniffer.BRAND_HEIC; @@ -511,6 +512,9 @@ private void processMoovAtom(ContainerAtom moov) throws ParserException { mdtaMetadata = AtomParsers.parseMdtaFromMeta(meta); } + Metadata mvhdMetadata = + AtomParsers.parseMvhd(checkNotNull(moov.getLeafAtomOfType(Atom.TYPE_mvhd)).data).metadata; + boolean ignoreEditLists = (flags & FLAG_WORKAROUND_IGNORE_EDIT_LISTS) != 0; List trackSampleTables = parseTraks( @@ -562,7 +566,8 @@ private void processMoovAtom(ContainerAtom moov) throws ParserException { formatBuilder, smtaMetadata, slowMotionMetadataEntries.isEmpty() ? null : new Metadata(slowMotionMetadataEntries), - xyzMetadata); + xyzMetadata, + mvhdMetadata); mp4Track.trackOutput.format(formatBuilder.build()); if (track.type == C.TRACK_TYPE_VIDEO && firstVideoTrackIndex == C.INDEX_UNSET) { diff --git a/libraries/muxer/src/androidTest/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java b/libraries/muxer/src/androidTest/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java index 438be392514..2e934127dcc 100644 --- a/libraries/muxer/src/androidTest/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java +++ b/libraries/muxer/src/androidTest/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java @@ -81,6 +81,7 @@ public void createMp4File_fromInputFileSampleData_matchesExpected() throws IOExc try { mp4Muxer = new Mp4Muxer.Builder(outputStream).build(); + mp4Muxer.setModificationTime(/* timestampMs= */ 500_000_000L); feedInputDataToMuxer(mp4Muxer, inputFile); } finally { if (mp4Muxer != null) { @@ -97,6 +98,7 @@ public void createMp4File_fromInputFileSampleData_matchesExpected() throws IOExc @Test public void createMp4File_muxerNotClosed_createsPartiallyWrittenValidFile() throws IOException { Mp4Muxer mp4Muxer = new Mp4Muxer.Builder(outputStream).build(); + mp4Muxer.setModificationTime(/* timestampMs= */ 500_000_000L); feedInputDataToMuxer(mp4Muxer, H265_HDR10_MP4); // Muxer not closed. diff --git a/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java b/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java index 6c35ca9574c..1d9578511b3 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java @@ -1101,11 +1101,14 @@ private static ByteBuffer audioEsdsBox(Format format) { return BoxUtils.wrapIntoBox("esds", contents); } - /** Convert UNIX timestamps to the format used by MP4 files. */ + /** Convert Unix epoch timestamps to the format used by MP4 files. */ private static int toMp4Time(long unixTimeMs) { - // Jan 1, 1904, including leap years. - long delta = (66 * 365 + 17) * (24 * 60 * 60); - return (int) (unixTimeMs / 1000L + delta); + // Time delta between January 1, 1904 (MP4 format) and January 1, 1970 (Unix epoch). + // Includes leap year. + long timeDeltaSeconds = (66 * 365 + 17) * (24 * 60 * 60); + + // The returned value is a positive (when read as unsigned) integer. + return (int) (unixTimeMs / 1000L + timeDeltaSeconds); } /** Packs a three-letter language code into a short, packing 3x5 bits. */ diff --git a/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java b/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java index ffe3cd6a2cc..5c17af7fb2b 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java @@ -191,10 +191,10 @@ public void setCaptureFps(float captureFps) { /** * Sets the file modification time. * - * @param modificationDateUnixMs The modification time, in milliseconds since epoch. + * @param timestampMs The modification time UTC in milliseconds since the Unix epoch. */ - public void setModificationTime(long modificationDateUnixMs) { - metadataCollector.setModificationTime(modificationDateUnixMs); + public void setModificationTime(long timestampMs) { + metadataCollector.setModificationTime(timestampMs); } /** diff --git a/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java b/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java index d59b3fa069a..96b0ce42d38 100644 --- a/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java +++ b/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerEndToEndTest.java @@ -74,6 +74,7 @@ public void createMp4File_addTrackAndMetadataButNoSamples_createsEmptyFile() thr public void createMp4File_withSameTracksOffset_matchesExpected() throws IOException { Context context = ApplicationProvider.getApplicationContext(); Mp4Muxer mp4Muxer = new Mp4Muxer.Builder(outputFileStream).build(); + mp4Muxer.setModificationTime(/* timestampMs= */ 500_000_000L); Pair track1Sample1 = MuxerTestUtil.getFakeSampleAndSampleInfo(/* presentationTimeUs= */ 100L); @@ -115,6 +116,7 @@ public void createMp4File_withSameTracksOffset_matchesExpected() throws IOExcept public void createMp4File_withDifferentTracksOffset_matchesExpected() throws IOException { Context context = ApplicationProvider.getApplicationContext(); Mp4Muxer mp4Muxer = new Mp4Muxer.Builder(outputFileStream).build(); + mp4Muxer.setModificationTime(/* timestampMs= */ 500_000_000L); Pair track1Sample1 = MuxerTestUtil.getFakeSampleAndSampleInfo(/* presentationTimeUs= */ 0L); diff --git a/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerMetadataTest.java b/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerMetadataTest.java index 9ee00d20540..eb4213bb9eb 100644 --- a/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerMetadataTest.java +++ b/libraries/muxer/src/test/java/androidx/media3/muxer/Mp4MuxerMetadataTest.java @@ -65,7 +65,7 @@ public void writeMp4File_orientationNotSet_setsOrientationTo0() throws Exception Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); } finally { @@ -86,7 +86,7 @@ public void writeMp4File_setOrientationTo90_setsOrientationTo90() throws Excepti Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); @@ -109,7 +109,7 @@ public void writeMp4File_setOrientationTo180_setsOrientationTo180() throws Excep Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); @@ -132,7 +132,7 @@ public void writeMp4File_setOrientationTo270_setsOrientationTo270() throws Excep Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); @@ -155,7 +155,7 @@ public void writeMp4File_setLocation_setsSameLocation() throws Exception { Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); muxer.setLocation(33.0f, -120f); @@ -177,7 +177,7 @@ public void writeMp4File_locationNotSet_setsLocationToNull() throws Exception { Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); } finally { @@ -198,7 +198,7 @@ public void writeMp4File_setFrameRate_setsSameFrameRate() throws Exception { Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); muxer.setCaptureFps(120.0f); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); @@ -220,7 +220,7 @@ public void writeMp4File_addStringMetadata_matchesExpected() throws Exception { Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); muxer.addMetadata("SomeStringKey", "Some Random String"); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); @@ -244,7 +244,7 @@ public void writeMp4File_addFloatMetadata_matchesExpected() throws Exception { Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); muxer.addMetadata("SomeStringKey", 10.0f); TrackToken token = muxer.addTrack(/* sortKey= */ 0, format); muxer.writeSampleData(token, sampleAndSampleInfo.first, sampleAndSampleInfo.second); @@ -266,7 +266,7 @@ public void writeMp4File_addXmp_matchesExpected() throws Exception { Mp4Muxer muxer = new Mp4Muxer.Builder(outputFileStream).build(); try { - muxer.setModificationTime(5000000); + muxer.setModificationTime(/* timestampMs= */ 5_000_000L); Context context = ApplicationProvider.getApplicationContext(); byte[] xmpBytes = TestUtil.getByteArray(context, XMP_SAMPLE_DATA); ByteBuffer xmp = ByteBuffer.wrap(xmpBytes); diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump index d9d6e116b66..12735f30433 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.0.dump @@ -17,6 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 + metadata = entries=[Creation time: unset] initializationData: data = length 32, hash 1F3D6E87 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump index d9d6e116b66..12735f30433 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.1.dump @@ -17,6 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 + metadata = entries=[Creation time: unset] initializationData: data = length 32, hash 1F3D6E87 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump index d9d6e116b66..12735f30433 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.2.dump @@ -17,6 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 + metadata = entries=[Creation time: unset] initializationData: data = length 32, hash 1F3D6E87 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump index d9d6e116b66..12735f30433 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-jfif-segment-shortened.jpg.3.dump @@ -17,6 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 + metadata = entries=[Creation time: unset] initializationData: data = length 32, hash 1F3D6E87 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.0.dump index f96f6955b3c..6e35ee4cc15 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.0.dump @@ -17,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -153,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.1.dump index 50d31a0dbca..1bc1db21884 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.1.dump @@ -17,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -153,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.2.dump index 6e4e155f28d..ff8a2386a70 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.2.dump @@ -17,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -153,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.3.dump index ce51273d9bf..4d95d75fd87 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.3.dump @@ -17,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -153,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump index f96f6955b3c..6e35ee4cc15 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump @@ -17,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -153,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump index 30748b07610..7471e41852c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump @@ -22,6 +22,7 @@ track 0: colorRange = 2 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1635264810000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump index 30748b07610..7471e41852c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump @@ -22,6 +22,7 @@ track 0: colorRange = 2 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1635264810000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump index 30748b07610..7471e41852c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump @@ -22,6 +22,7 @@ track 0: colorRange = 2 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1635264810000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump index 30748b07610..7471e41852c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump @@ -22,6 +22,7 @@ track 0: colorRange = 2 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1635264810000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump index 30748b07610..7471e41852c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump @@ -22,6 +22,7 @@ track 0: colorRange = 2 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1635264810000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.0.dump index 97bfb758dc9..c439bdb87ce 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.0.dump @@ -18,6 +18,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1581574441000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.1.dump index 9e9b211ed9c..356d7c95733 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.1.dump @@ -18,6 +18,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1581574441000] sample 0: time = 96000 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.2.dump index 4e872b3fd50..f250480de4d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.2.dump @@ -18,6 +18,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1581574441000] sample 0: time = 192000 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.3.dump index 138696f8a7e..a74b64c379c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.3.dump @@ -18,6 +18,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1581574441000] sample 0: time = 256000 flags = 536870913 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.unknown_length.dump index 97bfb758dc9..c439bdb87ce 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac3.mp4.unknown_length.dump @@ -18,6 +18,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1581574441000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.0.dump index 8a8abf17a27..3f8b7c6b8da 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.0.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1578288075000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.1.dump index 8a8abf17a27..3f8b7c6b8da 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.1.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1578288075000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.2.dump index 8a8abf17a27..3f8b7c6b8da 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.2.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1578288075000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.3.dump index 8a8abf17a27..3f8b7c6b8da 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.3.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1578288075000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.unknown_length.dump index 8a8abf17a27..3f8b7c6b8da 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_ac4.mp4.unknown_length.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1578288075000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump index 6cd92c926c6..ff366ec9195 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump @@ -22,7 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 - metadata = entries=[mdta: key=com.android.capture.fps, value=240.0] + metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, Creation time: unset] initializationData: data = length 22, hash 4CF81805 data = length 9, hash FBAFBA1C diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump index 6cd92c926c6..ff366ec9195 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump @@ -22,7 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 - metadata = entries=[mdta: key=com.android.capture.fps, value=240.0] + metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, Creation time: unset] initializationData: data = length 22, hash 4CF81805 data = length 9, hash FBAFBA1C diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump index 6cd92c926c6..ff366ec9195 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump @@ -22,7 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 - metadata = entries=[mdta: key=com.android.capture.fps, value=240.0] + metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, Creation time: unset] initializationData: data = length 22, hash 4CF81805 data = length 9, hash FBAFBA1C diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump index 6cd92c926c6..ff366ec9195 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump @@ -22,7 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 - metadata = entries=[mdta: key=com.android.capture.fps, value=240.0] + metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, Creation time: unset] initializationData: data = length 22, hash 4CF81805 data = length 9, hash FBAFBA1C diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump index 6cd92c926c6..ff366ec9195 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump @@ -22,7 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 - metadata = entries=[mdta: key=com.android.capture.fps, value=240.0] + metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, Creation time: unset] initializationData: data = length 22, hash 4CF81805 data = length 9, hash FBAFBA1C diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump index d05b05b2cc0..34dcb5ec57e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.0.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1633006610000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump index 47ac8e4b972..397648bbf0c 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.1.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1633006610000] sample 0: time = 106666 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump index c52bcbffed3..2a9f5f6761d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.2.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1633006610000] sample 0: time = 213333 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump index 1d226c257ae..3cf9d0d5333 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.3.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1633006610000] sample 0: time = 320000 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump index d05b05b2cc0..34dcb5ec57e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_dthd.mp4.unknown_length.dump @@ -16,6 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1633006610000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.0.dump index a50ee9fecd9..eb699e0e7ee 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.0.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579241726000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.1.dump index 089c940439e..d733e752364 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.1.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579241726000] sample 0: time = 576000 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.2.dump index 5d481314d5d..2a888015309 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.2.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579241726000] sample 0: time = 1152000 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.3.dump index 02425188669..28e312db8b9 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.3.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579241726000] sample 0: time = 1696000 flags = 536870913 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.unknown_length.dump index a50ee9fecd9..eb699e0e7ee 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3.mp4.unknown_length.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579241726000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.0.dump index 45a51b50aea..f1e1856ba6e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.0.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579242140000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.1.dump index 4ad3e45f534..1bb6e995bac 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.1.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579242140000] sample 0: time = 672000 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.2.dump index 0c53717c22f..54eeda84b87 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.2.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579242140000] sample 0: time = 1344000 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.3.dump index c8cd33b57b3..305fca5e196 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.3.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579242140000] sample 0: time = 2016000 flags = 536870913 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.unknown_length.dump index 45a51b50aea..f1e1856ba6e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_eac3joc.mp4.unknown_length.dump @@ -17,6 +17,7 @@ track 0: channelCount = 6 sampleRate = 48000 language = und + metadata = entries=[Creation time: 1579242140000] sample 0: time = 0 flags = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump index 1bcbd8e43f3..215220346b3 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump @@ -17,6 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 + metadata = entries=[Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -152,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0]] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump index 2cb5ff29f51..adf4feda526 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump @@ -17,6 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 + metadata = entries=[Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -152,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0]] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump index bfe2e5b1b09..6e5607255c9 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump @@ -17,6 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 + metadata = entries=[Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -152,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0]] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump index f90a082a27a..6ae233362f7 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump @@ -17,6 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 + metadata = entries=[Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -152,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0]] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump index 1bcbd8e43f3..215220346b3 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump @@ -17,6 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 + metadata = entries=[Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -152,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0]] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: 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 d04d7348afd..e5949030cd7 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 d04d7348afd..e5949030cd7 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 025209e6914..b16d84f8c5f 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 dce3d37cbcd..35f4e7adc18 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 d04d7348afd..e5949030cd7 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 00bc4a9c3b0..da924d7046f 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 00bc4a9c3b0..da924d7046f 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 b89e7ad0b8d..bb0b563cff7 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 eb6265bc6ee..c158100bebb 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: 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 00bc4a9c3b0..da924d7046f 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 @@ -18,6 +18,7 @@ track 0: encoderDelay = 3072 encoderPadding = 255 language = und + metadata = entries=[Creation time: 1619054108000] initializationData: data = length 26, hash 4E58F6C7 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.0.dump index fb6ca4f7d21..e78e0264a80 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.0.dump @@ -16,7 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset] initializationData: data = length 19, hash 86852AE2 data = length 8, hash 72CBCBF5 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.1.dump index 86625de6e0c..010c3f75914 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.1.dump @@ -16,7 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset] initializationData: data = length 19, hash 86852AE2 data = length 8, hash 72CBCBF5 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.2.dump index f63cc0a5004..8ad198417c0 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.2.dump @@ -16,7 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset] initializationData: data = length 19, hash 86852AE2 data = length 8, hash 72CBCBF5 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.3.dump index ec53664fc57..7a15918402d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.3.dump @@ -16,7 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset] initializationData: data = length 19, hash 86852AE2 data = length 8, hash 72CBCBF5 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.unknown_length.dump index fb6ca4f7d21..e78e0264a80 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_opus.mp4.unknown_length.dump @@ -16,7 +16,7 @@ track 0: channelCount = 2 sampleRate = 48000 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset] initializationData: data = length 19, hash 86852AE2 data = length 8, hash 72CBCBF5 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump index 4696001142c..5efc2dd070d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump @@ -23,6 +23,7 @@ track 0: colorRange = 2 colorTransfer = 7 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 526, hash 7B3FC433 sample 0: @@ -74,6 +75,7 @@ track 1: sampleRate = 44100 encoderPadding = 2204 language = und + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 2, hash 5FF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump index c8c6fd609ab..301b4c4941a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump @@ -23,6 +23,7 @@ track 0: colorRange = 2 colorTransfer = 7 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 526, hash 7B3FC433 sample 0: @@ -74,6 +75,7 @@ track 1: sampleRate = 44100 encoderPadding = 2204 language = und + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 2, hash 5FF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump index 4b825cdc0a1..71e45ab2169 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump @@ -23,6 +23,7 @@ track 0: colorRange = 2 colorTransfer = 7 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 526, hash 7B3FC433 sample 0: @@ -74,6 +75,7 @@ track 1: sampleRate = 44100 encoderPadding = 2204 language = und + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 2, hash 5FF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump index 0e9f58b51cd..b02307a43b6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump @@ -23,6 +23,7 @@ track 0: colorRange = 2 colorTransfer = 7 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 526, hash 7B3FC433 sample 0: @@ -74,6 +75,7 @@ track 1: sampleRate = 44100 encoderPadding = 2204 language = und + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 2, hash 5FF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump index 4696001142c..5efc2dd070d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump @@ -23,6 +23,7 @@ track 0: colorRange = 2 colorTransfer = 7 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 526, hash 7B3FC433 sample 0: @@ -74,6 +75,7 @@ track 1: sampleRate = 44100 encoderPadding = 2204 language = und + metadata = entries=[Creation time: 1621959711000] initializationData: data = length 2, hash 5FF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump index 54ba703ee5e..b6e0b883f01 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump @@ -21,6 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 + metadata = entries=[Creation time: unset] sample 0: time = 0 flags = 1 @@ -274,7 +275,7 @@ track 1: channelCount = 2 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] initializationData: data = length 16, hash CAA21BBF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump index 4ae939fe5ab..f9e2cb0b87a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump @@ -21,6 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 + metadata = entries=[Creation time: unset] sample 0: time = 0 flags = 1 @@ -274,7 +275,7 @@ track 1: channelCount = 2 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] initializationData: data = length 16, hash CAA21BBF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump index ff45deced5f..8089552238a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump @@ -21,6 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 + metadata = entries=[Creation time: unset] sample 0: time = 0 flags = 1 @@ -274,7 +275,7 @@ track 1: channelCount = 2 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] initializationData: data = length 16, hash CAA21BBF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump index 4a58490278b..0f68eba7d02 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump @@ -21,6 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 + metadata = entries=[Creation time: unset] sample 0: time = 0 flags = 1 @@ -274,7 +275,7 @@ track 1: channelCount = 2 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] initializationData: data = length 16, hash CAA21BBF sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump index 54ba703ee5e..b6e0b883f01 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump @@ -21,6 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 + metadata = entries=[Creation time: unset] sample 0: time = 0 flags = 1 @@ -274,7 +275,7 @@ track 1: channelCount = 2 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] initializationData: data = length 16, hash CAA21BBF sample 0: diff --git a/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump index e22e0b240b2..9a91d6d55be 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump @@ -13,6 +13,7 @@ track 0: id = 1 sampleMimeType = application/meta maxInputSize = 161 + metadata = entries=[Creation time: 500000000] sample 0: time = 0 flags = 1 @@ -38,6 +39,7 @@ track 1: channelCount = 2 sampleRate = 48000 language = ``` + metadata = entries=[Creation time: 500000000] initializationData: data = length 2, hash 560 sample 0: @@ -68,6 +70,7 @@ track 2: colorRange = 1 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 500000000] initializationData: data = length 85, hash 6F3CAA16 sample 0: diff --git a/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump index 2b4e1e52fa3..412a211eb53 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump @@ -22,6 +22,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 500000000] initializationData: data = length 99, hash 99842E5A sample 0: @@ -545,6 +546,7 @@ track 1: channelCount = 2 sampleRate = 48000 language = ``` + metadata = entries=[Creation time: 500000000] initializationData: data = length 2, hash 560 sample 0: diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_0_orientation.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_0_orientation.mp4.dump index b29cb39d24c..17454e14390 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_0_orientation.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_0_orientation.mp4.dump @@ -21,6 +21,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 5000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_180_orientation.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_180_orientation.mp4.dump index 2813ca2d4bf..b8fb946b574 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_180_orientation.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_180_orientation.mp4.dump @@ -22,6 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 5000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_270_orientation.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_270_orientation.mp4.dump index 7cbc5e64ff6..db57dd49d1f 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_270_orientation.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_270_orientation.mp4.dump @@ -22,6 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 5000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_90_orientation.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_90_orientation.mp4.dump index a2ab529cb1b..c44b68fed27 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_90_orientation.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_90_orientation.mp4.dump @@ -22,6 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 5000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_different_tracks_offset.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_different_tracks_offset.mp4.dump index c64c30367ec..3e0c36c061c 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_different_tracks_offset.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_different_tracks_offset.mp4.dump @@ -22,6 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 500000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 @@ -49,6 +50,7 @@ track 1: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 500000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_frame_rate.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_frame_rate.mp4.dump index d0eb85b0273..1e4545cf1ba 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_frame_rate.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_frame_rate.mp4.dump @@ -21,7 +21,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 - metadata = entries=[mdta: key=com.android.capture.fps, value=120.0] + metadata = entries=[mdta: key=com.android.capture.fps, value=120.0, Creation time: 5000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_location.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_location.mp4.dump index c1e85bf553f..bcf4ce36ee9 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_location.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_location.mp4.dump @@ -21,7 +21,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 - metadata = entries=[xyz: latitude=33.0, longitude=-120.0] + metadata = entries=[xyz: latitude=33.0, longitude=-120.0, Creation time: 5000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_null_location.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_null_location.mp4.dump index b29cb39d24c..17454e14390 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_null_location.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_null_location.mp4.dump @@ -21,6 +21,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 5000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_same_tracks_offset.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_same_tracks_offset.mp4.dump index c64c30367ec..3e0c36c061c 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/mp4_with_same_tracks_offset.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/mp4_with_same_tracks_offset.mp4.dump @@ -22,6 +22,7 @@ track 0: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 500000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 @@ -49,6 +50,7 @@ track 1: colorRange = 1 colorTransfer = -1 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 500000000] initializationData: data = length 28, hash 410B510 data = length 9, hash FBADD682 diff --git a/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump index 507dfe9492b..d3be3ccd8ae 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump @@ -22,6 +22,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 500000000] initializationData: data = length 99, hash 99842E5A sample 0: @@ -413,6 +414,7 @@ track 1: channelCount = 2 sampleRate = 48000 language = ``` + metadata = entries=[Creation time: 500000000] initializationData: data = length 2, hash 560 sample 0: diff --git a/libraries/test_data/src/test/assets/muxerdumps/sample.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/sample.mp4.dump index ff74fc360d5..28a9db658ac 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/sample.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/sample.mp4.dump @@ -17,6 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 32.113037 + metadata = entries=[Creation time: 500000000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -152,6 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und + metadata = entries=[Creation time: 500000000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/muxerdumps/sample_av1.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/sample_av1.mp4.dump index 03ac4ff0179..ba29d7b3dcd 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/sample_av1.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/sample_av1.mp4.dump @@ -16,6 +16,7 @@ track 0: width = 1080 height = 720 frameRate = 31.004547 + metadata = entries=[Creation time: 500000000] sample 0: time = 0 flags = 1 @@ -149,6 +150,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und + metadata = entries=[Creation time: 500000000] initializationData: data = length 5, hash 2B7623A sample 0: diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.48000hz.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.48000hz.dump index 30e350bbe2d..127bc18565f 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.48000hz.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.48000hz.dump @@ -6,19 +6,19 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm channelCount = 1 sampleRate = 48000 pcmEncoding = 2 - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] -container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] sample: trackIndex = 1 dataHashCode = 1868041800 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated.dump index c7ab0c3180c..e3aa4712f85 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated.dump @@ -6,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] format 1: peakBitrate = 200000 id = 2 @@ -20,10 +20,10 @@ format 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 -container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] sample: trackIndex = 1 dataHashCode = 1205768497 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_with_high_pitch_and_no_video.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_with_high_pitch_and_no_video.dump index 5f690455930..9cbf3af748f 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_with_high_pitch_and_no_video.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_with_high_pitch_and_no_video.dump @@ -4,8 +4,8 @@ format 0: channelCount = 1 sampleRate = 44100 pcmEncoding = 2 - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] -container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] sample: trackIndex = 0 dataHashCode = 915609509 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.dump index 67c00c29c40..0b47b313925 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.dump @@ -6,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] format 1: peakBitrate = 200000 id = 2 @@ -20,10 +20,10 @@ format 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 -container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] sample: trackIndex = 1 dataHashCode = 1205768497 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.noaudio.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.noaudio.dump index 37873c12d12..ed91ad41a6b 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.noaudio.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.noaudio.dump @@ -6,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] sample: trackIndex = 0 dataHashCode = -770308242 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.novideo.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.novideo.dump index 974bcf39d46..dcc1cf83325 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.novideo.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.novideo.dump @@ -7,10 +7,10 @@ format 0: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 -container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] sample: trackIndex = 0 dataHashCode = 1205768497 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.rotated.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.rotated.dump index 611512f2321..b822176c6df 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.rotated.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.rotated.dump @@ -7,11 +7,11 @@ format 0: height = 720 frameRate = 29.970028 rotationDegrees = 90 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] format 1: peakBitrate = 200000 id = 2 @@ -21,10 +21,10 @@ format 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 -container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] sample: trackIndex = 1 dataHashCode = 1205768497 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio.dump index a6aca6316b4..c7e4370d80a 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio.dump @@ -6,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio_with_effects.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio_with_effects.dump index 22e1eef1533..c22bf0039f3 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio_with_effects.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silence_then_audio_with_effects.dump @@ -6,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silentaudio.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silentaudio.dump index 864b1947117..d959e9ad81d 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silentaudio.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.silentaudio.dump @@ -6,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5] +container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_capture_fps.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_capture_fps.dump index 3036cb0b2aa..075ee461b0a 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_capture_fps.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_capture_fps.dump @@ -17,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 32.113037 - metadata = entries=[mdta: key=com.android.capture.fps, value=60.0, xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[mdta: key=com.android.capture.fps, value=60.0, xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -153,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[xyz: latitude=40.68, longitude=-74.5] + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_creation_time.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_creation_time.dump new file mode 100644 index 00000000000..4c8b08cafa6 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_creation_time.dump @@ -0,0 +1,339 @@ +seekMap: + isSeekable = true + duration = 1065600 + getPosition(0) = [[timeUs=0, position=44]] + getPosition(1) = [[timeUs=0, position=44]] + getPosition(532800) = [[timeUs=0, position=44]] + getPosition(1065600) = [[timeUs=0, position=44]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + width = 1080 + height = 720 + frameRate = 32.113037 + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 2000000000000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66722 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33355 + flags = 0 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133455 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 0 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166822 + flags = 0 + data = length 523, hash 3020DF50 + sample 7: + time = 333655 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266922 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233555 + flags = 0 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 0 + data = length 421, hash 742E69C1 + sample 11: + time = 433755 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367022 + flags = 0 + data = length 620, hash 3990AA39 + sample 14: + time = 567222 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467122 + flags = 0 + data = length 874, hash 69587FB4 + sample 17: + time = 533855 + flags = 0 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633955 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 0 + data = length 790, hash 99413A99 + sample 21: + time = 667322 + flags = 0 + data = length 610, hash 5E129290 + sample 22: + time = 834155 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767422 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734055 + flags = 0 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 0 + data = length 505, hash 1DB4894E + sample 26: + time = 967622 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867522 + flags = 0 + data = length 530, hash C98BC6A8 + sample 29: + time = 934255 + flags = 536870912 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 9529 + sample count = 45 + format 0: + peakBitrate = 200000 + id = 2 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 2000000000000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 0 + flags = 1 + data = length 23, hash 47DE9131 + sample 1: + time = 67208 + flags = 1 + data = length 6, hash 31EC5206 + sample 2: + time = 90437 + flags = 1 + data = length 148, hash 894A176B + sample 3: + time = 113645 + flags = 1 + data = length 189, hash CEF235A1 + sample 4: + time = 136875 + flags = 1 + data = length 205, hash BBF5F7B0 + sample 5: + time = 160083 + flags = 1 + data = length 210, hash F278B193 + sample 6: + time = 183312 + flags = 1 + data = length 210, hash 82DA1589 + sample 7: + time = 206520 + flags = 1 + data = length 207, hash 5BE231DF + sample 8: + time = 229750 + flags = 1 + data = length 225, hash 18819EE1 + sample 9: + time = 252958 + flags = 1 + data = length 215, hash CA7FA67B + sample 10: + time = 276187 + flags = 1 + data = length 211, hash 581A1C18 + sample 11: + time = 299416 + flags = 1 + data = length 216, hash ADB88187 + sample 12: + time = 322625 + flags = 1 + data = length 229, hash 2E8BA4DC + sample 13: + time = 345854 + flags = 1 + data = length 232, hash 22F0C510 + sample 14: + time = 369062 + flags = 1 + data = length 235, hash 867AD0DC + sample 15: + time = 392291 + flags = 1 + data = length 231, hash 84E823A8 + sample 16: + time = 415500 + flags = 1 + data = length 226, hash 1BEF3A95 + sample 17: + time = 438729 + flags = 1 + data = length 216, hash EAA345AE + sample 18: + time = 461958 + flags = 1 + data = length 229, hash 6957411F + sample 19: + time = 485166 + flags = 1 + data = length 219, hash 41275022 + sample 20: + time = 508395 + flags = 1 + data = length 241, hash 6495DF96 + sample 21: + time = 531604 + flags = 1 + data = length 228, hash 63D95906 + sample 22: + time = 554833 + flags = 1 + data = length 238, hash 34F676F9 + sample 23: + time = 578041 + flags = 1 + data = length 234, hash E5CBC045 + sample 24: + time = 601270 + flags = 1 + data = length 231, hash 5FC43661 + sample 25: + time = 624479 + flags = 1 + data = length 217, hash 682708ED + sample 26: + time = 647708 + flags = 1 + data = length 239, hash D43780FC + sample 27: + time = 670937 + flags = 1 + data = length 243, hash C5E17980 + sample 28: + time = 694145 + flags = 1 + data = length 231, hash AC5837BA + sample 29: + time = 717375 + flags = 1 + data = length 230, hash 169EE895 + sample 30: + time = 740583 + flags = 1 + data = length 238, hash C48FF3F1 + sample 31: + time = 763812 + flags = 1 + data = length 225, hash 531E4599 + sample 32: + time = 787020 + flags = 1 + data = length 232, hash CB3C6B8D + sample 33: + time = 810250 + flags = 1 + data = length 243, hash F8C94C7 + sample 34: + time = 833458 + flags = 1 + data = length 232, hash A646A7D0 + sample 35: + time = 856687 + flags = 1 + data = length 237, hash E8B787A5 + sample 36: + time = 879916 + flags = 1 + data = length 228, hash 3FA7A29F + sample 37: + time = 903125 + flags = 1 + data = length 235, hash B9B33B0A + sample 38: + time = 926354 + flags = 1 + data = length 264, hash 71A4869E + sample 39: + time = 949562 + flags = 1 + data = length 257, hash D049B54C + sample 40: + time = 972791 + flags = 1 + data = length 227, hash 66757231 + sample 41: + time = 996000 + flags = 1 + data = length 227, hash BD374F1B + sample 42: + time = 1019229 + flags = 1 + data = length 235, hash 999477F6 + sample 43: + time = 1042437 + flags = 1 + data = length 229, hash FFF98DF0 + sample 44: + time = 1065666 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_location_metadata.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_location_metadata.dump index 3b8734d4055..d03c252875e 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_location_metadata.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.with_location_metadata.dump @@ -17,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 32.113037 - metadata = entries=[xyz: latitude=45.0, longitude=-90.0] + metadata = entries=[xyz: latitude=45.0, longitude=-90.0, Creation time: 1464714095000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -153,7 +153,7 @@ track 1: channelCount = 1 sampleRate = 44100 language = und - metadata = entries=[xyz: latitude=45.0, longitude=-90.0] + metadata = entries=[xyz: latitude=45.0, longitude=-90.0, Creation time: 1464714095000] initializationData: data = length 2, hash 5F7 sample 0: diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.dump index af6b33afc3f..78a2e7dd5e8 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.dump @@ -11,9 +11,11 @@ format 0: colorRange = 2 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1635264810000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B +container metadata = entries=[Creation time: 1635264810000] sample: trackIndex = 0 dataHashCode = -770308242 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.silentaudio.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.silentaudio.dump index 6dfa0e6720b..706314db3bc 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.silentaudio.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4.silentaudio.dump @@ -11,9 +11,11 @@ format 0: colorRange = 2 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: 1635264810000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B +container metadata = entries=[Creation time: 1635264810000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_ac3.mp4.fallback.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_ac3.mp4.fallback.dump index ca5a7656c8d..5b06c4a83d2 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_ac3.mp4.fallback.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_ac3.mp4.fallback.dump @@ -4,6 +4,8 @@ format 0: channelCount = 6 sampleRate = 48000 pcmEncoding = 2 + metadata = entries=[Creation time: 1581574441000] +container metadata = entries=[Creation time: 1581574441000] sample: trackIndex = 0 dataHashCode = 1896404418 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_sef_slow_motion.mp4.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_sef_slow_motion.mp4.dump index d69928dec1b..e5e01d6bc7a 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_sef_slow_motion.mp4.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_sef_slow_motion.mp4.dump @@ -6,19 +6,19 @@ format 0: width = 320 height = 240 frameRate = 29.523811 - metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8]] + metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], Creation time: 1604060090000] initializationData: data = length 33, hash D3FB879D data = length 10, hash 7A0D0F2B -container metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8]] +container metadata = entries=[mdta: key=com.android.capture.fps, value=240.0, smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], Creation time: 1604060090000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm channelCount = 2 sampleRate = 12000 pcmEncoding = 2 - metadata = entries=[smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8]] -container metadata = entries=[smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8]] + metadata = entries=[smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], Creation time: 1604060090000] +container metadata = entries=[smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], Creation time: 1604060090000] sample: trackIndex = 1 dataHashCode = -212376212 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped.dump index 1b2dc3c39c2..492aad90126 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped.dump @@ -11,9 +11,11 @@ format 0: colorRange = 1 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: unset] initializationData: data = length 31, hash 4B108214 data = length 9, hash FBA158BB +container metadata = entries=[Creation time: unset] format 1: averageBitrate = 192181 peakBitrate = 192181 @@ -24,10 +26,10 @@ format 1: channelCount = 2 sampleRate = 48000 language = en - metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] initializationData: data = length 2, hash 560 -container metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] +container metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] sample: trackIndex = 1 dataHashCode = 620415738 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_and_concatenated.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_and_concatenated.dump index f117e46ff18..eaa6aac659d 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_and_concatenated.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_and_concatenated.dump @@ -11,9 +11,11 @@ format 0: colorRange = 1 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 + metadata = entries=[Creation time: unset] initializationData: data = length 31, hash 4B108214 data = length 9, hash FBA158BB +container metadata = entries=[Creation time: unset] format 1: averageBitrate = 192181 peakBitrate = 192181 @@ -24,10 +26,10 @@ format 1: channelCount = 2 sampleRate = 48000 language = en - metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] initializationData: data = length 2, hash 560 -container metadata = entries=[TSSE: description=null: values=[Lavf58.76.100]] +container metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset] sample: trackIndex = 1 dataHashCode = -119592194 diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java index fc7a94123ff..25e6aaea1df 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java @@ -24,6 +24,7 @@ import androidx.media3.common.Metadata; import androidx.media3.common.MimeTypes; import androidx.media3.common.util.UnstableApi; +import androidx.media3.container.CreationTime; import androidx.media3.container.MdtaMetadataEntry; import androidx.media3.container.Mp4LocationData; import androidx.media3.container.XmpData; @@ -183,6 +184,7 @@ public void addMetadata(Metadata metadata) { // LINT.IfChange(added_metadata) if (entry instanceof Mp4LocationData || entry instanceof XmpData + || entry instanceof CreationTime || (entry instanceof MdtaMetadataEntry && ((MdtaMetadataEntry) entry) .key.equals(MdtaMetadataEntry.KEY_ANDROID_CAPTURE_FPS))) { @@ -222,6 +224,9 @@ private void writeMetadata() { ((Mp4LocationData) entry).latitude, ((Mp4LocationData) entry).longitude); } else if (entry instanceof XmpData) { mp4Muxer.addXmp(ByteBuffer.wrap(((XmpData) entry).data)); + } else if (entry instanceof CreationTime) { + // TODO: b/285281716 - Use creation time specific API. + mp4Muxer.setModificationTime(((CreationTime) entry).timestampMs); } else if (entry instanceof MdtaMetadataEntry) { MdtaMetadataEntry mdtaMetadataEntry = (MdtaMetadataEntry) entry; if (mdtaMetadataEntry.key.equals(MdtaMetadataEntry.KEY_ANDROID_CAPTURE_FPS)) { diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndTest.java index 6ef7942e75f..087f506bd7e 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndTest.java @@ -23,6 +23,7 @@ import androidx.media3.common.MediaItem; import androidx.media3.common.Metadata; import androidx.media3.common.util.Util; +import androidx.media3.container.CreationTime; import androidx.media3.container.MdtaMetadataEntry; import androidx.media3.container.Mp4LocationData; import androidx.media3.container.XmpData; @@ -60,7 +61,7 @@ public void tearDown() throws Exception { } @Test - public void transmux_withLocationMetadata_outputMatchedExpected() throws Exception { + public void transmux_withLocationMetadata_outputMatchesExpected() throws Exception { Muxer.Factory inAppMuxerFactory = new InAppMuxer.Factory( DefaultMuxer.Factory.DEFAULT_MAX_DELAY_BETWEEN_SAMPLES_MS, @@ -110,7 +111,7 @@ public void transmux_withXmpData_completesSuccessfully() throws Exception { } @Test - public void transmux_withCaptureFps_outputMatchedExpected() throws Exception { + public void transmux_withCaptureFps_outputMatchesExpected() throws Exception { Muxer.Factory inAppMuxerFactory = new InAppMuxer.Factory( DefaultMuxer.Factory.DEFAULT_MAX_DELAY_BETWEEN_SAMPLES_MS, @@ -140,4 +141,29 @@ public void transmux_withCaptureFps_outputMatchedExpected() throws Exception { DumpFileAsserts.assertOutput( context, fakeExtractorOutput, TestUtil.getDumpFileName(H264_MP4 + ".with_capture_fps")); } + + @Test + public void transmux_withCreationTime_outputMatchesExpected() throws Exception { + Muxer.Factory inAppMuxerFactory = + new InAppMuxer.Factory( + DefaultMuxer.Factory.DEFAULT_MAX_DELAY_BETWEEN_SAMPLES_MS, + metadataEntries -> + metadataEntries.add(new CreationTime(/* timestampMs= */ 2_000_000_000_000L))); + Transformer transformer = + new Transformer.Builder(context) + .setClock(new FakeClock(/* isAutoAdvancing= */ true)) + .setMuxerFactory(inAppMuxerFactory) + .build(); + MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_FILE_ASSET_DIRECTORY + H264_MP4)); + + transformer.start(mediaItem, outputPath); + TransformerTestRunner.runLooper(transformer); + + FakeExtractorOutput fakeExtractorOutput = + androidx.media3.test.utils.TestUtil.extractAllSamplesFromFilePath( + new Mp4Extractor(), checkNotNull(outputPath)); + // [Creation time: 2_000_000_000_000] in track metadata dump. + DumpFileAsserts.assertOutput( + context, fakeExtractorOutput, TestUtil.getDumpFileName(H264_MP4 + ".with_creation_time")); + } }