Bug 1154896: Part2. Ignore kVTDecodeInfo_FrameDropped flag. r=rillian a=lizzard
authorJean-Yves Avenard <jyavenard@mozilla.com>
Wed, 06 May 2015 09:58:09 +1000
changeset 255353 e4bdd73813c8ff5b8df56910301b312b9a299b80
parent 255352 868aa45df9664b374c51c14335d7e51b0b570b38
child 255354 6139138673bfd7e326af47ceed92e32fdc79018c
push id7995
push userkwierso@gmail.com
push dateFri, 08 May 2015 18:27:32 +0000
treeherdermozilla-aurora@6139138673bf [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersrillian, lizzard
bugs1154896
milestone39.0a2
Bug 1154896: Part2. Ignore kVTDecodeInfo_FrameDropped flag. r=rillian a=lizzard It appears that on some machine, all video frames are marked with kVTDecodeInfo_FrameDropped even when valid. We just can't rely on it.
dom/media/fmp4/apple/AppleVTDecoder.cpp
--- a/dom/media/fmp4/apple/AppleVTDecoder.cpp
+++ b/dom/media/fmp4/apple/AppleVTDecoder.cpp
@@ -163,18 +163,17 @@ PlatformCallback(void* decompressionOutp
     static_cast<AppleVTDecoder::AppleFrameRef*>(sourceFrameRefCon));
 
   // Validate our arguments.
   if (status != noErr || !image) {
     NS_WARNING("VideoToolbox decoder returned no data");
     return;
   }
   if (flags & kVTDecodeInfo_FrameDropped) {
-    NS_WARNING("  ...frame dropped...");
-    return;
+    NS_WARNING("  ...frame tagged as dropped...");
   }
   MOZ_ASSERT(CFGetTypeID(image) == CVPixelBufferGetTypeID(),
     "VideoToolbox returned an unexpected image type");
 
   // Forward the data back to an object method which can access
   // the correct MP4Reader callback.
   decoder->OutputFrame(image, frameRef);
 }