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

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

Issue 2053123002: Remove MessageLoop::current()->RunUntilIdle() in media. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
« no previous file with comments | « media/cast/sender/h264_vt_encoder_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "media/filters/chunk_demuxer.h" 5 #include "media/filters/chunk_demuxer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h"
15 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
16 #include "base/strings/string_split.h" 17 #include "base/strings/string_split.h"
17 #include "base/strings/string_util.h" 18 #include "base/strings/string_util.h"
18 #include "media/base/audio_decoder_config.h" 19 #include "media/base/audio_decoder_config.h"
19 #include "media/base/decoder_buffer.h" 20 #include "media/base/decoder_buffer.h"
20 #include "media/base/decrypt_config.h" 21 #include "media/base/decrypt_config.h"
21 #include "media/base/media.h" 22 #include "media/base/media.h"
22 #include "media/base/media_tracks.h" 23 #include "media/base/media_tracks.h"
23 #include "media/base/mock_demuxer_host.h" 24 #include "media/base/mock_demuxer_host.h"
24 #include "media/base/mock_media_log.h" 25 #include "media/base/mock_media_log.h"
(...skipping 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 void ReadUntilNotOkOrEndOfStream(DemuxerStream::Type type, 1224 void ReadUntilNotOkOrEndOfStream(DemuxerStream::Type type,
1224 DemuxerStream::Status* status, 1225 DemuxerStream::Status* status,
1225 base::TimeDelta* last_timestamp) { 1226 base::TimeDelta* last_timestamp) {
1226 DemuxerStream* stream = demuxer_->GetStream(type); 1227 DemuxerStream* stream = demuxer_->GetStream(type);
1227 scoped_refptr<DecoderBuffer> buffer; 1228 scoped_refptr<DecoderBuffer> buffer;
1228 1229
1229 *last_timestamp = kNoTimestamp(); 1230 *last_timestamp = kNoTimestamp();
1230 do { 1231 do {
1231 stream->Read(base::Bind(&ChunkDemuxerTest::StoreStatusAndBuffer, 1232 stream->Read(base::Bind(&ChunkDemuxerTest::StoreStatusAndBuffer,
1232 base::Unretained(this), status, &buffer)); 1233 base::Unretained(this), status, &buffer));
1233 base::MessageLoop::current()->RunUntilIdle(); 1234 base::RunLoop().RunUntilIdle();
1234 if (*status == DemuxerStream::kOk && !buffer->end_of_stream()) 1235 if (*status == DemuxerStream::kOk && !buffer->end_of_stream())
1235 *last_timestamp = buffer->timestamp(); 1236 *last_timestamp = buffer->timestamp();
1236 } while (*status == DemuxerStream::kOk && !buffer->end_of_stream()); 1237 } while (*status == DemuxerStream::kOk && !buffer->end_of_stream());
1237 } 1238 }
1238 1239
1239 void ExpectEndOfStream(DemuxerStream::Type type) { 1240 void ExpectEndOfStream(DemuxerStream::Type type) {
1240 EXPECT_CALL(*this, ReadDone(DemuxerStream::kOk, IsEndOfStream())); 1241 EXPECT_CALL(*this, ReadDone(DemuxerStream::kOk, IsEndOfStream()));
1241 demuxer_->GetStream(type)->Read(base::Bind( 1242 demuxer_->GetStream(type)->Read(base::Bind(
1242 &ChunkDemuxerTest::ReadDone, base::Unretained(this))); 1243 &ChunkDemuxerTest::ReadDone, base::Unretained(this)));
1243 message_loop_.RunUntilIdle(); 1244 message_loop_.RunUntilIdle();
(...skipping 20 matching lines...) Expand all
1264 expected, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); 1265 expected, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
1265 std::stringstream ss; 1266 std::stringstream ss;
1266 for (size_t i = 0; i < timestamps.size(); ++i) { 1267 for (size_t i = 0; i < timestamps.size(); ++i) {
1267 // Initialize status to kAborted since it's possible for Read() to return 1268 // Initialize status to kAborted since it's possible for Read() to return
1268 // without calling StoreStatusAndBuffer() if it doesn't have any buffers 1269 // without calling StoreStatusAndBuffer() if it doesn't have any buffers
1269 // left to return. 1270 // left to return.
1270 DemuxerStream::Status status = DemuxerStream::kAborted; 1271 DemuxerStream::Status status = DemuxerStream::kAborted;
1271 scoped_refptr<DecoderBuffer> buffer; 1272 scoped_refptr<DecoderBuffer> buffer;
1272 stream->Read(base::Bind(&ChunkDemuxerTest::StoreStatusAndBuffer, 1273 stream->Read(base::Bind(&ChunkDemuxerTest::StoreStatusAndBuffer,
1273 base::Unretained(this), &status, &buffer)); 1274 base::Unretained(this), &status, &buffer));
1274 base::MessageLoop::current()->RunUntilIdle(); 1275 base::RunLoop().RunUntilIdle();
1275 if (status != DemuxerStream::kOk || buffer->end_of_stream()) 1276 if (status != DemuxerStream::kOk || buffer->end_of_stream())
1276 break; 1277 break;
1277 1278
1278 if (i > 0) 1279 if (i > 0)
1279 ss << " "; 1280 ss << " ";
1280 ss << buffer->timestamp().InMilliseconds(); 1281 ss << buffer->timestamp().InMilliseconds();
1281 1282
1282 if (buffer->is_key_frame()) 1283 if (buffer->is_key_frame())
1283 ss << "K"; 1284 ss << "K";
1284 1285
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after
1995 // Request a read on the audio and video streams. 1996 // Request a read on the audio and video streams.
1996 void RequestReads() { 1997 void RequestReads() {
1997 EXPECT_FALSE(audio_read_done_); 1998 EXPECT_FALSE(audio_read_done_);
1998 EXPECT_FALSE(video_read_done_); 1999 EXPECT_FALSE(video_read_done_);
1999 2000
2000 DemuxerStream* audio = demuxer_->GetStream(DemuxerStream::AUDIO); 2001 DemuxerStream* audio = demuxer_->GetStream(DemuxerStream::AUDIO);
2001 DemuxerStream* video = demuxer_->GetStream(DemuxerStream::VIDEO); 2002 DemuxerStream* video = demuxer_->GetStream(DemuxerStream::VIDEO);
2002 2003
2003 audio->Read(base::Bind(&OnEndOfStreamReadDone, &audio_read_done_)); 2004 audio->Read(base::Bind(&OnEndOfStreamReadDone, &audio_read_done_));
2004 video->Read(base::Bind(&OnEndOfStreamReadDone, &video_read_done_)); 2005 video->Read(base::Bind(&OnEndOfStreamReadDone, &video_read_done_));
2005 base::MessageLoop::current()->RunUntilIdle(); 2006 base::RunLoop().RunUntilIdle();
2006 } 2007 }
2007 2008
2008 // Check to see if |audio_read_done_| and |video_read_done_| variables 2009 // Check to see if |audio_read_done_| and |video_read_done_| variables
2009 // match |expected|. 2010 // match |expected|.
2010 void CheckIfReadDonesWereCalled(bool expected) { 2011 void CheckIfReadDonesWereCalled(bool expected) {
2011 base::MessageLoop::current()->RunUntilIdle(); 2012 base::RunLoop().RunUntilIdle();
2012 EXPECT_EQ(expected, audio_read_done_); 2013 EXPECT_EQ(expected, audio_read_done_);
2013 EXPECT_EQ(expected, video_read_done_); 2014 EXPECT_EQ(expected, video_read_done_);
2014 } 2015 }
2015 2016
2016 private: 2017 private:
2017 static void OnEndOfStreamReadDone( 2018 static void OnEndOfStreamReadDone(
2018 bool* called, 2019 bool* called,
2019 DemuxerStream::Status status, 2020 DemuxerStream::Status status,
2020 const scoped_refptr<DecoderBuffer>& buffer) { 2021 const scoped_refptr<DecoderBuffer>& buffer) {
2021 EXPECT_EQ(status, DemuxerStream::kOk); 2022 EXPECT_EQ(status, DemuxerStream::kOk);
(...skipping 2657 matching lines...) Expand 10 before | Expand all | Expand 10 after
4679 cluster->size() - video_start); 4680 cluster->size() - video_start);
4680 4681
4681 CheckExpectedRanges(DemuxerStream::AUDIO, "{ [30,90) }"); 4682 CheckExpectedRanges(DemuxerStream::AUDIO, "{ [30,90) }");
4682 CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,91) }"); 4683 CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,91) }");
4683 CheckExpectedRanges("{ [30,90) }"); 4684 CheckExpectedRanges("{ [30,90) }");
4684 CheckExpectedBuffers(audio_stream, "30K 40K 50K 60K 70K 80K"); 4685 CheckExpectedBuffers(audio_stream, "30K 40K 50K 60K 70K 80K");
4685 CheckExpectedBuffers(video_stream, "71K 81"); 4686 CheckExpectedBuffers(video_stream, "71K 81");
4686 } 4687 }
4687 4688
4688 } // namespace media 4689 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/sender/h264_vt_encoder_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698