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

Unified Diff: media/cast/framer/framer_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/framer.cc ('k') | media/cast/net/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/framer/framer_unittest.cc
diff --git a/media/cast/framer/framer_unittest.cc b/media/cast/framer/framer_unittest.cc
deleted file mode 100644
index ad53ef06eee5461a7ab1ca8bc6625581dc9f0dd1..0000000000000000000000000000000000000000
--- a/media/cast/framer/framer_unittest.cc
+++ /dev/null
@@ -1,500 +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/test/simple_test_tick_clock.h"
-#include "media/cast/framer/framer.h"
-#include "media/cast/rtp_receiver/mock_rtp_payload_feedback.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace media {
-namespace cast {
-
-class FramerTest : public ::testing::Test {
- protected:
- FramerTest()
- : mock_rtp_payload_feedback_(),
- framer_(&testing_clock_, &mock_rtp_payload_feedback_, 0, true, 0) {
- payload_.assign(kMaxIpPacketSize, 0);
-
- EXPECT_CALL(mock_rtp_payload_feedback_, CastFeedback(testing::_))
- .WillRepeatedly(testing::Return());
- }
-
- virtual ~FramerTest() {}
-
- std::vector<uint8> payload_;
- RtpCastHeader rtp_header_;
- MockRtpPayloadFeedback mock_rtp_payload_feedback_;
- Framer framer_;
- base::SimpleTestTickClock testing_clock_;
-
- DISALLOW_COPY_AND_ASSIGN(FramerTest);
-};
-
-TEST_F(FramerTest, EmptyState) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool multiple = false;
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-}
-
-TEST_F(FramerTest, AlwaysStartWithKey) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool complete = false;
- bool multiple = false;
- bool duplicate = false;
-
- // Insert non key first frame.
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- rtp_header_.frame_id = 1;
- rtp_header_.reference_frame_id = 1;
- rtp_header_.is_key_frame = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_TRUE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(1u, frame.frame_id);
- EXPECT_EQ(1u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-}
-
-TEST_F(FramerTest, CompleteFrame) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool complete = false;
- bool multiple = false;
- bool duplicate = false;
-
- // Start with a complete key frame.
- rtp_header_.is_key_frame = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(0u, frame.frame_id);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-
- // Incomplete delta.
- ++rtp_header_.frame_id;
- rtp_header_.reference_frame_id = rtp_header_.frame_id - 1;
- rtp_header_.is_key_frame = false;
- rtp_header_.max_packet_id = 2;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(complete);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-
- // Complete delta - can't skip, as incomplete sequence.
- ++rtp_header_.frame_id;
- rtp_header_.reference_frame_id = rtp_header_.frame_id - 1;
- rtp_header_.max_packet_id = 0;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-}
-
-TEST_F(FramerTest, DuplicatePackets) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool complete = false;
- bool multiple = false;
- bool duplicate = false;
-
- // Start with an incomplete key frame.
- rtp_header_.is_key_frame = true;
- rtp_header_.max_packet_id = 1;
- duplicate = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(complete);
- EXPECT_FALSE(duplicate);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-
- // Add same packet again in incomplete key frame.
- duplicate = false;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(complete);
- EXPECT_TRUE(duplicate);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-
- // Complete key frame.
- rtp_header_.packet_id = 1;
- duplicate = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_FALSE(duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(0u, frame.referenced_frame_id);
-
- // Add same packet again in complete key frame.
- duplicate = false;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(complete);
- EXPECT_TRUE(duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(0u, frame.frame_id);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-
- // Incomplete delta frame.
- ++rtp_header_.frame_id;
- rtp_header_.reference_frame_id = rtp_header_.frame_id - 1;
- rtp_header_.packet_id = 0;
- rtp_header_.is_key_frame = false;
- duplicate = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(complete);
- EXPECT_FALSE(duplicate);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-
- // Add same packet again in incomplete delta frame.
- duplicate = false;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(complete);
- EXPECT_TRUE(duplicate);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-
- // Complete delta frame.
- rtp_header_.packet_id = 1;
- duplicate = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_FALSE(duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_EQ(transport::EncodedFrame::DEPENDENT, frame.dependency);
- EXPECT_EQ(1u, frame.frame_id);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- EXPECT_FALSE(multiple);
-
- // Add same packet again in complete delta frame.
- duplicate = false;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(complete);
- EXPECT_TRUE(duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_EQ(transport::EncodedFrame::DEPENDENT, frame.dependency);
- EXPECT_EQ(1u, frame.frame_id);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- EXPECT_FALSE(multiple);
-}
-
-TEST_F(FramerTest, ContinuousSequence) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool complete = false;
- bool multiple = false;
- bool duplicate = false;
-
- // Start with a complete key frame.
- rtp_header_.is_key_frame = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(0u, frame.frame_id);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-
- // Complete - not continuous.
- rtp_header_.frame_id = 2;
- rtp_header_.reference_frame_id = rtp_header_.frame_id - 1;
- rtp_header_.is_key_frame = false;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-}
-
-TEST_F(FramerTest, Wrap) {
- // Insert key frame, frame_id = 255 (will jump to that)
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool multiple = true;
- bool duplicate = false;
-
- // Start with a complete key frame.
- rtp_header_.is_key_frame = true;
- rtp_header_.frame_id = 255;
- rtp_header_.reference_frame_id = 255;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(255u, frame.frame_id);
- EXPECT_EQ(255u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-
- // Insert wrapped delta frame - should be continuous.
- rtp_header_.is_key_frame = false;
- rtp_header_.frame_id = 256;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::DEPENDENT, frame.dependency);
- EXPECT_EQ(256u, frame.frame_id);
- EXPECT_EQ(255u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-}
-
-TEST_F(FramerTest, Reset) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool complete = false;
- bool multiple = true;
- bool duplicate = false;
-
- // Start with a complete key frame.
- rtp_header_.is_key_frame = true;
- complete = framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(complete);
- framer_.Reset();
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
-}
-
-TEST_F(FramerTest, RequireKeyAfterReset) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool multiple = false;
- bool duplicate = false;
-
- framer_.Reset();
-
- // Start with a complete key frame.
- rtp_header_.is_key_frame = false;
- rtp_header_.frame_id = 0;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- rtp_header_.frame_id = 1;
- rtp_header_.reference_frame_id = 1;
- rtp_header_.is_key_frame = true;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_TRUE(multiple);
-}
-
-TEST_F(FramerTest, BasicNonLastReferenceId) {
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool multiple = false;
- bool duplicate = false;
-
- rtp_header_.is_key_frame = true;
- rtp_header_.frame_id = 0;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
-
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_FALSE(multiple);
- framer_.ReleaseFrame(frame.frame_id);
-
- rtp_header_.is_key_frame = false;
- rtp_header_.reference_frame_id = 0;
- rtp_header_.frame_id = 5;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
-
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_FALSE(next_frame);
- EXPECT_FALSE(multiple);
-}
-
-TEST_F(FramerTest, InOrderReferenceFrameSelection) {
- // Create pattern: 0, 1, 4, 5.
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool multiple = false;
- bool duplicate = false;
-
- rtp_header_.is_key_frame = true;
- rtp_header_.frame_id = 0;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- rtp_header_.is_key_frame = false;
- rtp_header_.frame_id = 1;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
-
- // Insert frame #2 partially.
- rtp_header_.frame_id = 2;
- rtp_header_.max_packet_id = 1;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- rtp_header_.frame_id = 4;
- rtp_header_.max_packet_id = 0;
- rtp_header_.reference_frame_id = 0;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(0u, frame.frame_id);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- EXPECT_FALSE(multiple);
- framer_.ReleaseFrame(frame.frame_id);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_TRUE(multiple);
- EXPECT_EQ(transport::EncodedFrame::DEPENDENT, frame.dependency);
- EXPECT_EQ(1u, frame.frame_id);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_FALSE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::DEPENDENT, frame.dependency);
- EXPECT_EQ(4u, frame.frame_id);
- EXPECT_EQ(0u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
- // Insert remaining packet of frame #2 - should no be continuous.
- rtp_header_.frame_id = 2;
- rtp_header_.packet_id = 1;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_FALSE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- rtp_header_.frame_id = 5;
- rtp_header_.reference_frame_id = rtp_header_.frame_id - 1;
- rtp_header_.packet_id = 0;
- rtp_header_.max_packet_id = 0;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::DEPENDENT, frame.dependency);
- EXPECT_EQ(5u, frame.frame_id);
- EXPECT_EQ(4u, frame.referenced_frame_id);
-}
-
-TEST_F(FramerTest, AudioWrap) {
- // All audio frames are marked as key frames.
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool multiple = false;
- bool duplicate = false;
-
- rtp_header_.is_key_frame = true;
- rtp_header_.frame_id = 254;
- rtp_header_.reference_frame_id = 254;
-
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(254u, frame.frame_id);
- EXPECT_EQ(254u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-
- rtp_header_.frame_id = 255;
- rtp_header_.reference_frame_id = 255;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
-
- // Insert wrapped frame - should be continuous.
- rtp_header_.frame_id = 256;
- rtp_header_.reference_frame_id = 256;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
-
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_TRUE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(255u, frame.frame_id);
- EXPECT_EQ(255u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(256u, frame.frame_id);
- EXPECT_EQ(256u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-}
-
-TEST_F(FramerTest, AudioWrapWithMissingFrame) {
- // All audio frames are marked as key frames.
- transport::EncodedFrame frame;
- bool next_frame = false;
- bool multiple = true;
- bool duplicate = false;
-
- // Insert and get first packet.
- rtp_header_.is_key_frame = true;
- rtp_header_.frame_id = 253;
- rtp_header_.reference_frame_id = 253;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(253u, frame.frame_id);
- EXPECT_EQ(253u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-
- // Insert third and fourth packets.
- rtp_header_.frame_id = 255;
- rtp_header_.reference_frame_id = 255;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
- rtp_header_.frame_id = 256;
- rtp_header_.reference_frame_id = 256;
- framer_.InsertPacket(
- payload_.data(), payload_.size(), rtp_header_, &duplicate);
-
- // Get third and fourth packets.
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_FALSE(next_frame);
- EXPECT_TRUE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(255u, frame.frame_id);
- EXPECT_EQ(255u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
- EXPECT_TRUE(framer_.GetEncodedFrame(&frame, &next_frame, &multiple));
- EXPECT_TRUE(next_frame);
- EXPECT_FALSE(multiple);
- EXPECT_EQ(transport::EncodedFrame::KEY, frame.dependency);
- EXPECT_EQ(256u, frame.frame_id);
- EXPECT_EQ(256u, frame.referenced_frame_id);
- framer_.ReleaseFrame(frame.frame_id);
-}
-
-} // namespace cast
-} // namespace media
« no previous file with comments | « media/cast/framer/framer.cc ('k') | media/cast/net/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698