WebRTCDemo: Enable making multiple calls.
Previously after the first call subsequent attempts to bind the RTP/RTCP ports would fail, since r3754.
BUG=1618
Review URL: https://webrtc-codereview.appspot.com/1302007
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@3817 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/test/channel_transport/channel_transport.cc b/test/channel_transport/channel_transport.cc
index 546d4a2..51f635c 100644
--- a/test/channel_transport/channel_transport.cc
+++ b/test/channel_transport/channel_transport.cc
@@ -20,6 +20,11 @@
#include "webrtc/voice_engine/include/voe_network.h"
#include "webrtc/video_engine/vie_defines.h"
+#ifdef WEBRTC_ANDROID
+#undef NDEBUG
+#include <assert.h>
+#endif
+
namespace webrtc {
namespace test {
@@ -29,11 +34,12 @@
voe_network_(voe_network) {
uint8_t socket_threads = 1;
socket_transport_ = UdpTransport::Create(channel, socket_threads);
+ int registered = voe_network_->RegisterExternalTransport(channel,
+ *socket_transport_);
#ifndef WEBRTC_ANDROID
- EXPECT_EQ(0, voe_network_->RegisterExternalTransport(channel,
- *socket_transport_));
+ EXPECT_EQ(0, registered);
#else
- voe_network_->RegisterExternalTransport(channel, *socket_transport_);
+ assert(registered == 0);
#endif
}
@@ -80,14 +86,15 @@
vie_network_(vie_network) {
uint8_t socket_threads = 1;
socket_transport_ = UdpTransport::Create(channel, socket_threads);
+ int registered = vie_network_->RegisterSendTransport(channel,
+ *socket_transport_);
#ifndef WEBRTC_ANDROID
- EXPECT_EQ(0, vie_network_->RegisterSendTransport(channel,
- *socket_transport_));
+ EXPECT_EQ(0, registered);
#else
- vie_network_->RegisterSendTransport(channel, *socket_transport_);
+ assert(registered == 0);
#endif
}
-
+
VideoChannelTransport::~VideoChannelTransport() {
vie_network_->DeregisterSendTransport(channel_);
UdpTransport::Destroy(socket_transport_);
diff --git a/video_engine/test/android/jni/org_webrtc_videoengineapp_vie_android_java_api.h b/video_engine/test/android/jni/org_webrtc_videoengineapp_vie_android_java_api.h
index ccfa6a4..7fad82b 100644
--- a/video_engine/test/android/jni/org_webrtc_videoengineapp_vie_android_java_api.h
+++ b/video_engine/test/android/jni/org_webrtc_videoengineapp_vie_android_java_api.h
@@ -291,6 +291,14 @@
/*
* Class: org_webrtc_videoengineapp_ViEAndroidJavaAPI
+ * Method: ViE_DeleteChannel
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_webrtc_videoengineapp_ViEAndroidJavaAPI_ViE_1DeleteChannel
+ (JNIEnv *, jobject, jint);
+
+/*
+ * Class: org_webrtc_videoengineapp_ViEAndroidJavaAPI
* Method: VoE_SetLocalReceiver
* Signature: (II)I
*/
diff --git a/video_engine/test/android/jni/vie_android_java_api.cc b/video_engine/test/android/jni/vie_android_java_api.cc
index b51989b..754ca89 100644
--- a/video_engine/test/android/jni/vie_android_java_api.cc
+++ b/video_engine/test/android/jni/vie_android_java_api.cc
@@ -382,7 +382,7 @@
__android_log_write(ANDROID_LOG_DEBUG, WEBRTC_LOG_TAG,
"SetTraceFilter");
- if (0 != vieData.vie->SetTraceFilter(webrtc::kTraceDefault))
+ if (0 != vieData.vie->SetTraceFilter(webrtc::kTraceError))
{
__android_log_write(ANDROID_LOG_WARN, WEBRTC_LOG_TAG,
"Could not set trace filter");
@@ -1293,6 +1293,21 @@
/*
* Class: org_webrtc_videoengineapp_ViEAndroidJavaAPI
+ * Method: ViE_DeleteChannel
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_webrtc_videoengineapp_ViEAndroidJavaAPI_ViE_1DeleteChannel(
+ JNIEnv *,
+ jobject,
+ jint channel)
+{
+ VALIDATE_BASE_POINTER;
+ vieData.transport.reset(NULL);
+ return vieData.base->DeleteChannel(channel);
+}
+
+/*
+ * Class: org_webrtc_videoengineapp_ViEAndroidJavaAPI
* Method: VoE_SetLocalReceiver
* Signature: (II)I
*/
diff --git a/video_engine/test/android/src/org/webrtc/videoengineapp/ViEAndroidJavaAPI.java b/video_engine/test/android/src/org/webrtc/videoengineapp/ViEAndroidJavaAPI.java
index 9801f76..9ce4128 100644
--- a/video_engine/test/android/src/org/webrtc/videoengineapp/ViEAndroidJavaAPI.java
+++ b/video_engine/test/android/src/org/webrtc/videoengineapp/ViEAndroidJavaAPI.java
@@ -100,6 +100,7 @@
// Channel functions
public native int VoE_CreateChannel();
public native int VoE_DeleteChannel(int channel);
+ public native int ViE_DeleteChannel(int channel);
// Receiver & Destination functions
public native int VoE_SetLocalReceiver(int channel, int port);
diff --git a/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java b/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java
index 3385c58..a2eaa9b 100644
--- a/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java
+++ b/video_engine/test/android/src/org/webrtc/videoengineapp/WebRTCDemo.java
@@ -78,7 +78,7 @@
private SurfaceView svLocal = null;
// channel number
- private int channel;
+ private int channel = -1;
private int cameraId;
private int voiceChannel = -1;
@@ -87,7 +87,7 @@
private boolean voERunning = false;
// debug
- private boolean enableTrace = false;
+ private boolean enableTrace = true;
// Constant
private static final String TAG = "WEBRTC";
@@ -418,6 +418,8 @@
vieAndroidAPI.StopReceive(channel);
vieAndroidAPI.StopSend(channel);
vieAndroidAPI.RemoveRemoteRenderer(channel);
+ vieAndroidAPI.ViE_DeleteChannel(channel);
+ channel = -1;
vieAndroidAPI.StopCamera(cameraId);
vieAndroidAPI.Terminate();
mLlRemoteSurface.removeView(remoteSurfaceView);