Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2506)

Unified Diff: content/common/gpu/media/gpu_video_decode_accelerator.cc

Issue 795633005: Add VDA supported profile to GPUInfo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address review comments Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/media/gpu_video_decode_accelerator.cc
diff --git a/content/common/gpu/media/gpu_video_decode_accelerator.cc b/content/common/gpu/media/gpu_video_decode_accelerator.cc
index f741cb20418fbecfa99b83d54dd814f131c33892..ad1f0ab7a24586a21136bf12e50b5935b6ee8c4a 100644
--- a/content/common/gpu/media/gpu_video_decode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_decode_accelerator.cc
@@ -8,6 +8,7 @@
#include "base/bind.h"
#include "base/command_line.h"
+#include "base/cpu.h"
#include "base/logging.h"
#include "base/message_loop/message_loop_proxy.h"
#include "base/stl_util.h"
@@ -20,6 +21,7 @@
#include "ipc/ipc_message_utils.h"
#include "ipc/message_filter.h"
#include "media/base/limits.h"
+#include "media/base/media_switches.h"
#include "ui/gl/gl_context.h"
#include "ui/gl/gl_surface_egl.h"
@@ -315,6 +317,35 @@ void GpuVideoDecodeAccelerator::Initialize(
SendCreateDecoderReply(init_done_msg, true);
}
+gpu::VideoDecodeAcceleratorSupportedResolution
+GpuVideoDecodeAccelerator::GetSupportedResolution() {
+ gpu::VideoDecodeAcceleratorSupportedResolution resolution;
+ // Set default values.
+ resolution.min.SetSize(16, 16);
+ // Use 1088 to account for 16x16 macroblocks.
+ resolution.max.SetSize(1920, 1088);
+
+#if defined(OS_WIN)
+ // Windows Media Foundation H.264 decoding does not support decoding videos
+ // with any dimension smaller than 48 pixels:
+ // http://msdn.microsoft.com/en-us/library/windows/desktop/dd797815
+ resolution.min.SetSize(48, 48);
+#else
+ // Only non-Windows, Ivy Bridge+ platforms can support more than 1920x1080.
+ // NOTE: additional autodetection logic may require updating input buffer size
+ // selection in platform-specific implementations, such as
+ // V4L2VideoDecodeAccelerator.
+ base::CPU cpu;
+ bool hw_large_video_support =
+ CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kIgnoreResolutionLimitsForAcceleratedVideoDecode) ||
+ ((cpu.vendor_name() == "GenuineIntel") && cpu.model() >= 55);
+ if (hw_large_video_support)
+ resolution.max.SetSize(4096, 2160);
+#endif
+ return resolution;
+}
+
// Runs on IO thread if video_decode_accelerator_->CanDecodeOnIOThread() is
// true, otherwise on the main thread.
void GpuVideoDecodeAccelerator::OnDecode(

Powered by Google App Engine
This is Rietveld 408576698