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

Side by Side Diff: media/filters/fake_video_decoder_unittest.cc

Issue 2086353002: Remove calls to deprecated MessageLoop methods in media. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/macros.h" 6 #include "base/macros.h"
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/run_loop.h"
8 #include "media/base/decoder_buffer.h" 9 #include "media/base/decoder_buffer.h"
9 #include "media/base/mock_filters.h" 10 #include "media/base/mock_filters.h"
10 #include "media/base/test_helpers.h" 11 #include "media/base/test_helpers.h"
11 #include "media/base/video_frame.h" 12 #include "media/base/video_frame.h"
12 #include "media/filters/fake_video_decoder.h" 13 #include "media/filters/fake_video_decoder.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 15
15 namespace media { 16 namespace media {
16 17
17 static const int kTotalBuffers = 12; 18 static const int kTotalBuffers = 12;
(...skipping 27 matching lines...) Expand all
45 46
46 virtual ~FakeVideoDecoderTest() { 47 virtual ~FakeVideoDecoderTest() {
47 Destroy(); 48 Destroy();
48 } 49 }
49 50
50 void InitializeWithConfigAndExpectResult(const VideoDecoderConfig& config, 51 void InitializeWithConfigAndExpectResult(const VideoDecoderConfig& config,
51 bool success) { 52 bool success) {
52 decoder_->Initialize( 53 decoder_->Initialize(
53 config, false, nullptr, NewExpectedBoolCB(success), 54 config, false, nullptr, NewExpectedBoolCB(success),
54 base::Bind(&FakeVideoDecoderTest::FrameReady, base::Unretained(this))); 55 base::Bind(&FakeVideoDecoderTest::FrameReady, base::Unretained(this)));
55 message_loop_.RunUntilIdle(); 56 base::RunLoop().RunUntilIdle();
56 current_config_ = config; 57 current_config_ = config;
57 } 58 }
58 59
59 void Initialize() { 60 void Initialize() {
60 InitializeWithConfigAndExpectResult(TestVideoConfig::Normal(), true); 61 InitializeWithConfigAndExpectResult(TestVideoConfig::Normal(), true);
61 } 62 }
62 63
63 void EnterPendingInitState() { 64 void EnterPendingInitState() {
64 decoder_->HoldNextInit(); 65 decoder_->HoldNextInit();
65 Initialize(); 66 Initialize();
66 } 67 }
67 68
68 void SatisfyInit() { 69 void SatisfyInit() {
69 decoder_->SatisfyInit(); 70 decoder_->SatisfyInit();
70 message_loop_.RunUntilIdle(); 71 base::RunLoop().RunUntilIdle();
71 } 72 }
72 73
73 // Callback for VideoDecoder::Decode(). 74 // Callback for VideoDecoder::Decode().
74 void DecodeDone(DecodeStatus status) { 75 void DecodeDone(DecodeStatus status) {
75 DCHECK_GT(pending_decode_requests_, 0); 76 DCHECK_GT(pending_decode_requests_, 0);
76 --pending_decode_requests_; 77 --pending_decode_requests_;
77 last_decode_status_ = status; 78 last_decode_status_ = status;
78 } 79 }
79 80
80 void FrameReady(const scoped_refptr<VideoFrame>& frame) { 81 void FrameReady(const scoped_refptr<VideoFrame>& frame) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 } else { 130 } else {
130 buffer = DecoderBuffer::CreateEOSBuffer(); 131 buffer = DecoderBuffer::CreateEOSBuffer();
131 } 132 }
132 133
133 ++num_input_buffers_; 134 ++num_input_buffers_;
134 ++pending_decode_requests_; 135 ++pending_decode_requests_;
135 136
136 decoder_->Decode( 137 decoder_->Decode(
137 buffer, 138 buffer,
138 base::Bind(&FakeVideoDecoderTest::DecodeDone, base::Unretained(this))); 139 base::Bind(&FakeVideoDecoderTest::DecodeDone, base::Unretained(this)));
139 message_loop_.RunUntilIdle(); 140 base::RunLoop().RunUntilIdle();
140 } 141 }
141 142
142 void ReadOneFrame() { 143 void ReadOneFrame() {
143 last_decoded_frame_ = NULL; 144 last_decoded_frame_ = NULL;
144 do { 145 do {
145 Decode(); 146 Decode();
146 } while (!last_decoded_frame_.get() && pending_decode_requests_ == 0); 147 } while (!last_decoded_frame_.get() && pending_decode_requests_ == 0);
147 } 148 }
148 149
149 void ReadAllFrames() { 150 void ReadAllFrames() {
150 do { 151 do {
151 Decode(); 152 Decode();
152 } while (num_input_buffers_ <= kTotalBuffers); // All input buffers + EOS. 153 } while (num_input_buffers_ <= kTotalBuffers); // All input buffers + EOS.
153 } 154 }
154 155
155 void EnterPendingReadState() { 156 void EnterPendingReadState() {
156 // Pass the initial NOT_ENOUGH_DATA stage. 157 // Pass the initial NOT_ENOUGH_DATA stage.
157 ReadOneFrame(); 158 ReadOneFrame();
158 decoder_->HoldDecode(); 159 decoder_->HoldDecode();
159 ReadOneFrame(); 160 ReadOneFrame();
160 ExpectReadResult(PENDING); 161 ExpectReadResult(PENDING);
161 } 162 }
162 163
163 void SatisfyDecodeAndExpect(CallbackResult result) { 164 void SatisfyDecodeAndExpect(CallbackResult result) {
164 decoder_->SatisfyDecode(); 165 decoder_->SatisfyDecode();
165 message_loop_.RunUntilIdle(); 166 base::RunLoop().RunUntilIdle();
166 ExpectReadResult(result); 167 ExpectReadResult(result);
167 } 168 }
168 169
169 void SatisfyRead() { 170 void SatisfyRead() {
170 SatisfyDecodeAndExpect(OK); 171 SatisfyDecodeAndExpect(OK);
171 } 172 }
172 173
173 // Callback for VideoDecoder::Reset(). 174 // Callback for VideoDecoder::Reset().
174 void OnDecoderReset() { 175 void OnDecoderReset() {
175 DCHECK(is_reset_pending_); 176 DCHECK(is_reset_pending_);
(...skipping 10 matching lines...) Expand all
186 break; 187 break;
187 default: 188 default:
188 NOTREACHED(); 189 NOTREACHED();
189 } 190 }
190 } 191 }
191 192
192 void ResetAndExpect(CallbackResult result) { 193 void ResetAndExpect(CallbackResult result) {
193 is_reset_pending_ = true; 194 is_reset_pending_ = true;
194 decoder_->Reset(base::Bind(&FakeVideoDecoderTest::OnDecoderReset, 195 decoder_->Reset(base::Bind(&FakeVideoDecoderTest::OnDecoderReset,
195 base::Unretained(this))); 196 base::Unretained(this)));
196 message_loop_.RunUntilIdle(); 197 base::RunLoop().RunUntilIdle();
197 ExpectResetResult(result); 198 ExpectResetResult(result);
198 } 199 }
199 200
200 void EnterPendingResetState() { 201 void EnterPendingResetState() {
201 decoder_->HoldNextReset(); 202 decoder_->HoldNextReset();
202 ResetAndExpect(PENDING); 203 ResetAndExpect(PENDING);
203 } 204 }
204 205
205 void SatisfyReset() { 206 void SatisfyReset() {
206 decoder_->SatisfyReset(); 207 decoder_->SatisfyReset();
207 message_loop_.RunUntilIdle(); 208 base::RunLoop().RunUntilIdle();
208 ExpectResetResult(OK); 209 ExpectResetResult(OK);
209 } 210 }
210 211
211 void Destroy() { 212 void Destroy() {
212 decoder_.reset(); 213 decoder_.reset();
213 message_loop_.RunUntilIdle(); 214 base::RunLoop().RunUntilIdle();
214 215
215 // All pending callbacks must have been fired. 216 // All pending callbacks must have been fired.
216 DCHECK_EQ(pending_decode_requests_, 0); 217 DCHECK_EQ(pending_decode_requests_, 0);
217 DCHECK(!is_reset_pending_); 218 DCHECK(!is_reset_pending_);
218 } 219 }
219 220
220 base::MessageLoop message_loop_; 221 base::MessageLoop message_loop_;
221 VideoDecoderConfig current_config_; 222 VideoDecoderConfig current_config_;
222 223
223 std::unique_ptr<FakeVideoDecoder> decoder_; 224 std::unique_ptr<FakeVideoDecoder> decoder_;
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 Initialize(); 328 Initialize();
328 329
329 // Hold all decodes and satisfy one decode at a time. 330 // Hold all decodes and satisfy one decode at a time.
330 decoder_->HoldDecode(); 331 decoder_->HoldDecode();
331 int num_decodes_satisfied = 0; 332 int num_decodes_satisfied = 0;
332 while (num_decoded_frames_ == 0) { 333 while (num_decoded_frames_ == 0) {
333 while (pending_decode_requests_ < decoder_->GetMaxDecodeRequests()) 334 while (pending_decode_requests_ < decoder_->GetMaxDecodeRequests())
334 Decode(); 335 Decode();
335 decoder_->SatisfySingleDecode(); 336 decoder_->SatisfySingleDecode();
336 ++num_decodes_satisfied; 337 ++num_decodes_satisfied;
337 message_loop_.RunUntilIdle(); 338 base::RunLoop().RunUntilIdle();
338 } 339 }
339 340
340 DCHECK_EQ(num_decoded_frames_, 1); 341 DCHECK_EQ(num_decoded_frames_, 1);
341 DCHECK_EQ(num_decodes_satisfied, GetParam().decoding_delay + 1); 342 DCHECK_EQ(num_decodes_satisfied, GetParam().decoding_delay + 1);
342 } 343 }
343 344
344 TEST_P(FakeVideoDecoderTest, Reinitialize) { 345 TEST_P(FakeVideoDecoderTest, Reinitialize) {
345 Initialize(); 346 Initialize();
346 ReadOneFrame(); 347 ReadOneFrame();
347 InitializeWithConfigAndExpectResult(TestVideoConfig::Large(), true); 348 InitializeWithConfigAndExpectResult(TestVideoConfig::Large(), true);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 } 423 }
423 424
424 TEST_P(FakeVideoDecoderTest, Destroy_DuringPendingReadAndPendingReset) { 425 TEST_P(FakeVideoDecoderTest, Destroy_DuringPendingReadAndPendingReset) {
425 Initialize(); 426 Initialize();
426 EnterPendingReadState(); 427 EnterPendingReadState();
427 EnterPendingResetState(); 428 EnterPendingResetState();
428 Destroy(); 429 Destroy();
429 } 430 }
430 431
431 } // namespace media 432 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/decrypting_video_decoder_unittest.cc ('k') | media/filters/ffmpeg_demuxer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698