Bug 1416473 - Don't treat MF_E_TRANSFORM_NEED_MORE_INPUT as fatal error. r?mattwoodrow draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Wed, 15 Nov 2017 19:29:24 +0100
changeset 698435 bfcf97ccf506b84fbb5fbe7c5994f74f19f0b236
parent 697940 f0c0fb9182d695081edf170d8e3bcb8164f2c96a
child 740376 df13bc0fa75596591541994a798800ae732d2745
push id89286
push userbmo:jyavenard@mozilla.com
push dateWed, 15 Nov 2017 18:31:59 +0000
reviewersmattwoodrow
bugs1416473
milestone59.0a1
Bug 1416473 - Don't treat MF_E_TRANSFORM_NEED_MORE_INPUT as fatal error. r?mattwoodrow The VP9 decoder following a flush will often return MF_E_NOTACCEPTING. Attempting to request an output would cause the error MF_E_TRANSFORM_NEED_MORE_INPUT to be returned. We can simply feed the decoder with the compressed sample. MozReview-Commit-ID: GUNniZsOKWr
dom/media/platforms/wmf/WMFMediaDataDecoder.cpp
--- a/dom/media/platforms/wmf/WMFMediaDataDecoder.cpp
+++ b/dom/media/platforms/wmf/WMFMediaDataDecoder.cpp
@@ -127,17 +127,17 @@ WMFMediaDataDecoder::ProcessError(HRESUL
 
 RefPtr<MediaDataDecoder::DecodePromise>
 WMFMediaDataDecoder::ProcessDecode(MediaRawData* aSample)
 {
   DecodedData results;
   HRESULT hr = mMFTManager->Input(aSample);
   if (hr == MF_E_NOTACCEPTING) {
     hr = ProcessOutput(results);
-    if (FAILED(hr)) {
+    if (FAILED(hr) && hr != MF_E_TRANSFORM_NEED_MORE_INPUT) {
       return ProcessError(hr, "MFTManager::Output(1)");
     }
     hr = mMFTManager->Input(aSample);
   }
 
   if (FAILED(hr)) {
     NS_WARNING("MFTManager rejected sample");
     return ProcessError(hr, "MFTManager::Input");