Thread: [Opalvoip-svn] SF.net SVN: opalvoip: [18724] opal/trunk
Brought to you by:
csoutheren,
rjongbloed
From: <cso...@us...> - 2007-10-22 07:57:07
|
Revision: 18724 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18724&view=rev Author: csoutheren Date: 2007-10-22 00:57:05 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Update for new pwlib version number Modified Paths: -------------- opal/trunk/configure opal/trunk/configure.ac Modified: opal/trunk/configure =================================================================== --- opal/trunk/configure 2007-10-22 07:25:19 UTC (rev 18723) +++ opal/trunk/configure 2007-10-22 07:57:05 UTC (rev 18724) @@ -1,55 +1,26 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61. +# Generated by GNU Autoconf 2.59. # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh +# Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix fi +DUALCASE=1; export DUALCASE # for MKS sh - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset @@ -58,43 +29,8 @@ fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - # Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done +$as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' @@ -108,19 +44,18 @@ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + $as_unset $as_var fi done # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then +if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -128,388 +63,157 @@ # Name of the executable. -as_me=`$as_basename -- "$0" || +as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` -# CDPATH. -$as_unset CDPATH +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh fi - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - case $as_dir in + for as_base in sh bash ksh sh5; do + case $as_dir in /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( + if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell aut...@gn... about your system, - echo including any error possibly output before this - echo message -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop - s/-\n.*// + s,-$,, + s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && - chmod +x "$as_me.lineno" || + chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno # Exit status is that of the last command. exit } -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then +if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null +rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: @@ -518,28 +222,7 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -548,27 +231,39 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" -exec 7<&0 </dev/null 6>&1 +# CDPATH. +$as_unset CDPATH + # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` +exec 6>&1 + # # Initializations. # ac_default_prefix=/usr/local -ac_clean_files= ac_config_libobj_dir=. -LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= @@ -580,140 +275,43 @@ # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> -#ifdef HAVE_SYS_TYPES_H +#if HAVE_SYS_TYPES_H # include <sys/types.h> #endif -#ifdef HAVE_SYS_STAT_H +#if HAVE_SYS_STAT_H # include <sys/stat.h> #endif -#ifdef STDC_HEADERS +#if STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else -# ifdef HAVE_STDLIB_H +# if HAVE_STDLIB_H # include <stdlib.h> # endif #endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif -#ifdef HAVE_STRINGS_H +#if HAVE_STRINGS_H # include <strings.h> #endif -#ifdef HAVE_INTTYPES_H +#if HAVE_INTTYPES_H # include <inttypes.h> +#else +# if HAVE_STDINT_H +# include <stdint.h> +# endif #endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H +#if HAVE_UNISTD_H # include <unistd.h> #endif" -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -CXX -CXXFLAGS -ac_ct_CXX -OPALDIR -INSTALLPREFIX -LIBDIR -OPAL_VERSION -BUILD_TYPE -PTLIB_CONFIG -PWLIBDIR -GCC_HAS_CLZ -CPP -GREP -EGREP -SIZE16 -SIZE32 -OPAL_SYSTEM_SPEEX -OPAL_HAVE_SPEEX_SPEEX_H -OPAL_AUDIO -HAS_LIBDL -OPAL_VIDEO -OPAL_SIP -OPAL_H323 -OPAL_IAX2 -OPAL_H224 -OPAL_T38FAX -OPAL_H450 -OPAL_H460 -OPAL_LID -OPAL_IVR -OPAL_RFC4175 -OPAL_ZRTP -HAS_LIBZRTP -OPAL_SRTP -HAS_LIBSRTP -STDCCFLAGS -ENDLDLIBS -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -subdirs -LIBOBJS -LTLIBOBJS' +ac_subdirs_all="$ac_subdirs_all plugins" +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX OPALDIR INSTALLPREFIX LIBDIR OPAL_VERSION BUILD_TYPE PTLIB_CONFIG PWLIBDIR GCC_HAS_CLZ CPP EGREP SIZE16 SIZE32 OPAL_SYSTEM_SPEEX OPAL_HAVE_SPEEX_SPEEX_H OPAL_AUDIO HAS_LIBDL OPAL_VIDEO OPAL_SIP OPAL_H323 OPAL_IAX2 OPAL_H224 OPAL_T38FAX OPAL_H450 OPAL_H460 OPAL_LID OPAL_IVR OPAL_RFC4175 OPAL_ZRTP HAS_LIBZRTP OPAL_SRTP HAS_LIBSRTP STDCCFLAGS ENDLDLIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA subdirs LIBOBJS LTLIBOBJS' ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CXX -CXXFLAGS -CCC -CPP' -ac_subdirs_all='plugins' # Initialize some variables set by options. ac_init_help= @@ -740,48 +338,34 @@ # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' +datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' +infodir='${prefix}/info' +mandir='${prefix}/man' ac_prev= -ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option + eval "$ac_prev=\$ac_option" ac_prev= continue fi - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; + case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; @@ -803,45 +387,33 @@ --config-cache | -C) cache_file=config.cache ;; - -datadir | --datadir | --datadi | --datad) + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) datadir=$ac_optarg ;; - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -868,12 +440,6 @@ -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; @@ -898,16 +464,13 @@ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) @@ -972,16 +535,6 @@ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; @@ -1034,20 +587,24 @@ -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. @@ -1078,7 +635,8 @@ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) @@ -1098,21 +656,29 @@ { (exit 1); exit 1; }; } fi -# Be sure to have absolute directory names. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix do - eval ac_val=\$$ac_var + eval ac_val=$`echo $ac_var` case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } done +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. @@ -1137,76 +703,82 @@ test "$silent" = yes && exec 6>/dev/null -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then + if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. + fi fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CXX_set=${CXX+set} +ac_env_CXX_value=$CXX +ac_cv_env_CXX_set=${CXX+set} +ac_cv_env_CXX_value=$CXX +ac_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_env_CXXFLAGS_value=$CXXFLAGS +ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_cv_env_CXXFLAGS_value=$CXXFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP # # Report the --help message. @@ -1235,6 +807,9 @@ -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] +_ACEOF + + cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] @@ -1252,22 +827,15 @@ --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF @@ -1301,9 +869,8 @@ CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> + CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have + headers in a nonstandard directory <include dir> CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor @@ -1312,86 +879,118 @@ it to find libraries and programs with nonstandard names/locations. _ACEOF -ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. + ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue + test -d $ac_dir || continue ac_builddir=. -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) +if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi case $srcdir in - .) # We are building in place. + .) # No --srcdir option. We are building in place. ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } + fi + cd $ac_popdir done fi -test -n "$ac_init_help" && exit $ac_status +test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -configure -generated by GNU Autoconf 2.61 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF - exit + exit 0 fi -cat >config.log <<_ACEOF +exec 5>config.log +cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.61. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF -exec 5>>config.log { cat <<_ASUNAME ## --------- ## @@ -1410,7 +1009,7 @@ /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` @@ -1424,7 +1023,6 @@ test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done -IFS=$as_save_IFS } >&5 @@ -1446,6 +1044,7 @@ ac_configure_args= ac_configure_args0= ac_configure_args1= +ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do @@ -1456,7 +1055,7 @@ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; - *\'*) + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in @@ -1478,7 +1077,9 @@ -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args '$ac_arg'" + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " ;; esac done @@ -1489,8 +1090,8 @@ # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { @@ -1503,34 +1104,20 @@ _ASBOX echo # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done +{ (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; - esac | - sort -) + esac; +} echo cat <<\_ASBOX @@ -1541,28 +1128,22 @@ echo for ac_var in $ac_subst_vars do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## +## ------------- ## +## Output files. ## +## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi @@ -1574,24 +1155,26 @@ ## ----------- ## _ASBOX echo - cat confdefs.h + sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status -' 0 + ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h # Predefined preprocessor variables. @@ -1622,17 +1205,14 @@ # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi fi -shift -for ac_site_file -do +for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} @@ -1648,8 +1228,8 @@ { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; esac fi else @@ -1661,11 +1241,12 @@ # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 @@ -1690,7 +1271,8 @@ # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -1707,6 +1289,11 @@ { (exit 1); exit 1; }; } fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu @@ -1723,14 +1310,10 @@ -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -1739,8 +1322,8 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1753,34 +1336,32 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1793,51 +1374,36 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi + CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1850,34 +1416,74 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done +done + fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1891,7 +1497,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -1902,7 +1508,6 @@ fi done done -IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. @@ -1920,23 +1525,22 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe + for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1949,38 +1553,36 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cl.exe + for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1993,45 +1595,29 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - test -n "$ac_ct_CC" && break done - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi + CC=$ac_ct_CC fi fi @@ -2044,35 +1630,21 @@ { (exit 1); exit 1; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINEN... [truncated message content] |
From: <rjo...@us...> - 2007-10-22 13:51:10
|
Revision: 18736 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18736&view=rev Author: rjongbloed Date: 2007-10-22 06:51:13 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Many more PWLIBs changed to PTLIBs. Modified Paths: -------------- opal/trunk/Makefile.in opal/trunk/configure opal/trunk/configure.ac opal/trunk/opal_inc.mak.in opal/trunk/samples/simple/simpleDLL_2005.vcproj opal/trunk/samples/simple/simple_2005.vcproj opal/trunk/src/win32/opal_dll_2005.vcproj opal/trunk/src/win32/opal_lib_2005.vcproj Removed Paths: ------------- opal/trunk/opal.dxx Modified: opal/trunk/Makefile.in =================================================================== --- opal/trunk/Makefile.in 2007-10-22 13:24:55 UTC (rev 18735) +++ opal/trunk/Makefile.in 2007-10-22 13:51:13 UTC (rev 18736) @@ -633,7 +633,7 @@ #################################################### -include @PWLIBDIR@/make/common.mak +include @PTLIBDIR@/make/common.mak PROG=opal #################################################### @@ -671,7 +671,7 @@ ifeq ($(P_SHAREDLIB),1) - SYSLIBS += -L$(PW_LIBDIR) -l$(PTLIB_BASE)$(LIB_TYPE) + SYSLIBS += -L$(PT_LIBDIR) -l$(PTLIB_BASE)$(LIB_TYPE) ifeq ($(OSTYPE),beos) # BeOS requires different options when building shared libraries LDSOOPTS = -nostdlib -nostart Modified: opal/trunk/configure =================================================================== --- opal/trunk/configure 2007-10-22 13:24:55 UTC (rev 18735) +++ opal/trunk/configure 2007-10-22 13:51:13 UTC (rev 18736) @@ -310,7 +310,7 @@ #endif" ac_subdirs_all="$ac_subdirs_all plugins" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX OPALDIR INSTALLPREFIX LIBDIR OPAL_VERSION BUILD_TYPE PTLIB_CONFIG PWLIBDIR GCC_HAS_CLZ CPP EGREP SIZE16 SIZE32 OPAL_SYSTEM_SPEEX OPAL_HAVE_SPEEX_SPEEX_H OPAL_AUDIO HAS_LIBDL OPAL_VIDEO OPAL_SIP OPAL_H323 OPAL_IAX2 OPAL_H224 OPAL_T38FAX OPAL_H450 OPAL_H460 OPAL_LID OPAL_IVR OPAL_RFC4175 OPAL_ZRTP HAS_LIBZRTP OPAL_SRTP HAS_LIBSRTP STDCCFLAGS ENDLDLIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA subdirs LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX OPALDIR INSTALLPREFIX LIBDIR OPAL_VERSION PTLIB_CONFIG PTLIBDIR GCC_HAS_CLZ CPP EGREP SIZE16 SIZE32 OPAL_SYSTEM_SPEEX OPAL_HAVE_SPEEX_SPEEX_H OPAL_AUDIO HAS_LIBDL OPAL_VIDEO OPAL_SIP OPAL_H323 OPAL_IAX2 OPAL_H224 OPAL_T38FAX OPAL_H450 OPAL_H460 OPAL_LID OPAL_IVR OPAL_RFC4175 OPAL_ZRTP HAS_LIBZRTP OPAL_SRTP HAS_LIBSRTP STDCCFLAGS ENDLDLIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA subdirs LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -849,7 +849,7 @@ Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-versioncheck disable PWLib version check + --disable-versioncheck disable PTLib version check --enable-localspeex use local version of Speex library rather than system version --disable-audio disable audio codec support --disable-video disable video codec support @@ -2611,9 +2611,9 @@ video=yes rfc4175=yes -REQUIRED_PWLIB_MAJOR=2 -REQUIRED_PWLIB_MINOR=0 -REQUIRED_PWLIB_BUILD=0 +REQUIRED_PTLIB_MAJOR=2 +REQUIRED_PTLIB_MINOR=0 +REQUIRED_PTLIB_BUILD=0 OPALDIR=`pwd` @@ -2663,11 +2663,13 @@ - -if test "${PWLIBDIR:-unset}" != "unset" ; then - as_ac_File=`echo "ac_cv_file_${PWLIBDIR}/version.h" | $as_tr_sh` -echo "$as_me:$LINENO: checking for ${PWLIBDIR}/version.h" >&5 -echo $ECHO_N "checking for ${PWLIBDIR}/version.h... $ECHO_C" >&6 +if test test "${PTLIBDIR:-unset}" = "unset" -a "${PWLIBDIR:-unset}" != "unset" ; then + PTLIBDIR=$PWLIBDIR +fi +if test "${PTLIBDIR:-unset}" != "unset" ; then + as_ac_File=`echo "ac_cv_file_${PTLIBDIR}/version.h" | $as_tr_sh` +echo "$as_me:$LINENO: checking for ${PTLIBDIR}/version.h" >&5 +echo $ECHO_N "checking for ${PTLIBDIR}/version.h... $ECHO_C" >&6 if eval "test \"\${$as_ac_File+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2675,7 +2677,7 @@ { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } -if test -r "${PWLIBDIR}/version.h"; then +if test -r "${PTLIBDIR}/version.h"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" @@ -2689,9 +2691,9 @@ fi if test "${HAS_PTLIB:-unset}" = "unset" ; then - as_ac_File=`echo "ac_cv_file_${OPALDIR}/../pwlib/version.h" | $as_tr_sh` -echo "$as_me:$LINENO: checking for ${OPALDIR}/../pwlib/version.h" >&5 -echo $ECHO_N "checking for ${OPALDIR}/../pwlib/version.h... $ECHO_C" >&6 + as_ac_File=`echo "ac_cv_file_${OPALDIR}/../ptlib/version.h" | $as_tr_sh` +echo "$as_me:$LINENO: checking for ${OPALDIR}/../ptlib/version.h" >&5 +echo $ECHO_N "checking for ${OPALDIR}/../ptlib/version.h... $ECHO_C" >&6 if eval "test \"\${$as_ac_File+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2699,7 +2701,7 @@ { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } -if test -r "${OPALDIR}/../pwlib/version.h"; then +if test -r "${OPALDIR}/../ptlib/version.h"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" @@ -2712,11 +2714,11 @@ fi if test "${HAS_PTLIB:-unset}" != "unset" ; then - PWLIBDIR="${OPALDIR}/../pwlib" + PTLIBDIR="${OPALDIR}/../ptlib" else - as_ac_File=`echo "ac_cv_file_${HOME}/pwlib/include/ptlib.h" | $as_tr_sh` -echo "$as_me:$LINENO: checking for ${HOME}/pwlib/include/ptlib.h" >&5 -echo $ECHO_N "checking for ${HOME}/pwlib/include/ptlib.h... $ECHO_C" >&6 + as_ac_File=`echo "ac_cv_file_${HOME}/ptlib/include/ptlib.h" | $as_tr_sh` +echo "$as_me:$LINENO: checking for ${HOME}/ptlib/include/ptlib.h" >&5 +echo $ECHO_N "checking for ${HOME}/ptlib/include/ptlib.h... $ECHO_C" >&6 if eval "test \"\${$as_ac_File+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2724,7 +2726,7 @@ { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } -if test -r "${HOME}/pwlib/include/ptlib.h"; then +if test -r "${HOME}/ptlib/include/ptlib.h"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" @@ -2737,7 +2739,7 @@ fi if test "${HAS_PTLIB:-unset}" != "unset" ; then - PWLIBDIR="${HOME}/pwlib" + PTLIBDIR="${HOME}/ptlib" else echo "$as_me:$LINENO: checking for /usr/local/include/ptlib.h" >&5 echo $ECHO_N "checking for /usr/local/include/ptlib.h... $ECHO_C" >&6 @@ -2836,7 +2838,7 @@ ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /usr/share/pwlib/make/ +for as_dir in /usr/share/ptlib/make/ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -2933,71 +2935,71 @@ fi if test "${HAS_PTLIB:-unset}" = "unset" ; then - { { echo "$as_me:$LINENO: error: \"Cannot find pwlib - please install or set PWLIBDIR and try again\"" >&5 -echo "$as_me: error: \"Cannot find pwlib - please install or set PWLIBDIR and try again\"" >&2;} + { { echo "$as_me:$LINENO: error: \"Cannot find PTLib - please install or set PTLIBDIR and try again\"" >&5 +echo "$as_me: error: \"Cannot find PTLib - please install or set PTLIBDIR and try again\"" >&2;} { (exit 1); exit 1; }; } fi -if test "${PWLIBDIR:-unset}" = "unset" ; then +if test "${PTLIBDIR:-unset}" = "unset" ; then if test "${PTLIB_CONFIG:-unset}" = "unset" ; then { { echo "$as_me:$LINENO: error: \"Cannot find ptlib-config - please install and try again\"" >&5 echo "$as_me: error: \"Cannot find ptlib-config - please install and try again\"" >&2;} { (exit 1); exit 1; }; } fi - PWLIBDIR=`$PTLIB_CONFIG --prefix` + PTLIBDIR=`$PTLIB_CONFIG --prefix` fi -if test "x$PWLIBDIR" = "x/usr" -o "x$PWLIBDIR" = "x/usr/"; then - PWLIBDIR="/usr/share/pwlib/" +if test "x$PTLIBDIR" = "x/usr" -o "x$PTLIBDIR" = "x/usr/"; then + PTLIBDIR="/usr/share/ptlib/" fi -if test "x$PWLIBDIR" = "x/usr/local" -o "x$PWLIBDIR" = "x/usr/"; then - PWLIBDIR="/usr/local/share/pwlib/" +if test "x$PTLIBDIR" = "x/usr/local" -o "x$PTLIBDIR" = "x/usr/"; then + PTLIBDIR="/usr/local/share/ptlib/" fi -if test "x$PWLIBDIR" = "x${prefix}"; then - PWLIBDIR="${prefix}/share/pwlib/" +if test "x$PTLIBDIR" = "x${prefix}"; then + PTLIBDIR="${prefix}/share/ptlib/" fi -echo "PWLib prefix set to.... $PWLIBDIR" +echo "PTLib prefix set to.... $PTLIBDIR" -if test "${PWLIBDIR:-unset}" = "unset" ; then +if test "${PTLIBDIR:-unset}" = "unset" ; then PWVERSION=`$PTLIB_CONFIG --version` PW_MAJOR_VERSION=`echo $PW_VERSION | cut -d'.' -f1` PW_MINOR_VERSION=`echo $PW_VERSION | cut -d'.' -f2` PW_BUILD_NUMBER=`echo $PW_VERSION | cut -d'.' -f3` else - PW_MAJOR_VERSION=`cat ${PWLIBDIR}/version.h | grep MAJOR_VERSION | cut -f3 -d' '` - PW_MINOR_VERSION=`cat ${PWLIBDIR}/version.h | grep MINOR_VERSION | cut -f3 -d' '` - PW_BUILD_NUMBER=`cat ${PWLIBDIR}/version.h | grep BUILD_NUMBER | cut -f3 -d' '` + PW_MAJOR_VERSION=`cat ${PTLIBDIR}/version.h | grep MAJOR_VERSION | cut -f3 -d' '` + PW_MINOR_VERSION=`cat ${PTLIBDIR}/version.h | grep MINOR_VERSION | cut -f3 -d' '` + PW_BUILD_NUMBER=`cat ${PTLIBDIR}/version.h | grep BUILD_NUMBER | cut -f3 -d' '` PWVERSION="${PW_MAJOR_VERSION}.${PW_MINOR_VERSION}.${PW_BUILD_NUMBER}" fi # Check whether --enable-versioncheck or --disable-versioncheck was given. if test "${enable_versioncheck+set}" = set; then enableval="$enable_versioncheck" - PWLIB_VERSION_CHECK=$enableval + PTLIB_VERSION_CHECK=$enableval fi; -echo "$as_me:$LINENO: checking Checking PWLib version ${PWVERSION}" >&5 -echo $ECHO_N "checking Checking PWLib version ${PWVERSION}... $ECHO_C" >&6 -if test "${PWLIB_VERSION_CHECK}x" = "nox" ; then +echo "$as_me:$LINENO: checking Checking PTLib version ${PWVERSION}" >&5 +echo $ECHO_N "checking Checking PTLib version ${PWVERSION}... $ECHO_C" >&6 +if test "${PTLIB_VERSION_CHECK}x" = "nox" ; then echo "$as_me:$LINENO: result: check disabled" >&5 echo "${ECHO_T}check disabled" >&6 else - if test $PW_MAJOR_VERSION -lt $REQUIRED_PWLIB_MAJOR ; then - { { echo "$as_me:$LINENO: error: Major version less than required $REQUIRED_PWLIB_MAJOR" >&5 -echo "$as_me: error: Major version less than required $REQUIRED_PWLIB_MAJOR" >&2;} + if test $PW_MAJOR_VERSION -lt $REQUIRED_PTLIB_MAJOR ; then + { { echo "$as_me:$LINENO: error: Major version less than required $REQUIRED_PTLIB_MAJOR" >&5 +echo "$as_me: error: Major version less than required $REQUIRED_PTLIB_MAJOR" >&2;} { (exit 1); exit 1; }; } fi - if test $PW_MINOR_VERSION -lt $REQUIRED_PWLIB_MINOR ; then - { { echo "$as_me:$LINENO: error: Minor version less than required $REQUIRED_PWLIB_MINOR" >&5 -echo "$as_me: error: Minor version less than required $REQUIRED_PWLIB_MINOR" >&2;} + if test $PW_MINOR_VERSION -lt $REQUIRED_PTLIB_MINOR ; then + { { echo "$as_me:$LINENO: error: Minor version less than required $REQUIRED_PTLIB_MINOR" >&5 +echo "$as_me: error: Minor version less than required $REQUIRED_PTLIB_MINOR" >&2;} { (exit 1); exit 1; }; } fi - if test $PW_BUILD_NUMBER -lt $REQUIRED_PWLIB_BUILD ; then - { { echo "$as_me:$LINENO: error: Build version less than required $REQUIRED_PWLIB_BUILD" >&5 -echo "$as_me: error: Build version less than required $REQUIRED_PWLIB_BUILD" >&2;} + if test $PW_BUILD_NUMBER -lt $REQUIRED_PTLIB_BUILD ; then + { { echo "$as_me:$LINENO: error: Build version less than required $REQUIRED_PTLIB_BUILD" >&5 +echo "$as_me: error: Build version less than required $REQUIRED_PTLIB_BUILD" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: ok" >&5 @@ -7261,7 +7263,7 @@ s,@OPAL_VERSION@,$OPAL_VERSION,;t t s,@BUILD_TYPE@,$BUILD_TYPE,;t t s,@PTLIB_CONFIG@,$PTLIB_CONFIG,;t t -s,@PWLIBDIR@,$PWLIBDIR,;t t +s,@PTLIBDIR@,$PTLIBDIR,;t t s,@GCC_HAS_CLZ@,$GCC_HAS_CLZ,;t t s,@CPP@,$CPP,;t t s,@EGREP@,$EGREP,;t t Modified: opal/trunk/configure.ac =================================================================== --- opal/trunk/configure.ac 2007-10-22 13:24:55 UTC (rev 18735) +++ opal/trunk/configure.ac 2007-10-22 13:51:13 UTC (rev 18736) @@ -16,9 +16,9 @@ dnl this must be updated for every minor revision, and for dnl builds when and as necessary -REQUIRED_PWLIB_MAJOR=2 -REQUIRED_PWLIB_MINOR=0 -REQUIRED_PWLIB_BUILD=0 +REQUIRED_PTLIB_MAJOR=2 +REQUIRED_PTLIB_MINOR=0 +REQUIRED_PTLIB_BUILD=0 dnl ######################################################################## dnl set the OPAL directory to the current directory @@ -69,20 +69,23 @@ AC_SUBST(BUILD_TYPE) dnl ######################################################################## -dnl look for ptlib, use a preference order of explicit PWLIBDIR, directory +dnl look for ptlib, use a preference order of explicit PTLIBDIR, directory dnl at same level, home directory, /usr/local or /usr. -if test "${PWLIBDIR:-unset}" != "unset" ; then - AC_CHECK_FILE(${PWLIBDIR}/version.h, HAS_PTLIB=1) +if test test "${PTLIBDIR:-unset}" = "unset" -a "${PWLIBDIR:-unset}" != "unset" ; then + PTLIBDIR=$PWLIBDIR fi +if test "${PTLIBDIR:-unset}" != "unset" ; then + AC_CHECK_FILE(${PTLIBDIR}/version.h, HAS_PTLIB=1) +fi if test "${HAS_PTLIB:-unset}" = "unset" ; then - AC_CHECK_FILE(${OPALDIR}/../pwlib/version.h, HAS_PTLIB=1) + AC_CHECK_FILE(${OPALDIR}/../ptlib/version.h, HAS_PTLIB=1) if test "${HAS_PTLIB:-unset}" != "unset" ; then - PWLIBDIR="${OPALDIR}/../pwlib" + PTLIBDIR="${OPALDIR}/../ptlib" else - AC_CHECK_FILE(${HOME}/pwlib/include/ptlib.h, HAS_PTLIB=1) + AC_CHECK_FILE(${HOME}/ptlib/include/ptlib.h, HAS_PTLIB=1) if test "${HAS_PTLIB:-unset}" != "unset" ; then - PWLIBDIR="${HOME}/pwlib" + PTLIBDIR="${HOME}/ptlib" else AC_CHECK_FILE(/usr/local/include/ptlib.h, HAS_PTLIB=1) if test "${HAS_PTLIB:-unset}" != "unset" ; then @@ -90,7 +93,7 @@ else AC_CHECK_FILE(/usr/include/ptlib.h, HAS_PTLIB=1) if test "${HAS_PTLIB:-unset}" != "unset" ; then - AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/share/pwlib/make/) + AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/share/ptlib/make/) else AC_CHECK_FILE(${prefix}/include/ptlib.h, HAS_PTLIB=1) if test "${HAS_PTLIB:-unset}" != "unset" ; then @@ -103,63 +106,63 @@ fi if test "${HAS_PTLIB:-unset}" = "unset" ; then - AC_MSG_ERROR("Cannot find pwlib - please install or set PWLIBDIR and try again") + AC_MSG_ERROR("Cannot find PTLib - please install or set PTLIBDIR and try again") fi -if test "${PWLIBDIR:-unset}" = "unset" ; then +if test "${PTLIBDIR:-unset}" = "unset" ; then if test "${PTLIB_CONFIG:-unset}" = "unset" ; then AC_MSG_ERROR("Cannot find ptlib-config - please install and try again") fi - PWLIBDIR=`$PTLIB_CONFIG --prefix` + PTLIBDIR=`$PTLIB_CONFIG --prefix` fi -if test "x$PWLIBDIR" = "x/usr" -o "x$PWLIBDIR" = "x/usr/"; then - PWLIBDIR="/usr/share/pwlib/" +if test "x$PTLIBDIR" = "x/usr" -o "x$PTLIBDIR" = "x/usr/"; then + PTLIBDIR="/usr/share/ptlib/" fi -if test "x$PWLIBDIR" = "x/usr/local" -o "x$PWLIBDIR" = "x/usr/"; then - PWLIBDIR="/usr/local/share/pwlib/" +if test "x$PTLIBDIR" = "x/usr/local" -o "x$PTLIBDIR" = "x/usr/"; then + PTLIBDIR="/usr/local/share/ptlib/" fi -if test "x$PWLIBDIR" = "x${prefix}"; then - PWLIBDIR="${prefix}/share/pwlib/" +if test "x$PTLIBDIR" = "x${prefix}"; then + PTLIBDIR="${prefix}/share/ptlib/" fi -AC_SUBST(PWLIBDIR) +AC_SUBST(PTLIBDIR) -echo "PWLib prefix set to.... $PWLIBDIR" +echo "PTLib prefix set to.... $PTLIBDIR" -if test "${PWLIBDIR:-unset}" = "unset" ; then +if test "${PTLIBDIR:-unset}" = "unset" ; then PWVERSION=`$PTLIB_CONFIG --version` PW_MAJOR_VERSION=`echo $PW_VERSION | cut -d'.' -f1` PW_MINOR_VERSION=`echo $PW_VERSION | cut -d'.' -f2` PW_BUILD_NUMBER=`echo $PW_VERSION | cut -d'.' -f3` else - PW_MAJOR_VERSION=`cat ${PWLIBDIR}/version.h | grep MAJOR_VERSION | cut -f3 -d' '` - PW_MINOR_VERSION=`cat ${PWLIBDIR}/version.h | grep MINOR_VERSION | cut -f3 -d' '` - PW_BUILD_NUMBER=`cat ${PWLIBDIR}/version.h | grep BUILD_NUMBER | cut -f3 -d' '` + PW_MAJOR_VERSION=`cat ${PTLIBDIR}/version.h | grep MAJOR_VERSION | cut -f3 -d' '` + PW_MINOR_VERSION=`cat ${PTLIBDIR}/version.h | grep MINOR_VERSION | cut -f3 -d' '` + PW_BUILD_NUMBER=`cat ${PTLIBDIR}/version.h | grep BUILD_NUMBER | cut -f3 -d' '` PWVERSION="${PW_MAJOR_VERSION}.${PW_MINOR_VERSION}.${PW_BUILD_NUMBER}" fi AC_ARG_ENABLE(versioncheck, - [ --disable-versioncheck disable PWLib version check], - PWLIB_VERSION_CHECK=$enableval) + [ --disable-versioncheck disable PTLib version check], + PTLIB_VERSION_CHECK=$enableval) -AC_MSG_CHECKING(Checking PWLib version ${PWVERSION}) -if test "${PWLIB_VERSION_CHECK}x" = "nox" ; then +AC_MSG_CHECKING(Checking PTLib version ${PWVERSION}) +if test "${PTLIB_VERSION_CHECK}x" = "nox" ; then AC_MSG_RESULT(check disabled) else - if test $PW_MAJOR_VERSION -lt $REQUIRED_PWLIB_MAJOR ; then - AC_MSG_ERROR(Major version less than required $REQUIRED_PWLIB_MAJOR) + if test $PW_MAJOR_VERSION -lt $REQUIRED_PTLIB_MAJOR ; then + AC_MSG_ERROR(Major version less than required $REQUIRED_PTLIB_MAJOR) fi - if test $PW_MINOR_VERSION -lt $REQUIRED_PWLIB_MINOR ; then - AC_MSG_ERROR(Minor version less than required $REQUIRED_PWLIB_MINOR) + if test $PW_MINOR_VERSION -lt $REQUIRED_PTLIB_MINOR ; then + AC_MSG_ERROR(Minor version less than required $REQUIRED_PTLIB_MINOR) fi - if test $PW_BUILD_NUMBER -lt $REQUIRED_PWLIB_BUILD ; then - AC_MSG_ERROR(Build version less than required $REQUIRED_PWLIB_BUILD) + if test $PW_BUILD_NUMBER -lt $REQUIRED_PTLIB_BUILD ; then + AC_MSG_ERROR(Build version less than required $REQUIRED_PTLIB_BUILD) fi AC_MSG_RESULT(ok) fi -AC_SUBST(PWLIBDIR) +AC_SUBST(PTLIBDIR) dnl ######################################################################## dnl get the gcc version Deleted: opal/trunk/opal.dxx =================================================================== --- opal/trunk/opal.dxx 2007-10-22 13:24:55 UTC (rev 18735) +++ opal/trunk/opal.dxx 2007-10-22 13:51:13 UTC (rev 18736) @@ -1,131 +0,0 @@ -/**@name OPAL - Open Phone Abstraction Library - - This is a Open Source class library for the development of applications - that wish to use multiple protocols, eg H.323 or SIP, for multi-media - communications. - -@memo A Class Libarary implementing several telephony protocols. -@version 1.1beta2 -@author Equivalence Pty. Ltd. -*/ - -// $Log: opal.dxx,v $ -// Revision 2.4 2006/04/08 01:07:08 rjongbloed -// Add some documentation -// -// Revision 2.3 2002/02/11 03:24:17 dereks -// Add SIP to list of include files. -// -// Revision 2.2 2002/02/11 02:27:54 dereks -// Adjust format of CVS logging command. -// -// Revision 2.1 2002/02/11 02:17:21 dereks -// Adjust include file list. -// - -//@{ - -/**@name Introduction -\begin{center} - {\Large{\bf Open Phone Abstraction Library}} -\end{center} - -OPAL is an Open Source class library for the development of applications that -wish to use multiple protocols, eg H.323 or SIP, for multi-media -communications. - -*/ - -/**@name Architecture -<A REF=docs/overview.html>Overview -*/ - - -/**@name Using OPAL -Detailed tutorials will be forthcoming. - -@memo Brief examples. -*/ - -/**@name Class Reference - -@memo Documentation on all classes. - */ - //@{ - //@Include: include/h323/h323.h - //@Include: include/h323/h323ep.h - //@Include: include/h323/h323con.h - //@Include: include/h323/channels.h - //@Include: include/h323/gkclient.h - //@Include: include/h323/gkserver.h - //@Include: include/h323/h225ras.h - //@Include: include/h323/h235auth.h - //@Include: include/h323/h323caps.h - //@Include: include/h323/h323neg.h - //@Include: include/h323/h323pdu.h - //@Include: include/h323/h323rtp.h - //@Include: include/h323/h450pdu.h - //@Include: include/h323/q931.h - //@Include: include/h323/transaddr.h - //@Include: include/codec/allcodecs.h - //@Include: include/codec/g711codec.h - //@Include: include/codec/gsmcodec.h - //@Include: include/codec/h261codec.h - //@Include: include/codec/lpc10codec.h - //@Include: include/codec/mscodecs.h - //@Include: include/codec/rfc2833.h - //@Include: include/lids/QTIoctl.h - //@Include: include/lids/ixjDefs.h - //@Include: include/lids/ixjlid.h - //@Include: include/lids/lid.h - //@Include: include/lids/lidep.h - //@Include: include/lids/vblasterlid.h - //@Include: include/lids/vpbapi.h - //@Include: include/lids/vpblid.h - //@Include: include/opal/connection.h - //@Include: include/opal/call.h - //@Include: include/opal/endpoint.h - //@Include: include/opal/guid.h - //@Include: include/opal/manager.h - //@Include: include/opal/mediafmt.h - //@Include: include/opal/mediastrm.h - //@Include: include/opal/patch.h - //@Include: include/opal/pcss.h - //@Include: include/opal/transcoders.h - //@Include: include/opal/transports.h - //@Include: include/rtp/jitter.h - //@Include: include/rtp/rtp.h - //@Include: include/t120/h323t120.h - //@Include: include/t120/t120proto.h - //@Include: include/t120/x224.h - //@Include: include/t38/h323t38.h - //@Include: include/t38/t38proto.h - //@Include: src/codec/gsm/inc/config.h - //@Include: src/codec/gsm/inc/gsm.h - //@Include: src/codec/gsm/inc/private.h - //@Include: src/codec/gsm/inc/proto.h - //@Include: src/codec/gsm/inc/unproto.h - //@Include: src/codec/vic/bsd-endian.h - //@Include: src/codec/vic/config.h - //@Include: src/codec/vic/crdef.h - //@Include: src/codec/vic/dct.h - //@Include: src/codec/vic/encoder-h261.h - //@Include: src/codec/vic/encoder.h - //@Include: src/codec/vic/grabber.h - //@Include: src/codec/vic/p64-huff.h - //@Include: src/codec/vic/p64.h - //@Include: src/codec/vic/p64encoder.h - //@Include: src/codec/vic/transmitter.h - //@Include: src/codec/vic/vid_coder.h - //@Include: src/codec/vic/videoframe.h - //@Include: src/codec/lpc10/src/f2c.h - //@Include: src/codec/lpc10/bitio.h - //@Include: src/codec/lpc10/lpc10.h - //@Include: include/sip/sdp.h - //@Include: include/sip/sip.h - //@Include: include/sip/sipcon.h - //@Include: include/sip/sipep.h - //@Include: include/sip/sippdu.h - //@} - -//@} Modified: opal/trunk/opal_inc.mak.in =================================================================== --- opal/trunk/opal_inc.mak.in 2007-10-22 13:24:55 UTC (rev 18735) +++ opal/trunk/opal_inc.mak.in 2007-10-22 13:51:13 UTC (rev 18736) @@ -87,17 +87,17 @@ # OPALDIR=@OPALDIR@ -PWLIBDIR=@PWLIBDIR@ +PTLIBDIR=@PTLIBDIR@ LIBDIRS += $(OPALDIR) ifdef LIBRARY_MAKEFILE -include $(PWLIBDIR)/make/unix.mak +include $(PTLIBDIR)/make/unix.mak else ifdef NOTRACE OBJDIR_SUFFIX := n endif -include $(PWLIBDIR)/make/ptlib.mak +include $(PTLIBDIR)/make/ptlib.mak endif OPAL_SRCDIR = $(OPALDIR)/src Modified: opal/trunk/samples/simple/simpleDLL_2005.vcproj =================================================================== --- opal/trunk/samples/simple/simpleDLL_2005.vcproj 2007-10-22 13:24:55 UTC (rev 18735) +++ opal/trunk/samples/simple/simpleDLL_2005.vcproj 2007-10-22 13:51:13 UTC (rev 18736) @@ -1,1090 +1,1090 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="Simple OPAL DLL" - ProjectGUID="{282B78AF-C514-4077-91EB-7E55E198015E}" - RootNamespace="Simple OPAL DLL" - > - <Platforms> - <Platform - Name="Win32" - /> - <Platform - Name="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - /> - <Platform - Name="Windows Mobile 6 Professional SDK (ARMV4I)" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="No Trace|Win32" - OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\NoTrace/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="1" - InlineFunctionExpansion="2" - PreprocessorDefinitions="NDEBUG;_CONSOLE;PTRACING=0;PASN_NOPRINTON;PASN_LEANANDMEAN" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opaln.lib ptlibn.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib;..\..\..\pwlib\lib" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="No Trace|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - OutputDirectory="..\..\bin\$(ProjectName)\wm5\$(ConfigurationName)" - IntermediateDirectory="$(OutDir)" - ConfigurationType="1" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\NoTrace/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - ExecutionBucket="7" - Optimization="1" - InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\include;..\..\..\pwlib\include" - PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;PTRACING=0;PASN_NOPRINTON;PASN_LEANANDMEAN" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opaln.lib ptlibn.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib\wm5;..\..\..\pwlib\lib\wm5" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="9" - TargetMachine="0" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCCodeSignTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - <DeploymentTool - ForceDirty="-1" - RemoteDirectory="" - RegisterOutput="0" - AdditionalFiles="" - /> - <DebuggerTool - /> - </Configuration> - <Configuration - Name="No Trace|Windows Mobile 6 Professional SDK (ARMV4I)" - OutputDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\NoTrace/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - ExecutionBucket="7" - Optimization="1" - InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\include;..\..\..\pwlib\include" - PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;PTRACING=0;PASN_NOPRINTON;PASN_LEANANDMEAN" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opaln.lib ptlibn.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib\wm6;..\..\..\pwlib\lib\wm6" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="9" - TargetMachine="0" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCCodeSignTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - <DeploymentTool - ForceDirty="-1" - RemoteDirectory="" - RegisterOutput="0" - AdditionalFiles="" - /> - <DebuggerTool - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Release/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="2" - PreprocessorDefinitions="NDEBUG;PTRACING" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opal.lib ptlib.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib;..\..\..\pwlib\lib" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - OutputDirectory="..\..\bin\$(ProjectName)\wm5\$(ConfigurationName)" - IntermediateDirectory="$(OutDir)" - ConfigurationType="1" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Release/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - ExecutionBucket="7" - Optimization="2" - InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\include;..\..\..\pwlib\include" - PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;PTRACING=1" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opal.lib ptlib.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib\wm5;..\..\..\pwlib\lib\wm5" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="9" - TargetMachine="0" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCCodeSignTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - <DeploymentTool - ForceDirty="-1" - RemoteDirectory="" - RegisterOutput="0" - AdditionalFiles="" - /> - <DebuggerTool - /> - </Configuration> - <Configuration - Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)" - OutputDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Release/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - ExecutionBucket="7" - Optimization="2" - InlineFunctionExpansion="2" - AdditionalIncludeDirectories="..\..\include;..\..\..\pwlib\include" - PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;XML_STATIC" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opal.lib ptlib.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib\wm6;..\..\..\pwlib\lib\wm6" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="9" - TargetMachine="0" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCCodeSignTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - <DeploymentTool - ForceDirty="-1" - RemoteDirectory="" - RegisterOutput="0" - AdditionalFiles="" - /> - <DebuggerTool - /> - </Configuration> - <Configuration - Name="Debug|Win32" - OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="_DEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Debug/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="_DEBUG;PTRACING" - BasicRuntimeChecks="0" - RuntimeLibrary="3" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opald.lib ptlibd.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="2" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib;..\..\..\pwlib\lib" - GenerateManifest="true" - GenerateDebugInformation="true" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - UseFAT32Workaround="true" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - OutputDirectory="..\..\bin\$(ProjectName)\wm5\$(ConfigurationName)" - IntermediateDirectory="$(OutDir)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="_DEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Debug/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - ExecutionBucket="7" - Optimization="0" - AdditionalIncludeDirectories="..\..\include;..\..\..\pwlib\include" - PreprocessorDefinitions="_DEBUG;DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;XML_STATIC;PTRACING=1" - RuntimeLibrary="3" - TreatWChar_tAsBuiltInType="false" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opald.lib ptlibd.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="2" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib\wm5;..\..\..\pwlib\lib\wm5" - GenerateManifest="true" - GenerateDebugInformation="true" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="9" - TargetMachine="0" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCCodeSignTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - <DeploymentTool - ForceDirty="-1" - RemoteDirectory="" - RegisterOutput="0" - AdditionalFiles="" - /> - <DebuggerTool - /> - </Configuration> - <Configuration - Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)" - OutputDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="_DEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Debug/simple.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - ExecutionBucket="7" - Optimization="0" - AdditionalIncludeDirectories="..\..\include;..\..\..\pwlib\include" - PreprocessorDefinitions="_DEBUG;DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;XML_STATIC;PTRACING=1" - RuntimeLibrary="3" - TreatWChar_tAsBuiltInType="false" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="ptlib.h" - ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" - WarningLevel="4" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG,_AFXDLL" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkLibraryDependencies="false" - AdditionalDependencies="opald.lib ptlibd.lib" - OutputFile="$(OutDir)/simpleOPAL.exe" - LinkIncremental="2" - SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\lib\wm6;..\..\..\pwlib\lib\wm6" - GenerateManifest="true" - GenerateDebugInformation="true" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="9" - TargetMachine="0" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCCodeSignTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - <DeploymentTool - ForceDirty="-1" - RemoteDirectory="" - RegisterOutput="0" - AdditionalFiles="" - /> - <DebuggerTool - /> - </Configuration> - </Configurations> - <References> - <ProjectReference - ReferencedProjectIdentifier="{C7546C76-E010-4105-AEAE-48FCD6C09527}" - RelativePathToProject=".\src\win32\opal_dll_2005.vcproj" - /> - <ProjectReference - ReferencedProjectIdentifier="{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" - RelativePathToProject="..\pwlib\src\ptlib\msos\PTLib_2005.vcproj" - /> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" - > - <File - RelativePath="main.cxx" - > - <FileConfiguration - Name="No Trace|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="1" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="No Trace|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="1" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="No Trace|Windows Mobile 6 Professional SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="1" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - BasicRuntimeChecks="3" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - <File - RelativePath="precompile.cxx" - > - <FileConfiguration - Name="No Trace|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="1" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="No Trace|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="1" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="No Trace|Windows Mobile 6 Professional SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="1" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - BasicRuntimeChecks="3" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - <File - RelativePath="main.h" - > - </File> - <File - RelativePath="version.h" - > - </File> - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="Simple OPAL DLL" + ProjectGUID="{282B78AF-C514-4077-91EB-7E55E198015E}" + RootNamespace="Simple OPAL DLL" + > + <Platforms> + <Platform + Name="Win32" + /> + <Platform + Name="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" + /> + <Platform + Name="Windows Mobile 6 Professional SDK (ARMV4I)" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="No Trace|Win32" + OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\NoTrace/simple.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="1" + InlineFunctionExpansion="2" + PreprocessorDefinitions="NDEBUG;_CONSOLE;PTRACING=0;PASN_NOPRINTON;PASN_LEANANDMEAN" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + RuntimeTypeInfo="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="ptlib.h" + ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" + WarningLevel="4" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG,_AFXDLL" + Culture="3081" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkLibraryDependencies="false" + AdditionalDependencies="opaln.lib ptlibn.lib" + OutputFile="$(OutDir)/simpleOPAL.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="..\..\lib;..\..\..\ptlib\lib" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="No Trace|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" + OutputDirectory="..\..\bin\$(ProjectName)\wm5\$(ConfigurationName)" + IntermediateDirectory="$(OutDir)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\NoTrace/simple.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + ExecutionBucket="7" + Optimization="1" + InlineFunctionExpansion="2" + AdditionalIncludeDirectories="..\..\include;..\..\..\ptlib\include" + PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;PTRACING=0;PASN_NOPRINTON;PASN_LEANANDMEAN" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + TreatWChar_tAsBuiltInType="false" + RuntimeTypeInfo="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="ptlib.h" + ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" + WarningLevel="4" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG,_AFXDLL" + Culture="3081" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkLibraryDependencies="false" + AdditionalDependencies="opaln.lib ptlibn.lib" + OutputFile="$(OutDir)/simpleOPAL.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="..\..\lib\wm5;..\..\..\ptlib\lib\wm5" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" + SubSystem="9" + TargetMachine="0" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCCodeSignTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + <DeploymentTool + ForceDirty="-1" + RemoteDirectory="" + RegisterOutput="0" + AdditionalFiles="" + /> + <DebuggerTool + /> + </Configuration> + <Configuration + Name="No Trace|Windows Mobile 6 Professional SDK (ARMV4I)" + OutputDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" + IntermediateDirectory="..\..\bin\$(ProjectName)\wm6\$(ConfigurationName)" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\NoTrace/simple.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + ExecutionBucket="7" + Optimization="1" + InlineFunctionExpansion="2" + AdditionalIncludeDirectories="..\..\include;..\..\..\ptlib\include" + PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;PTRACING=0;PASN_NOPRINTON;PASN_LEANANDMEAN" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + TreatWChar_tAsBuiltInType="false" + RuntimeTypeInfo="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="ptlib.h" + ProgramDataBaseFileName="$(TargetDir)\$(TargetName).pdb" + WarningLevel="4" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG,_AFXDLL" + Culture="3081" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkLibraryDependencies="false" + AdditionalDependencies="opaln.lib ptlibn.lib" + OutputFile="$(OutDir)/simpleOPAL.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="..\..\lib\wm6;..\..\..\ptlib\lib\wm6" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" + SubSystem="9" + TargetMachine="0" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCCodeSignTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + <DeploymentTool + ForceDirty="-1" + RemoteDirectory="" + RegisterOutput="0" + AdditionalFiles="" + /> + <DebuggerTool + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Release/simple.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunct... [truncated message content] |
From: <cso...@us...> - 2007-10-23 01:40:24
|
Revision: 18747 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18747&view=rev Author: csoutheren Date: 2007-10-22 18:40:28 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied OpenH323 patch 1789256 - Fixed handling of RTP padding. Thanks to Boris Pavacic Applied OpenH323 patch 1799686 - Fixed RTP aggregation handling. Thanks to Simon Zwahlen Applied OpenH323 patch 1800896 - Add SIPEndPoint::GetContactURL override. Thanks to Simon Zwahlen Applied OpenH323 patch 1800899 - Add SIP URL proxy parameter. Thanks to Simon Zwahlen Applied OpenH323 patch 1800937 - Fix media channel after openLogicalChannel reject. Thanks to Simon Zwahlen Applied OpenH323 patch 1800997 - Adde support for SIP asserted identity headers. Thanks to Simon Zwahlen Modified Paths: -------------- opal/trunk/include/rtp/jitter.h opal/trunk/include/rtp/rtp.h opal/trunk/include/sip/sipep.h opal/trunk/include/sip/sippdu.h opal/trunk/src/h323/h323.cxx opal/trunk/src/rtp/jitter.cxx opal/trunk/src/rtp/rtp.cxx opal/trunk/src/sip/handlers.cxx opal/trunk/src/sip/sippdu.cxx Modified: opal/trunk/include/rtp/jitter.h =================================================================== --- opal/trunk/include/rtp/jitter.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/rtp/jitter.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -136,9 +136,6 @@ PCLASSINFO(OpalJitterBuffer, PObject); public: -#if OPAL_RTP_AGGREGATE - friend class RTP_AggregatedHandle; -#endif /**Constructor for this jitter buffer. The size of this buffer can be altered later with the SetDelay method */ OpalJitterBuffer( @@ -149,7 +146,7 @@ ); /**Destructor, which closes this down and deletes the internal list of frames */ - ~OpalJitterBuffer(); + virtual ~OpalJitterBuffer(); /**Report the statistics for this jitter instance */ void PrintOn(ostream & strm ) const; @@ -210,7 +207,7 @@ /**Start jitter thread */ - void Resume(PHandleAggregator * aggregator = NULL); + virtual void Resume(PHandleAggregator * aggregator = NULL); PDECLARE_NOTIFIER(PThread, OpalJitterBuffer, JitterThreadMain); @@ -262,8 +259,6 @@ PThread * jitterThread; PINDEX jitterStackSize; - RTP_AggregatedHandle * aggregratedHandle; - BOOL Init(Entry * & currentReadFrame, BOOL & markerWarning); BOOL PreRead(Entry * & currentReadFrame, BOOL & markerWarning); BOOL OnRead(Entry * & currentReadFrame, BOOL & markerWarning, BOOL loop); @@ -278,6 +273,9 @@ PCLASSINFO(RTP_JitterBuffer, OpalJitterBuffer); public: +#if OPAL_RTP_AGGREGATE + friend class RTP_AggregatedHandle; +#endif RTP_JitterBuffer( RTP_Session & session, ///< Associated RTP session tor ead data from unsigned minJitterDelay, ///< Minimum delay in RTP timestamp units @@ -285,8 +283,8 @@ unsigned timeUnits = 8, ///< Time units, usually 8 or 16 PINDEX stackSize = 30000 ///< Stack size for jitter thread ); + virtual ~RTP_JitterBuffer(); - /**This class instance collects data from the outside world in this method. @@ -296,9 +294,14 @@ BOOL loop ///< If TRUE, loop as long as data is available, if FALSE, only process once ) ; + /**Start jitter thread + */ + virtual void Resume(PHandleAggregator * aggregator = NULL); + protected: /**This class extracts data from the outside world by reading from this session variable */ RTP_Session & session; + RTP_AggregatedHandle * aggregatedHandle; }; Modified: opal/trunk/include/rtp/rtp.h =================================================================== --- opal/trunk/include/rtp/rtp.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/rtp/rtp.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -443,6 +443,11 @@ BOOL GetMarker() const { return (theArray[1]&0x80) != 0; } void SetMarker(BOOL m); + BOOL GetPadding() const; + void SetPadding(BOOL v); + + unsigned GetPaddingSize() const; + PayloadTypes GetPayloadType() const { return (PayloadTypes)(theArray[1]&0x7f); } void SetPayloadType(PayloadTypes t); Modified: opal/trunk/include/sip/sipep.h =================================================================== --- opal/trunk/include/sip/sipep.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/sip/sipep.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -953,7 +953,7 @@ * If the transport is not running, the first listener transport * will be used, if any. */ - SIPURL GetLocalURL( + virtual SIPURL GetLocalURL( const OpalTransport & transport, ///< Transport on which we can receive new requests const PString & userName = PString::Empty() ///< The user name part of the contact field ); Modified: opal/trunk/include/sip/sippdu.h =================================================================== --- opal/trunk/include/sip/sippdu.h 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/include/sip/sippdu.h 2007-10-23 01:40:28 UTC (rev 18747) @@ -392,6 +392,12 @@ PString GetFrom() const; void SetFrom(const PString & v); + PString GetPAssertedIdentity() const; + void SetPAssertedIdentity(const PString & v); + + PString GetPPreferredIdentity() const; + void SetPPreferredIdentity(const PString & v); + PString GetAccept() const; void SetAccept(const PString & v); Modified: opal/trunk/src/h323/h323.cxx =================================================================== --- opal/trunk/src/h323/h323.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/h323/h323.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -4072,6 +4072,15 @@ } if (!fromRemote) { + // close the source media stream so it will be re-established + OpalMediaStream* stream = NULL; + stream = conflictingChannel.GetMediaStream(); + if (stream != NULL) { + OpalMediaPatch * patch = stream->GetPatch(); + if (patch != NULL) + patch->GetSource().Close(); + } + conflictingChannel.Close(); H323Capability * capability = remoteCapabilities.FindCapability(channel->GetCapability()); if (capability == NULL) { Modified: opal/trunk/src/rtp/jitter.cxx =================================================================== --- opal/trunk/src/rtp/jitter.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/rtp/jitter.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -385,10 +385,6 @@ #else analyser = NULL; #endif - -#if OPAL_RTP_AGGREGATE - aggregratedHandle = NULL; -#endif } @@ -396,24 +392,13 @@ { shuttingDown = TRUE; -#if OPAL_RTP_AGGREGATE - if (jitterThread == NULL) { - if (aggregatedHandle != NULL) { - aggregratedHandle->Remove(); - delete aggregratedHandle; - aggregratedHandle = NULL; - } - } else -#endif - { - if (jitterThread != NULL) { - PTRACE(3, "RTP\tRemoving jitter buffer " << this << ' ' << jitterThread->GetThreadName()); - PAssert(jitterThread->WaitForTermination(10000), "Jitter buffer thread did not terminate"); - delete jitterThread; - jitterThread = NULL; - } else { - PTRACE(1, "RTP\tJitter buffer thread is null, when the OpalJitterBuffer destructor runs"); - } + if (jitterThread != NULL) { + PTRACE(3, "RTP\tRemoving jitter buffer " << this << ' ' << jitterThread->GetThreadName()); + PAssert(jitterThread->WaitForTermination(10000), "Jitter buffer thread did not terminate"); + delete jitterThread; + jitterThread = NULL; + } else { + PTRACE(1, "RTP\tJitter buffer thread is null, when the OpalJitterBuffer destructor runs"); } bufferMutex.Wait(); @@ -510,21 +495,8 @@ bufferMutex.Signal(); } -void OpalJitterBuffer::Resume(PHandleAggregator * -#if OPAL_RTP_AGGREGATE - aggregator -#endif - ) +void OpalJitterBuffer::Resume(PHandleAggregator * /*aggregator */) { -#if OPAL_RTP_AGGREGATE - // if we are aggregating RTP threads, add the socket to the RTP aggregator - if (aggregator != NULL) { - aggregratedHandle = new RTP_AggregatedHandle(aggregator, *this); - aggregator->AddHandle(aggregratedHandle); - return; - } -#endif - // otherwise create a seperate thread as per the old design jitterThread = PThread::Create(PCREATE_NOTIFIER(JitterThreadMain), 0, PThread::NoAutoDeleteThread, PThread::HighestPriority, "RTP Jitter:%x", jitterStackSize); jitterThread->Resume(); @@ -1019,10 +991,24 @@ PINDEX stackSize) : OpalJitterBuffer(minJitterDelay, maxJitterDelay, time, stackSize), session(sess) +#if OPAL_RTP_AGGREGATE + , aggregatedHandle(NULL) +#endif { PTRACE(6, "RTP_JitterBuffer\tConstructor" << *this); } +RTP_JitterBuffer::~RTP_JitterBuffer() +{ +#if OPAL_RTP_AGGREGATE + if (aggregatedHandle != NULL) { + aggregatedHandle->Remove(); + delete aggregatedHandle; + aggregatedHandle = NULL; + } +#endif +} + BOOL RTP_JitterBuffer::OnReadPacket(RTP_DataFrame & frame, BOOL loop) { @@ -1031,8 +1017,22 @@ return success; } +void RTP_JitterBuffer::Resume(PHandleAggregator * aggregator) +{ +#if OPAL_RTP_AGGREGATE + // if we are aggregating RTP threads, add the socket to the RTP aggregator + if (aggregator != NULL) { + aggregatedHandle = new RTP_AggregatedHandle(aggregator, *this); + aggregator->AddHandle(aggregatedHandle); + return; + } +#endif + OpalJitterBuffer::Resume(aggregator); +} + + ///////////////////////////////////////////////////////////////////////////// Modified: opal/trunk/src/rtp/rtp.cxx =================================================================== --- opal/trunk/src/rtp/rtp.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/rtp/rtp.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -765,6 +765,12 @@ strm << hex << setfill('0') << PBYTEArray(GetPayloadPtr(), GetPayloadSize(), false) << setfill(' ') << dec; } +unsigned RTP_DataFrame::GetPaddingSize() const +{ + if (!GetPadding()) + return 0; + return theArray[payloadSize-1]; +} #if PTRACING static const char * const PayloadTypesNames[RTP_DataFrame::LastKnownPayloadType] = { Modified: opal/trunk/src/sip/handlers.cxx =================================================================== --- opal/trunk/src/sip/handlers.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/sip/handlers.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -115,12 +115,24 @@ targetAddress.Parse(to); remotePartyAddress = targetAddress.AsQuotedString(); - transport = endpoint.CreateTransport(targetAddress.GetHostAddress()); - authenticationAttempts = 0; - const SIPURL & proxy = endpoint.GetProxy(); + // Look for a "proxy" parameter to override default proxy + const PStringToString& params = targetAddress.GetParamVars(); + SIPURL proxy; + if (params.Contains("proxy")) { + proxy.Parse(params("proxy")); + targetAddress.SetParamVar("proxy", PString::Empty()); + } + if (proxy.IsEmpty()) + proxy = endpoint.GetProxy(); + + if (!proxy.IsEmpty()) + transport = endpoint.CreateTransport(proxy.GetHostAddress()); + else + transport = endpoint.CreateTransport(targetAddress.GetHostAddress()); + // Default routeSet if there is a proxy if (!proxy.IsEmpty() && routeSet.GetSize() == 0) routeSet += "sip:" + proxy.GetHostName() + ':' + PString(proxy.GetPort()) + ";lr"; Modified: opal/trunk/src/sip/sippdu.cxx =================================================================== --- opal/trunk/src/sip/sippdu.cxx 2007-10-23 01:10:01 UTC (rev 18746) +++ opal/trunk/src/sip/sippdu.cxx 2007-10-23 01:40:28 UTC (rev 18747) @@ -985,7 +985,26 @@ SetAt(compactForm ? "f" : "From", v); } +PString SIPMIMEInfo::GetPAssertedIdentity() const +{ + return (*this)["P-Asserted-Identity"]; +} +void SIPMIMEInfo::SetPAssertedIdentity(const PString & v) +{ + SetAt("P-Asserted-Identity", v); +} + +PString SIPMIMEInfo::GetPPreferredIdentity() const +{ + return (*this)["P-Preferred-Identity"]; +} + +void SIPMIMEInfo::SetPPreferredIdentity(const PString & v) +{ + SetAt("P-Preferred-Identity", v); +} + PString SIPMIMEInfo::GetCallID() const { return GetFullOrCompact("Call-ID", 'i'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 05:36:37
|
Revision: 18751 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18751&view=rev Author: rjongbloed Date: 2007-10-22 22:36:42 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Applied patch 1532406 Binding based on remote address interface selection. Thanks Drazen Dimoti (jimbosimo) Modified Paths: -------------- opal/trunk/include/opal/transports.h opal/trunk/src/opal/transports.cxx Modified: opal/trunk/include/opal/transports.h =================================================================== --- opal/trunk/include/opal/transports.h 2007-10-23 05:10:09 UTC (rev 18750) +++ opal/trunk/include/opal/transports.h 2007-10-23 05:36:42 UTC (rev 18751) @@ -242,6 +242,7 @@ FullTSAP, Streamed, Datagram, + RouteInterface, NumBindOptions }; @@ -269,6 +270,10 @@ binding is made. This is equivalent to translating the address to "tcp$*:0" so that only the overall protocol type is used. + With RouteInterface, the address is considered a remote address and the + created transport is bound only to the address associated with the + interface that would be used to get to that address. + Also note that if the address has a trailing '+' character then the socket will be bound using the REUSEADDR option, where relevant. */ Modified: opal/trunk/src/opal/transports.cxx =================================================================== --- opal/trunk/src/opal/transports.cxx 2007-10-23 05:10:09 UTC (rev 18750) +++ opal/trunk/src/opal/transports.cxx 2007-10-23 05:36:42 UTC (rev 18751) @@ -935,6 +935,14 @@ port = 0; return address.GetIpAddress(ip); + case OpalTransportAddress::RouteInterface : + if (address.GetIpAndPort(ip, port)) + ip = PIPSocket::GetRouteInterfaceAddress(ip); + else + ip = PIPSocket::GetDefaultIpAny(); + port = 0; + return TRUE; + default : port = endpoint.GetDefaultSignalPort(); return address.GetIpAndPort(ip, port); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-10-23 13:15:08
|
Revision: 18758 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18758&view=rev Author: rjongbloed Date: 2007-10-23 06:15:10 -0700 (Tue, 23 Oct 2007) Log Message: ----------- Implemented revised version of OpenH323 patch 1801159 Q.931 support for multiple occurences of same IE type Thanks to Simon Zwahlen - zwahlsim Modified Paths: -------------- opal/trunk/include/h323/q931.h opal/trunk/src/h323/q931.cxx Modified: opal/trunk/include/h323/q931.h =================================================================== --- opal/trunk/include/h323/q931.h 2007-10-23 07:29:26 UTC (rev 18757) +++ opal/trunk/include/h323/q931.h 2007-10-23 13:15:10 UTC (rev 18758) @@ -332,8 +332,15 @@ friend ostream & operator<<(ostream & strm, InformationElementCodes ie); BOOL HasIE(InformationElementCodes ie) const; - PBYTEArray GetIE(InformationElementCodes ie) const; - void SetIE(InformationElementCodes ie, const PBYTEArray & userData); + PBYTEArray GetIE( + InformationElementCodes ie, + PINDEX idx = 0 // Index of duplicate IE entry + ) const; + void SetIE( + InformationElementCodes ie, + const PBYTEArray & userData, + BOOL append = FALSE + ); void RemoveIE(InformationElementCodes ie); enum InformationTransferCapability { @@ -605,7 +612,8 @@ unsigned protocolDiscriminator; MsgTypes messageType; - PDICTIONARY(InternalInformationElements, POrdinalKey, PBYTEArray); + PARRAY(InternalInformationElement, PBYTEArray); + PDICTIONARY(InternalInformationElements, POrdinalKey, InternalInformationElement); InternalInformationElements informationElements; }; Modified: opal/trunk/src/h323/q931.cxx =================================================================== --- opal/trunk/src/h323/q931.cxx 2007-10-23 07:29:26 UTC (rev 18757) +++ opal/trunk/src/h323/q931.cxx 2007-10-23 13:15:10 UTC (rev 18758) @@ -379,11 +379,9 @@ fromDestination = other.fromDestination; protocolDiscriminator = other.protocolDiscriminator; messageType = other.messageType; + informationElements = other.informationElements; + informationElements.MakeUnique(); - informationElements.RemoveAll(); - for (PINDEX i = 0; i < other.informationElements.GetSize(); i++) - informationElements.SetAt(other.informationElements.GetKeyAt(i), new PBYTEArray(other.informationElements.GetDataAt(i))); - return *this; } @@ -533,12 +531,12 @@ PINDEX offset = 5; while (offset < data.GetSize()) { // Get field discriminator - int discriminator = data[offset++]; + InformationElementCodes discriminator = (InformationElementCodes)data[offset++]; - PBYTEArray * item = new PBYTEArray; - // For discriminator with high bit set there is no data - if ((discriminator&0x80) == 0) { + if ((discriminator&0x80) != 0) + SetIE(discriminator, PBYTEArray(), TRUE); + else { int len = data[offset++]; if (discriminator == UserUserIE) { @@ -560,11 +558,10 @@ if (offset + len > data.GetSize()) return FALSE; - memcpy(item->GetPointer(len), (const BYTE *)data+offset, len); + SetIE(discriminator, PBYTEArray((const BYTE *)data+offset, len), TRUE); + offset += len; } - - informationElements.SetAt(discriminator, item); } return TRUE; @@ -577,11 +574,13 @@ unsigned discriminator; for (discriminator = 0; discriminator < 256; discriminator++) { if (informationElements.Contains(discriminator)) { - if (discriminator < 128) - totalBytes += informationElements[discriminator].GetSize() + - (discriminator != UserUserIE ? 2 : 4); - else - totalBytes++; + const InternalInformationElement & element = informationElements[discriminator]; + for (PINDEX idx = 0; idx < element.GetSize(); idx++) { + if (discriminator < 128) + totalBytes += element[idx].GetSize() + (discriminator != UserUserIE ? 2 : 4); + else + totalBytes++; + } } } @@ -604,28 +603,31 @@ PINDEX offset = 5; for (discriminator = 0; discriminator < 256; discriminator++) { if (informationElements.Contains(discriminator)) { - if (discriminator < 128) { - int len = informationElements[discriminator].GetSize(); + const InternalInformationElement & element = informationElements[discriminator]; + for (PINDEX i = 0; i < element.GetSize(); i++) { + if (discriminator < 128) { + int len = element[i].GetSize(); - if (discriminator != UserUserIE) { - data[offset++] = (BYTE)discriminator; - data[offset++] = (BYTE)len; + if (discriminator != UserUserIE) { + data[offset++] = (BYTE)discriminator; + data[offset++] = (BYTE)len; + } + else { + len++; // Allow for protocol discriminator + data[offset++] = (BYTE)discriminator; + data[offset++] = (BYTE)(len >> 8); + data[offset++] = (BYTE)len; + len--; // Then put the length back again + // We shall assume that the user-user field is an ITU protocol block (5) + data[offset++] = 5; + } + + memcpy(&data[offset], (const BYTE *)element[i], len); + offset += len; } - else { - len++; // Allow for protocol discriminator + else data[offset++] = (BYTE)discriminator; - data[offset++] = (BYTE)(len >> 8); - data[offset++] = (BYTE)len; - len--; // Then put the length back again - // We shall assume that the user-user field is an ITU protocol block (5) - data[offset++] = 5; - } - - memcpy(&data[offset], (const BYTE *)informationElements[discriminator], len); - offset += len; } - else - data[offset++] = (BYTE)discriminator; } } @@ -646,28 +648,31 @@ for (unsigned discriminator = 0; discriminator < 256; discriminator++) { if (informationElements.Contains(discriminator)) { - strm << setw(indent+4) << "IE: " << (InformationElementCodes)discriminator; - if (discriminator == CauseIE) { - if (informationElements[discriminator].GetSize() > 1) - strm << " - " << (CauseValues)(informationElements[discriminator][1]&0x7f); - } - strm << " = {\n" - << hex << setfill('0') << resetiosflags(ios::floatfield) - << setprecision(indent+2) << setw(16); + const InternalInformationElement & element = informationElements[discriminator]; + for (PINDEX idx = 0; idx < element.GetSize(); idx++) { + strm << setw(indent+4) << "IE: " << (InformationElementCodes)discriminator; + if (discriminator == CauseIE) { + if (element[idx].GetSize() > 1) + strm << " - " << (CauseValues)(element[idx][1]&0x7f); + } + strm << " = {\n" + << hex << setfill('0') << resetiosflags(ios::floatfield) + << setprecision(indent+2) << setw(16); - PBYTEArray value = informationElements[discriminator]; - if (value.GetSize() <= 32 || (flags&ios::floatfield) != ios::fixed) - strm << value; - else { - PBYTEArray truncatedArray(value, 32); - strm << truncatedArray << '\n' - << setfill(' ') - << setw(indent+5) << "..."; + PBYTEArray value = element[idx]; + if (value.GetSize() <= 32 || (flags&ios::floatfield) != ios::fixed) + strm << value; + else { + PBYTEArray truncatedArray(value, 32); + strm << truncatedArray << '\n' + << setfill(' ') + << setw(indent+5) << "..."; + } + + strm << dec << setfill(' ') + << '\n' + << setw(indent+2) << "}\n"; } - - strm << dec << setfill(' ') - << '\n' - << setw(indent+2) << "}\n"; } } @@ -768,18 +773,24 @@ } -PBYTEArray Q931::GetIE(InformationElementCodes ie) const +PBYTEArray Q931::GetIE(InformationElementCodes ie, PINDEX idx) const { if (informationElements.Contains(POrdinalKey(ie))) - return informationElements[ie]; + return informationElements[ie][idx]; return PBYTEArray(); } -void Q931::SetIE(InformationElementCodes ie, const PBYTEArray & userData) +void Q931::SetIE(InformationElementCodes ie, const PBYTEArray & userData, BOOL append) { - informationElements.SetAt(ie, new PBYTEArray(userData)); + if (append && informationElements.Contains(ie)) + informationElements[ie].Append(new PBYTEArray(userData)); + else { + InternalInformationElement * element = new InternalInformationElement; + element->Append(new PBYTEArray(userData)); + informationElements.SetAt(ie, element); + } } void Q931::RemoveIE(InformationElementCodes ie) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-05 01:27:56
|
Revision: 18796 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18796&view=rev Author: rjongbloed Date: 2007-11-04 17:27:39 -0800 (Sun, 04 Nov 2007) Log Message: ----------- Fixed incorrect test for old PWLIBDIR variable, thanks Peter Nixon! Modified Paths: -------------- opal/trunk/configure opal/trunk/configure.ac Modified: opal/trunk/configure =================================================================== --- opal/trunk/configure 2007-11-05 01:22:45 UTC (rev 18795) +++ opal/trunk/configure 2007-11-05 01:27:39 UTC (rev 18796) @@ -3079,7 +3079,7 @@ -if test test "${PTLIBDIR:-unset}" = "unset" -a "${PWLIBDIR:-unset}" != "unset" ; then +if test "${PTLIBDIR:-unset}" = "unset" -a "${PWLIBDIR:-unset}" != "unset" ; then PTLIBDIR=$PWLIBDIR fi if test "${PTLIBDIR:-unset}" != "unset" ; then Modified: opal/trunk/configure.ac =================================================================== --- opal/trunk/configure.ac 2007-11-05 01:22:45 UTC (rev 18795) +++ opal/trunk/configure.ac 2007-11-05 01:27:39 UTC (rev 18796) @@ -72,7 +72,7 @@ dnl look for ptlib, use a preference order of explicit PTLIBDIR, directory dnl at same level, home directory, /usr/local or /usr. -if test test "${PTLIBDIR:-unset}" = "unset" -a "${PWLIBDIR:-unset}" != "unset" ; then +if test "${PTLIBDIR:-unset}" = "unset" -a "${PWLIBDIR:-unset}" != "unset" ; then PTLIBDIR=$PWLIBDIR fi if test "${PTLIBDIR:-unset}" != "unset" ; then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-11-05 08:01:13
|
Revision: 18807 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18807&view=rev Author: csoutheren Date: 2007-11-05 00:01:18 -0800 (Mon, 05 Nov 2007) Log Message: ----------- Backport of fixes for on-the-wire RFC4175 Modified Paths: -------------- opal/trunk/include/codec/rfc4175.h opal/trunk/samples/simple/main.cxx opal/trunk/src/codec/rfc4175.cxx Modified: opal/trunk/include/codec/rfc4175.h =================================================================== --- opal/trunk/include/codec/rfc4175.h 2007-11-05 07:15:57 UTC (rev 18806) +++ opal/trunk/include/codec/rfc4175.h 2007-11-05 08:01:18 UTC (rev 18807) @@ -24,6 +24,10 @@ * Contributor(s): ______________________________________. * * $Log: rfc4175.h,v $ + * Revision 1.6.6.1 2007/10/10 06:54:26 csoutheren + * Updates to RFC4175 to deal with transmission over a wire + * Not finished yet :) + * * Revision 1.6 2007/09/11 15:48:35 csoutheren * Implemented RC4175 RGB * @@ -111,7 +115,7 @@ protected: virtual void StartEncoding(const RTP_DataFrame & input); - virtual void EncodeFrames() = 0; + virtual void EndEncoding() = 0; void EncodeFullFrame(); void EncodeScanLineSegment(PINDEX y, PINDEX offs, PINDEX width); @@ -160,6 +164,8 @@ BOOL first; DWORD lastSequenceNumber; DWORD lastTimeStamp; + BOOL waitingForMarker; + PINDEX packetCount; }; ///////////////////////////////////////////////////////////////////////////// @@ -170,7 +176,7 @@ { PCLASSINFO(Opal_RFC4175YCbCr420_to_YUV420P, OpalRFC4175Decoder); public: - Opal_RFC4175YCbCr420_to_YUV420P() : OpalRFC4175Decoder(OpalYUV420P, OpalRFC4175YCbCr420) { } + Opal_RFC4175YCbCr420_to_YUV420P() : OpalRFC4175Decoder(OpalRFC4175YCbCr420, OpalYUV420P) { } PINDEX GetPgroupSize() const { return 6; } PINDEX GetColsPerPgroup() const { return 2; } PINDEX GetRowsPerPgroup() const { return 2; } @@ -185,7 +191,7 @@ { PCLASSINFO(Opal_YUV420P_to_RFC4175YCbCr420, OpalRFC4175Encoder); public: - Opal_YUV420P_to_RFC4175YCbCr420() : OpalRFC4175Encoder(OpalRFC4175YCbCr420, OpalYUV420P) { } + Opal_YUV420P_to_RFC4175YCbCr420() : OpalRFC4175Encoder(OpalYUV420P, OpalRFC4175YCbCr420) { } PINDEX GetPgroupSize() const { return 6; } PINDEX GetColsPerPgroup() const { return 2; } PINDEX GetRowsPerPgroup() const { return 2; } @@ -194,7 +200,7 @@ PINDEX BytesToPixels(PINDEX bytes) const { return bytes * 8 / 12; } void StartEncoding(const RTP_DataFrame & input); - void EncodeFrames(); + void EndEncoding(); protected: BYTE * srcYPlane; @@ -208,7 +214,7 @@ { PCLASSINFO(Opal_RFC4175RGB_to_RGB24, OpalRFC4175Decoder); public: - Opal_RFC4175RGB_to_RGB24() : OpalRFC4175Decoder(OpalRGB24, OpalRFC4175RGB) { } + Opal_RFC4175RGB_to_RGB24() : OpalRFC4175Decoder(OpalRFC4175RGB, OpalRGB24) { } PINDEX GetPgroupSize() const { return 3; } PINDEX GetColsPerPgroup() const { return 1; } PINDEX GetRowsPerPgroup() const { return 1; } @@ -223,7 +229,7 @@ { PCLASSINFO(Opal_RGB24_to_RFC4175RGB, OpalRFC4175Encoder); public: - Opal_RGB24_to_RFC4175RGB() : OpalRFC4175Encoder(OpalRFC4175RGB, OpalRGB24) { } + Opal_RGB24_to_RFC4175RGB() : OpalRFC4175Encoder(OpalRGB24, OpalRFC4175RGB) { } PINDEX GetPgroupSize() const { return 3; } PINDEX GetColsPerPgroup() const { return 1; } PINDEX GetRowsPerPgroup() const { return 1; } @@ -232,7 +238,7 @@ PINDEX BytesToPixels(PINDEX bytes) const { return bytes / 3; } void StartEncoding(const RTP_DataFrame & input); - void EncodeFrames(); + void EndEncoding(); protected: BYTE * rgbBase; Modified: opal/trunk/samples/simple/main.cxx =================================================================== --- opal/trunk/samples/simple/main.cxx 2007-11-05 07:15:57 UTC (rev 18806) +++ opal/trunk/samples/simple/main.cxx 2007-11-05 08:01:18 UTC (rev 18807) @@ -536,6 +536,7 @@ "-display:" "-displaydriver:" "-video-size:" + "-video-rate:" #endif #if P_EXPAT "V-no-ivr." @@ -584,6 +585,7 @@ " --displaydriver dev : Set the video display driver (if device name is ambiguous).\n" " --video-size size : Set the size of the video for all video formats, use\n" " : \"qcif\", \"cif\", WxH etc\n" + " --video-rate rate : Set the frame rate of video for all video formats\n" "\n" #endif @@ -1204,22 +1206,28 @@ "Available codecs: " << allMediaFormats << setfill(' ') << endl; #if OPAL_VIDEO - if (args.HasOption("video-size")) { - PString sizeStr = args.GetOptionString("video-size"); - unsigned width, height; - if (PVideoFrameInfo::ParseSize(sizeStr, width, height)) { - OpalMediaFormat::GetAllRegisteredMediaFormats(allMediaFormats); - for (PINDEX i = 0; i < allMediaFormats.GetSize(); i++) { - OpalMediaFormat mediaFormat = allMediaFormats[i]; - if (mediaFormat.GetDefaultSessionID() == OpalMediaFormat::DefaultVideoSessionID) { - mediaFormat.SetOptionInteger(OpalVideoFormat::FrameWidthOption(), width); - mediaFormat.SetOptionInteger(OpalVideoFormat::FrameHeightOption(), height); - OpalMediaFormat::SetRegisteredMediaFormat(mediaFormat); + OpalMediaFormat::GetAllRegisteredMediaFormats(allMediaFormats); + for (PINDEX i = 0; i < allMediaFormats.GetSize(); i++) { + OpalMediaFormat mediaFormat = allMediaFormats[i]; + if (mediaFormat.GetDefaultSessionID() == OpalMediaFormat::DefaultVideoSessionID) { + if (args.HasOption("video-size")) { + PString sizeStr = args.GetOptionString("video-size"); + unsigned width, height; + if (PVideoFrameInfo::ParseSize(sizeStr, width, height)) { + mediaFormat.SetOptionInteger(OpalVideoFormat::FrameWidthOption(), width); + mediaFormat.SetOptionInteger(OpalVideoFormat::FrameHeightOption(), height); } + else + cerr << "Unknown video size \"" << sizeStr << '"' << endl; } + + if (args.HasOption("video-rate")) { + unsigned rate = args.GetOptionString("video-rate").AsUnsigned(); + unsigned frameTime = 1000 / rate; + mediaFormat.SetOptionInteger(OpalMediaFormat::FrameTimeOption(), frameTime); + } + OpalMediaFormat::SetRegisteredMediaFormat(mediaFormat); } - else - cerr << "Unknown video size \"" << sizeStr << '"' << endl; } #endif Modified: opal/trunk/src/codec/rfc4175.cxx =================================================================== --- opal/trunk/src/codec/rfc4175.cxx 2007-11-05 07:15:57 UTC (rev 18806) +++ opal/trunk/src/codec/rfc4175.cxx 2007-11-05 08:01:18 UTC (rev 18807) @@ -27,6 +27,10 @@ * Revision 1.12 2007/10/03 04:06:33 csoutheren * Add missing #pragma * + * Revision 1.11.6.1 2007/10/10 06:54:36 csoutheren + * Updates to RFC4175 to deal with transmission over a wire + * Not finished yet :) + * * Revision 1.11 2007/09/12 05:55:35 csoutheren * Fixed SIP fmtp options for rfc 4175 * @@ -190,6 +194,8 @@ BOOL OpalRFC4175Encoder::ConvertFrames(const RTP_DataFrame & input, RTP_DataFrameList & _outputFrames) { + _outputFrames.RemoveAll(); + PAssert(sizeof(ScanLineHeader) == 6, "ScanLineHeader is not packed"); // make sure the incoming frame is big enough for a frame header @@ -226,7 +232,7 @@ EncodeFullFrame(); // grab the actual data - EncodeFrames(); + EndEncoding(); return TRUE; } @@ -257,6 +263,8 @@ // calculate how many pixels we can add PINDEX pixelsToAdd = PMIN((roomLeft - (PINDEX)sizeof(ScanLineHeader)) / GetPgroupSize(), endX - x); + PAssert(pixelsToAdd > 0, "how did we get negative pixels?"); + // populate the scan line table dstScanLineTable->length = (WORD)pixelsToAdd; dstScanLineTable->y = (WORD)y; @@ -294,7 +302,7 @@ void OpalRFC4175Encoder::FinishOutputFrame() { - if (dstFrames->GetSize() != 0 && (dstScanLineCount > 0)) { + if ((dstFrames->GetSize() > 0) && (dstScanLineCount > 0)) { // populate the frame fields RTP_DataFrame & dst = (*dstFrames)[dstFrames->GetSize()-1]; @@ -303,8 +311,9 @@ --dstScanLineTable; dstScanLineTable->offset = (WORD)dstScanLineTable->offset | 0x8000; - // set the timestamp + // set the timestamp and payload type dst.SetTimestamp(srcTimestamp); + dst.SetPayloadType(outputMediaFormat.GetPayloadType()); // set and increment the sequence number dst.SetSequenceNumber((WORD)(extendedSequenceNumber & 0xffff)); @@ -327,12 +336,13 @@ ) : OpalRFC4175Transcoder(inputMediaFormat, outputMediaFormat) { inputFrames.AllowDeleteObjects(); + first = TRUE; + waitingForMarker = FALSE; Initialise(); } OpalRFC4175Decoder::~OpalRFC4175Decoder() { - first = TRUE; } BOOL OpalRFC4175Decoder::Initialise() @@ -343,11 +353,15 @@ inputFrames.RemoveAll(); scanlineCounts.resize(0); + packetCount = 0; + return TRUE; } BOOL OpalRFC4175Decoder::ConvertFrames(const RTP_DataFrame & input, RTP_DataFrameList & output) { + output.RemoveAll(); + PAssert(sizeof(ScanLineHeader) == 6, "ScanLineHeader is not packed"); // do quick sanity check on packet @@ -359,82 +373,93 @@ // get extended sequence number DWORD receivedSeqNo = input.GetSequenceNumber() | ((*(PUInt16b *)input.GetPayloadPtr()) << 16); - BOOL ok = TRUE; - // special handling for first packet if (first) { lastSequenceNumber = receivedSeqNo; lastTimeStamp = input.GetTimestamp(); first = FALSE; } - else { - // if timestamp changed, we lost the marker bit on the previous input frame - // so, flush the output and change to the new timestamp - if ((input.GetTimestamp() != lastTimeStamp) && (inputFrames.GetSize() > 0)) { - PTRACE(2, "RFC4175\tDetected change of timestamp - marker bit lost"); - DecodeFrames(output); + + // if waiting for a marker bit to resync, keep waiting + else if (waitingForMarker) { + if (!input.GetMarker()) { + PTRACE(1,"RFC4175\tignoring frame while waiting for marker bit"); + } else { + PTRACE(1,"RFC4175\tmarker bit received - starting new frame"); + first = TRUE; + lastTimeStamp = input.GetTimestamp(); + lastSequenceNumber = receivedSeqNo; } - lastTimeStamp = input.GetTimestamp(); + return TRUE; + } - // if packet is out of sequence, determine if to ignore packet or accept it and update sequence number - ++lastSequenceNumber; - if (lastSequenceNumber != receivedSeqNo) { - ok = receivedSeqNo > lastSequenceNumber; - if (!ok && ((lastSequenceNumber - receivedSeqNo) > 0xfffffc00)) { - ok = TRUE; - lastSequenceNumber = receivedSeqNo; + else if (!input.GetMarker() && (inputFrames.GetSize() > 0)) { + // if timestamp changed, marker bit lost on previous input frame + DWORD timeStamp = input.GetTimestamp(); + if (timeStamp != lastTimeStamp) { + PTRACE(2, "RFC4175\tDetected change of timestamp (" << lastTimeStamp << " vs " << timeStamp << ") after " << packetCount << " packets - discarding frame"); + lastSequenceNumber = receivedSeqNo; + lastTimeStamp = timeStamp; + Initialise(); + } + + // if sequence number is not sequential, then frame is not complete + else { + ++lastSequenceNumber; + if (lastSequenceNumber != receivedSeqNo) { + PTRACE(2, "RFC4175\tDetected lost frame after " << packetCount << " packets - flushing until next marker bit"); + Initialise(); + waitingForMarker = TRUE; + return TRUE; } - PTRACE(2, "RFC4175\t" << (ok ? "Accepting" : "Ignoring") << " out of order packet"); } } + ++packetCount; + // make a pass through the scan line table and update the overall frame width and height PINDEX lineCount = 0; - if (ok) { - ScanLineHeader * scanLinePtr = (ScanLineHeader *)(input.GetPayloadPtr() + 2); + ScanLineHeader * scanLinePtr = (ScanLineHeader *)(input.GetPayloadPtr() + 2); - BOOL lastLine = FALSE; - while (!lastLine && RFC4175HeaderSize(lineCount+1) < input.GetPayloadSize()) { + BOOL lastLine = FALSE; + while (!lastLine && RFC4175HeaderSize(lineCount+1) < input.GetPayloadSize()) { - // scan line length - PINDEX lineLength = scanLinePtr->length; + // scan line length + PINDEX lineLength = scanLinePtr->length; - // line number - WORD lineNumber = scanLinePtr->y & 0x7fff; + // line number + WORD lineNumber = scanLinePtr->y & 0x7fff; - // pixel offset of scanline start - WORD offset = scanLinePtr->offset; + // pixel offset of scanline start + WORD offset = scanLinePtr->offset; - // detect if last scanline in table - if (offset & 0x8000) { - lastLine = TRUE; - offset &= 0x7fff; - } + // detect if last scanline in table + if (offset & 0x8000) { + lastLine = TRUE; + offset &= 0x7fff; + } - // update frame width and height - PINDEX right = offset + lineLength; - if (right > frameWidth) - frameWidth = right; - PINDEX bottom = lineNumber+2; - if (bottom > frameHeight) - frameHeight = bottom; + // update frame width and height + PINDEX right = offset + lineLength; + if (right > frameWidth) + frameWidth = right; + PINDEX bottom = lineNumber+2; + if (bottom > frameHeight) + frameHeight = bottom; - // count lines - ++lineCount; + // count lines + ++lineCount; - // update scan line pointer - ++scanLinePtr; - } + // update scan line pointer + ++scanLinePtr; } - // add the frame to the input frame list, if OK - if (ok) { - inputFrames.Append(new RTP_DataFrame(input)); - scanlineCounts.push_back(lineCount); - } + // add the frame to the input frame list + inputFrames.Append(new RTP_DataFrame(input)); + scanlineCounts.push_back(lineCount); - // if marker bit not set, keep collecting frames + // if marker set, decode the frames if (input.GetMarker()) DecodeFrames(output); @@ -451,7 +476,7 @@ srcCrPlane = srcCbPlane + (frameWidth * frameHeight / 4); } -void Opal_YUV420P_to_RFC4175YCbCr420::EncodeFrames() +void Opal_YUV420P_to_RFC4175YCbCr420::EndEncoding() { FinishOutputFrame(); @@ -502,12 +527,18 @@ return FALSE; } - PTRACE(4, "RFC4175\tDecoding output from from " << inputFrames.GetSize() << " input frames"); + if (frameHeight != 144 || frameWidth != 176) { + int s = inputFrames.GetSize(); + PTRACE(4, "not right frame " << s); + } + PTRACE(4, "RFC4175\tDecoding output from " << inputFrames.GetSize() << " input frames"); + // allocate destination frame output.Append(new RTP_DataFrame()); RTP_DataFrame & outputFrame = output[output.GetSize()-1]; outputFrame.SetMarker(TRUE); + outputFrame.SetPayloadType(outputMediaFormat.GetPayloadType()); outputFrame.SetPayloadSize(sizeof(PluginCodec_Video_FrameHeader) + PixelsToBytes(frameWidth*frameHeight)); // get pointer to header and payload @@ -584,11 +615,11 @@ rgbBase = input.GetPayloadPtr() + sizeof(PluginCodec_Video_FrameHeader); } -void Opal_RGB24_to_RFC4175RGB::EncodeFrames() +void Opal_RGB24_to_RFC4175RGB::EndEncoding() { FinishOutputFrame(); - PTRACE(4, "RFC4175\tEncoded RGB24 input frame to " << dstFrames->GetSize() << " RFC4175 output frames in RGB format"); + PTRACE(4, "RFC4175\tEncoded RGB24 input frame to " << (dstFrames->GetSize()) << " RFC4175 output frames in RGB format"); PINDEX f, i; for (f = 0; f < dstFrames->GetSize(); ++f) { @@ -624,7 +655,7 @@ return FALSE; } - PTRACE(4, "RFC4175\tDecoding output from from " << inputFrames.GetSize() << " input frames"); + PTRACE(4, "RFC4175\tDecoding output from " << inputFrames.GetSize() << " input frames"); // allocate destination frame output.Append(new RTP_DataFrame()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-06 00:51:01
|
Revision: 18818 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18818&view=rev Author: rjongbloed Date: 2007-11-05 16:51:04 -0800 (Mon, 05 Nov 2007) Log Message: ----------- Cannot use AC_CHECK_FILE when cross compiling, changed to do file tests explicitly. Modified Paths: -------------- opal/trunk/configure opal/trunk/configure.ac Modified: opal/trunk/configure =================================================================== --- opal/trunk/configure 2007-11-05 21:33:17 UTC (rev 18817) +++ opal/trunk/configure 2007-11-06 00:51:04 UTC (rev 18818) @@ -1,55 +1,26 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61. +# Generated by GNU Autoconf 2.59. # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh +# Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix fi +DUALCASE=1; export DUALCASE # for MKS sh - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset @@ -58,43 +29,8 @@ fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - # Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done +$as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' @@ -108,19 +44,18 @@ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + $as_unset $as_var fi done # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then +if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -128,388 +63,157 @@ # Name of the executable. -as_me=`$as_basename -- "$0" || +as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` -# CDPATH. -$as_unset CDPATH +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh fi - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - case $as_dir in + for as_base in sh bash ksh sh5; do + case $as_dir in /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( + if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell aut...@gn... about your system, - echo including any error possibly output before this - echo message -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop - s/-\n.*// + s,-$,, + s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && - chmod +x "$as_me.lineno" || + chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno # Exit status is that of the last command. exit } -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then +if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null +rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: @@ -518,28 +222,7 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -548,27 +231,39 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" -exec 7<&0 </dev/null 6>&1 +# CDPATH. +$as_unset CDPATH + # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` +exec 6>&1 + # # Initializations. # ac_default_prefix=/usr/local -ac_clean_files= ac_config_libobj_dir=. -LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= @@ -580,140 +275,43 @@ # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> -#ifdef HAVE_SYS_TYPES_H +#if HAVE_SYS_TYPES_H # include <sys/types.h> #endif -#ifdef HAVE_SYS_STAT_H +#if HAVE_SYS_STAT_H # include <sys/stat.h> #endif -#ifdef STDC_HEADERS +#if STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else -# ifdef HAVE_STDLIB_H +# if HAVE_STDLIB_H # include <stdlib.h> # endif #endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif -#ifdef HAVE_STRINGS_H +#if HAVE_STRINGS_H # include <strings.h> #endif -#ifdef HAVE_INTTYPES_H +#if HAVE_INTTYPES_H # include <inttypes.h> +#else +# if HAVE_STDINT_H +# include <stdint.h> +# endif #endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H +#if HAVE_UNISTD_H # include <unistd.h> #endif" -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -CXX -CXXFLAGS -ac_ct_CXX -OPALDIR -INSTALLPREFIX -LIBDIR -OPAL_VERSION -BUILD_TYPE -PTLIB_CONFIG -PTLIBDIR -GCC_HAS_CLZ -CPP -GREP -EGREP -SIZE16 -SIZE32 -OPAL_SYSTEM_SPEEX -OPAL_HAVE_SPEEX_SPEEX_H -OPAL_AUDIO -HAS_LIBDL -OPAL_VIDEO -OPAL_SIP -OPAL_H323 -OPAL_IAX2 -OPAL_H224 -OPAL_T38FAX -OPAL_H450 -OPAL_H460 -OPAL_LID -OPAL_IVR -OPAL_RFC4175 -OPAL_ZRTP -HAS_LIBZRTP -OPAL_SRTP -HAS_LIBSRTP -STDCCFLAGS -ENDLDLIBS -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -subdirs -LIBOBJS -LTLIBOBJS' +ac_subdirs_all="$ac_subdirs_all plugins" +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX OPALDIR INSTALLPREFIX LIBDIR OPAL_VERSION BUILD_TYPE PTLIB_CONFIG PTLIBDIR GCC_HAS_CLZ CPP EGREP SIZE16 SIZE32 OPAL_SYSTEM_SPEEX OPAL_HAVE_SPEEX_SPEEX_H OPAL_AUDIO HAS_LIBDL OPAL_VIDEO OPAL_SIP OPAL_H323 OPAL_IAX2 OPAL_H224 OPAL_T38FAX OPAL_H450 OPAL_H460 OPAL_LID OPAL_IVR OPAL_RFC4175 OPAL_ZRTP HAS_LIBZRTP OPAL_SRTP HAS_LIBSRTP STDCCFLAGS ENDLDLIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA subdirs LIBOBJS LTLIBOBJS' ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CXX -CXXFLAGS -CCC -CPP' -ac_subdirs_all='plugins' # Initialize some variables set by options. ac_init_help= @@ -740,48 +338,34 @@ # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' +datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' +infodir='${prefix}/info' +mandir='${prefix}/man' ac_prev= -ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option + eval "$ac_prev=\$ac_option" ac_prev= continue fi - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; + case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; @@ -803,45 +387,33 @@ --config-cache | -C) cache_file=config.cache ;; - -datadir | --datadir | --datadi | --datad) + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) datadir=$ac_optarg ;; - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -868,12 +440,6 @@ -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; @@ -898,16 +464,13 @@ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) @@ -972,16 +535,6 @@ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; @@ -1034,20 +587,24 @@ -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. @@ -1078,7 +635,8 @@ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) @@ -1098,21 +656,29 @@ { (exit 1); exit 1; }; } fi -# Be sure to have absolute directory names. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix do - eval ac_val=\$$ac_var + eval ac_val=$`echo $ac_var` case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } done +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. @@ -1137,76 +703,82 @@ test "$silent" = yes && exec 6>/dev/null -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then + if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. + fi fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CXX_set=${CXX+set} +ac_env_CXX_value=$CXX +ac_cv_env_CXX_set=${CXX+set} +ac_cv_env_CXX_value=$CXX +ac_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_env_CXXFLAGS_value=$CXXFLAGS +ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_cv_env_CXXFLAGS_value=$CXXFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP # # Report the --help message. @@ -1235,6 +807,9 @@ -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] +_ACEOF + + cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] @@ -1252,22 +827,15 @@ --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF @@ -1301,9 +869,8 @@ CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> + CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have + headers in a nonstandard directory <include dir> CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor @@ -1312,86 +879,118 @@ it to find libraries and programs with nonstandard names/locations. _ACEOF -ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. + ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue + test -d $ac_dir || continue ac_builddir=. -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) +if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi case $srcdir in - .) # We are building in place. + .) # No --srcdir option. We are building in place. ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } + fi + cd $ac_popdir done fi -test -n "$ac_init_help" && exit $ac_status +test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -configure -generated by GNU Autoconf 2.61 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF - exit + exit 0 fi -cat >config.log <<_ACEOF +exec 5>config.log +cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.61. Invocation command line was +generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF -exec 5>>config.log { cat <<_ASUNAME ## --------- ## @@ -1410,7 +1009,7 @@ /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` @@ -1424,7 +1023,6 @@ test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done -IFS=$as_save_IFS } >&5 @@ -1446,6 +1044,7 @@ ac_configure_args= ac_configure_args0= ac_configure_args1= +ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do @@ -1456,7 +1055,7 @@ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; - *\'*) + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in @@ -1478,7 +1077,9 @@ -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args '$ac_arg'" + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " ;; esac done @@ -1489,8 +1090,8 @@ # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { @@ -1503,34 +1104,20 @@ _ASBOX echo # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done +{ (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; - esac | - sort -) + esac; +} echo cat <<\_ASBOX @@ -1541,28 +1128,22 @@ echo for ac_var in $ac_subst_vars do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## +## ------------- ## +## Output files. ## +## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi @@ -1574,24 +1155,26 @@ ## ----------- ## _ASBOX echo - cat confdefs.h + sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status -' 0 + ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h # Predefined preprocessor variables. @@ -1622,17 +1205,14 @@ # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi fi -shift -for ac_site_file -do +for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} @@ -1648,8 +1228,8 @@ { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; esac fi else @@ -1661,11 +1241,12 @@ # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 @@ -1690,7 +1271,8 @@ # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -1707,6 +1289,11 @@ { (exit 1); exit 1; }; } fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu @@ -1723,14 +1310,10 @@ -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -1739,8 +1322,8 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1753,34 +1336,32 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1793,51 +1374,36 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi + CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1850,34 +1416,74 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done +done + fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1891,7 +1497,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -1902,7 +1508,6 @@ fi done done -IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. @@ -1920,23 +1525,22 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe + for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1949,38 +1553,36 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cl.exe + for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1993,45 +1595,29 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done -IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - test -n "$ac_ct_CC" && break done - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to aut...@gn...." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi + CC=$ac_ct_CC fi fi @@ -2044,35 +1630,21 @@ { (exit 1); exit 1; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_e... [truncated message content] |
From: <rjo...@us...> - 2007-11-10 02:54:51
|
Revision: 18831 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18831&view=rev Author: rjongbloed Date: 2007-11-09 18:54:20 -0800 (Fri, 09 Nov 2007) Log Message: ----------- Fixed UNICODE support issue where wchar_t is not precisely the same thing as the WORD (aka unsigned short) type previously used in strings. Modified Paths: -------------- opal/trunk/include/asn/gcc.h opal/trunk/include/asn/h225.h opal/trunk/include/asn/h235.h opal/trunk/include/asn/h4508.h opal/trunk/include/asn/h501.h opal/trunk/samples/mfc/mfcDlg.cpp opal/trunk/samples/mfc/mfc_2005.vcproj opal/trunk/samples/simple/simpleDLL_2005.vcproj opal/trunk/samples/simple/simple_2005.vcproj opal/trunk/src/asn/gcc.cxx opal/trunk/src/asn/h225_1.cxx opal/trunk/src/asn/h235.cxx opal/trunk/src/asn/h4508.cxx opal/trunk/src/asn/h501.cxx opal/trunk/src/h323/h235auth.cxx opal/trunk/src/win32/opal_2005.dtf opal/trunk/src/win32/opal_2005_wm.dtf opal/trunk/src/win32/opal_2005_wm6.dtf opal/trunk/src/win32/opal_dll_2005.vcproj opal/trunk/src/win32/opal_lib_2005.vcproj opal/trunk/src/win32/opald_2005.dtf opal/trunk/src/win32/opald_2005_wm.dtf opal/trunk/src/win32/opald_2005_wm6.dtf opal/trunk/src/win32/opaln_2005.dtf opal/trunk/src/win32/opaln_2005_wm.dtf opal/trunk/src/win32/opaln_2005_wm6.dtf Modified: opal/trunk/include/asn/gcc.h =================================================================== --- opal/trunk/include/asn/gcc.h 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/include/asn/gcc.h 2007-11-10 02:54:20 UTC (rev 18831) @@ -271,7 +271,7 @@ GCC_TextString & operator=(const char * v); GCC_TextString & operator=(const PString & v); - GCC_TextString & operator=(const PWORDArray & v); + GCC_TextString & operator=(const PWCharArray & v); GCC_TextString & operator=(const PASN_BMPString & v); PObject * Clone() const; }; @@ -291,7 +291,7 @@ GCC_SimpleTextString & operator=(const char * v); GCC_SimpleTextString & operator=(const PString & v); - GCC_SimpleTextString & operator=(const PWORDArray & v); + GCC_SimpleTextString & operator=(const PWCharArray & v); GCC_SimpleTextString & operator=(const PASN_BMPString & v); PObject * Clone() const; }; @@ -365,7 +365,7 @@ GCC_ExtraDialingString & operator=(const char * v); GCC_ExtraDialingString & operator=(const PString & v); - GCC_ExtraDialingString & operator=(const PWORDArray & v); + GCC_ExtraDialingString & operator=(const PWCharArray & v); GCC_ExtraDialingString & operator=(const PASN_BMPString & v); PObject * Clone() const; }; Modified: opal/trunk/include/asn/h225.h =================================================================== --- opal/trunk/include/asn/h225.h 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/include/asn/h225.h 2007-11-10 02:54:20 UTC (rev 18831) @@ -1184,7 +1184,7 @@ H225_GatekeeperIdentifier & operator=(const char * v); H225_GatekeeperIdentifier & operator=(const PString & v); - H225_GatekeeperIdentifier & operator=(const PWORDArray & v); + H225_GatekeeperIdentifier & operator=(const PWCharArray & v); H225_GatekeeperIdentifier & operator=(const PASN_BMPString & v); PObject * Clone() const; }; @@ -1240,7 +1240,7 @@ H225_EndpointIdentifier & operator=(const char * v); H225_EndpointIdentifier & operator=(const PString & v); - H225_EndpointIdentifier & operator=(const PWORDArray & v); + H225_EndpointIdentifier & operator=(const PWCharArray & v); H225_EndpointIdentifier & operator=(const PASN_BMPString & v); PObject * Clone() const; }; Modified: opal/trunk/include/asn/h235.h =================================================================== --- opal/trunk/include/asn/h235.h 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/include/asn/h235.h 2007-11-10 02:54:20 UTC (rev 18831) @@ -88,7 +88,7 @@ H235_Password & operator=(const char * v); H235_Password & operator=(const PString & v); - H235_Password & operator=(const PWORDArray & v); + H235_Password & operator=(const PWCharArray & v); H235_Password & operator=(const PASN_BMPString & v); PObject * Clone() const; }; @@ -108,7 +108,7 @@ H235_Identifier & operator=(const char * v); H235_Identifier & operator=(const PString & v); - H235_Identifier & operator=(const PWORDArray & v); + H235_Identifier & operator=(const PWCharArray & v); H235_Identifier & operator=(const PASN_BMPString & v); PObject * Clone() const; }; Modified: opal/trunk/include/asn/h4508.h =================================================================== --- opal/trunk/include/asn/h4508.h 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/include/asn/h4508.h 2007-11-10 02:54:20 UTC (rev 18831) @@ -196,7 +196,7 @@ H4508_ExtendedName & operator=(const char * v); H4508_ExtendedName & operator=(const PString & v); - H4508_ExtendedName & operator=(const PWORDArray & v); + H4508_ExtendedName & operator=(const PWCharArray & v); H4508_ExtendedName & operator=(const PASN_BMPString & v); PObject * Clone() const; }; Modified: opal/trunk/include/asn/h501.h =================================================================== --- opal/trunk/include/asn/h501.h 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/include/asn/h501.h 2007-11-10 02:54:20 UTC (rev 18831) @@ -1075,7 +1075,7 @@ H501_ElementIdentifier & operator=(const char * v); H501_ElementIdentifier & operator=(const PString & v); - H501_ElementIdentifier & operator=(const PWORDArray & v); + H501_ElementIdentifier & operator=(const PWCharArray & v); H501_ElementIdentifier & operator=(const PASN_BMPString & v); PObject * Clone() const; }; Modified: opal/trunk/samples/mfc/mfcDlg.cpp =================================================================== --- opal/trunk/samples/mfc/mfcDlg.cpp 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/samples/mfc/mfcDlg.cpp 2007-11-10 02:54:20 UTC (rev 18831) @@ -181,14 +181,15 @@ void CMfcDlg::OnCall() { - m_manager.SetUpCall((const char *)m_destination, "pc:*", m_token); + PString dest((LPCTSTR)m_destination); + m_manager.SetUpCall(dest, "pc:*", m_token); m_call.EnableWindow(FALSE); m_hangup.EnableWindow(); } void CMfcDlg::OnAnswer() { - m_caller.SetWindowText(""); + m_caller.SetWindowText(_T("")); m_answer.EnableWindow(FALSE); m_refuse.EnableWindow(FALSE); m_hangup.EnableWindow(FALSE); @@ -204,7 +205,7 @@ void CMfcDlg::OnRefuse() { - m_caller.SetWindowText(""); + m_caller.SetWindowText(_T("")); m_answer.EnableWindow(FALSE); m_refuse.EnableWindow(FALSE); m_hangup.EnableWindow(FALSE); Modified: opal/trunk/samples/mfc/mfc_2005.vcproj =================================================================== --- opal/trunk/samples/mfc/mfc_2005.vcproj 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/samples/mfc/mfc_2005.vcproj 2007-11-10 02:54:20 UTC (rev 18831) @@ -1,361 +1,362 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="mfc" - ProjectGUID="{F238251D-3CAE-4378-AD4C-F2A1236C3F6B}" - Keyword="MFCProj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="2" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="_DEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Debug/mfc.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="stdafx.h" - PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch" - ProgramDataBaseFileName="$(OutDir)/$(TargetName).pdb" - WarningLevel="3" - SuppressStartupBanner="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="opald.lib ptlibd.lib" - LinkIncremental="2" - SuppressStartupBanner="true" - GenerateDebugInformation="true" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="2" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="true" - SuppressStartupBanner="true" - TargetEnvironment="1" - TypeLibraryName=".\Release/mfc.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="1" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - RuntimeTypeInfo="true" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="stdafx.h" - PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch" - ProgramDataBaseFileName="$(OutDir)/$(TargetName).pdb" - WarningLevel="3" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="3081" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="opal.lib ptlib.lib" - LinkIncremental="1" - SuppressStartupBanner="true" - ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" - SubSystem="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - <ProjectReference - ReferencedProjectIdentifier="{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" - RelativePathToProject="..\pwlib\src\ptlib\msos\PTLib_2005.vcproj" - /> - <ProjectReference - ReferencedProjectIdentifier="{C7546C76-E010-4105-AEAE-48FCD6C09527}" - RelativePathToProject=".\src\win32\opal_dll_2005.vcproj" - /> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" - > - <File - RelativePath="mfc.cpp" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - BasicRuntimeChecks="3" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - <File - RelativePath="mfc.rc" - > - </File> - <File - RelativePath="mfcDlg.cpp" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - BasicRuntimeChecks="3" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - <File - RelativePath="MfcEndPoint.cpp" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - BasicRuntimeChecks="3" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - <File - RelativePath="StdAfx.cpp" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="" - BasicRuntimeChecks="3" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="2" - PreprocessorDefinitions="" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - <File - RelativePath="mfc.h" - > - </File> - <File - RelativePath="mfcDlg.h" - > - </File> - <File - RelativePath="MfcEndPoint.h" - > - </File> - <File - RelativePath="Resource.h" - > - </File> - <File - RelativePath="StdAfx.h" - > - </File> - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - <File - RelativePath="res\mfc.ico" - > - </File> - <File - RelativePath="res\mfc.rc2" - > - </File> - </Filter> - <File - RelativePath="ReadMe.txt" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="mfc" + ProjectGUID="{F238251D-3CAE-4378-AD4C-F2A1236C3F6B}" + Keyword="MFCProj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Debug/mfc.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + TreatWChar_tAsBuiltInType="true" + RuntimeTypeInfo="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch" + ProgramDataBaseFileName="$(OutDir)/$(TargetName).pdb" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="3081" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="opald.lib ptlibd.lib" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" + SubSystem="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + IntermediateDirectory="..\..\bin\$(ProjectName)\$(ConfigurationName)" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Release/mfc.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + RuntimeTypeInfo="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch" + ProgramDataBaseFileName="$(OutDir)/$(TargetName).pdb" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="3081" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="opal.lib ptlib.lib" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile="$(TargetDir)\$(TargetName).pdb" + SubSystem="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + <ProjectReference + ReferencedProjectIdentifier="{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" + RelativePathToProject="..\ptlib\src\ptlib\msos\PTLib_2005.vcproj" + /> + <ProjectReference + ReferencedProjectIdentifier="{C7546C76-E010-4105-AEAE-48FCD6C09527}" + RelativePathToProject=".\src\win32\opal_dll_2005.vcproj" + /> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="mfc.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="mfc.rc" + > + </File> + <File + RelativePath="mfcDlg.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="MfcEndPoint.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="StdAfx.cpp" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="mfc.h" + > + </File> + <File + RelativePath="mfcDlg.h" + > + </File> + <File + RelativePath="MfcEndPoint.h" + > + </File> + <File + RelativePath="Resource.h" + > + </File> + <File + RelativePath="StdAfx.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + <File + RelativePath="res\mfc.ico" + > + </File> + <File + RelativePath="res\mfc.rc2" + > + </File> + </Filter> + <File + RelativePath="ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Modified: opal/trunk/samples/simple/simpleDLL_2005.vcproj =================================================================== --- opal/trunk/samples/simple/simpleDLL_2005.vcproj 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/samples/simple/simpleDLL_2005.vcproj 2007-11-10 02:54:20 UTC (rev 18831) @@ -153,7 +153,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -249,7 +249,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -437,7 +437,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -533,7 +533,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -721,7 +721,7 @@ AdditionalIncludeDirectories="..\..\include;..\..\..\ptlib\include" PreprocessorDefinitions="_DEBUG;DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;XML_STATIC;PTRACING=1" RuntimeLibrary="3" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -816,7 +816,7 @@ AdditionalIncludeDirectories="..\..\include;..\..\..\ptlib\include" PreprocessorDefinitions="_DEBUG;DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;XML_STATIC;PTRACING=1" RuntimeLibrary="3" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" Modified: opal/trunk/samples/simple/simple_2005.vcproj =================================================================== --- opal/trunk/samples/simple/simple_2005.vcproj 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/samples/simple/simple_2005.vcproj 2007-11-10 02:54:20 UTC (rev 18831) @@ -152,7 +152,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -248,7 +248,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -435,7 +435,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -531,7 +531,7 @@ StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -717,7 +717,7 @@ AdditionalIncludeDirectories="..\..\include;..\..\..\ptlib\include" PreprocessorDefinitions="_DEBUG;DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;XML_STATIC;PTRACING=1" RuntimeLibrary="3" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" @@ -813,7 +813,7 @@ AdditionalIncludeDirectories="..\..\include;..\..\..\ptlib\include" PreprocessorDefinitions="_DEBUG;DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;XML_STATIC;PTRACING=1" RuntimeLibrary="3" - TreatWChar_tAsBuiltInType="false" + TreatWChar_tAsBuiltInType="true" RuntimeTypeInfo="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="ptlib.h" Modified: opal/trunk/src/asn/gcc.cxx =================================================================== --- opal/trunk/src/asn/gcc.cxx 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/src/asn/gcc.cxx 2007-11-10 02:54:20 UTC (rev 18831) @@ -556,7 +556,7 @@ } -GCC_TextString & GCC_TextString::operator=(const PWORDArray & v) +GCC_TextString & GCC_TextString::operator=(const PWCharArray & v) { SetValue(v); return *this; @@ -605,7 +605,7 @@ } -GCC_SimpleTextString & GCC_SimpleTextString::operator=(const PWORDArray & v) +GCC_SimpleTextString & GCC_SimpleTextString::operator=(const PWCharArray & v) { SetValue(v); return *this; @@ -759,7 +759,7 @@ } -GCC_ExtraDialingString & GCC_ExtraDialingString::operator=(const PWORDArray & v) +GCC_ExtraDialingString & GCC_ExtraDialingString::operator=(const PWCharArray & v) { SetValue(v); return *this; Modified: opal/trunk/src/asn/h225_1.cxx =================================================================== --- opal/trunk/src/asn/h225_1.cxx 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/src/asn/h225_1.cxx 2007-11-10 02:54:20 UTC (rev 18831) @@ -2761,7 +2761,7 @@ } -H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PWORDArray & v) +H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PWCharArray & v) { SetValue(v); return *this; @@ -2877,7 +2877,7 @@ } -H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PWORDArray & v) +H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PWCharArray & v) { SetValue(v); return *this; Modified: opal/trunk/src/asn/h235.cxx =================================================================== --- opal/trunk/src/asn/h235.cxx 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/src/asn/h235.cxx 2007-11-10 02:54:20 UTC (rev 18831) @@ -169,7 +169,7 @@ } -H235_Password & H235_Password::operator=(const PWORDArray & v) +H235_Password & H235_Password::operator=(const PWCharArray & v) { SetValue(v); return *this; @@ -217,7 +217,7 @@ } -H235_Identifier & H235_Identifier::operator=(const PWORDArray & v) +H235_Identifier & H235_Identifier::operator=(const PWCharArray & v) { SetValue(v); return *this; Modified: opal/trunk/src/asn/h4508.cxx =================================================================== --- opal/trunk/src/asn/h4508.cxx 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/src/asn/h4508.cxx 2007-11-10 02:54:20 UTC (rev 18831) @@ -418,7 +418,7 @@ } -H4508_ExtendedName & H4508_ExtendedName::operator=(const PWORDArray & v) +H4508_ExtendedName & H4508_ExtendedName::operator=(const PWCharArray & v) { SetValue(v); return *this; Modified: opal/trunk/src/asn/h501.cxx =================================================================== --- opal/trunk/src/asn/h501.cxx 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/src/asn/h501.cxx 2007-11-10 02:54:20 UTC (rev 18831) @@ -2475,7 +2475,7 @@ } -H501_ElementIdentifier & H501_ElementIdentifier::operator=(const PWORDArray & v) +H501_ElementIdentifier & H501_ElementIdentifier::operator=(const PWCharArray & v) { SetValue(v); return *this; Modified: opal/trunk/src/h323/h235auth.cxx =================================================================== --- opal/trunk/src/h323/h235auth.cxx 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/src/h323/h235auth.cxx 2007-11-10 02:54:20 UTC (rev 18831) @@ -464,9 +464,9 @@ } -static PWORDArray GetUCS2plusNULL(const PString & str) +static PWCharArray GetUCS2plusNULL(const PString & str) { - PWORDArray ucs2 = str.AsUCS2(); + PWCharArray ucs2 = str.AsUCS2(); PINDEX len = ucs2.GetSize(); if (len > 0 && ucs2[len-1] != 0) ucs2.SetSize(len+1); Modified: opal/trunk/src/win32/opal_2005.dtf =================================================================== --- opal/trunk/src/win32/opal_2005.dtf 2007-11-10 02:50:23 UTC (rev 18830) +++ opal/trunk/src/win32/opal_2005.dtf 2007-11-10 02:54:20 UTC (rev 18831) @@ -1,40932 +1,40945 @@ -LIBRARY opal -EXPORTS - ??$?0U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@U?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@U?$less@U?$pair@VPString@@V1@@std@@@2@V?$allocator@U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@1@@Z @42840 NONAME - ??$?0U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@U?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@U?$less@U?$pair@VPString@@V1@@std@@@2@V?$allocator@U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@1@@Z @42841 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@1@@Z @41852 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@1@@Z @41853 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@1@@Z @41526 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@1@@Z @41527 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40629 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40630 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @39372 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @39373 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40631 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323StaticPluginCodec@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40632 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40633 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalInternalTransport@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40634 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @42842 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalPluginCodecHandler@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @42843 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40635 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VOpalSecurityMode@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@1@@Z @40636 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@@std@@@1@@Z @41854 NONAME - ??$?0U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@@std@@@2@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VStreamFrame@OpalAudioMixerStream@@@std@@@1@@Z @41855 NONAME - ??$?0U?$pair@$$CBW4PayloadTypes@RTP_DataFrame@@W412@@std@@@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@W4PayloadTypes@RTP_DataFrame@@W412@U?$less@W4PayloadTypes@RTP_DataFrame@@@std@@V?$allocator@U?$pair@$$CBW4PayloadTypes@RTP_DataFrame@@W412@@std@@@4@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBW4PayloadTypes@RTP_DataFrame@@W412@@std@@@1@@Z @11 NONAME - ??$?0U?$pair@$$CBW4PayloadTypes@RTP_DataFrame@@W412@@std@@@?$allocator@U_Node@?$_Tree_nod@V?$_Tmap_traits@W4PayloadTypes@RTP_DataFrame@@W412@U?$less@W4PayloadTypes@RTP_DataFrame@@@std@@V?$allocator@U?$pair@$$CBW4PayloadTypes@RTP_DataFrame@@W412@@std@@@4@$0A@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBW4PayloadTypes@RTP_DataFrame@@W412@@std@@@1@@Z @12 NONAME - ??$?0VStreamFrame@OpalAudioMixerStream@@@?$allocator@PAVStreamFrame@OpalAudioMixerStream@@@std@@QAE@ABV?$allocator@VStreamFrame@OpalAudioMixerStream@@@1@@Z @41856 NONAME - ??$?8VPString@@V0@@std@@YA_NABU?$pair@VPString@@V1@@0@0@Z @42844 NONAME - ??$?MVPString@@V0@@std@@YA_NABU?$pair@VPString@@V1@@0@0@Z @42845 NONAME - ??$copy@V?$_Vb_iterator@V?$vector@_NV?$allocator@_N@std@@@std@@@std@@V12@@std@@YA?AV?$_Vb_iterator@V?$vector@_NV?$allocator@_N@std@@@std@@@0@V10@00@Z @40489 NONAME - ??$copy_backward@V?$_Vb_iterator@V?$vector@_NV?$allocator@_N@std@@@std@@@std@@V12@@std@@YA?AV?$_Vb_iterator@V?$vector@_NV?$allocator@_N@std@@@std@@@0@V10@00@Z @40490 NONAME - ??$fill@PAHH@std@@YAXPAH0ABH@Z @42846 NONAME - ??$fill@PAII@std@@YAXPAI0ABI@Z @40491 NONAME - ??$fill@PAU?$pair@VPString@@V1@@std@@U12@@std@@YAXPAU?$pair@VPString@@V1@@0@0ABU10@@Z @42847 NONAME - ??$fill@PAUCapabilityListCreateEntry@OpalPluginCodecManager@@U12@@std@@YAXPAUCapabilityListCreateEntry@OpalPluginCodecManager@@0ABU12@@Z @40217 NONAME - ??$fill@V?$_Vb_iterator@V?$vector@_NV?$allocator@_N@std@@@std@@@std@@_N@std@@YAXV?$_Vb_iterator@V?$vector@_NV?$allocator@_N@std@@@std@@@0@0AB_N@Z @40492 NONAME - ??$find@V?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@std@@YA?AV?$_Vector_iterator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@0@V10@0ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z @40637 NONAME - ??$PAssertCast@$$CBV?$OpalMediaOptionValue@H@@@@YAPBV?$OpalMediaOptionValue@H@@PBV0@PBDH@Z @16 NONAME - ??$PAssertCast@$$CBV?$OpalMediaOptionValue@I@@@@YAPBV?$OpalMediaOptionValue@I@@PBV0@PBDH@Z @42693 NONAME - ??$PAssertCast@$$CBV?$OpalMediaOptionValue@N@@@@YAPBV?$OpalMediaOptionValue@N@@PBV0@PBDH@Z @17 NONAME - ??$PAssertCast@$$CBV?$OpalMediaOptionValue@_N@@@@YAPBV?$OpalMediaOptionValue@_N@@PBV0@PBDH@Z @18 NONAME - ??$PAssertCast@$$CBVOpalMediaCommand@@@@YAPBVOpalMediaCommand@@PBV0@PBDH@Z @19 NONAME - ??$PAssertCast@$$CBVOpalMediaOption@@@@YAPBVOpalMediaOption@@PBV0@PBDH@Z @20 NONAME - ??$PAssertCast@$$CBVOpalMediaOptionEnum@@@@YAPBVOpalMediaOptionEnum@@PBV0@PBDH@Z @21 NONAME - ??$PAssertCast@$$CBVOpalMediaOptionOctets@@@@YAPBVOpalMediaOptionOctets@@PBV0@PBDH@Z @42784 NONAME - ??$PAssertCast@$$CBVOpalMediaOptionString@@@@YAPBVOpalMediaOptionString@@PBV0@PBDH@Z @22 NONAME - ??$PAssertCast@V?$OpalMediaOptionValue@N@@@@YAPAV?$OpalMediaOptionValue@N@@PAV0@PBDH@Z @24 NONAME - ??$PAssertCast@V?$OpalMediaOptionValue@_N@@@@YAPAV?$OpalMediaOptionValue@_N@@PAV0@PBDH@Z @25 NONAME - ??$PAssertCast@VOpalCall@@@@YAPAVOpalCall@@PAV0@PBDH@Z @26 NONAME - ??$PAssertCast@VOpalConnection@@@@YAPAVOpalConnection@@PAV0@PBDH@Z @27 NONAME - ??$PAssertCast@VOpalMediaOptionEnum@@@@YAPAVOpalMediaOptionEnum@@PAV0@PBDH@Z @28 NONAME - ??$PAssertCast@VOpalMediaOptionOctets@@@@YAPAVOpalMediaOptionOctets@@PAV0@PBDH@Z @42785 NONAME - ??$PAssertCast@VOpalMediaOptionString@@@@YAPAVOpalMediaOptionString@@PAV0@PBDH@Z @29 NONAME - ??$PSafePtrCast@VOpalConnection@@VH323Connection@@@@YA?AV?$PSafePtr@VH323Connection@@@@ABV?$PSafePtr@VOpalConnection@@@@@Z @31 NONAME - ??$PSafePtrCast@VOpalConnection@@VIAX2Connection@@@@YA?AV?$PSafePtr@VIAX2Connection@@@@ABV?$PSafePtr@VOpalConnection@@@@@Z @41160 NONAME - ??$PSafePtrCast@VOpalConnection@@VOpalFaxConnection@@@@YA?AV?$PSafePtr@VOpalFaxConnection@@@@ABV?$PSafePtr@VOpalConnection@@@@@Z @41528 NONAME - ??$PSafePtrCast@VOpalConnection@@VOpalLineConnection@@@@YA?AV?$PSafePtr@VOpalLineConnection@@@@ABV?$PSafePtr@VOpalConnection@@@@@Z @33 NONAME - ??$PSafePtrCast@VOpalConnection@@VOpalPCSSConnection@@@@YA?AV?$PSafePtr@VOpalPCSSConnection@@@@ABV?$PSafePtr@VOpalConnection@@@@@Z @34 NONAME - ??$PSafePtrCast@VOpalConnection@@VSIPConnection@@@@YA?AV?$PSafePtr@VSIPConnection@@@@ABV?$PSafePtr@VOpalConnection@@@@@Z @35 NONAME - ??$unchecked_copy@PAHPAH@stdext@@YAPAHPAH00@Z @42848 NONAME - ??$unchecked_copy@PAIPAI@stdext@@YAPAIPAI00@Z @40493 NONAME - ??$unchecked_copy@PAUCapabilityListCreateEntry@OpalPluginCodecManager@@PAU12@@stdext@@YAPAUCapabilityListCreateEntry@OpalPluginCodecManager@@PAU12@00@Z @40218 NONAME - ??$unchecked_fill_n@PAHIH@stdext@@YAXPAHIABH@Z @42849 NONAME - ??$unchecked_fill_n@PAIII@stdext@@YAXPAIIABI@Z @40494 NONAME - ??$unchecked_fill_n@PAPAVStreamFrame@OpalAudioMixerStream@@IPAV12@@stdext@@YAXPAPAVStreamFrame@OpalAudioMixerStream@@IABQAV12@@Z @41857 NONAME - ??$unchecked_uninitialized_copy@PAHPAHV?$allocator@H@std@@@stdext@@YAPAHPAH00AAV?$allocator@H@std@@@Z @42850 NONAME - ??$unchecked_uninitialized_copy@PAIPAIV?$allocator@I@std@@@stdext@@YAPAIPAI00AAV?$allocator@I@std@@@Z @40495 NONAME - ??$unchecked_uninitialized_copy@PAPAVStreamFrame@OpalAudioMixerStream@@PAPAV12@V?$allocator@PAVStreamFrame@OpalAudioMixerStream@@@std@@@stdext@@YAPAPAVStreamFrame@OpalAudioMixerStream@@PAPAV12@00AAV?$allocator@PAVStreamFrame@OpalAudioMixerStream@@@std@@@Z @41858 NONAME - ??$unchecked_uninitialized_copy@PAU?$pair@VPString@@V1@@std@@PAU12@V?$allocator@U?$pair@VPString@@V1@@std@@@2@@stdext@@YAPAU?$pair@VPString@@V1@@std@@PAU12@00AAV?$allocator@U?$pair@VPString@@V1@@std@@@2@@Z @42851 NONAME - ??$unchecked_uninitialized_copy@PAUCapabilityListCreateEntry@OpalPluginCodecManager@@PAU12@V?$allocator@UCapabilityListCreateEntry@OpalPluginCodecManager@@@std@@@stdext@@YAPAUCapabilityListCreateEntry@OpalPluginCodecManager@@PAU12@00AAV?$allocator@UCapabilityListCreateEntry@OpalPluginCodecManager@@@std@@@Z @40219 NONAME - ??$unchecked_uninitialized_copy@V?$_Vector_const_iterator@U?$pair@VPString@@V1@@std@@V?$allocator@U?$pair@VPString@@V1@@std@@@2@@std@@PAU?$pair@VPString@@V1@@2@V?$allocator@U?$pair@VPString@@V1@@std@@@2@@stdext@@YAPAU?$pair@VPString@@V1@@std@@V?$_Vector_const_iterator@U?$pair@VPString@@V1@@std@@V?$allocator@U?$pair@VPString@@V1@@std@@@2@@2@0PAU12@AAV?$allocator@U?$pair@VPString@@V1@@std@@@2@@Z @42852 NONAME - ??$unchecked_uninitialized_fill_n@PAHIHV?$allocator@H@std@@@stdext@@YAXPAHIABHAAV?$allocator@H@std@@@Z @42853 NONAME - ??$unchecked_uninitialized_fill_n@PAIIIV?$allocator@I@std@@@stdext@@YAXPAIIABIAAV?$allocator@I@std@@@Z @40496 NONAME - ??$unchecked_uninitialized_fill_n@PAPAVStreamFrame@OpalAudioMixerStream@@IPAV12@V?$allocator@PAVStreamFrame@OpalAudioMixerStream@@@std@@@stdext@@YAXPAPAVStreamFrame@OpalAudioMixerStream@@IABQAV12@AAV?$allocator@PAVStreamFrame@OpalAudioMixerStream@@@std@@@Z @41859 NONAME - ??$unchecked_uninitialized_fill_n@PAU?$pair@VPString@@V1@@std@@IU12@V?$allocator@U?$pair@VPString@@V1@@std@@@2@@stdext@@YAXPAU?$pair@VPString@@V1@@std@@IABU12@AAV?$allocator@U?$pair@VPString@@V1@@std@@@2@@Z @42854 NONAME - ??$unchecked_uninitialized_fill_n@PAUCapabilityListCreateEntry@OpalPluginCodecManager@@IU12@V?$allocator@UCapabilityListCreateEntry@OpalPluginCodecManager@@@std@@@stdext@@YAXPAUCapabilityListCreateEntry@OpalPluginCodecManager@@IABU12@AAV?$allocator@UCapabilityListCreateEntry@OpalPluginCodecManager@@@std@@@Z @40220 NONAME - ??$_Allocate@H@std@@YAPAHIPAH@Z @42855 NONAME - ??$_Allocate@I@std@@YAPAIIPAI@Z @40497 NONAME - ??$_Allocate@PAVStreamFrame@OpalAudioMixerStream@@@std@@YAPAPAVStreamFrame@OpalAudioMixerStream@@IPAPAV12@@Z @41860 NONAME - ??$_Allocate@U?$pair@VPString@@V1@@std@@@std@@YAPAU?$pair@VPString@@V1@@0@IPAU10@@Z @42856 NONAME - ??$_Allocate@UCapabilityListCreateEntry@OpalPluginCodecManager@@@std@@YAPAUCapabilityListCreateEntry@OpalPluginCodecManager@@IPAU12@@Z @40221 NONAME - ??$_Allocate@U_Node@?$_Tree_nod@V?$_Tmap_traits@U?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@U?$less@U?$pair@VPString@@V1@@std@@@2@V?$allocator@U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@YAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@U?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@U?$less@U?$pair@VPString@@V1@@std@@@2@V?$allocator@U?$pair@$$CBU?$pair@VPString@@V1@@std@@PAVWorkerBase@?$PFactory@VOpalTranscoder@@U?$pair@VPString@@V1@@std@@@@@std@@@2@$0A@@std@@@0@IPAU120@@Z @42857 NONAME - ??$_Allocate@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@2@$0A@@std@@@std@@@std@@YAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalAudioMixerStream@@@std@@@2@$0A@@std@@@0@IPAU120@@Z @41861 NONAME - ??$_Allocate@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@2@$0A@@std@@@std@@@std@@YAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVOpalFaxCallInfo@@@std@@@2@$0A@@std@@@0@IPAU120@@Z @41529 NONAME - ??$_Allocate@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@YAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH235Authenticator@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@0@IPAU120@@Z @40638 NONAME - ??$_Allocate@U_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@std@@@2@$0A@@std@@@std@@@std@@YAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVWorkerBase@?$PFactory@VH323Capability@@V?$basic_string@DU?$char_traits@D@std@@V?$all... [truncated message content] |
From: <rjo...@us...> - 2007-11-12 04:44:35
|
Revision: 18845 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18845&view=rev Author: rjongbloed Date: 2007-11-11 20:44:40 -0800 (Sun, 11 Nov 2007) Log Message: ----------- Bug 1828321 OpalEndPoint::ClearAllCalls hangs with active calls from Joachim Bauch OpalEndPoint::ClearAllCalls is only for backward compatibility and should just call the function of the same name in the OpalManager. Modified Paths: -------------- opal/trunk/include/opal/endpoint.h opal/trunk/src/opal/endpoint.cxx Modified: opal/trunk/include/opal/endpoint.h =================================================================== --- opal/trunk/include/opal/endpoint.h 2007-11-12 00:50:04 UTC (rev 18844) +++ opal/trunk/include/opal/endpoint.h 2007-11-12 04:44:40 UTC (rev 18845) @@ -933,7 +933,6 @@ OpalConnection::SendUserInputModes defaultSendUserInputMode; OpalListenerList listeners; - PSyncPoint allConnectionsCleared; class ConnectionDict : public PSafeDictionary<PString, OpalConnection> { Modified: opal/trunk/src/opal/endpoint.cxx =================================================================== --- opal/trunk/src/opal/endpoint.cxx 2007-11-12 00:50:04 UTC (rev 18844) +++ opal/trunk/src/opal/endpoint.cxx 2007-11-12 04:44:40 UTC (rev 18845) @@ -642,14 +642,7 @@ void OpalEndPoint::ClearAllCalls(OpalConnection::CallEndReason reason, BOOL wait) { - BOOL releasedOne = FALSE; - for (PSafePtr<OpalConnection> connection(connectionsActive, PSafeReadOnly); connection; ++connection) { - connection->Release(reason); - releasedOne = TRUE; - } - - if (wait && releasedOne) - allConnectionsCleared.Wait(); + manager.ClearAllCalls(reason, wait); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-13 03:06:34
|
Revision: 18847 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18847&view=rev Author: rjongbloed Date: 2007-11-12 19:06:39 -0800 (Mon, 12 Nov 2007) Log Message: ----------- Fixed efficiency problems with video transmit (weird Sleep() and strings being unnecessarily being reallocated), thanks Elaine Xiong. Modified Paths: -------------- opal/trunk/include/opal/mediafmt.h opal/trunk/src/opal/mediafmt.cxx opal/trunk/src/opal/patch.cxx Modified: opal/trunk/include/opal/mediafmt.h =================================================================== --- opal/trunk/include/opal/mediafmt.h 2007-11-12 05:18:06 UTC (rev 18846) +++ opal/trunk/include/opal/mediafmt.h 2007-11-13 03:06:39 UTC (rev 18847) @@ -496,6 +496,9 @@ protected: OpalMediaOption( + const PString & name + ); + OpalMediaOption( const char * name, bool readOnly, MergeType merge Modified: opal/trunk/src/opal/mediafmt.cxx =================================================================== --- opal/trunk/src/opal/mediafmt.cxx 2007-11-12 05:18:06 UTC (rev 18846) +++ opal/trunk/src/opal/mediafmt.cxx 2007-11-13 03:06:39 UTC (rev 18847) @@ -489,6 +489,14 @@ ///////////////////////////////////////////////////////////////////////////// +OpalMediaOption::OpalMediaOption(const PString & name) + : m_name(name) + , m_readOnly(false) + , m_merge(NoMerge) +{ +} + + OpalMediaOption::OpalMediaOption(const char * name, bool readOnly, MergeType merge) : m_name(name) , m_readOnly(readOnly) @@ -1269,10 +1277,18 @@ } +class OpalMediaOptionSearchArg : public OpalMediaOption +{ +public: + OpalMediaOptionSearchArg(const PString & name) : OpalMediaOption(name) { } + virtual Comparison CompareValue(const OpalMediaOption &) const { return EqualTo; } + virtual void Assign(const OpalMediaOption &) { } +}; + OpalMediaOption * OpalMediaFormat::FindOption(const PString & name) const { PWaitAndSignal m(media_format_mutex); - OpalMediaOptionString search(name, false); + OpalMediaOptionSearchArg search(name); PINDEX index = options.GetValuesIndex(search); if (index == P_MAX_INDEX) return NULL; Modified: opal/trunk/src/opal/patch.cxx =================================================================== --- opal/trunk/src/opal/patch.cxx 2007-11-12 05:18:06 UTC (rev 18846) +++ opal/trunk/src/opal/patch.cxx 2007-11-13 03:06:39 UTC (rev 18847) @@ -592,11 +592,7 @@ inUse.Signal(); if (!isSynchronous || !sourceFrame.GetPayloadSize()) - PThread::Sleep(5); // Don't starve the CPU -#if !defined(WIN32) - else - PThread::Sleep(5); // Permit to another thread to take the mutex -#endif + PThread::Sleep(5); // Don't starve the CPU if we have empty frames if (len == 0) break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-13 07:53:43
|
Revision: 18857 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18857&view=rev Author: rjongbloed Date: 2007-11-12 23:53:39 -0800 (Mon, 12 Nov 2007) Log Message: ----------- Internal change to OpalMediaFormat implementation to allow polymorphism. This needed in internal class which can have virtual functions for which OpalMediaFormat is just a wrapper. This gets around the thousands of places where OpalMediaFormat instances are used instead of pointer/references which broke the polymorphism that was needed. Modified Paths: -------------- opal/trunk/include/codec/opalpluginmgr.h opal/trunk/include/opal/mediafmt.h opal/trunk/samples/opalcodecinfo/main.cxx opal/trunk/samples/openphone/main.h opal/trunk/src/codec/opalpluginmgr.cxx opal/trunk/src/h323/h323.cxx opal/trunk/src/h323/h323caps.cxx opal/trunk/src/lids/lidep.cxx opal/trunk/src/opal/call.cxx opal/trunk/src/opal/connection.cxx opal/trunk/src/opal/mediafmt.cxx opal/trunk/src/opal/transcoders.cxx Modified: opal/trunk/include/codec/opalpluginmgr.h =================================================================== --- opal/trunk/include/codec/opalpluginmgr.h 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/include/codec/opalpluginmgr.h 2007-11-13 07:53:39 UTC (rev 18857) @@ -169,7 +169,7 @@ OpalPluginCodecHandler(); #if OPAL_AUDIO - virtual OpalMediaFormat * OnCreateAudioFormat(OpalPluginCodecManager & mgr, + virtual OpalMediaFormatInternal * OnCreateAudioFormat(OpalPluginCodecManager & mgr, const PluginCodec_Definition * encoderCodec, const char * rtpEncodingName, unsigned frameTime, @@ -178,7 +178,7 @@ #endif #if OPAL_VIDEO - virtual OpalMediaFormat * OnCreateVideoFormat(OpalPluginCodecManager & mgr, + virtual OpalMediaFormatInternal * OnCreateVideoFormat(OpalPluginCodecManager & mgr, const PluginCodec_Definition * encoderCodec, const char * rtpEncodingName, time_t timeStamp); @@ -186,7 +186,7 @@ #endif #if OPAL_T38FAX - virtual OpalMediaFormat * OnCreateFaxFormat(OpalPluginCodecManager & mgr, + virtual OpalMediaFormatInternal * OnCreateFaxFormat(OpalPluginCodecManager & mgr, const PluginCodec_Definition * encoderCodec, const char * rtpEncodingName, unsigned frameTime, @@ -280,12 +280,13 @@ /////////////////////////////////////////////////////////////////////////////// -class OpalPluginMediaFormat +class OpalPluginMediaFormatInternal { public: - OpalPluginMediaFormat(const PluginCodec_Definition * defn); + OpalPluginMediaFormatInternal(const PluginCodec_Definition * defn); - void PopulateOptions(OpalMediaFormat & format); + void PopulateOptions(OpalMediaFormatInternal & format); + void SetOldStyleOption(OpalMediaFormatInternal & format, const PString & _key, const PString & _val, const PString & type); bool IsValidForProtocol(const PString & _protocol) const; const PluginCodec_Definition * codecDef; @@ -295,6 +296,18 @@ }; +class OpalPluginMediaFormat : public OpalMediaFormat +{ + public: + OpalPluginMediaFormat(OpalMediaFormatInternal * info) + : OpalMediaFormat(info) + { + } + + OpalPluginMediaFormatInternal * GetInfo() const { return dynamic_cast<OpalPluginMediaFormatInternal *>(m_info); } +}; + + class OpalPluginTranscoder { public: @@ -321,20 +334,20 @@ #if OPAL_AUDIO -class OpalPluginAudioMediaFormat : public OpalAudioFormat, public OpalPluginMediaFormat +class OpalPluginAudioFormatInternal : public OpalAudioFormatInternal, public OpalPluginMediaFormatInternal { public: friend class OpalPluginCodecManager; - OpalPluginAudioMediaFormat( + OpalPluginAudioFormatInternal( const PluginCodec_Definition * _encoderCodec, const char * rtpEncodingName, /// rtp encoding name unsigned frameTime, /// Time for frame in RTP units (if applicable) unsigned /*timeUnits*/, /// RTP units for frameTime (if applicable) - time_t timeStamp /// timestamp (for versioning) + time_t timeStamp /// timestamp (for versioning) ); - bool IsValidForProtocol(const PString & protocol) const; - PObject * Clone() const; + virtual PObject * Clone() const; + virtual bool IsValidForProtocol(const PString & protocol) const; }; @@ -378,17 +391,16 @@ #if OPAL_VIDEO -class OpalPluginVideoMediaFormat : public OpalVideoFormat, public OpalPluginMediaFormat +class OpalPluginVideoFormatInternal : public OpalVideoFormatInternal, public OpalPluginMediaFormatInternal { public: - friend class OpalPluginCodecManager; - OpalPluginVideoMediaFormat( + OpalPluginVideoFormatInternal( const PluginCodec_Definition * _encoderCodec, const char * rtpEncodingName, /// rtp encoding name time_t timeStamp /// timestamp (for versioning) ); - PObject * Clone() const; - bool IsValidForProtocol(const PString & protocol) const; + virtual PObject * Clone() const; + virtual bool IsValidForProtocol(const PString & protocol) const; }; @@ -413,20 +425,18 @@ #if OPAL_T38FAX -class OpalPluginFaxMediaFormat : public OpalMediaFormat, public OpalPluginMediaFormat +class OpalPluginFaxFormatInternal : public OpalMediaFormatInternal, public OpalPluginMediaFormatInternal { public: - friend class OpalPluginCodecManager; - - OpalPluginFaxMediaFormat( + OpalPluginFaxFormatInternal( const PluginCodec_Definition * _encoderCodec, const char * rtpEncodingName, /// rtp encoding name unsigned frameTime, unsigned /*timeUnits*/, /// RTP units for frameTime (if applicable) time_t timeStamp /// timestamp (for versioning) ); - PObject * Clone() const; - bool IsValidForProtocol(const PString & protocol) const; + virtual PObject * Clone() const; + virtual bool IsValidForProtocol(const PString & protocol) const; }; #endif // OPAL_T38FAX Modified: opal/trunk/include/opal/mediafmt.h =================================================================== --- opal/trunk/include/opal/mediafmt.h 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/include/opal/mediafmt.h 2007-11-13 07:53:39 UTC (rev 18857) @@ -748,20 +748,84 @@ /////////////////////////////////////////////////////////////////////////////// +class OpalMediaFormatInternal : public PObject +{ + PCLASSINFO(OpalMediaFormatInternal, PObject); + public: + OpalMediaFormatInternal( + const char * fullName, + unsigned defaultSessionID, + RTP_DataFrame::PayloadTypes rtpPayloadType, + const char * encodingName, + BOOL needsJitter, + unsigned bandwidth, + PINDEX frameSize, + unsigned frameTime, + unsigned clockRate, + time_t timeStamp + ); + + BOOL IsValid() const { return rtpPayloadType < RTP_DataFrame::IllegalPayloadType && !formatName.IsEmpty(); } + BOOL IsTransportable() const { return rtpPayloadType < RTP_DataFrame::MaxPayloadType && !rtpEncodingName.IsEmpty(); } + + bool GetOptionValue(const PString & name, PString & value) const; + bool SetOptionValue(const PString & name, const PString & value); + bool GetOptionBoolean(const PString & name, bool dflt) const; + bool SetOptionBoolean(const PString & name, bool value); + int GetOptionInteger(const PString & name, int dflt) const; + bool SetOptionInteger(const PString & name, int value); + double GetOptionReal(const PString & name, double dflt) const; + bool SetOptionReal(const PString & name, double value); + PINDEX GetOptionEnum(const PString & name, PINDEX dflt) const; + bool SetOptionEnum(const PString & name, PINDEX value); + PString GetOptionString(const PString & name, const PString & dflt) const; + bool SetOptionString(const PString & name, const PString & value); + bool GetOptionOctets(const PString & name, PBYTEArray & octets) const; + bool SetOptionOctets(const PString & name, const PBYTEArray & octets); + bool SetOptionOctets(const PString & name, const BYTE * data, PINDEX length); + bool AddOption(OpalMediaOption * option, BOOL overwrite = FALSE); + OpalMediaOption * FindOption(const PString & name) const; + + virtual bool Merge(const OpalMediaFormatInternal & mediaFormat); + virtual bool IsValidForProtocol(const PString & protocol) const; + virtual void PrintOptions(ostream & strm) const; + + protected: + PCaselessString formatName; + RTP_DataFrame::PayloadTypes rtpPayloadType; + PString rtpEncodingName; + unsigned defaultSessionID; + PMutex media_format_mutex; + PSortedList<OpalMediaOption> options; + time_t codecVersionTime; + + friend bool operator==(const char * other, const OpalMediaFormat & fmt); + friend bool operator!=(const char * other, const OpalMediaFormat & fmt); + friend bool operator==(const PString & other, const OpalMediaFormat & fmt); + friend bool operator!=(const PString & other, const OpalMediaFormat & fmt); + + friend class OpalMediaFormat; + friend class OpalMediaFormatList; +}; + + +/////////////////////////////////////////////////////////////////////////////// + /**This class describes a media format as used in the OPAL system. A media format is the type of any media data that is trasferred between OPAL entities. For example an audio codec such as G.723.1 is a media format, a video codec such as H.261 is also a media format. */ -class OpalMediaFormat : public PCaselessString +class OpalMediaFormat : public PContainer { - friend class OpalPluginCodecManager; - PCLASSINFO(OpalMediaFormat, PCaselessString); + PCONTAINERINFO(OpalMediaFormat, PContainer); public: /**Default constructor creates a PCM-16 media format. */ - OpalMediaFormat(); + OpalMediaFormat( + OpalMediaFormatInternal * info = NULL + ); /**This form of the constructor will register the full details of the media format into an internal database. This would typically be used @@ -839,29 +903,6 @@ const PString & wildcard ///< Wildcard name to search for ); - /**Copy Constructor - */ - OpalMediaFormat( - const OpalMediaFormat & mediaFormat ///< other media format - ); - - /**Return TRUE if media format info is valid. This may be used if the - single string constructor is used to check that it matched something - in the registered media formats database. - */ - virtual BOOL IsValid() const { return rtpPayloadType < RTP_DataFrame::IllegalPayloadType && !IsEmpty(); } - - /**Return TRUE if media format info may be sent via RTP. Some formats are internal - use only and are never transported "over the wire". - */ - BOOL IsTransportable() const { return rtpPayloadType < RTP_DataFrame::MaxPayloadType && !rtpEncodingName.IsEmpty(); } - - /**Copy a media format - */ - OpalMediaFormat & operator=( - const OpalMediaFormat & fmt ///< other media format - ); - /**Search for the specified format type. This is equivalent to going fmt = OpalMediaFormat(rtpPayloadType); */ @@ -887,6 +928,18 @@ */ virtual PObject * Clone() const; + /**Compare two media formats. + */ + virtual Comparison Compare(const PObject & obj) const; + + /**Print media format. + */ + virtual void PrintOn(ostream & strm) const; + + /**Read media format. + */ + virtual void ReadFrom(istream & strm); + /**Merge with another media format. This will alter and validate the options for this media format according to the merge rule for each option. The parameter is typically a "capability" while the @@ -897,20 +950,36 @@ Returns FALSE if the media formats are incompatible and cannot be merged. */ - virtual bool Merge( + bool Merge( const OpalMediaFormat & mediaFormat - ); + ) { return m_info != NULL && mediaFormat.m_info != NULL && m_info->Merge(*mediaFormat.m_info); } + /**Get the name of the format + */ + PString GetName() const { return m_info == NULL ? "" : m_info->formatName; } + + /**Return TRUE if media format info is valid. This may be used if the + single string constructor is used to check that it matched something + in the registered media formats database. + */ + BOOL IsValid() const { return m_info != NULL && m_info->IsValid(); } + + /**Return TRUE if media format info may be sent via RTP. Some formats are internal + use only and are never transported "over the wire". + */ + BOOL IsTransportable() const { return m_info != NULL && m_info->IsTransportable(); } + /**Get the RTP payload type that is to be used for this media format. This will either be an intrinsic one for the media format eg GSM or it will be automatically calculated as a dynamic media format that will be uniqueue amongst the registered media formats. */ - RTP_DataFrame::PayloadTypes GetPayloadType() const { return rtpPayloadType; } + RTP_DataFrame::PayloadTypes GetPayloadType() const { return m_info == NULL ? RTP_DataFrame::IllegalPayloadType : m_info->rtpPayloadType; } + void SetPayloadType(RTP_DataFrame::PayloadTypes type) { if (m_info != NULL && MakeUnique()) m_info->rtpPayloadType = type; } /**Get the RTP encoding name that is to be used for this media format. */ - const char * GetEncodingName() const { return rtpEncodingName; } + const char * GetEncodingName() const { return m_info == NULL ? "" : m_info->rtpEncodingName; } enum { DefaultAudioSessionID = 1, @@ -921,30 +990,30 @@ /**Get the default session ID for media format. */ - unsigned GetDefaultSessionID() const { return defaultSessionID; } + unsigned GetDefaultSessionID() const { return m_info == NULL ? 0 : m_info->defaultSessionID; } /**Determine if the media format requires a jitter buffer. As a rule an audio codec needs a jitter buffer and all others do not. */ - bool NeedsJitterBuffer() const { return GetOptionBoolean(NeedsJitterOption()); } + bool NeedsJitterBuffer() const { return m_info != NULL && m_info->GetOptionBoolean(NeedsJitterOption(), FALSE); } static const PString & NeedsJitterOption(); /**Get the average bandwidth used in bits/second. */ - unsigned GetBandwidth() const { return GetOptionInteger(MaxBitRateOption()); } + unsigned GetBandwidth() const { return m_info == NULL ? 0 : m_info->GetOptionInteger(MaxBitRateOption(), 0); } static const PString & MaxBitRateOption(); /**Get the maximum frame size in bytes. If this returns zero then the media format has no intrinsic maximum frame size, eg G.711 would return zero but G.723.1 whoud return 24. */ - PINDEX GetFrameSize() const { return GetOptionInteger(MaxFrameSizeOption()); } + PINDEX GetFrameSize() const { return m_info == NULL ? 0 : m_info->GetOptionInteger(MaxFrameSizeOption(), 0); } static const PString & MaxFrameSizeOption(); /**Get the frame time in RTP timestamp units. If this returns zero then the media format is not real time and has no intrinsic timing eg T.120 */ - unsigned GetFrameTime() const { return GetOptionInteger(FrameTimeOption()); } + unsigned GetFrameTime() const { return m_info == NULL ? 0 : m_info->GetOptionInteger(FrameTimeOption(), 0); } static const PString & FrameTimeOption(); /**Get the number of RTP timestamp units per millisecond. @@ -958,19 +1027,19 @@ /**Get the clock rate in Hz for this format. */ - unsigned GetClockRate() const { return GetOptionInteger(ClockRateOption(), 1000); } + unsigned GetClockRate() const { return m_info == NULL ? 0 : m_info->GetOptionInteger(ClockRateOption(), 1000); } static const PString & ClockRateOption(); /**Get the number of options this media format has. */ - PINDEX GetOptionCount() const { return options.GetSize(); } + PINDEX GetOptionCount() const { return m_info == NULL ? 0 : m_info->options.GetSize(); } /**Get the option instance at the specified index. This contains the description and value for the option. */ const OpalMediaOption & GetOption( PINDEX index ///< Index of option in list to get - ) const { return options[index]; } + ) const { return m_info->options[index]; } /**Get the option value of the specified name as a string. @@ -979,7 +1048,7 @@ bool GetOptionValue( const PString & name, ///< Option name PString & value ///< String to receive option value - ) const; + ) const { return m_info != NULL && m_info->GetOptionValue(name, value); } /**Set the option value of the specified name as a string. Note the option will not be added if it does not exist, the option @@ -990,7 +1059,7 @@ bool SetOptionValue( const PString & name, ///< Option name const PString & value ///< New option value as string - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionValue(name, value); } /**Get the option value of the specified name as a boolean. The default value is returned if the option is not present. @@ -998,7 +1067,7 @@ bool GetOptionBoolean( const PString & name, ///< Option name bool dflt = FALSE ///< Default value if option not present - ) const; + ) const { return m_info != NULL && m_info->GetOptionBoolean(name, dflt); } /**Set the option value of the specified name as a boolean. Note the option will not be added if it does not exist, the option @@ -1009,7 +1078,7 @@ bool SetOptionBoolean( const PString & name, ///< Option name bool value ///< New value for option - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionBoolean(name, value); } /**Get the option value of the specified name as an integer. The default value is returned if the option is not present. @@ -1017,7 +1086,7 @@ int GetOptionInteger( const PString & name, ///< Option name int dflt = 0 ///< Default value if option not present - ) const; + ) const { return m_info == NULL ? dflt : m_info->GetOptionInteger(name, dflt); } /**Set the option value of the specified name as an integer. Note the option will not be added if it does not exist, the option @@ -1029,7 +1098,7 @@ bool SetOptionInteger( const PString & name, ///< Option name int value ///< New value for option - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionInteger(name, value); } /**Get the option value of the specified name as a real. The default value is returned if the option is not present. @@ -1037,7 +1106,7 @@ double GetOptionReal( const PString & name, ///< Option name double dflt = 0 ///< Default value if option not present - ) const; + ) const { return m_info == NULL ? dflt : m_info->GetOptionReal(name, dflt); } /**Set the option value of the specified name as a real. Note the option will not be added if it does not exist, the option @@ -1048,7 +1117,7 @@ bool SetOptionReal( const PString & name, ///< Option name double value ///< New value for option - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionReal(name, value); } /**Get the option value of the specified name as an index into an enumeration list. The default value is returned if the option is not @@ -1057,7 +1126,7 @@ PINDEX GetOptionEnum( const PString & name, ///< Option name PINDEX dflt = 0 ///< Default value if option not present - ) const; + ) const { return m_info == NULL ? dflt : m_info->GetOptionEnum(name, dflt); } /**Set the option value of the specified name as an index into an enumeration. Note the option will not be added if it does not exist, the option @@ -1068,7 +1137,7 @@ bool SetOptionEnum( const PString & name, ///< Option name PINDEX value ///< New value for option - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionEnum(name, value); } /**Get the option value of the specified name as a string. The default value is returned if the option is not present. @@ -1076,7 +1145,7 @@ PString GetOptionString( const PString & name, ///< Option name const PString & dflt = PString::Empty() ///< Default value if option not present - ) const; + ) const { return m_info == NULL ? dflt : m_info->GetOptionString(name, dflt); } /**Set the option value of the specified name as a string. Note the option will not be added if it does not exist, the option @@ -1087,7 +1156,7 @@ bool SetOptionString( const PString & name, ///< Option name const PString & value ///< New value for option - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionString(name, value); } /**Get the option value of the specified name as an octet array. Returns FALSE if not present. @@ -1095,7 +1164,7 @@ bool GetOptionOctets( const PString & name, ///< Option name PBYTEArray & octets ///< Octets in option - ) const; + ) const { return m_info != NULL && m_info->GetOptionOctets(name, octets); } /**Set the option value of the specified name as an octet array. Note the option will not be added if it does not exist, the option @@ -1106,12 +1175,12 @@ bool SetOptionOctets( const PString & name, ///< Option name const PBYTEArray & octets ///< Octets in option - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionOctets(name, octets); } bool SetOptionOctets( const PString & name, ///< Option name const BYTE * data, ///< Octets in option PINDEX length ///< Number of octets - ); + ) { return m_info != NULL && MakeUnique() && m_info->SetOptionOctets(name, data, length); } /**Get a copy of the list of media formats that have been registered. */ @@ -1133,13 +1202,12 @@ bool AddOption( OpalMediaOption * option, BOOL overwrite = FALSE - ); + ) { return m_info != NULL && MakeUnique() && m_info->AddOption(option, overwrite); } /** * Determine if media format has the specified option. */ - bool HasOption(const PString & name) const - { return FindOption(name) != NULL; } + bool HasOption(const PString & name) const { return m_info != NULL && m_info->FindOption(name) != NULL; } /** * Get a pointer to the specified media format option. @@ -1147,28 +1215,49 @@ */ OpalMediaOption * FindOption( const PString & name - ) const; + ) const { return m_info == NULL ? NULL : m_info->FindOption(name); } /** Returns TRUE if the media format is valid for the protocol specified This allow plugin codecs to customise which protocols they are valid for The default implementation returns true unless the protocol is H.323 and the rtpEncodingName is NULL */ - virtual bool IsValidForProtocol(const PString & protocol) const; + bool IsValidForProtocol(const PString & protocol) const { return m_info != NULL && m_info->IsValidForProtocol(protocol); } - virtual time_t GetCodecBaseTime() const; + time_t GetCodecVersionTime() const { return m_info == NULL ? 0 : m_info->codecVersionTime; } - virtual ostream & PrintOptions(ostream & strm) const; + ostream & PrintOptions(ostream & strm) const + { + if (m_info != NULL) + m_info->PrintOptions(strm); + return strm; + } + + // Backward compatibility + virtual BOOL IsEmpty() const { return m_info == NULL || !m_info->IsValid(); } + operator PString() const { return m_info == NULL ? "" : m_info->formatName; } + operator const char *() const { return m_info == NULL ? "" : m_info->formatName; } + bool operator==(const char * other) const { return m_info != NULL && m_info->formatName == other; } + bool operator!=(const char * other) const { return m_info == NULL || m_info->formatName == other; } + bool operator==(const PString & other) const { return m_info != NULL && m_info->formatName == other; } + bool operator!=(const PString & other) const { return m_info == NULL || m_info->formatName == other; } + bool operator==(const OpalMediaFormat & other) const { return Compare(other) == EqualTo; } + bool operator!=(const OpalMediaFormat & other) const { return Compare(other) != EqualTo; } + friend bool operator==(const char * other, const OpalMediaFormat & fmt) { return fmt.m_info != NULL && fmt.m_info->formatName == other; } + friend bool operator!=(const char * other, const OpalMediaFormat & fmt) { return fmt.m_info == NULL || fmt.m_info->formatName == other; } + friend bool operator==(const PString & other, const OpalMediaFormat & fmt) { return fmt.m_info != NULL && fmt.m_info->formatName == other; } + friend bool operator!=(const PString & other, const OpalMediaFormat & fmt) { return fmt.m_info == NULL || fmt.m_info->formatName == other; } + + private: + BOOL SetSize(PINDEX) { return TRUE; } + protected: - RTP_DataFrame::PayloadTypes rtpPayloadType; - PString rtpEncodingName; - unsigned defaultSessionID; - PMutex media_format_mutex; - PSortedList<OpalMediaOption> options; - time_t codecBaseTime; + void Construct(OpalMediaFormatInternal * info); + OpalMediaFormatInternal * m_info; - friend class OpalMediaFormatList; + friend class OpalMediaFormatInternal; + friend class OpalMediaFormatList; }; @@ -1184,9 +1273,27 @@ : OpalMediaFormat(fullName, defaultSessionID, rtpPayloadType, encodingName, needsJitter, bandwidth, frameSize, frameTime, timeUnits) \ #if OPAL_AUDIO +class OpalAudioFormatInternal : public OpalMediaFormatInternal +{ + public: + OpalAudioFormatInternal( + const char * fullName, + RTP_DataFrame::PayloadTypes rtpPayloadType, + const char * encodingName, + PINDEX frameSize, + unsigned frameTime, + unsigned rxFrames, + unsigned txFrames, + unsigned maxFrames, + unsigned clockRate, + time_t timeStamp + ); + virtual PObject * Clone() const; + virtual bool Merge(const OpalMediaFormatInternal & mediaFormat); +}; + class OpalAudioFormat : public OpalMediaFormat { - friend class OpalPluginCodecManager; PCLASSINFO(OpalAudioFormat, OpalMediaFormat); public: OpalAudioFormat( @@ -1208,9 +1315,26 @@ #endif #if OPAL_VIDEO +class OpalVideoFormatInternal : public OpalMediaFormatInternal +{ + public: + OpalVideoFormatInternal( + const char * fullName, + RTP_DataFrame::PayloadTypes rtpPayloadType, + const char * encodingName, + unsigned frameWidth, + unsigned frameHeight, + unsigned frameRate, + unsigned bitRate, + time_t timeStamp + ); + virtual PObject * Clone() const; + virtual bool Merge(const OpalMediaFormatInternal & mediaFormat); +}; + + class OpalVideoFormat : public OpalMediaFormat { - friend class OpalPluginCodecManager; PCLASSINFO(OpalVideoFormat, OpalMediaFormat); public: OpalVideoFormat( @@ -1224,10 +1348,6 @@ time_t timeStamp = 0 ///< timestamp (for versioning) ); - virtual PObject * Clone() const; - - virtual bool Merge(const OpalMediaFormat & mediaFormat); - static const PString & FrameWidthOption(); static const PString & FrameHeightOption(); static const PString & EncodingQualityOption(); Modified: opal/trunk/samples/opalcodecinfo/main.cxx =================================================================== --- opal/trunk/samples/opalcodecinfo/main.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/samples/opalcodecinfo/main.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -422,7 +422,7 @@ PINDEX i; PINDEX max_len = 0; for (i = 0; i < mediaList.GetSize(); i++) { - PINDEX len = mediaList[i].GetLength(); + PINDEX len = mediaList[i].GetName().GetLength(); if (len > max_len) max_len = len; } Modified: opal/trunk/samples/openphone/main.h =================================================================== --- opal/trunk/samples/openphone/main.h 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/samples/openphone/main.h 2007-11-13 07:53:39 UTC (rev 18857) @@ -228,6 +228,8 @@ operator PString() const { return c_str(); } operator PIPSocket::Address() const { return PIPSocket::Address(PString(c_str())); } friend ostream & operator<<(ostream & stream, const PwxString & string) { return stream << string.c_str(); } + + bool operator==(const OpalMediaFormat & other) const { return IsSameAs((const char *)other); } }; Modified: opal/trunk/src/codec/opalpluginmgr.cxx =================================================================== --- opal/trunk/src/codec/opalpluginmgr.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/src/codec/opalpluginmgr.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -444,7 +444,7 @@ /////////////////////////////////////////////////////////////////////////////// -OpalPluginMediaFormat::OpalPluginMediaFormat(const PluginCodec_Definition * defn) +OpalPluginMediaFormatInternal::OpalPluginMediaFormatInternal(const PluginCodec_Definition * defn) : codecDef(defn) , getOptionsControl(defn, PLUGINCODEC_CONTROL_GET_CODEC_OPTIONS) , freeOptionsControl(defn, PLUGINCODEC_CONTROL_FREE_CODEC_OPTIONS) @@ -453,7 +453,7 @@ } -static void SetOldStyleOption(OpalMediaFormat & format, const PString & _key, const PString & _val, const PString & type) +void OpalPluginMediaFormatInternal::SetOldStyleOption(OpalMediaFormatInternal & format, const PString & _key, const PString & _val, const PString & type) { PCaselessString key(_key); const char * val = _val; @@ -539,7 +539,7 @@ } -void OpalPluginMediaFormat::PopulateOptions(OpalMediaFormat & format) +void OpalPluginMediaFormatInternal::PopulateOptions(OpalMediaFormatInternal & format) { void ** rawOptions = NULL; unsigned int optionsLen = sizeof(rawOptions); @@ -699,7 +699,7 @@ } -bool OpalPluginMediaFormat::IsValidForProtocol(const PString & _protocol) const +bool OpalPluginMediaFormatInternal::IsValidForProtocol(const PString & _protocol) const { PString protocol(_protocol.ToLower()); @@ -721,42 +721,44 @@ #if OPAL_AUDIO -OpalPluginAudioMediaFormat::OpalPluginAudioMediaFormat(const PluginCodec_Definition * _encoderCodec, - const char * rtpEncodingName, /// rtp encoding name - unsigned frameTime, /// Time for frame in RTP units (if applicable) - unsigned /*timeUnits*/, /// RTP units for frameTime (if applicable) - time_t timeStamp /// timestamp (for versioning) - ) - : OpalAudioFormat(CreateCodecName(_encoderCodec), - (RTP_DataFrame::PayloadTypes)(((_encoderCodec->flags & PluginCodec_RTPTypeMask) == PluginCodec_RTPTypeDynamic) ? RTP_DataFrame::DynamicBase : _encoderCodec->rtpPayload), - rtpEncodingName, - _encoderCodec->parm.audio.bytesPerFrame, - frameTime, - _encoderCodec->parm.audio.maxFramesPerPacket, - _encoderCodec->parm.audio.recommendedFramesPerPacket, - _encoderCodec->parm.audio.maxFramesPerPacket, - _encoderCodec->sampleRate, - timeStamp - ) - , OpalPluginMediaFormat(_encoderCodec) +OpalPluginAudioFormatInternal::OpalPluginAudioFormatInternal(const PluginCodec_Definition * _encoderCodec, + const char * rtpEncodingName, /// rtp encoding name + unsigned frameTime, /// Time for frame in RTP units (if applicable) + unsigned /*timeUnits*/, /// RTP units for frameTime (if applicable) + time_t timeStamp /// timestamp (for versioning) + ) + : OpalAudioFormatInternal(CreateCodecName(_encoderCodec), + (RTP_DataFrame::PayloadTypes)(((_encoderCodec->flags & PluginCodec_RTPTypeMask) == PluginCodec_RTPTypeDynamic) ? RTP_DataFrame::DynamicBase : _encoderCodec->rtpPayload), + rtpEncodingName, + _encoderCodec->parm.audio.bytesPerFrame, + frameTime, + _encoderCodec->parm.audio.maxFramesPerPacket, + _encoderCodec->parm.audio.recommendedFramesPerPacket, + _encoderCodec->parm.audio.maxFramesPerPacket, + _encoderCodec->sampleRate, + timeStamp) + , OpalPluginMediaFormatInternal(_encoderCodec) { PopulateOptions(*this); // Override calculated value if we have an explicit bit rate if (_encoderCodec->bitsPerSec > 0) - SetOptionInteger(MaxBitRateOption(), _encoderCodec->bitsPerSec); + SetOptionInteger(OpalMediaFormat::MaxBitRateOption(), _encoderCodec->bitsPerSec); } -bool OpalPluginAudioMediaFormat::IsValidForProtocol(const PString & protocol) const +bool OpalPluginAudioFormatInternal::IsValidForProtocol(const PString & protocol) const { - return OpalPluginMediaFormat::IsValidForProtocol(protocol); + return OpalPluginMediaFormatInternal::IsValidForProtocol(protocol); } -PObject * OpalPluginAudioMediaFormat::Clone() const -{ return new OpalPluginAudioMediaFormat(*this); } +PObject * OpalPluginAudioFormatInternal::Clone() const +{ + return new OpalPluginAudioFormatInternal(*this); +} + #if OPAL_H323 static H323Capability * CreateG7231Cap( @@ -791,34 +793,32 @@ #if OPAL_VIDEO -OpalPluginVideoMediaFormat::OpalPluginVideoMediaFormat(const PluginCodec_Definition * _encoderCodec, - const char * rtpEncodingName, /// rtp encoding name - time_t timeStamp /// timestamp (for versioning) - ) - : OpalVideoFormat(CreateCodecName(_encoderCodec), - (RTP_DataFrame::PayloadTypes)(((_encoderCodec->flags & PluginCodec_RTPTypeMask) == PluginCodec_RTPTypeDynamic) ? RTP_DataFrame::DynamicBase : _encoderCodec->rtpPayload), - rtpEncodingName, - _encoderCodec->parm.video.maxFrameWidth, - _encoderCodec->parm.video.maxFrameHeight, - _encoderCodec->parm.video.maxFrameRate, - _encoderCodec->bitsPerSec, - timeStamp - ) - , OpalPluginMediaFormat(_encoderCodec) +OpalPluginVideoFormatInternal::OpalPluginVideoFormatInternal(const PluginCodec_Definition * _encoderCodec, + const char * rtpEncodingName, + time_t timeStamp) + : OpalVideoFormatInternal(CreateCodecName(_encoderCodec), + (RTP_DataFrame::PayloadTypes)(((_encoderCodec->flags & PluginCodec_RTPTypeMask) == PluginCodec_RTPTypeDynamic) ? RTP_DataFrame::DynamicBase : _encoderCodec->rtpPayload), + rtpEncodingName, + _encoderCodec->parm.video.maxFrameWidth, + _encoderCodec->parm.video.maxFrameHeight, + _encoderCodec->parm.video.maxFrameRate, + _encoderCodec->bitsPerSec, + timeStamp) + , OpalPluginMediaFormatInternal(_encoderCodec) { PopulateOptions(*this); } -PObject * OpalPluginVideoMediaFormat::Clone() const +PObject * OpalPluginVideoFormatInternal::Clone() const { - return new OpalPluginVideoMediaFormat(*this); + return new OpalPluginVideoFormatInternal(*this); } -bool OpalPluginVideoMediaFormat::IsValidForProtocol(const PString & protocol) const +bool OpalPluginVideoFormatInternal::IsValidForProtocol(const PString & protocol) const { - return OpalPluginMediaFormat::IsValidForProtocol(protocol); + return OpalPluginMediaFormatInternal::IsValidForProtocol(protocol); } @@ -856,36 +856,34 @@ #if OPAL_T38FAX -OpalPluginFaxMediaFormat::OpalPluginFaxMediaFormat(const PluginCodec_Definition * _encoderCodec, - const char * rtpEncodingName, /// rtp encoding name - unsigned frameTime, - unsigned /*timeUnits*/, /// RTP units for frameTime (if applicable) - time_t timeStamp /// timestamp (for versioning) - ) - : OpalMediaFormat(CreateCodecName(_encoderCodec), - OpalMediaFormat::DefaultDataSessionID, - (RTP_DataFrame::PayloadTypes)(((_encoderCodec->flags & PluginCodec_RTPTypeMask) == PluginCodec_RTPTypeDynamic) ? RTP_DataFrame::DynamicBase : _encoderCodec->rtpPayload), - rtpEncodingName, - FALSE, // need jitter - 8*_encoderCodec->parm.audio.bytesPerFrame*AudioClockRate/frameTime, // bandwidth - _encoderCodec->parm.audio.bytesPerFrame, // size of frame in bytes - frameTime, // time for frame - _encoderCodec->sampleRate, // clock rate - (unsigned int)timeStamp // timestamp - ) - , OpalPluginMediaFormat(_encoderCodec) +OpalPluginFaxFormatInternal::OpalPluginFaxFormatInternal(const PluginCodec_Definition * _encoderCodec, + const char * rtpEncodingName, + unsigned frameTime, + unsigned /*timeUnits*/, + time_t timeStamp) + : OpalMediaFormatInternal(CreateCodecName(_encoderCodec), + OpalMediaFormat::DefaultDataSessionID, + (RTP_DataFrame::PayloadTypes)(((_encoderCodec->flags & PluginCodec_RTPTypeMask) == PluginCodec_RTPTypeDynamic) ? RTP_DataFrame::DynamicBase : _encoderCodec->rtpPayload), + rtpEncodingName, + FALSE, // need jitter + 8*_encoderCodec->parm.audio.bytesPerFrame*OpalMediaFormat::AudioClockRate/frameTime, // bandwidth + _encoderCodec->parm.audio.bytesPerFrame, // size of frame in bytes + frameTime, // time for frame + _encoderCodec->sampleRate, // clock rate + timeStamp) + , OpalPluginMediaFormatInternal(_encoderCodec) { PopulateOptions(*this); } -PObject * OpalPluginFaxMediaFormat::Clone() const +PObject * OpalPluginFaxFormatInternal::Clone() const { - return new OpalPluginFaxMediaFormat(*this); + return new OpalPluginFaxFormatInternal(*this); } -bool OpalPluginFaxMediaFormat::IsValidForProtocol(const PString & protocol) const +bool OpalPluginFaxFormatInternal::IsValidForProtocol(const PString & protocol) const { - return OpalPluginMediaFormat::IsValidForProtocol(protocol); + return OpalPluginMediaFormatInternal::IsValidForProtocol(protocol); } #endif // OPAL_T38FAX @@ -1707,29 +1705,29 @@ } else { PString fmtName = CreateCodecName(encoderCodec); OpalMediaFormat existingFormat(fmtName); - if (existingFormat.IsValid() && existingFormat.GetCodecBaseTime() >= timeStamp) { + if (existingFormat.IsValid() && existingFormat.GetCodecVersionTime() >= timeStamp) { PTRACE(2, "OpalPlugin\tNewer media format " << fmtName << " already exists"); } else { PTRACE(3, "OpalPlugin\tCreating new media format " << fmtName); - OpalMediaFormat * mediaFormat = NULL; + OpalMediaFormatInternal * mediaFormatInternal = NULL; // manually register the new singleton type, as we do not have a concrete type switch (encoderCodec->flags & PluginCodec_MediaTypeMask) { #if OPAL_VIDEO case PluginCodec_MediaTypeVideo: - mediaFormat = handler->OnCreateVideoFormat(*this, encoderCodec, encoderCodec->sdpFormat, timeStamp); + mediaFormatInternal = handler->OnCreateVideoFormat(*this, encoderCodec, encoderCodec->sdpFormat, timeStamp); break; #endif #if OPAL_AUDIO case PluginCodec_MediaTypeAudio: case PluginCodec_MediaTypeAudioStreamed: - mediaFormat = handler->OnCreateAudioFormat(*this, encoderCodec, encoderCodec->sdpFormat, frameTime, clockRate, timeStamp); + mediaFormatInternal = handler->OnCreateAudioFormat(*this, encoderCodec, encoderCodec->sdpFormat, frameTime, clockRate, timeStamp); break; #endif #if OPAL_T38FAX case PluginCodec_MediaTypeFax: - mediaFormat = handler->OnCreateFaxFormat(*this, encoderCodec, encoderCodec->sdpFormat, frameTime, clockRate, timeStamp); + mediaFormatInternal = handler->OnCreateFaxFormat(*this, encoderCodec, encoderCodec->sdpFormat, frameTime, clockRate, timeStamp); break; #endif default: @@ -1737,6 +1735,8 @@ return; } + OpalMediaFormat * mediaFormat = new OpalPluginMediaFormat(mediaFormatInternal); + // Remember format so we can deallocate it on shut down mediaFormatsOnHeap.Append(mediaFormat); @@ -1746,49 +1746,17 @@ if ((encoderCodec->flags & PluginCodec_RTPTypeShared) != 0 && (encoderCodec->sdpFormat != NULL)) { OpalMediaFormatList list = OpalMediaFormat::GetAllRegisteredMediaFormats(); for (PINDEX i = 0; i < list.GetSize(); i++) { - OpalMediaFormat * opalFmt = &list[i]; -#if OPAL_AUDIO - { - OpalPluginAudioMediaFormat * fmt = dynamic_cast<OpalPluginAudioMediaFormat *>(opalFmt); - if ( - (fmt != NULL) && - (encoderCodec->sampleRate == fmt->codecDef->sampleRate) && - (fmt->codecDef->sdpFormat != NULL) && - (strcasecmp(encoderCodec->sdpFormat, fmt->codecDef->sdpFormat) == 0) - ) { - mediaFormat->rtpPayloadType = fmt->GetPayloadType(); + OpalPluginMediaFormat * opalFmt = dynamic_cast<OpalPluginMediaFormat *>(&list[i]); + if (opalFmt != NULL) { + OpalPluginMediaFormatInternal * fmt = opalFmt->GetInfo(); + if (fmt != NULL && + fmt->codecDef->sdpFormat != NULL && + encoderCodec->sampleRate == fmt->codecDef->sampleRate && + strcasecmp(encoderCodec->sdpFormat, fmt->codecDef->sdpFormat) == 0) { + mediaFormat->SetPayloadType(opalFmt->GetPayloadType()); break; } } -#endif -#if OPAL_VIDEO - { - OpalPluginVideoMediaFormat * fmt = dynamic_cast<OpalPluginVideoMediaFormat *>(opalFmt); - if ( - (fmt != NULL) && - (encoderCodec->sampleRate == fmt->codecDef->sampleRate) && - (fmt->codecDef->sdpFormat != NULL) && - (strcasecmp(encoderCodec->sdpFormat, fmt->codecDef->sdpFormat) == 0) - ) { - mediaFormat->rtpPayloadType = fmt->GetPayloadType(); - break; - } - } -#endif -#if OPAL_T38FAX - { - OpalPluginFaxMediaFormat * fmt = dynamic_cast<OpalPluginFaxMediaFormat *>(opalFmt); - if ( - (fmt != NULL) && - (encoderCodec->sampleRate == fmt->codecDef->sampleRate) && - (fmt->codecDef->sdpFormat != NULL) && - (strcasecmp(encoderCodec->sdpFormat, fmt->codecDef->sdpFormat) == 0) - ) { - mediaFormat->rtpPayloadType = fmt->GetPayloadType(); - break; - } - } -#endif } } OpalMediaFormat::SetRegisteredMediaFormat(*mediaFormat); @@ -1930,24 +1898,24 @@ } #if OPAL_AUDIO -OpalMediaFormat * OpalPluginCodecHandler::OnCreateAudioFormat(OpalPluginCodecManager & /*mgr*/, +OpalMediaFormatInternal * OpalPluginCodecHandler::OnCreateAudioFormat(OpalPluginCodecManager & /*mgr*/, const PluginCodec_Definition * encoderCodec, const char * rtpEncodingName, unsigned frameTime, unsigned timeUnits, time_t timeStamp) { - return new OpalPluginAudioMediaFormat(encoderCodec, rtpEncodingName, frameTime, timeUnits, timeStamp); + return new OpalPluginAudioFormatInternal(encoderCodec, rtpEncodingName, frameTime, timeUnits, timeStamp); } #endif #if OPAL_VIDEO -OpalMediaFormat * OpalPluginCodecHandler::OnCreateVideoFormat(OpalPluginCodecManager & /*mgr*/, +OpalMediaFormatInternal * OpalPluginCodecHandler::OnCreateVideoFormat(OpalPluginCodecManager & /*mgr*/, const PluginCodec_Definition * encoderCodec, const char * rtpEncodingName, time_t timeStamp) { - return new OpalPluginVideoMediaFormat(encoderCodec, rtpEncodingName, timeStamp); + return new OpalPluginVideoFormatInternal(encoderCodec, rtpEncodingName, timeStamp); } void OpalPluginCodecHandler::RegisterVideoTranscoder(const PString & src, const PString & dst, PluginCodec_Definition * codec, BOOL v) @@ -1958,14 +1926,14 @@ #endif #if OPAL_T38FAX -OpalMediaFormat * OpalPluginCodecHandler::OnCreateFaxFormat(OpalPluginCodecManager & /*mgr*/, +OpalMediaFormatInternal * OpalPluginCodecHandler::OnCreateFaxFormat(OpalPluginCodecManager & /*mgr*/, const PluginCodec_Definition * encoderCodec, const char * rtpEncodingName, unsigned frameTime, unsigned timeUnits, time_t timeStamp) { - return new OpalPluginFaxMediaFormat(encoderCodec, rtpEncodingName, frameTime, timeUnits, timeStamp); + return new OpalPluginFaxFormatInternal(encoderCodec, rtpEncodingName, frameTime, timeUnits, timeStamp); } #endif Modified: opal/trunk/src/h323/h323.cxx =================================================================== --- opal/trunk/src/h323/h323.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/src/h323/h323.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -4622,7 +4622,7 @@ return; OpalMediaFormat mediaFormat = stream->GetMediaFormat(); - if (mediaFormat.IsEmpty()) + if (!mediaFormat.IsValid()) return; if (name.IsEmpty()) Modified: opal/trunk/src/h323/h323caps.cxx =================================================================== --- opal/trunk/src/h323/h323caps.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/src/h323/h323caps.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -452,8 +452,8 @@ #ifndef NO_H323_AUDIO_CODECS -DEFINE_G711_CAPABILITY(H323_G711ALaw64Capability, H323_G711Capability::ALaw, OpalG711_ALAW_64K) -DEFINE_G711_CAPABILITY(H323_G711uLaw64Capability, H323_G711Capability::muLaw, OpalG711_ULAW_64K) +DEFINE_G711_CAPABILITY(H323_G711ALaw64Capability, H323_G711Capability::ALaw, OPAL_G711_ALAW_64K) +DEFINE_G711_CAPABILITY(H323_G711uLaw64Capability, H323_G711Capability::muLaw, OPAL_G711_ULAW_64K) #endif @@ -601,13 +601,13 @@ OpalMediaFormat H323Capability::GetMediaFormat() const { - return mediaFormat.IsEmpty() ? OpalMediaFormat(GetFormatName()) : mediaFormat; + return mediaFormat.IsValid() ? mediaFormat : OpalMediaFormat(GetFormatName()); } OpalMediaFormat & H323Capability::GetWritableMediaFormat() { - if (mediaFormat.IsEmpty()) + if (!mediaFormat.IsValid()) mediaFormat = GetFormatName(); return mediaFormat; } Modified: opal/trunk/src/lids/lidep.cxx =================================================================== --- opal/trunk/src/lids/lidep.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/src/lids/lidep.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -1065,7 +1065,7 @@ break; case RTP_DataFrame::G729 : - if (mediaFormat.Find('B') != P_MAX_INDEX) { + if (mediaFormat.GetName().Find('B') != P_MAX_INDEX) { static const BYTE g729_sid_frame[2] = { 1 }; buffer = g729_sid_frame; length = 2; Modified: opal/trunk/src/opal/call.cxx =================================================================== --- opal/trunk/src/opal/call.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/src/opal/call.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -597,7 +597,7 @@ if (connectionsActive.GetSize() > 0) { OpalMediaStream * strm = connection.GetMediaStream(sessionID, TRUE); if (strm != NULL) - adjustableMediaFormats.Reorder(strm->GetMediaFormat()); + adjustableMediaFormats.Reorder((PString)strm->GetMediaFormat()); } for (PSafePtr<OpalConnection> conn(connectionsActive, PSafeReadOnly); conn != NULL; ++conn) { Modified: opal/trunk/src/opal/connection.cxx =================================================================== --- opal/trunk/src/opal/connection.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/src/opal/connection.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -909,7 +909,7 @@ OpalMediaStream * sink = GetMediaStream(sessionID, FALSE); if (sink != NULL) { PTRACE(3, "OpalCon\tOpenSourceMediaStream reordering codec for sink stream format " << sink->GetMediaFormat()); - toFormats.Reorder(sink->GetMediaFormat()); + toFormats.Reorder((PString)sink->GetMediaFormat()); } } Modified: opal/trunk/src/opal/mediafmt.cxx =================================================================== --- opal/trunk/src/opal/mediafmt.cxx 2007-11-13 07:51:56 UTC (rev 18856) +++ opal/trunk/src/opal/mediafmt.cxx 2007-11-13 07:53:39 UTC (rev 18857) @@ -863,14 +863,15 @@ const PString & OpalMediaFormat::FrameTimeOption() { static PString s = "Frame Time"; return s; } const PString & OpalMediaFormat::ClockRateOption() { static PString s = "Clock Rate"; return s; } -OpalMediaFormat::OpalMediaFormat() +OpalMediaFormat::OpalMediaFormat(OpalMediaFormatInternal * info) + : m_info(NULL) { - rtpPayloadType = RTP_DataFrame::IllegalPayloadType; - defaultSessionID = 0; + Construct(info); } OpalMediaFormat::OpalMediaFormat(RTP_DataFrame::PayloadTypes pt, unsigned clockRate, const char * name, const char * protocol) + : m_info(NULL) { PWaitAndSignal mutex(GetMediaFormatsListMutex()); const OpalMediaFormatList & registeredFormats = GetMediaFormatsList(); @@ -878,29 +879,23 @@ PINDEX idx = registeredFormats.FindFormat(pt, clockRate, name, protocol); if (idx != P_MAX_INDEX) *this = registeredFormats[idx]; - else - *this = OpalMediaFormat(); } OpalMediaFormat::OpalMediaFormat(const char * wildcard) + : m_info(NULL) { operator=(PString(wildcard)); } OpalMediaFormat::OpalMediaFormat(const PString & wildcard) + : m_info(NULL) { operator=(wildcard); } -OpalMediaFormat::OpalMediaFormat(const OpalMediaFormat & mediaFormat) -{ - operator=(mediaFormat); -} - - OpalMediaFormat::OpalMediaFormat(const char * fullName, unsigned dsid, RTP_DataFrame::PayloadTypes pt, @@ -911,83 +906,29 @@ unsigned ft, unsigned cr, time_t ts) - : PCaselessString(fullName) { - codecBaseTime = ts; + Construct(new OpalMediaFormatInternal(fullName, dsid, pt, en, nj, bw, fs, ft,cr, ts)); +} - PINDEX i; - PWaitAndSignal mutex(GetMediaFormatsListMutex()); - OpalMediaFormatList & registeredFormats = GetMediaFormatsList(); - if ((i = registeredFormats.GetValuesIndex(*this)) != P_MAX_INDEX) { - *this = registeredFormats[i]; // Already registered, use previous values +void OpalMediaFormat::Construct(OpalMediaFormatInternal * info) +{ + if (info == NULL) return; - } - rtpPayloadType = pt; - rtpEncodingName = en; - defaultSessionID = dsid; + PWaitAndSignal mutex(GetMediaFormatsListMutex()); + OpalMediaFormatList & registeredFormats = GetMediaFormatsList(); - if (nj) - AddOption(new OpalMediaOptionBoolean(NeedsJitterOption(), true, OpalMediaOption::OrMerge, true)); - - AddOption(new OpalMediaOptionUnsigned(MaxBitRateOption(), true, OpalMediaOption::MinMerge, bw, 100)); - - if (fs > 0) - AddOption(new OpalMediaOptionUnsigned(MaxFrameSizeOption(), true, OpalMediaOption::NoMerge, fs)); - - if (ft > 0) - AddOption(new OpalMediaOptionUnsigned(FrameTimeOption(), true, OpalMediaOption::NoMerge, ft)); - - if (cr > 0) - AddOption(new OpalMediaOptionUnsigned(ClockRateOption(), true, OpalMediaOption::AlwaysMerge, cr)); - - // assume non-dynamic payload types are correct and do not need deconflicting - if (rtpPayloadType < RTP_DataFrame::DynamicBase || rtpPayloadType >= RTP_DataFrame::MaxPayloadType) { + PINDEX idx = registeredFormats.FindFormat(info->formatName); + if (idx != P_MAX_INDEX) + *this = registeredFormats[idx]; + else { + m_info = info; registeredFormats.OpalMediaFormatBaseList::Append(this); - return; } - - // find the next unused dynamic number, and find anything with the new - // rtp payload type if it is explicitly required - OpalMediaFormat * match = NULL; - RTP_DataFrame::PayloadTypes nextUnused = RTP_DataFrame::DynamicBase; - do { - for (i = 0; i < registeredFormats.GetSize(); i++) { - if (registeredFormats[i].GetPayloadType() == nextUnused) { - nextUnused = (RTP_DataFrame::PayloadTypes)(nextUnused + 1); - break; - } - if ((rtpPayloadType >= RTP_DataFrame::DynamicBase) && - (registeredFormats[i].GetPayloadType() == rtpPayloadType)) - match = ®isteredFormats[i]; - } - } while (i < registeredFormats.GetSize()); - - // if new format requires a specific payload type in the dynamic range, - // then move the old format to the next unused format - if (match != NULL) - match->rtpPayloadType = nextUnused; - - registeredFormats.OpalMediaFormatBaseList::Append(this); } -OpalMediaFormat & OpalMediaFormat::operator=(const OpalMediaFormat &format) -{ - if (this == &format) - return *this; - PWaitAndSignal m1(media_format_mutex); - PWaitAndSignal m2(format.media_format_mutex); - *static_cast<PCaselessString *>(this) = *static_cast<const PCaselessString *>(&format); - options = format.options; - rtpPayloadType = format.rtpPayloadType; - rtpEncodingName = format.rtpEncodingName; - defaultSessionID = format.defaultSessionID; - codecBaseTime = format.codecBaseTime; - return *this; -} - OpalMediaFormat & OpalMediaFormat::operator=(RTP_DataFrame::PayloadTypes pt) { PWaitAndSignal mutex(GetMediaFormatsListMutex()); @@ -1008,32 +949,179 @@ return operator=(PString(wildcard)); } + OpalMediaFormat & OpalMediaFormat::operator=(const PString & wildcard) { PWaitAndSignal mutex(GetMediaFormatsListMutex()); const OpalMediaFormatList & registeredFormats = GetMediaFormatsList(); PINDEX idx = registeredFormats.FindFormat(wildcard); - if (idx != P_MAX_INDEX) + if (idx == P_MAX_INDEX) + *this = OpalMediaFormat(); + else *this = registeredFormats[idx]; - else - *this = OpalMediaFormat(); return *this; } +void OpalMediaFormat::CloneContents(const OpalMediaFormat * c) +{ + m_info = (OpalMediaFormatInternal *)c->m_info->Clone(); +} + + +void OpalMediaFormat::CopyContents(const OpalMediaFormat & c) +{ + m_info = c.m_info; +} + + +void OpalMediaFormat::DestroyContents() +{ + delete m_info; +} + + PObject * OpalMediaFormat::Clone() const { return new OpalMediaFormat(*this); } -bool OpalMediaFormat::Merge(const OpalMediaFormat & mediaFormat) +PObject::Comparison OpalMediaFormat::Compare(const PObject & obj) const { + PAssert(PIsDescendant(&obj, OpalMediaFormat), PInvalidCast); + const OpalMediaFormat & other = (const OpalMediaFormat &)obj; + if (m_info == NULL) + return other.m_info == NULL ? EqualTo : LessThan; + if (other.m_info == NULL) + return m_info == NULL ? EqualTo : GreaterThan; + return m_info->formatName.Compare(other.m_info->formatName); +} + + +void OpalMediaFormat::PrintOn(ostream & strm) const +{ + if (m_info != NULL) + strm << m_info->formatName; +} + + +void OpalMediaFormat::ReadFrom(istream & strm) +{ + char fmt[100]; + strm >> fmt; + operator=(fmt); +} + + +OpalMediaFormatList OpalMediaFormat::GetAllRegisteredMediaFormats() +{ + OpalMediaFormatList copy; + GetAllRegisteredMediaFormats(copy); + return copy; +} + + +void OpalMediaFormat::GetAllRegisteredMediaFormats(OpalMediaFormatList & copy) +{ + PWaitAndSignal mutex(GetMediaFormatsListMutex()); + const OpalMediaFormatList & registeredFormats = GetMediaFormatsList(); + + for (PINDEX i = 0; i < registeredFormats.GetSize(); i++) + copy += registeredFormats[i]; +} + + +bool OpalMediaFormat::SetRegisteredMediaFormat(const OpalMediaFormat & mediaFormat) +{ + PWaitAndSignal mutex(GetMediaFormatsListMutex()); + const OpalMediaFormatList & registeredFormats = GetMediaFormatsList(); + + for (PINDEX i = 0; i < registeredFormats.GetSize(); i++) { + if (registeredFormats[i] == mediaFormat) { + /* Yes, this looks a little odd as we just did equality above and seem to + be assigning the left hand side with exactly the same value. But what + is really happening is the above only compares the name, and below + copies all of the attributes (OpalMediaFormatOtions) across. */ + registeredFormats[i] = mediaFormat; + return true; + } + } + + return false; +} + + +///////////////////////////////////////////////////////////////////////////// + +OpalMediaFormatInternal::OpalMediaFormatInternal(const char * fullName, + unsigned dsid, + RTP_DataFrame::PayloadTypes pt, + const char * en, + BOOL nj, + u... [truncated message content] |
From: <rjo...@us...> - 2007-11-15 01:21:54
|
Revision: 18861 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18861&view=rev Author: rjongbloed Date: 2007-11-14 17:21:59 -0800 (Wed, 14 Nov 2007) Log Message: ----------- Fixed issues when setting OpalMediaFormat option values, not making the instance unique correctly. Modified Paths: -------------- opal/trunk/include/opal/mediafmt.h opal/trunk/src/opal/mediafmt.cxx Modified: opal/trunk/include/opal/mediafmt.h =================================================================== --- opal/trunk/include/opal/mediafmt.h 2007-11-13 23:11:36 UTC (rev 18860) +++ opal/trunk/include/opal/mediafmt.h 2007-11-15 01:21:59 UTC (rev 18861) @@ -1059,7 +1059,7 @@ bool SetOptionValue( const PString & name, ///< Option name const PString & value ///< New option value as string - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionValue(name, value); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionValue(name, value); } /**Get the option value of the specified name as a boolean. The default value is returned if the option is not present. @@ -1078,7 +1078,7 @@ bool SetOptionBoolean( const PString & name, ///< Option name bool value ///< New value for option - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionBoolean(name, value); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionBoolean(name, value); } /**Get the option value of the specified name as an integer. The default value is returned if the option is not present. @@ -1098,7 +1098,7 @@ bool SetOptionInteger( const PString & name, ///< Option name int value ///< New value for option - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionInteger(name, value); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionInteger(name, value); } /**Get the option value of the specified name as a real. The default value is returned if the option is not present. @@ -1117,7 +1117,7 @@ bool SetOptionReal( const PString & name, ///< Option name double value ///< New value for option - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionReal(name, value); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionReal(name, value); } /**Get the option value of the specified name as an index into an enumeration list. The default value is returned if the option is not @@ -1137,7 +1137,7 @@ bool SetOptionEnum( const PString & name, ///< Option name PINDEX value ///< New value for option - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionEnum(name, value); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionEnum(name, value); } /**Get the option value of the specified name as a string. The default value is returned if the option is not present. @@ -1156,7 +1156,7 @@ bool SetOptionString( const PString & name, ///< Option name const PString & value ///< New value for option - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionString(name, value); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionString(name, value); } /**Get the option value of the specified name as an octet array. Returns FALSE if not present. @@ -1175,12 +1175,12 @@ bool SetOptionOctets( const PString & name, ///< Option name const PBYTEArray & octets ///< Octets in option - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionOctets(name, octets); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionOctets(name, octets); } bool SetOptionOctets( const PString & name, ///< Option name const BYTE * data, ///< Octets in option PINDEX length ///< Number of octets - ) { return m_info != NULL && MakeUnique() && m_info->SetOptionOctets(name, data, length); } + ) { MakeUnique(); return m_info != NULL && m_info->SetOptionOctets(name, data, length); } /**Get a copy of the list of media formats that have been registered. */ @@ -1202,7 +1202,7 @@ bool AddOption( OpalMediaOption * option, BOOL overwrite = FALSE - ) { return m_info != NULL && MakeUnique() && m_info->AddOption(option, overwrite); } + ) { MakeUnique(); return m_info != NULL && m_info->AddOption(option, overwrite); } /** * Determine if media format has the specified option. Modified: opal/trunk/src/opal/mediafmt.cxx =================================================================== --- opal/trunk/src/opal/mediafmt.cxx 2007-11-13 23:11:36 UTC (rev 18860) +++ opal/trunk/src/opal/mediafmt.cxx 2007-11-15 01:21:59 UTC (rev 18861) @@ -968,6 +968,7 @@ void OpalMediaFormat::CloneContents(const OpalMediaFormat * c) { m_info = (OpalMediaFormatInternal *)c->m_info->Clone(); + m_info->options.MakeUnique(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hfr...@us...> - 2007-11-17 15:01:30
|
Revision: 18886 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18886&view=rev Author: hfriederich Date: 2007-11-17 07:01:35 -0800 (Sat, 17 Nov 2007) Log Message: ----------- Listen for interface changes and invalidate STUN cache when interfaces change. Invalidate stun pointers in PMonitoredSockets when STUN client is deleted. Modified Paths: -------------- opal/trunk/include/opal/manager.h opal/trunk/src/opal/manager.cxx Modified: opal/trunk/include/opal/manager.h =================================================================== --- opal/trunk/include/opal/manager.h 2007-11-17 14:59:33 UTC (rev 18885) +++ opal/trunk/include/opal/manager.h 2007-11-17 15:01:35 UTC (rev 18886) @@ -1362,10 +1362,26 @@ WORD max; WORD current; } tcpPorts, udpPorts, rtpIpPorts; + + class InterfaceMonitor : public PInterfaceMonitorClient + { + PCLASSINFO(InterfaceMonitor, PInterfaceMonitorClient); + + public: + InterfaceMonitor(PSTUNClient * stun); + virtual PINDEX GetPriority() const { return 100; } + + protected: + virtual void OnAddInterface(const PIPSocket::InterfaceEntry & entry); + virtual void OnRemoveInterface(const PIPSocket::InterfaceEntry & entry); + + PSTUNClient * stun; + }; PIPSocket::Address translationAddress; PString stunServer; PSTUNClient * stun; + InterfaceMonitor * interfaceMonitor; RouteTable routeTable; PMutex routeTableMutex; Modified: opal/trunk/src/opal/manager.cxx =================================================================== --- opal/trunk/src/opal/manager.cxx 2007-11-17 14:59:33 UTC (rev 18885) +++ opal/trunk/src/opal/manager.cxx 2007-11-17 15:01:35 UTC (rev 18886) @@ -506,6 +506,7 @@ , noMediaTimeout(0, 0, 5) // Minutes , translationAddress(0) // Invalid address to disable , stun(NULL) + , interfaceMonitor(NULL) , activeCalls(*this) , clearingAllCalls(FALSE) #if OPAL_RTP_AGGREGATE @@ -577,6 +578,7 @@ delete garbageCollector; delete stun; + delete interfaceMonitor; PTRACE(4, "OpalMan\tDeleted manager."); } @@ -1271,16 +1273,22 @@ stunServer = server; if (server.IsEmpty()) { + if (stun) { + PInterfaceMonitor::GetInstance().OnRemoveSTUNClient(stun); + } delete stun; + delete interfaceMonitor; stun = NULL; + interfaceMonitor = NULL; return PSTUNClient::UnknownNat; } - if (stun == NULL) + if (stun == NULL) { stun = new PSTUNClient(server, GetUDPPortBase(), GetUDPPortMax(), GetRtpIpPortBase(), GetRtpIpPortMax()); - else + interfaceMonitor = new InterfaceMonitor(stun); + } else stun->SetServer(server); PSTUNClient::NatTypes type = stun->GetNatType(); @@ -1558,6 +1566,24 @@ ///////////////////////////////////////////////////////////////////////////// +OpalManager::InterfaceMonitor::InterfaceMonitor(PSTUNClient * _stun) +: stun(_stun) +{ +} + +void OpalManager::InterfaceMonitor::OnAddInterface(const PIPSocket::InterfaceEntry & /*entry*/) +{ + stun->InvalidateExternalAddressCache(); +} + +void OpalManager::InterfaceMonitor::OnRemoveInterface(const PIPSocket::InterfaceEntry & /*entry*/) +{ + stun->InvalidateExternalAddressCache(); +} + + +///////////////////////////////////////////////////////////////////////////// + OpalRecordManager::Mixer_T::Mixer_T() : OpalAudioMixer(TRUE) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dsa...@us...> - 2007-11-19 21:48:18
|
Revision: 18895 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18895&view=rev Author: dsandras Date: 2007-11-19 13:48:23 -0800 (Mon, 19 Nov 2007) Log Message: ----------- Added support for 423 Interval Too Brief (Ekiga #429066) thanks to Will Hawkins <will hawkins itt com>. Many thanks ! Modified Paths: -------------- opal/trunk/include/sip/sipep.h opal/trunk/src/sip/sipep.cxx Modified: opal/trunk/include/sip/sipep.h =================================================================== --- opal/trunk/include/sip/sipep.h 2007-11-19 21:37:39 UTC (rev 18894) +++ opal/trunk/include/sip/sipep.h 2007-11-19 21:48:23 UTC (rev 18895) @@ -618,6 +618,13 @@ OpalTransport & transport, SIP_PDU * pdu ); + + /**Handle an incoming IntervalTooBrief response PDU + */ + virtual void OnReceivedIntervalTooBrief( + SIPTransaction & transaction, + SIP_PDU & response) + ; /**Handle an incoming Proxy Authentication Required response PDU */ Modified: opal/trunk/src/sip/sipep.cxx =================================================================== --- opal/trunk/src/sip/sipep.cxx 2007-11-19 21:37:39 UTC (rev 18894) +++ opal/trunk/src/sip/sipep.cxx 2007-11-19 21:48:23 UTC (rev 18895) @@ -1132,6 +1132,9 @@ } switch (response.GetStatusCode()) { + case SIP_PDU::Failure_IntervalTooBrief : + OnReceivedIntervalTooBrief(transaction, response); + break; case SIP_PDU::Failure_UnAuthorised : case SIP_PDU::Failure_ProxyAuthenticationRequired : OnReceivedAuthenticationRequired(transaction, response); @@ -1194,7 +1197,29 @@ return TRUE; } +void SIPEndPoint::OnReceivedIntervalTooBrief(SIPTransaction & transaction, SIP_PDU & response) +{ + SIPTransaction *newTransaction = NULL; + const SIPMIMEInfo & responseMIME = response.GetMIME(); + PSafePtr<SIPHandler> callid_handler = activeSIPHandlers.FindSIPHandlerByCallID(response.GetMIME().GetCallID(), PSafeReadOnly); + if (!callid_handler) + return; + + newTransaction = callid_handler->CreateTransaction(transaction.GetTransport()); + if (newTransaction) { + callid_handler->SetIntervalRetries(++retries); + callid_handler->SetExpire(responseMIME.GetMinExpires()); + newTransaction->GetMIME().SetExpires(responseMIME.GetMinExpires()); + newTransaction->GetMIME().SetCallID(callid_handler->GetCallID()); + if (newTransaction->Start()) + return; + } + PTRACE(1, "SIP\t Could not restart REGISTER after IntervalTooBrief error!"); + callid_handler->OnFailed(SIP_PDU::Failure_IntervalTooBrief); + return; +} + void SIPEndPoint::OnReceivedAuthenticationRequired(SIPTransaction & transaction, SIP_PDU & response) { BOOL isProxy = response.GetStatusCode() == SIP_PDU::Failure_ProxyAuthenticationRequired; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-21 05:37:44
|
Revision: 18913 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18913&view=rev Author: rjongbloed Date: 2007-11-20 21:37:48 -0800 (Tue, 20 Nov 2007) Log Message: ----------- Upgrade of media format options negotiations so are correctly set from "normalised" options any user can set and "custom" options that are specific to individual codecs. Translations between the two are made via code in the codec plug in. Modified Paths: -------------- opal/trunk/include/codec/opalplugin.h opal/trunk/include/codec/opalpluginmgr.h opal/trunk/include/h323/h323caps.h opal/trunk/include/opal/mediafmt.h opal/trunk/plugins/video/H.261-vic/h261vic.cxx opal/trunk/src/codec/opalpluginmgr.cxx opal/trunk/src/h323/h323.cxx opal/trunk/src/h323/h323caps.cxx opal/trunk/src/opal/manager.cxx opal/trunk/src/opal/mediafmt.cxx opal/trunk/src/opal/transcoders.cxx Modified: opal/trunk/include/codec/opalplugin.h =================================================================== --- opal/trunk/include/codec/opalplugin.h 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/include/codec/opalplugin.h 2007-11-21 05:37:48 UTC (rev 18913) @@ -367,6 +367,27 @@ }; +// Normalised option names +#define PLUGINCODEC_OPTION_NEEDS_JITTER "Needs Jitter" +#define PLUGINCODEC_OPTION_CLOCK_RATE "Clock Rate" +#define PLUGINCODEC_OPTION_FRAME_TIME "Frame Time" +#define PLUGINCODEC_OPTION_MAX_FRAME_SIZE "Max Frame Size" +#define PLUGINCODEC_OPTION_MAX_BIT_RATE "Max Bit Rate" +#define PLUGINCODEC_OPTION_TARGET_BIT_RATE "Target Bit Rate" +#define PLUGINCODEC_OPTION_RX_FRAMES_PER_PACKET "Rx Frames per Packet" +#define PLUGINCODEC_OPTION_TX_FRAMES_PER_PACKET "Tx Frames Per Packet" +#define PLUGINCODEC_OPTION_FRAME_WIDTH "Frame Width" +#define PLUGINCODEC_OPTION_FRAME_HEIGHT "Frame Height" +#define PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH "Min Rx Frame Width" +#define PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT "Min Rx Frame Height" +#define PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH "Max Rx Frame Width" +#define PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT "Max Rx Frame Height" +#define PLUGINCODEC_OPTION_TEMPORAL_SPATIAL_TRADE_OFF "Temporal Spatial Trade Off" +#define PLUGINCODEC_OPTION_TX_KEY_FRAME_PERIOD "Tx Key Frame Period" + + +// Full definition of the codec + struct PluginCodec_Definition { unsigned int version; // codec structure version Modified: opal/trunk/include/codec/opalpluginmgr.h =================================================================== --- opal/trunk/include/codec/opalpluginmgr.h 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/include/codec/opalpluginmgr.h 2007-11-21 05:37:48 UTC (rev 18913) @@ -263,7 +263,7 @@ int Call(void * parm, unsigned * parmLen, void * context = NULL) const { - return controlDef != NULL ? (*controlDef->control)(codecDef, context, fnName, parm, parmLen) : 0; + return controlDef != NULL ? (*controlDef->control)(codecDef, context, fnName, parm, parmLen) : -1; } int Call(void * parm, unsigned parmLen, void * context = NULL) const @@ -271,6 +271,8 @@ return Call(parm, &parmLen, context); } + const char * GetName() const { return fnName; } + protected: const PluginCodec_Definition * codecDef; const char * fnName; @@ -285,6 +287,7 @@ public: OpalPluginMediaFormatInternal(const PluginCodec_Definition * defn); + bool AdjustOptions(OpalMediaFormatInternal & fmt, OpalPluginControl & control) const; void PopulateOptions(OpalMediaFormatInternal & format); void SetOldStyleOption(OpalMediaFormatInternal & format, const PString & _key, const PString & _val, const PString & type); bool IsValidForProtocol(const PString & _protocol) const; @@ -293,6 +296,8 @@ OpalPluginControl getOptionsControl; OpalPluginControl freeOptionsControl; OpalPluginControl validForProtocolControl; + OpalPluginControl toNormalisedControl; + OpalPluginControl toCustomisedControl; }; @@ -314,6 +319,7 @@ OpalPluginTranscoder(const PluginCodec_Definition * defn, BOOL isEnc); ~OpalPluginTranscoder(); + bool UpdateOptions(const OpalMediaFormat & fmt); BOOL Transcode(const void * from, unsigned * fromLen, void * to, unsigned * toLen, unsigned * flags) const { return codecDef != NULL && codecDef->codecFunction != NULL && @@ -348,6 +354,8 @@ ); virtual PObject * Clone() const; virtual bool IsValidForProtocol(const PString & protocol) const; + virtual bool ToNormalisedOptions(); + virtual bool ToCustomisedOptions(); }; @@ -356,6 +364,7 @@ PCLASSINFO(OpalPluginFramedAudioTranscoder, OpalFramedTranscoder); public: OpalPluginFramedAudioTranscoder(PluginCodec_Definition * _codec, BOOL _isEncoder, const char * rawFormat = OpalPCM16); + BOOL UpdateOutputMediaFormat(const OpalMediaFormat & fmt); BOOL ConvertFrame(const BYTE * input, PINDEX & consumed, BYTE * output, PINDEX & created); virtual BOOL ConvertSilentFrame(BYTE * buffer); }; @@ -366,6 +375,7 @@ PCLASSINFO(OpalPluginStreamedAudioTranscoder, OpalStreamedTranscoder); public: OpalPluginStreamedAudioTranscoder(PluginCodec_Definition * _codec, BOOL _isEncoder, unsigned inputBits, unsigned outputBits, PINDEX optimalBits); + BOOL UpdateOutputMediaFormat(const OpalMediaFormat & fmt); }; @@ -401,6 +411,8 @@ ); virtual PObject * Clone() const; virtual bool IsValidForProtocol(const PString & protocol) const; + virtual bool ToNormalisedOptions(); + virtual bool ToCustomisedOptions(); }; @@ -688,7 +700,7 @@ virtual unsigned GetSubType() const; - static BOOL SetCommonOptions(OpalMediaFormat & mediaFormat, int frameWidth, int frameHeight, int frameRate); + static BOOL SetOptionsFromMPI(OpalMediaFormat & mediaFormat, int frameWidth, int frameHeight, int frameRate); virtual void PrintOn(std::ostream & strm) const; Modified: opal/trunk/include/h323/h323caps.h =================================================================== --- opal/trunk/include/h323/h323caps.h 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/include/h323/h323caps.h 2007-11-21 05:37:48 UTC (rev 18913) @@ -566,6 +566,8 @@ private: OpalMediaFormat mediaFormat; + + friend class H323Capabilities; }; @@ -2324,6 +2326,14 @@ H323Capability * cap ///< New capability specification ); + /**Add matching capability to media format. + */ + PINDEX AddMediaFormat( + PINDEX descriptorNum, ///< The member of the capabilityDescriptor to add + PINDEX simultaneous, ///< The member of the SimultaneousCapabilitySet to add + const OpalMediaFormat & mediaFormat ///< Media format to add. + ); + /**Add all matching capabilities to descriptor lists. All capabilities that match the specified name are added as in the other form of the SetCapability() function. Modified: opal/trunk/include/opal/mediafmt.h =================================================================== --- opal/trunk/include/opal/mediafmt.h 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/include/opal/mediafmt.h 2007-11-21 05:37:48 UTC (rev 18913) @@ -613,7 +613,8 @@ } } - virtual Comparison CompareValue(const OpalMediaOption & option) const { + virtual Comparison CompareValue(const OpalMediaOption & option) const + { const OpalMediaOptionValue * otherOption = PDownCast(const OpalMediaOptionValue, &option); if (otherOption == NULL) return GreaterThan; @@ -632,9 +633,21 @@ m_value = otherOption->m_value; } - T GetValue() const { return m_value; } - void SetValue(T value) { m_value = value; } + T GetValue() const + { + return m_value; + } + void SetValue(T value) + { + if (value < m_minimum) + m_value = m_minimum; + else if (value > m_maximum) + m_value = m_maximum; + else + m_value = value; + } + protected: T m_value; T m_minimum; @@ -765,9 +778,12 @@ time_t timeStamp ); + virtual void PrintOn(ostream & strm) const; + BOOL IsValid() const { return rtpPayloadType < RTP_DataFrame::IllegalPayloadType && !formatName.IsEmpty(); } BOOL IsTransportable() const { return rtpPayloadType < RTP_DataFrame::MaxPayloadType && !rtpEncodingName.IsEmpty(); } + PStringToString GetOptions() const; bool GetOptionValue(const PString & name, PString & value) const; bool SetOptionValue(const PString & name, const PString & value); bool GetOptionBoolean(const PString & name, bool dflt) const; @@ -786,9 +802,10 @@ bool AddOption(OpalMediaOption * option, BOOL overwrite = FALSE); OpalMediaOption * FindOption(const PString & name) const; + virtual bool ToNormalisedOptions(); + virtual bool ToCustomisedOptions(); virtual bool Merge(const OpalMediaFormatInternal & mediaFormat); virtual bool IsValidForProtocol(const PString & protocol) const; - virtual void PrintOptions(ostream & strm) const; protected: PCaselessString formatName; @@ -933,6 +950,8 @@ virtual Comparison Compare(const PObject & obj) const; /**Print media format. + Note if the user specifies a width (using setw() for example) of -1, then + a details multi-line output of all the options for the format is included. */ virtual void PrintOn(ostream & strm) const; @@ -940,6 +959,17 @@ */ virtual void ReadFrom(istream & strm); + /**This will translate the codec specific "custom" options to OPAL + "normalised" options, e.g. For H.261 "QCIF MPI"="1", "CIF MPI"="5" + would be translated to "Frame Width"="176", "Frame Height"="144". + */ + bool ToNormalisedOptions() { MakeUnique(); return m_info != NULL && m_info->ToNormalisedOptions(); } + + /**This will do the reverse of ToNormalisedOptions, translating the OPAL + "normalised" options to codec specific "custom" options. + */ + bool ToCustomisedOptions() { MakeUnique(); return m_info != NULL && m_info->ToCustomisedOptions(); } + /**Merge with another media format. This will alter and validate the options for this media format according to the merge rule for each option. The parameter is typically a "capability" while the @@ -952,7 +982,7 @@ */ bool Merge( const OpalMediaFormat & mediaFormat - ) { return m_info != NULL && mediaFormat.m_info != NULL && m_info->Merge(*mediaFormat.m_info); } + ) { MakeUnique(); return m_info != NULL && mediaFormat.m_info != NULL && m_info->Merge(*mediaFormat.m_info); } /**Get the name of the format */ @@ -1030,6 +1060,11 @@ unsigned GetClockRate() const { return m_info == NULL ? 0 : m_info->GetOptionInteger(ClockRateOption(), 1000); } static const PString & ClockRateOption(); + /**Get all of the option values of the format as a dictionary. + Each entry is a name value pair. + */ + PStringToString GetOptions() const { return m_info == NULL ? PStringToString() : m_info->GetOptions(); } + /**Get the number of options this media format has. */ PINDEX GetOptionCount() const { return m_info == NULL ? 0 : m_info->options.GetSize(); } @@ -1229,11 +1264,10 @@ ostream & PrintOptions(ostream & strm) const { if (m_info != NULL) - m_info->PrintOptions(strm); + strm << setw(-1) << m_info; return strm; } - // Backward compatibility virtual BOOL IsEmpty() const { return m_info == NULL || !m_info->IsValid(); } operator PString() const { return m_info == NULL ? "" : m_info->formatName; } @@ -1350,10 +1384,13 @@ static const PString & FrameWidthOption(); static const PString & FrameHeightOption(); - static const PString & EncodingQualityOption(); + static const PString & MinRxFrameWidthOption(); + static const PString & MinRxFrameHeightOption(); + static const PString & MaxRxFrameWidthOption(); + static const PString & MaxRxFrameHeightOption(); static const PString & TargetBitRateOption(); - static const PString & DynamicVideoQualityOption(); - static const PString & AdaptivePacketDelayOption(); + static const PString & TemporalSpatialTradeOffOption(); + static const PString & TxKeyFramePeriodOption(); }; #endif Modified: opal/trunk/plugins/video/H.261-vic/h261vic.cxx =================================================================== --- opal/trunk/plugins/video/H.261-vic/h261vic.cxx 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/plugins/video/H.261-vic/h261vic.cxx 2007-11-21 05:37:48 UTC (rev 18913) @@ -146,6 +146,9 @@ //#define DEBUG_OUTPUT 1 +#define _CRT_NONSTDC_NO_DEPRECATE 1 +#define _CRT_SECURE_NO_WARNINGS 1 + #include <codec/opalplugin.h> #include <stdlib.h> @@ -624,11 +627,11 @@ const char ** options = (const char **)parm; int i; for (i = 0; options[i] != NULL; i += 2) { - if (STRCMPI(options[i], "Target Bit Rate") == 0) + if (STRCMPI(options[i], PLUGINCODEC_OPTION_TARGET_BIT_RATE) == 0) context->SetTargetBitRate(atoi(options[i+1])); - if (STRCMPI(options[i], "Frame Height") == 0) + if (STRCMPI(options[i], PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT) == 0) height = atoi(options[i+1]); - if (STRCMPI(options[i], "Frame Width") == 0) + if (STRCMPI(options[i], PLUGINCODEC_OPTION_FRAME_WIDTH) == 0) width = atoi(options[i+1]); if (STRCMPI(options[i], "Adaptive Packet Delay") == 0) context->packetDelay = atoi(options[i+1]); @@ -792,11 +795,48 @@ } }; + +///////////////////////////////////////////////////////////////////////////// + +static struct PluginCodec_information licenseInfo = { + 1143692893, // timestamp = Thu 30 Mar 2006 04:28:13 AM UTC + + "Craig Southeren, Post Increment", // source code author + "1.0", // source code version + "cr...@po...", // source code email + "http://www.postincrement.com", // source code URL + "Copyright (C) 2004 by Post Increment, All Rights Reserved", // source code copyright + "MPL 1.0", // source code license + PluginCodec_License_MPL, // source code license + + "VIC H.261", // codec description + "", // codec author + "", // codec version + "", // codec email + "", // codec URL + "Copyright (c) 1994 Regents of the University of California", // codec copyright information + NULL, // codec license + PluginCodec_License_BSD // codec license code +}; + +static const char YUV420PDesc[] = { "YUV420P" }; + +static const char h261QCIFDesc[] = { "H.261-QCIF" }; +static const char h261CIFDesc[] = { "H.261-CIF" }; +static const char h261Desc[] = { "H.261" }; + +static const char sdpH261[] = { "h261" }; + +static const char QCIF_MPI[] = "QCIF MPI"; +static const char CIF_MPI[] = "CIF MPI"; + + static void * create_decoder(const struct PluginCodec_Definition *) { return new H261DecoderContext; } + static int decoder_set_options( const struct PluginCodec_Definition *, void * _context, @@ -820,12 +860,14 @@ return 1; } + static void destroy_decoder(const struct PluginCodec_Definition * /*codec*/, void * _context) { H261DecoderContext * context = (H261DecoderContext *)_context; delete context; } + static int codec_decoder(const struct PluginCodec_Definition *, void * _context, const void * from, @@ -838,6 +880,7 @@ return context->DecodeFrames((const u_char *)from, *fromLen, (u_char *)to, *toLen, *flag); } + static int decoder_get_output_data_size(const PluginCodec_Definition * codec, void *, const char *, void *, unsigned *) { // this is really frame height * frame width; @@ -846,69 +889,243 @@ static int get_codec_options(const struct PluginCodec_Definition * codec, - void *, - const char *, - void * parm, - unsigned * parmLen) + void *, + const char *, + void * parm, + unsigned * parmLen) { if (parmLen == NULL || parm == NULL || *parmLen != sizeof(struct PluginCodec_Option **)) return 0; *(const void **)parm = codec->userData; + *parmLen = 0; return 1; } -///////////////////////////////////////////////////////////////////////////// +static char * num2str(int num) +{ + char buf[20]; + sprintf(buf, "%i", num); + return strdup(buf); +} -static struct PluginCodec_information licenseInfo = { - 1143692893, // timestamp = Thu 30 Mar 2006 04:28:13 AM UTC - "Craig Southeren, Post Increment", // source code author - "1.0", // source code version - "cr...@po...", // source code email - "http://www.postincrement.com", // source code URL - "Copyright (C) 2004 by Post Increment, All Rights Reserved", // source code copyright - "MPL 1.0", // source code license - PluginCodec_License_MPL, // source code license +static int ClampSize(int pixels, int maximum) +{ + // Set to nearest of the two possible sizes + return pixels < maximum ? maximum/2 : maximum; +} + + +/* Convert the custom options for the codec to normalised options. + For H.261 the custom options are "QCIF MPI" and "CIF MPI" which will + restrict the min/max width/height and maximum frame rate. + */ +static int to_normalised_options(const struct PluginCodec_Definition *, void *, const char *, void * parm, unsigned * parmLen) +{ + if (parmLen == NULL || parm == NULL || *parmLen != sizeof(char ***)) + return 0; + + int qcif_mpi = 5; + int cif_mpi = 5; + int frameWidth = 352; + int frameHeight = 288; + for (const char * const * option = *(const char * const * *)parm; *option != NULL; option += 2) { + if (STRCMPI(option[0], QCIF_MPI) == 0) + qcif_mpi = atoi(option[1]); + else if (STRCMPI(option[0], CIF_MPI) == 0) + cif_mpi = atoi(option[1]); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_FRAME_WIDTH) == 0) + frameWidth = ClampSize(atoi(option[1]), 352); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_FRAME_HEIGHT) == 0) + frameHeight = ClampSize(atoi(option[1]), 288); + } + + int minWidth = 176; + int minHeight = 144; + int maxWidth = 352; + int maxHeight = 288; + int frameTime = 3003; + if (qcif_mpi != 5 && cif_mpi != 5) + frameTime = 3003*(qcif_mpi > cif_mpi ? qcif_mpi : cif_mpi); + else if (qcif_mpi != 5) { + maxWidth = 176; + maxHeight = 144; + frameTime = 3003*qcif_mpi; + } + else if (cif_mpi != 5) { + minWidth = 352; + minHeight = 288; + frameTime = 3003*cif_mpi; + } + else + return 0; // Illegal! + + char ** options = (char **)calloc(15, sizeof(char *)); + *(char ***)parm = options; + if (options == NULL) + return 0; + + options[ 0] = strdup(PLUGINCODEC_OPTION_FRAME_WIDTH); + options[ 1] = num2str(frameWidth); + options[ 2] = strdup(PLUGINCODEC_OPTION_FRAME_HEIGHT); + options[ 3] = num2str(frameHeight); + options[ 4] = strdup(PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH); + options[ 5] = num2str(minWidth); + options[ 6] = strdup(PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT); + options[ 7] = num2str(minHeight); + options[ 8] = strdup(PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH); + options[ 9] = num2str(maxWidth); + options[10] = strdup(PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT); + options[11] = num2str(maxHeight); + options[12] = strdup(PLUGINCODEC_OPTION_FRAME_TIME); + options[13] = num2str(frameTime); + + return 1; +} + + +/* Convert the normalised options to the codec custom options. + For H.261 the custom options are "QCIF MPI" and "CIF MPI" which are + set according to the min/max width/height and frame time. + */ +static int to_customised_options(const struct PluginCodec_Definition *, void *, const char *, void * parm, unsigned * parmLen) +{ + if (parmLen == NULL || parm == NULL || *parmLen != sizeof(char ***)) + return 0; + + int frameWidth = 352; + int frameHeight = 288; + int minWidth = 176; + int minHeight = 144; + int maxWidth = 352; + int maxHeight = 288; + int mpi = 1; + for (const char * const * option = *(const char * const * *)parm; *option != NULL; option += 2) { + if (STRCMPI(option[0], PLUGINCODEC_OPTION_FRAME_WIDTH) == 0) + frameWidth = ClampSize(atoi(option[1]), 352); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_FRAME_HEIGHT) == 0) + frameHeight = ClampSize(atoi(option[1]), 288); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH) == 0) + minWidth = ClampSize(atoi(option[1]), 352); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT) == 0) + minHeight = ClampSize(atoi(option[1]), 288); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH) == 0) + maxWidth = ClampSize(atoi(option[1]), 352); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT) == 0) + maxHeight = ClampSize(atoi(option[1]), 288); + else if (STRCMPI(option[0], PLUGINCODEC_OPTION_FRAME_TIME) == 0) + mpi = atoi(option[1])/3003; + } + + int qcif_mpi = 1; + int cif_mpi = 1; + if (minWidth > 176 || minHeight > 144) + qcif_mpi = 5; + if (maxWidth < 352 || maxHeight < 288) + cif_mpi = 5; + + if (mpi < 1) + mpi = 1; + else if (mpi > 4) + mpi = 4; + if (qcif_mpi < 5 && mpi > qcif_mpi) + qcif_mpi = mpi; + if (cif_mpi < 5 && mpi > cif_mpi) + cif_mpi = mpi; + + char ** options = (char **)calloc(17, sizeof(char *)); + *(char ***)parm = options; + if (options == NULL) + return 0; + + options[ 0] = strdup(PLUGINCODEC_OPTION_FRAME_WIDTH); + options[ 1] = num2str(frameWidth); + options[ 2] = strdup(PLUGINCODEC_OPTION_FRAME_HEIGHT); + options[ 3] = num2str(frameHeight); + options[ 4] = strdup(PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH); + options[ 5] = num2str(minWidth); + options[ 6] = strdup(PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT); + options[ 7] = num2str(minHeight); + options[ 8] = strdup(PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH); + options[ 9] = num2str(maxWidth); + options[10] = strdup(PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT); + options[11] = num2str(maxHeight); + options[12] = strdup(QCIF_MPI); + options[13] = num2str(qcif_mpi); + options[14] = strdup(CIF_MPI); + options[15] = num2str(cif_mpi); + + return 1; +} - "VIC H.261", // codec description - "", // codec author - "", // codec version - "", // codec email - "", // codec URL - "Copyright (c) 1994 Regents of the University of California", // codec copyright information - NULL, // codec license - PluginCodec_License_BSD // codec license code -}; -static const char YUV420PDesc[] = { "YUV420P" }; +static int free_codec_options(const struct PluginCodec_Definition *, void *, const char *, void * parm, unsigned * parmLen) +{ + if (parmLen == NULL || parm == NULL || *parmLen != sizeof(char ***)) + return 0; -static const char h261QCIFDesc[] = { "H.261-QCIF" }; -static const char h261CIFDesc[] = { "H.261-CIF" }; -static const char h261Desc[] = { "H.261" }; + char ** strings = (char **) parm; + for (char ** string = strings; *string != NULL; string++) + free(*string); + free(strings); + return 1; +} -static const char sdpH261[] = { "h261" }; static PluginCodec_ControlDefn EncoderControls[] = { - { "get_codec_options", get_codec_options }, - { "set_codec_options", encoder_set_options }, - { "get_output_data_size", encoder_get_output_data_size }, + { PLUGINCODEC_CONTROL_GET_CODEC_OPTIONS, get_codec_options }, + { PLUGINCODEC_CONTROL_TO_NORMALISED_OPTIONS, to_normalised_options }, + { PLUGINCODEC_CONTROL_TO_CUSTOMISED_OPTIONS, to_customised_options }, + { PLUGINCODEC_CONTROL_FREE_CODEC_OPTIONS, free_codec_options }, + { PLUGINCODEC_CONTROL_SET_CODEC_OPTIONS, encoder_set_options }, + { PLUGINCODEC_CONTROL_GET_OUTPUT_DATA_SIZE, encoder_get_output_data_size }, { NULL } }; static PluginCodec_ControlDefn DecoderControls[] = { - { "get_codec_options", get_codec_options }, - { "set_codec_options", decoder_set_options }, - { "get_output_data_size", decoder_get_output_data_size }, + { PLUGINCODEC_CONTROL_GET_CODEC_OPTIONS, get_codec_options }, + { PLUGINCODEC_CONTROL_TO_NORMALISED_OPTIONS, to_normalised_options }, + { PLUGINCODEC_CONTROL_TO_CUSTOMISED_OPTIONS, to_customised_options }, + { PLUGINCODEC_CONTROL_FREE_CODEC_OPTIONS, free_codec_options }, + { PLUGINCODEC_CONTROL_SET_CODEC_OPTIONS, decoder_set_options }, + { PLUGINCODEC_CONTROL_GET_OUTPUT_DATA_SIZE, decoder_get_output_data_size }, { NULL } }; +static struct PluginCodec_Option const minRxFrameWidth = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH, true, PluginCodec_NoMerge, "176", NULL, NULL, 0, "176", "352" }; +static struct PluginCodec_Option const minRxFrameHeight = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT, true, PluginCodec_NoMerge, "144", NULL, NULL, 0, "144", "288" }; +static struct PluginCodec_Option const maxRxFrameWidth = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH, true, PluginCodec_NoMerge, "352", NULL, NULL, 0, "176", "352" }; +static struct PluginCodec_Option const maxRxFrameHeight = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT, true, PluginCodec_NoMerge, "288", NULL, NULL, 0, "144", "288" }; + +static struct PluginCodec_Option const minRxFrameWidthQCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH, true, PluginCodec_NoMerge, "176", NULL, NULL, 0, "176", "176" }; +static struct PluginCodec_Option const minRxFrameHeightQCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT, true, PluginCodec_NoMerge, "144", NULL, NULL, 0, "144", "144" }; +static struct PluginCodec_Option const maxRxFrameWidthQCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH, true, PluginCodec_NoMerge, "176", NULL, NULL, 0, "176", "176" }; +static struct PluginCodec_Option const maxRxFrameHeightQCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT, true, PluginCodec_NoMerge, "144", NULL, NULL, 0, "144", "144" }; + +static struct PluginCodec_Option const minRxFrameWidthCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH, true, PluginCodec_NoMerge, "352", NULL, NULL, 0, "352", "352" }; +static struct PluginCodec_Option const minRxFrameHeightCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT, true, PluginCodec_NoMerge, "288", NULL, NULL, 0, "288", "288" }; +static struct PluginCodec_Option const maxRxFrameWidthCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH, true, PluginCodec_NoMerge, "352", NULL, NULL, 0, "352", "352" }; +static struct PluginCodec_Option const maxRxFrameHeightCIF = + { PluginCodec_IntegerOption, PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT, true, PluginCodec_NoMerge, "288", NULL, NULL, 0, "288", "288" }; + static struct PluginCodec_Option const qcifMPI = - { PluginCodec_IntegerOption, "QCIF MPI", false, PluginCodec_MaxMerge, "1", "QCIF", "0", 0, "0", "4" }; + { PluginCodec_IntegerOption, QCIF_MPI, false, PluginCodec_MaxMerge, "1", "QCIF", "5", 0, "1", "5" }; // 5 is disabled static struct PluginCodec_Option const cifMPI = - { PluginCodec_IntegerOption, "CIF MPI", false, PluginCodec_MaxMerge, "1", "CIF", "0", 0, "0", "4" }; + { PluginCodec_IntegerOption, CIF_MPI, false, PluginCodec_MaxMerge, "1", "CIF", "5", 0, "1", "5" }; // 5 is disabled /* The annex below is turned off and set to read/only because this implementation does not support them. It's presence here is so that if @@ -922,12 +1139,20 @@ static struct PluginCodec_Option const * const qcifOptionTable[] = { &qcifMPI, &annexD, + &minRxFrameWidthQCIF, + &minRxFrameHeightQCIF, + &maxRxFrameWidthQCIF, + &maxRxFrameHeightQCIF, NULL }; static struct PluginCodec_Option const * const cifOptionTable[] = { &cifMPI, &annexD, + &minRxFrameWidthCIF, + &minRxFrameHeightCIF, + &maxRxFrameWidthCIF, + &maxRxFrameHeightCIF, NULL }; @@ -935,6 +1160,10 @@ &qcifMPI, &cifMPI, &annexD, + &minRxFrameWidth, + &minRxFrameHeight, + &maxRxFrameWidth, + &maxRxFrameHeight, NULL }; Modified: opal/trunk/src/codec/opalpluginmgr.cxx =================================================================== --- opal/trunk/src/codec/opalpluginmgr.cxx 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/src/codec/opalpluginmgr.cxx 2007-11-21 05:37:48 UTC (rev 18913) @@ -346,21 +346,6 @@ #if OPAL_VIDEO -#define CIF_WIDTH 352 -#define CIF_HEIGHT 288 - -#define CIF4_WIDTH (CIF_WIDTH*2) -#define CIF4_HEIGHT (CIF_HEIGHT*2) - -#define CIF16_WIDTH (CIF_WIDTH*4) -#define CIF16_HEIGHT (CIF_HEIGHT*4) - -#define QCIF_WIDTH (CIF_WIDTH/2) -#define QCIF_HEIGHT (CIF_HEIGHT/2) - -#define SQCIF_WIDTH 128 -#define SQCIF_HEIGHT 96 - #if OPAL_H323 static const char * sqcifMPI_tag = "SQCIF MPI"; @@ -391,6 +376,11 @@ static const char * h323_bppMaxKb_tag = H323CAP_TAG_PREFIX "_bppMaxKb"; static const char * h323_errorCompensation_tag = H323CAP_TAG_PREFIX "_errorCompensation"; +inline static bool IsValidMPI(int mpi) +{ + return mpi > 0 && mpi < 5; +} + #endif // OPAL_H323 #endif // OPAL_VIDEO @@ -449,6 +439,8 @@ , getOptionsControl(defn, PLUGINCODEC_CONTROL_GET_CODEC_OPTIONS) , freeOptionsControl(defn, PLUGINCODEC_CONTROL_FREE_CODEC_OPTIONS) , validForProtocolControl(defn, PLUGINCODEC_CONTROL_VALID_FOR_PROTOCOL) + , toNormalisedControl (defn, PLUGINCODEC_CONTROL_TO_NORMALISED_OPTIONS) + , toCustomisedControl (defn, PLUGINCODEC_CONTROL_TO_CUSTOMISED_OPTIONS) { } @@ -699,12 +691,36 @@ } +bool OpalPluginMediaFormatInternal::AdjustOptions(OpalMediaFormatInternal & fmt, OpalPluginControl & control) const +{ + if (!control.Exists()) + return true; + + PTRACE(4, "OpalPlugin\t" << control.GetName() << ":\n" << setw(-1) << fmt); + + char ** input = fmt.GetOptions().ToCharArray(false); + char ** output = input; + + bool ok = control.Call(&output, sizeof(output)) != 0; + + if (output != NULL && output != input) { + for (char ** option = output; *option != NULL; option += 2) + fmt.SetOptionValue(option[0], option[1]); + freeOptionsControl.Call(output, sizeof(output)); + } + + free(input); + + return ok; +} + + bool OpalPluginMediaFormatInternal::IsValidForProtocol(const PString & _protocol) const { PString protocol(_protocol.ToLower()); if (validForProtocolControl.Exists()) - return validForProtocolControl.Call((void *)(const char *)protocol, sizeof(const char *)); + return validForProtocolControl.Call((void *)(const char *)protocol, sizeof(const char *)) != 0; if (protocol == "h.323" || protocol == "h323") return (codecDef->h323CapabilityType != PluginCodec_H323Codec_undefined) && @@ -759,6 +775,18 @@ } +bool OpalPluginAudioFormatInternal::ToNormalisedOptions() +{ + return AdjustOptions(*this, toNormalisedControl); +} + + +bool OpalPluginAudioFormatInternal::ToCustomisedOptions() +{ + return AdjustOptions(*this, toCustomisedControl); +} + + #if OPAL_H323 static H323Capability * CreateG7231Cap( @@ -822,6 +850,18 @@ } +bool OpalPluginVideoFormatInternal::ToNormalisedOptions() +{ + return AdjustOptions(*this, toNormalisedControl); +} + + +bool OpalPluginVideoFormatInternal::ToCustomisedOptions() +{ + return AdjustOptions(*this, toCustomisedControl); +} + + #if OPAL_H323 static H323Capability * CreateNonStandardVideoCap( @@ -971,6 +1011,18 @@ (*codecDef->destroyCodec)(codecDef, context); } + +bool OpalPluginTranscoder::UpdateOptions(const OpalMediaFormat & fmt) +{ + PTRACE(4, "OpalPlugin\t" << (isEncoder ? "Setting encoder options" : "Setting decoder options") << ":\n" << setw(-1) << fmt); + + char ** options = fmt.GetOptions().ToCharArray(false); + BOOL ok = setCodecOptions.Call(options, sizeof(options), context) != 0; + free(options); + return ok; +} + + ////////////////////////////////////////////////////////////////////////////// // // Plugin framed audio codec classes @@ -988,6 +1040,11 @@ outputIsRTP = (codecDef->flags & PluginCodec_OutputTypeMask) == PluginCodec_OutputTypeRTP; } +BOOL OpalPluginFramedAudioTranscoder::UpdateOutputMediaFormat(const OpalMediaFormat & fmt) +{ + return OpalFramedTranscoder::UpdateOutputMediaFormat(fmt) && UpdateOptions(fmt); +} + BOOL OpalPluginFramedAudioTranscoder::ConvertFrame(const BYTE * input, PINDEX & consumed, BYTE * output, @@ -1055,6 +1112,12 @@ { } +BOOL OpalPluginStreamedAudioTranscoder::UpdateOutputMediaFormat(const OpalMediaFormat & fmt) +{ + return OpalStreamedTranscoder::UpdateOutputMediaFormat(fmt) && UpdateOptions(fmt); +} + + OpalPluginStreamedAudioEncoder::OpalPluginStreamedAudioEncoder(PluginCodec_Definition * _codec, BOOL) : OpalPluginStreamedAudioTranscoder(_codec, TRUE, 16, @@ -1112,32 +1175,7 @@ BOOL OpalPluginVideoTranscoder::UpdateOutputMediaFormat(const OpalMediaFormat & fmt) { - if (setCodecOptions.Exists()) { - PStringArray list; - for (PINDEX i = 0; i < fmt.GetOptionCount(); i++) { - const OpalMediaOption & option = fmt.GetOption(i); - list += option.GetName(); - list += option.AsString(); - } - -#if PTRACING - if (PTrace::CanTrace(4)) { - ostream & strm = PTrace::Begin(4, __FILE__, __LINE__); - strm << "OpalPlugin\tSetting " << (isEncoder ? "en" : "de") << "coder options:\n"; - for (PINDEX i = 0; i < fmt.GetOptionCount(); i++) { - const OpalMediaOption & option = fmt.GetOption(i); - strm << " " << option.GetName() << " = " << option.AsString() << '\n'; - } - strm << PTrace::End; - } -#endif - - char ** options = list.ToCharArray(); - setCodecOptions.Call(options, sizeof(options), context); - free(options); - } - - return TRUE; + return OpalVideoTranscoder::UpdateOutputMediaFormat(fmt) && UpdateOptions(fmt); } @@ -1151,10 +1189,8 @@ dstList.RemoveAll(); // get the size of the output buffer - int outputDataSize; - if (getOutputDataSizeControl.Exists()) - outputDataSize = getOutputDataSizeControl.Call(&outputDataSize, sizeof(outputDataSize), context); - else + int outputDataSize = getOutputDataSizeControl.Call((void *)NULL, (unsigned *)NULL, context); + if (outputDataSize <= 0) outputDataSize = isEncoder ? PluginCodec_RTP_MaxPacketSize : GetOptimalDataFrameSize(FALSE); unsigned flags; @@ -2184,12 +2220,18 @@ } PString H323VideoPluginCapability::GetFormatName() const -{ return H323PluginCapabilityInfo::GetFormatName();} +{ + return H323PluginCapabilityInfo::GetFormatName(); +} + unsigned H323VideoPluginCapability::GetSubType() const -{ return pluginSubType; } +{ + return pluginSubType; +} -BOOL H323VideoPluginCapability::SetCommonOptions(OpalMediaFormat & mediaFormat, int frameWidth, int frameHeight, int frameRate) + +BOOL H323VideoPluginCapability::SetOptionsFromMPI(OpalMediaFormat & mediaFormat, int frameWidth, int frameHeight, int frameRate) { if (!mediaFormat.SetOptionInteger(OpalVideoFormat::FrameWidthOption(), frameWidth)) return FALSE; @@ -2203,6 +2245,7 @@ return TRUE; } + void H323VideoPluginCapability::PrintOn(std::ostream & strm) const { H323VideoCapability::PrintOn(strm); @@ -2235,11 +2278,11 @@ int other_qcifMPI = otherFormat.GetOptionInteger(qcifMPI_tag); int other_cifMPI = otherFormat.GetOptionInteger(cifMPI_tag); - if (((qcifMPI > 0) && (other_qcifMPI > 0)) || - ((cifMPI > 0) && (other_cifMPI > 0))) + if ((IsValidMPI(qcifMPI) && IsValidMPI(other_qcifMPI)) || + (IsValidMPI( cifMPI) && IsValidMPI(other_cifMPI))) return EqualTo; - if (qcifMPI > 0) + if (IsValidMPI(qcifMPI)) return LessThan; return GreaterThan; @@ -2271,12 +2314,12 @@ */ int qcifMPI = mediaFormat.GetOptionInteger(qcifMPI_tag, 0); - if (qcifMPI > 0) { + if (IsValidMPI(qcifMPI)) { h261.IncludeOptionalField(H245_H261VideoCapability::e_qcifMPI); h261.m_qcifMPI = qcifMPI; } int cifMPI = mediaFormat.GetOptionInteger(cifMPI_tag); - if (cifMPI > 0 || qcifMPI == 0) { + if (IsValidMPI(cifMPI)) { h261.IncludeOptionalField(H245_H261VideoCapability::e_cifMPI); h261.m_cifMPI = cifMPI; } @@ -2298,8 +2341,8 @@ int qcifMPI = mediaFormat.GetOptionInteger(qcifMPI_tag); - mode.m_resolution.SetTag(qcifMPI > 0 ? H245_H261VideoMode_resolution::e_qcif - : H245_H261VideoMode_resolution::e_cif); + mode.m_resolution.SetTag(IsValidMPI(qcifMPI) ? H245_H261VideoMode_resolution::e_qcif + : H245_H261VideoMode_resolution::e_cif); mode.m_bitRate = (mediaFormat.GetOptionInteger(OpalMediaFormat::MaxBitRateOption(), 621700) + 50) / 1000; mode.m_stillImageTransmission = mediaFormat.GetOptionBoolean(h323_stillImageTransmission_tag, FALSE); @@ -2320,7 +2363,7 @@ if (!mediaFormat.SetOptionInteger(qcifMPI_tag, h261.m_qcifMPI)) return FALSE; - if (!SetCommonOptions(mediaFormat, QCIF_WIDTH, QCIF_HEIGHT, h261.m_qcifMPI)) + if (!SetOptionsFromMPI(mediaFormat, PVideoFrameInfo::QCIFWidth, PVideoFrameInfo::QCIFHeight, h261.m_qcifMPI)) return FALSE; } @@ -2329,7 +2372,7 @@ if (!mediaFormat.SetOptionInteger(cifMPI_tag, h261.m_cifMPI)) return FALSE; - if (!SetCommonOptions(mediaFormat, QCIF_WIDTH, QCIF_HEIGHT, h261.m_cifMPI)) + if (!SetOptionsFromMPI(mediaFormat, PVideoFrameInfo::CIFWidth, PVideoFrameInfo::CIFHeight, h261.m_cifMPI)) return FALSE; } @@ -2374,20 +2417,20 @@ int other_cif4MPI = otherFormat.GetOptionInteger(cif4MPI_tag); int other_cif16MPI = otherFormat.GetOptionInteger(cif16MPI_tag); - if ((sqcifMPI && other_sqcifMPI) || - (qcifMPI && other_qcifMPI) || - (cifMPI && other_cifMPI) || - (cif4MPI && other_cif4MPI) || - (cif16MPI && other_cif16MPI)) { + if ((IsValidMPI(sqcifMPI) && IsValidMPI(other_sqcifMPI)) || + (IsValidMPI( qcifMPI) && IsValidMPI( other_qcifMPI)) || + (IsValidMPI( cifMPI) && IsValidMPI( other_cifMPI)) || + (IsValidMPI( cif4MPI) && IsValidMPI( other_cif4MPI)) || + (IsValidMPI(cif16MPI) && IsValidMPI(other_cif16MPI))) { PTRACE(5, "H.263\t" << *this << " == " << other); return EqualTo; } - if ((!cif16MPI && other_cif16MPI) || - (!cif4MPI && other_cif4MPI) || - (!cifMPI && other_cifMPI) || - (!qcifMPI && other_qcifMPI) || - (!sqcifMPI && other_sqcifMPI)) { + if ((!IsValidMPI(cif16MPI) && IsValidMPI(other_cif16MPI)) || + (!IsValidMPI( cif4MPI) && IsValidMPI( other_cif4MPI)) || + (!IsValidMPI( cifMPI) && IsValidMPI( other_cifMPI)) || + (!IsValidMPI( qcifMPI) && IsValidMPI( other_qcifMPI)) || + (!IsValidMPI(sqcifMPI) && IsValidMPI(other_sqcifMPI))) { PTRACE(5, "H.263\t" << *this << " < " << other); return LessThan; } @@ -2408,7 +2451,7 @@ PASN_Integer & slowMpi) { int mpiVal = mediaFormat.GetOptionInteger(mpiTag); - if (mpiVal > 0) { + if (IsValidMPI(mpiVal)) { h263.IncludeOptionalField(mpiEnum); mpi = mpiVal; } @@ -2475,11 +2518,11 @@ int cif4MPI = mediaFormat.GetOptionInteger(cif4MPI_tag); int cif16MPI = mediaFormat.GetOptionInteger(cif16MPI_tag); - mode.m_resolution.SetTag(cif16MPI ? H245_H263VideoMode_resolution::e_cif16 - :(cif4MPI ? H245_H263VideoMode_resolution::e_cif4 - :(cifMPI ? H245_H263VideoMode_resolution::e_cif - :(qcifMPI ? H245_H263VideoMode_resolution::e_qcif - : H245_H263VideoMode_resolution::e_sqcif)))); + mode.m_resolution.SetTag(IsValidMPI(cif16MPI) ? H245_H263VideoMode_resolution::e_cif16 + : (IsValidMPI(cif4MPI) ? H245_H263VideoMode_resolution::e_cif4 + : (IsValidMPI(cifMPI) ? H245_H263VideoMode_resolution::e_cif + : (IsValidMPI(qcifMPI) ? H245_H263VideoMode_resolution::e_qcif + : H245_H263VideoMode_resolution::e_sqcif)))); mode.m_bitRate = (mediaFormat.GetOptionInteger(OpalMediaFormat::MaxBitRateOption(), 327600) + 50) / 100; mode.m_unrestrictedVector = mediaFormat.GetOptionBoolean(h323_unrestrictedVector_tag, FALSE); @@ -2505,7 +2548,7 @@ if (!mediaFormat.SetOptionInteger(mpiTag, mpi)) return FALSE; if (mpi != 0) { - if (!H323VideoPluginCapability::SetCommonOptions(mediaFormat, frameWidth, frameHeight, mpi)) + if (!H323VideoPluginCapability::SetOptionsFromMPI(mediaFormat, frameWidth, frameHeight, mpi)) return FALSE; formatDefined = TRUE; } @@ -2514,7 +2557,7 @@ if (!mediaFormat.SetOptionInteger(mpiTag, -(signed)slowMpi)) return FALSE; if (slowMpi != 0) { - if (!H323VideoPluginCapability::SetCommonOptions(mediaFormat, frameWidth, frameHeight, -(signed)slowMpi)) + if (!H323VideoPluginCapability::SetOptionsFromMPI(mediaFormat, frameWidth, frameHeight, -(signed)slowMpi)) return FALSE; formatDefined = TRUE; } @@ -2535,23 +2578,23 @@ #define COMPARE_MPI(field, slowField) \ if ( \ - ((GetMediaFormat().GetOptionInteger(field##_tag) > 0) ? TRUE : FALSE) \ + IsValidMPI(GetMediaFormat().GetOptionInteger(field##_tag)) \ != \ - (h263.HasOptionalField(H245_H263VideoCapability::e_##field) ? (h263.m_##field != 0) : FALSE) \ + (h263.HasOptionalField(H245_H263VideoCapability::e_##field) ? (h263.m_##field != 0) : false) \ ) \ - return FALSE; \ + return false; \ if ( \ - ((GetMediaFormat().GetOptionInteger(field##_tag) < 0) ? TRUE : FALSE) \ + IsValidMPI(GetMediaFormat().GetOptionInteger(field##_tag)) \ != \ - (h263.HasOptionalField(H245_H263VideoCapability::e_##slowField) ? (h263.m_##slowField != 0) : FALSE) \ + (h263.HasOptionalField(H245_H263VideoCapability::e_##slowField) ? (h263.m_##slowField != 0) : false) \ ) \ - return FALSE; \ + return false; \ if ( \ - ((GetMediaFormat().GetOptionInteger(field##_tag) < 0) ? TRUE : FALSE) \ + IsValidMPI(GetMediaFormat().GetOptionInteger(field##_tag)) \ != \ - (h263.HasOptionalField(H245_H263VideoCapability::e_##slowField) ? (h263.m_##slowField != 0) : FALSE) \ + (h263.HasOptionalField(H245_H263VideoCapability::e_##slowField) ? (h263.m_##slowField != 0) : false) \ ) \ - return FALSE; \ + return false; \ COMPARE_MPI(sqcifMPI, slowSqcifMPI); COMPARE_MPI(qcifMPI, slowQcifMPI); @@ -2575,19 +2618,19 @@ const H245_H263VideoCapability & h263 = cap; - if (!SetReceivedH263Cap(mediaFormat, cap, sqcifMPI_tag, H245_H263VideoCapability::e_sqcifMPI, h263.m_sqcifMPI, H245_H263VideoCapability::e_slowSqcifMPI, h263.m_slowSqcifMPI, SQCIF_WIDTH, SQCIF_HEIGHT, formatDefined)) + if (!SetReceivedH263Cap(mediaFormat, cap, sqcifMPI_tag, H245_H263VideoCapability::e_sqcifMPI, h263.m_sqcifMPI, H245_H263VideoCapability::e_slowSqcifMPI, h263.m_slowSqcifMPI, PVideoFrameInfo::SQCIFWidth, PVideoFrameInfo::SQCIFHeight, formatDefined)) return FALSE; - if (!SetReceivedH263Cap(mediaFormat, cap, qcifMPI_tag, H245_H263VideoCapability::e_qcifMPI, h263.m_qcifMPI, H245_H263VideoCapability::e_slowQcifMPI, h263.m_slowQcifMPI, QCIF_WIDTH, QCIF_HEIGHT, formatDefined)) + if (!SetReceivedH263Cap(mediaFormat, cap, qcifMPI_tag, H245_H263VideoCapability::e_qcifMPI, h263.m_qcifMPI, H245_H263VideoCapability::e_slowQcifMPI, h263.m_slowQcifMPI, PVideoFrameInfo::QCIFWidth, PVideoFrameInfo::QCIFHeight, formatDefined)) return FALSE; - if (!SetReceivedH263Cap(mediaFormat, cap, cifMPI_tag, H245_H263VideoCapability::e_cifMPI, h263.m_cifMPI, H245_H263VideoCapability::e_slowCifMPI, h263.m_slowCifMPI, CIF_WIDTH, CIF_HEIGHT, formatDefined)) + if (!SetReceivedH263Cap(mediaFormat, cap, cifMPI_tag, H245_H263VideoCapability::e_cifMPI, h263.m_cifMPI, H245_H263VideoCapability::e_slowCifMPI, h263.m_slowCifMPI, PVideoFrameInfo::CIFWidth, PVideoFrameInfo::CIFHeight, formatDefined)) return FALSE; - if (!SetReceivedH263Cap(mediaFormat, cap, cif4MPI_tag, H245_H263VideoCapability::e_cif4MPI, h263.m_cif4MPI, H245_H263VideoCapability::e_slowCif4MPI, h263.m_slowCif4MPI, CIF4_WIDTH, CIF4_HEIGHT, formatDefined)) + if (!SetReceivedH263Cap(mediaFormat, cap, cif4MPI_tag, H245_H263VideoCapability::e_cif4MPI, h263.m_cif4MPI, H245_H263VideoCapability::e_slowCif4MPI, h263.m_slowCif4MPI, PVideoFrameInfo::CIF4Width, PVideoFrameInfo::CIF4Height, formatDefined)) return FALSE; - if (!SetReceivedH263Cap(mediaFormat, cap, cif16MPI_tag, H245_H263VideoCapability::e_cif16MPI, h263.m_cif16MPI, H245_H263VideoCapability::e_slowCif16MPI, h263.m_slowCif16MPI, CIF16_WIDTH, CIF16_HEIGHT, formatDefined)) + if (!SetReceivedH263Cap(mediaFormat, cap, cif16MPI_tag, H245_H263VideoCapability::e_cif16MPI, h263.m_cif16MPI, H245_H263VideoCapability::e_slowCif16MPI, h263.m_slowCif16MPI, PVideoFrameInfo::CIF16Width, PVideoFrameInfo::CIF16Height, formatDefined)) return FALSE; if (!formatDefined) Modified: opal/trunk/src/h323/h323.cxx =================================================================== --- opal/trunk/src/h323/h323.cxx 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/src/h323/h323.cxx 2007-11-21 05:37:48 UTC (rev 18913) @@ -3611,7 +3611,7 @@ for (PINDEX i = 0; i < formats.GetSize(); i++) { OpalMediaFormat format = formats[i]; if (format.GetDefaultSessionID() == sessionOrder[s] && format.IsTransportable()) - simultaneous = localCapabilities.AddAllCapabilities(endpoint, 0, simultaneous, format, TRUE); + simultaneous = localCapabilities.AddMediaFormat(0, simultaneous, format); } } Modified: opal/trunk/src/h323/h323caps.cxx =================================================================== --- opal/trunk/src/h323/h323caps.cxx 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/src/h323/h323caps.cxx 2007-11-21 05:37:48 UTC (rev 18913) @@ -2371,6 +2371,24 @@ } +PINDEX H323Capabilities::AddMediaFormat(PINDEX descriptorNum, + PINDEX simultaneous, + const OpalMediaFormat & mediaFormat) +{ + PINDEX reply = descriptorNum == P_MAX_INDEX ? P_MAX_INDEX : simultaneous; + + if (FindCapability(mediaFormat, H323Capability::e_Unknown, true) == NULL) { + H323Capability * capability = H323Capability::Create(mediaFormat); + if (capability != NULL) { + capability->GetWritableMediaFormat() = mediaFormat; + reply = SetCapability(descriptorNum, simultaneous, capability); + } + } + + return reply; +} + + PINDEX H323Capabilities::AddAllCapabilities(PINDEX descriptorNum, PINDEX simultaneous, const PString & name, Modified: opal/trunk/src/opal/manager.cxx =================================================================== --- opal/trunk/src/opal/manager.cxx 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/src/opal/manager.cxx 2007-11-21 05:37:48 UTC (rev 18913) @@ -891,6 +891,8 @@ { mediaFormats.Remove(mediaFormatMask); mediaFormats.Reorder(mediaFormatOrder); + for (PINDEX i = 0; i < mediaFormats.GetSize(); i++) + mediaFormats[i].ToCustomisedOptions(); } Modified: opal/trunk/src/opal/mediafmt.cxx =================================================================== --- opal/trunk/src/opal/mediafmt.cxx 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/src/opal/mediafmt.cxx 2007-11-21 05:37:48 UTC (rev 18913) @@ -381,7 +381,9 @@ #include <opal/mediafmt.h> #include <opal/mediacmd.h> +#include <codec/opalplugin.h> #include <codec/opalwavfile.h> +#include <ptlib/videoio.h> #include <ptclib/cypher.h> @@ -487,6 +489,19 @@ } +static void Clamp(OpalMediaFormatInternal & fmt1, const OpalMediaFormatInternal & fmt2, const PString & variableOption, const PString & minOption, const PString & maxOption) +{ + unsigned value = fmt1.GetOptionInteger(variableOption, 0); + + unsigned minValue = fmt2.GetOptionInteger(minOption, 0); + unsigned maxValue = fmt2.GetOptionInteger(maxOption, UINT_MAX); + if (value < minValue) + fmt1.SetOptionInteger(variableOption, minValue); + else if (value > maxValue) + fmt1.SetOptionInteger(variableOption, maxValue); +} + + ///////////////////////////////////////////////////////////////////////////// OpalMediaOption::OpalMediaOption(const PString & name) @@ -857,12 +872,13 @@ ///////////////////////////////////////////////////////////////////////////// -const PString & OpalMediaFormat::NeedsJitterOption() { static PString s = "Needs Jitter"; return s; } -const PString & OpalMediaFormat::MaxBitRateOption() { static PString s = "Max Bit Rate"; return s; } -const PString & OpalMediaFormat::MaxFrameSizeOption(){ static PString s = "Max Frame Size"; return s; } -const PString & OpalMediaFormat::FrameTimeOption() { static PString s = "Frame Time"; return s; } -const PString & OpalMediaFormat::ClockRateOption() { static PString s = "Clock Rate"; return s; } +const PString & OpalMediaFormat::NeedsJitterOption() { static PString s = PLUGINCODEC_OPTION_NEEDS_JITTER; return s; } +const PString & OpalMediaFormat::MaxFrameSizeOption() { static PString s = PLUGINCODEC_OPTION_MAX_FRAME_SIZE; return s; } +const PString & OpalMediaFormat::FrameTimeOption() { static PString s = PLUGINCODEC_OPTION_FRAME_TIME; return s; } +const PString & OpalMediaFormat::ClockRateOption() { static PString s = PLUGINCODEC_OPTION_CLOCK_RATE; return s; } +const PString & OpalMediaFormat::MaxBitRateOption() { static PString s = PLUGINCODEC_OPTION_MAX_BIT_RATE; return s; } + OpalMediaFormat::OpalMediaFormat(OpalMediaFormatInternal * info) : m_info(NULL) { @@ -1005,7 +1021,7 @@ void OpalMediaFormat::PrintOn(ostream & strm) const { if (m_info != NULL) - strm << m_info->formatName; + strm << *m_info; } @@ -1133,6 +1149,15 @@ } +PStringToString OpalMediaFormatInternal::GetOptions() const +{ + PStringToString dict; + for (PINDEX i = 0; i < options.GetSize(); i++) + dict.SetAt(options[i].GetName(), options[i].AsString()); + return dict; +} + + bool OpalMediaFormatInternal::GetOptionValue(const PString & name, PString & value) const { PWaitAndSignal m(media_format_mutex); @@ -1201,6 +1226,18 @@ } +bool OpalMediaFormatInternal::ToNormalisedOptions() +{ + return true; +} + + +bool OpalMediaFormatInternal::ToCustomisedOptions() +{ + return true; +} + + bool OpalMediaFormatInternal::SetOptionInteger(const PString & name, int value) { PWaitAndSignal m(media_format_mutex); @@ -1387,10 +1424,15 @@ } -void OpalMediaFormatInternal::PrintOptions(ostream & strm) const +void OpalMediaFormatInternal::PrintOn(ostream & strm) const { PWaitAndSignal m(media_format_mutex); + if (strm.width() != -1) { + strm << formatName; + return; + } + static const char * const SessionNames[] = { "", " Audio", " Video", " Data", " H.224" }; static const int TitleWidth = 25; @@ -1424,8 +1466,8 @@ #if OPAL_AUDIO -const PString & OpalAudioFormat::RxFramesPerPacketOption() { static PString s = "Rx Frames Per Packet"; return s; } -const PString & OpalAudioFormat::TxFramesPerPacketOption() { static PString s = "Tx Frames Per Packet"; return s; } +const PString & OpalAudioFormat::RxFramesPerPacketOption() { static PString s = PLUGINCODEC_OPTION_RX_FRAMES_PER_PACKET; return s; } +const PString & OpalAudioFormat::TxFramesPerPacketOption() { static PString s = PLUGINCODEC_OPTION_TX_FRAMES_PER_PACKET; return s; } OpalAudioFormat::OpalAudioFormat(const char * fullName, RTP_DataFrame::PayloadTypes rtpPayloadType, @@ -1472,7 +1514,7 @@ clockRate, timeStamp) { - AddOption(new OpalMediaOptionUnsigned(OpalAudioFormat::RxFramesPerPacketOption(), false, OpalMediaOption::MinMerge, rxFrames, 1, maxFrames)); + AddOption(new OpalMediaOptionUnsigned(OpalAudioFormat::RxFramesPerPacketOption(), false, OpalMediaOption::NoMerge, rxFrames, 1, maxFrames)); AddOption(new OpalMediaOptionUnsigned(OpalAudioFormat::TxFramesPerPacketOption(), false, OpalMediaOption::NoMerge, txFrames, 1, maxFrames)); } @@ -1490,6 +1532,7 @@ if (!OpalMediaFormatInternal::Merge(mediaFormat)) return false; + Clamp(*this, mediaFormat, OpalAudioFormat::TxFramesPerPacketOption(), PString::Empty(), OpalAudioFormat::RxFramesPerPacketOption()); return true; } @@ -1499,13 +1542,17 @@ #if OPAL_VIDEO -const PString & OpalVideoFormat::FrameWidthOption() { static PString s = "Frame Width"; return s; } -const PString & OpalVideoFormat::FrameHeightOption() { static PString s = "Frame Height"; return s; } -const PString & OpalVideoFormat::EncodingQualityOption() { static PString s = "Encoding Quality"; return s; } -const PString & OpalVideoFormat::TargetBitRateOption() { static PString s = "Target Bit Rate"; return s; } -const PString & OpalVideoFormat::DynamicVideoQualityOption() { static PString s = "Dynamic Video Quality"; return s; } -const PString & OpalVideoFormat::AdaptivePacketDelayOption() { static PString s = "Adaptive Packet Delay"; return s; } +const PString & OpalVideoFormat::FrameWidthOption() { static PString s = PLUGINCODEC_OPTION_FRAME_WIDTH; return s; } +const PString & OpalVideoFormat::FrameHeightOption() { static PString s = PLUGINCODEC_OPTION_FRAME_HEIGHT; return s; } +const PString & OpalVideoFormat::MinRxFrameWidthOption() { static PString s = PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH; return s; } +const PString & OpalVideoFormat::MinRxFrameHeightOption() { static PString s = PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT; return s; } +const PString & OpalVideoFormat::MaxRxFrameWidthOption() { static PString s = PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH; return s; } +const PString & OpalVideoFormat::MaxRxFrameHeightOption() { static PString s = PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT; return s; } +const PString & OpalVideoFormat::TargetBitRateOption() { static PString s = PLUGINCODEC_OPTION_TARGET_BIT_RATE; return s; } +const PString & OpalVideoFormat::TemporalSpatialTradeOffOption(){ static PString s = PLUGINCODEC_OPTION_TEMPORAL_SPATIAL_TRADE_OFF;return s; } +const PString & OpalVideoFormat::TxKeyFramePeriodOption() { static PString s = PLUGINCODEC_OPTION_TX_KEY_FRAME_PERIOD; return s; } + OpalVideoFormat::OpalVideoFormat(const char * fullName, RTP_DataFrame::PayloadTypes rtpPayloadType, const char * encodingName, @@ -1545,12 +1592,13 @@ OpalMediaFormat::VideoClockRate, timeStamp) { - AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::FrameWidthOption(), false, OpalMediaOption::MinMerge, frameWidth, 11, 32767)); - AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::FrameHeightOption(), false, OpalMediaOption::MinMerge, frameHeight, 9, 32767)); - AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::EncodingQualityOption(), false, OpalMediaOption::MinMerge, 15, 1, 31)); - AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::TargetBitRateOption(), false, OpalMediaOption::MinMerge, 10000000, 1000)); - AddOption(new OpalMediaOptionBoolean(OpalVideoFormat::DynamicVideoQualityOption(), false, OpalMediaOption::NoMerge, false)); - AddOption(new OpalMediaOptionBoolean(OpalVideoFormat::AdaptivePacketDelayOption(), false, OpalMediaOption::NoMerge, false)); + AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::FrameWidthOption(), false, OpalMediaOption::MinMerge, frameWidth, 16, 32767)); + AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::FrameHeightOption(), false, OpalMediaOption::MinMerge, frameHeight,16, 32767)); + AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::MinRxFrameWidthOption(), false, OpalMediaOption::MinMerge, PVideoFrameInfo::SQCIFWidth, 16, 32767)); + AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::MinRxFrameHeightOption(), false, OpalMediaOption::MinMerge, PVideoFrameInfo::SQCIFHeight,16, 32767)); + AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::MaxRxFrameWidthOption(), false, OpalMediaOption::MinMerge, PVideoFrameInfo::CIF16Width, 16, 32767)); + AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::MaxRxFrameHeightOption(), false, OpalMediaOption::MinMerge, PVideoFrameInfo::CIF16Height,16, 32767)); + AddOption(new OpalMediaOptionUnsigned(OpalVideoFormat::TargetBitRateOption(), false, OpalMediaOption::MinMerge, 10000000, 100)); // For video the max bit rate and frame rate is adjustable by user FindOption(OpalVideoFormat::MaxBitRateOption())->SetReadOnly(false); @@ -1572,10 +1620,9 @@ if (!OpalMediaFormatInternal::Merge(mediaFormat)) return false; - unsigned maxBitRate = GetOptionInteger(OpalVideoFormat::MaxBitRateOption(), 0); - unsigned targetBitRate = GetOptionInteger(OpalVideoFormat::TargetBitRateOption(), 0); - if (targetBitRate > maxBitRate) - SetOptionInteger(OpalVideoFormat::TargetBitRateOption(), maxBitRate); + Clamp(*this, mediaFormat, OpalVideoFormat::TargetBitRateOption(), PString::Empty(), OpalMediaFormat::MaxBitRateOption()); + Clamp(*this, mediaFormat, OpalVideoFormat::FrameWidthOption(), OpalVideoFormat::MinRxFrameWidthOption(), OpalVideoFormat::MaxRxFrameWidthOption()); + Clamp(*this, mediaFormat, OpalVideoFormat::FrameHeightOption(), OpalVideoFormat::MinRxFrameHeightOption(), OpalVideoFormat::MaxRxFrameHeightOption()); return true; } Modified: opal/trunk/src/opal/transcoders.cxx =================================================================== --- opal/trunk/src/opal/transcoders.cxx 2007-11-21 02:24:20 UTC (rev 18912) +++ opal/trunk/src/opal/transcoders.cxx 2007-11-21 05:37:48 UTC (rev 18913) @@ -352,7 +352,10 @@ for (s = 0; s < srcFormats.GetSize(); s++) { srcFormat = srcFormats[s]; if (srcFormat == dstFormat) - return srcFormat.Merge(dstFormat) && dstFormat.Merge(srcFormat); + return srcFormat.Merge(dstFormat) && + dstFormat.Merge(srcFormat) && + srcFormat.ToNormalisedOptions() && + dstFormat.ToNormalisedOptions(); } } } @@ -371,7 +374,9 @@ return srcFormat.Merge(i->first) && dstFormat.Merge(i->second) && srcFormat.Me... [truncated message content] |
From: <rjo...@us...> - 2007-11-21 23:00:00
|
Revision: 18924 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18924&view=rev Author: rjongbloed Date: 2007-11-21 15:00:04 -0800 (Wed, 21 Nov 2007) Log Message: ----------- Renamed old DevStudio 2003 solution files so don't keep selecting them by accident when have 2005 installed. Added Paths: ----------- opal/trunk/opal_2003.sln opal/trunk/opal_samples_2003.sln opal/trunk/plugins/plugins_2003.sln Removed Paths: ------------- opal/trunk/opal.sln opal/trunk/opal_samples.sln opal/trunk/plugins/plugins.sln Deleted: opal/trunk/opal.sln =================================================================== --- opal/trunk/opal.sln 2007-11-21 22:58:14 UTC (rev 18923) +++ opal/trunk/opal.sln 2007-11-21 23:00:04 UTC (rev 18924) @@ -1,74 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL DLL", "samples\simple\simpleDLL.vcproj", "{331B7136-2B5F-48FD-B096-0DEFEEFD65A9}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL Static", "samples\simple\simple.vcproj", "{F5F40674-6CBD-459A-A2AA-EB3C084EE879}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL Static", "src\win32\opal_lib.vcproj", "{0C3AF508-06FF-47EF-BE5A-F72F41759246}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL DLL", "src\win32\opal_dll.vcproj", "{0BF5DA42-4607-485F-9342-51FD28854F3B}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib Static", "..\ptlib\src\ptlib\msos\Console.vcproj", "{E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib DLL", "..\ptlib\src\ptlib\msos\PTLib.vcproj", "{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - No Trace = No Trace - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.ActiveCfg = Debug|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.Build.0 = Debug|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.ActiveCfg = No Trace|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.Build.0 = No Trace|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.ActiveCfg = Release|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.Build.0 = Release|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.ActiveCfg = Debug|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.Build.0 = Debug|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.ActiveCfg = No Trace|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.Build.0 = No Trace|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.ActiveCfg = Release|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.Build.0 = Release|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.ActiveCfg = Debug|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.Build.0 = Debug|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.ActiveCfg = No Trace|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.Build.0 = No Trace|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.ActiveCfg = Release|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.Build.0 = Release|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.ActiveCfg = Debug|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.Build.0 = Debug|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.ActiveCfg = No Trace|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.Build.0 = No Trace|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.ActiveCfg = Release|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.Build.0 = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.ActiveCfg = Debug|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.Build.0 = Debug|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.ActiveCfg = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.Build.0 = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.ActiveCfg = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.Build.0 = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.ActiveCfg = Debug|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.Build.0 = Debug|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.ActiveCfg = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.Build.0 = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.ActiveCfg = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal Copied: opal/trunk/opal_2003.sln (from rev 18922, opal/trunk/opal.sln) =================================================================== --- opal/trunk/opal_2003.sln (rev 0) +++ opal/trunk/opal_2003.sln 2007-11-21 23:00:04 UTC (rev 18924) @@ -0,0 +1,74 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL DLL", "samples\simple\simpleDLL.vcproj", "{331B7136-2B5F-48FD-B096-0DEFEEFD65A9}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL Static", "samples\simple\simple.vcproj", "{F5F40674-6CBD-459A-A2AA-EB3C084EE879}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL Static", "src\win32\opal_lib.vcproj", "{0C3AF508-06FF-47EF-BE5A-F72F41759246}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL DLL", "src\win32\opal_dll.vcproj", "{0BF5DA42-4607-485F-9342-51FD28854F3B}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib Static", "..\ptlib\src\ptlib\msos\Console.vcproj", "{E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib DLL", "..\ptlib\src\ptlib\msos\PTLib.vcproj", "{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + No Trace = No Trace + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.ActiveCfg = Debug|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.Build.0 = Debug|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.ActiveCfg = No Trace|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.Build.0 = No Trace|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.ActiveCfg = Release|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.Build.0 = Release|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.ActiveCfg = Debug|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.Build.0 = Debug|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.ActiveCfg = No Trace|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.Build.0 = No Trace|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.ActiveCfg = Release|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.Build.0 = Release|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.ActiveCfg = Debug|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.Build.0 = Debug|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.ActiveCfg = No Trace|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.Build.0 = No Trace|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.ActiveCfg = Release|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.Build.0 = Release|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.ActiveCfg = Debug|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.Build.0 = Debug|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.ActiveCfg = No Trace|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.Build.0 = No Trace|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.ActiveCfg = Release|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.Build.0 = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.ActiveCfg = Debug|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.Build.0 = Debug|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.ActiveCfg = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.Build.0 = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.ActiveCfg = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.Build.0 = Release|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.ActiveCfg = Debug|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.Build.0 = Debug|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.ActiveCfg = Release|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.Build.0 = Release|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.ActiveCfg = Release|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal Deleted: opal/trunk/opal_samples.sln =================================================================== --- opal/trunk/opal_samples.sln 2007-11-21 22:58:14 UTC (rev 18923) +++ opal/trunk/opal_samples.sln 2007-11-21 23:00:04 UTC (rev 18924) @@ -1,152 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenPhone", "samples\openphone\OpenPhone.vcproj", "{99519B44-9773-4066-9F05-0C601C4E69FB}" - ProjectSection(ProjectDependencies) = postProject - {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL Static", "src\win32\opal_lib.vcproj", "{0C3AF508-06FF-47EF-BE5A-F72F41759246}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL Static", "samples\simple\simple.vcproj", "{F5F40674-6CBD-459A-A2AA-EB3C084EE879}" - ProjectSection(ProjectDependencies) = postProject - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5} = {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mfc", "samples\mfc\mfc.vcproj", "{38D607FB-43AE-49AA-8D13-C67C6E02AC60}" - ProjectSection(ProjectDependencies) = postProject - {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opalgw", "samples\opalgw\opalgw.vcproj", "{DDD77D77-3C43-49BC-B16E-FD51168E29B4}" - ProjectSection(ProjectDependencies) = postProject - {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL DLL", "src\win32\opal_dll.vcproj", "{0BF5DA42-4607-485F-9342-51FD28854F3B}" - ProjectSection(ProjectDependencies) = postProject - {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL DLL", "samples\simple\simpleDLL.vcproj", "{331B7136-2B5F-48FD-B096-0DEFEEFD65A9}" - ProjectSection(ProjectDependencies) = postProject - {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Jester", "samples\jester\jester.vcproj", "{04AB38FF-0E5D-464B-883A-1C96419E7E9C}" - ProjectSection(ProjectDependencies) = postProject - {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpalCodecInfo", "samples\opalcodecinfo\opalcodecinfo.vcproj", "{7FF55F1C-87EB-4087-8814-FD494BE49170}" - ProjectSection(ProjectDependencies) = postProject - {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib Static", "..\ptlib\src\ptlib\msos\Console.vcproj", "{E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib DLL", "..\ptlib\src\ptlib\msos\PTLib.vcproj", "{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodecTest", "samples\codectest\codectest_2003.vcproj", "{986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CallGen", "samples\callgen\callgen_2003.vcproj", "{B9210C82-C992-4308-B3A3-5A221ECABAB8}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - No Trace = No Trace - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {99519B44-9773-4066-9F05-0C601C4E69FB}.Debug.ActiveCfg = Debug|Win32 - {99519B44-9773-4066-9F05-0C601C4E69FB}.Debug.Build.0 = Debug|Win32 - {99519B44-9773-4066-9F05-0C601C4E69FB}.No Trace.ActiveCfg = No Trace|Win32 - {99519B44-9773-4066-9F05-0C601C4E69FB}.No Trace.Build.0 = No Trace|Win32 - {99519B44-9773-4066-9F05-0C601C4E69FB}.Release.ActiveCfg = Release|Win32 - {99519B44-9773-4066-9F05-0C601C4E69FB}.Release.Build.0 = Release|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.ActiveCfg = Debug|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.Build.0 = Debug|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.ActiveCfg = No Trace|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.Build.0 = No Trace|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.ActiveCfg = Release|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.Build.0 = Release|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.ActiveCfg = Debug|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.Build.0 = Debug|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.ActiveCfg = No Trace|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.Build.0 = No Trace|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.ActiveCfg = Release|Win32 - {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.Build.0 = Release|Win32 - {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Debug.ActiveCfg = Debug|Win32 - {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Debug.Build.0 = Debug|Win32 - {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.No Trace.ActiveCfg = No Trace|Win32 - {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.No Trace.Build.0 = No Trace|Win32 - {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Release.ActiveCfg = Release|Win32 - {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Release.Build.0 = Release|Win32 - {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Debug.ActiveCfg = Debug|Win32 - {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Debug.Build.0 = Debug|Win32 - {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.No Trace.ActiveCfg = No Trace|Win32 - {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.No Trace.Build.0 = No Trace|Win32 - {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Release.ActiveCfg = Release|Win32 - {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Release.Build.0 = Release|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.ActiveCfg = Debug|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.Build.0 = Debug|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.ActiveCfg = No Trace|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.Build.0 = No Trace|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.ActiveCfg = Release|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.Build.0 = Release|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.ActiveCfg = Debug|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.Build.0 = Debug|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.ActiveCfg = No Trace|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.Build.0 = No Trace|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.ActiveCfg = Release|Win32 - {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.Build.0 = Release|Win32 - {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Debug.ActiveCfg = Debug|Win32 - {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Debug.Build.0 = Debug|Win32 - {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.No Trace.ActiveCfg = No Trace|Win32 - {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.No Trace.Build.0 = No Trace|Win32 - {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Release.ActiveCfg = Release|Win32 - {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Release.Build.0 = Release|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Debug.ActiveCfg = Debug|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Debug.Build.0 = Debug|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.No Trace.ActiveCfg = No Trace|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.No Trace.Build.0 = No Trace|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Release.ActiveCfg = Release|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Release.Build.0 = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.ActiveCfg = Debug|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.Build.0 = Debug|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.ActiveCfg = No Trace|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.Build.0 = No Trace|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.ActiveCfg = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.Build.0 = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.ActiveCfg = Debug|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.Build.0 = Debug|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.ActiveCfg = No Trace|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.Build.0 = No Trace|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.ActiveCfg = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.Build.0 = Release|Win32 - {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Debug.ActiveCfg = Debug|Win32 - {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Debug.Build.0 = Debug|Win32 - {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.No Trace.ActiveCfg = No Trace|Win32 - {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.No Trace.Build.0 = No Trace|Win32 - {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Release.ActiveCfg = Release|Win32 - {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Release.Build.0 = Release|Win32 - {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Debug.ActiveCfg = Debug|Win32 - {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Debug.Build.0 = Debug|Win32 - {B9210C82-C992-4308-B3A3-5A221ECABAB8}.No Trace.ActiveCfg = No Tracing|Win32 - {B9210C82-C992-4308-B3A3-5A221ECABAB8}.No Trace.Build.0 = No Tracing|Win32 - {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Release.ActiveCfg = Release|Win32 - {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal Copied: opal/trunk/opal_samples_2003.sln (from rev 18922, opal/trunk/opal_samples.sln) =================================================================== --- opal/trunk/opal_samples_2003.sln (rev 0) +++ opal/trunk/opal_samples_2003.sln 2007-11-21 23:00:04 UTC (rev 18924) @@ -0,0 +1,152 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenPhone", "samples\openphone\OpenPhone.vcproj", "{99519B44-9773-4066-9F05-0C601C4E69FB}" + ProjectSection(ProjectDependencies) = postProject + {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL Static", "src\win32\opal_lib.vcproj", "{0C3AF508-06FF-47EF-BE5A-F72F41759246}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL Static", "samples\simple\simple.vcproj", "{F5F40674-6CBD-459A-A2AA-EB3C084EE879}" + ProjectSection(ProjectDependencies) = postProject + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5} = {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mfc", "samples\mfc\mfc.vcproj", "{38D607FB-43AE-49AA-8D13-C67C6E02AC60}" + ProjectSection(ProjectDependencies) = postProject + {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opalgw", "samples\opalgw\opalgw.vcproj", "{DDD77D77-3C43-49BC-B16E-FD51168E29B4}" + ProjectSection(ProjectDependencies) = postProject + {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL DLL", "src\win32\opal_dll.vcproj", "{0BF5DA42-4607-485F-9342-51FD28854F3B}" + ProjectSection(ProjectDependencies) = postProject + {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simple OPAL DLL", "samples\simple\simpleDLL.vcproj", "{331B7136-2B5F-48FD-B096-0DEFEEFD65A9}" + ProjectSection(ProjectDependencies) = postProject + {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Jester", "samples\jester\jester.vcproj", "{04AB38FF-0E5D-464B-883A-1C96419E7E9C}" + ProjectSection(ProjectDependencies) = postProject + {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpalCodecInfo", "samples\opalcodecinfo\opalcodecinfo.vcproj", "{7FF55F1C-87EB-4087-8814-FD494BE49170}" + ProjectSection(ProjectDependencies) = postProject + {85F4F26A-1A5D-4685-A48A-448102C5C5BC} = {85F4F26A-1A5D-4685-A48A-448102C5C5BC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib Static", "..\ptlib\src\ptlib\msos\Console.vcproj", "{E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib DLL", "..\ptlib\src\ptlib\msos\PTLib.vcproj", "{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodecTest", "samples\codectest\codectest_2003.vcproj", "{986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CallGen", "samples\callgen\callgen_2003.vcproj", "{B9210C82-C992-4308-B3A3-5A221ECABAB8}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + No Trace = No Trace + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {99519B44-9773-4066-9F05-0C601C4E69FB}.Debug.ActiveCfg = Debug|Win32 + {99519B44-9773-4066-9F05-0C601C4E69FB}.Debug.Build.0 = Debug|Win32 + {99519B44-9773-4066-9F05-0C601C4E69FB}.No Trace.ActiveCfg = No Trace|Win32 + {99519B44-9773-4066-9F05-0C601C4E69FB}.No Trace.Build.0 = No Trace|Win32 + {99519B44-9773-4066-9F05-0C601C4E69FB}.Release.ActiveCfg = Release|Win32 + {99519B44-9773-4066-9F05-0C601C4E69FB}.Release.Build.0 = Release|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.ActiveCfg = Debug|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.Build.0 = Debug|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.ActiveCfg = No Trace|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.Build.0 = No Trace|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.ActiveCfg = Release|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.Build.0 = Release|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.ActiveCfg = Debug|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Debug.Build.0 = Debug|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.ActiveCfg = No Trace|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.No Trace.Build.0 = No Trace|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.ActiveCfg = Release|Win32 + {F5F40674-6CBD-459A-A2AA-EB3C084EE879}.Release.Build.0 = Release|Win32 + {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Debug.ActiveCfg = Debug|Win32 + {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Debug.Build.0 = Debug|Win32 + {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.No Trace.ActiveCfg = No Trace|Win32 + {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.No Trace.Build.0 = No Trace|Win32 + {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Release.ActiveCfg = Release|Win32 + {38D607FB-43AE-49AA-8D13-C67C6E02AC60}.Release.Build.0 = Release|Win32 + {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Debug.ActiveCfg = Debug|Win32 + {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Debug.Build.0 = Debug|Win32 + {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.No Trace.ActiveCfg = No Trace|Win32 + {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.No Trace.Build.0 = No Trace|Win32 + {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Release.ActiveCfg = Release|Win32 + {DDD77D77-3C43-49BC-B16E-FD51168E29B4}.Release.Build.0 = Release|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.ActiveCfg = Debug|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.Build.0 = Debug|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.ActiveCfg = No Trace|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.Build.0 = No Trace|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.ActiveCfg = Release|Win32 + {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.Build.0 = Release|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.ActiveCfg = Debug|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Debug.Build.0 = Debug|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.ActiveCfg = No Trace|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.No Trace.Build.0 = No Trace|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.ActiveCfg = Release|Win32 + {331B7136-2B5F-48FD-B096-0DEFEEFD65A9}.Release.Build.0 = Release|Win32 + {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Debug.ActiveCfg = Debug|Win32 + {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Debug.Build.0 = Debug|Win32 + {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.No Trace.ActiveCfg = No Trace|Win32 + {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.No Trace.Build.0 = No Trace|Win32 + {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Release.ActiveCfg = Release|Win32 + {04AB38FF-0E5D-464B-883A-1C96419E7E9C}.Release.Build.0 = Release|Win32 + {7FF55F1C-87EB-4087-8814-FD494BE49170}.Debug.ActiveCfg = Debug|Win32 + {7FF55F1C-87EB-4087-8814-FD494BE49170}.Debug.Build.0 = Debug|Win32 + {7FF55F1C-87EB-4087-8814-FD494BE49170}.No Trace.ActiveCfg = No Trace|Win32 + {7FF55F1C-87EB-4087-8814-FD494BE49170}.No Trace.Build.0 = No Trace|Win32 + {7FF55F1C-87EB-4087-8814-FD494BE49170}.Release.ActiveCfg = Release|Win32 + {7FF55F1C-87EB-4087-8814-FD494BE49170}.Release.Build.0 = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.ActiveCfg = Debug|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.Build.0 = Debug|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.ActiveCfg = No Trace|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.Build.0 = No Trace|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.ActiveCfg = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.Build.0 = Release|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.ActiveCfg = Debug|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.Build.0 = Debug|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.ActiveCfg = No Trace|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.Build.0 = No Trace|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.ActiveCfg = Release|Win32 + {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.Build.0 = Release|Win32 + {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Debug.ActiveCfg = Debug|Win32 + {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Debug.Build.0 = Debug|Win32 + {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.No Trace.ActiveCfg = No Trace|Win32 + {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.No Trace.Build.0 = No Trace|Win32 + {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Release.ActiveCfg = Release|Win32 + {986E93C5-2F54-4D5A-8CD4-6EBF566E8DDC}.Release.Build.0 = Release|Win32 + {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Debug.ActiveCfg = Debug|Win32 + {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Debug.Build.0 = Debug|Win32 + {B9210C82-C992-4308-B3A3-5A221ECABAB8}.No Trace.ActiveCfg = No Tracing|Win32 + {B9210C82-C992-4308-B3A3-5A221ECABAB8}.No Trace.Build.0 = No Tracing|Win32 + {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Release.ActiveCfg = Release|Win32 + {B9210C82-C992-4308-B3A3-5A221ECABAB8}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal Deleted: opal/trunk/plugins/plugins.sln =================================================================== --- opal/trunk/plugins/plugins.sln 2007-11-21 22:58:14 UTC (rev 18923) +++ opal/trunk/plugins/plugins.sln 2007-11-21 23:00:04 UTC (rev 18924) @@ -1,253 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSM 06.10 Audio Codec", "audio\GSM0610\gsm0610.vcproj", "{E6897206-9765-4B73-9A98-DAC5787814CE}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iLBC Audio Codec", "audio\iLBC\ilbccodec.vcproj", "{F1C13640-A056-4280-B1C6-6582E5890B89}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Speex Audio Codec", "audio\Speex\Speex.vcproj", "{02AFB070-A9D5-4FB7-A041-311722C9F8D4}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "G.723.1 ACM Audio Codec", "audio\G7231ACM\g7231acm.vcproj", "{9CA0A670-9867-453B-A1D7-0FC9377D0740}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "G.726 Audio Codec", "audio\G726\G726.vcproj", "{269DA9EF-526D-46DE-AA69-D39EFBCB29C0}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSM-AMR Audio Codec", "audio\gsm-amr\gsmamr.vcproj", "{92E9FA1E-2925-42FD-8226-A07CBD237E18}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IMA ADPCM Audio Codec", "audio\IMA_ADPCM\IMA_ADPCM.vcproj", "{25F0AA82-0186-45AD-92C3-EE1F9282A038}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LPC-10 Audio Codec", "audio\LPC_10\LPC_10.vcproj", "{9481B85A-4166-4607-ADC4-0C19D2753EB7}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Voice Age G.729 Audio Codec", "audio\VoiceAgeG729\VoiceAgeG729.vcproj", "{3F038BF6-B7B9-4941-AF57-8D539FC05781}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "OPAL Plug Ins", "Install.vdproj", "{A0E82686-4717-4827-8A12-D3D9127C25DF}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vic H.261 Video Codec", "video\H.261-vic\h261vic.vcproj", "{E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ffmpeg H.263 Video Codec", "video\H.263-ffmpeg\h263ffmpeg.vcproj", "{4D3EE295-5953-498D-AEDF-9C8792AB5723}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IxJ LID", "LID\IxJ\IxJ_2003.vcproj", "{DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "USB HID LID", "LID\USB\USB_2003.vcproj", "{B28C1159-B360-4CAD-809E-187E267E59EC}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VPB LID", "LID\VPB\VPB_2003.vcproj", "{B8F15B37-DE93-4D2E-9063-34B7920E9E90}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TigerJet LID", "LID\TigerJet\TJ_2003.vcproj", "{A24B5E63-F99A-4D5F-986E-96A94E5DBB31}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib Static", "..\..\pwlib\src\ptlib\msos\Console.vcproj", "{E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL Static", "..\src\win32\opal_lib.vcproj", "{0C3AF508-06FF-47EF-BE5A-F72F41759246}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common ISDN API LID", "LID\CAPI\CAPI_2003.vcproj", "{A24B5E63-F99A-4D5F-986E-96A94E5DBB31}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib DLL", "..\..\pwlib\src\ptlib\msos\PTLib.vcproj", "{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL DLL", "..\src\win32\opal_dll.vcproj", "{0BF5DA42-4607-485F-9342-51FD28854F3B}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpalCodecInfo", "..\samples\opalcodecinfo\opalcodecinfo.vcproj", "{7FF55F1C-87EB-4087-8814-FD494BE49170}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x264 H.264 Video Codec", "video\H.264\h264-x264.vcproj", "{4D3EE295-5953-498D-AEDF-9C8792AB5723}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x264 Helper", "video\H.264\gpl\h264_helper.vcproj", "{49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - No Trace = No Trace - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {E6897206-9765-4B73-9A98-DAC5787814CE}.Debug.ActiveCfg = Debug|Win32 - {E6897206-9765-4B73-9A98-DAC5787814CE}.Debug.Build.0 = Debug|Win32 - {E6897206-9765-4B73-9A98-DAC5787814CE}.No Trace.ActiveCfg = Debug|Win32 - {E6897206-9765-4B73-9A98-DAC5787814CE}.No Trace.Build.0 = Debug|Win32 - {E6897206-9765-4B73-9A98-DAC5787814CE}.Release.ActiveCfg = Release|Win32 - {E6897206-9765-4B73-9A98-DAC5787814CE}.Release.Build.0 = Release|Win32 - {F1C13640-A056-4280-B1C6-6582E5890B89}.Debug.ActiveCfg = Debug|Win32 - {F1C13640-A056-4280-B1C6-6582E5890B89}.Debug.Build.0 = Debug|Win32 - {F1C13640-A056-4280-B1C6-6582E5890B89}.No Trace.ActiveCfg = Release|Win32 - {F1C13640-A056-4280-B1C6-6582E5890B89}.No Trace.Build.0 = Release|Win32 - {F1C13640-A056-4280-B1C6-6582E5890B89}.Release.ActiveCfg = Release|Win32 - {F1C13640-A056-4280-B1C6-6582E5890B89}.Release.Build.0 = Release|Win32 - {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Debug.ActiveCfg = Debug|Win32 - {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Debug.Build.0 = Debug|Win32 - {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.No Trace.ActiveCfg = Debug|Win32 - {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.No Trace.Build.0 = Debug|Win32 - {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Release.ActiveCfg = Release|Win32 - {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Release.Build.0 = Release|Win32 - {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Debug.ActiveCfg = Debug|Win32 - {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Debug.Build.0 = Debug|Win32 - {9CA0A670-9867-453B-A1D7-0FC9377D0740}.No Trace.ActiveCfg = Release|Win32 - {9CA0A670-9867-453B-A1D7-0FC9377D0740}.No Trace.Build.0 = Release|Win32 - {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Release.ActiveCfg = Release|Win32 - {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Release.Build.0 = Release|Win32 - {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Debug.ActiveCfg = Debug|Win32 - {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Debug.Build.0 = Debug|Win32 - {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.No Trace.ActiveCfg = Debug|Win32 - {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.No Trace.Build.0 = Debug|Win32 - {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Release.ActiveCfg = Release|Win32 - {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Release.Build.0 = Release|Win32 - {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Debug.ActiveCfg = Debug|Win32 - {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Debug.Build.0 = Debug|Win32 - {92E9FA1E-2925-42FD-8226-A07CBD237E18}.No Trace.ActiveCfg = Debug|Win32 - {92E9FA1E-2925-42FD-8226-A07CBD237E18}.No Trace.Build.0 = Debug|Win32 - {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Release.ActiveCfg = Release|Win32 - {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Release.Build.0 = Release|Win32 - {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Debug.ActiveCfg = Debug|Win32 - {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Debug.Build.0 = Debug|Win32 - {25F0AA82-0186-45AD-92C3-EE1F9282A038}.No Trace.ActiveCfg = Release|Win32 - {25F0AA82-0186-45AD-92C3-EE1F9282A038}.No Trace.Build.0 = Release|Win32 - {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Release.ActiveCfg = Release|Win32 - {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Release.Build.0 = Release|Win32 - {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Debug.ActiveCfg = Debug|Win32 - {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Debug.Build.0 = Debug|Win32 - {9481B85A-4166-4607-ADC4-0C19D2753EB7}.No Trace.ActiveCfg = Release|Win32 - {9481B85A-4166-4607-ADC4-0C19D2753EB7}.No Trace.Build.0 = Release|Win32 - {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Release.ActiveCfg = Release|Win32 - {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Release.Build.0 = Release|Win32 - {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Debug.ActiveCfg = Debug|Win32 - {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Debug.Build.0 = Debug|Win32 - {3F038BF6-B7B9-4941-AF57-8D539FC05781}.No Trace.ActiveCfg = Release|Win32 - {3F038BF6-B7B9-4941-AF57-8D539FC05781}.No Trace.Build.0 = Release|Win32 - {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Release.ActiveCfg = Release|Win32 - {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Release.Build.0 = Release|Win32 - {A0E82686-4717-4827-8A12-D3D9127C25DF}.Debug.ActiveCfg = Release - {A0E82686-4717-4827-8A12-D3D9127C25DF}.No Trace.ActiveCfg = Release - {A0E82686-4717-4827-8A12-D3D9127C25DF}.No Trace.Build.0 = Release - {A0E82686-4717-4827-8A12-D3D9127C25DF}.Release.ActiveCfg = Release - {A0E82686-4717-4827-8A12-D3D9127C25DF}.Release.Build.0 = Release - {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Debug.ActiveCfg = Debug|Win32 - {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Debug.Build.0 = Debug|Win32 - {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.No Trace.ActiveCfg = Debug|Win32 - {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.No Trace.Build.0 = Debug|Win32 - {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Release.ActiveCfg = Release|Win32 - {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Release.Build.0 = Release|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Debug.ActiveCfg = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Debug.Build.0 = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.No Trace.ActiveCfg = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.No Trace.Build.0 = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Release.ActiveCfg = Release|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Release.Build.0 = Release|Win32 - {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Debug.ActiveCfg = Debug|Win32 - {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Debug.Build.0 = Debug|Win32 - {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.No Trace.ActiveCfg = Release|Win32 - {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.No Trace.Build.0 = Release|Win32 - {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Release.ActiveCfg = Release|Win32 - {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Release.Build.0 = Release|Win32 - {B28C1159-B360-4CAD-809E-187E267E59EC}.Debug.ActiveCfg = Debug|Win32 - {B28C1159-B360-4CAD-809E-187E267E59EC}.Debug.Build.0 = Debug|Win32 - {B28C1159-B360-4CAD-809E-187E267E59EC}.No Trace.ActiveCfg = Release|Win32 - {B28C1159-B360-4CAD-809E-187E267E59EC}.No Trace.Build.0 = Release|Win32 - {B28C1159-B360-4CAD-809E-187E267E59EC}.Release.ActiveCfg = Release|Win32 - {B28C1159-B360-4CAD-809E-187E267E59EC}.Release.Build.0 = Release|Win32 - {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Debug.ActiveCfg = Debug|Win32 - {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Debug.Build.0 = Debug|Win32 - {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.No Trace.ActiveCfg = Release|Win32 - {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.No Trace.Build.0 = Release|Win32 - {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Release.ActiveCfg = Release|Win32 - {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Release.Build.0 = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Debug.ActiveCfg = Debug|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Debug.Build.0 = Debug|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.No Trace.ActiveCfg = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.No Trace.Build.0 = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Release.ActiveCfg = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Release.Build.0 = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.ActiveCfg = Debug|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.Build.0 = Debug|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.ActiveCfg = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.Build.0 = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.ActiveCfg = Release|Win32 - {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.Build.0 = Release|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.ActiveCfg = Debug|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.Build.0 = Debug|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.ActiveCfg = No Trace|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.No Trace.Build.0 = No Trace|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.ActiveCfg = Release|Win32 - {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Release.Build.0 = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Debug.ActiveCfg = Debug|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Debug.Build.0 = Debug|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.No Trace.ActiveCfg = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.No Trace.Build.0 = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Release.ActiveCfg = Release|Win32 - {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Release.Build.0 = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.ActiveCfg = Debug|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Debug.Build.0 = Debug|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.ActiveCfg = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.No Trace.Build.0 = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.ActiveCfg = Release|Win32 - {85F4F26A-1A5D-4685-A48A-448102C5C5BC}.Release.Build.0 = Release|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.ActiveCfg = Debug|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Debug.Build.0 = Debug|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.ActiveCfg = No Trace|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.No Trace.Build.0 = No Trace|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.ActiveCfg = Release|Win32 - {0BF5DA42-4607-485F-9342-51FD28854F3B}.Release.Build.0 = Release|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Debug.ActiveCfg = Debug|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Debug.Build.0 = Debug|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.No Trace.ActiveCfg = No Trace|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.No Trace.Build.0 = No Trace|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Release.ActiveCfg = Release|Win32 - {7FF55F1C-87EB-4087-8814-FD494BE49170}.Release.Build.0 = Release|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Debug.ActiveCfg = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Debug.Build.0 = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.No Trace.ActiveCfg = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.No Trace.Build.0 = Debug|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Release.ActiveCfg = Release|Win32 - {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Release.Build.0 = Release|Win32 - {49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}.Debug.ActiveCfg = Debug|Win32 - {49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}.Debug.Build.0 = Debug|Win32 - {49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}.No Trace.ActiveCfg = Release|Win32 - {49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}.No Trace.Build.0 = Release|Win32 - {49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}.Release.ActiveCfg = Release|Win32 - {49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal Copied: opal/trunk/plugins/plugins_2003.sln (from rev 18922, opal/trunk/plugins/plugins.sln) =================================================================== --- opal/trunk/plugins/plugins_2003.sln (rev 0) +++ opal/trunk/plugins/plugins_2003.sln 2007-11-21 23:00:04 UTC (rev 18924) @@ -0,0 +1,253 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSM 06.10 Audio Codec", "audio\GSM0610\gsm0610.vcproj", "{E6897206-9765-4B73-9A98-DAC5787814CE}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iLBC Audio Codec", "audio\iLBC\ilbccodec.vcproj", "{F1C13640-A056-4280-B1C6-6582E5890B89}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Speex Audio Codec", "audio\Speex\Speex.vcproj", "{02AFB070-A9D5-4FB7-A041-311722C9F8D4}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "G.723.1 ACM Audio Codec", "audio\G7231ACM\g7231acm.vcproj", "{9CA0A670-9867-453B-A1D7-0FC9377D0740}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "G.726 Audio Codec", "audio\G726\G726.vcproj", "{269DA9EF-526D-46DE-AA69-D39EFBCB29C0}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSM-AMR Audio Codec", "audio\gsm-amr\gsmamr.vcproj", "{92E9FA1E-2925-42FD-8226-A07CBD237E18}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IMA ADPCM Audio Codec", "audio\IMA_ADPCM\IMA_ADPCM.vcproj", "{25F0AA82-0186-45AD-92C3-EE1F9282A038}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LPC-10 Audio Codec", "audio\LPC_10\LPC_10.vcproj", "{9481B85A-4166-4607-ADC4-0C19D2753EB7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Voice Age G.729 Audio Codec", "audio\VoiceAgeG729\VoiceAgeG729.vcproj", "{3F038BF6-B7B9-4941-AF57-8D539FC05781}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "OPAL Plug Ins", "Install.vdproj", "{A0E82686-4717-4827-8A12-D3D9127C25DF}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Vic H.261 Video Codec", "video\H.261-vic\h261vic.vcproj", "{E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ffmpeg H.263 Video Codec", "video\H.263-ffmpeg\h263ffmpeg.vcproj", "{4D3EE295-5953-498D-AEDF-9C8792AB5723}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IxJ LID", "LID\IxJ\IxJ_2003.vcproj", "{DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "USB HID LID", "LID\USB\USB_2003.vcproj", "{B28C1159-B360-4CAD-809E-187E267E59EC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VPB LID", "LID\VPB\VPB_2003.vcproj", "{B8F15B37-DE93-4D2E-9063-34B7920E9E90}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TigerJet LID", "LID\TigerJet\TJ_2003.vcproj", "{A24B5E63-F99A-4D5F-986E-96A94E5DBB31}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib Static", "..\..\pwlib\src\ptlib\msos\Console.vcproj", "{E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL Static", "..\src\win32\opal_lib.vcproj", "{0C3AF508-06FF-47EF-BE5A-F72F41759246}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common ISDN API LID", "LID\CAPI\CAPI_2003.vcproj", "{A24B5E63-F99A-4D5F-986E-96A94E5DBB31}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTLib DLL", "..\..\pwlib\src\ptlib\msos\PTLib.vcproj", "{85F4F26A-1A5D-4685-A48A-448102C5C5BC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OPAL DLL", "..\src\win32\opal_dll.vcproj", "{0BF5DA42-4607-485F-9342-51FD28854F3B}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpalCodecInfo", "..\samples\opalcodecinfo\opalcodecinfo.vcproj", "{7FF55F1C-87EB-4087-8814-FD494BE49170}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x264 H.264 Video Codec", "video\H.264\h264-x264.vcproj", "{4D3EE295-5953-498D-AEDF-9C8792AB5723}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x264 Helper", "video\H.264\gpl\h264_helper.vcproj", "{49E1DA1D-0BAD-4DCD-A4B1-D048A548D53B}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + No Trace = No Trace + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E6897206-9765-4B73-9A98-DAC5787814CE}.Debug.ActiveCfg = Debug|Win32 + {E6897206-9765-4B73-9A98-DAC5787814CE}.Debug.Build.0 = Debug|Win32 + {E6897206-9765-4B73-9A98-DAC5787814CE}.No Trace.ActiveCfg = Debug|Win32 + {E6897206-9765-4B73-9A98-DAC5787814CE}.No Trace.Build.0 = Debug|Win32 + {E6897206-9765-4B73-9A98-DAC5787814CE}.Release.ActiveCfg = Release|Win32 + {E6897206-9765-4B73-9A98-DAC5787814CE}.Release.Build.0 = Release|Win32 + {F1C13640-A056-4280-B1C6-6582E5890B89}.Debug.ActiveCfg = Debug|Win32 + {F1C13640-A056-4280-B1C6-6582E5890B89}.Debug.Build.0 = Debug|Win32 + {F1C13640-A056-4280-B1C6-6582E5890B89}.No Trace.ActiveCfg = Release|Win32 + {F1C13640-A056-4280-B1C6-6582E5890B89}.No Trace.Build.0 = Release|Win32 + {F1C13640-A056-4280-B1C6-6582E5890B89}.Release.ActiveCfg = Release|Win32 + {F1C13640-A056-4280-B1C6-6582E5890B89}.Release.Build.0 = Release|Win32 + {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Debug.ActiveCfg = Debug|Win32 + {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Debug.Build.0 = Debug|Win32 + {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.No Trace.ActiveCfg = Debug|Win32 + {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.No Trace.Build.0 = Debug|Win32 + {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Release.ActiveCfg = Release|Win32 + {02AFB070-A9D5-4FB7-A041-311722C9F8D4}.Release.Build.0 = Release|Win32 + {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Debug.ActiveCfg = Debug|Win32 + {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Debug.Build.0 = Debug|Win32 + {9CA0A670-9867-453B-A1D7-0FC9377D0740}.No Trace.ActiveCfg = Release|Win32 + {9CA0A670-9867-453B-A1D7-0FC9377D0740}.No Trace.Build.0 = Release|Win32 + {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Release.ActiveCfg = Release|Win32 + {9CA0A670-9867-453B-A1D7-0FC9377D0740}.Release.Build.0 = Release|Win32 + {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Debug.ActiveCfg = Debug|Win32 + {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Debug.Build.0 = Debug|Win32 + {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.No Trace.ActiveCfg = Debug|Win32 + {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.No Trace.Build.0 = Debug|Win32 + {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Release.ActiveCfg = Release|Win32 + {269DA9EF-526D-46DE-AA69-D39EFBCB29C0}.Release.Build.0 = Release|Win32 + {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Debug.ActiveCfg = Debug|Win32 + {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Debug.Build.0 = Debug|Win32 + {92E9FA1E-2925-42FD-8226-A07CBD237E18}.No Trace.ActiveCfg = Debug|Win32 + {92E9FA1E-2925-42FD-8226-A07CBD237E18}.No Trace.Build.0 = Debug|Win32 + {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Release.ActiveCfg = Release|Win32 + {92E9FA1E-2925-42FD-8226-A07CBD237E18}.Release.Build.0 = Release|Win32 + {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Debug.ActiveCfg = Debug|Win32 + {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Debug.Build.0 = Debug|Win32 + {25F0AA82-0186-45AD-92C3-EE1F9282A038}.No Trace.ActiveCfg = Release|Win32 + {25F0AA82-0186-45AD-92C3-EE1F9282A038}.No Trace.Build.0 = Release|Win32 + {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Release.ActiveCfg = Release|Win32 + {25F0AA82-0186-45AD-92C3-EE1F9282A038}.Release.Build.0 = Release|Win32 + {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Debug.ActiveCfg = Debug|Win32 + {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Debug.Build.0 = Debug|Win32 + {9481B85A-4166-4607-ADC4-0C19D2753EB7}.No Trace.ActiveCfg = Release|Win32 + {9481B85A-4166-4607-ADC4-0C19D2753EB7}.No Trace.Build.0 = Release|Win32 + {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Release.ActiveCfg = Release|Win32 + {9481B85A-4166-4607-ADC4-0C19D2753EB7}.Release.Build.0 = Release|Win32 + {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Debug.ActiveCfg = Debug|Win32 + {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Debug.Build.0 = Debug|Win32 + {3F038BF6-B7B9-4941-AF57-8D539FC05781}.No Trace.ActiveCfg = Release|Win32 + {3F038BF6-B7B9-4941-AF57-8D539FC05781}.No Trace.Build.0 = Release|Win32 + {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Release.ActiveCfg = Release|Win32 + {3F038BF6-B7B9-4941-AF57-8D539FC05781}.Release.Build.0 = Release|Win32 + {A0E82686-4717-4827-8A12-D3D9127C25DF}.Debug.ActiveCfg = Release + {A0E82686-4717-4827-8A12-D3D9127C25DF}.No Trace.ActiveCfg = Release + {A0E82686-4717-4827-8A12-D3D9127C25DF}.No Trace.Build.0 = Release + {A0E82686-4717-4827-8A12-D3D9127C25DF}.Release.ActiveCfg = Release + {A0E82686-4717-4827-8A12-D3D9127C25DF}.Release.Build.0 = Release + {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Debug.ActiveCfg = Debug|Win32 + {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Debug.Build.0 = Debug|Win32 + {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.No Trace.ActiveCfg = Debug|Win32 + {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.No Trace.Build.0 = Debug|Win32 + {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Release.ActiveCfg = Release|Win32 + {E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}.Release.Build.0 = Release|Win32 + {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Debug.ActiveCfg = Debug|Win32 + {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Debug.Build.0 = Debug|Win32 + {4D3EE295-5953-498D-AEDF-9C8792AB5723}.No Trace.ActiveCfg = Debug|Win32 + {4D3EE295-5953-498D-AEDF-9C8792AB5723}.No Trace.Build.0 = Debug|Win32 + {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Release.ActiveCfg = Release|Win32 + {4D3EE295-5953-498D-AEDF-9C8792AB5723}.Release.Build.0 = Release|Win32 + {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Debug.ActiveCfg = Debug|Win32 + {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Debug.Build.0 = Debug|Win32 + {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.No Trace.ActiveCfg = Release|Win32 + {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.No Trace.Build.0 = Release|Win32 + {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Release.ActiveCfg = Release|Win32 + {DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}.Release.Build.0 = Release|Win32 + {B28C1159-B360-4CAD-809E-187E267E59EC}.Debug.ActiveCfg = Debug|Win32 + {B28C1159-B360-4CAD-809E-187E267E59EC}.Debug.Build.0 = Debug|Win32 + {B28C1159-B360-4CAD-809E-187E267E59EC}.No Trace.ActiveCfg = Release|Win32 + {B28C1159-B360-4CAD-809E-187E267E59EC}.No Trace.Build.0 = Release|Win32 + {B28C1159-B360-4CAD-809E-187E267E59EC}.Release.ActiveCfg = Release|Win32 + {B28C1159-B360-4CAD-809E-187E267E59EC}.Release.Build.0 = Release|Win32 + {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Debug.ActiveCfg = Debug|Win32 + {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Debug.Build.0 = Debug|Win32 + {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.No Trace.ActiveCfg = Release|Win32 + {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.No Trace.Build.0 = Release|Win32 + {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Release.ActiveCfg = Release|Win32 + {B8F15B37-DE93-4D2E-9063-34B7920E9E90}.Release.Build.0 = Release|Win32 + {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Debug.ActiveCfg = Debug|Win32 + {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Debug.Build.0 = Debug|Win32 + {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.No Trace.ActiveCfg = Release|Win32 + {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.No Trace.Build.0 = Release|Win32 + {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Release.ActiveCfg = Release|Win32 + {A24B5E63-F99A-4D5F-986E-96A94E5DBB31}.Release.Build.0 = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.ActiveCfg = Debug|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Debug.Build.0 = Debug|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.ActiveCfg = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.No Trace.Build.0 = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.ActiveCfg = Release|Win32 + {E61B4DFB-0CAB-46DD-BB02-1AFFD61DB7F5}.Release.Build.0 = Release|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F41759246}.Debug.ActiveCfg = Debug|Win32 + {0C3AF508-06FF-47EF-BE5A-F72F4175924... [truncated message content] |
From: <rjo...@us...> - 2007-11-21 23:55:01
|
Revision: 18925 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18925&view=rev Author: rjongbloed Date: 2007-11-21 15:55:04 -0800 (Wed, 21 Nov 2007) Log Message: ----------- Fixed missing Clone() in opalMediaFormatInternal class, thanks Yuriy Cherniavsky Modified Paths: -------------- opal/trunk/include/opal/mediafmt.h opal/trunk/src/opal/mediafmt.cxx Modified: opal/trunk/include/opal/mediafmt.h =================================================================== --- opal/trunk/include/opal/mediafmt.h 2007-11-21 23:00:04 UTC (rev 18924) +++ opal/trunk/include/opal/mediafmt.h 2007-11-21 23:55:04 UTC (rev 18925) @@ -483,6 +483,7 @@ time_t timeStamp ); + virtual PObject * Clone() const; virtual void PrintOn(ostream & strm) const; BOOL IsValid() const { return rtpPayloadType < RTP_DataFrame::IllegalPayloadType && !formatName.IsEmpty(); } Modified: opal/trunk/src/opal/mediafmt.cxx =================================================================== --- opal/trunk/src/opal/mediafmt.cxx 2007-11-21 23:00:04 UTC (rev 18924) +++ opal/trunk/src/opal/mediafmt.cxx 2007-11-21 23:55:04 UTC (rev 18925) @@ -791,6 +791,12 @@ } +PObject * OpalMediaFormatInternal::Clone() const +{ + return new OpalMediaFormatInternal(*this); +} + + bool OpalMediaFormatInternal::Merge(const OpalMediaFormatInternal & mediaFormat) { PWaitAndSignal m1(media_format_mutex); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-11-23 04:55:48
|
Revision: 18930 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18930&view=rev Author: csoutheren Date: 2007-11-22 20:55:52 -0800 (Thu, 22 Nov 2007) Log Message: ----------- merged revisions 18927 and 19929 from head Modified Paths: -------------- opal/trunk/include/h323/h323con.h opal/trunk/include/opal/connection.h opal/trunk/src/h323/h323.cxx opal/trunk/src/opal/connection.cxx opal/trunk/src/opal/mediafmt.cxx opal/trunk/src/sip/sipcon.cxx Modified: opal/trunk/include/h323/h323con.h =================================================================== --- opal/trunk/include/h323/h323con.h 2007-11-23 04:38:21 UTC (rev 18929) +++ opal/trunk/include/h323/h323con.h 2007-11-23 04:55:52 UTC (rev 18930) @@ -1846,8 +1846,6 @@ virtual BOOL OnOpenIncomingMediaChannels(); - virtual OpalMediaFormatList GetLocalMediaFormats(); - protected: /**Internal function to check if call established. This checks all the criteria for establishing a call an initiating the Modified: opal/trunk/include/opal/connection.h =================================================================== --- opal/trunk/include/opal/connection.h 2007-11-23 04:38:21 UTC (rev 18929) +++ opal/trunk/include/opal/connection.h 2007-11-23 04:55:52 UTC (rev 18930) @@ -519,6 +519,12 @@ */ virtual OpalMediaFormatList GetMediaFormats() const = 0; + /**Get the list of data formats used for making calls + + The default behaviour is to call call.GetMediaFormats(); + */ + virtual OpalMediaFormatList GetLocalMediaFormats(); + /**Adjust media formats available on a connection. This is called by a connection after it has called OpalCall::GetMediaFormats() to get all media formats that it can use so Modified: opal/trunk/src/h323/h323.cxx =================================================================== --- opal/trunk/src/h323/h323.cxx 2007-11-23 04:38:21 UTC (rev 18929) +++ opal/trunk/src/h323/h323.cxx 2007-11-23 04:55:52 UTC (rev 18930) @@ -3291,11 +3291,6 @@ capabilityExchangeProcedure->Start(TRUE, empty); } -OpalMediaFormatList H323Connection::GetLocalMediaFormats() -{ - return ownerCall.GetMediaFormats(*this, FALSE); -} - void H323Connection::OnSetLocalCapabilities() { if (capabilityExchangeProcedure->HasSentCapabilities()) Modified: opal/trunk/src/opal/connection.cxx =================================================================== --- opal/trunk/src/opal/connection.cxx 2007-11-23 04:38:21 UTC (rev 18929) +++ opal/trunk/src/opal/connection.cxx 2007-11-23 04:55:52 UTC (rev 18930) @@ -1300,4 +1300,9 @@ return CreateMediaStream(mediaFormat, sessionID, isSource); } +OpalMediaFormatList OpalConnection::GetLocalMediaFormats() +{ + return ownerCall.GetMediaFormats(*this, FALSE); +} + ///////////////////////////////////////////////////////////////////////////// Modified: opal/trunk/src/opal/mediafmt.cxx =================================================================== --- opal/trunk/src/opal/mediafmt.cxx 2007-11-23 04:38:21 UTC (rev 18929) +++ opal/trunk/src/opal/mediafmt.cxx 2007-11-23 04:55:52 UTC (rev 18930) @@ -803,7 +803,10 @@ PWaitAndSignal m2(mediaFormat.media_format_mutex); for (PINDEX i = 0; i < options.GetSize(); i++) { OpalMediaOption * option = mediaFormat.FindOption(options[i].GetName()); - if (option != NULL && !options[i].Merge(*option)) + if (option == NULL) { + PTRACE(2, "MediaFormat\tCannot merge unmatched option " << options[i].GetName()); + } + else if (!options[i].Merge(*option)) return false; } Modified: opal/trunk/src/sip/sipcon.cxx =================================================================== --- opal/trunk/src/sip/sipcon.cxx 2007-11-23 04:38:21 UTC (rev 18929) +++ opal/trunk/src/sip/sipcon.cxx 2007-11-23 04:55:52 UTC (rev 18930) @@ -904,7 +904,7 @@ return FALSE; #endif - OpalMediaFormatList formats = ownerCall.GetMediaFormats(*this, FALSE); + OpalMediaFormatList formats = GetLocalMediaFormats(); // See if any media formats of this session id, so don't create unused RTP session PINDEX i; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-23 06:38:34
|
Revision: 18934 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18934&view=rev Author: rjongbloed Date: 2007-11-22 22:38:39 -0800 (Thu, 22 Nov 2007) Log Message: ----------- Added Windows Installer for Plug Ins and Open Phone. Modified Paths: -------------- opal/trunk/plugins/plugins_2003.sln opal/trunk/plugins/plugins_2005.sln opal/trunk/samples/openphone/main.cxx opal/trunk/samples/openphone/main.h opal/trunk/samples/openphone/openphone.rc opal/trunk/samples/openphone/version.h Added Paths: ----------- opal/trunk/plugins/Installer_2003.vdproj opal/trunk/plugins/Installer_2005.vdproj opal/trunk/samples/openphone/OPAL Web Site.url opal/trunk/samples/openphone/OpenPhoneInstaller_2005.vdproj opal/trunk/samples/openphone/OpenPhone_2005.sln opal/trunk/samples/openphone/Uninstall.bat opal/trunk/samples/openphone/Vox Gratia Web Site.url Removed Paths: ------------- opal/trunk/plugins/Install.vdproj Deleted: opal/trunk/plugins/Install.vdproj =================================================================== --- opal/trunk/plugins/Install.vdproj 2007-11-23 05:51:19 UTC (rev 18933) +++ opal/trunk/plugins/Install.vdproj 2007-11-23 06:38:39 UTC (rev 18934) @@ -1,1380 +0,0 @@ -"DeployProject" -{ -"VSVersion" = "3:701" -"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" -"IsWebType" = "8:FALSE" -"ProjectName" = "8:OPAL Plug Ins" -"LanguageId" = "3:1033" -"CodePage" = "3:1252" -"UILanguageId" = "3:1033" -"SccProjectName" = "8:" -"SccLocalPath" = "8:" -"SccAuxPath" = "8:" -"SccProvider" = "8:" - "Hierarchy" - { - "Entry" - { - "MsmKey" = "8:_17604ABB7CE97A535A9FB2B9B666E771" - "OwnerKey" = "8:_F1E637AE217B463CB6A419CFB36A9B7F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1F0EBA43C1FB4EE1BE32176BB0B0165B" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_28DA9D9BD4564812AF8882568F6A1A98" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_30DCF8910AC6B730560E52EC29629CE7" - "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3171ED5092DF4E52B1C2BCAFAF2FB618" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_42D2A323DCC04660A29F2B9435A36A77" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_560F55D3E38E48D79F211F73FF1CE710" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7756AFF18CF0467C9E24F033F960BFEB" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_1F0EBA43C1FB4EE1BE32176BB0B0165B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_FD781DA142104005AF77B1512AE1A750" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_9CBEA0E7F8D74CAF902B08E971EBE876" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_98AC52FB086E4EE5BA244DB12AF30366" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_8FA48DA7C1444BF4B485D092B1B1E08F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_42D2A323DCC04660A29F2B9435A36A77" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_3171ED5092DF4E52B1C2BCAFAF2FB618" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" - "OwnerKey" = "8:_28DA9D9BD4564812AF8882568F6A1A98" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7FFC8B8387554738A1A4D90913EAACE9" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_8FA48DA7C1444BF4B485D092B1B1E08F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_94624D718E2646E68E3BFD9C2BDC78D7" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_974844E9710D59ECB1F65AE8CD7B96F1" - "OwnerKey" = "8:_560F55D3E38E48D79F211F73FF1CE710" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_98AC52FB086E4EE5BA244DB12AF30366" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9CBEA0E7F8D74CAF902B08E971EBE876" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AB4B312460F88DC3354B52FAC2236513" - "OwnerKey" = "8:_1F0EBA43C1FB4EE1BE32176BB0B0165B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AC88AFC28F14C06CE25BD3F255A982FD" - "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_B5E69076CDA59A3D6715DEA3DFD0EB53" - "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_BE5DA5348A1E6C69C22A40A19B3321BE" - "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E0AB1B1014A94502A8194BA234DCD1C8" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_EADEB495A68F49A4AC40DEC1EA939782" - "OwnerKey" = "8:_42D2A323DCC04660A29F2B9435A36A77" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_EADEB495A68F49A4AC40DEC1EA939782" - "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F1E637AE217B463CB6A419CFB36A9B7F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_FD781DA142104005AF77B1512AE1A750" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - } - "Configurations" - { - "Release" - { - "DisplayName" = "8:Release" - "IsDebugOnly" = "11:FALSE" - "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:.\\release\\install\\OPAL_Plugins.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:3" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:1" - } - } - "Deployable" - { - "CustomAction" - { - } - "DefaultFeature" - { - "Name" = "8:DefaultFeature" - "Title" = "8:" - "Description" = "8:" - } - "ExternalPersistence" - { - "LaunchCondition" - { - } - } - "Feature" - { - } - "File" - { - "{A582A373-4685-4296-BEFE-614B80A702C3}:_17604ABB7CE97A535A9FB2B9B666E771" - { - "SourcePath" = "8:libvpb.dll" - "TargetName" = "8:libvpb.dll" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_30DCF8910AC6B730560E52EC29629CE7" - { - "SourcePath" = "8:comdlg32.dll" - "TargetName" = "8:comdlg32.dll" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_974844E9710D59ECB1F65AE8CD7B96F1" - { - "SourcePath" = "8:CM_HID.dll" - "TargetName" = "8:CM_HID.dll" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_AB4B312460F88DC3354B52FAC2236513" - { - "SourcePath" = "8:MSACM32.dll" - "TargetName" = "8:MSACM32.dll" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_AC88AFC28F14C06CE25BD3F255A982FD" - { - "SourcePath" = "8:AVICAP32.dll" - "TargetName" = "8:AVICAP32.dll" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_B5E69076CDA59A3D6715DEA3DFD0EB53" - { - "SourcePath" = "8:MPR.dll" - "TargetName" = "8:MPR.dll" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_BE5DA5348A1E6C69C22A40A19B3321BE" - { - "SourcePath" = "8:snmpapi.dll" - "TargetName" = "8:snmpapi.dll" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - } - "FileType" - { - } - "Folder" - { - "{58C0ADA3-3CEA-43BD-A3B3-2EA121BC8217}:_FCFFA598FE234C9BB0252D3D126DE500" - { - "DefaultLocation" = "8:c:\\pwlib_plugins" - "Name" = "8:#1925" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:TARGETDIR" - "Folders" - { - } - } - } - "LaunchCondition" - { - } - "Locator" - { - } - "MsiBootstrapper" - { - "LangId" = "3:1033" - } - "Product" - { - "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:OPAL Plug Ins" - "ProductCode" = "8:{6C0F29D6-3193-450A-B7D0-2BB99E346EE9}" - "PackageCode" = "8:{C9BB6FF9-81FE-42EF-84BA-8942A7F0650A}" - "UpgradeCode" = "8:{EB973D81-CDA8-489C-BFBD-063A4C3296B9}" - "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" - "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:Home" - "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" - "Title" = "8:OPAL Plug Ins" - "Subject" = "8:" - "ARPCONTACT" = "8:Home" - "Keywords" = "8:" - "ARPCOMMENTS" = "8:" - "ARPURLINFOABOUT" = "8:" - "ARPPRODUCTICON" = "8:" - "ARPIconIndex" = "3:0" - "SearchPath" = "8:" - "UseSystemSearchPath" = "11:TRUE" - } - "Registry" - { - "HKLM" - { - "Keys" - { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_2CEC6F88283A4E36A610D479517C9BB2" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_8395842953024F3483FC979F067B6DB6" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCU" - { - "Keys" - { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_8EAB0D7166664BD2B8C7F04F8C888765" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{6A471EEF-D31B-40F8-BCF6-C9E8EC783F36}:_F7AC77748324493B8FD894552F8E6E2C" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCR" - { - "Keys" - { - } - } - "HKU" - { - "Keys" - { - } - } - "HKPU" - { - "Keys" - { - } - } - } - "Sequences" - { - } - "Shortcut" - { - } - "UserInterface" - { - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_187A38BA7FB64A3C829FCEAB956A2B67" - { - "Name" = "8:#1900" - "Sequence" = "3:2" - "Attributes" = "3:1" - "Dialogs" - { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_0E0BBA347F19425782D138615ED2CB99" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_44C921BB0006454286BE6686B69B2710" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_58B7B5A8DA6A4F4EBED1E5A2A1E83D6F" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_18C4030587B84CE7B4A9B03D1707614F" - { - "Name" = "8:#1901" - "Sequence" = "3:1" - "Attributes" = "3:2" - "Dialogs" - { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_FC4402300AAA4A3A8E8BAEDBE2000D37" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_50DC59797D6E47A897C1E37A228EA727" - { - "Name" = "8:#1900" - "Sequence" = "3:1" - "Attributes" = "3:1" - "Dialogs" - { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_9CC78CFEAADC4E9480CAF1A8341E7D1A" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_9E2348C6E6864CF0B082413493B919D3" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_C8231977CE284174BD520E7B30C4ADE1" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_515E2898B26449FDA5CF81E90E650510" - { - "Name" = "8:#1902" - "Sequence" = "3:1" - "Attributes" = "3:3" - "Dialogs" - { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_70638E790CC141CABBF8F551E98035FA" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "UpdateText" - { - "Name" = "8:UpdateText" - "DisplayName" = "8:#1058" - "Description" = "8:#1158" - "Type" = "3:15" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1258" - "DefaultValue" = "8:#1258" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_5378AF1FEDB54D629F2DEE7FBFDD7967" - { - "Name" = "8:#1902" - "Sequence" = "3:2" - "Attributes" = "3:3" - "Dialogs" - { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_DF28964041DA427DAB2B2D6EC9916E44" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{8D9DEE8B-DD8B-4F48-9072-C4364E4F4011}:_A442698B9817435BA2660EF977D3A543" - { - "Name" = "8:#1901" - "Sequence" = "3:2" - "Attributes" = "3:2" - "Dialogs" - { - "{18ADD6EC-89FE-4ED7-AD3E-211C40278470}:_999FF2FC857D4BAA9765A0A01FEB7617" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_D3CD030B701C48A7AF1E1260849D2BAE" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim" - } - "{B654A020-6903-4E6A-A86C-75DC463DB54B}:_DBE20C34CC6E4C02AD96D5FF0C79AA25" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim" - } - } - "MergeModule" - { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_7B9D0ACFCE38401AB010653B40E79865" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_EADEB495A68F49A4AC40DEC1EA939782" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - } - "ProjectOutput" - { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_1F0EBA43C1FB4EE1BE32176BB0B0165B" - { - "SourcePath" = "8:release\\g7231acm_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9CA0A670-9867-453B-A1D7-0FC9377D0740}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_28DA9D9BD4564812AF8882568F6A1A98" - { - "SourcePath" = "8:release\\h261vic_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E3B2ADAC-1BD0-45B6-A00E-DE010CB75903}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_3171ED5092DF4E52B1C2BCAFAF2FB618" - { - "SourcePath" = "8:release\\gsm0610_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E6897206-9765-4B73-9A98-DAC5787814CE}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_42D2A323DCC04660A29F2B9435A36A77" - { - "SourcePath" = "8:release\\h263ffmpeg_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{4D3EE295-5953-498D-AEDF-9C8792AB5723}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_560F55D3E38E48D79F211F73FF1CE710" - { - "SourcePath" = "8:release\\usb_hid_lid_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{B28C1159-B360-4CAD-809E-187E267E59EC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_7756AFF18CF0467C9E24F033F960BFEB" - { - "SourcePath" = "8:release\\LPC_10_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9481B85A-4166-4607-ADC4-0C19D2753EB7}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_7FFC8B8387554738A1A4D90913EAACE9" - { - "SourcePath" = "8:release\\IMA_ADPCM_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{25F0AA82-0186-45AD-92C3-EE1F9282A038}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_8FA48DA7C1444BF4B485D092B1B1E08F" - { - "SourcePath" = "8:release\\iLBC_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{F1C13640-A056-4280-B1C6-6582E5890B89}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_91E1233FBE754D9AB70A4FFCED8242A6" - { - "SourcePath" = "8:release\\ixj_lid_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{DA4001E4-1B19-4A2E-A6B4-795AB65C41BF}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_94624D718E2646E68E3BFD9C2BDC78D7" - { - "SourcePath" = "8:release\\tj_lid_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{A24B5E63-F99A-4D5F-986E-96A94E5DBB31}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_98AC52FB086E4EE5BA244DB12AF30366" - { - "SourcePath" = "8:release\\speex_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{02AFB070-A9D5-4FB7-A041-311722C9F8D4}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_9CBEA0E7F8D74CAF902B08E971EBE876" - { - "SourcePath" = "8:release\\VoiceAgeG729_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{3F038BF6-B7B9-4941-AF57-8D539FC05781}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_E0AB1B1014A94502A8194BA234DCD1C8" - { - "SourcePath" = "8:release\\G726_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{269DA9EF-526D-46DE-AA69-D39EFBCB29C0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F1E637AE217B463CB6A419CFB36A9B7F" - { - "SourcePath" = "8:release\\vpb_lid_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{B8F15B37-DE93-4D2E-9063-34B7920E9E90}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_FD781DA142104005AF77B1512AE1A750" - { - "SourcePath" = "8:release\\gsmamr_pwplugin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_FCFFA598FE234C9BB0252D3D126DE500" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{92E9FA1E-2925-42FD-8226-A07CBD237E18}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - } - } -} Copied: opal/trunk/plugins/Installer_2003.vdproj (from rev 18925, opal/trunk/plugins/Install.vdproj) =================================================================== --- opal/trunk/plugins/Installer_2003.vdproj (rev 0) +++ opal/trunk/plugins/Installer_2003.vdproj 2007-11-23 06:38:39 UTC (rev 18934) @@ -0,0 +1,1380 @@ +"DeployProject" +{ +"VSVersion" = "3:701" +"ProjectType" = "8:{2C2AF0D9-9B47-4FE5-BEF2-169778172667}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:OPAL Plug Ins" +"LanguageId" = "3:1033" +"CodePage" = "3:1252" +"UILanguageId" = "3:1033" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_17604ABB7CE97A535A9FB2B9B666E771" + "OwnerKey" = "8:_F1E637AE217B463CB6A419CFB36A9B7F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_1F0EBA43C1FB4EE1BE32176BB0B0165B" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_28DA9D9BD4564812AF8882568F6A1A98" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_30DCF8910AC6B730560E52EC29629CE7" + "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_3171ED5092DF4E52B1C2BCAFAF2FB618" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_42D2A323DCC04660A29F2B9435A36A77" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_560F55D3E38E48D79F211F73FF1CE710" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7756AFF18CF0467C9E24F033F960BFEB" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_1F0EBA43C1FB4EE1BE32176BB0B0165B" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_FD781DA142104005AF77B1512AE1A750" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_9CBEA0E7F8D74CAF902B08E971EBE876" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_98AC52FB086E4EE5BA244DB12AF30366" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_8FA48DA7C1444BF4B485D092B1B1E08F" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_42D2A323DCC04660A29F2B9435A36A77" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_3171ED5092DF4E52B1C2BCAFAF2FB618" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7B9D0ACFCE38401AB010653B40E79865" + "OwnerKey" = "8:_28DA9D9BD4564812AF8882568F6A1A98" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_7FFC8B8387554738A1A4D90913EAACE9" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_8FA48DA7C1444BF4B485D092B1B1E08F" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_94624D718E2646E68E3BFD9C2BDC78D7" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_974844E9710D59ECB1F65AE8CD7B96F1" + "OwnerKey" = "8:_560F55D3E38E48D79F211F73FF1CE710" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_98AC52FB086E4EE5BA244DB12AF30366" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_9CBEA0E7F8D74CAF902B08E971EBE876" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AB4B312460F88DC3354B52FAC2236513" + "OwnerKey" = "8:_1F0EBA43C1FB4EE1BE32176BB0B0165B" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AC88AFC28F14C06CE25BD3F255A982FD" + "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B5E69076CDA59A3D6715DEA3DFD0EB53" + "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_BE5DA5348A1E6C69C22A40A19B3321BE" + "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_E0AB1B1014A94502A8194BA234DCD1C8" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_EADEB495A68F49A4AC40DEC1EA939782" + "OwnerKey" = "8:_42D2A323DCC04660A29F2B9435A36A77" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_EADEB495A68F49A4AC40DEC1EA939782" + "OwnerKey" = "8:_91E1233FBE754D9AB70A4FFCED8242A6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F1E637AE217B463CB6A419CFB36A9B7F" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FD781DA142104005AF77B1512AE1A750" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:.\\release\\install\\OPAL_Plugins.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:3" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:1" + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:Def... [truncated message content] |
From: <hfr...@us...> - 2007-11-24 10:09:56
|
Revision: 18941 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18941&view=rev Author: hfriederich Date: 2007-11-24 02:10:00 -0800 (Sat, 24 Nov 2007) Log Message: ----------- Update interface monitor to changed PInterfaceMonitorClient API Modified Paths: -------------- opal/trunk/include/opal/manager.h opal/trunk/src/opal/manager.cxx Modified: opal/trunk/include/opal/manager.h =================================================================== --- opal/trunk/include/opal/manager.h 2007-11-24 09:58:23 UTC (rev 18940) +++ opal/trunk/include/opal/manager.h 2007-11-24 10:10:00 UTC (rev 18941) @@ -1135,9 +1135,11 @@ { PCLASSINFO(InterfaceMonitor, PInterfaceMonitorClient); + enum { + OpalManagerInterfaceMonitorClientPriority = 100, + }; public: InterfaceMonitor(PSTUNClient * stun); - virtual PINDEX GetPriority() const { return 100; } protected: virtual void OnAddInterface(const PIPSocket::InterfaceEntry & entry); Modified: opal/trunk/src/opal/manager.cxx =================================================================== --- opal/trunk/src/opal/manager.cxx 2007-11-24 09:58:23 UTC (rev 18940) +++ opal/trunk/src/opal/manager.cxx 2007-11-24 10:10:00 UTC (rev 18941) @@ -1221,7 +1221,8 @@ ///////////////////////////////////////////////////////////////////////////// OpalManager::InterfaceMonitor::InterfaceMonitor(PSTUNClient * _stun) -: stun(_stun) +: PInterfaceMonitorClient(OpalManagerInterfaceMonitorClientPriority), + stun(_stun) { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hfr...@us...> - 2007-11-24 10:34:47
|
Revision: 18943 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18943&view=rev Author: hfriederich Date: 2007-11-24 02:34:51 -0800 (Sat, 24 Nov 2007) Log Message: ----------- Monitor interfaces and attempt to gracefully re-register when interfaces change Modified Paths: -------------- opal/trunk/include/h323/gkclient.h opal/trunk/src/h323/gkclient.cxx Modified: opal/trunk/include/h323/gkclient.h =================================================================== --- opal/trunk/include/h323/gkclient.h 2007-11-24 10:34:13 UTC (rev 18942) +++ opal/trunk/include/h323/gkclient.h 2007-11-24 10:34:51 UTC (rev 18943) @@ -95,8 +95,8 @@ BOOL OnReceiveServiceControlIndication(const H225_ServiceControlIndication &); void OnSendGatekeeperRequest(H225_GatekeeperRequest & grq); void OnSendAdmissionRequest(H225_AdmissionRequest & arq); - BOOL OnSendFeatureSet(unsigned, H225_FeatureSet & features) const; - void OnReceiveFeatureSet(unsigned, const H225_FeatureSet & features) const; + BOOL OnSendFeatureSet(unsigned, H225_FeatureSet & features) const; + void OnReceiveFeatureSet(unsigned, const H225_FeatureSet & features) const; //@} /**@name Protocol operations */ @@ -276,7 +276,6 @@ protected: BOOL StartDiscovery(const H323TransportAddress & address); - BOOL DiscoverGatekeeper(H323RasPDU & request, const H323TransportAddress & address); unsigned SetupGatekeeperRequest(H323RasPDU & request); void Connect(const H323TransportAddress & address, const PString & gatekeeperIdentifier); @@ -309,13 +308,40 @@ Request & request, unsigned unregisteredTag ); + + + // Handling interface changes + void OnAddInterface(const PIPSocket::InterfaceEntry & entry, PINDEX priority); + void OnRemoveInterface(const PIPSocket::InterfaceEntry & entry, PINDEX priority); + BOOL DiscoverGatekeeper(const H323TransportAddress & address); + void UpdateConnectionStatus(); // Gatekeeper registration state variables BOOL discoveryComplete; PString endpointIdentifier; RegistrationFailReasons registrationFailReason; - + + enum { + HighPriority = 80, + LowPriority = 40, + }; + class InterfaceMonitor : public PInterfaceMonitorClient + { + PCLASSINFO(InterfaceMonitor, PInterfaceMonitorClient); + + public: + InterfaceMonitor(H323Gatekeeper & gk, PINDEX priority); + + protected: + virtual void OnAddInterface(const PIPSocket::InterfaceEntry & entry); + virtual void OnRemoveInterface(const PIPSocket::InterfaceEntry & entry); + + H323Gatekeeper & gk; + }; + InterfaceMonitor highPriorityMonitor; + InterfaceMonitor lowPriorityMonitor; + class AlternateInfo : public PObject { PCLASSINFO(AlternateInfo, PObject); public: Modified: opal/trunk/src/h323/gkclient.cxx =================================================================== --- opal/trunk/src/h323/gkclient.cxx 2007-11-24 10:34:13 UTC (rev 18942) +++ opal/trunk/src/h323/gkclient.cxx 2007-11-24 10:34:51 UTC (rev 18943) @@ -77,6 +77,8 @@ H323Gatekeeper::H323Gatekeeper(H323EndPoint & ep, H323Transport * trans) : H225_RAS(ep, trans), + highPriorityMonitor(*this, HighPriority), + lowPriorityMonitor(*this, LowPriority), requestMutex(1, 1), authenticators(ep.CreateAuthenticators()) #ifdef H323_H460 @@ -243,6 +245,49 @@ } +BOOL H323Gatekeeper::DiscoverGatekeeper(const H323TransportAddress & address) +{ + discoveryComplete = FALSE; + + H323RasPDU pdu; + Request request(SetupGatekeeperRequest(pdu), pdu); + + H323TransportAddress addr = address; + request.responseInfo = &addr; + + requestsMutex.Wait(); + requests.SetAt(request.sequenceNumber, &request); + requestsMutex.Signal(); + + BOOL ok = FALSE; + + for (unsigned retry = 0; retry < endpoint.GetGatekeeperRequestRetries(); retry++) { + if (!transport->WriteConnect(WriteGRQ, &pdu)) { + PTRACE(1, "RAS\tError writing discovery PDU: " << transport->GetErrorText()); + break; + } + + ok = request.Poll(*this); + if (ok) + break; + } + + transport->EndConnect(transport->GetInterface()); + + if (discoveryComplete) { + PTRACE(3, "RAS\tGatekeeper discovered at: " + << transport->GetRemoteAddress() + << " (if=" << transport->GetLocalAddress() << ')'); + } + + requestsMutex.Wait(); + requests.SetAt(request.sequenceNumber, NULL); + requestsMutex.Signal(); + + return discoveryComplete; +} + + unsigned H323Gatekeeper::SetupGatekeeperRequest(H323RasPDU & request) { if (PAssertNULL(transport) == NULL) @@ -1814,6 +1859,87 @@ } +void H323Gatekeeper::OnAddInterface(const PIPSocket::InterfaceEntry & entry, PINDEX priority) +{ + if (priority == HighPriority) { + return; + } + + UpdateConnectionStatus(); +} + +void H323Gatekeeper::OnRemoveInterface(const PIPSocket::InterfaceEntry & entry, PINDEX priority) +{ + if (priority == LowPriority) { + UpdateConnectionStatus(); + return; + } + + if (transport == NULL) { + return; + } + + PString iface = transport->GetInterface(); + if (iface.IsEmpty()) { // not connected. + return; + } + + if (PInterfaceMonitor::IsMatchingInterface(iface, entry)) { + // currently used interface went down. make transport listen + // on all available interfaces. + transport->EndConnect(PString::Empty()); + PTRACE(1, "Kicked out interface binding"); + } +} + +void H323Gatekeeper::UpdateConnectionStatus() +{ + // sanity check + if (transport == NULL) { + return; + } + + PString iface = transport->GetInterface(); + if (!iface.IsEmpty()) { // still connected + return; + } + + // not connected anymore. so see if there is an interface available + // for connecting to the remote address. + PIPSocket::Address addr; + if (!transport->GetRemoteAddress().GetIpAddress(addr)) { + return; + } + + if (lowPriorityMonitor.GetInterfaces(FALSE, addr).GetSize() > 0) { + // at least one interface available, locate gatekeper + + if (DiscoverGatekeeper(transport->GetRemoteAddress())) { + RegistrationRequest(); + } + } +} + + +BOOL H323Gatekeeper::OnSendFeatureSet(unsigned pduType, H225_FeatureSet & message) const +{ +#ifdef H323_H460 + return features.SendFeature(pduType, message); +#else + return endpoint.OnSendFeatureSet(pduType, message); +#endif +} + +void H323Gatekeeper::OnReceiveFeatureSet(unsigned pduType, const H225_FeatureSet & message) const +{ +#ifdef H323_H460 + features.ReceiveFeature(pduType, message); +#else + endpoint.OnReceiveFeatureSet(pduType, message); +#endif +} + + ///////////////////////////////////////////////////////////////////////////// H323Gatekeeper::AlternateInfo::AlternateInfo(H225_AlternateGK & alt) @@ -1854,23 +1980,24 @@ strm << ";priority=" << priority; } -BOOL H323Gatekeeper::OnSendFeatureSet(unsigned pduType, H225_FeatureSet & message) const + +///////////////////////////////////////////////////////////////////////////// + +H323Gatekeeper::InterfaceMonitor::InterfaceMonitor(H323Gatekeeper & _gk, PINDEX priority) +: PInterfaceMonitorClient(priority), +gk(_gk) { -#ifdef H323_H460 - return features.SendFeature(pduType, message); -#else - return endpoint.OnSendFeatureSet(pduType, message); -#endif } -void H323Gatekeeper::OnReceiveFeatureSet(unsigned pduType, const H225_FeatureSet & message) const +void H323Gatekeeper::InterfaceMonitor::OnAddInterface(const PIPSocket::InterfaceEntry & entry) { -#ifdef H323_H460 - features.ReceiveFeature(pduType, message); -#else - endpoint.OnReceiveFeatureSet(pduType, message); -#endif + gk.OnAddInterface(entry, priority); } +void H323Gatekeeper::InterfaceMonitor::OnRemoveInterface(const PIPSocket::InterfaceEntry & entry) +{ + gk.OnRemoveInterface(entry, priority); +} ///////////////////////////////////////////////////////////////////////////// + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-25 09:24:57
|
Revision: 18944 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18944&view=rev Author: rjongbloed Date: 2007-11-25 01:24:57 -0800 (Sun, 25 Nov 2007) Log Message: ----------- Added ability to set router translation address (non-STUN) by host name. Modified Paths: -------------- opal/trunk/include/opal/manager.h opal/trunk/samples/openphone/main.cxx opal/trunk/src/opal/manager.cxx Modified: opal/trunk/include/opal/manager.h =================================================================== --- opal/trunk/include/opal/manager.h 2007-11-24 10:34:51 UTC (rev 18943) +++ opal/trunk/include/opal/manager.h 2007-11-25 09:24:57 UTC (rev 18944) @@ -835,6 +835,16 @@ const PIPSocket::Address & remoteAddress ); + /**Get the translation host to use for TranslateIPAddress(). + */ + const PString & GetTranslationHost() const { return translationHost; } + + /**Set the translation host to use for TranslateIPAddress(). + */ + bool SetTranslationHost( + const PString & host + ); + /**Get the translation address to use for TranslateIPAddress(). */ const PIPSocket::Address & GetTranslationAddress() const { return translationAddress; } @@ -843,7 +853,7 @@ */ void SetTranslationAddress( const PIPSocket::Address & address - ) { translationAddress = address; } + ); /**Return the STUN server to use. Returns NULL if address is a local address as per IsLocalAddress(). @@ -1148,6 +1158,7 @@ PSTUNClient * stun; }; + PString translationHost; PIPSocket::Address translationAddress; PString stunServer; PSTUNClient * stun; Modified: opal/trunk/samples/openphone/main.cxx =================================================================== --- opal/trunk/samples/openphone/main.cxx 2007-11-24 10:34:51 UTC (rev 18943) +++ opal/trunk/samples/openphone/main.cxx 2007-11-25 09:24:57 UTC (rev 18944) @@ -535,7 +535,7 @@ if (config->Read(RTPTOSKey, &value1)) SetRtpIpTypeofService(value1); if (config->Read(NATRouterKey, &str)) - SetTranslationAddress(str); + SetTranslationHost(str); if (config->Read(STUNServerKey, &str) && !str.IsEmpty()) { m_logWindow->WriteText("STUN server \"" + str + "\" being contacted ...\n"); Update(); @@ -2010,7 +2010,7 @@ INIT_FIELD(STUNServer, m_manager.GetSTUNServer()); PwxString natRouter; if (m_manager.GetTranslationAddress().IsValid()) - natRouter = m_manager.GetTranslationAddress().AsString(); + natRouter = m_manager.GetTranslationHost(); INIT_FIELD(NATRouter, natRouter); m_AddInterface = FindWindowByNameAs<wxButton>(this, "AddInterface"); @@ -2332,7 +2332,7 @@ SAVE_FIELD2(RTPPortBase, RTPPortMax, m_manager.SetRtpIpPorts); SAVE_FIELD(RTPTOS, m_manager.SetRtpIpTypeofService); SAVE_FIELD(STUNServer, m_manager.SetSTUNServer); - SAVE_FIELD(NATRouter, m_manager.SetTranslationAddress); + SAVE_FIELD(NATRouter, m_manager.SetTranslationHost); config->DeleteGroup(LocalInterfacesGroup); config->SetPath(LocalInterfacesGroup); Modified: opal/trunk/src/opal/manager.cxx =================================================================== --- opal/trunk/src/opal/manager.cxx 2007-11-24 10:34:51 UTC (rev 18943) +++ opal/trunk/src/opal/manager.cxx 2007-11-25 09:24:57 UTC (rev 18944) @@ -913,6 +913,26 @@ } +bool OpalManager::SetTranslationHost(const PString & host) +{ + if (PIPSocket::GetHostAddress(host, translationAddress)) { + translationHost = host; + return true; + } + + translationHost = PString::Empty(); + translationAddress = PIPSocket::GetDefaultIpAny(); + return false; +} + + +void OpalManager::SetTranslationAddress(const PIPSocket::Address & address) +{ + translationAddress = address; + translationHost = PIPSocket::GetHostName(address); +} + + PSTUNClient * OpalManager::GetSTUN(const PIPSocket::Address & ip) const { if (ip.IsValid() && IsLocalAddress(ip)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2007-11-26 10:25:27
|
Revision: 18955 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18955&view=rev Author: rjongbloed Date: 2007-11-26 02:25:31 -0800 (Mon, 26 Nov 2007) Log Message: ----------- Fixed incorrect data frame size being returned due to uninitialised frame width/height. Removed unused variables in video transcoder. Removed now redundent uncompressed video transcoder, superceded by RFC4175. Modified Paths: -------------- opal/trunk/include/codec/opalpluginmgr.h opal/trunk/include/codec/rfc4175.h opal/trunk/include/codec/vidcodec.h opal/trunk/src/codec/opalpluginmgr.cxx opal/trunk/src/codec/rfc4175.cxx opal/trunk/src/codec/vidcodec.cxx Modified: opal/trunk/include/codec/opalpluginmgr.h =================================================================== --- opal/trunk/include/codec/opalpluginmgr.h 2007-11-26 09:36:45 UTC (rev 18954) +++ opal/trunk/include/codec/opalpluginmgr.h 2007-11-26 10:25:31 UTC (rev 18955) @@ -335,7 +335,6 @@ OpalPluginVideoTranscoder(const PluginCodec_Definition * _codec, BOOL _isEncoder); ~OpalPluginVideoTranscoder(); - PINDEX GetOptimalDataFrameSize(BOOL input) const; BOOL ConvertFrames(const RTP_DataFrame & src, RTP_DataFrameList & dstList); BOOL UpdateOutputMediaFormat(const OpalMediaFormat & fmt); Modified: opal/trunk/include/codec/rfc4175.h =================================================================== --- opal/trunk/include/codec/rfc4175.h 2007-11-26 09:36:45 UTC (rev 18954) +++ opal/trunk/include/codec/rfc4175.h 2007-11-26 10:25:31 UTC (rev 18955) @@ -58,9 +58,9 @@ ///////////////////////////////////////////////////////////////////////////// -class OpalRFC4175Transcoder : public OpalUncompVideoTranscoder +class OpalRFC4175Transcoder : public OpalVideoTranscoder { - PCLASSINFO(OpalRFC4175Transcoder, OpalUncompVideoTranscoder); + PCLASSINFO(OpalRFC4175Transcoder, OpalVideoTranscoder); public: OpalRFC4175Transcoder( const OpalMediaFormat & inputMediaFormat, ///< Input media format Modified: opal/trunk/include/codec/vidcodec.h =================================================================== --- opal/trunk/include/codec/vidcodec.h 2007-11-26 09:36:45 UTC (rev 18954) +++ opal/trunk/include/codec/vidcodec.h 2007-11-26 10:25:31 UTC (rev 18955) @@ -96,6 +96,16 @@ const OpalMediaFormat & mediaFormat ///< New media format ); + /**Get the optimal size for data frames to be converted. + This function returns the size of frames that will be most efficient + in conversion. A RTP_DataFrame will attempt to provide or use data in + multiples of this size. Note that it may not do so, so the transcoder + must be able to handle any sized packets. + */ + virtual PINDEX GetOptimalDataFrameSize( + BOOL input ///< Flag for input or output data size + ) const; + /**Execute the command specified to the transcoder. The commands are highly context sensitive, for example VideoFastUpdate would only apply to a video transcoder. @@ -124,15 +134,9 @@ //@} protected: - unsigned frameWidth; - unsigned frameHeight; - unsigned videoQuality; - unsigned targetBitRate; - bool dynamicVideoQuality; - bool adaptivePacketDelay; - unsigned fillLevel; - - bool forceIFrame; + PINDEX inDataSize; + PINDEX outDataSize; + bool forceIFrame; }; @@ -193,136 +197,10 @@ }; -/////////////////////////////////////////////////////////////////////////////// -#if OPAL_H323 -/* This code is only built if the user has enabled the H.323 voip - protocol in the configure step. The default configuration enables - H.323 */ -/**This class is a uncompressed video capability. - */ -class H323_UncompVideoCapability : public H323NonStandardVideoCapability -{ - PCLASSINFO(H323_UncompVideoCapability, H323NonStandardVideoCapability) - public: - /**@name Construction */ - //@{ - /**Create a new uncompressed video Capability - */ - H323_UncompVideoCapability( - const H323EndPoint & endpoint, ///< Endpoint to get t35 information - const PString & colourFormat ///< Video colour format name - ); - //@} - /**@name Overrides from class PObject */ - //@{ - /**Create a copy of the object. - */ - virtual PObject * Clone() const; - //@} - - /**@name Identification functions */ - //@{ - /**Get the name of the media data format this class represents. - */ - virtual PString GetFormatName() const; - //@} - - protected: - PString colourFormat; -}; - -#define OPAL_REGISTER_UNCOMPRESSED_VIDEO_H323 \ - H323_REGISTER_CAPABILITY_FUNCTION(H323_RGB24, OPAL_RGB24, ep) \ - { return new H323_UncompVideoCapability(ep, OpalRGB24); } \ - H323_REGISTER_CAPABILITY_FUNCTION(H323_RGB32, OPAL_RGB32, ep) \ - { return new H323_UncompVideoCapability(ep, OpalRGB32); } - -#else // ifndef NO_H323 - -#define OPAL_REGISTER_UNCOMPRESSED_VIDEO_H323 - -#endif // ifndef NO_H323 - - -/////////////////////////////////////////////////////////////////////////////// - -/**This class defines a transcoder implementation class that will - encode/decode uncompressed video. - */ -class OpalUncompVideoTranscoder : public OpalVideoTranscoder -{ - PCLASSINFO(OpalUncompVideoTranscoder, OpalVideoTranscoder); - public: - /**@name Construction */ - //@{ - /** Create a new video transcoder implementation. - */ - OpalUncompVideoTranscoder( - const OpalMediaFormat & inputMediaFormat, ///< Input media format - const OpalMediaFormat & outputMediaFormat ///< Output media format - ); - - /**Destroy the video transcoder cleaning up the colour converter. - */ - ~OpalUncompVideoTranscoder(); - //@} - - /**@name Operations */ - //@{ - /**Get the optimal size for data frames to be converted. - This function returns the size of frames that will be most efficient - in conversion. A RTP_DataFrame will attempt to provide or use data in - multiples of this size. Note that it may not do so, so the transcoder - must be able to handle any sized packets. - */ - virtual PINDEX GetOptimalDataFrameSize( - BOOL input ///< Flag for input or output data size - ) const; - - /**Convert the data from one format to another. - This function takes the input data as a RTP_DataFrame and converts it - to its output format, placing it (possibly) into multiple RTP_DataFrame - objects. - - The default behaviour makes sure the output list has only one element - in it and calls the Convert() function. - - Returns FALSE if the conversion fails. - */ - virtual BOOL ConvertFrames( - const RTP_DataFrame & input, ///< Input data - RTP_DataFrameList & output ///< Output data - ); - //@} -}; - - -class Opal_RGB24_RGB24 : public OpalUncompVideoTranscoder { - PCLASSINFO(Opal_RGB24_RGB24, OpalUncompVideoTranscoder); - public: - Opal_RGB24_RGB24() : OpalUncompVideoTranscoder(OpalRGB24, OpalRGB24) { } -}; - - -class Opal_RGB32_RGB32 : public OpalUncompVideoTranscoder { - PCLASSINFO(Opal_RGB32_RGB32, OpalUncompVideoTranscoder); - public: - Opal_RGB32_RGB32() : OpalUncompVideoTranscoder(OpalRGB32, OpalRGB32) { } -}; - - -/////////////////////////////////////////////////////////////////////////////// - -#define OPAL_REGISTER_UNCOMPRESSED_VIDEO() \ - OPAL_REGISTER_UNCOMPRESSED_VIDEO_H323 \ - OPAL_REGISTER_TRANSCODER(Opal_RGB32_RGB32, OpalRGB32, OpalRGB32); \ - OPAL_REGISTER_TRANSCODER(Opal_RGB24_RGB24, OpalRGB24, OpalRGB24) - - #endif // __OPAL_VIDCODEC_H Modified: opal/trunk/src/codec/opalpluginmgr.cxx =================================================================== --- opal/trunk/src/codec/opalpluginmgr.cxx 2007-11-26 09:36:45 UTC (rev 18954) +++ opal/trunk/src/codec/opalpluginmgr.cxx 2007-11-26 10:25:31 UTC (rev 18955) @@ -891,11 +891,6 @@ } -PINDEX OpalPluginVideoTranscoder::GetOptimalDataFrameSize(BOOL /*input*/) const -{ - return (frameWidth * frameHeight * 12) / 8; -} - BOOL OpalPluginVideoTranscoder::ConvertFrames(const RTP_DataFrame & src, RTP_DataFrameList & dstList) { dstList.RemoveAll(); Modified: opal/trunk/src/codec/rfc4175.cxx =================================================================== --- opal/trunk/src/codec/rfc4175.cxx 2007-11-26 09:36:45 UTC (rev 18954) +++ opal/trunk/src/codec/rfc4175.cxx 2007-11-26 10:25:31 UTC (rev 18955) @@ -127,7 +127,7 @@ const OpalMediaFormat & inputMediaFormat, ///< Input media format const OpalMediaFormat & outputMediaFormat ///< Output media format ) - : OpalUncompVideoTranscoder(inputMediaFormat, outputMediaFormat) + : OpalVideoTranscoder(inputMediaFormat, outputMediaFormat) { } Modified: opal/trunk/src/codec/vidcodec.cxx =================================================================== --- opal/trunk/src/codec/vidcodec.cxx 2007-11-26 09:36:45 UTC (rev 18954) +++ opal/trunk/src/codec/vidcodec.cxx 2007-11-26 10:25:31 UTC (rev 18955) @@ -94,10 +94,11 @@ OpalVideoTranscoder::OpalVideoTranscoder(const OpalMediaFormat & inputMediaFormat, const OpalMediaFormat & outputMediaFormat) : OpalTranscoder(inputMediaFormat, outputMediaFormat) + , inDataSize(0) + , outDataSize(0) , forceIFrame(false) { UpdateOutputMediaFormat(outputMediaFormat); - fillLevel = 5; } @@ -108,10 +109,28 @@ if (!OpalTranscoder::UpdateOutputMediaFormat(mediaFormat)) return FALSE; + inDataSize = PVideoDevice::CalculateFrameBytes(mediaFormat.GetOptionInteger(OpalVideoFormat::MaxRxFrameWidthOption(), PVideoFrameInfo::CIFWidth), + mediaFormat.GetOptionInteger(OpalVideoFormat::MaxRxFrameHeightOption(), PVideoFrameInfo::CIFHeight), + GetInputFormat()); + outDataSize = PVideoDevice::CalculateFrameBytes(mediaFormat.GetOptionInteger(OpalVideoFormat::FrameWidthOption(), PVideoFrameInfo::CIFWidth), + mediaFormat.GetOptionInteger(OpalVideoFormat::FrameHeightOption(), PVideoFrameInfo::CIFHeight), + GetOutputFormat()); return TRUE; } +PINDEX OpalVideoTranscoder::GetOptimalDataFrameSize(BOOL input) const +{ + if (input) + return inDataSize; + + if (outDataSize < maxOutputSize) + return outDataSize; + + return maxOutputSize; +} + + BOOL OpalVideoTranscoder::ExecuteCommand(const OpalMediaCommand & command) { if (PIsDescendant(&command, OpalVideoUpdatePicture)) { @@ -149,110 +168,7 @@ return "Lost Picture"; } -/////////////////////////////////////////////////////////////////////////////// -#if OPAL_H323 - -H323_UncompVideoCapability::H323_UncompVideoCapability(const H323EndPoint & /*endpoint*/, - const PString & colourFmt) - : H323NonStandardVideoCapability((const BYTE *)(const char *)colourFmt, - colourFmt.GetLength()), - colourFormat(colourFmt) -{ -} - - -PObject * H323_UncompVideoCapability::Clone() const -{ - return new H323_UncompVideoCapability(*this); -} - - -PString H323_UncompVideoCapability::GetFormatName() const -{ - return colourFormat; -} - -#endif // OPAL_H323 - - -///////////////////////////////////////////////////////////////////////////// - -OpalUncompVideoTranscoder::OpalUncompVideoTranscoder(const OpalMediaFormat & inputMediaFormat, - const OpalMediaFormat & outputMediaFormat) - : OpalVideoTranscoder(inputMediaFormat, outputMediaFormat) -{ -} - - -OpalUncompVideoTranscoder::~OpalUncompVideoTranscoder() -{ -} - - -PINDEX OpalUncompVideoTranscoder::GetOptimalDataFrameSize(BOOL input) const -{ -#ifndef NO_OPAL_VIDEO - PINDEX frameBytes = PVideoDevice::CalculateFrameBytes(frameWidth, frameHeight, GetOutputFormat()); - if (!input && frameBytes > maxOutputSize) - frameBytes = maxOutputSize; - - return frameBytes; -#else - return 0; -#endif -} - - -BOOL OpalUncompVideoTranscoder::ConvertFrames(const RTP_DataFrame & input, - RTP_DataFrameList & output) -{ -#ifndef NO_OPAL_VIDEO - output.RemoveAll(); - - const FrameHeader * srcHeader = (const FrameHeader *)input.GetPayloadPtr(); - if (srcHeader->x != 0 || srcHeader->y != 0) - return FALSE; - - if (srcHeader->width != frameWidth || srcHeader->height != frameHeight) { - frameWidth = srcHeader->width; - frameHeight = srcHeader->height; - } - - PINDEX frameBytes = PVideoDevice::CalculateFrameBytes(frameWidth, frameHeight, GetOutputFormat()); - - // Calculate number of output frames - PINDEX bytesPerScanLine = frameBytes/frameHeight; - - unsigned scanLinesPerBand = maxOutputSize/bytesPerScanLine; - if (scanLinesPerBand > frameHeight) - scanLinesPerBand = frameHeight; - - unsigned bandCount = (frameHeight+scanLinesPerBand-1)/scanLinesPerBand; - if (bandCount < 1) - return FALSE; - - for (unsigned band = 0; band < bandCount; band++) { - RTP_DataFrame * pkt = new RTP_DataFrame(scanLinesPerBand*bytesPerScanLine); - pkt->SetPayloadType(outputMediaFormat.GetPayloadType()); - pkt->SetTimestamp(input.GetTimestamp()); - output.Append(pkt); - FrameHeader * dstHeader = (FrameHeader *)pkt->GetPayloadPtr(); - dstHeader->x = srcHeader->x; - dstHeader->y = srcHeader->y + band*scanLinesPerBand; - dstHeader->width = srcHeader->width; - dstHeader->height = scanLinesPerBand; - memcpy(OPAL_VIDEO_FRAME_DATA_PTR(dstHeader), OPAL_VIDEO_FRAME_DATA_PTR(srcHeader)+band*bytesPerScanLine, scanLinesPerBand*bytesPerScanLine); - } - - output[output.GetSize()-1].SetMarker(TRUE); - - return TRUE; -#else - return FALSE; -#endif -} - #endif // OPAL_VIDEO ///////////////////////////////////////////////////////////////////////////// This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2007-11-26 13:27:31
|
Revision: 18958 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18958&view=rev Author: csoutheren Date: 2007-11-26 05:27:36 -0800 (Mon, 26 Nov 2007) Log Message: ----------- Ensure VXML scripts end properly Modified Paths: -------------- opal/trunk/include/opal/ivr.h opal/trunk/src/opal/ivr.cxx Modified: opal/trunk/include/opal/ivr.h =================================================================== --- opal/trunk/include/opal/ivr.h 2007-11-26 13:27:08 UTC (rev 18957) +++ opal/trunk/include/opal/ivr.h 2007-11-26 13:27:36 UTC (rev 18958) @@ -340,9 +340,12 @@ Returns FALSE for IVR streams. */ virtual BOOL IsSynchronous() const; + + BOOL ReadPacket(RTP_DataFrame & packet); //@} protected: + OpalConnection & conn; PVXMLSession & vxmlSession; }; Modified: opal/trunk/src/opal/ivr.cxx =================================================================== --- opal/trunk/src/opal/ivr.cxx 2007-11-26 13:27:08 UTC (rev 18957) +++ opal/trunk/src/opal/ivr.cxx 2007-11-26 13:27:36 UTC (rev 18958) @@ -307,7 +307,7 @@ } } - vxmlSession.SetFinishWhenEmpty(TRUE); + vxmlSession.PlayStop(); return TRUE; } @@ -383,13 +383,13 @@ ///////////////////////////////////////////////////////////////////////////// -OpalIVRMediaStream::OpalIVRMediaStream(OpalIVRConnection & conn, +OpalIVRMediaStream::OpalIVRMediaStream(OpalIVRConnection & _conn, const OpalMediaFormat & mediaFormat, unsigned sessionID, BOOL isSourceStream, PVXMLSession & vxml) - : OpalRawMediaStream(conn, mediaFormat, sessionID, isSourceStream, &vxml, FALSE), - vxmlSession(vxml) + : OpalRawMediaStream(_conn, mediaFormat, sessionID, isSourceStream, &vxml, FALSE), + conn(_conn), vxmlSession(vxml) { PTRACE(3, "IVR\tOpalIVRMediaStream sessionID = " << sessionID << ", isSourceStream = " << isSourceStream); } @@ -428,7 +428,17 @@ return FALSE; } +BOOL OpalIVRMediaStream::ReadPacket(RTP_DataFrame & packet) +{ + BOOL stat = OpalRawMediaStream::ReadPacket(packet); + if (!stat) + conn.Release(); + + return stat; +} + + BOOL OpalIVRMediaStream::IsSynchronous() const { return FALSE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |