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 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| 11 #include "base/thread_task_runner_handle.h" |
11 #include "base/threading/thread.h" | 12 #include "base/threading/thread.h" |
12 #include "base/time/time.h" | 13 #include "base/time/time.h" |
13 #include "chromecast/media/cma/base/balanced_media_task_runner_factory.h" | 14 #include "chromecast/media/cma/base/balanced_media_task_runner_factory.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/filters/demuxer_stream_adapter.h" | 16 #include "chromecast/media/cma/filters/demuxer_stream_adapter.h" |
16 #include "media/base/audio_decoder_config.h" | 17 #include "media/base/audio_decoder_config.h" |
17 #include "media/base/decoder_buffer.h" | 18 #include "media/base/decoder_buffer.h" |
18 #include "media/base/demuxer_stream.h" | 19 #include "media/base/demuxer_stream.h" |
19 #include "media/base/video_decoder_config.h" | 20 #include "media/base/video_decoder_config.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 has_pending_read_ = true; | 91 has_pending_read_ = true; |
91 if (!config_idx_.empty() && config_idx_.front() == frame_count_) { | 92 if (!config_idx_.empty() && config_idx_.front() == frame_count_) { |
92 config_idx_.pop_front(); | 93 config_idx_.pop_front(); |
93 has_pending_read_ = false; | 94 has_pending_read_ = false; |
94 read_cb.Run(kConfigChanged, | 95 read_cb.Run(kConfigChanged, |
95 scoped_refptr< ::media::DecoderBuffer>()); | 96 scoped_refptr< ::media::DecoderBuffer>()); |
96 return; | 97 return; |
97 } | 98 } |
98 | 99 |
99 if ((frame_count_ % cycle_count_) < delayed_frame_count_) { | 100 if ((frame_count_ % cycle_count_) < delayed_frame_count_) { |
100 base::MessageLoopProxy::current()->PostDelayedTask( | 101 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
101 FROM_HERE, | 102 FROM_HERE, base::Bind(&DummyDemuxerStream::DoRead, |
102 base::Bind(&DummyDemuxerStream::DoRead, base::Unretained(this), | 103 base::Unretained(this), read_cb), |
103 read_cb), | |
104 base::TimeDelta::FromMilliseconds(20)); | 104 base::TimeDelta::FromMilliseconds(20)); |
105 return; | 105 return; |
106 } | 106 } |
107 DoRead(read_cb); | 107 DoRead(read_cb); |
108 } | 108 } |
109 | 109 |
110 ::media::AudioDecoderConfig DummyDemuxerStream::audio_decoder_config() { | 110 ::media::AudioDecoderConfig DummyDemuxerStream::audio_decoder_config() { |
111 LOG(FATAL) << "DummyDemuxerStream is a video DemuxerStream"; | 111 LOG(FATAL) << "DummyDemuxerStream is a video DemuxerStream"; |
112 return ::media::AudioDecoderConfig(); | 112 return ::media::AudioDecoderConfig(); |
113 } | 113 } |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 | 190 |
191 DemuxerStreamAdapterTest::DemuxerStreamAdapterTest() | 191 DemuxerStreamAdapterTest::DemuxerStreamAdapterTest() |
192 : use_post_task_for_flush_(false) { | 192 : use_post_task_for_flush_(false) { |
193 } | 193 } |
194 | 194 |
195 DemuxerStreamAdapterTest::~DemuxerStreamAdapterTest() { | 195 DemuxerStreamAdapterTest::~DemuxerStreamAdapterTest() { |
196 } | 196 } |
197 | 197 |
198 void DemuxerStreamAdapterTest::Initialize( | 198 void DemuxerStreamAdapterTest::Initialize( |
199 ::media::DemuxerStream* demuxer_stream) { | 199 ::media::DemuxerStream* demuxer_stream) { |
200 coded_frame_provider_.reset( | 200 coded_frame_provider_.reset(new DemuxerStreamAdapter( |
201 new DemuxerStreamAdapter( | 201 base::ThreadTaskRunnerHandle::Get(), |
202 base::MessageLoopProxy::current(), | 202 scoped_refptr<BalancedMediaTaskRunnerFactory>(), demuxer_stream)); |
203 scoped_refptr<BalancedMediaTaskRunnerFactory>(), | |
204 demuxer_stream)); | |
205 } | 203 } |
206 | 204 |
207 void DemuxerStreamAdapterTest::Start() { | 205 void DemuxerStreamAdapterTest::Start() { |
208 frame_received_count_ = 0; | 206 frame_received_count_ = 0; |
209 | 207 |
210 // TODO(damienv): currently, test assertions which fail do not trigger the | 208 // TODO(damienv): currently, test assertions which fail do not trigger the |
211 // exit of the unit test, the message loop is still running. Find a different | 209 // exit of the unit test, the message loop is still running. Find a different |
212 // way to exit the unit test. | 210 // way to exit the unit test. |
213 base::MessageLoop::current()->PostDelayedTask( | 211 base::MessageLoop::current()->PostDelayedTask( |
214 FROM_HERE, | 212 FROM_HERE, |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
336 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); | 334 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); |
337 Initialize(demuxer_stream_.get()); | 335 Initialize(demuxer_stream_.get()); |
338 message_loop->PostTask( | 336 message_loop->PostTask( |
339 FROM_HERE, | 337 FROM_HERE, |
340 base::Bind(&DemuxerStreamAdapterTest::Start, base::Unretained(this))); | 338 base::Bind(&DemuxerStreamAdapterTest::Start, base::Unretained(this))); |
341 message_loop->Run(); | 339 message_loop->Run(); |
342 } | 340 } |
343 | 341 |
344 } // namespace media | 342 } // namespace media |
345 } // namespace chromecast | 343 } // namespace chromecast |
OLD | NEW |