Index: webrtc/test/direct_transport.cc |
diff --git a/webrtc/test/direct_transport.cc b/webrtc/test/direct_transport.cc |
index 90531eadfaf2ced07fefa87f9baf245496ec662d..370425c5374930f7562e3f23f71277444a43d2e5 100644 |
--- a/webrtc/test/direct_transport.cc |
+++ b/webrtc/test/direct_transport.cc |
@@ -15,17 +15,29 @@ |
namespace webrtc { |
namespace test { |
-DirectTransport::DirectTransport(Call* send_call, MediaType media_type) |
- : DirectTransport(FakeNetworkPipe::Config(), send_call, media_type) {} |
+DirectTransport::DirectTransport( |
+ Call* send_call, |
+ const std::map<uint8_t, MediaType>& payload_type_map) |
+ : DirectTransport(FakeNetworkPipe::Config(), send_call, payload_type_map) {} |
+ |
+DirectTransport::DirectTransport( |
+ const FakeNetworkPipe::Config& config, |
+ Call* send_call, |
+ const std::map<uint8_t, MediaType>& payload_type_map) |
+ : DirectTransport( |
+ config, |
+ send_call, |
+ std::unique_ptr<Demuxer>(new DemuxerImpl(payload_type_map))) {} |
DirectTransport::DirectTransport(const FakeNetworkPipe::Config& config, |
- Call* send_call, MediaType media_type) |
+ Call* send_call, |
+ std::unique_ptr<Demuxer> demuxer) |
: send_call_(send_call), |
packet_event_(false, false), |
thread_(NetworkProcess, this, "NetworkProcess"), |
clock_(Clock::GetRealTimeClock()), |
shutting_down_(false), |
- fake_network_(clock_, config, media_type) { |
+ fake_network_(clock_, config, std::move(demuxer)) { |
thread_.Start(); |
if (send_call_) { |
send_call_->SignalChannelNetworkState(MediaType::AUDIO, kNetworkUp); |
@@ -76,6 +88,22 @@ int DirectTransport::GetAverageDelayMs() { |
return fake_network_.AverageDelay(); |
} |
+DirectTransport::ForceDemuxer::ForceDemuxer(MediaType media_type) |
+ : media_type_(media_type) {} |
+ |
+void DirectTransport::ForceDemuxer::SetReceiver(PacketReceiver* receiver) { |
+ packet_receiver_ = receiver; |
+} |
+ |
+void DirectTransport::ForceDemuxer::DeliverPacket( |
+ const NetworkPacket* packet, |
+ const PacketTime& packet_time) { |
+ if (!packet_receiver_) |
+ return; |
+ packet_receiver_->DeliverPacket(media_type_, packet->data(), |
+ packet->data_length(), packet_time); |
+} |
+ |
bool DirectTransport::NetworkProcess(void* transport) { |
return static_cast<DirectTransport*>(transport)->SendPackets(); |
} |