MatroskaExtractor naming cleanup II
- Remove "lacing" from member variables. They're used even if there is no lacing (and the fact that lacing is the way of getting multiple samples into a block isn't important). Issue: #3026 PiperOrigin-RevId: 284152447
This commit is contained in:
parent
5973b76481
commit
22f25c57bb
@ -367,9 +367,9 @@ public class MatroskaExtractor implements Extractor {
|
|||||||
private int blockState;
|
private int blockState;
|
||||||
private long blockTimeUs;
|
private long blockTimeUs;
|
||||||
private long blockDurationUs;
|
private long blockDurationUs;
|
||||||
private int blockLacingSampleIndex;
|
private int blockSampleIndex;
|
||||||
private int blockLacingSampleCount;
|
private int blockSampleCount;
|
||||||
private int[] blockLacingSampleSizes;
|
private int[] blockSampleSizes;
|
||||||
private int blockTrackNumber;
|
private int blockTrackNumber;
|
||||||
private int blockTrackNumberLength;
|
private int blockTrackNumberLength;
|
||||||
@C.BufferFlags
|
@C.BufferFlags
|
||||||
@ -1093,9 +1093,9 @@ public class MatroskaExtractor implements Extractor {
|
|||||||
readScratch(input, 3);
|
readScratch(input, 3);
|
||||||
int lacing = (scratch.data[2] & 0x06) >> 1;
|
int lacing = (scratch.data[2] & 0x06) >> 1;
|
||||||
if (lacing == LACING_NONE) {
|
if (lacing == LACING_NONE) {
|
||||||
blockLacingSampleCount = 1;
|
blockSampleCount = 1;
|
||||||
blockLacingSampleSizes = ensureArrayCapacity(blockLacingSampleSizes, 1);
|
blockSampleSizes = ensureArrayCapacity(blockSampleSizes, 1);
|
||||||
blockLacingSampleSizes[0] = contentSize - blockTrackNumberLength - 3;
|
blockSampleSizes[0] = contentSize - blockTrackNumberLength - 3;
|
||||||
} else {
|
} else {
|
||||||
if (id != ID_SIMPLE_BLOCK) {
|
if (id != ID_SIMPLE_BLOCK) {
|
||||||
throw new ParserException("Lacing only supported in SimpleBlocks.");
|
throw new ParserException("Lacing only supported in SimpleBlocks.");
|
||||||
@ -1103,33 +1103,32 @@ public class MatroskaExtractor implements Extractor {
|
|||||||
|
|
||||||
// Read the sample count (1 byte).
|
// Read the sample count (1 byte).
|
||||||
readScratch(input, 4);
|
readScratch(input, 4);
|
||||||
blockLacingSampleCount = (scratch.data[3] & 0xFF) + 1;
|
blockSampleCount = (scratch.data[3] & 0xFF) + 1;
|
||||||
blockLacingSampleSizes =
|
blockSampleSizes = ensureArrayCapacity(blockSampleSizes, blockSampleCount);
|
||||||
ensureArrayCapacity(blockLacingSampleSizes, blockLacingSampleCount);
|
|
||||||
if (lacing == LACING_FIXED_SIZE) {
|
if (lacing == LACING_FIXED_SIZE) {
|
||||||
int blockLacingSampleSize =
|
int blockLacingSampleSize =
|
||||||
(contentSize - blockTrackNumberLength - 4) / blockLacingSampleCount;
|
(contentSize - blockTrackNumberLength - 4) / blockSampleCount;
|
||||||
Arrays.fill(blockLacingSampleSizes, 0, blockLacingSampleCount, blockLacingSampleSize);
|
Arrays.fill(blockSampleSizes, 0, blockSampleCount, blockLacingSampleSize);
|
||||||
} else if (lacing == LACING_XIPH) {
|
} else if (lacing == LACING_XIPH) {
|
||||||
int totalSamplesSize = 0;
|
int totalSamplesSize = 0;
|
||||||
int headerSize = 4;
|
int headerSize = 4;
|
||||||
for (int sampleIndex = 0; sampleIndex < blockLacingSampleCount - 1; sampleIndex++) {
|
for (int sampleIndex = 0; sampleIndex < blockSampleCount - 1; sampleIndex++) {
|
||||||
blockLacingSampleSizes[sampleIndex] = 0;
|
blockSampleSizes[sampleIndex] = 0;
|
||||||
int byteValue;
|
int byteValue;
|
||||||
do {
|
do {
|
||||||
readScratch(input, ++headerSize);
|
readScratch(input, ++headerSize);
|
||||||
byteValue = scratch.data[headerSize - 1] & 0xFF;
|
byteValue = scratch.data[headerSize - 1] & 0xFF;
|
||||||
blockLacingSampleSizes[sampleIndex] += byteValue;
|
blockSampleSizes[sampleIndex] += byteValue;
|
||||||
} while (byteValue == 0xFF);
|
} while (byteValue == 0xFF);
|
||||||
totalSamplesSize += blockLacingSampleSizes[sampleIndex];
|
totalSamplesSize += blockSampleSizes[sampleIndex];
|
||||||
}
|
}
|
||||||
blockLacingSampleSizes[blockLacingSampleCount - 1] =
|
blockSampleSizes[blockSampleCount - 1] =
|
||||||
contentSize - blockTrackNumberLength - headerSize - totalSamplesSize;
|
contentSize - blockTrackNumberLength - headerSize - totalSamplesSize;
|
||||||
} else if (lacing == LACING_EBML) {
|
} else if (lacing == LACING_EBML) {
|
||||||
int totalSamplesSize = 0;
|
int totalSamplesSize = 0;
|
||||||
int headerSize = 4;
|
int headerSize = 4;
|
||||||
for (int sampleIndex = 0; sampleIndex < blockLacingSampleCount - 1; sampleIndex++) {
|
for (int sampleIndex = 0; sampleIndex < blockSampleCount - 1; sampleIndex++) {
|
||||||
blockLacingSampleSizes[sampleIndex] = 0;
|
blockSampleSizes[sampleIndex] = 0;
|
||||||
readScratch(input, ++headerSize);
|
readScratch(input, ++headerSize);
|
||||||
if (scratch.data[headerSize - 1] == 0) {
|
if (scratch.data[headerSize - 1] == 0) {
|
||||||
throw new ParserException("No valid varint length mask found");
|
throw new ParserException("No valid varint length mask found");
|
||||||
@ -1157,11 +1156,13 @@ public class MatroskaExtractor implements Extractor {
|
|||||||
throw new ParserException("EBML lacing sample size out of range.");
|
throw new ParserException("EBML lacing sample size out of range.");
|
||||||
}
|
}
|
||||||
int intReadValue = (int) readValue;
|
int intReadValue = (int) readValue;
|
||||||
blockLacingSampleSizes[sampleIndex] = sampleIndex == 0
|
blockSampleSizes[sampleIndex] =
|
||||||
? intReadValue : blockLacingSampleSizes[sampleIndex - 1] + intReadValue;
|
sampleIndex == 0
|
||||||
totalSamplesSize += blockLacingSampleSizes[sampleIndex];
|
? intReadValue
|
||||||
|
: blockSampleSizes[sampleIndex - 1] + intReadValue;
|
||||||
|
totalSamplesSize += blockSampleSizes[sampleIndex];
|
||||||
}
|
}
|
||||||
blockLacingSampleSizes[blockLacingSampleCount - 1] =
|
blockSampleSizes[blockSampleCount - 1] =
|
||||||
contentSize - blockTrackNumberLength - headerSize - totalSamplesSize;
|
contentSize - blockTrackNumberLength - headerSize - totalSamplesSize;
|
||||||
} else {
|
} else {
|
||||||
// Lacing is always in the range 0--3.
|
// Lacing is always in the range 0--3.
|
||||||
@ -1177,23 +1178,23 @@ public class MatroskaExtractor implements Extractor {
|
|||||||
blockFlags = (isKeyframe ? C.BUFFER_FLAG_KEY_FRAME : 0)
|
blockFlags = (isKeyframe ? C.BUFFER_FLAG_KEY_FRAME : 0)
|
||||||
| (isInvisible ? C.BUFFER_FLAG_DECODE_ONLY : 0);
|
| (isInvisible ? C.BUFFER_FLAG_DECODE_ONLY : 0);
|
||||||
blockState = BLOCK_STATE_DATA;
|
blockState = BLOCK_STATE_DATA;
|
||||||
blockLacingSampleIndex = 0;
|
blockSampleIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id == ID_SIMPLE_BLOCK) {
|
if (id == ID_SIMPLE_BLOCK) {
|
||||||
// For SimpleBlock, we have metadata for each sample here.
|
// For SimpleBlock, we have metadata for each sample here.
|
||||||
while (blockLacingSampleIndex < blockLacingSampleCount) {
|
while (blockSampleIndex < blockSampleCount) {
|
||||||
writeSampleData(input, track, blockLacingSampleSizes[blockLacingSampleIndex]);
|
writeSampleData(input, track, blockSampleSizes[blockSampleIndex]);
|
||||||
long sampleTimeUs = blockTimeUs
|
long sampleTimeUs =
|
||||||
+ (blockLacingSampleIndex * track.defaultSampleDurationNs) / 1000;
|
blockTimeUs + (blockSampleIndex * track.defaultSampleDurationNs) / 1000;
|
||||||
commitSampleToOutput(track, sampleTimeUs);
|
commitSampleToOutput(track, sampleTimeUs);
|
||||||
blockLacingSampleIndex++;
|
blockSampleIndex++;
|
||||||
}
|
}
|
||||||
blockState = BLOCK_STATE_START;
|
blockState = BLOCK_STATE_START;
|
||||||
} else {
|
} else {
|
||||||
// For Block, we send the metadata at the end of the BlockGroup element since we'll know
|
// For Block, we send the metadata at the end of the BlockGroup element since we'll know
|
||||||
// if the sample is a keyframe or not only at that point.
|
// if the sample is a keyframe or not only at that point.
|
||||||
writeSampleData(input, track, blockLacingSampleSizes[0]);
|
writeSampleData(input, track, blockSampleSizes[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user