Add support for passing creation time via InAppMuxer

PiperOrigin-RevId: 538175466
This commit is contained in:
sheenachhabra 2023-06-06 14:27:26 +00:00 committed by Tofunmi Adigun-Hameed
parent 9ca6e5d90d
commit 7e14811e25
118 changed files with 711 additions and 109 deletions

View File

@ -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<CreationTime> CREATOR =
new Parcelable.Creator<CreationTime>() {
@Override
public CreationTime createFromParcel(Parcel in) {
return new CreationTime(in);
}
@Override
public CreationTime[] newArray(int size) {
return new CreationTime[size];
}
};
}

View File

@ -26,6 +26,7 @@ import android.net.Uri;
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 class MetadataRetrieverTest {
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 class MetadataRetrieverTest {
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

View File

@ -33,6 +33,7 @@ import androidx.media3.common.util.CodecSpecificDataUtil;
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 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
}
}
/** 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 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
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 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
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 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
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) {

View File

@ -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 @@ public final class Mp4Extractor implements Extractor, SeekMap {
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<TrackSampleTable> trackSampleTables =
parseTraks(
@ -562,7 +566,8 @@ public final class Mp4Extractor implements Extractor, SeekMap {
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) {

View File

@ -81,6 +81,7 @@ public class Mp4MuxerEndToEndTest {
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 class Mp4MuxerEndToEndTest {
@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.

View File

@ -1101,11 +1101,14 @@ import java.util.Locale;
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. */

View File

@ -191,10 +191,10 @@ public final class Mp4Muxer {
/**
* 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);
}
/**

View File

@ -74,6 +74,7 @@ public class Mp4MuxerEndToEndTest {
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<ByteBuffer, BufferInfo> track1Sample1 =
MuxerTestUtil.getFakeSampleAndSampleInfo(/* presentationTimeUs= */ 100L);
@ -115,6 +116,7 @@ public class Mp4MuxerEndToEndTest {
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<ByteBuffer, BufferInfo> track1Sample1 =
MuxerTestUtil.getFakeSampleAndSampleInfo(/* presentationTimeUs= */ 0L);

View File

@ -65,7 +65,7 @@ public class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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 class Mp4MuxerMetadataTest {
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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -18,6 +18,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1581574441000]
sample 0:
time = 0
flags = 1

View File

@ -18,6 +18,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1581574441000]
sample 0:
time = 96000
flags = 1

View File

@ -18,6 +18,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1581574441000]
sample 0:
time = 192000
flags = 1

View File

@ -18,6 +18,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1581574441000]
sample 0:
time = 256000
flags = 536870913

View File

@ -18,6 +18,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1581574441000]
sample 0:
time = 0
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1578288075000]
sample 0:
time = 0
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1578288075000]
sample 0:
time = 0
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1578288075000]
sample 0:
time = 0
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1578288075000]
sample 0:
time = 0
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1578288075000]
sample 0:
time = 0
flags = 1

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1633006610000]
sample 0:
time = 0
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1633006610000]
sample 0:
time = 106666
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1633006610000]
sample 0:
time = 213333
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1633006610000]
sample 0:
time = 320000
flags = 1

View File

@ -16,6 +16,7 @@ track 0:
channelCount = 2
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1633006610000]
sample 0:
time = 0
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579241726000]
sample 0:
time = 0
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579241726000]
sample 0:
time = 576000
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579241726000]
sample 0:
time = 1152000
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579241726000]
sample 0:
time = 1696000
flags = 536870913

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579241726000]
sample 0:
time = 0
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579242140000]
sample 0:
time = 0
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579242140000]
sample 0:
time = 672000
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579242140000]
sample 0:
time = 1344000
flags = 1

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579242140000]
sample 0:
time = 2016000
flags = 536870913

View File

@ -17,6 +17,7 @@ track 0:
channelCount = 6
sampleRate = 48000
language = und
metadata = entries=[Creation time: 1579242140000]
sample 0:
time = 0
flags = 1

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More