Bug 1188871: P1. Don't drain decoders when an error is encountered. r=cpearce

This is a partial revert of bug 1173657 (commit 80f9da7f0806). Not all decoders will properly handle draining when they have encountered an error and will never call DrainComplete().
The Gonk and Android decoder do not. So we just get around this.
This commit is contained in:
Jean-Yves Avenard 2015-08-13 08:21:34 +10:00
parent 79f27f543b
commit 3df14d7bf2

View File

@ -805,7 +805,6 @@ MediaFormatReader::NotifyError(TrackType aTrack)
LOGV("%s Decoding error", TrackTypeToStr(aTrack));
auto& decoder = GetDecoderData(aTrack);
decoder.mError = true;
decoder.mNeedDraining = true;
ScheduleUpdate(aTrack);
}
@ -1144,7 +1143,7 @@ MediaFormatReader::Update(TrackType aTrack)
} else if (decoder.mDemuxEOS) {
decoder.RejectPromise(END_OF_STREAM, __func__);
}
} else if (decoder.mError && !decoder.mDecoder) {
} else if (decoder.mError) {
decoder.RejectPromise(DECODE_ERROR, __func__);
return;
} else if (decoder.mWaitingForData) {