mirror of
https://github.com/androidx/media.git
synced 2025-04-29 22:36:54 +08:00
BoxParser: Update Dolby Vision codec support.
1. Append initialization data of Dolby Vision codec to list of initialization data. 2. Parse `dwcC` box in BoxParser. PiperOrigin-RevId: 740737770
This commit is contained in:
parent
3d5e650980
commit
a24d1d41d9
@ -117,6 +117,9 @@ public abstract class Mp4Box {
|
||||
@SuppressWarnings("ConstantCaseForConstants")
|
||||
public static final int TYPE_dvvC = 0x64767643;
|
||||
|
||||
@SuppressWarnings("ConstantCaseForConstants")
|
||||
public static final int TYPE_dvwC = 0x64767743;
|
||||
|
||||
@SuppressWarnings("ConstantCaseForConstants")
|
||||
public static final int TYPE_s263 = 0x73323633;
|
||||
|
||||
|
@ -1367,7 +1367,24 @@ public final class BoxParser {
|
||||
: C.STEREO_MODE_INTERLEAVED_LEFT_PRIMARY;
|
||||
}
|
||||
}
|
||||
} else if (childAtomType == Mp4Box.TYPE_dvcC || childAtomType == Mp4Box.TYPE_dvvC) {
|
||||
} else if (childAtomType == Mp4Box.TYPE_dvcC
|
||||
|| childAtomType == Mp4Box.TYPE_dvvC
|
||||
|| childAtomType == Mp4Box.TYPE_dvwC) {
|
||||
int childAtomBodySize = childAtomSize - Mp4Box.HEADER_SIZE;
|
||||
byte[] initializationDataChunk = new byte[childAtomBodySize];
|
||||
parent.readBytes(initializationDataChunk, /* offset= */ 0, childAtomBodySize);
|
||||
// Add the initialization data of Dolby Vision to the existing list of initialization data.
|
||||
if (initializationData != null) {
|
||||
initializationData =
|
||||
ImmutableList.<byte[]>builder()
|
||||
.addAll(initializationData)
|
||||
.add(initializationDataChunk)
|
||||
.build();
|
||||
} else {
|
||||
ExtractorUtil.checkContainerInput(
|
||||
false, "initializationData must already be set from hvcC or avcC atom");
|
||||
}
|
||||
parent.setPosition(childStartPosition + Mp4Box.HEADER_SIZE);
|
||||
@Nullable DolbyVisionConfig dolbyVisionConfig = DolbyVisionConfig.parse(parent);
|
||||
if (dolbyVisionConfig != null) {
|
||||
codecs = dolbyVisionConfig.codecs;
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = -455000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 611666
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 1680000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 1680000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = -455000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 611666
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 1680000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 1680000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = -455000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[Mp4Timestamp: creation time=3788952614, modification time=3788952614, timescale=600]
|
||||
initializationData:
|
||||
data = length 97, hash 32FB3D18
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = -455000
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
@ -32,6 +32,7 @@ track 0:
|
||||
metadata = entries=[mdta: key=com.apple.quicktime.location.accuracy.horizontal, value=3.754789, mdta: key=com.apple.quicktime.location.ISO6709, value=+37.7450-122.4301+066.374/, mdta: key=com.apple.quicktime.make, value=Apple, mdta: key=com.apple.quicktime.model, value=iPhone 12 Pro Max, mdta: key=com.apple.quicktime.software, value=14.5.1, mdta: key=com.apple.quicktime.creationdate, value=2021-05-25T09:21:51-0700, Mp4Timestamp: creation time=3704804511, modification time=3704804511, timescale=600]
|
||||
initializationData:
|
||||
data = length 526, hash 7B3FC433
|
||||
data = length 24, hash A31E9935
|
||||
sample 0:
|
||||
time = 0
|
||||
flags = 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user