Bug 1345342: Cancel pending requests. r=jya
If the pending first frame decoding was cancelled, the next call to decode could lead to a crash.
MozReview-Commit-ID: 6Q4eKUzqOly
--- a/dom/media/platforms/wrappers/H264Converter.cpp
+++ b/dom/media/platforms/wrappers/H264Converter.cpp
@@ -126,16 +126,20 @@ H264Converter::Decode(MediaRawData* aSam
aSample->mExtraData = mCurrentConfig.mExtraData;
return mDecoder->Decode(aSample);
}
RefPtr<MediaDataDecoder::FlushPromise>
H264Converter::Flush()
{
+ mDecodePromiseRequest.DisconnectIfExists();
+ mFlushRequest.DisconnectIfExists();
+ mShutdownRequest.DisconnectIfExists();
+ mDecodePromise.RejectIfExists(NS_ERROR_DOM_MEDIA_CANCELED, __func__);
mNeedKeyframe = true;
if (mDecoder) {
return mDecoder->Flush();
}
return FlushPromise::CreateAndResolve(true, __func__);
}
RefPtr<MediaDataDecoder::DecodePromise>