Index: content/common/gpu/media/vt_video_decode_accelerator.cc |
diff --git a/content/common/gpu/media/vt_video_decode_accelerator.cc b/content/common/gpu/media/vt_video_decode_accelerator.cc |
index 9a91c9c0f1400ac5f61045a74f3dc5309f7e8164..0cfc6b3e60ee54db67489cd668320fc9198a9b25 100644 |
--- a/content/common/gpu/media/vt_video_decode_accelerator.cc |
+++ b/content/common/gpu/media/vt_video_decode_accelerator.cc |
@@ -12,6 +12,7 @@ |
#include "base/command_line.h" |
#include "base/logging.h" |
#include "base/mac/mac_logging.h" |
+#include "base/metrics/histogram_macros.h" |
#include "base/sys_byteorder.h" |
#include "base/thread_task_runner_handle.h" |
#include "content/common/gpu/media/vt_video_decode_accelerator.h" |
@@ -318,7 +319,8 @@ bool VTVideoDecodeAccelerator::ConfigureDecoder() { |
base::ScopedCFTypeRef<CFMutableDictionaryRef> image_config( |
BuildImageConfig(coded_dimensions)); |
- // TODO(sandersd): Does the old session need to be flushed first? |
+ if (!FinishDelayedFrames()) |
Pawel Osciak
2014/12/02 01:21:51
This is I think not related to this CL?
sandersd (OOO until July 31)
2014/12/02 01:25:31
Done.
|
+ return false; |
session_.reset(); |
status = VTDecompressionSessionCreate( |
kCFAllocatorDefault, |
@@ -332,6 +334,18 @@ bool VTVideoDecodeAccelerator::ConfigureDecoder() { |
return false; |
} |
+ // Report whether hardware decode is being used. |
+ base::ScopedCFTypeRef<CFBooleanRef> using_hardware; |
+ if (VTSessionCopyProperty( |
+ session_, |
+ // kVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder |
+ CFSTR("UsingHardwareAcceleratedVideoDecoder"), |
+ kCFAllocatorDefault, |
+ using_hardware.InitializeInto()) == 0) { |
+ UMA_HISTOGRAM_BOOLEAN("Media.VTVDA.UsingHardware", |
+ CFBooleanGetValue(using_hardware)); |
+ } |
+ |
return true; |
} |