| 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 |