Bug 993003 - Ensure we abort media load if IMFSourceReader creation fails. r=padenot

This commit is contained in:
Chris Pearce 2014-04-09 16:45:32 +12:00
parent a6faf0c472
commit 1950826d5c

View File

@ -507,8 +507,7 @@ WMFReader::ReadMetadata(MediaInfo* aInfo,
HRESULT hr;
const bool triedToInitDXVA = mUseHwAccel;
hr = CreateSourceReader();
if (FAILED(hr)) {
if (FAILED(CreateSourceReader())) {
mSourceReader = nullptr;
if (triedToInitDXVA && !mUseHwAccel) {
// We tried to initialize DXVA and failed. Try again to create the
@ -517,15 +516,17 @@ WMFReader::ReadMetadata(MediaInfo* aInfo,
// (AMD Radeon 3000) we cannot successfully reconfigure an existing
// reader to not use DXVA after we've failed to configure DXVA.
// See bug 987127.
hr = CreateSourceReader();
if (FAILED(hr)) {
NS_WARNING("Failed to create IMFSourceReader");
if (FAILED(CreateSourceReader())) {
mSourceReader = nullptr;
return NS_ERROR_FAILURE;
}
}
}
if (!mSourceReader) {
NS_WARNING("Failed to create IMFSourceReader");
return NS_ERROR_FAILURE;
}
if (mInfo.HasVideo()) {
DECODER_LOG("Using DXVA: %s", (mUseHwAccel ? "Yes" : "No"));
}