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

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

Issue 568413002: Add VEA supported profiles to GPUInfo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address piman's comment -- create codecs_ lazily Created 6 years, 3 months 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_encode_accelerator.cc
diff --git a/content/common/gpu/media/gpu_video_encode_accelerator.cc b/content/common/gpu/media/gpu_video_encode_accelerator.cc
index 0fb613aeaeff3c44538864f9cb8a8392d2373627..3fe89d3a3a45aa0f5fae2a6bf2886a36fdfdda9d 100644
--- a/content/common/gpu/media/gpu_video_encode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_encode_accelerator.cc
@@ -95,7 +95,7 @@ void GpuVideoEncodeAccelerator::Initialize(
return;
}
- CreateEncoder();
+ encoder_ = CreateEncoder();
if (!encoder_) {
DLOG(ERROR)
<< "GpuVideoEncodeAccelerator::Initialize(): VEA creation failed";
@@ -165,39 +165,29 @@ void GpuVideoEncodeAccelerator::OnWillDestroyStub() {
// static
std::vector<media::VideoEncodeAccelerator::SupportedProfile>
GpuVideoEncodeAccelerator::GetSupportedProfiles() {
- std::vector<media::VideoEncodeAccelerator::SupportedProfile> profiles;
-
-#if defined(OS_CHROMEOS) && defined(USE_X11)
-#if defined(ARCH_CPU_ARMEL)
- profiles = V4L2VideoEncodeAccelerator::GetSupportedProfiles();
-#elif defined(ARCH_CPU_X86_FAMILY)
- profiles = VaapiVideoEncodeAccelerator::GetSupportedProfiles();
-#endif
-#elif defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
- profiles = AndroidVideoEncodeAccelerator::GetSupportedProfiles();
-#endif
-
- // TODO(sheu): return platform-specific profiles.
- return profiles;
+ scoped_ptr<media::VideoEncodeAccelerator> encoder = CreateEncoder();
+ if (!encoder)
+ return std::vector<media::VideoEncodeAccelerator::SupportedProfile>();
+ return encoder->GetSupportedProfiles();
}
-void GpuVideoEncodeAccelerator::CreateEncoder() {
- DCHECK(!encoder_);
+scoped_ptr<media::VideoEncodeAccelerator>
+GpuVideoEncodeAccelerator::CreateEncoder() {
+ scoped_ptr<media::VideoEncodeAccelerator> encoder;
#if defined(OS_CHROMEOS) && defined(USE_X11)
#if defined(ARCH_CPU_ARMEL)
scoped_ptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
- if (!device.get())
- return;
-
- encoder_.reset(new V4L2VideoEncodeAccelerator(device.Pass()));
+ if (device)
+ encoder.reset(new V4L2VideoEncodeAccelerator(device.Pass()));
#elif defined(ARCH_CPU_X86_FAMILY)
const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(switches::kDisableVaapiAcceleratedVideoEncode))
- encoder_.reset(new VaapiVideoEncodeAccelerator(gfx::GetXDisplay()));
+ encoder.reset(new VaapiVideoEncodeAccelerator(gfx::GetXDisplay()));
#endif
#elif defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
- encoder_.reset(new AndroidVideoEncodeAccelerator());
+ encoder.reset(new AndroidVideoEncodeAccelerator());
#endif
+ return encoder.Pass();
}
void GpuVideoEncodeAccelerator::OnEncode(int32 frame_id,

Powered by Google App Engine
This is Rietveld 408576698