summaryrefslogtreecommitdiffstats
path: root/chromium/media/cast/audio_receiver/audio_receiver_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/cast/audio_receiver/audio_receiver_unittest.cc')
-rw-r--r--chromium/media/cast/audio_receiver/audio_receiver_unittest.cc217
1 files changed, 0 insertions, 217 deletions
diff --git a/chromium/media/cast/audio_receiver/audio_receiver_unittest.cc b/chromium/media/cast/audio_receiver/audio_receiver_unittest.cc
deleted file mode 100644
index a10af679925..00000000000
--- a/chromium/media/cast/audio_receiver/audio_receiver_unittest.cc
+++ /dev/null
@@ -1,217 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/bind.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/test/simple_test_tick_clock.h"
-#include "media/cast/audio_receiver/audio_receiver.h"
-#include "media/cast/cast_defines.h"
-#include "media/cast/cast_environment.h"
-#include "media/cast/net/pacing/mock_paced_packet_sender.h"
-#include "media/cast/rtcp/test_rtcp_packet_builder.h"
-#include "media/cast/test/fake_task_runner.h"
-#include "testing/gmock/include/gmock/gmock.h"
-
-namespace media {
-namespace cast {
-
-static const int64 kStartMillisecond = GG_INT64_C(12345678900000);
-
-namespace {
-class TestAudioEncoderCallback :
- public base::RefCountedThreadSafe<TestAudioEncoderCallback> {
- public:
- TestAudioEncoderCallback()
- : num_called_(0) {}
-
- void SetExpectedResult(uint8 expected_frame_id,
- const base::TimeTicks& expected_playout_time) {
- expected_frame_id_ = expected_frame_id;
- expected_playout_time_ = expected_playout_time;
- }
-
- void DeliverEncodedAudioFrame(scoped_ptr<EncodedAudioFrame> audio_frame,
- const base::TimeTicks& playout_time) {
- EXPECT_EQ(expected_frame_id_, audio_frame->frame_id);
- EXPECT_EQ(kPcm16, audio_frame->codec);
- EXPECT_EQ(expected_playout_time_, playout_time);
- num_called_++;
- }
-
- int number_times_called() const { return num_called_;}
-
- protected:
- virtual ~TestAudioEncoderCallback() {}
-
- private:
- friend class base::RefCountedThreadSafe<TestAudioEncoderCallback>;
-
- int num_called_;
- uint8 expected_frame_id_;
- base::TimeTicks expected_playout_time_;
-};
-} // namespace
-
-class PeerAudioReceiver : public AudioReceiver {
- public:
- PeerAudioReceiver(scoped_refptr<CastEnvironment> cast_environment,
- const AudioReceiverConfig& audio_config,
- PacedPacketSender* const packet_sender)
- : AudioReceiver(cast_environment, audio_config, packet_sender) {}
-
- using AudioReceiver::IncomingParsedRtpPacket;
-};
-
-class AudioReceiverTest : public ::testing::Test {
- protected:
- AudioReceiverTest() {
- // Configure the audio receiver to use PCM16.
- audio_config_.rtp_payload_type = 127;
- audio_config_.frequency = 16000;
- audio_config_.channels = 1;
- audio_config_.codec = kPcm16;
- audio_config_.use_external_decoder = false;
- audio_config_.feedback_ssrc = 1234;
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kStartMillisecond));
- task_runner_ = new test::FakeTaskRunner(&testing_clock_);
- cast_environment_ = new CastEnvironment(&testing_clock_, task_runner_,
- task_runner_, task_runner_, task_runner_, task_runner_,
- GetDefaultCastLoggingConfig());
- test_audio_encoder_callback_ = new TestAudioEncoderCallback();
- }
-
- void Configure(bool use_external_decoder) {
- audio_config_.use_external_decoder = use_external_decoder;
- receiver_.reset(new PeerAudioReceiver(cast_environment_, audio_config_,
- &mock_transport_));
- }
-
- virtual ~AudioReceiverTest() {}
-
- static void DummyDeletePacket(const uint8* packet) {};
-
- virtual void SetUp() {
- payload_.assign(kIpPacketSize, 0);
- rtp_header_.is_key_frame = true;
- rtp_header_.frame_id = 0;
- rtp_header_.packet_id = 0;
- rtp_header_.max_packet_id = 0;
- rtp_header_.is_reference = false;
- rtp_header_.reference_frame_id = 0;
- rtp_header_.webrtc.header.timestamp = 0;
- }
-
- AudioReceiverConfig audio_config_;
- std::vector<uint8> payload_;
- RtpCastHeader rtp_header_;
- base::SimpleTestTickClock testing_clock_;
- MockPacedPacketSender mock_transport_;
- scoped_refptr<test::FakeTaskRunner> task_runner_;
- scoped_ptr<PeerAudioReceiver> receiver_;
- scoped_refptr<CastEnvironment> cast_environment_;
- scoped_refptr<TestAudioEncoderCallback> test_audio_encoder_callback_;
-};
-
-TEST_F(AudioReceiverTest, GetOnePacketEncodedframe) {
- Configure(true);
- EXPECT_CALL(mock_transport_, SendRtcpPacket(testing::_)).Times(1);
-
- receiver_->IncomingParsedRtpPacket(payload_.data(),
- payload_.size(), rtp_header_);
- EncodedAudioFrame audio_frame;
- base::TimeTicks playout_time;
- test_audio_encoder_callback_->SetExpectedResult(0, testing_clock_.NowTicks());
-
- AudioFrameEncodedCallback frame_encoded_callback =
- base::Bind(&TestAudioEncoderCallback::DeliverEncodedAudioFrame,
- test_audio_encoder_callback_.get());
-
- receiver_->GetEncodedAudioFrame(frame_encoded_callback);
- task_runner_->RunTasks();
- EXPECT_EQ(1, test_audio_encoder_callback_->number_times_called());
-}
-
-TEST_F(AudioReceiverTest, MultiplePendingGetCalls) {
- Configure(true);
- EXPECT_CALL(mock_transport_, SendRtcpPacket(testing::_)).WillRepeatedly(
- testing::Return(true));
-
- AudioFrameEncodedCallback frame_encoded_callback =
- base::Bind(&TestAudioEncoderCallback::DeliverEncodedAudioFrame,
- test_audio_encoder_callback_.get());
-
- receiver_->GetEncodedAudioFrame(frame_encoded_callback);
-
- receiver_->IncomingParsedRtpPacket(payload_.data(), payload_.size(),
- rtp_header_);
-
- EncodedAudioFrame audio_frame;
- base::TimeTicks playout_time;
- test_audio_encoder_callback_->SetExpectedResult(0, testing_clock_.NowTicks());
-
- task_runner_->RunTasks();
- EXPECT_EQ(1, test_audio_encoder_callback_->number_times_called());
-
- TestRtcpPacketBuilder rtcp_packet;
-
- uint32 ntp_high;
- uint32 ntp_low;
- ConvertTimeTicksToNtp(testing_clock_.NowTicks(), &ntp_high, &ntp_low);
- rtcp_packet.AddSrWithNtp(audio_config_.feedback_ssrc, ntp_high, ntp_low,
- rtp_header_.webrtc.header.timestamp);
-
- testing_clock_.Advance(base::TimeDelta::FromMilliseconds(20));
-
- receiver_->IncomingPacket(rtcp_packet.Packet(), rtcp_packet.Length(),
- base::Bind(AudioReceiverTest::DummyDeletePacket, rtcp_packet.Packet()));
-
- // Make sure that we are not continuous and that the RTP timestamp represent a
- // time in the future.
- rtp_header_.is_key_frame = false;
- rtp_header_.frame_id = 2;
- rtp_header_.is_reference = true;
- rtp_header_.reference_frame_id = 0;
- rtp_header_.webrtc.header.timestamp = 960;
- test_audio_encoder_callback_->SetExpectedResult(2,
- testing_clock_.NowTicks() + base::TimeDelta::FromMilliseconds(100));
-
- receiver_->IncomingParsedRtpPacket(payload_.data(), payload_.size(),
- rtp_header_);
- receiver_->GetEncodedAudioFrame(frame_encoded_callback);
- task_runner_->RunTasks();
-
- // Frame 2 should not come out at this point in time.
- EXPECT_EQ(1, test_audio_encoder_callback_->number_times_called());
-
- // Through on one more pending callback.
- receiver_->GetEncodedAudioFrame(frame_encoded_callback);
-
- testing_clock_.Advance(base::TimeDelta::FromMilliseconds(100));
-
- task_runner_->RunTasks();
- EXPECT_EQ(2, test_audio_encoder_callback_->number_times_called());
-
- test_audio_encoder_callback_->SetExpectedResult(3, testing_clock_.NowTicks());
-
- // Through on one more pending audio frame.
- rtp_header_.frame_id = 3;
- rtp_header_.is_reference = false;
- rtp_header_.reference_frame_id = 0;
- rtp_header_.webrtc.header.timestamp = 1280;
- receiver_->IncomingParsedRtpPacket(payload_.data(), payload_.size(),
- rtp_header_);
-
- receiver_->GetEncodedAudioFrame(frame_encoded_callback);
- task_runner_->RunTasks();
- EXPECT_EQ(3, test_audio_encoder_callback_->number_times_called());
-}
-
-// TODO(mikhal): Add encoded frames.
-TEST_F(AudioReceiverTest, GetRawFrame) {
-}
-
-} // namespace cast
-} // namespace media