Replace CreationTime class with Mp4TimestampData class
PiperOrigin-RevId: 540257484
This commit is contained in:
parent
248d1d99ec
commit
d0eda433ea
@ -1,91 +0,0 @@
|
||||
/*
|
||||
* 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];
|
||||
}
|
||||
};
|
||||
}
|
@ -0,0 +1,136 @@
|
||||
/*
|
||||
* 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.C;
|
||||
import androidx.media3.common.Metadata;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
import com.google.common.primitives.Longs;
|
||||
|
||||
/** Stores MP4 timestamp data. */
|
||||
@UnstableApi
|
||||
public final class Mp4TimestampData implements Metadata.Entry {
|
||||
/** Represents an unset or unknown timescale. */
|
||||
public static final int TIMESCALE_UNSET = -1;
|
||||
|
||||
/** The creation timestamp. */
|
||||
public final long creationTimestampSeconds;
|
||||
/** The modification timestamp. */
|
||||
public final long modificationTimestampSeconds;
|
||||
/** The timescale of the movie. */
|
||||
public final long timescale;
|
||||
|
||||
/**
|
||||
* Creates an instance.
|
||||
*
|
||||
* @param creationTimestampSeconds The creation time UTC in seconds since midnight, January 1,
|
||||
* 1904. The {@link #modificationTimestampSeconds} is set to {@link C#TIME_UNSET} and {@link
|
||||
* #timescale} is set to {@link Mp4TimestampData#TIMESCALE_UNSET}.
|
||||
*/
|
||||
public Mp4TimestampData(long creationTimestampSeconds) {
|
||||
this.creationTimestampSeconds = creationTimestampSeconds;
|
||||
this.modificationTimestampSeconds = C.TIME_UNSET;
|
||||
this.timescale = TIMESCALE_UNSET;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance.
|
||||
*
|
||||
* @param creationTimestampSeconds The creation time UTC in seconds since midnight, January 1,
|
||||
* 1904.
|
||||
* @param modificationTimestampSeconds The modification time UTC in seconds since midnight,
|
||||
* January 1, 1904.
|
||||
* @param timescale The timescale of the movie.
|
||||
*/
|
||||
public Mp4TimestampData(
|
||||
long creationTimestampSeconds, long modificationTimestampSeconds, long timescale) {
|
||||
this.creationTimestampSeconds = creationTimestampSeconds;
|
||||
this.modificationTimestampSeconds = modificationTimestampSeconds;
|
||||
this.timescale = timescale;
|
||||
}
|
||||
|
||||
private Mp4TimestampData(Parcel in) {
|
||||
this.creationTimestampSeconds = in.readLong();
|
||||
this.modificationTimestampSeconds = in.readLong();
|
||||
this.timescale = in.readLong();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(@Nullable Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof Mp4TimestampData)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Mp4TimestampData other = (Mp4TimestampData) obj;
|
||||
|
||||
return creationTimestampSeconds == other.creationTimestampSeconds
|
||||
&& modificationTimestampSeconds == other.modificationTimestampSeconds
|
||||
&& timescale == other.timescale;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = 17;
|
||||
result = 31 * result + Longs.hashCode(creationTimestampSeconds);
|
||||
result = 31 * result + Longs.hashCode(modificationTimestampSeconds);
|
||||
result = 31 * result + Longs.hashCode(timescale);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Mp4Timestamp: creation time="
|
||||
+ creationTimestampSeconds
|
||||
+ ", modification time="
|
||||
+ modificationTimestampSeconds
|
||||
+ ", timescale="
|
||||
+ timescale;
|
||||
}
|
||||
|
||||
// Parcelable implementation.
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeLong(creationTimestampSeconds);
|
||||
dest.writeLong(modificationTimestampSeconds);
|
||||
dest.writeLong(timescale);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<Mp4TimestampData> CREATOR =
|
||||
new Parcelable.Creator<Mp4TimestampData>() {
|
||||
|
||||
@Override
|
||||
public Mp4TimestampData createFromParcel(Parcel in) {
|
||||
return new Mp4TimestampData(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mp4TimestampData[] newArray(int size) {
|
||||
return new Mp4TimestampData[size];
|
||||
}
|
||||
};
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* 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 androidx.media3.common.util.UnstableApi;
|
||||
|
||||
/** Utilities for MP4 container. */
|
||||
@UnstableApi
|
||||
public final class Mp4Util {
|
||||
private static final int UNIX_EPOCH_TO_MP4_TIME_DELTA_SECONDS =
|
||||
((1970 - 1904) * 365 + 17 /* leap year */) * (24 * 60 * 60);
|
||||
|
||||
private Mp4Util() {}
|
||||
|
||||
/**
|
||||
* Returns an MP4 timestamp (in seconds since midnight, January 1, 1904) from a Unix epoch
|
||||
* timestamp (in milliseconds since midnight, January 1, 1970).
|
||||
*/
|
||||
public static long unixTimeToMp4TimeSeconds(long unixTimestampMs) {
|
||||
return (unixTimestampMs / 1000L + UNIX_EPOCH_TO_MP4_TIME_DELTA_SECONDS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a Unix epoch timestamp (in milliseconds since midnight, January 1, 1970) from an MP4
|
||||
* timestamp (in seconds since midnight, January 1, 1904).
|
||||
*/
|
||||
public static long mp4TimeToUnixTimeMs(long mp4TimestampSeconds) {
|
||||
return (mp4TimestampSeconds - UNIX_EPOCH_TO_MP4_TIME_DELTA_SECONDS) * 1000L;
|
||||
}
|
||||
}
|
@ -27,8 +27,8 @@ import androidx.media3.common.C;
|
||||
import androidx.media3.common.MediaItem;
|
||||
import androidx.media3.common.MimeTypes;
|
||||
import androidx.media3.common.util.Util;
|
||||
import androidx.media3.container.CreationTime;
|
||||
import androidx.media3.container.MdtaMetadataEntry;
|
||||
import androidx.media3.container.Mp4TimestampData;
|
||||
import androidx.media3.exoplayer.source.TrackGroupArray;
|
||||
import androidx.media3.extractor.metadata.mp4.MotionPhotoMetadata;
|
||||
import androidx.media3.extractor.metadata.mp4.SlowMotionData;
|
||||
@ -176,7 +176,11 @@ public class MetadataRetrieverTest {
|
||||
new SlowMotionData.Segment(
|
||||
/* startTimeMs= */ 1255, /* endTimeMs= */ 1970, /* speedDivisor= */ 8));
|
||||
SlowMotionData expectedSlowMotionData = new SlowMotionData(segments);
|
||||
CreationTime expectedCreationTime = new CreationTime(/* timestampMs= */ 1604060090000L);
|
||||
Mp4TimestampData expectedMp4TimestampData =
|
||||
new Mp4TimestampData(
|
||||
/* creationTimestampSeconds= */ 3_686_904_890L,
|
||||
/* modificationTimestampSeconds= */ 3_686_904_890L,
|
||||
/* timescale= */ 1000);
|
||||
MdtaMetadataEntry expectedMdtaEntry =
|
||||
new MdtaMetadataEntry(
|
||||
KEY_ANDROID_CAPTURE_FPS,
|
||||
@ -198,7 +202,7 @@ public class MetadataRetrieverTest {
|
||||
.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(4)).isEqualTo(expectedCreationTime);
|
||||
assertThat(trackGroups.get(0).getFormat(0).metadata.get(4)).isEqualTo(expectedMp4TimestampData);
|
||||
|
||||
// Video
|
||||
assertThat(trackGroups.get(1).getFormat(0).metadata.length()).isEqualTo(6);
|
||||
@ -209,7 +213,7 @@ public class MetadataRetrieverTest {
|
||||
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(5)).isEqualTo(expectedCreationTime);
|
||||
assertThat(trackGroups.get(1).getFormat(0).metadata.get(5)).isEqualTo(expectedMp4TimestampData);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -33,8 +33,8 @@ 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.container.Mp4TimestampData;
|
||||
import androidx.media3.extractor.AacUtil;
|
||||
import androidx.media3.extractor.Ac3Util;
|
||||
import androidx.media3.extractor.Ac4Util;
|
||||
@ -80,19 +80,6 @@ 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")
|
||||
@ -220,32 +207,27 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a mvhd atom (defined in ISO/IEC 14496-12), returning the timescale for the movie.
|
||||
* Parses an mvhd atom (defined in ISO/IEC 14496-12).
|
||||
*
|
||||
* @param mvhd Contents of the mvhd atom to be parsed.
|
||||
* @return An object containing the parsed data.
|
||||
*/
|
||||
public static MvhdInfo parseMvhd(ParsableByteArray mvhd) {
|
||||
public static Mp4TimestampData parseMvhd(ParsableByteArray mvhd) {
|
||||
mvhd.setPosition(Atom.HEADER_SIZE);
|
||||
int fullAtom = mvhd.readInt();
|
||||
int version = Atom.parseFullAtomVersion(fullAtom);
|
||||
long creationTimestampSeconds;
|
||||
long modificationTimestampSeconds;
|
||||
if (version == 0) {
|
||||
creationTimestampSeconds = mvhd.readUnsignedInt();
|
||||
mvhd.skipBytes(4); // modification_time
|
||||
modificationTimestampSeconds = mvhd.readUnsignedInt();
|
||||
} else {
|
||||
creationTimestampSeconds = mvhd.readLong();
|
||||
mvhd.skipBytes(8); // modification_time
|
||||
modificationTimestampSeconds = mvhd.readLong();
|
||||
}
|
||||
|
||||
// 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);
|
||||
return new Mp4TimestampData(creationTimestampSeconds, modificationTimestampSeconds, timescale);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -513,7 +513,8 @@ public final class Mp4Extractor implements Extractor, SeekMap {
|
||||
}
|
||||
|
||||
Metadata mvhdMetadata =
|
||||
AtomParsers.parseMvhd(checkNotNull(moov.getLeafAtomOfType(Atom.TYPE_mvhd)).data).metadata;
|
||||
new Metadata(
|
||||
AtomParsers.parseMvhd(checkNotNull(moov.getLeafAtomOfType(Atom.TYPE_mvhd)).data));
|
||||
|
||||
boolean ignoreEditLists = (flags & FLAG_WORKAROUND_IGNORE_EDIT_LISTS) != 0;
|
||||
List<TrackSampleTable> trackSampleTables =
|
||||
|
@ -76,14 +76,14 @@ import java.util.Locale;
|
||||
public static ByteBuffer tkhd(
|
||||
int trackId,
|
||||
int trackDurationVu,
|
||||
long modificationDateUnixMs,
|
||||
int modificationTimestampSeconds,
|
||||
int orientation,
|
||||
Format format) {
|
||||
ByteBuffer contents = ByteBuffer.allocate(Mp4Utils.MAX_FIXED_LEAF_BOX_SIZE);
|
||||
contents.putInt(0x00000007); // version and flags; allow presentation, etc.
|
||||
|
||||
contents.putInt(toMp4Time(modificationDateUnixMs)); // creation_time
|
||||
contents.putInt(toMp4Time(modificationDateUnixMs)); // modification_time
|
||||
contents.putInt(modificationTimestampSeconds); // creation_time
|
||||
contents.putInt(modificationTimestampSeconds); // modification_time
|
||||
|
||||
contents.putInt(trackId);
|
||||
contents.putInt(0); // reserved
|
||||
@ -115,12 +115,12 @@ import java.util.Locale;
|
||||
* <p>This is the movie header for the entire MP4 file.
|
||||
*/
|
||||
public static ByteBuffer mvhd(
|
||||
int nextEmptyTrackId, long modificationDateUnixMs, long videoDurationUs) {
|
||||
int nextEmptyTrackId, int modificationTimestampSeconds, long videoDurationUs) {
|
||||
ByteBuffer contents = ByteBuffer.allocate(Mp4Utils.MAX_FIXED_LEAF_BOX_SIZE);
|
||||
contents.putInt(0); // version and flags
|
||||
|
||||
contents.putInt(toMp4Time(modificationDateUnixMs)); // creation_time
|
||||
contents.putInt(toMp4Time(modificationDateUnixMs)); // modification_time
|
||||
contents.putInt(modificationTimestampSeconds); // creation_time
|
||||
contents.putInt(modificationTimestampSeconds); // modification_time
|
||||
contents.putInt((int) MVHD_TIMEBASE); // The per-track timescales might be different.
|
||||
contents.putInt(
|
||||
(int) Mp4Utils.vuFromUs(videoDurationUs, MVHD_TIMEBASE)); // Duration of the entire video.
|
||||
@ -158,13 +158,13 @@ import java.util.Locale;
|
||||
public static ByteBuffer mdhd(
|
||||
long trackDurationVu,
|
||||
int videoUnitTimebase,
|
||||
long modificationDateUnixMs,
|
||||
int modificationTimestampSeconds,
|
||||
@Nullable String languageCode) {
|
||||
ByteBuffer contents = ByteBuffer.allocate(Mp4Utils.MAX_FIXED_LEAF_BOX_SIZE);
|
||||
contents.putInt(0x0); // version and flags
|
||||
|
||||
contents.putInt(toMp4Time(modificationDateUnixMs)); // creation_time
|
||||
contents.putInt(toMp4Time(modificationDateUnixMs)); // modification_time
|
||||
contents.putInt(modificationTimestampSeconds); // creation_time
|
||||
contents.putInt(modificationTimestampSeconds); // modification_time
|
||||
|
||||
contents.putInt(videoUnitTimebase);
|
||||
|
||||
@ -1101,16 +1101,6 @@ import java.util.Locale;
|
||||
return BoxUtils.wrapIntoBox("esds", contents);
|
||||
}
|
||||
|
||||
/** Convert Unix epoch timestamps to the format used by MP4 files. */
|
||||
private static int toMp4Time(long unixTimeMs) {
|
||||
// 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. */
|
||||
private static short languageCodeFromString(@Nullable String code) {
|
||||
if (code == null) {
|
||||
|
@ -15,8 +15,10 @@
|
||||
*/
|
||||
package androidx.media3.muxer;
|
||||
|
||||
import static androidx.media3.common.util.Assertions.checkArgument;
|
||||
import static androidx.media3.common.util.Assertions.checkState;
|
||||
|
||||
import androidx.media3.container.Mp4Util;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
@ -27,13 +29,14 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
public int orientation;
|
||||
public @MonotonicNonNull Mp4Location location;
|
||||
public Map<String, Object> metadataPairs;
|
||||
public long modificationDateUnixMs;
|
||||
public int modificationTimestampSeconds;
|
||||
public @MonotonicNonNull ByteBuffer xmpData;
|
||||
|
||||
public MetadataCollector() {
|
||||
orientation = 0;
|
||||
metadataPairs = new LinkedHashMap<>();
|
||||
modificationDateUnixMs = System.currentTimeMillis();
|
||||
modificationTimestampSeconds =
|
||||
(int) Mp4Util.unixTimeToMp4TimeSeconds(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
public void addXmp(ByteBuffer xmpData) {
|
||||
@ -57,7 +60,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
metadataPairs.put(key, value);
|
||||
}
|
||||
|
||||
public void setModificationTime(long modificationDateUnixMs) {
|
||||
this.modificationDateUnixMs = modificationDateUnixMs;
|
||||
public void setModificationTime(long unixTimestampMs) {
|
||||
long maxUnsignedInt = 4294967295L;
|
||||
long timestampSeconds = Mp4Util.unixTimeToMp4TimeSeconds(unixTimestampMs);
|
||||
checkArgument(timestampSeconds <= maxUnsignedInt, "Only 32-bit long timestamp supported");
|
||||
this.modificationTimestampSeconds = (int) timestampSeconds;
|
||||
}
|
||||
}
|
||||
|
@ -144,14 +144,14 @@ import org.checkerframework.checker.nullness.qual.PolyNull;
|
||||
// Using the time base of the entire file, not that of the track; otherwise,
|
||||
// Quicktime will stretch the audio accordingly, see b/158120042.
|
||||
(int) Mp4Utils.vuFromUs(trackDurationUs, MVHD_TIMEBASE),
|
||||
metadataCollector.modificationDateUnixMs,
|
||||
metadataCollector.modificationTimestampSeconds,
|
||||
metadataCollector.orientation,
|
||||
format),
|
||||
Boxes.mdia(
|
||||
Boxes.mdhd(
|
||||
trackDurationInTrackUnitsVu,
|
||||
track.videoUnitTimebase(),
|
||||
metadataCollector.modificationDateUnixMs,
|
||||
metadataCollector.modificationTimestampSeconds,
|
||||
languageCode),
|
||||
Boxes.hdlr(handlerType, handlerName),
|
||||
Boxes.minf(mhdBox, Boxes.dinf(Boxes.dref(Boxes.localUrl())), stblBox)));
|
||||
@ -163,7 +163,7 @@ import org.checkerframework.checker.nullness.qual.PolyNull;
|
||||
}
|
||||
|
||||
ByteBuffer mvhdBox =
|
||||
Boxes.mvhd(nextTrackId, metadataCollector.modificationDateUnixMs, videoDurationUs);
|
||||
Boxes.mvhd(nextTrackId, metadataCollector.modificationTimestampSeconds, videoDurationUs);
|
||||
ByteBuffer udtaBox = Boxes.udta(metadataCollector.location);
|
||||
ByteBuffer metaBox =
|
||||
metadataCollector.metadataPairs.isEmpty()
|
||||
|
@ -63,7 +63,7 @@ public class BoxesTest {
|
||||
Boxes.tkhd(
|
||||
/* trackId= */ 1,
|
||||
/* trackDurationVu= */ 5_000_000,
|
||||
/* modificationDateUnixMs= */ 1_000_000_000,
|
||||
/* modificationTimestampSeconds= */ 1_000_000_000,
|
||||
/* orientation= */ 90,
|
||||
videoFormat);
|
||||
|
||||
@ -80,7 +80,7 @@ public class BoxesTest {
|
||||
Boxes.tkhd(
|
||||
/* trackId= */ 1,
|
||||
/* trackDurationVu= */ 5_000_000,
|
||||
/* modificationDateUnixMs= */ 1_000_000_000,
|
||||
/* modificationTimestampSeconds= */ 1_000_000_000,
|
||||
/* orientation= */ 90,
|
||||
audioFormat);
|
||||
|
||||
@ -94,7 +94,7 @@ public class BoxesTest {
|
||||
ByteBuffer mvhdBox =
|
||||
Boxes.mvhd(
|
||||
/* nextEmptyTrackId= */ 3,
|
||||
/* modificationDateUnixMs= */ 1_000_000_000,
|
||||
/* modificationTimestampSeconds= */ 1_000_000_000,
|
||||
/* videoDurationUs= */ 5_000_000);
|
||||
|
||||
DumpableMp4Box dumpableBox = new DumpableMp4Box(mvhdBox);
|
||||
@ -107,7 +107,7 @@ public class BoxesTest {
|
||||
Boxes.mdhd(
|
||||
/* trackDurationVu= */ 5_000_000,
|
||||
VU_TIMEBASE,
|
||||
/* modificationDateUnixMs= */ 1_000_000_000,
|
||||
/* modificationTimestampSeconds= */ 1_000_000_000,
|
||||
/* languageCode= */ "und");
|
||||
|
||||
DumpableMp4Box dumpableBox = new DumpableMp4Box(mdhdBox);
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 180
|
||||
height = 120
|
||||
pixelWidthHeightRatio = 0.5
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 32, hash 1F3D6E87
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 180
|
||||
height = 120
|
||||
pixelWidthHeightRatio = 0.5
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 32, hash 1F3D6E87
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 180
|
||||
height = 120
|
||||
pixelWidthHeightRatio = 0.5
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 32, hash 1F3D6E87
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 180
|
||||
height = 120
|
||||
pixelWidthHeightRatio = 0.5
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 32, hash 1F3D6E87
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000]
|
||||
metadata = entries=[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
|
||||
@ -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, Creation time: 1464714095000]
|
||||
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 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000]
|
||||
metadata = entries=[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
|
||||
@ -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, Creation time: 1464714095000]
|
||||
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 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000]
|
||||
metadata = entries=[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
|
||||
@ -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, Creation time: 1464714095000]
|
||||
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 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000]
|
||||
metadata = entries=[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
|
||||
@ -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, Creation time: 1464714095000]
|
||||
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 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Creation time: 1464714095000]
|
||||
metadata = entries=[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
|
||||
@ -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, Creation time: 1464714095000]
|
||||
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 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 3
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 1635264810000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
|
||||
initializationData:
|
||||
data = length 29, hash 4746B5D9
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 3
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 1635264810000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
|
||||
initializationData:
|
||||
data = length 29, hash 4746B5D9
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 3
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 1635264810000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
|
||||
initializationData:
|
||||
data = length 29, hash 4746B5D9
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 3
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 1635264810000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
|
||||
initializationData:
|
||||
data = length 29, hash 4746B5D9
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 3
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 1635264810000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
|
||||
initializationData:
|
||||
data = length 29, hash 4746B5D9
|
||||
data = length 10, hash 7A0D0F2B
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1581574441000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1581574441000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
|
||||
sample 0:
|
||||
time = 96000
|
||||
flags = 1
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1581574441000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
|
||||
sample 0:
|
||||
time = 192000
|
||||
flags = 1
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1581574441000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
|
||||
sample 0:
|
||||
time = 256000
|
||||
flags = 536870913
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1581574441000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3664419241, modification time=3664419241, timescale=600]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1578288075000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1578288075000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1578288075000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1578288075000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1578288075000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3661132875, modification time=3661132875, timescale=600]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Creation time: unset]
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 22, hash 4CF81805
|
||||
data = length 9, hash FBAFBA1C
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Creation time: unset]
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 22, hash 4CF81805
|
||||
data = length 9, hash FBAFBA1C
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Creation time: unset]
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 22, hash 4CF81805
|
||||
data = length 9, hash FBAFBA1C
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Creation time: unset]
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 22, hash 4CF81805
|
||||
data = length 9, hash FBAFBA1C
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Creation time: unset]
|
||||
metadata = entries=[mdta: key=major_brand, value=mp42, mdta: key=minor_version, value=0, mdta: key=compatible_brands, value=isommp42, mdta: key=com.android.capture.fps, value=240.0, mdta: key=com.android.version, value=10, mdta: key=encoder, value=Lavf58.29.100, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 22, hash 4CF81805
|
||||
data = length 9, hash FBAFBA1C
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1633006610000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1633006610000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
|
||||
sample 0:
|
||||
time = 106666
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1633006610000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
|
||||
sample 0:
|
||||
time = 213333
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1633006610000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
|
||||
sample 0:
|
||||
time = 320000
|
||||
flags = 1
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1633006610000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3715851410, modification time=3715851410, timescale=48000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579241726000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579241726000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
|
||||
sample 0:
|
||||
time = 576000
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579241726000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
|
||||
sample 0:
|
||||
time = 1152000
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579241726000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
|
||||
sample 0:
|
||||
time = 1696000
|
||||
flags = 536870913
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579241726000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086526, modification time=3662086526, timescale=48000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579242140000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579242140000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
|
||||
sample 0:
|
||||
time = 672000
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579242140000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
|
||||
sample 0:
|
||||
time = 1344000
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579242140000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
|
||||
sample 0:
|
||||
time = 2016000
|
||||
flags = 536870913
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
channelCount = 6
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1579242140000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3662086940, modification time=3662086940, timescale=48000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[Creation time: 1464714095000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
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], Creation time: 1464714095000]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
initializationData:
|
||||
data = length 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[Creation time: 1464714095000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
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], Creation time: 1464714095000]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
initializationData:
|
||||
data = length 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[Creation time: 1464714095000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
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], Creation time: 1464714095000]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
initializationData:
|
||||
data = length 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[Creation time: 1464714095000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
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], Creation time: 1464714095000]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
initializationData:
|
||||
data = length 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 29.970028
|
||||
metadata = entries=[Creation time: 1464714095000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
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], Creation time: 1464714095000]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
|
||||
initializationData:
|
||||
data = length 2, hash 5F7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -18,7 +18,7 @@ track 0:
|
||||
encoderDelay = 3072
|
||||
encoderPadding = 255
|
||||
language = und
|
||||
metadata = entries=[Creation time: 1619054108000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=3701898908, modification time=3701898908, timescale=48000]
|
||||
initializationData:
|
||||
data = length 26, hash 4E58F6C7
|
||||
sample 0:
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 19, hash 86852AE2
|
||||
data = length 8, hash 72CBCBF5
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 19, hash 86852AE2
|
||||
data = length 8, hash 72CBCBF5
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 19, hash 86852AE2
|
||||
data = length 8, hash 72CBCBF5
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 19, hash 86852AE2
|
||||
data = length 8, hash 72CBCBF5
|
||||
|
@ -16,7 +16,7 @@ track 0:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.29.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 19, hash 86852AE2
|
||||
data = length 8, hash 72CBCBF5
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 7
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
sample 0:
|
||||
@ -75,7 +75,7 @@ track 1:
|
||||
sampleRate = 44100
|
||||
encoderPadding = 2204
|
||||
language = und
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 2, hash 5FF
|
||||
sample 0:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 7
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
sample 0:
|
||||
@ -75,7 +75,7 @@ track 1:
|
||||
sampleRate = 44100
|
||||
encoderPadding = 2204
|
||||
language = und
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 2, hash 5FF
|
||||
sample 0:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 7
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
sample 0:
|
||||
@ -75,7 +75,7 @@ track 1:
|
||||
sampleRate = 44100
|
||||
encoderPadding = 2204
|
||||
language = und
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 2, hash 5FF
|
||||
sample 0:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 7
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
sample 0:
|
||||
@ -75,7 +75,7 @@ track 1:
|
||||
sampleRate = 44100
|
||||
encoderPadding = 2204
|
||||
language = und
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 2, hash 5FF
|
||||
sample 0:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 7
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
sample 0:
|
||||
@ -75,7 +75,7 @@ track 1:
|
||||
sampleRate = 44100
|
||||
encoderPadding = 2204
|
||||
language = und
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Creation time: 1621959711000]
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 2, hash 5FF
|
||||
sample 0:
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 6
|
||||
hdrStaticInfo = length 25, hash 423AFC35
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
@ -275,7 +275,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 44100
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 16, hash CAA21BBF
|
||||
sample 0:
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 6
|
||||
hdrStaticInfo = length 25, hash 423AFC35
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
@ -275,7 +275,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 44100
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 16, hash CAA21BBF
|
||||
sample 0:
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 6
|
||||
hdrStaticInfo = length 25, hash 423AFC35
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
@ -275,7 +275,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 44100
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 16, hash CAA21BBF
|
||||
sample 0:
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 6
|
||||
hdrStaticInfo = length 25, hash 423AFC35
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
@ -275,7 +275,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 44100
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 16, hash CAA21BBF
|
||||
sample 0:
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 6
|
||||
hdrStaticInfo = length 25, hash 423AFC35
|
||||
metadata = entries=[Creation time: unset]
|
||||
metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
@ -275,7 +275,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 44100
|
||||
language = und
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Creation time: unset]
|
||||
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||
initializationData:
|
||||
data = length 16, hash CAA21BBF
|
||||
sample 0:
|
||||
|
@ -1,2 +1,2 @@
|
||||
tkhd (92 bytes):
|
||||
Data = length 84, hash 2AEDD676
|
||||
Data = length 84, hash 8F9E5354
|
||||
|
@ -13,7 +13,7 @@ track 0:
|
||||
id = 1
|
||||
sampleMimeType = application/meta
|
||||
maxInputSize = 161
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
@ -39,7 +39,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = ```
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 2, hash 560
|
||||
sample 0:
|
||||
@ -70,7 +70,7 @@ track 2:
|
||||
colorRange = 1
|
||||
colorTransfer = 3
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 85, hash 6F3CAA16
|
||||
sample 0:
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 6
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 99, hash 99842E5A
|
||||
sample 0:
|
||||
@ -546,7 +546,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = ```
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 2, hash 560
|
||||
sample 0:
|
||||
|
@ -1,2 +1,2 @@
|
||||
mdhd (32 bytes):
|
||||
Data = length 24, hash E3506098
|
||||
Data = length 24, hash D0792E76
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 5000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 5000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 5000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 5000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
@ -50,7 +50,7 @@ track 1:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -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, Creation time: 5000000]
|
||||
metadata = entries=[mdta: key=com.android.capture.fps, value=120.0, Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[xyz: latitude=33.0, longitude=-120.0, Creation time: 5000000]
|
||||
metadata = entries=[xyz: latitude=33.0, longitude=-120.0, Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -21,7 +21,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 5000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
@ -50,7 +50,7 @@ track 1:
|
||||
colorRange = 1
|
||||
colorTransfer = -1
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 28, hash 410B510
|
||||
data = length 9, hash FBADD682
|
||||
|
@ -1,2 +1,2 @@
|
||||
mvhd (108 bytes):
|
||||
Data = length 100, hash E35D7A28
|
||||
Data = length 100, hash 22E47B06
|
||||
|
@ -22,7 +22,7 @@ track 0:
|
||||
colorRange = 2
|
||||
colorTransfer = 6
|
||||
hdrStaticInfo = length 0, hash 0
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 99, hash 99842E5A
|
||||
sample 0:
|
||||
@ -414,7 +414,7 @@ track 1:
|
||||
channelCount = 2
|
||||
sampleRate = 48000
|
||||
language = ```
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 2, hash 560
|
||||
sample 0:
|
||||
|
@ -17,7 +17,7 @@ track 0:
|
||||
width = 1080
|
||||
height = 720
|
||||
frameRate = 32.113037
|
||||
metadata = entries=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
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=[Creation time: 500000000]
|
||||
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
|
||||
initializationData:
|
||||
data = length 2, hash 5F7
|
||||
sample 0:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user