Index: webrtc/test/call_test.cc |
diff --git a/webrtc/test/call_test.cc b/webrtc/test/call_test.cc |
index 244b79b5c37ed4b072af999f3f7e31da35faacca..1dafd5447752732eb3f9e1a07ca547ff574f271e 100644 |
--- a/webrtc/test/call_test.cc |
+++ b/webrtc/test/call_test.cc |
@@ -26,29 +26,6 @@ namespace { |
const int kVideoRotationRtpExtensionId = 4; |
} |
-void CallTest::PayloadDemuxer::SetReceiver(PacketReceiver* receiver) { |
- receiver_ = receiver; |
-} |
- |
-PacketReceiver::DeliveryStatus CallTest::PayloadDemuxer::DeliverPacket( |
- MediaType media_type, |
- const uint8_t* packet, |
- size_t length, |
- const PacketTime& packet_time) { |
- if (media_type == MediaType::ANY) { |
- // This simplistic demux logic will not make much sense for RTCP |
- // packets, but it seems that doesn't matter. |
- RTC_CHECK_GE(length, 2); |
- uint8_t pt = packet[1] & 0x7f; |
- if (pt == kFakeVideoSendPayloadType || pt == kFlexfecPayloadType) { |
- media_type = MediaType::VIDEO; |
- } else { |
- media_type = MediaType::AUDIO; |
- } |
- } |
- return receiver_->DeliverPacket(media_type, packet, length, packet_time); |
-} |
- |
CallTest::CallTest() |
: clock_(Clock::GetRealTimeClock()), |
video_send_config_(nullptr), |
@@ -98,20 +75,8 @@ void CallTest::RunBaseTest(BaseTest* test) { |
send_transport_.reset(test->CreateSendTransport(sender_call_.get())); |
if (test->ShouldCreateReceivers()) { |
- // For tests using only video or only audio, we rely on each test |
- // configuring the underlying FakeNetworkPipe with the right media |
- // type. But for tests sending both video and audio over the same |
- // FakeNetworkPipe, we need to "demux", i.e., setting the |
- // MediaType based on RTP payload type. |
- if (num_video_streams_ > 0 && num_audio_streams_ > 0) { |
- receive_demuxer_.SetReceiver(receiver_call_->Receiver()); |
- send_transport_->SetReceiver(&receive_demuxer_); |
- send_demuxer_.SetReceiver(sender_call_->Receiver()); |
- receive_transport_->SetReceiver(&send_demuxer_); |
- } else { |
- send_transport_->SetReceiver(receiver_call_->Receiver()); |
- receive_transport_->SetReceiver(sender_call_->Receiver()); |
- } |
+ send_transport_->SetReceiver(receiver_call_->Receiver()); |
+ receive_transport_->SetReceiver(sender_call_->Receiver()); |
if (num_video_streams_ > 0) |
receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp); |
if (num_audio_streams_ > 0) |
@@ -299,7 +264,7 @@ void CallTest::CreateMatchingReceiveConfigs(Transport* rtcp_send_transport) { |
audio_config.voe_channel_id = voe_recv_.channel_id; |
audio_config.rtp.remote_ssrc = audio_send_config_.rtp.ssrc; |
audio_config.decoder_factory = decoder_factory_; |
- audio_config.decoder_map = {{120, {"opus", 48000, 2}}}; |
+ audio_config.decoder_map = {{kAudioSendPayloadType, {"opus", 48000, 2}}}; |
audio_receive_configs_.push_back(audio_config); |
} |
@@ -461,6 +426,16 @@ const uint32_t CallTest::kReceiverLocalVideoSsrc = 0x123456; |
const uint32_t CallTest::kReceiverLocalAudioSsrc = 0x1234567; |
const int CallTest::kNackRtpHistoryMs = 1000; |
+const std::map<uint8_t, MediaType> CallTest::payload_type_map_ = { |
+ {CallTest::kVideoSendPayloadType, MediaType::VIDEO}, |
+ {CallTest::kFakeVideoSendPayloadType, MediaType::VIDEO}, |
+ {CallTest::kSendRtxPayloadType, MediaType::VIDEO}, |
+ {CallTest::kRedPayloadType, MediaType::VIDEO}, |
nisse-webrtc
2017/04/06 12:23:56
Looks like kRedPayloadType is 118, but here's a di
minyue-webrtc
2017/04/06 18:45:10
ok. I will take a look at ulpfec_generator_fuzzer.
minyue-webrtc
2017/04/07 09:16:28
I have read ulpfec_generator_fuzzer now, it does n
|
+ {CallTest::kRtxRedPayloadType, MediaType::VIDEO}, |
+ {CallTest::kUlpfecPayloadType, MediaType::VIDEO}, |
+ {CallTest::kFlexfecPayloadType, MediaType::VIDEO}, |
nisse-webrtc
2017/04/06 12:23:56
kFlexfecPayloadType is 120 here, but 123 in fuzzer
minyue-webrtc
2017/04/07 09:16:28
same here
|
+ {CallTest::kAudioSendPayloadType, MediaType::AUDIO}}; |
nisse-webrtc
2017/04/06 12:23:56
And kAudioSendPayloadType is 103.
At least before
minyue-webrtc
2017/04/06 18:45:10
I should have solved them, since tests all passed
minyue-webrtc
2017/04/07 09:16:28
I could not find such conflict. Would you point it
|
+ |
BaseTest::BaseTest() {} |
BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) { |
@@ -492,28 +467,15 @@ Call::Config BaseTest::GetReceiverCallConfig() { |
void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { |
} |
-MediaType BaseTest::SelectMediaType() { |
- if (GetNumVideoStreams() > 0) { |
- if (GetNumAudioStreams() > 0) { |
- // Relies on PayloadDemuxer to set media type from payload type. |
- return MediaType::ANY; |
- } else { |
- return MediaType::VIDEO; |
- } |
- } else { |
- return MediaType::AUDIO; |
- } |
-} |
- |
test::PacketTransport* BaseTest::CreateSendTransport(Call* sender_call) { |
return new PacketTransport(sender_call, this, test::PacketTransport::kSender, |
- SelectMediaType(), |
+ CallTest::payload_type_map_, |
FakeNetworkPipe::Config()); |
} |
test::PacketTransport* BaseTest::CreateReceiveTransport() { |
return new PacketTransport(nullptr, this, test::PacketTransport::kReceiver, |
- SelectMediaType(), |
+ CallTest::payload_type_map_, |
FakeNetworkPipe::Config()); |
} |