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

Side by Side Diff: media/cast/sender/fake_video_encode_accelerator_factory.cc

Issue 868803007: [Cast] Refactor ExternalVideoEncoder for cleaner/simpler encapsulation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add clarification comments and TODOs. Created 5 years, 10 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
(Empty)
1 // Copyright 2015 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 "media/cast/sender/fake_video_encode_accelerator_factory.h"
6
7 #include "base/callback_helpers.h"
8
9 namespace media {
10 namespace cast {
11
12 FakeVideoEncodeAcceleratorFactory::FakeVideoEncodeAcceleratorFactory(
13 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
14 : task_runner_(task_runner),
15 will_init_succeed_(true),
16 auto_respond_(false),
17 vea_response_count_(0),
18 shm_response_count_(0),
19 last_response_vea_(nullptr),
20 last_response_shm_(nullptr) {}
21
22 FakeVideoEncodeAcceleratorFactory::~FakeVideoEncodeAcceleratorFactory() {}
23
24 void FakeVideoEncodeAcceleratorFactory::SetInitializationWillSucceed(
25 bool will_init_succeed) {
26 will_init_succeed_ = will_init_succeed;
27 }
28
29 void FakeVideoEncodeAcceleratorFactory::SetAutoRespond(bool auto_respond) {
30 auto_respond_ = auto_respond;
31 if (auto_respond_) {
32 if (!vea_response_callback_.is_null())
33 RespondWithVideoEncodeAccelerator();
34 if (!shm_response_callback_.is_null())
35 RespondWithSharedMemory();
36 }
37 }
38
39 void FakeVideoEncodeAcceleratorFactory::CreateVideoEncodeAccelerator(
40 const ReceiveVideoEncodeAcceleratorCallback& callback) {
41 DCHECK(!callback.is_null());
42 DCHECK(!next_response_vea_);
43
44 FakeVideoEncodeAccelerator* const vea =
45 new FakeVideoEncodeAccelerator(task_runner_);
46 vea->SetWillInitializationSucceed(will_init_succeed_);
47 next_response_vea_.reset(vea);
48 vea_response_callback_ = callback;
49 if (auto_respond_)
50 RespondWithVideoEncodeAccelerator();
51 }
52
53 void FakeVideoEncodeAcceleratorFactory::CreateSharedMemory(
54 size_t size, const ReceiveVideoEncodeMemoryCallback& callback) {
55 DCHECK(!callback.is_null());
56 DCHECK(!next_response_shm_);
57
58 next_response_shm_.reset(new base::SharedMemory());
59 CHECK(next_response_shm_->CreateAndMapAnonymous(size));
60 shm_response_callback_ = callback;
61 if (auto_respond_)
62 RespondWithSharedMemory();
63 }
64
65 void FakeVideoEncodeAcceleratorFactory::RespondWithVideoEncodeAccelerator() {
66 DCHECK(next_response_vea_.get());
67 last_response_vea_ = next_response_vea_.get();
68 ++vea_response_count_;
69 base::ResetAndReturn(&vea_response_callback_).Run(
70 task_runner_, next_response_vea_.Pass());
71 }
72
73 void FakeVideoEncodeAcceleratorFactory::RespondWithSharedMemory() {
74 DCHECK(next_response_shm_.get());
75 last_response_shm_ = next_response_shm_.get();
76 ++shm_response_count_;
77 base::ResetAndReturn(&shm_response_callback_).Run(next_response_shm_.Pass());
78 }
79
80 } // namespace cast
81 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/sender/fake_video_encode_accelerator_factory.h ('k') | media/cast/sender/video_sender.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698