diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index bb94573f5..4124f3092 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1240,6 +1240,22 @@ extern "C" jboolean Java_org_linphone_core_LinphoneCoreImpl_isPayloadTypeEnabled ,jlong pt) { return (jboolean) linphone_core_payload_type_enabled((LinphoneCore*)lc, (PayloadType*)pt); } + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPayloadTypeBitrate(JNIEnv* env + ,jobject thiz + ,jlong lc + ,jlong pt + ,jint bitrate) { + linphone_core_set_payload_type_bitrate((LinphoneCore*)lc,(PayloadType*)pt,bitrate); +} + +extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getPayloadTypeBitrate(JNIEnv* env + ,jobject thiz + ,jlong lc + ,jlong pt) { + return (jint)linphone_core_get_payload_type_bitrate((LinphoneCore*)lc,(PayloadType*)pt); +} + extern "C" void Java_org_linphone_core_LinphoneCoreImpl_enableEchoCancellation(JNIEnv* env ,jobject thiz ,jlong lc diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 3d22e10ba..332a85be0 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -693,6 +693,20 @@ public interface LinphoneCore { */ boolean isPayloadTypeEnabled(PayloadType pt); + /** + * Set an explicit bitrate (IP bitrate, not codec bitrate) for a given codec, in kbit/s. + * @param pt the payload type + * @param bitrate target IP bitrate in kbit/s + */ + void setPayloadTypeBitrate(PayloadType pt, int bitrate); + + /** + * Get target bitrate previously set by setPayloadTypeBitrate(). + * @param pt + * @return IP bitrate in kbit/s + */ + int getPayloadTypeBitrate(PayloadType pt); + /** * Enables or disable echo cancellation. * @param enable diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index 66597ca81..8cd5fe79e 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -1188,5 +1188,15 @@ class LinphoneCoreImpl implements LinphoneCore { public void stopRinging() { stopRinging(nativePtr); } + private native void setPayloadTypeBitrate(long coreptr, long payload_ptr, int bitrate); + @Override + public void setPayloadTypeBitrate(PayloadType pt, int bitrate) { + setPayloadTypeBitrate(nativePtr, ((PayloadTypeImpl)pt).nativePtr, bitrate); + } + private native int getPayloadTypeBitrate(long coreptr, long payload_ptr); + @Override + public int getPayloadTypeBitrate(PayloadType pt) { + return getPayloadTypeBitrate(nativePtr, ((PayloadTypeImpl)pt).nativePtr); + } }