From ac0afacabd40f2eb8fbbbb0544a0343a0809d475 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Mon, 13 May 2013 15:12:14 +0200 Subject: [PATCH 01/13] Remove useless arguement in linphone_core_upnp_available --- coreapi/linphonecore.c | 2 +- coreapi/linphonecore.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 12c8880b6..02db3b54f 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4190,7 +4190,7 @@ const char * linphone_core_get_stun_server(const LinphoneCore *lc){ return lc->net_conf.stun_server; } -bool_t linphone_core_upnp_available(const LinphoneCore *lc){ +bool_t linphone_core_upnp_available(){ #ifdef BUILD_UPNP return TRUE; #else diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 5ae73cc4d..67d4fb255 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1199,10 +1199,9 @@ const char * linphone_core_get_stun_server(const LinphoneCore *lc); * @ingroup network_parameters * Return the availability of uPnP. * - * @param lc #LinphoneCore * @return true if uPnP is available otherwise return false. */ -bool_t linphone_core_upnp_available(const LinphoneCore *lc); +bool_t linphone_core_upnp_available(); /** * @ingroup network_parameters From 5e00dd3d9021b70cb55130fd7d0dc2f42a020160 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 14 May 2013 11:57:30 +0200 Subject: [PATCH 02/13] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 239be1a39..382f7d766 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 239be1a39fa3f4ab460e8e7ab6d4d3d31e15e72a +Subproject commit 382f7d766dcc2505a2bce2f2144d5f48103dfbd5 From b667078985283380522b6a1b8d6c7709396b635d Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 14 May 2013 12:03:41 +0200 Subject: [PATCH 03/13] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 382f7d766..3f06cd60f 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 382f7d766dcc2505a2bce2f2144d5f48103dfbd5 +Subproject commit 3f06cd60f1864b8c811e0f4e4590991802ce5ea7 From 7354b123c1afe2f7a48fe4ccc7190ff272d3ada9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 14 May 2013 12:13:37 +0200 Subject: [PATCH 04/13] Renamed android libraries to avoid confusion --- build/android/Android-no-neon.mk | 8 ++++++- build/android/Android.mk | 3 +++ .../core/LinphoneCoreFactoryImpl.java | 24 +++++++++---------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/build/android/Android-no-neon.mk b/build/android/Android-no-neon.mk index d8e75ca0b..061a96217 100644 --- a/build/android/Android-no-neon.mk +++ b/build/android/Android-no-neon.mk @@ -35,7 +35,13 @@ endif LOCAL_MODULE := liblinphonenoneon ifeq ($(TARGET_ARCH_ABI),armeabi) -LOCAL_MODULE_FILENAME := liblinphonearmv5 +LOCAL_MODULE_FILENAME := liblinphonearmv5noneon +endif +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) +LOCAL_MODULE_FILENAME := liblinphonearmv7noneon +endif +ifeq ($(TARGET_ARCH_ABI),x86) +LOCAL_MODULE_FILENAME := liblinphonex86noneon endif include $(BUILD_SHARED_LIBRARY) diff --git a/build/android/Android.mk b/build/android/Android.mk index 10fba32dd..0dc0bd041 100755 --- a/build/android/Android.mk +++ b/build/android/Android.mk @@ -34,6 +34,9 @@ LOCAL_SHARED_LIBRARIES += \ endif LOCAL_MODULE := liblinphone +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) +LOCAL_MODULE_FILENAME := liblinphonearmv7 +endif include $(BUILD_SHARED_LIBRARY) diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index 0b799f33e..1d14ceb14 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -71,20 +71,20 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { loadOptionalLibrary("bcg729"); //Main library - if (!hasNeonInCpuFeatures()) { - try { - if (!isArmv7() && !Version.isX86()) { - System.loadLibrary("linphonearmv5"); - } else { - System.loadLibrary("linphonenoneon"); - } - Log.w("linphone", "No-neon liblinphone loaded"); - } catch (UnsatisfiedLinkError ule) { - Log.w("linphone", "Failed to load no-neon liblinphone, loading neon liblinphone"); - System.loadLibrary("linphone"); + if (isArmv7()) { + if (hasNeonInCpuFeatures()) { + Log.d("linphone", "armv7 liblinphone loaded"); + System.loadLibrary("linphonearmv7"); + } else { + Log.w("linphone", "No-neon armv7 liblinphone loaded"); + System.loadLibrary("linphonearmv7noneon"); } + } else if (Version.isX86()) { + Log.d("linphone", "No-neon x86 liblinphone loaded"); + System.loadLibrary("linphonex86noneon"); } else { - System.loadLibrary("linphone"); + Log.d("linphone", "No-neon armv5 liblinphone loaded"); + System.loadLibrary("linphonearmv5noneon"); } Version.dumpCapabilities(); From 5149fe14f02a971943ecaa74e56c09da32578cb7 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 15 May 2013 10:46:15 +0200 Subject: [PATCH 05/13] Remove core argument in upnp_available in jni --- coreapi/linphonecore_jni.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 02ac62c7a..5619993ab 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2491,7 +2491,7 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_getConfig(JNIEnv *env, } extern "C" jboolean Java_org_linphone_core_LinphoneCoreImpl_upnpAvailable(JNIEnv *env, jobject thiz, jlong lc) { - return (jboolean) linphone_core_upnp_available((LinphoneCore *)lc); + return (jboolean) linphone_core_upnp_available(); } extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getUpnpState(JNIEnv *env, jobject thiz, jlong lc) { From 05f3feddeb898d46ffecd15366ac8d386f5ffc1c Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 15 May 2013 10:50:30 +0200 Subject: [PATCH 06/13] Renamed liblinphonex86noneon to liblinphonex86 --- build/android/Android-no-neon.mk | 2 +- java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/android/Android-no-neon.mk b/build/android/Android-no-neon.mk index 061a96217..39818fbf4 100644 --- a/build/android/Android-no-neon.mk +++ b/build/android/Android-no-neon.mk @@ -41,7 +41,7 @@ ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) LOCAL_MODULE_FILENAME := liblinphonearmv7noneon endif ifeq ($(TARGET_ARCH_ABI),x86) -LOCAL_MODULE_FILENAME := liblinphonex86noneon +LOCAL_MODULE_FILENAME := liblinphonex86 endif include $(BUILD_SHARED_LIBRARY) diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index 1d14ceb14..8cedba445 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -81,7 +81,7 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { } } else if (Version.isX86()) { Log.d("linphone", "No-neon x86 liblinphone loaded"); - System.loadLibrary("linphonex86noneon"); + System.loadLibrary("linphonex86"); } else { Log.d("linphone", "No-neon armv5 liblinphone loaded"); System.loadLibrary("linphonearmv5noneon"); From 3dcb6fd44b4f2b79a2848a35915e6c785d641277 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 15 May 2013 14:30:41 +0200 Subject: [PATCH 07/13] improve notifications of incoming chat messages - star appears even if already in the good chat tab - contact with active chats are displayed first in the friend list - activate icon pumping on Mac OS --- gtk/chat.c | 28 ++++++++++------------------ gtk/friendlist.c | 8 ++++++++ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 2cba0754f..a58f443d6 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -66,6 +66,7 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) { g_return_if_fail(w!=NULL); gtk_notebook_remove_page(GTK_NOTEBOOK(nb),gtk_notebook_page_num(GTK_NOTEBOOK(nb),w)); + linphone_chat_room_mark_as_read(cr); linphone_gtk_friend_list_update_chat_picture(); g_object_set_data(G_OBJECT(friendlist),"chatview",NULL); from=g_object_get_data(G_OBJECT(w),"from_message"); @@ -364,7 +365,6 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres colorb.blue = 61952; with_str=linphone_address_as_string_uri_only(with); - linphone_chat_room_mark_as_read(cr); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW(text),FALSE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text),FALSE); @@ -404,8 +404,9 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres } LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){ - LinphoneChatRoom *cr=linphone_core_create_chat_room(linphone_gtk_get_core(),linphone_address_as_string(with)); - if (!cr) return NULL; + char *tmp=linphone_address_as_string(with); + LinphoneChatRoom *cr=linphone_core_create_chat_room(linphone_gtk_get_core(),tmp); + ms_free(tmp); return cr; } @@ -424,7 +425,6 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, GtkTextIter end; GtkTextBuffer *text_buffer; - linphone_chat_room_mark_as_read(cr); text_buffer=gtk_text_view_get_buffer(text_view); gtk_text_buffer_get_bounds(text_buffer, &start, &end); gtk_text_buffer_delete (text_buffer, &start, &end); @@ -434,6 +434,8 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, messages=linphone_chat_room_get_history(cr,NB_MSG_HIST); g_object_set_data(G_OBJECT(chat_view),"from_message",g_strdup(uri_str)); display_history_message(chat_view,messages,uri); + gtk_text_buffer_get_end_iter(text_buffer,&end); + gtk_text_view_scroll_to_iter(text_view,&end,0,FALSE,1.0,0); } ms_free(from_str); ms_free(uri_str); @@ -445,11 +447,6 @@ void linphone_gtk_chat_destroyed(GtkWidget *w){ linphone_chat_room_destroy(cr); } -void linphone_gtk_chat_close(GtkWidget *button){ - GtkWidget *w=gtk_widget_get_toplevel(button); - gtk_widget_destroy(w); -} - void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg ) { @@ -457,7 +454,7 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, GtkWidget *friendlist=linphone_gtk_get_widget ( main_window,"contact_list" ); GtkWidget *w; gboolean send=TRUE; - GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" ); + /*GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" );*/ char *from=linphone_address_as_string ( linphone_chat_message_get_from ( msg ) ); w= ( GtkWidget* ) g_object_get_data ( G_OBJECT ( friendlist ),"chatview" ); @@ -481,7 +478,7 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, g_object_set_data ( G_OBJECT ( friendlist ),"from",from ); } -#ifdef HAVE_GTK_OSXs +#ifdef HAVE_GTK_OSX /* Notified when a new message is sent */ linphone_gtk_status_icon_set_blinking ( TRUE ); #else @@ -495,14 +492,9 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, } #endif if ( send ) { - if ( gtk_notebook_get_current_page ( notebook ) !=gtk_notebook_page_num ( notebook,w ) ) { - linphone_gtk_show_friends(); - } else { - linphone_chat_room_mark_as_read ( room ); - } linphone_gtk_push_text ( w,linphone_chat_message_get_from ( msg ), FALSE,room,msg,FALSE ); - } else { - linphone_gtk_show_friends(); } + linphone_gtk_show_friends(); + } diff --git a/gtk/friendlist.c b/gtk/friendlist.c index f7e683f95..12da891f4 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -352,6 +352,7 @@ void linphone_gtk_chat_selected(GtkWidget *item){ } else { linphone_gtk_load_chatroom(cr,uri,page); } + linphone_chat_room_mark_as_read(cr); gtk_notebook_set_current_page(notebook,gtk_notebook_page_num(notebook,page)); linphone_gtk_friend_list_update_chat_picture(); g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry")); @@ -556,6 +557,13 @@ static void on_name_column_clicked(GtkTreeModel *model){ static int get_friend_weight(const LinphoneFriend *lf){ int w=0; + LinphoneCore *lc=linphone_gtk_get_core(); + LinphoneChatRoom *cr=linphone_core_get_chat_room(lc,linphone_friend_get_address(lf)); + + if (cr && linphone_chat_room_get_unread_messages_count(cr)>0){ + w+=2000; + } + switch(linphone_friend_get_status(lf)){ case LinphoneStatusOnline: w+=1000; From 5d1809e46ce22cc116696a2dfeffe077af1b5c8e Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Thu, 16 May 2013 12:25:53 +0200 Subject: [PATCH 08/13] scroll to the end when load chat history --- gtk/chat.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index a58f443d6..13c140615 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -129,6 +129,15 @@ void udpate_tab_chat_header(GtkWidget *chat_view,const LinphoneAddress *uri,Linp gtk_widget_show_all(w); } +static gboolean scroll_to_end(GtkTextView *w){ + GtkTextBuffer *buffer=gtk_text_view_get_buffer(w); + GtkTextIter iter; + gtk_text_buffer_get_end_iter(buffer,&iter); + GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE); + gtk_text_view_scroll_mark_onscreen(w,mark); + return FALSE; +} + void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gboolean me,LinphoneChatRoom *cr,LinphoneChatMessage *msg, gboolean hist){ GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(w,"textview")); @@ -199,8 +208,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, } gtk_text_buffer_get_end_iter(buffer,&iter); gtk_text_buffer_insert(buffer,&iter,"\n",-1); - GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE); - gtk_text_view_scroll_mark_onscreen(text,mark); + g_idle_add((GSourceFunc)scroll_to_end,text); ms_free(from_str); } From 6ff0f4b2324ab937ae5baaa189ae6a01fdce37e1 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Mon, 20 May 2013 12:02:34 +0200 Subject: [PATCH 09/13] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 3f06cd60f..9b3487265 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 3f06cd60f1864b8c811e0f4e4590991802ce5ea7 +Subproject commit 9b3487265555c933375ce932f4e3e6511cf532dd From 65fec32c047f54ccec9e35d9c3e6c14512733029 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Mon, 20 May 2013 12:08:10 +0200 Subject: [PATCH 10/13] Update ms2 --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 9b3487265..c799531d9 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 9b3487265555c933375ce932f4e3e6511cf532dd +Subproject commit c799531d9403c50fb06965a921e1530c814e02a1 From 3b0c5a79b194ba98358986f63a8b0d466d997c12 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 21 May 2013 09:23:38 +0200 Subject: [PATCH 11/13] Update ms2 (ffmpeg version issue) --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index c799531d9..1a69168c1 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit c799531d9403c50fb06965a921e1530c814e02a1 +Subproject commit 1a69168c1f30a7be439606069bd8dc4d5becac02 From a7f011585aeac97bb2299fcc661a16b7c3903ceb Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Tue, 21 May 2013 14:03:27 +0200 Subject: [PATCH 12/13] Update ms2 (ffmpeg) --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 1a69168c1..47483a49a 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 1a69168c1f30a7be439606069bd8dc4d5becac02 +Subproject commit 47483a49a55765197c855eefd29c9d382eaa329a From d474f9dd4c44704f4fb0bc3fe6d0860e0415c1f5 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 21 May 2013 14:02:18 +0200 Subject: [PATCH 13/13] Declare variables at the beginning of code blocks to fix compilation errors. --- coreapi/linphonecall.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index db3190bbb..d5366e5c6 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -84,9 +84,11 @@ static bool_t linphone_call_are_all_streams_encrypted(LinphoneCall *call) { #ifdef VIDEO_ENABLED // If video enabled, check ZRTP encryption in videostream - const LinphoneCallParams *params=linphone_call_get_current_params(call); - if (params->has_video && !call->videostream_encrypted) { - return FALSE; + { + const LinphoneCallParams *params=linphone_call_get_current_params(call); + if (params->has_video && !call->videostream_encrypted) { + return FALSE; + } } #endif @@ -110,9 +112,9 @@ void propagate_encryption_changed(LinphoneCall *call){ #ifdef VIDEO_ENABLED static void linphone_call_videostream_encryption_changed(void *data, bool_t encrypted){ - ms_message("Video stream is %s", encrypted ? "encrypted" : "not encrypted"); - LinphoneCall *call = (LinphoneCall *)data; + + ms_message("Video stream is %s", encrypted ? "encrypted" : "not encrypted"); call->videostream_encrypted=encrypted; propagate_encryption_changed(call); } @@ -135,12 +137,14 @@ static void linphone_call_audiostream_encryption_changed(void *data, bool_t encr #ifdef VIDEO_ENABLED // Enable video encryption - const LinphoneCallParams *params=linphone_call_get_current_params(call); - if (params->has_video) { - ms_message("Trying to enable encryption on video stream"); - OrtpZrtpParams params; - params.zid_file=NULL; //unused - video_stream_enable_zrtp(call->videostream,call->audiostream,¶ms); + { + const LinphoneCallParams *params=linphone_call_get_current_params(call); + if (params->has_video) { + OrtpZrtpParams params; + ms_message("Trying to enable encryption on video stream"); + params.zid_file=NULL; //unused + video_stream_enable_zrtp(call->videostream,call->audiostream,¶ms); + } } #endif } @@ -1627,11 +1631,11 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna const char *rtcp_addr=vstream->rtcp_addr[0]!='\0' ? vstream->rtcp_addr : call->resultdesc->addr; call->video_profile=make_profile(call,call->resultdesc,vstream,&used_pt); if (used_pt!=-1){ - call->current_params.video_codec = rtp_profile_get_payload(call->video_profile, used_pt); VideoStreamDir dir=VideoStreamSendRecv; MSWebCam *cam=lc->video_conf.device; bool_t is_inactive=FALSE; + call->current_params.video_codec = rtp_profile_get_payload(call->video_profile, used_pt); call->current_params.has_video=TRUE; video_stream_enable_adaptive_bitrate_control(call->videostream, @@ -1701,9 +1705,6 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_muted, bool_t send_ringbacktone){ LinphoneCore *lc=call->core; - call->current_params.audio_codec = NULL; - call->current_params.video_codec = NULL; - LinphoneAddress *me=linphone_core_get_primary_contact_parsed(lc); char *cname; bool_t use_arc=linphone_core_adaptive_rate_control_enabled(lc); @@ -1712,6 +1713,9 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut SalProtoRtpAvp,SalVideo); #endif + call->current_params.audio_codec = NULL; + call->current_params.video_codec = NULL; + if ((call->audiostream == NULL) && (call->videostream == NULL)) { ms_fatal("start_media_stream() called without prior init !"); return;