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

Side by Side Diff: media/cast/audio_sender/audio_sender_unittest.cc

Issue 145443005: Fixes for memory and threading issues in cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix compile Created 6 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « media/cast/audio_sender/audio_encoder_unittest.cc ('k') | media/cast/cast_environment.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "media/base/media.h" 9 #include "media/base/media.h"
10 #include "media/cast/audio_sender/audio_sender.h" 10 #include "media/cast/audio_sender/audio_sender.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 DISALLOW_COPY_AND_ASSIGN(TestPacketSender); 58 DISALLOW_COPY_AND_ASSIGN(TestPacketSender);
59 }; 59 };
60 60
61 class AudioSenderTest : public ::testing::Test { 61 class AudioSenderTest : public ::testing::Test {
62 public: 62 public:
63 MOCK_METHOD0(InsertAudioCallback, void()); 63 MOCK_METHOD0(InsertAudioCallback, void());
64 64
65 protected: 65 protected:
66 AudioSenderTest() { 66 AudioSenderTest() {
67 InitializeMediaLibraryForTesting(); 67 InitializeMediaLibraryForTesting();
68 testing_clock_.Advance( 68 testing_clock_ = new base::SimpleTestTickClock();
69 testing_clock_->Advance(
69 base::TimeDelta::FromMilliseconds(kStartMillisecond)); 70 base::TimeDelta::FromMilliseconds(kStartMillisecond));
70 task_runner_ = new test::FakeTaskRunner(&testing_clock_); 71 task_runner_ = new test::FakeTaskRunner(testing_clock_);
71 cast_environment_ = new CastEnvironment( 72 cast_environment_ = new CastEnvironment(
72 &testing_clock_, task_runner_, task_runner_, task_runner_, task_runner_, 73 scoped_ptr<base::TickClock>(testing_clock_).Pass(),
74 task_runner_, task_runner_, task_runner_, task_runner_,
73 task_runner_, task_runner_, GetDefaultCastSenderLoggingConfig()); 75 task_runner_, task_runner_, GetDefaultCastSenderLoggingConfig());
74 audio_config_.codec = transport::kOpus; 76 audio_config_.codec = transport::kOpus;
75 audio_config_.use_external_encoder = false; 77 audio_config_.use_external_encoder = false;
76 audio_config_.frequency = kDefaultAudioSamplingRate; 78 audio_config_.frequency = kDefaultAudioSamplingRate;
77 audio_config_.channels = 2; 79 audio_config_.channels = 2;
78 audio_config_.bitrate = kDefaultAudioEncoderBitrate; 80 audio_config_.bitrate = kDefaultAudioEncoderBitrate;
79 audio_config_.rtp_payload_type = 127; 81 audio_config_.rtp_payload_type = 127;
80 82
81 transport::CastTransportConfig transport_config; 83 transport::CastTransportConfig transport_config;
82 transport_config.audio_rtp_payload_type = 127; 84 transport_config.audio_rtp_payload_type = 127;
83 transport_config.audio_channels = 2; 85 transport_config.audio_channels = 2;
84 transport_sender_.reset(new transport::CastTransportSenderImpl( 86 transport_sender_.reset(new transport::CastTransportSenderImpl(
85 &testing_clock_, 87 testing_clock_,
86 transport_config, 88 transport_config,
87 base::Bind(&UpdateCastTransportStatus), task_runner_)); 89 base::Bind(&UpdateCastTransportStatus), task_runner_));
88 transport_sender_->InsertFakeTransportForTesting(&transport_); 90 transport_sender_->InsertFakeTransportForTesting(&transport_);
89 audio_sender_.reset(new AudioSender( 91 audio_sender_.reset(new AudioSender(
90 cast_environment_, audio_config_, transport_sender_.get())); 92 cast_environment_, audio_config_, transport_sender_.get()));
91 task_runner_->RunTasks(); 93 task_runner_->RunTasks();
92 } 94 }
93 95
94 virtual ~AudioSenderTest() {} 96 virtual ~AudioSenderTest() {}
95 97
96 static void UpdateCastTransportStatus(transport::CastTransportStatus status) { 98 static void UpdateCastTransportStatus(transport::CastTransportStatus status) {
97 } 99 }
98 100
99 base::SimpleTestTickClock testing_clock_; 101 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
100 TestPacketSender transport_; 102 TestPacketSender transport_;
101 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; 103 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_;
102 scoped_refptr<test::FakeTaskRunner> task_runner_; 104 scoped_refptr<test::FakeTaskRunner> task_runner_;
103 scoped_ptr<AudioSender> audio_sender_; 105 scoped_ptr<AudioSender> audio_sender_;
104 scoped_refptr<CastEnvironment> cast_environment_; 106 scoped_refptr<CastEnvironment> cast_environment_;
105 AudioSenderConfig audio_config_; 107 AudioSenderConfig audio_config_;
106 }; 108 };
107 109
108 TEST_F(AudioSenderTest, Encode20ms) { 110 TEST_F(AudioSenderTest, Encode20ms) {
109 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1)); 111 EXPECT_CALL(*this, InsertAudioCallback()).Times(Exactly(1));
(...skipping 27 matching lines...) Expand all
137 audio_sender_->InsertAudio( 139 audio_sender_->InsertAudio(
138 bus.get(), recorded_time, 140 bus.get(), recorded_time,
139 base::Bind( 141 base::Bind(
140 &AudioSenderTest::InsertAudioCallback, 142 &AudioSenderTest::InsertAudioCallback,
141 base::Unretained(this))); 143 base::Unretained(this)));
142 task_runner_->RunTasks(); 144 task_runner_->RunTasks();
143 145
144 // Make sure that we send at least one RTCP packet. 146 // Make sure that we send at least one RTCP packet.
145 base::TimeDelta max_rtcp_timeout = 147 base::TimeDelta max_rtcp_timeout =
146 base::TimeDelta::FromMilliseconds(1 + kDefaultRtcpIntervalMs * 3 / 2); 148 base::TimeDelta::FromMilliseconds(1 + kDefaultRtcpIntervalMs * 3 / 2);
147 testing_clock_.Advance(max_rtcp_timeout); 149 testing_clock_->Advance(max_rtcp_timeout);
148 task_runner_->RunTasks(); 150 task_runner_->RunTasks();
149 EXPECT_GE(transport_.number_of_rtp_packets(), 1); 151 EXPECT_GE(transport_.number_of_rtp_packets(), 1);
150 EXPECT_EQ(transport_.number_of_rtcp_packets(), 1); 152 EXPECT_EQ(transport_.number_of_rtcp_packets(), 1);
151 } 153 }
152 154
153 } // namespace cast 155 } // namespace cast
154 } // namespace media 156 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/audio_sender/audio_encoder_unittest.cc ('k') | media/cast/cast_environment.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698