Bug 1297265: P4. Rework Apple AudioToolbox use of InputExhausted. r?kamidphish
MozReview-Commit-ID: HznYxl9T7t5
--- a/dom/media/platforms/apple/AppleATDecoder.cpp
+++ b/dom/media/platforms/apple/AppleATDecoder.cpp
@@ -209,19 +209,17 @@ AppleATDecoder::SubmitSample(MediaRawDat
for (size_t i = 0; i < mQueuedSamples.Length(); i++) {
if (NS_FAILED(DecodeSample(mQueuedSamples[i]))) {
mQueuedSamples.Clear();
mCallback->Error(MediaDataDecoderError::DECODE_ERROR);
return;
}
}
mQueuedSamples.Clear();
- }
-
- if (mTaskQueue->IsEmpty()) {
+ } else {
mCallback->InputExhausted();
}
}
nsresult
AppleATDecoder::DecodeSample(MediaRawData* aSample)
{
MOZ_ASSERT(mTaskQueue->IsCurrentThreadIn());
@@ -277,16 +275,19 @@ AppleATDecoder::DecodeSample(MediaRawDat
}
if (rv == kNoMoreDataErr) {
break;
}
} while (true);
if (outputData.IsEmpty()) {
+ // We aren't going to output anything, inform the reader that we need more
+ // data.
+ mCallback->InputExhausted();
return NS_OK;
}
size_t numFrames = outputData.Length() / channels;
int rate = mOutputFormat.mSampleRate;
media::TimeUnit duration = FramesToTimeUnit(numFrames, rate);
if (!duration.IsValid()) {
NS_WARNING("Invalid count of accumulated audio samples");