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

Unified Diff: media/cast/framer/cast_message_builder_unittest.cc

Issue 388663003: Cast: Reshuffle files under media/cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missing includes Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/cast/framer/cast_message_builder.cc ('k') | media/cast/framer/frame_buffer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/framer/cast_message_builder_unittest.cc
diff --git a/media/cast/framer/cast_message_builder_unittest.cc b/media/cast/framer/cast_message_builder_unittest.cc
deleted file mode 100644
index ef75162a086e1d3ade41513cdde6f53e9c04d3b5..0000000000000000000000000000000000000000
--- a/media/cast/framer/cast_message_builder_unittest.cc
+++ /dev/null
@@ -1,429 +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 <stdint.h>
-
-#include "base/memory/scoped_ptr.h"
-#include "base/test/simple_test_tick_clock.h"
-#include "media/cast/framer/cast_message_builder.h"
-#include "media/cast/rtcp/rtcp.h"
-#include "media/cast/rtp_receiver/rtp_receiver_defines.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace media {
-namespace cast {
-
-namespace {
-static const uint32 kSsrc = 0x1234;
-static const uint32 kShortTimeIncrementMs = 10;
-static const uint32 kLongTimeIncrementMs = 40;
-static const int64 kStartMillisecond = INT64_C(12345678900000);
-
-typedef std::map<uint32, size_t> MissingPacketsMap;
-
-class NackFeedbackVerification : public RtpPayloadFeedback {
- public:
- NackFeedbackVerification()
- : triggered_(false), missing_packets_(), last_frame_acked_(0) {}
-
- virtual void CastFeedback(const RtcpCastMessage& cast_feedback) OVERRIDE {
- EXPECT_EQ(kSsrc, cast_feedback.media_ssrc_);
-
- last_frame_acked_ = cast_feedback.ack_frame_id_;
-
- MissingFramesAndPacketsMap::const_iterator frame_it =
- cast_feedback.missing_frames_and_packets_.begin();
-
- // Keep track of the number of missing packets per frame.
- missing_packets_.clear();
- while (frame_it != cast_feedback.missing_frames_and_packets_.end()) {
- // Check for complete frame lost.
- if ((frame_it->second.size() == 1) &&
- (*frame_it->second.begin() == kRtcpCastAllPacketsLost)) {
- missing_packets_.insert(
- std::make_pair(frame_it->first, kRtcpCastAllPacketsLost));
- } else {
- missing_packets_.insert(
- std::make_pair(frame_it->first, frame_it->second.size()));
- }
- ++frame_it;
- }
- triggered_ = true;
- }
-
- size_t num_missing_packets(uint32 frame_id) {
- MissingPacketsMap::iterator it;
- it = missing_packets_.find(frame_id);
- if (it == missing_packets_.end())
- return 0;
-
- return it->second;
- }
-
- // Holds value for one call.
- bool triggered() {
- bool ret_val = triggered_;
- triggered_ = false;
- return ret_val;
- }
-
- uint32 last_frame_acked() { return last_frame_acked_; }
-
- private:
- bool triggered_;
- MissingPacketsMap missing_packets_; // Missing packets per frame.
- uint32 last_frame_acked_;
-
- DISALLOW_COPY_AND_ASSIGN(NackFeedbackVerification);
-};
-} // namespace
-
-class CastMessageBuilderTest : public ::testing::Test {
- protected:
- CastMessageBuilderTest()
- : cast_msg_builder_(new CastMessageBuilder(&testing_clock_,
- &feedback_,
- &frame_id_map_,
- kSsrc,
- true,
- 0)) {
- rtp_header_.sender_ssrc = kSsrc;
- rtp_header_.is_key_frame = false;
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kStartMillisecond));
- }
-
- virtual ~CastMessageBuilderTest() {}
-
- void SetFrameIds(uint32 frame_id, uint32 reference_frame_id) {
- rtp_header_.frame_id = frame_id;
- rtp_header_.reference_frame_id = reference_frame_id;
- }
-
- void SetPacketId(uint16 packet_id) { rtp_header_.packet_id = packet_id; }
-
- void SetMaxPacketId(uint16 max_packet_id) {
- rtp_header_.max_packet_id = max_packet_id;
- }
-
- void SetKeyFrame(bool is_key) { rtp_header_.is_key_frame = is_key; }
-
- void InsertPacket() {
- PacketType packet_type = frame_id_map_.InsertPacket(rtp_header_);
- if (packet_type == kNewPacketCompletingFrame) {
- cast_msg_builder_->CompleteFrameReceived(rtp_header_.frame_id);
- }
- cast_msg_builder_->UpdateCastMessage();
- }
-
- void SetDecoderSlowerThanMaxFrameRate(int max_unacked_frames) {
- cast_msg_builder_.reset(new CastMessageBuilder(&testing_clock_,
- &feedback_,
- &frame_id_map_,
- kSsrc,
- false,
- max_unacked_frames));
- }
-
- NackFeedbackVerification feedback_;
- scoped_ptr<CastMessageBuilder> cast_msg_builder_;
- RtpCastHeader rtp_header_;
- FrameIdMap frame_id_map_;
- base::SimpleTestTickClock testing_clock_;
-
- DISALLOW_COPY_AND_ASSIGN(CastMessageBuilderTest);
-};
-
-TEST_F(CastMessageBuilderTest, OneFrameNackList) {
- SetFrameIds(0, 0);
- SetPacketId(4);
- SetMaxPacketId(10);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- EXPECT_FALSE(feedback_.triggered());
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetPacketId(5);
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(4u, feedback_.num_missing_packets(0));
-}
-
-TEST_F(CastMessageBuilderTest, CompleteFrameMissing) {
- SetFrameIds(0, 0);
- SetPacketId(2);
- SetMaxPacketId(5);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetFrameIds(2, 1);
- SetPacketId(2);
- SetMaxPacketId(5);
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(kRtcpCastAllPacketsLost, feedback_.num_missing_packets(1));
-}
-
-TEST_F(CastMessageBuilderTest, RemoveOldFrames) {
- SetFrameIds(1, 0);
- SetPacketId(0);
- SetMaxPacketId(1);
- InsertPacket();
- EXPECT_FALSE(feedback_.triggered());
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetFrameIds(2, 1);
- SetPacketId(0);
- SetMaxPacketId(0);
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetFrameIds(3, 2);
- SetPacketId(0);
- SetMaxPacketId(5);
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(2u, feedback_.last_frame_acked());
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetFrameIds(5, 5);
- SetPacketId(0);
- SetMaxPacketId(0);
- SetKeyFrame(true);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- frame_id_map_.RemoveOldFrames(5); // Simulate 5 being pulled for rendering.
- cast_msg_builder_->UpdateCastMessage();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(5u, feedback_.last_frame_acked());
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- SetFrameIds(1, 0);
- SetPacketId(1);
- SetMaxPacketId(1);
- InsertPacket();
- EXPECT_FALSE(feedback_.triggered());
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(5u, feedback_.last_frame_acked());
-}
-
-TEST_F(CastMessageBuilderTest, NackUntilMaxReceivedPacket) {
- SetFrameIds(0, 0);
- SetPacketId(0);
- SetMaxPacketId(20);
- SetKeyFrame(true);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetPacketId(5);
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(4u, feedback_.num_missing_packets(0));
-}
-
-TEST_F(CastMessageBuilderTest, NackUntilMaxReceivedPacketNextFrame) {
- SetFrameIds(0, 0);
- SetPacketId(0);
- SetMaxPacketId(20);
- SetKeyFrame(true);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetPacketId(5);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(4u, feedback_.num_missing_packets(0));
- SetFrameIds(1, 0);
- SetMaxPacketId(2);
- SetPacketId(0);
- SetKeyFrame(false);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(19u, feedback_.num_missing_packets(0));
-}
-
-TEST_F(CastMessageBuilderTest, NackUntilMaxReceivedPacketNextKey) {
- SetFrameIds(0, 0);
- SetPacketId(0);
- SetMaxPacketId(20);
- SetKeyFrame(true);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- SetPacketId(5);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(4u, feedback_.num_missing_packets(0));
- SetFrameIds(1, 1);
- SetMaxPacketId(0);
- SetPacketId(0);
- SetKeyFrame(true);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(0u, feedback_.num_missing_packets(0));
-}
-
-TEST_F(CastMessageBuilderTest, Reset) {
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- cast_msg_builder_->Reset();
- frame_id_map_.Clear();
- // Should reset nack list state and request a key frame.
- cast_msg_builder_->UpdateCastMessage();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(0u, feedback_.num_missing_packets(0));
-}
-
-TEST_F(CastMessageBuilderTest, DeltaAfterReset) {
- SetFrameIds(0, 0);
- SetPacketId(0);
- SetMaxPacketId(0);
- SetKeyFrame(true);
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(0u, feedback_.num_missing_packets(0));
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- cast_msg_builder_->Reset();
- SetFrameIds(1, 0);
- SetPacketId(0);
- SetMaxPacketId(0);
- SetKeyFrame(true);
- EXPECT_FALSE(feedback_.triggered());
-}
-
-TEST_F(CastMessageBuilderTest, BasicRps) {
- SetFrameIds(0, 0);
- SetPacketId(0);
- SetMaxPacketId(0);
- SetKeyFrame(true);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(0u, feedback_.last_frame_acked());
- SetFrameIds(3, 0);
- SetKeyFrame(false);
- InsertPacket();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(3u, feedback_.last_frame_acked());
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kLongTimeIncrementMs));
- frame_id_map_.RemoveOldFrames(3); // Simulate 3 being pulled for rendering.
- cast_msg_builder_->UpdateCastMessage();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(3u, feedback_.last_frame_acked());
-}
-
-TEST_F(CastMessageBuilderTest, InOrderRps) {
- // Create a pattern - skip to rps, and don't look back.
- SetFrameIds(0, 0);
- SetPacketId(0);
- SetMaxPacketId(0);
- SetKeyFrame(true);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(0u, feedback_.last_frame_acked());
- SetFrameIds(1, 0);
- SetPacketId(0);
- SetMaxPacketId(1);
- SetKeyFrame(false);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- EXPECT_FALSE(feedback_.triggered());
- SetFrameIds(3, 0);
- SetPacketId(0);
- SetMaxPacketId(0);
- SetKeyFrame(false);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- frame_id_map_.RemoveOldFrames(3); // Simulate 3 being pulled for rendering.
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- cast_msg_builder_->UpdateCastMessage();
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(3u, feedback_.last_frame_acked());
- // Make an old frame complete - should not trigger an ack.
- SetFrameIds(1, 0);
- SetPacketId(1);
- SetMaxPacketId(1);
- SetKeyFrame(false);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- EXPECT_FALSE(feedback_.triggered());
- EXPECT_EQ(3u, feedback_.last_frame_acked());
-}
-
-TEST_F(CastMessageBuilderTest, SlowDownAck) {
- SetDecoderSlowerThanMaxFrameRate(3);
- SetFrameIds(0, 0);
- SetPacketId(0);
- SetMaxPacketId(0);
- SetKeyFrame(true);
- InsertPacket();
-
- uint32 frame_id;
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- SetKeyFrame(false);
- for (frame_id = 1; frame_id < 3; ++frame_id) {
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(frame_id - 1, feedback_.last_frame_acked());
- SetFrameIds(frame_id, frame_id - 1);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- }
- // We should now have entered the slowdown ACK state.
- uint32 expected_frame_id = 1;
- for (; frame_id < 10; ++frame_id) {
- if (frame_id % 2) {
- ++expected_frame_id;
- EXPECT_TRUE(feedback_.triggered());
- } else {
- EXPECT_FALSE(feedback_.triggered());
- }
- EXPECT_EQ(expected_frame_id, feedback_.last_frame_acked());
- SetFrameIds(frame_id, frame_id - 1);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- }
- EXPECT_FALSE(feedback_.triggered());
- EXPECT_EQ(expected_frame_id, feedback_.last_frame_acked());
-
- // Simulate frame_id being pulled for rendering.
- frame_id_map_.RemoveOldFrames(frame_id);
- // We should now leave the slowdown ACK state.
- ++frame_id;
- SetFrameIds(frame_id, frame_id - 1);
- InsertPacket();
- testing_clock_.Advance(
- base::TimeDelta::FromMilliseconds(kShortTimeIncrementMs));
- EXPECT_TRUE(feedback_.triggered());
- EXPECT_EQ(frame_id, feedback_.last_frame_acked());
-}
-
-} // namespace cast
-} // namespace media
« no previous file with comments | « media/cast/framer/cast_message_builder.cc ('k') | media/cast/framer/frame_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698