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