Bug 1273390. Part 2 - add assertions. r=jya.
MozReview-Commit-ID: DoXLJA4XUSP
--- a/dom/media/platforms/agnostic/WAVDecoder.cpp
+++ b/dom/media/platforms/agnostic/WAVDecoder.cpp
@@ -65,36 +65,40 @@ RefPtr<MediaDataDecoder::InitPromise>
WaveDataDecoder::Init()
{
return InitPromise::CreateAndResolve(TrackInfo::kAudioTrack, __func__);
}
nsresult
WaveDataDecoder::Input(MediaRawData* aSample)
{
+ MOZ_ASSERT(mCallback->OnReaderTaskQueue());
mTaskQueue->Dispatch(NewRunnableMethod<RefPtr<MediaRawData>>(
this, &WaveDataDecoder::Decode,
RefPtr<MediaRawData>(aSample)));
return NS_OK;
}
void
WaveDataDecoder::Decode(MediaRawData* aSample)
{
+ MOZ_ASSERT(mTaskQueue->IsCurrentThreadIn());
if (!DoDecode(aSample)) {
mCallback->Error();
} else if (mTaskQueue->IsEmpty()) {
mCallback->InputExhausted();
}
}
bool
WaveDataDecoder::DoDecode(MediaRawData* aSample)
{
+ MOZ_ASSERT(mTaskQueue->IsCurrentThreadIn());
+
size_t aLength = aSample->Size();
ByteReader aReader = ByteReader(aSample->Data(), aLength);
int64_t aOffset = aSample->mOffset;
uint64_t aTstampUsecs = aSample->mTime;
int32_t frames = aLength * 8 / mInfo.mBitDepth / mInfo.mChannels;
AlignedAudioBuffer buffer(frames * mInfo.mChannels);
@@ -145,29 +149,32 @@ WaveDataDecoder::DoDecode(MediaRawData*
mFrames += frames;
return true;
}
void
WaveDataDecoder::DoDrain()
{
+ MOZ_ASSERT(mTaskQueue->IsCurrentThreadIn());
mCallback->DrainComplete();
}
nsresult
WaveDataDecoder::Drain()
{
+ MOZ_ASSERT(mCallback->OnReaderTaskQueue());
mTaskQueue->Dispatch(NewRunnableMethod(this, &WaveDataDecoder::DoDrain));
return NS_OK;
}
nsresult
WaveDataDecoder::Flush()
{
+ MOZ_ASSERT(mCallback->OnReaderTaskQueue());
mTaskQueue->Flush();
mFrames = 0;
return NS_OK;
}
/* static */
bool
WaveDataDecoder::IsWave(const nsACString& aMimeType)