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

Side by Side Diff: media/gpu/ipc/service/gpu_video_encode_accelerator.cc

Issue 2146463002: Fix V4L2VideoEncodeAccelerator is not enabled in GN build (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/gpu/ipc/service/gpu_video_encode_accelerator.h" 5 #include "media/gpu/ipc/service/gpu_video_encode_accelerator.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "base/memory/shared_memory.h" 13 #include "base/memory/shared_memory.h"
14 #include "base/numerics/safe_math.h" 14 #include "base/numerics/safe_math.h"
15 #include "base/sys_info.h" 15 #include "base/sys_info.h"
16 #include "build/build_config.h" 16 #include "build/build_config.h"
17 #include "gpu/ipc/client/gpu_memory_buffer_impl.h" 17 #include "gpu/ipc/client/gpu_memory_buffer_impl.h"
18 #include "gpu/ipc/service/gpu_channel.h" 18 #include "gpu/ipc/service/gpu_channel.h"
19 #include "gpu/ipc/service/gpu_channel_manager.h" 19 #include "gpu/ipc/service/gpu_channel_manager.h"
20 #include "ipc/ipc_message_macros.h" 20 #include "ipc/ipc_message_macros.h"
21 #include "media/base/bind_to_current_loop.h" 21 #include "media/base/bind_to_current_loop.h"
22 #include "media/base/limits.h" 22 #include "media/base/limits.h"
23 #include "media/base/video_frame.h" 23 #include "media/base/video_frame.h"
24 #include "media/gpu/gpu_video_accelerator_util.h" 24 #include "media/gpu/gpu_video_accelerator_util.h"
25 #include "media/gpu/ipc/common/media_messages.h" 25 #include "media/gpu/ipc/common/media_messages.h"
26 26
27 #if defined(OS_CHROMEOS) 27 #if defined(OS_CHROMEOS)
28 #if defined(USE_V4L2_CODEC) 28 #if defined(ARCH_CPU_ARMEL) || (defined(USE_OZONE) && defined(USE_V4L2_CODEC))
29 #include "media/gpu/v4l2_video_encode_accelerator.h" 29 #include "media/gpu/v4l2_video_encode_accelerator.h"
30 #endif 30 #endif
31 #if defined(ARCH_CPU_X86_FAMILY) 31 #if defined(ARCH_CPU_X86_FAMILY)
32 #include "media/gpu/vaapi_video_encode_accelerator.h" 32 #include "media/gpu/vaapi_video_encode_accelerator.h"
33 #endif 33 #endif
34 #elif defined(OS_ANDROID) && defined(ENABLE_WEBRTC) 34 #elif defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
35 #include "media/gpu/android_video_encode_accelerator.h" 35 #include "media/gpu/android_video_encode_accelerator.h"
36 #elif defined(OS_MACOSX) 36 #elif defined(OS_MACOSX)
37 #include "media/gpu/vt_video_encode_accelerator_mac.h" 37 #include "media/gpu/vt_video_encode_accelerator_mac.h"
38 #endif 38 #endif
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 &profiles); 187 &profiles);
188 } 188 }
189 return GpuVideoAcceleratorUtil::ConvertMediaToGpuEncodeProfiles(profiles); 189 return GpuVideoAcceleratorUtil::ConvertMediaToGpuEncodeProfiles(profiles);
190 } 190 }
191 191
192 // static 192 // static
193 std::vector<GpuVideoEncodeAccelerator::CreateVEAFp> 193 std::vector<GpuVideoEncodeAccelerator::CreateVEAFp>
194 GpuVideoEncodeAccelerator::CreateVEAFps( 194 GpuVideoEncodeAccelerator::CreateVEAFps(
195 const gpu::GpuPreferences& gpu_preferences) { 195 const gpu::GpuPreferences& gpu_preferences) {
196 std::vector<GpuVideoEncodeAccelerator::CreateVEAFp> create_vea_fps; 196 std::vector<GpuVideoEncodeAccelerator::CreateVEAFp> create_vea_fps;
197 #if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) 197
198 #if defined(OS_CHROMEOS) && (defined(ARCH_CPU_ARMEL) || \
199 (defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
wuchengli 2016/07/12 11:39:51 This is not directly related to gn change. Please
198 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateV4L2VEA); 200 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateV4L2VEA);
199 #endif 201 #endif
200 #if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) 202 #if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
201 if (!gpu_preferences.disable_vaapi_accelerated_video_encode) 203 if (!gpu_preferences.disable_vaapi_accelerated_video_encode)
202 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVaapiVEA); 204 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVaapiVEA);
203 #endif 205 #endif
204 #if defined(OS_ANDROID) && defined(ENABLE_WEBRTC) 206 #if defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
205 if (!gpu_preferences.disable_web_rtc_hw_encoding) 207 if (!gpu_preferences.disable_web_rtc_hw_encoding)
206 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateAndroidVEA); 208 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateAndroidVEA);
207 #endif 209 #endif
208 #if defined(OS_MACOSX) 210 #if defined(OS_MACOSX)
209 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVTVEA); 211 create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVTVEA);
210 #endif 212 #endif
211 return create_vea_fps; 213 return create_vea_fps;
212 } 214 }
213 215
214 #if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) 216 #if defined(OS_CHROMEOS) && (defined(ARCH_CPU_ARMEL) || \
217 (defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
215 // static 218 // static
216 std::unique_ptr<VideoEncodeAccelerator> 219 std::unique_ptr<VideoEncodeAccelerator>
217 GpuVideoEncodeAccelerator::CreateV4L2VEA() { 220 GpuVideoEncodeAccelerator::CreateV4L2VEA() {
218 std::unique_ptr<VideoEncodeAccelerator> encoder; 221 std::unique_ptr<VideoEncodeAccelerator> encoder;
219 scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder); 222 scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
220 if (device) 223 if (device)
221 encoder.reset(new V4L2VideoEncodeAccelerator(device)); 224 encoder.reset(new V4L2VideoEncodeAccelerator(device));
222 return encoder; 225 return encoder;
223 } 226 }
224 #endif 227 #endif
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 Send(new AcceleratedVideoEncoderHostMsg_NotifyInputDone(host_route_id_, 370 Send(new AcceleratedVideoEncoderHostMsg_NotifyInputDone(host_route_id_,
368 frame_id)); 371 frame_id));
369 // Just let |shm| fall out of scope. 372 // Just let |shm| fall out of scope.
370 } 373 }
371 374
372 void GpuVideoEncodeAccelerator::Send(IPC::Message* message) { 375 void GpuVideoEncodeAccelerator::Send(IPC::Message* message) {
373 stub_->channel()->Send(message); 376 stub_->channel()->Send(message);
374 } 377 }
375 378
376 } // namespace media 379 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698