Add TrackOutput field in PngExtractor

Also re-jig some `checkNotNull` calls to satisfy the nullness checker
(remove an unneeded one, and add a new one).

Follow-up to discussion in bb214b19f9

PiperOrigin-RevId: 561295724
This commit is contained in:
ibaker 2023-08-30 04:06:55 -07:00 committed by Copybara-Service
parent b466b06ace
commit 9ee45fc938

View File

@ -66,6 +66,7 @@ public final class PngExtractor implements Extractor {
private int size;
private @State int state;
private @MonotonicNonNull ExtractorOutput extractorOutput;
private @MonotonicNonNull TrackOutput trackOutput;
/** Creates an instance. */
public PngExtractor() {
@ -100,9 +101,8 @@ public final class PngExtractor implements Extractor {
}
private void readSegment(ExtractorInput input) throws IOException {
TrackOutput trackOutput =
checkNotNull(extractorOutput).track(IMAGE_TRACK_ID, C.TRACK_TYPE_IMAGE);
int result = trackOutput.sampleData(input, FIXED_READ_LENGTH, /* allowEndOfInput= */ true);
int result =
checkNotNull(trackOutput).sampleData(input, FIXED_READ_LENGTH, /* allowEndOfInput= */ true);
if (result == C.RESULT_END_OF_INPUT) {
state = STATE_ENDED;
@C.BufferFlags int flags = BUFFER_FLAG_KEY_FRAME;
@ -116,8 +116,7 @@ public final class PngExtractor implements Extractor {
@RequiresNonNull("this.extractorOutput")
private void outputImageTrackAndSeekMap() {
TrackOutput trackOutput =
checkNotNull(extractorOutput).track(IMAGE_TRACK_ID, C.TRACK_TYPE_IMAGE);
trackOutput = extractorOutput.track(IMAGE_TRACK_ID, C.TRACK_TYPE_IMAGE);
trackOutput.format(
new Format.Builder()
.setContainerMimeType(MimeTypes.IMAGE_PNG)