]> sjero.net Git - linphone/commitdiff
Change API of linphone_core_find_payload_type() to take the number of channels into...
authorGhislain MARY <ghislain.mary@belledonne-communications.com>
Tue, 28 Aug 2012 07:03:38 +0000 (09:03 +0200)
committerGhislain MARY <ghislain.mary@belledonne-communications.com>
Tue, 28 Aug 2012 07:03:38 +0000 (09:03 +0200)
coreapi/linphonecore.c
coreapi/linphonecore.h
coreapi/linphonecore_jni.cc

index 086e8c778cee1c619ce281deee3b94ebe0b27424..76b823d0fe67c9e29fd140170a264390ffc3b25d 100644 (file)
@@ -4806,11 +4806,13 @@ const char *linphone_core_get_remote_ringback_tone(const LinphoneCore *lc){
        return lc->sound_conf.ringback_tone;
 }
 
-static PayloadType* find_payload_type_from_list(const char* type, int rate,const MSList* from) {
+static PayloadType* find_payload_type_from_list(const char* type, int rate, int channels, const MSList* from) {
        const MSList *elem;
        for(elem=from;elem!=NULL;elem=elem->next){
                PayloadType *pt=(PayloadType*)elem->data;
-               if ((strcasecmp((char*)type, payload_type_get_mime(pt)) == 0) && (rate == -1 || rate==pt->clock_rate)) {
+               if ((strcasecmp((char*)type, payload_type_get_mime(pt)) == 0)
+                       && (rate == -1 || rate==pt->clock_rate)
+                       && (channels == 0 || channels==pt->channels)) {
                        return pt;
                }
        }
@@ -4823,12 +4825,12 @@ static PayloadType* find_payload_type_from_list(const char* type, int rate,const
  * This function searches in audio and video codecs for the given payload type name and clockrate.
  * Returns NULL if not found.
  */
-PayloadType* linphone_core_find_payload_type(LinphoneCore* lc, const char* type, int rate) {
-       PayloadType* result = find_payload_type_from_list(type, rate, linphone_core_get_audio_codecs(lc));
+PayloadType* linphone_core_find_payload_type(LinphoneCore* lc, const char* type, int rate, int channels) {
+       PayloadType* result = find_payload_type_from_list(type, rate, channels, linphone_core_get_audio_codecs(lc));
        if (result)  {
                return result;
        } else {
-               result = find_payload_type_from_list(type, rate, linphone_core_get_video_codecs(lc));
+               result = find_payload_type_from_list(type, rate, 0, linphone_core_get_video_codecs(lc));
                if (result) {
                        return result;
                }
index 98bb03d46f2bb714fcf9baad218f5b771a57ee83..72477c903f842f79302f41f2d9a4a52d20c488f5 100644 (file)
@@ -869,7 +869,7 @@ bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, const PayloadType *p
 
 int linphone_core_enable_payload_type(LinphoneCore *lc, PayloadType *pt, bool_t enable);
 
-PayloadType* linphone_core_find_payload_type(LinphoneCore* lc, const char* type, int rate) ;
+PayloadType* linphone_core_find_payload_type(LinphoneCore* lc, const char* type, int rate, int channels) ;
 
 int linphone_core_get_payload_type_number(LinphoneCore *lc, const PayloadType *pt);
 
index bf1a30bcd2c869705198e23674138c345af47aba..19462611172a1a0e2aeab576e03d8daea45d29e7 100644 (file)
@@ -684,9 +684,10 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_findPayloadType(JNIEnv*
                                                                                                                                                        ,jobject  thiz
                                                                                                                                                        ,jlong lc
                                                                                                                                                        ,jstring jmime
-                                                                                                                                                       ,jint rate) {
+                                                                                                                                                       ,jint rate
+                                                                                                                                                       ,jint channels) {
        const char* mime = env->GetStringUTFChars(jmime, NULL);
-       jlong result = (jlong)linphone_core_find_payload_type((LinphoneCore*)lc,mime,rate);
+       jlong result = (jlong)linphone_core_find_payload_type((LinphoneCore*)lc,mime,rate,channels);
        env->ReleaseStringUTFChars(jmime, mime);
        return result;
 }