diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index d179c043e..c5ac65843 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2493,6 +2493,12 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreferredVideoSize(JN linphone_core_set_preferred_video_size((LinphoneCore *)lc, vsize); } +JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneCoreImpl_setPreferredVideoSizeByName(JNIEnv *env, jobject thiz, jlong lc, jstring jName) { + const char* cName = env->GetStringUTFChars(jName, NULL); + linphone_core_set_preferred_video_size_by_name((LinphoneCore *)lc, cName); + env->ReleaseStringUTFChars(jName, cName); +} + extern "C" jintArray Java_org_linphone_core_LinphoneCoreImpl_getPreferredVideoSize(JNIEnv *env, jobject thiz, jlong lc){ MSVideoSize vsize = linphone_core_get_preferred_video_size((LinphoneCore *)lc); jintArray arr = env->NewIntArray(2); diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index cf587e370..70097d014 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -863,6 +863,14 @@ public interface LinphoneCore { * **/ void setPreferredVideoSize(VideoSize vSize); + /** + * Sets the preferred video size giving a known size name. + * + * This applies only to the stream that is captured and sent to the remote party, + * since we accept all standard video size on the receive path. + * @param name A known video name (eg. vga or 720p) + **/ + void setPreferredVideoSizeByName(String name); /** * get current preferred video size for sending. * @return video size diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index b28646c7b..44632218d 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -95,6 +95,7 @@ class LinphoneCoreImpl implements LinphoneCore { private native void setUploadBandwidth(long nativePtr, int bw); private native void setDownloadBandwidth(long nativePtr, int bw); private native void setPreferredVideoSize(long nativePtr, int width, int heigth); + private native void setPreferredVideoSizeByName(long nativePtr, String name); private native int[] getPreferredVideoSize(long nativePtr); private native void setRing(long nativePtr, String path); private native String getRing(long nativePtr); @@ -451,6 +452,10 @@ class LinphoneCoreImpl implements LinphoneCore { setPreferredVideoSize(nativePtr, vSize.width, vSize.height); } + public synchronized void setPreferredVideoSizeByName(String name) { + setPreferredVideoSizeByName(nativePtr, name); + } + public synchronized VideoSize getPreferredVideoSize() { int[] nativeSize = getPreferredVideoSize(nativePtr);