OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #include <stdint.h> | 11 #include <stdint.h> |
12 | 12 |
13 #include "webrtc/base/array_view.h" | 13 #include "webrtc/base/array_view.h" |
14 #include "webrtc/call/flexfec_receive_stream_impl.h" | 14 #include "webrtc/call/flexfec_receive_stream_impl.h" |
15 #include "webrtc/modules/pacing/packet_router.h" | 15 #include "webrtc/modules/pacing/packet_router.h" |
16 #include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h" | 16 #include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h" |
17 #include "webrtc/modules/rtp_rtcp/mocks/mock_recovered_packet_receiver.h" | 17 #include "webrtc/modules/rtp_rtcp/mocks/mock_recovered_packet_receiver.h" |
18 #include "webrtc/modules/rtp_rtcp/mocks/mock_rtcp_rtt_stats.h" | 18 #include "webrtc/modules/rtp_rtcp/mocks/mock_rtcp_rtt_stats.h" |
19 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" | 19 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" |
20 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" | 20 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" |
21 #include "webrtc/modules/utility/include/mock/mock_process_thread.h" | 21 #include "webrtc/modules/utility/include/mock/mock_process_thread.h" |
22 #include "webrtc/test/gmock.h" | 22 #include "webrtc/test/gmock.h" |
23 #include "webrtc/test/gtest.h" | 23 #include "webrtc/test/gtest.h" |
24 #include "webrtc/test/mock_transport.h" | 24 #include "webrtc/test/mock_transport.h" |
25 | 25 |
26 namespace webrtc { | 26 namespace webrtc { |
27 | 27 |
28 namespace { | 28 namespace { |
29 | 29 |
| 30 #if 0 |
30 constexpr uint8_t kFlexfecPlType = 118; | 31 constexpr uint8_t kFlexfecPlType = 118; |
31 constexpr uint8_t kFlexfecSsrc[] = {0x00, 0x00, 0x00, 0x01}; | 32 constexpr uint8_t kFlexfecSsrc[] = {0x00, 0x00, 0x00, 0x01}; |
32 constexpr uint8_t kMediaSsrc[] = {0x00, 0x00, 0x00, 0x02}; | 33 constexpr uint8_t kMediaSsrc[] = {0x00, 0x00, 0x00, 0x02}; |
33 | 34 |
34 FlexfecReceiveStream::Config CreateDefaultConfig( | 35 FlexfecReceiveStream::Config CreateDefaultConfig( |
35 Transport* rtcp_send_transport) { | 36 Transport* rtcp_send_transport) { |
36 FlexfecReceiveStream::Config config(rtcp_send_transport); | 37 FlexfecReceiveStream::Config config(rtcp_send_transport); |
37 config.payload_type = kFlexfecPlType; | 38 config.payload_type = kFlexfecPlType; |
38 config.remote_ssrc = ByteReader<uint32_t>::ReadBigEndian(kFlexfecSsrc); | 39 config.remote_ssrc = ByteReader<uint32_t>::ReadBigEndian(kFlexfecSsrc); |
39 config.protected_media_ssrcs = { | 40 config.protected_media_ssrcs = { |
40 ByteReader<uint32_t>::ReadBigEndian(kMediaSsrc)}; | 41 ByteReader<uint32_t>::ReadBigEndian(kMediaSsrc)}; |
41 EXPECT_TRUE(config.IsCompleteAndEnabled()); | 42 EXPECT_TRUE(config.IsCompleteAndEnabled()); |
42 return config; | 43 return config; |
43 } | 44 } |
44 | 45 |
45 RtpPacketReceived ParsePacket(rtc::ArrayView<const uint8_t> packet) { | 46 RtpPacketReceived ParsePacket(rtc::ArrayView<const uint8_t> packet) { |
46 RtpPacketReceived parsed_packet(nullptr); | 47 RtpPacketReceived parsed_packet(nullptr); |
47 EXPECT_TRUE(parsed_packet.Parse(packet)); | 48 EXPECT_TRUE(parsed_packet.Parse(packet)); |
48 return parsed_packet; | 49 return parsed_packet; |
49 } | 50 } |
| 51 #endif |
50 | 52 |
51 } // namespace | 53 } // namespace |
52 | 54 |
53 TEST(FlexfecReceiveStreamConfigTest, IsCompleteAndEnabled) { | 55 TEST(FlexfecReceiveStreamConfigTest, IsCompleteAndEnabled) { |
54 MockTransport rtcp_send_transport; | 56 MockTransport rtcp_send_transport; |
55 FlexfecReceiveStream::Config config(&rtcp_send_transport); | 57 FlexfecReceiveStream::Config config(&rtcp_send_transport); |
56 | 58 |
57 config.local_ssrc = 18374743; | 59 config.local_ssrc = 18374743; |
58 config.rtcp_mode = RtcpMode::kCompound; | 60 config.rtcp_mode = RtcpMode::kCompound; |
59 config.transport_cc = true; | 61 config.transport_cc = true; |
60 config.rtp_header_extensions.emplace_back(TransportSequenceNumber::kUri, 7); | 62 config.rtp_header_extensions.emplace_back(TransportSequenceNumber::kUri, 7); |
61 EXPECT_FALSE(config.IsCompleteAndEnabled()); | 63 EXPECT_FALSE(config.IsCompleteAndEnabled()); |
62 | 64 |
63 config.payload_type = 123; | 65 config.payload_type = 123; |
64 EXPECT_FALSE(config.IsCompleteAndEnabled()); | 66 EXPECT_FALSE(config.IsCompleteAndEnabled()); |
65 | 67 |
66 config.remote_ssrc = 238423838; | 68 config.remote_ssrc = 238423838; |
67 EXPECT_FALSE(config.IsCompleteAndEnabled()); | 69 EXPECT_FALSE(config.IsCompleteAndEnabled()); |
68 | 70 |
69 config.protected_media_ssrcs.push_back(138989393); | 71 config.protected_media_ssrcs.push_back(138989393); |
70 EXPECT_TRUE(config.IsCompleteAndEnabled()); | 72 EXPECT_TRUE(config.IsCompleteAndEnabled()); |
71 | 73 |
72 config.protected_media_ssrcs.push_back(33423423); | 74 config.protected_media_ssrcs.push_back(33423423); |
73 EXPECT_FALSE(config.IsCompleteAndEnabled()); | 75 EXPECT_FALSE(config.IsCompleteAndEnabled()); |
74 } | 76 } |
75 | 77 |
| 78 #if 0 |
76 class FlexfecReceiveStreamTest : public ::testing::Test { | 79 class FlexfecReceiveStreamTest : public ::testing::Test { |
77 protected: | 80 protected: |
78 FlexfecReceiveStreamTest() | 81 FlexfecReceiveStreamTest() |
79 : config_(CreateDefaultConfig(&rtcp_send_transport_)), | 82 : config_(CreateDefaultConfig(&rtcp_send_transport_)), |
80 receive_stream_(config_, | 83 receive_stream_(config_, |
81 &recovered_packet_receiver_, | 84 &recovered_packet_receiver_, |
82 &rtt_stats_, | 85 &rtt_stats_, |
83 &process_thread_) {} | 86 &process_thread_) {} |
84 | 87 |
85 MockTransport rtcp_send_transport_; | 88 MockTransport rtcp_send_transport_; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 // Do not call back before being started. | 143 // Do not call back before being started. |
141 receive_stream.OnRtpPacket(ParsePacket(kFlexfecPacket)); | 144 receive_stream.OnRtpPacket(ParsePacket(kFlexfecPacket)); |
142 | 145 |
143 // Call back after being started. | 146 // Call back after being started. |
144 receive_stream.Start(); | 147 receive_stream.Start(); |
145 EXPECT_CALL( | 148 EXPECT_CALL( |
146 recovered_packet_receiver, | 149 recovered_packet_receiver, |
147 OnRecoveredPacket(::testing::_, kRtpHeaderSize + kPayloadLength[1])); | 150 OnRecoveredPacket(::testing::_, kRtpHeaderSize + kPayloadLength[1])); |
148 receive_stream.OnRtpPacket(ParsePacket(kFlexfecPacket)); | 151 receive_stream.OnRtpPacket(ParsePacket(kFlexfecPacket)); |
149 } | 152 } |
| 153 #endif |
150 | 154 |
151 } // namespace webrtc | 155 } // namespace webrtc |
OLD | NEW |