Fix the single-sample SampleStream regarding FLAG_REQUIRE_FORMAT

The current FLAG_REQUIRE_FORMAT documentation states: If an end of
stream buffer would be read were the flag not set, then behavior is
unchanged.

PiperOrigin-RevId: 380792251
This commit is contained in:
aquilescanta 2021-06-22 14:16:56 +01:00 committed by Oliver Woodman
parent ddd6a22561
commit d87fdaa370

View file

@ -351,6 +351,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
public int readData(
FormatHolder formatHolder, DecoderInputBuffer buffer, @ReadFlags int readFlags) {
maybeNotifyDownstreamFormat();
if (loadingFinished && sampleData == null) {
streamState = STREAM_STATE_END_OF_STREAM;
}
if (streamState == STREAM_STATE_END_OF_STREAM) {
buffer.addFlag(C.BUFFER_FLAG_END_OF_STREAM);
return C.RESULT_BUFFER_READ;
@ -365,12 +369,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
if (!loadingFinished) {
return C.RESULT_NOTHING_READ;
}
if (sampleData == null) {
buffer.addFlag(C.BUFFER_FLAG_END_OF_STREAM);
streamState = STREAM_STATE_END_OF_STREAM;
return C.RESULT_BUFFER_READ;
}
Assertions.checkNotNull(sampleData);
buffer.addFlag(C.BUFFER_FLAG_KEY_FRAME);
buffer.timeUs = 0;