]> sjero.net Git - linphone/commitdiff
Merge remote-tracking branch 'origin/master' into dev_videoios
authorJehan Monnier <jehan.monnier@linphone.org>
Wed, 14 Sep 2011 14:16:44 +0000 (16:16 +0200)
committerJehan Monnier <jehan.monnier@linphone.org>
Wed, 14 Sep 2011 14:16:44 +0000 (16:16 +0200)
Conflicts:
coreapi/Makefile.am
coreapi/linphonecore.c
mediastreamer2

1  2 
configure.ac
coreapi/Makefile.am
coreapi/help/Makefile.am
coreapi/linphonecore.c
mediastreamer2

diff --combined configure.ac
index 77251262df3e410db16bddf75dad51ae9e7c7066,5fe32ef33749bfb48803e49b16cae3162c9b43a9..298c7986d10928545df5c3eb36833ecce3e7e4ae
@@@ -1,6 -1,6 +1,6 @@@
  dnl Process this file with autoconf to produce a configure script.
  
- AC_INIT([linphone],[3.4.3],[linphone-developers@nongnu.org])
+ AC_INIT([linphone],[3.4.99.1],[linphone-developers@nongnu.org])
  AC_CANONICAL_SYSTEM
  AC_CONFIG_SRCDIR([coreapi/linphonecore.c])
  
@@@ -41,8 -41,10 +41,10 @@@ AC_C_INLIN
  AM_PROG_CC_STDC
  AC_HEADER_STDC
  AM_PROG_CC_C_O
+ AC_CHECK_PROGS(MD5SUM,[md5sum md5])
+ AM_CONDITIONAL(HAVE_MD5SUM,test -n $MD5SUM)
  
 -case $target_os in
 +case $target in
        *mingw32ce)
                CFLAGS="$CFLAGS -D_WIN32_WCE -DORTP_STATIC -D_WIN32_WINNT=0x0501"
                CXXFLAGS="$CXXFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
                CONSOLE_FLAGS="-mconsole"
                mingw_found=yes
        ;;
 -      *darwin*)
 +       armv6-apple-darwin|armv7-apple-darwin|i386-apple-darwin)
 +                CFLAGS="$CFLAGS -DTARGET_OS_IPHONE "
 +                build_tests=no
 +                ios_found=yes
 +        ;;
 +        x86_64-apple-darwin*|i686-apple-darwin*)
 +                MSPLUGINS_CFLAGS=""
                dnl use macport installation
                ACLOCAL_MACOS_FLAGS="-I /opt/local/share/aclocal"
                build_macos=yes
 -      ;;
 +        ;;
 +
  esac
  
  AC_SUBST(ACLOCAL_MACOS_FLAGS)
@@@ -79,7 -74,6 +81,7 @@@ AC_SUBST(GUI_FLAGS
  dnl localization tools
  IT_PROG_INTLTOOL([0.40], [no-xml])
  
 +AM_CONDITIONAL(BUILD_TESTS,test x$build_tests != xno)
  dnl Initialize libtool
  LT_INIT([win32-dll shared disable-static])
  
@@@ -178,7 -172,7 +180,7 @@@ AC_ARG_ENABLE(relativeprefix
          yes) relativeprefix=yes ;;
          no)  relativeprefix=no ;;
          *) AC_MSG_ERROR(bad value ${enableval} for --enable-relativeprefix) ;;
-       esac],[relativeprefix=auto])
+       esac],[relativeprefix=guess])
  
  AC_ARG_ENABLE(date,
        [  --enable-date    Use build date in internal version number],
@@@ -245,17 -239,10 +247,10 @@@ els
        package_prefix=${prefix}
  fi
  
- if test "$relativeprefix" = "auto" ; then
-       case $target_os in
-               *darwin*)
-               if test "$enable_x11" = "false" ; then
-                       relativeprefix=yes
-               fi
-               ;;
-               *mingw*)
-               relativeprefix=yes
-               ;;
-       esac
+ if test "$relativeprefix" = "guess" ; then
+       if test "$mingw_found" = "yes" ; then
+               relativeprefix="yes"
+       fi
  fi
  
  if test "$relativeprefix" = "yes" ; then
@@@ -480,6 -467,15 +475,15 @@@ AC_SUBST(ORTP_LIBS
  AC_SUBST([ORTP_VERSION])
  AC_SUBST([ORTP_DIR])
  
+ AC_ARG_ENABLE(tests_enabled,
+       [  --disable-tests    Disable compilation of tests],
+       [case "${enableval}" in
+         yes) tests_enabled=true ;;
+         no)  tests_enabled=false ;;
+         *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
+       esac],[tests_enabled=false])
+ AM_CONDITIONAL(ENABLE_TESTS, test x$tests_enabled = xyes)
  dnl ##################################################
  dnl # Check for doxygen
  dnl ##################################################
diff --combined coreapi/Makefile.am
index 0801eebd760c8f5f2637a25eef412b757181b2ff,6ea151e0ab4ca032443cc3c0ee8310cc1f9be1e7..a5d5e8be413d793200bc69aec36df7196c52d1cc
@@@ -49,7 -49,8 +49,7 @@@ liblinphone_la_LIBADD= 
  if BUILD_WIN32
  liblinphone_la_LIBADD+=$(top_builddir)/oRTP/src/libortp.la
  endif
 -
 -if ENABLE_TESTS
 +if BUILD_TESTS
  noinst_PROGRAMS=test_lsd test_ecc
  
  test_lsd_SOURCES=test_lsd.c
@@@ -59,9 -60,9 +59,9 @@@ test_lsd_LDADD=liblinphone.la $(liblinp
  test_ecc_SOURCES=test_ecc.c
  
  test_ecc_LDADD=liblinphone.la $(liblinphone_la_LIBADD)
  endif
  
  AM_CFLAGS=$(STRICT_OPTIONS)  -DIN_LINPHONE \
        $(ORTP_CFLAGS) \
        $(OSIP_CFLAGS) \
diff --combined coreapi/help/Makefile.am
index 7f8ea0aa76160663cb77c270e5900e01cf6858b4,6690fd4a6379842cb90d456afd77afdccf3cd940..a68ab2f19c7cfe0b28d899ad56b42a31ff7bb3bc
@@@ -32,8 -32,9 +32,9 @@@ endi
  clean-local:
        rm -rf doc
  
+ if ENABLE_TESTS
  #tutorials
 -
 +if BUILD_TESTS
  noinst_PROGRAMS=helloworld registration buddy_status chatroom
  
  helloworld_SOURCES=helloworld.c
@@@ -57,8 -58,9 +58,9 @@@ chatroom_SOURCES=chatroom.
  LINPHONE_TUTOS+=$(chatroom_SOURCES)
  
  chatroom_LDADD=$(helloworld_LDADD)
+ endif
                                                                                                
 -                              
 +endif                 
  
  INCLUDES=-I$(top_srcdir)/coreapi \
                $(MEDIASTREAMER_CFLAGS)
diff --combined coreapi/linphonecore.c
index 116fc4dffce25dd339683ced8ad09d3cce61c7bf,6abe85101f78764649486fa5f69d8ab4d16d7aa8..e442f0126b9e3754e897aeb4ddc8cb506a58672c
@@@ -633,17 -633,18 +633,18 @@@ static bool_t get_codec(LpConfig *confi
        return TRUE;
  }
  
+ #define RANK_END 10000
  static const char *codec_pref_order[]={
        "speex",
+       "iLBC",
+       "amr",
        "gsm",
        "pcmu",
        "pcma",
+       "VP8-DRAFT-0-3-2",
        "H264",
        "MP4V-ES",
-       "theora",
        "H263-1998",
-       "H263",
-       "x-snow",
        NULL,
  };
  
@@@ -651,9 -652,9 +652,9 @@@ static int find_codec_rank(const char *
        int i;
        for(i=0;codec_pref_order[i]!=NULL;++i){
                if (strcasecmp(codec_pref_order[i],mime)==0)
-                       break;
+                       return i;
        }
-       return i;
+       return RANK_END;
  }
  
  static int codec_compare(const PayloadType *a, const PayloadType *b){
@@@ -678,8 -679,8 +679,8 @@@ static MSList *add_missing_codecs(SalSt
                        }
                        if (pt && ms_filter_codec_supported(pt->mime_type)){
                                if (ms_list_find(l,pt)==NULL){
-                                       /*do not enable old or experimental codecs by default*/
-                                       if (strcasecmp(pt->mime_type,"H263")!=0 && strcasecmp(pt->mime_type,"x-snow")!=0){
+                                       /*unranked codecs are disabled by default*/
+                                       if (find_codec_rank(pt->mime_type)!=RANK_END){
                                                payload_type_set_flag(pt,PAYLOAD_TYPE_ENABLED);
                                        }
                                        ms_message("Adding new codec %s/%i with fmtp %s",
@@@ -912,22 -913,43 +913,43 @@@ const char * linphone_core_get_version(
        return liblinphone_version;
  }
  
- static MSList *linphone_payload_types=NULL;
- static void linphone_core_assign_payload_type(PayloadType *const_pt, int number, const char *recv_fmtp){
+ static void linphone_core_assign_payload_type(LinphoneCore *lc, PayloadType *const_pt, int number, const char *recv_fmtp){
        PayloadType *pt;
        pt=payload_type_clone(const_pt);
+       if (number==-1){
+               /*look for a free number */
+               MSList *elem;
+               int i;
+               for(i=lc->dyn_pt;i<=127;++i){
+                       bool_t already_assigned=FALSE;
+                       for(elem=lc->payload_types;elem!=NULL;elem=elem->next){
+                               PayloadType *it=(PayloadType*)elem->data;
+                               if (payload_type_get_number(it)==i){
+                                       already_assigned=TRUE;
+                                       break;
+                               }
+                       }
+                       if (!already_assigned){
+                               number=i;
+                               lc->dyn_pt=i+1;
+                               break;
+                       }
+               }
+               if (number==-1){
+                       ms_fatal("FIXME: too many codecs, no more free numbers.");
+               }
+       }
+       ms_message("assigning %s/%i payload type number %i",pt->mime_type,pt->clock_rate,number);
        payload_type_set_number(pt,number);
        if (recv_fmtp!=NULL) payload_type_set_recv_fmtp(pt,recv_fmtp);
        rtp_profile_set_payload(&av_profile,number,pt);
-       linphone_payload_types=ms_list_append(linphone_payload_types,pt);
+       lc->payload_types=ms_list_append(lc->payload_types,pt);
  }
  
- static void linphone_core_free_payload_types(void){
-       ms_list_for_each(linphone_payload_types,(void (*)(void*))payload_type_destroy);
-       ms_list_free(linphone_payload_types);
-       linphone_payload_types=NULL;
+ static void linphone_core_free_payload_types(LinphoneCore *lc){
+       ms_list_for_each(lc->payload_types,(void (*)(void*))payload_type_destroy);
+       ms_list_free(lc->payload_types);
+       lc->payload_types=NULL;
  }
  
  void linphone_core_set_state(LinphoneCore *lc, LinphoneGlobalState gstate, const char *message){
@@@ -952,17 -974,14 +974,14 @@@ static void linphone_core_init (Linphon
  
        linphone_core_set_state(lc,LinphoneGlobalStartup,"Starting up");
        ortp_init();
-       linphone_core_assign_payload_type(&payload_type_pcmu8000,0,NULL);
-       linphone_core_assign_payload_type(&payload_type_gsm,3,NULL);
-       linphone_core_assign_payload_type(&payload_type_pcma8000,8,NULL);
-       linphone_core_assign_payload_type(&payload_type_g722,9,NULL);
-       linphone_core_assign_payload_type(&payload_type_lpc1015,115,NULL);
-       linphone_core_assign_payload_type(&payload_type_speex_nb,110,"vbr=on");
-       linphone_core_assign_payload_type(&payload_type_speex_wb,111,"vbr=on");
-       linphone_core_assign_payload_type(&payload_type_speex_uwb,112,"vbr=on");
-       linphone_core_assign_payload_type(&payload_type_telephone_event,101,"0-11");
-       linphone_core_assign_payload_type(&payload_type_ilbc,113,"mode=30");
-       linphone_core_assign_payload_type(&payload_type_amr,114,"octet-align=1");
+       lc->dyn_pt=96;
+       linphone_core_assign_payload_type(lc,&payload_type_pcmu8000,0,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_gsm,3,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_pcma8000,8,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_speex_nb,110,"vbr=on");
+       linphone_core_assign_payload_type(lc,&payload_type_speex_wb,111,"vbr=on");
+       linphone_core_assign_payload_type(lc,&payload_type_speex_uwb,112,"vbr=on");
+       linphone_core_assign_payload_type(lc,&payload_type_telephone_event,101,"0-11");
  
  #if defined(ANDROID) || defined (__IPHONE_OS_VERSION_MIN_REQUIRED)
        /*shorten the DNS lookup time and send more retransmissions on mobiles:
                PayloadType *pt;
                pt=payload_type_clone(&payload_type_gsm);
                pt->clock_rate=11025;
-               rtp_profile_set_payload(&av_profile,114,pt);
-               linphone_payload_types=ms_list_append(linphone_payload_types,pt);
-               pt=payload_type_clone(&payload_type_gsm);
+               linphone_core_assign_payload_type(lc,pt,-1,NULL);
                pt->clock_rate=22050;
-               rtp_profile_set_payload(&av_profile,115,pt);
-               linphone_payload_types=ms_list_append(linphone_payload_types,pt);
+               linphone_core_assign_payload_type(lc,pt,-1,NULL);
+               payload_type_destroy(pt);
        }
  #endif
  
  #ifdef VIDEO_ENABLED
-       linphone_core_assign_payload_type(&payload_type_h263,34,NULL);
-       linphone_core_assign_payload_type(&payload_type_theora,97,NULL);
-       linphone_core_assign_payload_type(&payload_type_h263_1998,98,"CIF=1;QCIF=1");
-       linphone_core_assign_payload_type(&payload_type_mp4v,99,"profile-level-id=3");
-       linphone_core_assign_payload_type(&payload_type_x_snow,100,NULL);
-       linphone_core_assign_payload_type(&payload_type_h264,102,"profile-level-id=428014");
-       linphone_core_assign_payload_type(&payload_type_vp8,103,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_h263,34,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_theora,97,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_h263_1998,98,"CIF=1;QCIF=1");
+       linphone_core_assign_payload_type(lc,&payload_type_mp4v,99,"profile-level-id=3");
+       linphone_core_assign_payload_type(lc,&payload_type_h264,102,"profile-level-id=428014");
+       linphone_core_assign_payload_type(lc,&payload_type_vp8,103,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_x_snow,-1,NULL);
        /* due to limited space in SDP, we have to disable this h264 line which is normally no more necessary */
-       /* linphone_core_assign_payload_type(&payload_type_h264,103,"packetization-mode=1;profile-level-id=428014");*/
+       /* linphone_core_assign_payload_type(&payload_type_h264,-1,"packetization-mode=1;profile-level-id=428014");*/
  #endif
  
+       /*add all payload type for which we don't care about the number */
+       linphone_core_assign_payload_type(lc,&payload_type_ilbc,-1,"mode=30");
+       linphone_core_assign_payload_type(lc,&payload_type_amr,-1,"octet-align=1");
+       linphone_core_assign_payload_type(lc,&payload_type_lpc1015,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_g726_16,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_g726_24,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_g726_32,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_g726_40,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_16,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_24,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_32,-1,NULL);
+       linphone_core_assign_payload_type(lc,&payload_type_aal2_g726_40,-1,NULL);
        ms_init();
        /* create a mediastreamer2 event queue and set it as global */
        /* This allows to run event's callback in linphone_core_iterate() */
@@@ -1659,7 -1689,8 +1689,8 @@@ void linphone_core_iterate(LinphoneCor
                        if (lc->ecc->cb)
                                lc->ecc->cb(lc,ecs,lc->ecc->delay,lc->ecc->cb_data);
                        if (ecs==LinphoneEcCalibratorDone){
-                               lp_config_set_int(lc->config, "sound", "ec_delay",MAX(lc->ecc->delay-10,0));
+                               int len=lp_config_get_int(lc->config,"sound","ec_tail_len",0);
+                               lp_config_set_int(lc->config, "sound", "ec_delay",MAX(lc->ecc->delay-(len/2),0));
                        }
                        ec_calibrator_destroy(lc->ecc);
                        lc->ecc=NULL;
@@@ -2199,8 -2230,6 +2230,8 @@@ int linphone_core_update_call(LinphoneC
  #ifdef VIDEO_ENABLED
                if (call->videostream!=NULL){
                        video_stream_set_sent_video_size(call->videostream,linphone_core_get_preferred_video_size(lc));
 +                      if (call->camera_active)
 +                              call->videostream->cam=lc->video_conf.device; /*to take into account eventual cam changes*/
                        video_stream_update_video_params (call->videostream);
                }
  #endif
@@@ -3450,13 -3479,7 +3481,13 @@@ unsigned long linphone_core_get_native_
   * If not set the core will create its own window.
  **/
  void linphone_core_set_native_preview_window_id(LinphoneCore *lc, unsigned long id){
 +#ifdef VIDEO_ENABLED
        lc->preview_window_id=id;
 +      LinphoneCall *call=linphone_core_get_current_call(lc);
 +      if (call!=NULL && call->videostream){
 +              video_stream_set_native_preview_window_id(call->videostream,id);
 +      }
 +#endif
  }
  
  /**
@@@ -3966,7 -3989,7 +3997,7 @@@ static void linphone_core_uninit(Linpho
        ms_list_for_each(lc->call_logs,(void (*)(void*))linphone_call_log_destroy);
        lc->call_logs=ms_list_free(lc->call_logs);
  
-       linphone_core_free_payload_types();
+       linphone_core_free_payload_types(lc);
        ortp_exit();
        linphone_core_set_state(lc,LinphoneGlobalOff,"Off");
  }
diff --combined mediastreamer2
index 96417301a643aedd56a7760f0036415ee5d2aa45,a82dcdbf8a4e8364bdcaa6f6fb88ca087f48a780..021c5cd8cca603c6e905ec6688a4deefa995358c
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 96417301a643aedd56a7760f0036415ee5d2aa45
 -Subproject commit a82dcdbf8a4e8364bdcaa6f6fb88ca087f48a780
++Subproject commit 021c5cd8cca603c6e905ec6688a4deefa995358c