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

Side by Side Diff: services/video_capture/video_capture_service.cc

Issue 2502483003: [Mojo Video Capture] Cleanup naming of classes/files in services/video_capture (Closed)
Patch Set: Rebase Created 4 years, 1 month 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "services/video_capture/video_capture_service.h"
6
7 #include "base/message_loop/message_loop.h"
8 #include "media/capture/video/fake_video_capture_device_factory.h"
9 #include "media/capture/video/video_capture_buffer_pool.h"
10 #include "media/capture/video/video_capture_buffer_tracker.h"
11 #include "media/capture/video/video_capture_jpeg_decoder.h"
12 #include "services/service_manager/public/cpp/interface_registry.h"
13 #include "services/video_capture/device_factory_media_to_mojo_adapter.h"
14 #include "services/video_capture/mock_device_factory.h"
15
16 namespace {
17
18 // TODO(chfremer): Replace with an actual decoder factory.
19 // https://crbug.com/584797
20 std::unique_ptr<media::VideoCaptureJpegDecoder> CreateJpegDecoder() {
21 return nullptr;
22 }
23
24 } // anonymous namespace
25
26 namespace video_capture {
27
28 VideoCaptureService::VideoCaptureService() : mock_device_factory_(nullptr) {}
29
30 VideoCaptureService::~VideoCaptureService() = default;
31
32 bool VideoCaptureService::OnConnect(
33 const service_manager::ServiceInfo& remote_info,
34 service_manager::InterfaceRegistry* registry) {
35 registry->AddInterface<mojom::VideoCaptureService>(this);
36 return true;
37 }
38
39 void VideoCaptureService::Create(
40 const service_manager::Identity& remote_identity,
41 mojom::VideoCaptureServiceRequest request) {
42 service_bindings_.AddBinding(this, std::move(request));
43 }
44
45 void VideoCaptureService::ConnectToDeviceFactory(
46 mojom::VideoCaptureDeviceFactoryRequest request) {
47 LazyInitializeDeviceFactory();
48 factory_bindings_.AddBinding(device_factory_.get(), std::move(request));
49 }
50
51 void VideoCaptureService::ConnectToFakeDeviceFactory(
52 mojom::VideoCaptureDeviceFactoryRequest request) {
53 LazyInitializeFakeDeviceFactory();
54 fake_factory_bindings_.AddBinding(fake_device_factory_.get(),
55 std::move(request));
56 }
57
58 void VideoCaptureService::ConnectToMockDeviceFactory(
59 mojom::VideoCaptureDeviceFactoryRequest request) {
60 LazyInitializeMockDeviceFactory();
61 mock_factory_bindings_.AddBinding(mock_device_factory_adapter_.get(),
62 std::move(request));
63 }
64
65 void VideoCaptureService::AddDeviceToMockFactory(
66 mojom::MockVideoCaptureDevicePtr device,
67 const media::VideoCaptureDeviceDescriptor& descriptor,
68 const AddDeviceToMockFactoryCallback& callback) {
69 LazyInitializeMockDeviceFactory();
70 mock_device_factory_->AddMockDevice(std::move(device), std::move(descriptor));
71 callback.Run();
72 }
73
74 void VideoCaptureService::LazyInitializeDeviceFactory() {
75 if (device_factory_)
76 return;
77
78 // Create the platform-specific device factory.
79 // Task runner does not seem to actually be used.
80 std::unique_ptr<media::VideoCaptureDeviceFactory> media_device_factory =
81 media::VideoCaptureDeviceFactory::CreateFactory(
82 base::MessageLoop::current()->task_runner());
83
84 device_factory_ = base::MakeUnique<DeviceFactoryMediaToMojoAdapter>(
85 std::move(media_device_factory), base::Bind(CreateJpegDecoder));
86 }
87
88 void VideoCaptureService::LazyInitializeFakeDeviceFactory() {
89 if (fake_device_factory_)
90 return;
91
92 fake_device_factory_ = base::MakeUnique<DeviceFactoryMediaToMojoAdapter>(
93 base::MakeUnique<media::FakeVideoCaptureDeviceFactory>(),
94 base::Bind(&CreateJpegDecoder));
95 }
96
97 void VideoCaptureService::LazyInitializeMockDeviceFactory() {
98 if (mock_device_factory_)
99 return;
100
101 auto mock_device_factory = base::MakeUnique<MockDeviceFactory>();
102 // We keep a pointer to the MockDeviceFactory as a member so that we can
103 // invoke its AddMockDevice(). Ownership of the MockDeviceFactory is moved
104 // to the DeviceFactoryMediaToMojoAdapter.
105 mock_device_factory_ = mock_device_factory.get();
106 mock_device_factory_adapter_ =
107 base::MakeUnique<DeviceFactoryMediaToMojoAdapter>(
108 std::move(mock_device_factory), base::Bind(&CreateJpegDecoder));
109 }
110
111 } // namespace video_capture
OLDNEW
« no previous file with comments | « services/video_capture/video_capture_service.h ('k') | services/video_capture/video_capture_service_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698