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

Side by Side Diff: chromecast/media/cma/base/buffering_frame_provider_unittest.cc

Issue 1875623002: Convert //chromecast from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chromecast/media/cma/base/buffering_frame_provider.h" 5 #include "chromecast/media/cma/base/buffering_frame_provider.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8
8 #include <list> 9 #include <list>
10 #include <memory>
9 #include <utility> 11 #include <utility>
10 #include <vector> 12 #include <vector>
11 13
12 #include "base/bind.h" 14 #include "base/bind.h"
13 #include "base/macros.h" 15 #include "base/macros.h"
14 #include "base/memory/ref_counted.h" 16 #include "base/memory/ref_counted.h"
15 #include "base/memory/scoped_ptr.h"
16 #include "base/threading/thread.h" 17 #include "base/threading/thread.h"
17 #include "base/time/time.h" 18 #include "base/time/time.h"
18 #include "chromecast/media/cma/test/frame_generator_for_test.h" 19 #include "chromecast/media/cma/test/frame_generator_for_test.h"
19 #include "chromecast/media/cma/test/mock_frame_consumer.h" 20 #include "chromecast/media/cma/test/mock_frame_consumer.h"
20 #include "chromecast/media/cma/test/mock_frame_provider.h" 21 #include "chromecast/media/cma/test/mock_frame_provider.h"
21 #include "chromecast/public/media/cast_decoder_buffer.h" 22 #include "chromecast/public/media/cast_decoder_buffer.h"
22 #include "media/base/audio_decoder_config.h" 23 #include "media/base/audio_decoder_config.h"
23 #include "media/base/decoder_buffer.h" 24 #include "media/base/decoder_buffer.h"
24 #include "media/base/video_decoder_config.h" 25 #include "media/base/video_decoder_config.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 27
27 namespace chromecast { 28 namespace chromecast {
28 namespace media { 29 namespace media {
29 30
30 class BufferingFrameProviderTest : public testing::Test { 31 class BufferingFrameProviderTest : public testing::Test {
31 public: 32 public:
32 BufferingFrameProviderTest(); 33 BufferingFrameProviderTest();
33 ~BufferingFrameProviderTest() override; 34 ~BufferingFrameProviderTest() override;
34 35
35 // Setup the test. 36 // Setup the test.
36 void Configure( 37 void Configure(
37 size_t frame_count, 38 size_t frame_count,
38 const std::vector<bool>& provider_delayed_pattern, 39 const std::vector<bool>& provider_delayed_pattern,
39 const std::vector<bool>& consumer_delayed_pattern); 40 const std::vector<bool>& consumer_delayed_pattern);
40 41
41 // Start the test. 42 // Start the test.
42 void Start(); 43 void Start();
43 44
44 protected: 45 protected:
45 scoped_ptr<BufferingFrameProvider> buffering_frame_provider_; 46 std::unique_ptr<BufferingFrameProvider> buffering_frame_provider_;
46 scoped_ptr<MockFrameConsumer> frame_consumer_; 47 std::unique_ptr<MockFrameConsumer> frame_consumer_;
47 48
48 private: 49 private:
49 void OnTestTimeout(); 50 void OnTestTimeout();
50 void OnTestCompleted(); 51 void OnTestCompleted();
51 52
52 DISALLOW_COPY_AND_ASSIGN(BufferingFrameProviderTest); 53 DISALLOW_COPY_AND_ASSIGN(BufferingFrameProviderTest);
53 }; 54 };
54 55
55 BufferingFrameProviderTest::BufferingFrameProviderTest() { 56 BufferingFrameProviderTest::BufferingFrameProviderTest() {
56 } 57 }
(...skipping 10 matching lines...) Expand all
67 // Frame generation on the producer and consumer side. 68 // Frame generation on the producer and consumer side.
68 std::vector<FrameGeneratorForTest::FrameSpec> frame_specs(frame_count); 69 std::vector<FrameGeneratorForTest::FrameSpec> frame_specs(frame_count);
69 for (size_t k = 0; k < frame_specs.size() - 1; k++) { 70 for (size_t k = 0; k < frame_specs.size() - 1; k++) {
70 frame_specs[k].has_config = (k == 0); 71 frame_specs[k].has_config = (k == 0);
71 frame_specs[k].timestamp = base::TimeDelta::FromMilliseconds(40) * k; 72 frame_specs[k].timestamp = base::TimeDelta::FromMilliseconds(40) * k;
72 frame_specs[k].size = 512; 73 frame_specs[k].size = 512;
73 frame_specs[k].has_decrypt_config = ((k % 3) == 0); 74 frame_specs[k].has_decrypt_config = ((k % 3) == 0);
74 } 75 }
75 frame_specs[frame_specs.size() - 1].is_eos = true; 76 frame_specs[frame_specs.size() - 1].is_eos = true;
76 77
77 scoped_ptr<FrameGeneratorForTest> frame_generator_provider( 78 std::unique_ptr<FrameGeneratorForTest> frame_generator_provider(
78 new FrameGeneratorForTest(frame_specs)); 79 new FrameGeneratorForTest(frame_specs));
79 scoped_ptr<FrameGeneratorForTest> frame_generator_consumer( 80 std::unique_ptr<FrameGeneratorForTest> frame_generator_consumer(
80 new FrameGeneratorForTest(frame_specs)); 81 new FrameGeneratorForTest(frame_specs));
81 82
82 scoped_ptr<MockFrameProvider> frame_provider(new MockFrameProvider()); 83 std::unique_ptr<MockFrameProvider> frame_provider(new MockFrameProvider());
83 frame_provider->Configure(provider_delayed_pattern, 84 frame_provider->Configure(provider_delayed_pattern,
84 std::move(frame_generator_provider)); 85 std::move(frame_generator_provider));
85 86
86 size_t max_frame_size = 10 * 1024; 87 size_t max_frame_size = 10 * 1024;
87 size_t buffer_size = 10 * max_frame_size; 88 size_t buffer_size = 10 * max_frame_size;
88 buffering_frame_provider_.reset( 89 buffering_frame_provider_.reset(new BufferingFrameProvider(
89 new BufferingFrameProvider( 90 std::unique_ptr<CodedFrameProvider>(frame_provider.release()),
90 scoped_ptr<CodedFrameProvider>(frame_provider.release()), 91 buffer_size, max_frame_size, BufferingFrameProvider::FrameBufferedCB()));
91 buffer_size,
92 max_frame_size,
93 BufferingFrameProvider::FrameBufferedCB()));
94 92
95 frame_consumer_.reset( 93 frame_consumer_.reset(
96 new MockFrameConsumer(buffering_frame_provider_.get())); 94 new MockFrameConsumer(buffering_frame_provider_.get()));
97 frame_consumer_->Configure(consumer_delayed_pattern, false, 95 frame_consumer_->Configure(consumer_delayed_pattern, false,
98 std::move(frame_generator_consumer)); 96 std::move(frame_generator_consumer));
99 } 97 }
100 98
101 void BufferingFrameProviderTest::Start() { 99 void BufferingFrameProviderTest::Start() {
102 frame_consumer_->Start( 100 frame_consumer_->Start(
103 base::Bind(&BufferingFrameProviderTest::OnTestCompleted, 101 base::Bind(&BufferingFrameProviderTest::OnTestCompleted,
(...skipping 17 matching lines...) Expand all
121 const size_t frame_count = 100u; 119 const size_t frame_count = 100u;
122 Configure( 120 Configure(
123 frame_count, 121 frame_count,
124 std::vector<bool>( 122 std::vector<bool>(
125 provider_delayed_pattern, 123 provider_delayed_pattern,
126 provider_delayed_pattern + arraysize(provider_delayed_pattern)), 124 provider_delayed_pattern + arraysize(provider_delayed_pattern)),
127 std::vector<bool>( 125 std::vector<bool>(
128 consumer_delayed_pattern, 126 consumer_delayed_pattern,
129 consumer_delayed_pattern + arraysize(consumer_delayed_pattern))); 127 consumer_delayed_pattern + arraysize(consumer_delayed_pattern)));
130 128
131 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); 129 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
132 message_loop->PostTask( 130 message_loop->PostTask(
133 FROM_HERE, 131 FROM_HERE,
134 base::Bind(&BufferingFrameProviderTest::Start, base::Unretained(this))); 132 base::Bind(&BufferingFrameProviderTest::Start, base::Unretained(this)));
135 message_loop->Run(); 133 message_loop->Run();
136 }; 134 };
137 135
138 TEST_F(BufferingFrameProviderTest, SlowProviderFastConsumer) { 136 TEST_F(BufferingFrameProviderTest, SlowProviderFastConsumer) {
139 bool provider_delayed_pattern[] = { true }; 137 bool provider_delayed_pattern[] = { true };
140 bool consumer_delayed_pattern[] = { false }; 138 bool consumer_delayed_pattern[] = { false };
141 139
142 const size_t frame_count = 100u; 140 const size_t frame_count = 100u;
143 Configure( 141 Configure(
144 frame_count, 142 frame_count,
145 std::vector<bool>( 143 std::vector<bool>(
146 provider_delayed_pattern, 144 provider_delayed_pattern,
147 provider_delayed_pattern + arraysize(provider_delayed_pattern)), 145 provider_delayed_pattern + arraysize(provider_delayed_pattern)),
148 std::vector<bool>( 146 std::vector<bool>(
149 consumer_delayed_pattern, 147 consumer_delayed_pattern,
150 consumer_delayed_pattern + arraysize(consumer_delayed_pattern))); 148 consumer_delayed_pattern + arraysize(consumer_delayed_pattern)));
151 149
152 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); 150 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
153 message_loop->PostTask( 151 message_loop->PostTask(
154 FROM_HERE, 152 FROM_HERE,
155 base::Bind(&BufferingFrameProviderTest::Start, base::Unretained(this))); 153 base::Bind(&BufferingFrameProviderTest::Start, base::Unretained(this)));
156 message_loop->Run(); 154 message_loop->Run();
157 }; 155 };
158 156
159 TEST_F(BufferingFrameProviderTest, SlowFastProducerConsumer) { 157 TEST_F(BufferingFrameProviderTest, SlowFastProducerConsumer) {
160 // Lengths are prime between each other so we can test a lot of combinations. 158 // Lengths are prime between each other so we can test a lot of combinations.
161 bool provider_delayed_pattern[] = { 159 bool provider_delayed_pattern[] = {
162 true, true, true, true, true, 160 true, true, true, true, true,
163 false, false, false, false 161 false, false, false, false
164 }; 162 };
165 bool consumer_delayed_pattern[] = { 163 bool consumer_delayed_pattern[] = {
166 true, true, true, true, true, true, true, 164 true, true, true, true, true, true, true,
167 false, false, false, false, false, false, false 165 false, false, false, false, false, false, false
168 }; 166 };
169 167
170 const size_t frame_count = 100u; 168 const size_t frame_count = 100u;
171 Configure( 169 Configure(
172 frame_count, 170 frame_count,
173 std::vector<bool>( 171 std::vector<bool>(
174 provider_delayed_pattern, 172 provider_delayed_pattern,
175 provider_delayed_pattern + arraysize(provider_delayed_pattern)), 173 provider_delayed_pattern + arraysize(provider_delayed_pattern)),
176 std::vector<bool>( 174 std::vector<bool>(
177 consumer_delayed_pattern, 175 consumer_delayed_pattern,
178 consumer_delayed_pattern + arraysize(consumer_delayed_pattern))); 176 consumer_delayed_pattern + arraysize(consumer_delayed_pattern)));
179 177
180 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); 178 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
181 message_loop->PostTask( 179 message_loop->PostTask(
182 FROM_HERE, 180 FROM_HERE,
183 base::Bind(&BufferingFrameProviderTest::Start, base::Unretained(this))); 181 base::Bind(&BufferingFrameProviderTest::Start, base::Unretained(this)));
184 message_loop->Run(); 182 message_loop->Run();
185 }; 183 };
186 184
187 } // namespace media 185 } // namespace media
188 } // namespace chromecast 186 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cma/base/buffering_frame_provider.cc ('k') | chromecast/media/cma/base/decoder_buffer_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698