OLD | NEW |
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 <list> | 5 #include <list> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/thread_task_runner_handle.h" |
12 #include "base/threading/thread.h" | 13 #include "base/threading/thread.h" |
13 #include "base/time/time.h" | 14 #include "base/time/time.h" |
14 #include "chromecast/media/cma/base/decoder_buffer_base.h" | 15 #include "chromecast/media/cma/base/decoder_buffer_base.h" |
15 #include "chromecast/media/cma/ipc/media_memory_chunk.h" | 16 #include "chromecast/media/cma/ipc/media_memory_chunk.h" |
16 #include "chromecast/media/cma/ipc/media_message_fifo.h" | 17 #include "chromecast/media/cma/ipc/media_message_fifo.h" |
17 #include "chromecast/media/cma/ipc_streamer/av_streamer_proxy.h" | 18 #include "chromecast/media/cma/ipc_streamer/av_streamer_proxy.h" |
18 #include "chromecast/media/cma/ipc_streamer/coded_frame_provider_host.h" | 19 #include "chromecast/media/cma/ipc_streamer/coded_frame_provider_host.h" |
19 #include "chromecast/media/cma/test/frame_generator_for_test.h" | 20 #include "chromecast/media/cma/test/frame_generator_for_test.h" |
20 #include "chromecast/media/cma/test/mock_frame_consumer.h" | 21 #include "chromecast/media/cma/test/mock_frame_consumer.h" |
21 #include "chromecast/media/cma/test/mock_frame_provider.h" | 22 #include "chromecast/media/cma/test/mock_frame_provider.h" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 | 138 |
138 frame_consumer_.reset( | 139 frame_consumer_.reset( |
139 new MockFrameConsumer(coded_frame_provider_host_.get())); | 140 new MockFrameConsumer(coded_frame_provider_host_.get())); |
140 frame_consumer_->Configure( | 141 frame_consumer_->Configure( |
141 consumer_delayed_pattern, | 142 consumer_delayed_pattern, |
142 false, | 143 false, |
143 frame_generator_consumer.Pass()); | 144 frame_generator_consumer.Pass()); |
144 } | 145 } |
145 | 146 |
146 void AvStreamerTest::Start() { | 147 void AvStreamerTest::Start() { |
147 base::MessageLoopProxy::current()->PostTask( | 148 base::ThreadTaskRunnerHandle::Get()->PostTask( |
148 FROM_HERE, | 149 FROM_HERE, base::Bind(&AvStreamerProxy::Start, |
149 base::Bind(&AvStreamerProxy::Start, | 150 base::Unretained(av_buffer_proxy_.get()))); |
150 base::Unretained(av_buffer_proxy_.get()))); | |
151 | 151 |
152 frame_consumer_->Start( | 152 frame_consumer_->Start( |
153 base::Bind(&AvStreamerTest::OnTestCompleted, | 153 base::Bind(&AvStreamerTest::OnTestCompleted, |
154 base::Unretained(this))); | 154 base::Unretained(this))); |
155 } | 155 } |
156 | 156 |
157 void AvStreamerTest::OnTestTimeout() { | 157 void AvStreamerTest::OnTestTimeout() { |
158 ADD_FAILURE() << "Test timed out"; | 158 ADD_FAILURE() << "Test timed out"; |
159 if (base::MessageLoop::current()) | 159 if (base::MessageLoop::current()) |
160 base::MessageLoop::current()->QuitWhenIdle(); | 160 base::MessageLoop::current()->QuitWhenIdle(); |
161 } | 161 } |
162 | 162 |
163 void AvStreamerTest::OnTestCompleted() { | 163 void AvStreamerTest::OnTestCompleted() { |
164 base::MessageLoop::current()->QuitWhenIdle(); | 164 base::MessageLoop::current()->QuitWhenIdle(); |
165 } | 165 } |
166 | 166 |
167 void AvStreamerTest::OnFifoWrite() { | 167 void AvStreamerTest::OnFifoWrite() { |
168 base::MessageLoopProxy::current()->PostTask( | 168 base::ThreadTaskRunnerHandle::Get()->PostTask( |
169 FROM_HERE, | 169 FROM_HERE, |
170 base::Bind(&CodedFrameProviderHost::OnFifoWriteEvent, | 170 base::Bind(&CodedFrameProviderHost::OnFifoWriteEvent, |
171 base::Unretained(coded_frame_provider_host_.get()))); | 171 base::Unretained(coded_frame_provider_host_.get()))); |
172 } | 172 } |
173 | 173 |
174 void AvStreamerTest::OnFifoRead() { | 174 void AvStreamerTest::OnFifoRead() { |
175 base::MessageLoopProxy::current()->PostTask( | 175 base::ThreadTaskRunnerHandle::Get()->PostTask( |
176 FROM_HERE, | 176 FROM_HERE, base::Bind(&AvStreamerProxy::OnFifoReadEvent, |
177 base::Bind(&AvStreamerProxy::OnFifoReadEvent, | 177 base::Unretained(av_buffer_proxy_.get()))); |
178 base::Unretained(av_buffer_proxy_.get()))); | |
179 } | 178 } |
180 | 179 |
181 TEST_F(AvStreamerTest, FastProviderSlowConsumer) { | 180 TEST_F(AvStreamerTest, FastProviderSlowConsumer) { |
182 bool provider_delayed_pattern[] = { false }; | 181 bool provider_delayed_pattern[] = { false }; |
183 bool consumer_delayed_pattern[] = { true }; | 182 bool consumer_delayed_pattern[] = { true }; |
184 | 183 |
185 const size_t frame_count = 100u; | 184 const size_t frame_count = 100u; |
186 Configure( | 185 Configure( |
187 frame_count, | 186 frame_count, |
188 std::vector<bool>( | 187 std::vector<bool>( |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 | 243 |
245 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); | 244 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); |
246 message_loop->PostTask( | 245 message_loop->PostTask( |
247 FROM_HERE, | 246 FROM_HERE, |
248 base::Bind(&AvStreamerTest::Start, base::Unretained(this))); | 247 base::Bind(&AvStreamerTest::Start, base::Unretained(this))); |
249 message_loop->Run(); | 248 message_loop->Run(); |
250 }; | 249 }; |
251 | 250 |
252 } // namespace media | 251 } // namespace media |
253 } // namespace chromecast | 252 } // namespace chromecast |
OLD | NEW |