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

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

Issue 832383004: Revert of Support multiple video decoders and encoders (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 77925f4f12823b5f7481742edb203e1ac7d37a7e..639d1d8ae6af4cf4098825199dc4a0ae174c99e1 100644
--- a/content/common/gpu/media/gpu_video_encode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_encode_accelerator.cc
@@ -18,12 +18,13 @@
#include "media/base/video_frame.h"
#if defined(OS_CHROMEOS)
-#if defined(USE_OZONE) || defined(ARCH_CPU_ARMEL)
+
+#if defined(ARCH_CPU_ARMEL) && defined(USE_X11)
#include "content/common/gpu/media/v4l2_video_encode_accelerator.h"
-#endif // defined(USE_OZONE) || defined(ARCH_CPU_ARMEL)
-#if defined(ARCH_CPU_X86_FAMILY)
+#elif defined(ARCH_CPU_X86_FAMILY)
#include "content/common/gpu/media/vaapi_video_encode_accelerator.h"
-#endif // defined(ARCH_CPU_X86_FAMILY)
+#endif
+
#elif defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
#include "content/common/gpu/media/android_video_encode_accelerator.h"
#endif
@@ -93,26 +94,26 @@
return;
}
- std::vector<GpuVideoEncodeAccelerator::CreateVEAFp>
- create_vea_fps = CreateVEAFps();
- // Try all possible encoders and use the first successful encoder.
- for (size_t i = 0; i < create_vea_fps.size(); ++i) {
- encoder_ = (*create_vea_fps[i])();
- if (encoder_ && encoder_->Initialize(input_format,
- input_visible_size,
- output_profile,
- initial_bitrate,
- this)) {
- input_format_ = input_format;
- input_visible_size_ = input_visible_size;
- SendCreateEncoderReply(init_done_msg, true);
- return;
- }
- }
- encoder_.reset();
- DLOG(ERROR)
- << "GpuVideoEncodeAccelerator::Initialize(): VEA initialization failed";
- SendCreateEncoderReply(init_done_msg, false);
+ encoder_ = CreateEncoder();
+ if (!encoder_) {
+ DLOG(ERROR)
+ << "GpuVideoEncodeAccelerator::Initialize(): VEA creation failed";
+ SendCreateEncoderReply(init_done_msg, false);
+ return;
+ }
+ if (!encoder_->Initialize(input_format,
+ input_visible_size,
+ output_profile,
+ initial_bitrate,
+ this)) {
+ DLOG(ERROR)
+ << "GpuVideoEncodeAccelerator::Initialize(): VEA initialization failed";
+ SendCreateEncoderReply(init_done_msg, false);
+ return;
+ }
+ input_format_ = input_format;
+ input_visible_size_ = input_visible_size;
+ SendCreateEncoderReply(init_done_msg, true);
}
bool GpuVideoEncodeAccelerator::OnMessageReceived(const IPC::Message& message) {
@@ -163,23 +164,12 @@
// static
std::vector<gpu::VideoEncodeAcceleratorSupportedProfile>
GpuVideoEncodeAccelerator::GetSupportedProfiles() {
- std::vector<media::VideoEncodeAccelerator::SupportedProfile> profiles;
- std::vector<GpuVideoEncodeAccelerator::CreateVEAFp>
- create_vea_fps = CreateVEAFps();
-
- for (size_t i = 0; i < create_vea_fps.size(); ++i) {
- scoped_ptr<media::VideoEncodeAccelerator>
- encoder = (*create_vea_fps[i])();
- if (!encoder)
- continue;
- std::vector<media::VideoEncodeAccelerator::SupportedProfile>
- vea_profiles = encoder->GetSupportedProfiles();
- profiles.insert(profiles.end(), vea_profiles.begin(), vea_profiles.end());
- }
- return ConvertMediaToGpuProfiles(profiles);
-}
-
-// static
+ scoped_ptr<media::VideoEncodeAccelerator> encoder = CreateEncoder();
+ if (!encoder)
+ return std::vector<gpu::VideoEncodeAcceleratorSupportedProfile>();
+ return ConvertMediaToGpuProfiles(encoder->GetSupportedProfiles());
+}
+
std::vector<gpu::VideoEncodeAcceleratorSupportedProfile>
GpuVideoEncodeAccelerator::ConvertMediaToGpuProfiles(const std::vector<
media::VideoEncodeAccelerator::SupportedProfile>& media_profiles) {
@@ -197,45 +187,20 @@
return profiles;
}
-// static
-std::vector<GpuVideoEncodeAccelerator::CreateVEAFp>
-GpuVideoEncodeAccelerator::CreateVEAFps() {
- std::vector<GpuVideoEncodeAccelerator::CreateVEAFp> create_vea_fps;
- create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateV4L2VEA);
- create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVaapiVEA);
- create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateAndroidVEA);
- return create_vea_fps;
-}
-
-// static
scoped_ptr<media::VideoEncodeAccelerator>
-GpuVideoEncodeAccelerator::CreateV4L2VEA() {
+GpuVideoEncodeAccelerator::CreateEncoder() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && (defined(USE_OZONE) || defined(ARCH_CPU_ARMEL))
+#if defined(OS_CHROMEOS)
+#if defined(ARCH_CPU_ARMEL) && defined(USE_X11)
scoped_ptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
if (device)
encoder.reset(new V4L2VideoEncodeAccelerator(device.Pass()));
-#endif
- return encoder.Pass();
-}
-
-// static
-scoped_ptr<media::VideoEncodeAccelerator>
-GpuVideoEncodeAccelerator::CreateVaapiVEA() {
- scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#elif defined(ARCH_CPU_X86_FAMILY)
const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(switches::kDisableVaapiAcceleratedVideoEncode))
encoder.reset(new VaapiVideoEncodeAccelerator());
#endif
- return encoder.Pass();
-}
-
-// static
-scoped_ptr<media::VideoEncodeAccelerator>
-GpuVideoEncodeAccelerator::CreateAndroidVEA() {
- scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
+#elif defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
encoder.reset(new AndroidVideoEncodeAccelerator());
#endif
return encoder.Pass();
« no previous file with comments | « content/common/gpu/media/gpu_video_encode_accelerator.h ('k') | content/common/gpu/media/v4l2_image_processor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698