Clean packets on the network when closing + made loopback test actually run again.
BUG=
Review URL: https://webrtc-codereview.appspot.com/1290006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3776 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/video_engine/test/auto_test/source/vie_autotest_loopback.cc b/webrtc/video_engine/test/auto_test/source/vie_autotest_loopback.cc
index ba0da62..2b589ab 100644
--- a/webrtc/video_engine/test/auto_test/source/vie_autotest_loopback.cc
+++ b/webrtc/video_engine/test/auto_test/source/vie_autotest_loopback.cc
@@ -497,11 +497,9 @@
return -1;
}
- // Setting External transport
- TbExternalTransport extTransport(*(ptrViENetwork), videoChannel, NULL);
-
- webrtc::test::VideoChannelTransport* video_channel_transport =
- new webrtc::test::VideoChannelTransport(ptrViENetwork, videoChannel);
+ // Setup transport.
+ TbExternalTransport* extTransport = NULL;
+ webrtc::test::VideoChannelTransport* video_channel_transport = NULL;
int testMode = 0;
std::cout << std::endl;
@@ -515,8 +513,11 @@
// Avoid changing SSRC due to collision.
error = ptrViERtpRtcp->SetLocalSSRC(videoChannel, 1);
+ extTransport = new TbExternalTransport(*ptrViENetwork, videoChannel,
+ NULL);
+
error = ptrViENetwork->RegisterSendTransport(videoChannel,
- extTransport);
+ *extTransport);
if (error == -1)
{
printf("ERROR in ViECodec::RegisterSendTransport \n");
@@ -540,16 +541,19 @@
std::string delay_str;
std::getline(std::cin, delay_str);
network.mean_one_way_delay = atoi(delay_str.c_str());
- extTransport.SetNetworkParameters(network);
+ extTransport->SetNetworkParameters(network);
if (numTemporalLayers > 1 && temporalToggling) {
- extTransport.SetTemporalToggle(numTemporalLayers);
+ extTransport->SetTemporalToggle(numTemporalLayers);
} else {
// Disabled
- extTransport.SetTemporalToggle(0);
+ extTransport->SetTemporalToggle(0);
}
}
else
{
+ video_channel_transport = new webrtc::test::VideoChannelTransport(
+ ptrViENetwork, videoChannel);
+
const char* ipAddress = "127.0.0.1";
const unsigned short rtpPort = 6000;
std::cout << std::endl;
@@ -668,7 +672,10 @@
printf("ERROR in ViEBase::DeleteChannel\n");
return -1;
}
+
delete video_channel_transport;
+ delete extTransport;
+
int remainingInterfaces = 0;
remainingInterfaces = ptrViECodec->Release();
remainingInterfaces += ptrViECapture->Release();
diff --git a/webrtc/video_engine/test/libvietest/testbed/tb_external_transport.cc b/webrtc/video_engine/test/libvietest/testbed/tb_external_transport.cc
index 25dbbe6..c34c0a4 100644
--- a/webrtc/video_engine/test/libvietest/testbed/tb_external_transport.cc
+++ b/webrtc/video_engine/test/libvietest/testbed/tb_external_transport.cc
@@ -91,6 +91,16 @@
delete &_thread;
delete &_event;
}
+ for (std::list<VideoPacket*>::iterator it = _rtpPackets.begin();
+ it != _rtpPackets.end(); ++it) {
+ delete *it;
+ }
+ _rtpPackets.clear();
+ for (std::list<VideoPacket*>::iterator it = _rtcpPackets.begin();
+ it != _rtcpPackets.end(); ++it) {
+ delete *it;
+ }
+ _rtcpPackets.clear();
delete &_crit;
delete &_statCrit;
}