Merge pull request #491 from v-novaltd:dsparano-exo128

PiperOrigin-RevId: 574129451
This commit is contained in:
Copybara-Service 2023-10-17 06:35:19 -07:00
commit 009d48a75e
143 changed files with 642 additions and 71 deletions

View File

@ -4,6 +4,8 @@
* Common Library: * Common Library:
* ExoPlayer: * ExoPlayer:
* Add luma and chroma bitdepth to `ColorInfo`
[#491](https://github.com/androidx/media/pull/491).
* Transformer: * Transformer:
* Track Selection: * Track Selection:
* Add `DefaultTrackSelector.Parameters.allowAudioNonSeamlessAdaptiveness` * Add `DefaultTrackSelector.Parameters.allowAudioNonSeamlessAdaptiveness`

View File

@ -43,12 +43,16 @@ public final class ColorInfo implements Bundleable {
private @C.ColorRange int colorRange; private @C.ColorRange int colorRange;
private @C.ColorTransfer int colorTransfer; private @C.ColorTransfer int colorTransfer;
@Nullable private byte[] hdrStaticInfo; @Nullable private byte[] hdrStaticInfo;
private int lumaBitdepth;
private int chromaBitdepth;
/** Creates a new instance with default values. */ /** Creates a new instance with default values. */
public Builder() { public Builder() {
colorSpace = Format.NO_VALUE; colorSpace = Format.NO_VALUE;
colorRange = Format.NO_VALUE; colorRange = Format.NO_VALUE;
colorTransfer = Format.NO_VALUE; colorTransfer = Format.NO_VALUE;
lumaBitdepth = Format.NO_VALUE;
chromaBitdepth = Format.NO_VALUE;
} }
/** Creates a new instance to build upon the provided {@link ColorInfo}. */ /** Creates a new instance to build upon the provided {@link ColorInfo}. */
@ -57,6 +61,8 @@ public final class ColorInfo implements Bundleable {
this.colorRange = colorInfo.colorRange; this.colorRange = colorInfo.colorRange;
this.colorTransfer = colorInfo.colorTransfer; this.colorTransfer = colorInfo.colorTransfer;
this.hdrStaticInfo = colorInfo.hdrStaticInfo; this.hdrStaticInfo = colorInfo.hdrStaticInfo;
this.lumaBitdepth = colorInfo.lumaBitdepth;
this.chromaBitdepth = colorInfo.chromaBitdepth;
} }
/** /**
@ -116,19 +122,44 @@ public final class ColorInfo implements Bundleable {
return this; return this;
} }
/**
* Sets the luma bit depth.
*
* @param lumaBitdepth The lumaBitdepth. The default value is {@link Format#NO_VALUE}.
* @return The builder.
*/
@CanIgnoreReturnValue
public Builder setLumaBitdepth(int lumaBitdepth) {
this.lumaBitdepth = lumaBitdepth;
return this;
}
/**
* Sets chroma bit depth.
*
* @param chromaBitdepth The chromaBitdepth. The default value is {@link Format#NO_VALUE}.
* @return The builder.
*/
@CanIgnoreReturnValue
public Builder setChromaBitdepth(int chromaBitdepth) {
this.chromaBitdepth = chromaBitdepth;
return this;
}
/** Builds a new {@link ColorInfo} instance. */ /** Builds a new {@link ColorInfo} instance. */
public ColorInfo build() { public ColorInfo build() {
return new ColorInfo(colorSpace, colorRange, colorTransfer, hdrStaticInfo); return new ColorInfo(
colorSpace, colorRange, colorTransfer, hdrStaticInfo, lumaBitdepth, chromaBitdepth);
} }
} }
/** Color info representing SDR BT.709 limited range, which is a common SDR video color format. */ /** Color info representing SDR BT.709 limited range, which is a common SDR video color format. */
public static final ColorInfo SDR_BT709_LIMITED = public static final ColorInfo SDR_BT709_LIMITED =
new ColorInfo( new ColorInfo.Builder()
C.COLOR_SPACE_BT709, .setColorSpace(C.COLOR_SPACE_BT709)
C.COLOR_RANGE_LIMITED, .setColorRange(C.COLOR_RANGE_LIMITED)
C.COLOR_TRANSFER_SDR, .setColorTransfer(C.COLOR_TRANSFER_SDR)
/* hdrStaticInfo= */ null); .build();
/** /**
* Color info representing SDR sRGB in accordance with {@link * Color info representing SDR sRGB in accordance with {@link
@ -213,6 +244,12 @@ public final class ColorInfo implements Bundleable {
/** HdrStaticInfo as defined in CTA-861.3, or null if none specified. */ /** HdrStaticInfo as defined in CTA-861.3, or null if none specified. */
@Nullable public final byte[] hdrStaticInfo; @Nullable public final byte[] hdrStaticInfo;
/** The bit depth of the luma samples of the video. */
public final int lumaBitdepth;
/** The bit depth of the chroma samples of the video. It may differ from the luma bit depth. */
public final int chromaBitdepth;
// Lazily initialized hashcode. // Lazily initialized hashcode.
private int hashCode; private int hashCode;
@ -231,10 +268,34 @@ public final class ColorInfo implements Bundleable {
@C.ColorRange int colorRange, @C.ColorRange int colorRange,
@C.ColorTransfer int colorTransfer, @C.ColorTransfer int colorTransfer,
@Nullable byte[] hdrStaticInfo) { @Nullable byte[] hdrStaticInfo) {
this(colorSpace, colorRange, colorTransfer, hdrStaticInfo, Format.NO_VALUE, Format.NO_VALUE);
}
/**
* Constructs the ColorInfo.
*
* @param colorSpace The color space of the video.
* @param colorRange The color range of the video.
* @param colorTransfer The color transfer characteristics of the video.
* @param hdrStaticInfo HdrStaticInfo as defined in CTA-861.3, or null if none specified.
* @param lumaBitdepth The bit depth of the luma samples of the video.
* @param chromaBitdepth The bit depth of the chroma samples of the video.
* @deprecated Use {@link Builder}.
*/
@Deprecated
public ColorInfo(
@C.ColorSpace int colorSpace,
@C.ColorRange int colorRange,
@C.ColorTransfer int colorTransfer,
@Nullable byte[] hdrStaticInfo,
int lumaBitdepth,
int chromaBitdepth) {
this.colorSpace = colorSpace; this.colorSpace = colorSpace;
this.colorRange = colorRange; this.colorRange = colorRange;
this.colorTransfer = colorTransfer; this.colorTransfer = colorTransfer;
this.hdrStaticInfo = hdrStaticInfo; this.hdrStaticInfo = hdrStaticInfo;
this.lumaBitdepth = lumaBitdepth;
this.chromaBitdepth = chromaBitdepth;
} }
/** Returns a {@link Builder} initialized with the values of this instance. */ /** Returns a {@link Builder} initialized with the values of this instance. */
@ -245,9 +306,27 @@ public final class ColorInfo implements Bundleable {
/** /**
* Returns whether this instance is valid. * Returns whether this instance is valid.
* *
* <p>This instance is valid if no members are {@link Format#NO_VALUE}. * <p>This instance is valid if at least one between bitdepths and DataSpace info are valid.
*/ */
public boolean isValid() { public boolean isValid() {
return isBitdepthValid() || isDataSpaceValid();
}
/**
* Returns whether this instance has valid bitdepths.
*
* <p>This instance has valid bitdepths if none of them is {@link Format#NO_VALUE}.
*/
public boolean isBitdepthValid() {
return lumaBitdepth != Format.NO_VALUE && chromaBitdepth != Format.NO_VALUE;
}
/**
* Returns whether this instance has valid DataSpace members.
*
* <p>This instance is valid if no DataSpace members are {@link Format#NO_VALUE}.
*/
public boolean isDataSpaceValid() {
return colorSpace != Format.NO_VALUE return colorSpace != Format.NO_VALUE
&& colorRange != Format.NO_VALUE && colorRange != Format.NO_VALUE
&& colorTransfer != Format.NO_VALUE; && colorTransfer != Format.NO_VALUE;
@ -259,15 +338,16 @@ public final class ColorInfo implements Bundleable {
* @see Format#toLogString(Format) * @see Format#toLogString(Format)
*/ */
public String toLogString() { public String toLogString() {
if (!isValid()) { String dataspaceString =
return "NA"; isDataSpaceValid()
} ? Util.formatInvariant(
"%s/%s/%s",
return Util.formatInvariant( colorSpaceToString(colorSpace),
"%s/%s/%s", colorRangeToString(colorRange),
colorSpaceToString(colorSpace), colorTransferToString(colorTransfer))
colorRangeToString(colorRange), : "NA/NA/NA";
colorTransferToString(colorTransfer)); String bitdepthsString = isBitdepthValid() ? lumaBitdepth + "/" + chromaBitdepth : "NA/NA";
return dataspaceString + "/" + bitdepthsString;
} }
@Override @Override
@ -282,7 +362,24 @@ public final class ColorInfo implements Bundleable {
return colorSpace == other.colorSpace return colorSpace == other.colorSpace
&& colorRange == other.colorRange && colorRange == other.colorRange
&& colorTransfer == other.colorTransfer && colorTransfer == other.colorTransfer
&& Arrays.equals(hdrStaticInfo, other.hdrStaticInfo); && Arrays.equals(hdrStaticInfo, other.hdrStaticInfo)
&& lumaBitdepth == other.lumaBitdepth
&& chromaBitdepth == other.chromaBitdepth;
}
@Override
public int hashCode() {
if (hashCode == 0) {
int result = 17;
result = 31 * result + colorSpace;
result = 31 * result + colorRange;
result = 31 * result + colorTransfer;
result = 31 * result + Arrays.hashCode(hdrStaticInfo);
result = 31 * result + lumaBitdepth;
result = 31 * result + chromaBitdepth;
hashCode = result;
}
return hashCode;
} }
@Override @Override
@ -295,9 +392,21 @@ public final class ColorInfo implements Bundleable {
+ colorTransferToString(colorTransfer) + colorTransferToString(colorTransfer)
+ ", " + ", "
+ (hdrStaticInfo != null) + (hdrStaticInfo != null)
+ ", "
+ lumaBitdepthToString(lumaBitdepth)
+ ", "
+ chromaBitdepthToString(chromaBitdepth)
+ ")"; + ")";
} }
private static String lumaBitdepthToString(int val) {
return val != Format.NO_VALUE ? val + "bit Luma" : "NA";
}
private static String chromaBitdepthToString(int val) {
return val != Format.NO_VALUE ? val + "bit Chroma" : "NA";
}
private static String colorSpaceToString(@C.ColorSpace int colorSpace) { private static String colorSpaceToString(@C.ColorSpace int colorSpace) {
// LINT.IfChange(color_space) // LINT.IfChange(color_space)
switch (colorSpace) { switch (colorSpace) {
@ -350,25 +459,14 @@ public final class ColorInfo implements Bundleable {
} }
} }
@Override
public int hashCode() {
if (hashCode == 0) {
int result = 17;
result = 31 * result + colorSpace;
result = 31 * result + colorRange;
result = 31 * result + colorTransfer;
result = 31 * result + Arrays.hashCode(hdrStaticInfo);
hashCode = result;
}
return hashCode;
}
// Bundleable implementation // Bundleable implementation
private static final String FIELD_COLOR_SPACE = Util.intToStringMaxRadix(0); private static final String FIELD_COLOR_SPACE = Util.intToStringMaxRadix(0);
private static final String FIELD_COLOR_RANGE = Util.intToStringMaxRadix(1); private static final String FIELD_COLOR_RANGE = Util.intToStringMaxRadix(1);
private static final String FIELD_COLOR_TRANSFER = Util.intToStringMaxRadix(2); private static final String FIELD_COLOR_TRANSFER = Util.intToStringMaxRadix(2);
private static final String FIELD_HDR_STATIC_INFO = Util.intToStringMaxRadix(3); private static final String FIELD_HDR_STATIC_INFO = Util.intToStringMaxRadix(3);
private static final String FIELD_LUMA_BITDEPTH = Util.intToStringMaxRadix(4);
private static final String FIELD_CHROMA_BITDEPTH = Util.intToStringMaxRadix(5);
@Override @Override
public Bundle toBundle() { public Bundle toBundle() {
@ -377,6 +475,8 @@ public final class ColorInfo implements Bundleable {
bundle.putInt(FIELD_COLOR_RANGE, colorRange); bundle.putInt(FIELD_COLOR_RANGE, colorRange);
bundle.putInt(FIELD_COLOR_TRANSFER, colorTransfer); bundle.putInt(FIELD_COLOR_TRANSFER, colorTransfer);
bundle.putByteArray(FIELD_HDR_STATIC_INFO, hdrStaticInfo); bundle.putByteArray(FIELD_HDR_STATIC_INFO, hdrStaticInfo);
bundle.putInt(FIELD_LUMA_BITDEPTH, lumaBitdepth);
bundle.putInt(FIELD_CHROMA_BITDEPTH, chromaBitdepth);
return bundle; return bundle;
} }
@ -386,5 +486,7 @@ public final class ColorInfo implements Bundleable {
bundle.getInt(FIELD_COLOR_SPACE, Format.NO_VALUE), bundle.getInt(FIELD_COLOR_SPACE, Format.NO_VALUE),
bundle.getInt(FIELD_COLOR_RANGE, Format.NO_VALUE), bundle.getInt(FIELD_COLOR_RANGE, Format.NO_VALUE),
bundle.getInt(FIELD_COLOR_TRANSFER, Format.NO_VALUE), bundle.getInt(FIELD_COLOR_TRANSFER, Format.NO_VALUE),
bundle.getByteArray(FIELD_HDR_STATIC_INFO)); bundle.getByteArray(FIELD_HDR_STATIC_INFO),
bundle.getInt(FIELD_LUMA_BITDEPTH, Format.NO_VALUE),
bundle.getInt(FIELD_CHROMA_BITDEPTH, Format.NO_VALUE));
} }

View File

@ -78,7 +78,9 @@ public final class FormatTest {
C.COLOR_SPACE_BT709, C.COLOR_SPACE_BT709,
C.COLOR_RANGE_LIMITED, C.COLOR_RANGE_LIMITED,
C.COLOR_TRANSFER_SDR, C.COLOR_TRANSFER_SDR,
new byte[] {1, 2, 3, 4, 5, 6, 7}); new byte[] {1, 2, 3, 4, 5, 6, 7},
/* lumaBitdepth */ 9,
/* chromaBitdepth */ 11);
return new Format.Builder() return new Format.Builder()
.setId("id") .setId("id")

View File

@ -150,11 +150,12 @@ public class MediaFormatUtilTest {
.setAverageBitrate(1) .setAverageBitrate(1)
.setChannelCount(2) .setChannelCount(2)
.setColorInfo( .setColorInfo(
new ColorInfo( new ColorInfo.Builder()
/* colorSpace= */ C.COLOR_SPACE_BT601, .setColorSpace(C.COLOR_SPACE_BT601)
/* colorRange= */ C.COLOR_RANGE_FULL, .setColorRange(C.COLOR_RANGE_FULL)
/* colorTransfer= */ C.COLOR_TRANSFER_HLG, .setColorTransfer(C.COLOR_TRANSFER_HLG)
new byte[] {3})) .setHdrStaticInfo(new byte[] {3})
.build())
.setSampleMimeType(MimeTypes.VIDEO_H264) .setSampleMimeType(MimeTypes.VIDEO_H264)
.setCodecs("avc.123") .setCodecs("avc.123")
.setFrameRate(4) .setFrameRate(4)

View File

@ -66,6 +66,8 @@ public final class NalUnitUtil {
public final int width; public final int width;
public final int height; public final int height;
public final float pixelWidthHeightRatio; public final float pixelWidthHeightRatio;
public final int bitDepthLumaMinus8;
public final int bitDepthChromaMinus8;
public final boolean separateColorPlaneFlag; public final boolean separateColorPlaneFlag;
public final boolean frameMbsOnlyFlag; public final boolean frameMbsOnlyFlag;
public final int frameNumLength; public final int frameNumLength;
@ -85,6 +87,8 @@ public final class NalUnitUtil {
int width, int width,
int height, int height,
float pixelWidthHeightRatio, float pixelWidthHeightRatio,
int bitDepthLumaMinus8,
int bitDepthChromaMinus8,
boolean separateColorPlaneFlag, boolean separateColorPlaneFlag,
boolean frameMbsOnlyFlag, boolean frameMbsOnlyFlag,
int frameNumLength, int frameNumLength,
@ -102,6 +106,8 @@ public final class NalUnitUtil {
this.width = width; this.width = width;
this.height = height; this.height = height;
this.pixelWidthHeightRatio = pixelWidthHeightRatio; this.pixelWidthHeightRatio = pixelWidthHeightRatio;
this.bitDepthLumaMinus8 = bitDepthLumaMinus8;
this.bitDepthChromaMinus8 = bitDepthChromaMinus8;
this.separateColorPlaneFlag = separateColorPlaneFlag; this.separateColorPlaneFlag = separateColorPlaneFlag;
this.frameMbsOnlyFlag = frameMbsOnlyFlag; this.frameMbsOnlyFlag = frameMbsOnlyFlag;
this.frameNumLength = frameNumLength; this.frameNumLength = frameNumLength;
@ -382,6 +388,8 @@ public final class NalUnitUtil {
int chromaFormatIdc = 1; // Default is 4:2:0 int chromaFormatIdc = 1; // Default is 4:2:0
boolean separateColorPlaneFlag = false; boolean separateColorPlaneFlag = false;
int bitDepthLumaMinus8 = 0;
int bitDepthChromaMinus8 = 0;
if (profileIdc == 100 if (profileIdc == 100
|| profileIdc == 110 || profileIdc == 110
|| profileIdc == 122 || profileIdc == 122
@ -396,8 +404,8 @@ public final class NalUnitUtil {
if (chromaFormatIdc == 3) { if (chromaFormatIdc == 3) {
separateColorPlaneFlag = data.readBit(); separateColorPlaneFlag = data.readBit();
} }
data.readUnsignedExpGolombCodedInt(); // bit_depth_luma_minus8 bitDepthLumaMinus8 = data.readUnsignedExpGolombCodedInt();
data.readUnsignedExpGolombCodedInt(); // bit_depth_chroma_minus8 bitDepthChromaMinus8 = data.readUnsignedExpGolombCodedInt();
data.skipBit(); // qpprime_y_zero_transform_bypass_flag data.skipBit(); // qpprime_y_zero_transform_bypass_flag
boolean seqScalingMatrixPresentFlag = data.readBit(); boolean seqScalingMatrixPresentFlag = data.readBit();
if (seqScalingMatrixPresentFlag) { if (seqScalingMatrixPresentFlag) {
@ -511,6 +519,8 @@ public final class NalUnitUtil {
frameWidth, frameWidth,
frameHeight, frameHeight,
pixelWidthHeightRatio, pixelWidthHeightRatio,
bitDepthLumaMinus8,
bitDepthChromaMinus8,
separateColorPlaneFlag, separateColorPlaneFlag,
frameMbsOnlyFlag, frameMbsOnlyFlag,
frameNumLength, frameNumLength,

View File

@ -253,9 +253,9 @@ public final class DefaultVideoFrameProcessor implements VideoFrameProcessor {
throws VideoFrameProcessingException { throws VideoFrameProcessingException {
// TODO(b/261188041) Add tests to verify the Listener is invoked on the given Executor. // TODO(b/261188041) Add tests to verify the Listener is invoked on the given Executor.
checkArgument(inputColorInfo.isValid()); checkArgument(inputColorInfo.isDataSpaceValid());
checkArgument(inputColorInfo.colorTransfer != C.COLOR_TRANSFER_LINEAR); checkArgument(inputColorInfo.colorTransfer != C.COLOR_TRANSFER_LINEAR);
checkArgument(outputColorInfo.isValid()); checkArgument(outputColorInfo.isDataSpaceValid());
checkArgument(outputColorInfo.colorTransfer != C.COLOR_TRANSFER_LINEAR); checkArgument(outputColorInfo.colorTransfer != C.COLOR_TRANSFER_LINEAR);
if (ColorInfo.isTransferHdr(inputColorInfo) || ColorInfo.isTransferHdr(outputColorInfo)) { if (ColorInfo.isTransferHdr(inputColorInfo) || ColorInfo.isTransferHdr(outputColorInfo)) {
checkArgument(enableColorTransfers); checkArgument(enableColorTransfers);

View File

@ -430,7 +430,10 @@ public final class MediaCodecInfoTest {
} }
private static ColorInfo buildColorInfo(@C.ColorSpace int colorSpace) { private static ColorInfo buildColorInfo(@C.ColorSpace int colorSpace) {
return new ColorInfo( return new ColorInfo.Builder()
colorSpace, C.COLOR_RANGE_FULL, C.COLOR_TRANSFER_HLG, /* hdrStaticInfo= */ null); .setColorSpace(colorSpace)
.setColorRange(C.COLOR_RANGE_FULL)
.setColorTransfer(C.COLOR_TRANSFER_HLG)
.build();
} }
} }

View File

@ -90,11 +90,12 @@ public final class MediaCodecUtilTest {
@Test @Test
public void getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithHdrInfoSet() { public void getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithHdrInfoSet() {
ColorInfo colorInfo = ColorInfo colorInfo =
new ColorInfo( new ColorInfo.Builder()
/* colorSpace= */ C.COLOR_SPACE_BT709, .setColorSpace(C.COLOR_SPACE_BT709)
/* colorRange= */ C.COLOR_RANGE_LIMITED, .setColorRange(C.COLOR_RANGE_LIMITED)
/* colorTransfer= */ C.COLOR_TRANSFER_SDR, .setColorTransfer(C.COLOR_TRANSFER_SDR)
/* hdrStaticInfo= */ new byte[] {1, 2, 3, 4, 5, 6, 7}); .setHdrStaticInfo(new byte[] {1, 2, 3, 4, 5, 6, 7})
.build();
Format format = Format format =
new Format.Builder() new Format.Builder()
.setSampleMimeType(MimeTypes.VIDEO_AV1) .setSampleMimeType(MimeTypes.VIDEO_AV1)
@ -110,11 +111,11 @@ public final class MediaCodecUtilTest {
@Test @Test
public void getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithoutHdrInfoSet() { public void getCodecProfileAndLevel_handlesAv1ProfileMain10HDRWithoutHdrInfoSet() {
ColorInfo colorInfo = ColorInfo colorInfo =
new ColorInfo( new ColorInfo.Builder()
/* colorSpace= */ C.COLOR_SPACE_BT709, .setColorSpace(C.COLOR_SPACE_BT709)
/* colorRange= */ C.COLOR_RANGE_LIMITED, .setColorRange(C.COLOR_RANGE_LIMITED)
/* colorTransfer= */ C.COLOR_TRANSFER_HLG, .setColorTransfer(C.COLOR_TRANSFER_HLG)
/* hdrStaticInfo= */ null); .build();
Format format = Format format =
new Format.Builder() new Format.Builder()
.setSampleMimeType(MimeTypes.VIDEO_AV1) .setSampleMimeType(MimeTypes.VIDEO_AV1)

View File

@ -32,6 +32,7 @@ import android.util.Pair;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.ColorInfo;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes; import androidx.media3.common.MimeTypes;
import androidx.media3.common.ParserException; import androidx.media3.common.ParserException;
@ -50,7 +51,6 @@ import com.google.common.collect.ImmutableMap;
// Format specific parameter names. // Format specific parameter names.
private static final String PARAMETER_PROFILE_LEVEL_ID = "profile-level-id"; private static final String PARAMETER_PROFILE_LEVEL_ID = "profile-level-id";
private static final String PARAMETER_SPROP_PARAMS = "sprop-parameter-sets"; private static final String PARAMETER_SPROP_PARAMS = "sprop-parameter-sets";
private static final String PARAMETER_AMR_OCTET_ALIGN = "octet-align"; private static final String PARAMETER_AMR_OCTET_ALIGN = "octet-align";
private static final String PARAMETER_AMR_INTERLEAVING = "interleaving"; private static final String PARAMETER_AMR_INTERLEAVING = "interleaving";
private static final String PARAMETER_H265_SPROP_SPS = "sprop-sps"; private static final String PARAMETER_H265_SPROP_SPS = "sprop-sps";
@ -421,6 +421,14 @@ import com.google.common.collect.ImmutableMap;
formatBuilder.setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio); formatBuilder.setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio);
formatBuilder.setHeight(spsData.height); formatBuilder.setHeight(spsData.height);
formatBuilder.setWidth(spsData.width); formatBuilder.setWidth(spsData.width);
formatBuilder.setColorInfo(
new ColorInfo.Builder()
.setColorSpace(spsData.colorSpace)
.setColorRange(spsData.colorRange)
.setColorTransfer(spsData.colorTransfer)
.setLumaBitdepth(spsData.bitDepthLumaMinus8 + 8)
.setChromaBitdepth(spsData.bitDepthChromaMinus8 + 8)
.build());
@Nullable String profileLevel = fmtpAttributes.get(PARAMETER_PROFILE_LEVEL_ID); @Nullable String profileLevel = fmtpAttributes.get(PARAMETER_PROFILE_LEVEL_ID);
if (profileLevel != null) { if (profileLevel != null) {
@ -464,6 +472,14 @@ import com.google.common.collect.ImmutableMap;
spsNalDataWithStartCode, NAL_START_CODE.length, spsNalDataWithStartCode.length); spsNalDataWithStartCode, NAL_START_CODE.length, spsNalDataWithStartCode.length);
formatBuilder.setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio); formatBuilder.setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio);
formatBuilder.setHeight(spsData.height).setWidth(spsData.width); formatBuilder.setHeight(spsData.height).setWidth(spsData.width);
formatBuilder.setColorInfo(
new ColorInfo.Builder()
.setColorSpace(spsData.colorSpace)
.setColorRange(spsData.colorRange)
.setColorTransfer(spsData.colorTransfer)
.setLumaBitdepth(spsData.bitDepthLumaMinus8 + 8)
.setChromaBitdepth(spsData.bitDepthChromaMinus8 + 8)
.build());
formatBuilder.setCodecs( formatBuilder.setCodecs(
CodecSpecificDataUtil.buildHevcCodecString( CodecSpecificDataUtil.buildHevcCodecString(

View File

@ -26,6 +26,7 @@ import static org.junit.Assert.assertThrows;
import android.net.Uri; import android.net.Uri;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.ColorInfo;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes; import androidx.media3.common.MimeTypes;
import androidx.media3.extractor.AacUtil; import androidx.media3.extractor.AacUtil;
@ -73,6 +74,12 @@ public class RtspMediaTrackTest {
.setHeight(544) .setHeight(544)
.setWidth(960) .setWidth(960)
.setCodecs("avc1.64001F") .setCodecs("avc1.64001F")
.setColorInfo(
new ColorInfo.Builder()
.setColorRange(1)
.setLumaBitdepth(8)
.setChromaBitdepth(8)
.build())
.setInitializationData( .setInitializationData(
ImmutableList.of( ImmutableList.of(
new byte[] { new byte[] {
@ -246,6 +253,12 @@ public class RtspMediaTrackTest {
.setHeight(544) .setHeight(544)
.setWidth(960) .setWidth(960)
.setCodecs("avc1.64001F") .setCodecs("avc1.64001F")
.setColorInfo(
new ColorInfo.Builder()
.setColorRange(1)
.setChromaBitdepth(8)
.setLumaBitdepth(8)
.build())
.setInitializationData( .setInitializationData(
ImmutableList.of( ImmutableList.of(
new byte[] { new byte[] {

View File

@ -58,6 +58,8 @@ public final class AvcConfig {
int width = Format.NO_VALUE; int width = Format.NO_VALUE;
int height = Format.NO_VALUE; int height = Format.NO_VALUE;
int bitdepthLuma = Format.NO_VALUE;
int bitdepthChroma = Format.NO_VALUE;
@C.ColorSpace int colorSpace = Format.NO_VALUE; @C.ColorSpace int colorSpace = Format.NO_VALUE;
@C.ColorRange int colorRange = Format.NO_VALUE; @C.ColorRange int colorRange = Format.NO_VALUE;
@C.ColorTransfer int colorTransfer = Format.NO_VALUE; @C.ColorTransfer int colorTransfer = Format.NO_VALUE;
@ -70,6 +72,8 @@ public final class AvcConfig {
initializationData.get(0), nalUnitLengthFieldLength, sps.length); initializationData.get(0), nalUnitLengthFieldLength, sps.length);
width = spsData.width; width = spsData.width;
height = spsData.height; height = spsData.height;
bitdepthLuma = spsData.bitDepthLumaMinus8 + 8;
bitdepthChroma = spsData.bitDepthChromaMinus8 + 8;
colorSpace = spsData.colorSpace; colorSpace = spsData.colorSpace;
colorRange = spsData.colorRange; colorRange = spsData.colorRange;
colorTransfer = spsData.colorTransfer; colorTransfer = spsData.colorTransfer;
@ -84,6 +88,8 @@ public final class AvcConfig {
nalUnitLengthFieldLength, nalUnitLengthFieldLength,
width, width,
height, height,
bitdepthLuma,
bitdepthChroma,
colorSpace, colorSpace,
colorRange, colorRange,
colorTransfer, colorTransfer,
@ -110,6 +116,12 @@ public final class AvcConfig {
/** The height of each decoded frame, or {@link Format#NO_VALUE} if unknown. */ /** The height of each decoded frame, or {@link Format#NO_VALUE} if unknown. */
public final int height; public final int height;
/** The bit depth of the luma samples, or {@link Format#NO_VALUE} if unknown. */
public final int bitdepthLuma;
/** The bit depth of the chroma samples, or {@link Format#NO_VALUE} if unknown. */
public final int bitdepthChroma;
/** /**
* The {@link C.ColorSpace} of the video, or {@link Format#NO_VALUE} if unknown or not applicable. * The {@link C.ColorSpace} of the video, or {@link Format#NO_VALUE} if unknown or not applicable.
*/ */
@ -141,6 +153,8 @@ public final class AvcConfig {
int nalUnitLengthFieldLength, int nalUnitLengthFieldLength,
int width, int width,
int height, int height,
int bitdepthLuma,
int bitdepthChroma,
@C.ColorSpace int colorSpace, @C.ColorSpace int colorSpace,
@C.ColorRange int colorRange, @C.ColorRange int colorRange,
@C.ColorTransfer int colorTransfer, @C.ColorTransfer int colorTransfer,
@ -150,6 +164,8 @@ public final class AvcConfig {
this.nalUnitLengthFieldLength = nalUnitLengthFieldLength; this.nalUnitLengthFieldLength = nalUnitLengthFieldLength;
this.width = width; this.width = width;
this.height = height; this.height = height;
this.bitdepthLuma = bitdepthLuma;
this.bitdepthChroma = bitdepthChroma;
this.colorSpace = colorSpace; this.colorSpace = colorSpace;
this.colorRange = colorRange; this.colorRange = colorRange;
this.colorTransfer = colorTransfer; this.colorTransfer = colorTransfer;

View File

@ -63,6 +63,8 @@ public final class HevcConfig {
int bufferPosition = 0; int bufferPosition = 0;
int width = Format.NO_VALUE; int width = Format.NO_VALUE;
int height = Format.NO_VALUE; int height = Format.NO_VALUE;
int bitdepthLuma = Format.NO_VALUE;
int bitdepthChroma = Format.NO_VALUE;
@C.ColorSpace int colorSpace = Format.NO_VALUE; @C.ColorSpace int colorSpace = Format.NO_VALUE;
@C.ColorRange int colorRange = Format.NO_VALUE; @C.ColorRange int colorRange = Format.NO_VALUE;
@C.ColorTransfer int colorTransfer = Format.NO_VALUE; @C.ColorTransfer int colorTransfer = Format.NO_VALUE;
@ -89,6 +91,8 @@ public final class HevcConfig {
buffer, bufferPosition, bufferPosition + nalUnitLength); buffer, bufferPosition, bufferPosition + nalUnitLength);
width = spsData.width; width = spsData.width;
height = spsData.height; height = spsData.height;
bitdepthLuma = spsData.bitDepthLumaMinus8 + 8;
bitdepthChroma = spsData.bitDepthChromaMinus8 + 8;
colorSpace = spsData.colorSpace; colorSpace = spsData.colorSpace;
colorRange = spsData.colorRange; colorRange = spsData.colorRange;
colorTransfer = spsData.colorTransfer; colorTransfer = spsData.colorTransfer;
@ -114,6 +118,8 @@ public final class HevcConfig {
lengthSizeMinusOne + 1, lengthSizeMinusOne + 1,
width, width,
height, height,
bitdepthLuma,
bitdepthChroma,
colorSpace, colorSpace,
colorRange, colorRange,
colorTransfer, colorTransfer,
@ -142,6 +148,12 @@ public final class HevcConfig {
/** The height of each decoded frame, or {@link Format#NO_VALUE} if unknown. */ /** The height of each decoded frame, or {@link Format#NO_VALUE} if unknown. */
public final int height; public final int height;
/** The bit depth of the luma samples, or {@link Format#NO_VALUE} if unknown. */
public final int bitdepthLuma;
/** The bit depth of the chroma samples, or {@link Format#NO_VALUE} if unknown. */
public final int bitdepthChroma;
/** /**
* The {@link C.ColorSpace} of the video or {@link Format#NO_VALUE} if unknown or not applicable. * The {@link C.ColorSpace} of the video or {@link Format#NO_VALUE} if unknown or not applicable.
*/ */
@ -173,6 +185,8 @@ public final class HevcConfig {
int nalUnitLengthFieldLength, int nalUnitLengthFieldLength,
int width, int width,
int height, int height,
int bitdepthLuma,
int bitdepthChroma,
@C.ColorSpace int colorSpace, @C.ColorSpace int colorSpace,
@C.ColorRange int colorRange, @C.ColorRange int colorRange,
@C.ColorTransfer int colorTransfer, @C.ColorTransfer int colorTransfer,
@ -182,6 +196,8 @@ public final class HevcConfig {
this.nalUnitLengthFieldLength = nalUnitLengthFieldLength; this.nalUnitLengthFieldLength = nalUnitLengthFieldLength;
this.width = width; this.width = width;
this.height = height; this.height = height;
this.bitdepthLuma = bitdepthLuma;
this.bitdepthChroma = bitdepthChroma;
this.colorSpace = colorSpace; this.colorSpace = colorSpace;
this.colorRange = colorRange; this.colorRange = colorRange;
this.colorTransfer = colorTransfer; this.colorTransfer = colorTransfer;

View File

@ -232,6 +232,7 @@ public class MatroskaExtractor implements Extractor {
private static final int ID_STEREO_MODE = 0x53B8; private static final int ID_STEREO_MODE = 0x53B8;
private static final int ID_COLOUR = 0x55B0; private static final int ID_COLOUR = 0x55B0;
private static final int ID_COLOUR_RANGE = 0x55B9; private static final int ID_COLOUR_RANGE = 0x55B9;
private static final int ID_COLOUR_BITS_PER_CHANNEL = 0x55B2;
private static final int ID_COLOUR_TRANSFER = 0x55BA; private static final int ID_COLOUR_TRANSFER = 0x55BA;
private static final int ID_COLOUR_PRIMARIES = 0x55BB; private static final int ID_COLOUR_PRIMARIES = 0x55BB;
private static final int ID_MAX_CLL = 0x55BC; private static final int ID_MAX_CLL = 0x55BC;
@ -608,6 +609,7 @@ public class MatroskaExtractor implements Extractor {
case ID_CUE_CLUSTER_POSITION: case ID_CUE_CLUSTER_POSITION:
case ID_REFERENCE_BLOCK: case ID_REFERENCE_BLOCK:
case ID_STEREO_MODE: case ID_STEREO_MODE:
case ID_COLOUR_BITS_PER_CHANNEL:
case ID_COLOUR_RANGE: case ID_COLOUR_RANGE:
case ID_COLOUR_TRANSFER: case ID_COLOUR_TRANSFER:
case ID_COLOUR_PRIMARIES: case ID_COLOUR_PRIMARIES:
@ -1017,6 +1019,11 @@ public class MatroskaExtractor implements Extractor {
currentTrack.colorTransfer = colorTransfer; currentTrack.colorTransfer = colorTransfer;
} }
break; break;
case ID_COLOUR_BITS_PER_CHANNEL:
assertInTrackEntry(id);
currentTrack.hasColorInfo = true;
currentTrack.bitsPerChannel = (int) value;
break;
case ID_COLOUR_RANGE: case ID_COLOUR_RANGE:
assertInTrackEntry(id); assertInTrackEntry(id);
switch ((int) value) { switch ((int) value) {
@ -2013,6 +2020,7 @@ public class MatroskaExtractor implements Extractor {
// Video elements. // Video elements.
public int width = Format.NO_VALUE; public int width = Format.NO_VALUE;
public int height = Format.NO_VALUE; public int height = Format.NO_VALUE;
public int bitsPerChannel = Format.NO_VALUE;
public int displayWidth = Format.NO_VALUE; public int displayWidth = Format.NO_VALUE;
public int displayHeight = Format.NO_VALUE; public int displayHeight = Format.NO_VALUE;
public int displayUnit = DISPLAY_UNIT_PIXELS; public int displayUnit = DISPLAY_UNIT_PIXELS;
@ -2300,7 +2308,15 @@ public class MatroskaExtractor implements Extractor {
@Nullable ColorInfo colorInfo = null; @Nullable ColorInfo colorInfo = null;
if (hasColorInfo) { if (hasColorInfo) {
@Nullable byte[] hdrStaticInfo = getHdrStaticInfo(); @Nullable byte[] hdrStaticInfo = getHdrStaticInfo();
colorInfo = new ColorInfo(colorSpace, colorRange, colorTransfer, hdrStaticInfo); colorInfo =
new ColorInfo.Builder()
.setColorSpace(colorSpace)
.setColorRange(colorRange)
.setColorTransfer(colorTransfer)
.setHdrStaticInfo(hdrStaticInfo)
.setLumaBitdepth(bitsPerChannel)
.setChromaBitdepth(bitsPerChannel)
.build();
} }
int rotationDegrees = Format.NO_VALUE; int rotationDegrees = Format.NO_VALUE;

View File

@ -1111,6 +1111,9 @@ import java.util.List;
int height = parent.readUnsignedShort(); int height = parent.readUnsignedShort();
boolean pixelWidthHeightRatioFromPasp = false; boolean pixelWidthHeightRatioFromPasp = false;
float pixelWidthHeightRatio = 1; float pixelWidthHeightRatio = 1;
// Set default luma and chroma bit depths to 8 as old codecs might not even signal them
int bitdepthLuma = 8;
int bitdepthChroma = 8;
parent.skipBytes(50); parent.skipBytes(50);
int childPosition = parent.getPosition(); int childPosition = parent.getPosition();
@ -1177,6 +1180,8 @@ import java.util.List;
colorSpace = avcConfig.colorSpace; colorSpace = avcConfig.colorSpace;
colorRange = avcConfig.colorRange; colorRange = avcConfig.colorRange;
colorTransfer = avcConfig.colorTransfer; colorTransfer = avcConfig.colorTransfer;
bitdepthLuma = avcConfig.bitdepthLuma;
bitdepthChroma = avcConfig.bitdepthChroma;
} else if (childAtomType == Atom.TYPE_hvcC) { } else if (childAtomType == Atom.TYPE_hvcC) {
ExtractorUtil.checkContainerInput(mimeType == null, /* message= */ null); ExtractorUtil.checkContainerInput(mimeType == null, /* message= */ null);
mimeType = MimeTypes.VIDEO_H265; mimeType = MimeTypes.VIDEO_H265;
@ -1191,6 +1196,8 @@ import java.util.List;
colorSpace = hevcConfig.colorSpace; colorSpace = hevcConfig.colorSpace;
colorRange = hevcConfig.colorRange; colorRange = hevcConfig.colorRange;
colorTransfer = hevcConfig.colorTransfer; colorTransfer = hevcConfig.colorTransfer;
bitdepthLuma = hevcConfig.bitdepthLuma;
bitdepthChroma = hevcConfig.bitdepthChroma;
} else if (childAtomType == Atom.TYPE_dvcC || childAtomType == Atom.TYPE_dvvC) { } else if (childAtomType == Atom.TYPE_dvcC || childAtomType == Atom.TYPE_dvvC) {
@Nullable DolbyVisionConfig dolbyVisionConfig = DolbyVisionConfig.parse(parent); @Nullable DolbyVisionConfig dolbyVisionConfig = DolbyVisionConfig.parse(parent);
if (dolbyVisionConfig != null) { if (dolbyVisionConfig != null) {
@ -1203,7 +1210,10 @@ import java.util.List;
parent.setPosition(childStartPosition + Atom.FULL_HEADER_SIZE); parent.setPosition(childStartPosition + Atom.FULL_HEADER_SIZE);
// See vpcC atom syntax: https://www.webmproject.org/vp9/mp4/#syntax_1 // See vpcC atom syntax: https://www.webmproject.org/vp9/mp4/#syntax_1
parent.skipBytes(2); // profile(8), level(8) parent.skipBytes(2); // profile(8), level(8)
boolean fullRangeFlag = (parent.readUnsignedByte() & 1) != 0; int byte3 = parent.readUnsignedByte();
bitdepthLuma = byte3 >> 4;
bitdepthChroma = bitdepthLuma;
boolean fullRangeFlag = (byte3 & 0b1) != 0;
int colorPrimaries = parent.readUnsignedByte(); int colorPrimaries = parent.readUnsignedByte();
int transferCharacteristics = parent.readUnsignedByte(); int transferCharacteristics = parent.readUnsignedByte();
colorSpace = ColorInfo.isoColorPrimariesToColorSpace(colorPrimaries); colorSpace = ColorInfo.isoColorPrimariesToColorSpace(colorPrimaries);
@ -1213,6 +1223,20 @@ import java.util.List;
} else if (childAtomType == Atom.TYPE_av1C) { } else if (childAtomType == Atom.TYPE_av1C) {
ExtractorUtil.checkContainerInput(mimeType == null, /* message= */ null); ExtractorUtil.checkContainerInput(mimeType == null, /* message= */ null);
mimeType = MimeTypes.VIDEO_AV1; mimeType = MimeTypes.VIDEO_AV1;
parent.setPosition(childStartPosition + Atom.HEADER_SIZE);
parent.skipBytes(1);
int byte2 = parent.readUnsignedByte();
int seqProfile = byte2 >> 5;
int byte3 = parent.readUnsignedByte();
boolean highBitdepth = ((byte3 >> 6) & 0b1) != 0;
// From https://aomediacodec.github.io/av1-spec/av1-spec.pdf#page=44
if (seqProfile == 2 && highBitdepth) {
boolean twelveBit = ((byte3 >> 5) & 0b1) != 0;
bitdepthLuma = twelveBit ? 12 : 10;
} else if (seqProfile <= 2) {
bitdepthLuma = highBitdepth ? 10 : 8;
}
bitdepthChroma = bitdepthLuma;
} else if (childAtomType == Atom.TYPE_clli) { } else if (childAtomType == Atom.TYPE_clli) {
if (hdrStaticInfo == null) { if (hdrStaticInfo == null) {
hdrStaticInfo = allocateHdrStaticInfo(); hdrStaticInfo = allocateHdrStaticInfo();
@ -1339,20 +1363,18 @@ import java.util.List;
.setProjectionData(projectionData) .setProjectionData(projectionData)
.setStereoMode(stereoMode) .setStereoMode(stereoMode)
.setInitializationData(initializationData) .setInitializationData(initializationData)
.setDrmInitData(drmInitData); .setDrmInitData(drmInitData)
if (colorSpace != Format.NO_VALUE // Note that if either mdcv or clli are missing, we leave the corresponding HDR static
|| colorRange != Format.NO_VALUE // metadata bytes with value zero. See [Internal ref: b/194535665].
|| colorTransfer != Format.NO_VALUE .setColorInfo(
|| hdrStaticInfo != null) { new ColorInfo.Builder()
// Note that if either mdcv or clli are missing, we leave the corresponding HDR static .setColorSpace(colorSpace)
// metadata bytes with value zero. See [Internal ref: b/194535665]. .setColorRange(colorRange)
formatBuilder.setColorInfo( .setColorTransfer(colorTransfer)
new ColorInfo( .setHdrStaticInfo(hdrStaticInfo != null ? hdrStaticInfo.array() : null)
colorSpace, .setLumaBitdepth(bitdepthLuma)
colorRange, .setChromaBitdepth(bitdepthChroma)
colorTransfer, .build());
hdrStaticInfo != null ? hdrStaticInfo.array() : null));
}
if (esdsData != null) { if (esdsData != null) {
formatBuilder formatBuilder

View File

@ -20,6 +20,7 @@ import static androidx.media3.extractor.ts.TsPayloadReader.FLAG_RANDOM_ACCESS_IN
import android.util.SparseArray; import android.util.SparseArray;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.ColorInfo;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes; import androidx.media3.common.MimeTypes;
import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Assertions;
@ -219,6 +220,14 @@ public final class H264Reader implements ElementaryStreamReader {
.setCodecs(codecs) .setCodecs(codecs)
.setWidth(spsData.width) .setWidth(spsData.width)
.setHeight(spsData.height) .setHeight(spsData.height)
.setColorInfo(
new ColorInfo.Builder()
.setColorSpace(spsData.colorSpace)
.setColorRange(spsData.colorRange)
.setColorTransfer(spsData.colorTransfer)
.setLumaBitdepth(spsData.bitDepthLumaMinus8 + 8)
.setChromaBitdepth(spsData.bitDepthChromaMinus8 + 8)
.build())
.setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio) .setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio)
.setInitializationData(initializationData) .setInitializationData(initializationData)
.build()); .build());

View File

@ -17,6 +17,7 @@ package androidx.media3.extractor.ts;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.ColorInfo;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.MimeTypes; import androidx.media3.common.MimeTypes;
import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Assertions;
@ -264,6 +265,14 @@ public final class H265Reader implements ElementaryStreamReader {
.setCodecs(codecs) .setCodecs(codecs)
.setWidth(spsData.width) .setWidth(spsData.width)
.setHeight(spsData.height) .setHeight(spsData.height)
.setColorInfo(
new ColorInfo.Builder()
.setColorSpace(spsData.colorSpace)
.setColorRange(spsData.colorRange)
.setColorTransfer(spsData.colorTransfer)
.setLumaBitdepth(spsData.bitDepthLumaMinus8 + 8)
.setChromaBitdepth(spsData.bitDepthChromaMinus8 + 8)
.build())
.setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio) .setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio)
.setInitializationData(Collections.singletonList(csdData)) .setInitializationData(Collections.singletonList(csdData))
.build(); .build();

View File

@ -17,6 +17,9 @@ track 0:
width = 180 width = 180
height = 120 height = 120
pixelWidthHeightRatio = 0.5 pixelWidthHeightRatio = 0.5
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
initializationData: initializationData:
data = length 32, hash 1F3D6E87 data = length 32, hash 1F3D6E87

View File

@ -17,6 +17,9 @@ track 0:
width = 180 width = 180
height = 120 height = 120
pixelWidthHeightRatio = 0.5 pixelWidthHeightRatio = 0.5
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
initializationData: initializationData:
data = length 32, hash 1F3D6E87 data = length 32, hash 1F3D6E87

View File

@ -17,6 +17,9 @@ track 0:
width = 180 width = 180
height = 120 height = 120
pixelWidthHeightRatio = 0.5 pixelWidthHeightRatio = 0.5
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
initializationData: initializationData:
data = length 32, hash 1F3D6E87 data = length 32, hash 1F3D6E87

View File

@ -17,6 +17,9 @@ track 0:
width = 180 width = 180
height = 120 height = 120
pixelWidthHeightRatio = 0.5 pixelWidthHeightRatio = 0.5
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.42.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
initializationData: initializationData:
data = length 32, hash 1F3D6E87 data = length 32, hash 1F3D6E87

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -21,6 +21,8 @@ track 0:
colorSpace = 1 colorSpace = 1
colorRange = 2 colorRange = 2
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000] metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -21,6 +21,8 @@ track 0:
colorSpace = 1 colorSpace = 1
colorRange = 2 colorRange = 2
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000] metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -21,6 +21,8 @@ track 0:
colorSpace = 1 colorSpace = 1
colorRange = 2 colorRange = 2
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000] metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -21,6 +21,8 @@ track 0:
colorSpace = 1 colorSpace = 1
colorRange = 2 colorRange = 2
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000] metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -21,6 +21,8 @@ track 0:
colorSpace = 1 colorSpace = 1
colorRange = 2 colorRange = 2
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000] metadata = entries=[Mp4Timestamp: creation time=3718109610, modification time=3718109610, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -20,6 +20,8 @@ track 0:
colorInfo: colorInfo:
colorSpace = 2 colorSpace = 2
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 22, hash 4CF81805 data = length 22, hash 4CF81805

View File

@ -20,6 +20,8 @@ track 0:
colorInfo: colorInfo:
colorSpace = 2 colorSpace = 2
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 22, hash 4CF81805 data = length 22, hash 4CF81805

View File

@ -20,6 +20,8 @@ track 0:
colorInfo: colorInfo:
colorSpace = 2 colorSpace = 2
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 22, hash 4CF81805 data = length 22, hash 4CF81805

View File

@ -20,6 +20,8 @@ track 0:
colorInfo: colorInfo:
colorSpace = 2 colorSpace = 2
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 22, hash 4CF81805 data = length 22, hash 4CF81805

View File

@ -20,6 +20,8 @@ track 0:
colorInfo: colorInfo:
colorSpace = 2 colorSpace = 2
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
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] 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: initializationData:
data = length 22, hash 4CF81805 data = length 22, hash 4CF81805

View File

@ -12,6 +12,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -12,6 +12,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -15,6 +15,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -12,6 +12,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -12,6 +12,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -17,6 +17,9 @@ track 0:
width = 1080 width = 1080
height = 720 height = 720
frameRate = 29.970028 frameRate = 29.970028
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf56.1.0], Mp4Timestamp: creation time=3547558895, modification time=3547558895, timescale=1000]
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9

View File

@ -12,6 +12,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -12,6 +12,9 @@ track 0:
codecs = avc1.64001F codecs = avc1.64001F
width = 1080 width = 1080
height = 720 height = 720
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4746B5D9 data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B data = length 10, hash 7A0D0F2B

View File

@ -22,6 +22,8 @@ track 0:
colorSpace = 6 colorSpace = 6
colorRange = 2 colorRange = 2
colorTransfer = 7 colorTransfer = 7
lumaBitdepth = 10
chromaBitdepth = 10
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] 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: initializationData:
data = length 526, hash 7B3FC433 data = length 526, hash 7B3FC433

View File

@ -22,6 +22,8 @@ track 0:
colorSpace = 6 colorSpace = 6
colorRange = 2 colorRange = 2
colorTransfer = 7 colorTransfer = 7
lumaBitdepth = 10
chromaBitdepth = 10
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] 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: initializationData:
data = length 526, hash 7B3FC433 data = length 526, hash 7B3FC433

View File

@ -22,6 +22,8 @@ track 0:
colorSpace = 6 colorSpace = 6
colorRange = 2 colorRange = 2
colorTransfer = 7 colorTransfer = 7
lumaBitdepth = 10
chromaBitdepth = 10
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] 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: initializationData:
data = length 526, hash 7B3FC433 data = length 526, hash 7B3FC433

View File

@ -22,6 +22,8 @@ track 0:
colorSpace = 6 colorSpace = 6
colorRange = 2 colorRange = 2
colorTransfer = 7 colorTransfer = 7
lumaBitdepth = 10
chromaBitdepth = 10
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] 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: initializationData:
data = length 526, hash 7B3FC433 data = length 526, hash 7B3FC433

View File

@ -22,6 +22,8 @@ track 0:
colorSpace = 6 colorSpace = 6
colorRange = 2 colorRange = 2
colorTransfer = 7 colorTransfer = 7
lumaBitdepth = 10
chromaBitdepth = 10
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] 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: initializationData:
data = length 526, hash 7B3FC433 data = length 526, hash 7B3FC433

View File

@ -21,6 +21,8 @@ track 0:
colorRange = 2 colorRange = 2
colorTransfer = 6 colorTransfer = 6
hdrStaticInfo = length 25, hash 423AFC35 hdrStaticInfo = length 25, hash 423AFC35
lumaBitdepth = 10
chromaBitdepth = 10
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
sample 0: sample 0:
time = 0 time = 0

View File

@ -21,6 +21,8 @@ track 0:
colorRange = 2 colorRange = 2
colorTransfer = 6 colorTransfer = 6
hdrStaticInfo = length 25, hash 423AFC35 hdrStaticInfo = length 25, hash 423AFC35
lumaBitdepth = 10
chromaBitdepth = 10
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
sample 0: sample 0:
time = 0 time = 0

View File

@ -21,6 +21,8 @@ track 0:
colorRange = 2 colorRange = 2
colorTransfer = 6 colorTransfer = 6
hdrStaticInfo = length 25, hash 423AFC35 hdrStaticInfo = length 25, hash 423AFC35
lumaBitdepth = 10
chromaBitdepth = 10
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
sample 0: sample 0:
time = 0 time = 0

View File

@ -21,6 +21,8 @@ track 0:
colorRange = 2 colorRange = 2
colorTransfer = 6 colorTransfer = 6
hdrStaticInfo = length 25, hash 423AFC35 hdrStaticInfo = length 25, hash 423AFC35
lumaBitdepth = 10
chromaBitdepth = 10
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
sample 0: sample 0:
time = 0 time = 0

View File

@ -21,6 +21,8 @@ track 0:
colorRange = 2 colorRange = 2
colorTransfer = 6 colorTransfer = 6
hdrStaticInfo = length 25, hash 423AFC35 hdrStaticInfo = length 25, hash 423AFC35
lumaBitdepth = 10
chromaBitdepth = 10
metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] metadata = entries=[TSSE: description=null: values=[Lavf58.76.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
sample 0: sample 0:
time = 0 time = 0

View File

@ -21,6 +21,8 @@ track 0:
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600] metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
initializationData: initializationData:
data = length 78, hash C57F938D data = length 78, hash C57F938D

View File

@ -21,6 +21,8 @@ track 0:
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600] metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
initializationData: initializationData:
data = length 78, hash C57F938D data = length 78, hash C57F938D

View File

@ -21,6 +21,8 @@ track 0:
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600] metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
initializationData: initializationData:
data = length 78, hash C57F938D data = length 78, hash C57F938D

View File

@ -21,6 +21,8 @@ track 0:
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600] metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
initializationData: initializationData:
data = length 78, hash C57F938D data = length 78, hash C57F938D

View File

@ -21,6 +21,8 @@ track 0:
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600] metadata = entries=[mdta: key=com.apple.quicktime.live-photo.auto, value=01, mdta: key=com.apple.quicktime.content.identifier, value=A873E9D3-2FBA-440A-B4D1-AEB073BC8E54, mdta: key=com.apple.quicktime.live-photo.vitality-score, value=0.9398496, mdta: key=com.apple.quicktime.live-photo.vitality-scoring-version, value=0000000000000004, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone SE (3rd generation), mdta: key=com.apple.quicktime.software, value=16.5.1, mdta: key=com.apple.quicktime.creationdate, value=2023-07-05T13:13:32+0800, Mp4Timestamp: creation time=3771378882, modification time=3771378882, timescale=600]
initializationData: initializationData:
data = length 78, hash C57F938D data = length 78, hash C57F938D

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -12,6 +12,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -12,6 +12,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -12,6 +12,9 @@ track 256:
codecs = avc1.64001E codecs = avc1.64001E
width = 640 width = 640
height = 426 height = 426
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 29, hash 4C2CAE9C data = length 29, hash 4C2CAE9C
data = length 9, hash D971CD89 data = length 9, hash D971CD89

View File

@ -15,6 +15,10 @@ track 256:
codecs = hvc1.1.6.L90.90 codecs = hvc1.1.6.L90.90
width = 854 width = 854
height = 480 height = 480
colorInfo:
colorRange = 2
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 83, hash 7F428 data = length 83, hash 7F428
sample 0: sample 0:

View File

@ -15,6 +15,10 @@ track 256:
codecs = hvc1.1.6.L90.90 codecs = hvc1.1.6.L90.90
width = 854 width = 854
height = 480 height = 480
colorInfo:
colorRange = 2
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 83, hash 7F428 data = length 83, hash 7F428
sample 0: sample 0:

View File

@ -15,6 +15,10 @@ track 256:
codecs = hvc1.1.6.L90.90 codecs = hvc1.1.6.L90.90
width = 854 width = 854
height = 480 height = 480
colorInfo:
colorRange = 2
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 83, hash 7F428 data = length 83, hash 7F428
sample 0: sample 0:

View File

@ -15,6 +15,10 @@ track 256:
codecs = hvc1.1.6.L90.90 codecs = hvc1.1.6.L90.90
width = 854 width = 854
height = 480 height = 480
colorInfo:
colorRange = 2
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 83, hash 7F428 data = length 83, hash 7F428
sample 0: sample 0:

View File

@ -12,6 +12,10 @@ track 256:
codecs = hvc1.1.6.L90.90 codecs = hvc1.1.6.L90.90
width = 854 width = 854
height = 480 height = 480
colorInfo:
colorRange = 2
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 83, hash 7F428 data = length 83, hash 7F428
sample 0: sample 0:

View File

@ -16,6 +16,9 @@ track 256:
width = 914 width = 914
height = 686 height = 686
pixelWidthHeightRatio = 1.0003651 pixelWidthHeightRatio = 1.0003651
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 146, hash 61554FEF data = length 146, hash 61554FEF
sample 0: sample 0:

View File

@ -16,6 +16,9 @@ track 256:
width = 914 width = 914
height = 686 height = 686
pixelWidthHeightRatio = 1.0003651 pixelWidthHeightRatio = 1.0003651
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 146, hash 61554FEF data = length 146, hash 61554FEF
sample 0: sample 0:

View File

@ -16,6 +16,9 @@ track 256:
width = 914 width = 914
height = 686 height = 686
pixelWidthHeightRatio = 1.0003651 pixelWidthHeightRatio = 1.0003651
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 146, hash 61554FEF data = length 146, hash 61554FEF
sample 0: sample 0:

View File

@ -16,6 +16,9 @@ track 256:
width = 914 width = 914
height = 686 height = 686
pixelWidthHeightRatio = 1.0003651 pixelWidthHeightRatio = 1.0003651
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 146, hash 61554FEF data = length 146, hash 61554FEF
sample 0: sample 0:

View File

@ -13,6 +13,9 @@ track 256:
width = 914 width = 914
height = 686 height = 686
pixelWidthHeightRatio = 1.0003651 pixelWidthHeightRatio = 1.0003651
colorInfo:
lumaBitdepth = 8
chromaBitdepth = 8
initializationData: initializationData:
data = length 146, hash 61554FEF data = length 146, hash 61554FEF
sample 0: sample 0:

View File

@ -69,6 +69,8 @@ track 2:
colorSpace = 2 colorSpace = 2
colorRange = 1 colorRange = 1
colorTransfer = 3 colorTransfer = 3
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
initializationData: initializationData:
data = length 85, hash 6F3CAA16 data = length 85, hash 6F3CAA16

View File

@ -21,6 +21,8 @@ track 0:
colorSpace = 6 colorSpace = 6
colorRange = 2 colorRange = 2
colorTransfer = 6 colorTransfer = 6
lumaBitdepth = 10
chromaBitdepth = 10
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
initializationData: initializationData:
data = length 99, hash 99842E5A data = length 99, hash 99842E5A

View File

@ -18,6 +18,8 @@ track 0:
height = 10 height = 10
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
initializationData: initializationData:
data = length 28, hash 410B510 data = length 28, hash 410B510

View File

@ -19,6 +19,8 @@ track 0:
rotationDegrees = 180 rotationDegrees = 180
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
initializationData: initializationData:
data = length 28, hash 410B510 data = length 28, hash 410B510

View File

@ -19,6 +19,8 @@ track 0:
rotationDegrees = 270 rotationDegrees = 270
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
initializationData: initializationData:
data = length 28, hash 410B510 data = length 28, hash 410B510

View File

@ -19,6 +19,8 @@ track 0:
rotationDegrees = 90 rotationDegrees = 90
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2082849800, modification time=2082849800, timescale=10000]
initializationData: initializationData:
data = length 28, hash 410B510 data = length 28, hash 410B510

View File

@ -19,6 +19,8 @@ track 0:
frameRate = 20000.0 frameRate = 20000.0
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
initializationData: initializationData:
data = length 28, hash 410B510 data = length 28, hash 410B510
@ -44,6 +46,8 @@ track 1:
frameRate = 10000.0 frameRate = 10000.0
colorInfo: colorInfo:
colorRange = 1 colorRange = 1
lumaBitdepth = 8
chromaBitdepth = 8
metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000] metadata = entries=[Mp4Timestamp: creation time=2083344800, modification time=2083344800, timescale=10000]
initializationData: initializationData:
data = length 28, hash 410B510 data = length 28, hash 410B510

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