From c7b835ce08ca523e24321ddb53545bf33b5b644e Mon Sep 17 00:00:00 2001 From: Jean-Yves Avenard Date: Tue, 28 Jul 2015 14:09:43 +1000 Subject: [PATCH] Bug 1188233: Ensure drainComplete flag is set upon failure to create decoder. r=cpearce --- dom/media/MediaFormatReader.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dom/media/MediaFormatReader.cpp b/dom/media/MediaFormatReader.cpp index 4a22c4e8579e..e8f6313d4e2c 100644 --- a/dom/media/MediaFormatReader.cpp +++ b/dom/media/MediaFormatReader.cpp @@ -984,15 +984,13 @@ MediaFormatReader::DrainDecoder(TrackType aTrack) return; } decoder.mNeedDraining = false; - if (!decoder.mDecoder) { - return; - } - decoder.mOutputRequested = true; - if (decoder.mNumSamplesInput == decoder.mNumSamplesOutput) { + if (!decoder.mDecoder || + decoder.mNumSamplesInput == decoder.mNumSamplesOutput) { // No frames to drain. NotifyDrainComplete(aTrack); return; } + decoder.mOutputRequested = true; decoder.mDecoder->Drain(); decoder.mDraining = true; LOG("Requesting %s decoder to drain", TrackTypeToStr(aTrack));