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 527f524e65..d709bfd3f9 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/MetadataRetrieverTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/MetadataRetrieverTest.java @@ -200,8 +200,8 @@ public class MetadataRetrieverTest { .isEqualTo(expectedAndroidVersionMetadata); assertThat(trackGroups.get(0).getFormat(0).metadata.get(1)) .isEqualTo(expectedTemporalLayersCountMetdata); - assertThat(trackGroups.get(0).getFormat(0).metadata.get(2)).isEqualTo(expectedSmtaEntry); - assertThat(trackGroups.get(0).getFormat(0).metadata.get(3)).isEqualTo(expectedSlowMotionData); + assertThat(trackGroups.get(0).getFormat(0).metadata.get(2)).isEqualTo(expectedSlowMotionData); + assertThat(trackGroups.get(0).getFormat(0).metadata.get(3)).isEqualTo(expectedSmtaEntry); assertThat(trackGroups.get(0).getFormat(0).metadata.get(4)).isEqualTo(expectedMp4TimestampData); // Video @@ -211,8 +211,8 @@ public class MetadataRetrieverTest { assertThat(trackGroups.get(1).getFormat(0).metadata.get(1)) .isEqualTo(expectedTemporalLayersCountMetdata); assertThat(trackGroups.get(1).getFormat(0).metadata.get(2)).isEqualTo(expectedMdtaEntry); - assertThat(trackGroups.get(1).getFormat(0).metadata.get(3)).isEqualTo(expectedSmtaEntry); - assertThat(trackGroups.get(1).getFormat(0).metadata.get(4)).isEqualTo(expectedSlowMotionData); + assertThat(trackGroups.get(1).getFormat(0).metadata.get(3)).isEqualTo(expectedSlowMotionData); + assertThat(trackGroups.get(1).getFormat(0).metadata.get(4)).isEqualTo(expectedSmtaEntry); assertThat(trackGroups.get(1).getFormat(0).metadata.get(5)).isEqualTo(expectedMp4TimestampData); } 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 419a0bbc0a..22fdc3bd01 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 @@ -60,26 +60,6 @@ import java.util.List; @SuppressWarnings("ConstantField") /* package */ final class AtomParsers { - /** Stores metadata retrieved from the udta atom. */ - public static final class UdtaInfo { - /** The metadata retrieved from the meta sub atom. */ - @Nullable public final Metadata metaMetadata; - /** The metadata retrieved from the smta sub atom. */ - @Nullable public final Metadata smtaMetadata; - /** The location metadata retrieved from the xyz sub atom. */ - @Nullable public final Metadata xyzMetadata; - - /** Creates an instance. */ - public UdtaInfo( - @Nullable Metadata metaMetadata, - @Nullable Metadata smtaMetadata, - @Nullable Metadata xyzMetadata) { - this.metaMetadata = metaMetadata; - this.smtaMetadata = smtaMetadata; - this.xyzMetadata = xyzMetadata; - } - } - private static final String TAG = "AtomParsers"; @SuppressWarnings("ConstantCaseForConstants") @@ -179,31 +159,30 @@ import java.util.List; * Parses a udta atom. * * @param udtaAtom The udta (user data) atom to decode. - * @return A {@link UdtaInfo} containing the metadata extracted from the meta, smta and xyz child - * atoms (if present). + * @return Parsed metadata. */ - public static UdtaInfo parseUdta(Atom.LeafAtom udtaAtom) { + public static Metadata parseUdta(Atom.LeafAtom udtaAtom) { ParsableByteArray udtaData = udtaAtom.data; udtaData.setPosition(Atom.HEADER_SIZE); - @Nullable Metadata metaMetadata = null; - @Nullable Metadata smtaMetadata = null; - @Nullable Metadata xyzMetadata = null; + Metadata metadata = new Metadata(); while (udtaData.bytesLeft() >= Atom.HEADER_SIZE) { int atomPosition = udtaData.getPosition(); int atomSize = udtaData.readInt(); int atomType = udtaData.readInt(); if (atomType == Atom.TYPE_meta) { udtaData.setPosition(atomPosition); - metaMetadata = parseUdtaMeta(udtaData, atomPosition + atomSize); + metadata = + metadata.copyWithAppendedEntriesFrom(parseUdtaMeta(udtaData, atomPosition + atomSize)); } else if (atomType == Atom.TYPE_smta) { udtaData.setPosition(atomPosition); - smtaMetadata = parseSmta(udtaData, atomPosition + atomSize); + metadata = + metadata.copyWithAppendedEntriesFrom(parseSmta(udtaData, atomPosition + atomSize)); } else if (atomType == Atom.TYPE_xyz) { - xyzMetadata = parseXyz(udtaData); + metadata = metadata.copyWithAppendedEntriesFrom(parseXyz(udtaData)); } udtaData.setPosition(atomPosition + atomSize); } - return new UdtaInfo(metaMetadata, smtaMetadata, xyzMetadata); + return metadata; } /** diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java index 67dfa3c0f8..01e570fa7b 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java @@ -288,25 +288,17 @@ import com.google.common.collect.ImmutableList; /** Updates a {@link Format.Builder} to include metadata from the provided sources. */ public static void setFormatMetadata( int trackType, - @Nullable Metadata udtaMetaMetadata, @Nullable Metadata mdtaMetadata, Format.Builder formatBuilder, @NullableType Metadata... additionalMetadata) { Metadata formatMetadata = new Metadata(); - if (trackType == C.TRACK_TYPE_AUDIO) { - // We assume all meta metadata in the udta box is associated with the audio track. - if (udtaMetaMetadata != null) { - formatMetadata = udtaMetaMetadata; - } - } - if (mdtaMetadata != null) { for (int i = 0; i < mdtaMetadata.length(); i++) { Metadata.Entry entry = mdtaMetadata.get(i); if (entry instanceof MdtaMetadataEntry) { MdtaMetadataEntry mdtaMetadataEntry = (MdtaMetadataEntry) entry; - // This key is present in the container level meta box. + // This key is present in the moov.meta box. if (mdtaMetadataEntry.key.equals(MdtaMetadataEntry.KEY_ANDROID_CAPTURE_FPS)) { if (trackType == C.TRACK_TYPE_VIDEO) { formatMetadata = formatMetadata.copyWithAppendedEntries(mdtaMetadataEntry); 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 e11159fdef..469d9862c5 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 @@ -491,20 +491,13 @@ public final class Mp4Extractor implements Extractor, SeekMap { List tracks = new ArrayList<>(); // Process metadata. - @Nullable Metadata udtaMetaMetadata = null; - @Nullable Metadata smtaMetadata = null; - @Nullable Metadata xyzMetadata = null; boolean isQuickTime = fileType == FILE_TYPE_QUICKTIME; GaplessInfoHolder gaplessInfoHolder = new GaplessInfoHolder(); + @Nullable Metadata udtaMetadata = null; @Nullable Atom.LeafAtom udta = moov.getLeafAtomOfType(Atom.TYPE_udta); if (udta != null) { - AtomParsers.UdtaInfo udtaInfo = AtomParsers.parseUdta(udta); - udtaMetaMetadata = udtaInfo.metaMetadata; - smtaMetadata = udtaInfo.smtaMetadata; - xyzMetadata = udtaInfo.xyzMetadata; - if (udtaMetaMetadata != null) { - gaplessInfoHolder.setFromMetadata(udtaMetaMetadata); - } + udtaMetadata = AtomParsers.parseUdta(udta); + gaplessInfoHolder.setFromMetadata(udtaMetadata); } @Nullable Metadata mdtaMetadata = null; @Nullable Atom.ContainerAtom meta = moov.getContainerAtomOfType(Atom.TYPE_meta); @@ -562,12 +555,10 @@ public final class Mp4Extractor implements Extractor, SeekMap { MetadataUtil.setFormatGaplessInfo(track.type, gaplessInfoHolder, formatBuilder); MetadataUtil.setFormatMetadata( track.type, - udtaMetaMetadata, mdtaMetadata, formatBuilder, - smtaMetadata, slowMotionMetadataEntries.isEmpty() ? null : new Metadata(slowMotionMetadataEntries), - xyzMetadata, + udtaMetadata, mvhdMetadata); mp4Track.trackOutput.format(formatBuilder.build()); 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 bc609c6209..2e8ca549c1 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,7 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] 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 bc609c6209..2e8ca549c1 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,7 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] 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 bc609c6209..2e8ca549c1 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,7 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] 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 bc609c6209..2e8ca549c1 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,7 +17,7 @@ track 0: width = 180 height = 120 pixelWidthHeightRatio = 0.5 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] 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 ad0b923a00..713bb91d2a 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 44bbeb8d9d..c31ee81b1b 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 5226241cea..60508b5bc0 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 7875fa3dff..33b7075b1a 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 ad0b923a00..713bb91d2a 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 6cc174d044..399b08a389 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,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 6e515c38d1..27816cedb5 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,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 73f61d4d19..d52b5554fd 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,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 9f2796b90c..a9ce9b07f6 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,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 6cc174d044..399b08a389 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,7 +17,7 @@ track 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B 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 0a654c1909..198985401e 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,7 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] sample 0: time = 0 flags = 1 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 d0f6ca7803..2d033600dd 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,7 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] sample 0: time = 0 flags = 1 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 5cbf12b076..c9672440fa 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,7 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] sample 0: time = 0 flags = 1 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 532b2ebb31..edf606db82 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,7 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] sample 0: time = 0 flags = 1 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 0a654c1909..198985401e 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,7 +21,7 @@ track 0: colorRange = 2 colorTransfer = 6 hdrStaticInfo = length 25, hash 423AFC35 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] sample 0: time = 0 flags = 1 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 a9fac56170..fff0666d3a 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,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_transmux.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_transmux.dump index c6e9282e89..1a466878cc 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_transmux.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample.mp4.concatenated_transmux.dump @@ -6,11 +6,11 @@ format 0: width = 1080 height = 720 frameRate = 29.970028 - metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] format 1: peakBitrate = 200000 id = 2 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 c64c82686a..6587bc172f 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] format 1: peakBitrate = 200000 id = 2 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 3d37e42433..3a2638f03f 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] sample: trackIndex = 0 dataHashCode = -770308242 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 7b2ac4ab6d..707b2d1ab6 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] format 1: peakBitrate = 200000 id = 2 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 b338b01994..7544c94219 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] 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 425ad63e50..5ddb99bbbd 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] 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 d5c74a9aa6..ad6d1a1fc9 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, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B -container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm 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 c659caf2e6..5ccb19b8fd 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.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, 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], Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] + metadata = entries=[mdta: key=com.android.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, mdta: key=com.android.capture.fps, value=240.0, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], smta: captureFrameRate=240.0, svcTemporalLayerCount=4, Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] initializationData: data = length 33, hash D3FB879D data = length 10, hash 7A0D0F2B -container metadata = entries=[mdta: key=com.android.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, 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], Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] +container metadata = entries=[mdta: key=com.android.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, mdta: key=com.android.capture.fps, value=240.0, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], smta: captureFrameRate=240.0, svcTemporalLayerCount=4, Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] format 1: averageBitrate = 131072 sampleMimeType = audio/mp4a-latm channelCount = 2 sampleRate = 12000 pcmEncoding = 2 - metadata = entries=[mdta: key=com.android.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] -container metadata = entries=[mdta: key=com.android.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, smta: captureFrameRate=240.0, svcTemporalLayerCount=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] + metadata = entries=[mdta: key=com.android.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], smta: captureFrameRate=240.0, svcTemporalLayerCount=4, Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] +container metadata = entries=[mdta: key=com.android.version, value=10, mdta: key=com.android.video.temporal_layers_count, value=4, SlowMotion: segments=[Segment: startTimeMs=88, endTimeMs=879, speedDivisor=2, Segment: startTimeMs=1255, endTimeMs=1970, speedDivisor=8], smta: captureFrameRate=240.0, svcTemporalLayerCount=4, Mp4Timestamp: creation time=3686904890, modification time=3686904890, timescale=1000] sample: trackIndex = 0 dataHashCode = 1949079733 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 ebf93fb719..ab8e61d534 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,11 +11,11 @@ format 0: colorRange = 1 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] initializationData: data = length 31, hash 4B108214 data = length 9, hash FBA158BB -container metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] format 1: averageBitrate = 192181 peakBitrate = 192181 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_concatenated_transmux.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_concatenated_transmux.dump index ead5a1bd9b..be3e9ec569 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_concatenated_transmux.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4.clipped_concatenated_transmux.dump @@ -11,11 +11,11 @@ format 0: colorRange = 1 colorTransfer = 3 hdrStaticInfo = length 0, hash 0 - metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] initializationData: data = length 31, hash 4B108214 data = length 9, hash FBA158BB -container metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] +container metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] format 1: averageBitrate = 192181 peakBitrate = 192181