[Android] jni: Add HTTP reconnect option on LibVLC instantiation
Uwe L. Korn
git at videolan.org
Sun Sep 21 12:53:08 CEST 2014
vlc-ports/android | branch: master | Uwe L. Korn <uwelk at xhochy.com> | Sat Sep 20 16:27:49 2014 +0100| [867d063eaa9ae7e2bb482da04ace59eccefeb1c1] | committer: Edward Wang
jni: Add HTTP reconnect option on LibVLC instantiation
Signed-off-by: Edward Wang <edward.c.wang at compdigitec.com>
> http://git.videolan.org/gitweb.cgi/vlc-ports/android.git/?a=commit;h=867d063eaa9ae7e2bb482da04ace59eccefeb1c1
---
vlc-android/jni/libvlcjni.c | 6 ++++++
vlc-android/src/org/videolan/libvlc/LibVLC.java | 9 +++++++++
2 files changed, 15 insertions(+)
diff --git a/vlc-android/jni/libvlcjni.c b/vlc-android/jni/libvlcjni.c
index f621d92..df49f6e 100644
--- a/vlc-android/jni/libvlcjni.c
+++ b/vlc-android/jni/libvlcjni.c
@@ -252,6 +252,9 @@ void Java_org_videolan_libvlc_LibVLC_nativeInit(JNIEnv *env, jobject thiz)
LOGD("Using network caching of %d ms", networkCaching);
}
+ methodId = (*env)->GetMethodID(env, cls, "getHttpReconnect", "()Z");
+ bool enable_http_reconnect = (*env)->CallBooleanMethod(env, thiz, methodId);
+
methodId = (*env)->GetMethodID(env, cls, "getChroma", "()Ljava/lang/String;");
jstring chroma = (*env)->CallObjectMethod(env, thiz, methodId);
const char *chromastr = (*env)->GetStringUTFChars(env, chroma, 0);
@@ -308,6 +311,9 @@ void Java_org_videolan_libvlc_LibVLC_nativeInit(JNIEnv *env, jobject thiz)
/* XXX: we can't recover from direct rendering failure */
(hardwareAcceleration == HW_ACCELERATION_FULL) ? "" : "--no-mediacodec-dr",
(hardwareAcceleration == HW_ACCELERATION_FULL) ? "" : NO_IOMX_DR,
+
+ /* Reconnect on lost HTTP streams, e.g. network change */
+ enable_http_reconnect ? "--http-reconnect" : "",
};
libvlc_instance_t *instance = libvlc_new(sizeof(argv) / sizeof(*argv), argv);
diff --git a/vlc-android/src/org/videolan/libvlc/LibVLC.java b/vlc-android/src/org/videolan/libvlc/LibVLC.java
index cf1dbb5..8023e53 100644
--- a/vlc-android/src/org/videolan/libvlc/LibVLC.java
+++ b/vlc-android/src/org/videolan/libvlc/LibVLC.java
@@ -75,6 +75,7 @@ public class LibVLC {
private float[] equalizer = null;
private boolean frameSkip = false;
private int networkCaching = 0;
+ private boolean httpReconnect = false;
/** Path of application-specific cache */
private String mCachePath = "";
@@ -372,6 +373,14 @@ public class LibVLC {
this.networkCaching = networkcaching;
}
+ public boolean getHttpReconnect() {
+ return httpReconnect;
+ }
+
+ public void setHttpReconnect(boolean httpReconnect) {
+ this.httpReconnect = httpReconnect;
+ }
+
/**
* Initialize the libVLC class.
*
More information about the Android
mailing list