Merge pull request #491 from v-novaltd:dsparano-exo128
PiperOrigin-RevId: 574129451
This commit is contained in:
commit
009d48a75e
@ -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`
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
@ -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")
|
||||||
|
@ -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)
|
||||||
|
@ -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,
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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(
|
||||||
|
@ -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[] {
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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());
|
||||||
|
@ -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();
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user