| Index: webrtc/video/payload_router_unittest.cc
|
| diff --git a/webrtc/video/payload_router_unittest.cc b/webrtc/video/payload_router_unittest.cc
|
| index c5d3f3865fdd1303fb7a54cf25cf50c8e0b748d0..41e173bf5fb930669be163d0749ea2d39717aeb6 100644
|
| --- a/webrtc/video/payload_router_unittest.cc
|
| +++ b/webrtc/video/payload_router_unittest.cc
|
| @@ -14,6 +14,7 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
|
| #include "webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h"
|
| +#include "webrtc/modules/video_coding/include/video_codec_interface.h"
|
| #include "webrtc/video/payload_router.h"
|
|
|
| using ::testing::_;
|
| @@ -27,46 +28,56 @@
|
| MockRtpRtcp rtp;
|
| std::vector<RtpRtcp*> modules(1, &rtp);
|
|
|
| - PayloadRouter payload_router(modules);
|
| - payload_router.SetSendingRtpModules(modules.size());
|
| -
|
| uint8_t payload = 'a';
|
| - FrameType frame_type = kVideoFrameKey;
|
| int8_t payload_type = 96;
|
| -
|
| - EXPECT_CALL(rtp, SendOutgoingData(frame_type, payload_type, 0, 0, _, 1,
|
| - nullptr, nullptr))
|
| - .Times(0);
|
| - EXPECT_FALSE(payload_router.RoutePayload(frame_type, payload_type, 0, 0,
|
| - &payload, 1, nullptr, nullptr));
|
| -
|
| - payload_router.set_active(true);
|
| - EXPECT_CALL(rtp, SendOutgoingData(frame_type, payload_type, 0, 0, _, 1,
|
| - nullptr, nullptr))
|
| - .Times(1);
|
| - EXPECT_TRUE(payload_router.RoutePayload(frame_type, payload_type, 0, 0,
|
| - &payload, 1, nullptr, nullptr));
|
| + EncodedImage encoded_image;
|
| + encoded_image._timeStamp = 1;
|
| + encoded_image.capture_time_ms_ = 2;
|
| + encoded_image._frameType = kVideoFrameKey;
|
| + encoded_image._buffer = &payload;
|
| + encoded_image._length = 1;
|
| +
|
| + PayloadRouter payload_router(modules, payload_type);
|
| + payload_router.SetSendingRtpModules(modules.size());
|
| +
|
| + EXPECT_CALL(rtp, SendOutgoingData(encoded_image._frameType, payload_type,
|
| + encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, &payload,
|
| + encoded_image._length, nullptr, _))
|
| + .Times(0);
|
| + EXPECT_EQ(-1, payload_router.Encoded(encoded_image, nullptr, nullptr));
|
| +
|
| + payload_router.set_active(true);
|
| + EXPECT_CALL(rtp, SendOutgoingData(encoded_image._frameType, payload_type,
|
| + encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, &payload,
|
| + encoded_image._length, nullptr, _))
|
| + .Times(1);
|
| + EXPECT_EQ(0, payload_router.Encoded(encoded_image, nullptr, nullptr));
|
|
|
| payload_router.set_active(false);
|
| - EXPECT_CALL(rtp, SendOutgoingData(frame_type, payload_type, 0, 0, _, 1,
|
| - nullptr, nullptr))
|
| - .Times(0);
|
| - EXPECT_FALSE(payload_router.RoutePayload(frame_type, payload_type, 0, 0,
|
| - &payload, 1, nullptr, nullptr));
|
| -
|
| - payload_router.set_active(true);
|
| - EXPECT_CALL(rtp, SendOutgoingData(frame_type, payload_type, 0, 0, _, 1,
|
| - nullptr, nullptr))
|
| - .Times(1);
|
| - EXPECT_TRUE(payload_router.RoutePayload(frame_type, payload_type, 0, 0,
|
| - &payload, 1, nullptr, nullptr));
|
| + EXPECT_CALL(rtp, SendOutgoingData(encoded_image._frameType, payload_type,
|
| + encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, &payload,
|
| + encoded_image._length, nullptr, _))
|
| + .Times(0);
|
| + EXPECT_EQ(-1, payload_router.Encoded(encoded_image, nullptr, nullptr));
|
| +
|
| + payload_router.set_active(true);
|
| + EXPECT_CALL(rtp, SendOutgoingData(encoded_image._frameType, payload_type,
|
| + encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, &payload,
|
| + encoded_image._length, nullptr, _))
|
| + .Times(1);
|
| + EXPECT_EQ(0, payload_router.Encoded(encoded_image, nullptr, nullptr));
|
|
|
| payload_router.SetSendingRtpModules(0);
|
| - EXPECT_CALL(rtp, SendOutgoingData(frame_type, payload_type, 0, 0, _, 1,
|
| - nullptr, nullptr))
|
| - .Times(0);
|
| - EXPECT_FALSE(payload_router.RoutePayload(frame_type, payload_type, 0, 0,
|
| - &payload, 1, nullptr, nullptr));
|
| + EXPECT_CALL(rtp, SendOutgoingData(encoded_image._frameType, payload_type,
|
| + encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, &payload,
|
| + encoded_image._length, nullptr, _))
|
| + .Times(0);
|
| + EXPECT_EQ(-1, payload_router.Encoded(encoded_image, nullptr, nullptr));
|
| }
|
|
|
| TEST(PayloadRouterTest, SendSimulcast) {
|
| @@ -76,36 +87,46 @@
|
| modules.push_back(&rtp_1);
|
| modules.push_back(&rtp_2);
|
|
|
| - PayloadRouter payload_router(modules);
|
| - payload_router.SetSendingRtpModules(modules.size());
|
| -
|
| - uint8_t payload_1 = 'a';
|
| - FrameType frame_type_1 = kVideoFrameKey;
|
| - int8_t payload_type_1 = 96;
|
| - RTPVideoHeader rtp_hdr_1;
|
| - rtp_hdr_1.simulcastIdx = 0;
|
| -
|
| - payload_router.set_active(true);
|
| - EXPECT_CALL(rtp_1, SendOutgoingData(frame_type_1, payload_type_1, 0, 0, _, 1,
|
| - nullptr, &rtp_hdr_1))
|
| + int8_t payload_type = 96;
|
| + uint8_t payload = 'a';
|
| + EncodedImage encoded_image;
|
| + encoded_image._timeStamp = 1;
|
| + encoded_image.capture_time_ms_ = 2;
|
| + encoded_image._frameType = kVideoFrameKey;
|
| + encoded_image._buffer = &payload;
|
| + encoded_image._length = 1;
|
| +
|
| + PayloadRouter payload_router(modules, payload_type);
|
| + payload_router.SetSendingRtpModules(modules.size());
|
| +
|
| + CodecSpecificInfo codec_info_1;
|
| + memset(&codec_info_1, 0, sizeof(CodecSpecificInfo));
|
| + codec_info_1.codecType = kVideoCodecVP8;
|
| + codec_info_1.codecSpecific.VP8.simulcastIdx = 0;
|
| +
|
| + payload_router.set_active(true);
|
| + EXPECT_CALL(rtp_1, SendOutgoingData(encoded_image._frameType, payload_type,
|
| + encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, &payload,
|
| + encoded_image._length, nullptr, _))
|
| .Times(1);
|
| EXPECT_CALL(rtp_2, SendOutgoingData(_, _, _, _, _, _, _, _))
|
| .Times(0);
|
| - EXPECT_TRUE(payload_router.RoutePayload(frame_type_1, payload_type_1, 0, 0,
|
| - &payload_1, 1, nullptr, &rtp_hdr_1));
|
| -
|
| - uint8_t payload_2 = 'b';
|
| - FrameType frame_type_2 = kVideoFrameDelta;
|
| - int8_t payload_type_2 = 97;
|
| - RTPVideoHeader rtp_hdr_2;
|
| - rtp_hdr_2.simulcastIdx = 1;
|
| - EXPECT_CALL(rtp_2, SendOutgoingData(frame_type_2, payload_type_2, 0, 0, _, 1,
|
| - nullptr, &rtp_hdr_2))
|
| + EXPECT_EQ(0, payload_router.Encoded(encoded_image, &codec_info_1, nullptr));
|
| +
|
| + CodecSpecificInfo codec_info_2;
|
| + memset(&codec_info_2, 0, sizeof(CodecSpecificInfo));
|
| + codec_info_2.codecType = kVideoCodecVP8;
|
| + codec_info_2.codecSpecific.VP8.simulcastIdx = 1;
|
| +
|
| + EXPECT_CALL(rtp_2, SendOutgoingData(encoded_image._frameType, payload_type,
|
| + encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, &payload,
|
| + encoded_image._length, nullptr, _))
|
| .Times(1);
|
| EXPECT_CALL(rtp_1, SendOutgoingData(_, _, _, _, _, _, _, _))
|
| .Times(0);
|
| - EXPECT_TRUE(payload_router.RoutePayload(frame_type_2, payload_type_2, 0, 0,
|
| - &payload_2, 1, nullptr, &rtp_hdr_2));
|
| + EXPECT_EQ(0, payload_router.Encoded(encoded_image, &codec_info_2, nullptr));
|
|
|
| // Inactive.
|
| payload_router.set_active(false);
|
| @@ -113,10 +134,8 @@
|
| .Times(0);
|
| EXPECT_CALL(rtp_2, SendOutgoingData(_, _, _, _, _, _, _, _))
|
| .Times(0);
|
| - EXPECT_FALSE(payload_router.RoutePayload(frame_type_1, payload_type_1, 0, 0,
|
| - &payload_1, 1, nullptr, &rtp_hdr_1));
|
| - EXPECT_FALSE(payload_router.RoutePayload(frame_type_2, payload_type_2, 0, 0,
|
| - &payload_2, 1, nullptr, &rtp_hdr_2));
|
| + EXPECT_EQ(-1, payload_router.Encoded(encoded_image, &codec_info_1, nullptr));
|
| + EXPECT_EQ(-1, payload_router.Encoded(encoded_image, &codec_info_2, nullptr));
|
|
|
| // Invalid simulcast index.
|
| payload_router.SetSendingRtpModules(1);
|
| @@ -125,9 +144,8 @@
|
| .Times(0);
|
| EXPECT_CALL(rtp_2, SendOutgoingData(_, _, _, _, _, _, _, _))
|
| .Times(0);
|
| - rtp_hdr_1.simulcastIdx = 1;
|
| - EXPECT_FALSE(payload_router.RoutePayload(frame_type_1, payload_type_1, 0, 0,
|
| - &payload_1, 1, nullptr, &rtp_hdr_1));
|
| + codec_info_2.codecSpecific.VP8.simulcastIdx = 1;
|
| + EXPECT_EQ(-1, payload_router.Encoded(encoded_image, &codec_info_2, nullptr));
|
| }
|
|
|
| TEST(PayloadRouterTest, MaxPayloadLength) {
|
| @@ -139,7 +157,7 @@
|
| std::vector<RtpRtcp*> modules;
|
| modules.push_back(&rtp_1);
|
| modules.push_back(&rtp_2);
|
| - PayloadRouter payload_router(modules);
|
| + PayloadRouter payload_router(modules, 42);
|
|
|
| EXPECT_EQ(kDefaultMaxLength, PayloadRouter::DefaultMaxPayloadLength());
|
| payload_router.SetSendingRtpModules(modules.size());
|
| @@ -170,7 +188,7 @@
|
| std::vector<RtpRtcp*> modules;
|
| modules.push_back(&rtp_1);
|
| modules.push_back(&rtp_2);
|
| - PayloadRouter payload_router(modules);
|
| + PayloadRouter payload_router(modules, 42);
|
| payload_router.SetSendingRtpModules(modules.size());
|
|
|
| const uint32_t bitrate_1 = 10000;
|
|
|