]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
Merge branch 't/speex'
authorAndre Noll <maan@systemlinux.org>
Sun, 1 Aug 2010 11:26:42 +0000 (13:26 +0200)
committerAndre Noll <maan@systemlinux.org>
Sun, 1 Aug 2010 11:26:42 +0000 (13:26 +0200)
1  2 
alsa_write.c
configure.ac

diff --combined alsa_write.c
index 7f8aae01c22a6b9fcc2a48712c490b6bde73b40e,7f045aad9f5d426c7b09d0d61fadc1cb89094504..d115a52db0ae899be1ec003d4f7e060611b0ee94
@@@ -46,7 -46,6 +46,6 @@@ struct private_alsa_write_data 
         * of the writer node group.
         */
        unsigned sample_rate;
        snd_pcm_format_t sample_format;
        /**
         * The number of channels, given by command line option or the
@@@ -258,7 -257,6 +257,7 @@@ again
                if (ret < 0)
                        goto err;
                wn->min_iqs = pad->bytes_per_frame;
 +              goto again;
        }
        frames = bytes / pad->bytes_per_frame;
        frames = snd_pcm_writei(pad->handle, data, frames);
diff --combined configure.ac
index 8fbf49a6e222e253c17a686fa07ed013b7e4ce42,5322e7d1be6a12b5230d15599fc6b323e00e3a0d..a7bd3e1ab5e96bb956b8598af2786aadca2f106c
@@@ -133,7 -133,7 +133,7 @@@ server_errlist_objs="server afh_common 
        blob playlist sha1 sched acl send_common udp_send color fec
        server_command_list afs_command_list wma_afh wma_common"
  server_ldflags="-losl"
- server_audio_formats=" mp3 wma"
+ server_audio_formats="mp3 wma"
  
  write_cmdline_objs="add_cmdline(write file_write)"
  write_errlist_objs="write write_common file_write time fd string sched stdin
@@@ -423,49 -423,88 +423,88 @@@ if test ${have_core_audio} = yes; the
        default_writer="OSX_WRITE"
        AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
  fi
- ########################################################################### ogg
+ ########################################################### ogg/vorbis/speex
  have_ogg="yes"
+ have_vorbis="yes"
+ have_speex="yes"
  OLD_CPPFLAGS="$CPPFLAGS"
  OLD_LD_FLAGS="$LDFLAGS"
  OLD_LIBS="$LIBS"
  AC_ARG_WITH(oggvorbis_headers, [AC_HELP_STRING(--with-oggvorbis-headers=dir,
-       [look for vorbis/codec.h also in dir])])
+       [look for ogg/vorbis/speex headers also in dir])])
  if test -n "$with_oggvorbis_headers"; then
-       oggvorbis_cppflags="-I$with_oggvorbis_headers"
-       CPPFLAGS="$CPPFLAGS $oggvorbis_cppflags"
+       ogg_cppflags="-I$with_oggvorbis_headers"
+       CPPFLAGS="$CPPFLAGS $ogg_cppflags"
  fi
  AC_ARG_WITH(oggvorbis_libs, [AC_HELP_STRING(--with-oggvorbis-libs=dir,
-       [look for oggvorbis libs also in dir])])
+       [look for ogg/vorbis/speex libs also in dir])])
  if test -n "$with_oggvorbis_libs"; then
-       oggvorbis_libs="-L$with_oggvorbis_libs"
-       LDFLAGS="$LDFLAGS $oggvorbis_libs"
+       ogg_libs="-L$with_oggvorbis_libs"
+       LDFLAGS="$LDFLAGS $ogg_libs"
  fi
  
  AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
- AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_ogg="no" ])
- AC_CHECK_HEADERS([ogg/ogg.h vorbis/codec.h], [], [ have_ogg="no" ])
- if test "$have_ogg" = "yes"; then
-       all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
-       AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg vorbis support)
-       filters="$filters oggdec"
+ AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ])
+ AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
+ AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ])
+ AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ])
+ AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
+ msg="support in para_server/para_filter/para_afh"
+ if test "$have_ogg" = "yes" && { test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; }; then
+       AC_SUBST(ogg_cppflags)
+       ogg_libs="$ogg_libs -logg"
        if test "$OSTYPE" = "Darwin"; then
-               oggvorbis_libs="-Wl,-bind_at_load  $oggvorbis_libs"
+               ogg_libs="-Wl,-bind_at_load $ogg_libs $ogg_libs"
+       fi
+       server_ldflags="$server_ldflags $ogg_libs"
+       filter_ldflags="$filter_ldflags $ogg_libs"
+       audiod_ldflags="$audiod_ldflags $ogg_libs"
+       all_errlist_objs="$all_errlist_objs ogg_afh_common"
+       afh_ldflags="$afh_ldflags $ogg_libs"
+       afh_errlist_objs="$afh_errlist_objs ogg_afh_common"
+       server_errlist_objs="$server_errlist_objs ogg_afh_common"
+       if test "$have_vorbis" = "yes"; then
+               all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh"
+               AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support)
+               filters="$filters oggdec"
+               vorbis_libs="-lvorbis -lvorbisfile"
+               server_ldflags="$server_ldflags $vorbis_libs"
+               filter_ldflags="$filter_ldflags $vorbis_libs"
+               audiod_ldflags="$audiod_ldflags $vorbis_libs"
+               afh_ldflags="$afh_ldflags $vorbis_libs"
+               server_errlist_objs="$server_errlist_objs ogg_afh"
+               filter_errlist_objs="$filter_errlist_objs oggdec_filter"
+               audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
+               afh_errlist_objs="$afh_errlist_objs ogg_afh"
+               audiod_audio_formats="$audiod_audio_formats ogg"
+               server_audio_formats="$server_audio_formats ogg"
+       else
+               AC_MSG_WARN([no ogg/vorbis $msg])
+       fi
+       if test "$have_speex" = "yes"; then
+               all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common"
+               AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support)
+               filters="$filters spxdec"
+               speex_libs="-lspeex"
+               server_ldflags="$server_ldflags $speex_libs"
+               filter_ldflags="$filter_ldflags $speex_libs"
+               audiod_ldflags="$audiod_ldflags $speex_libs"
+               afh_ldflags="$afh_ldflags $speex_libs"
+               server_errlist_objs="$server_errlist_objs spx_afh spx_common"
+               filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common"
+               audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common"
+               afh_errlist_objs="$afh_errlist_objs spx_afh spx_common"
+               audiod_audio_formats="$audiod_audio_formats spx"
+               server_audio_formats="$server_audio_formats spx"
+       else
+               AC_MSG_WARN([no ogg/speex $msg])
        fi
-       server_ldflags="$server_ldflags $oggvorbis_libs -logg -lvorbis -lvorbisfile"
-       filter_ldflags="$filter_ldflags $oggvorbis_libs -lvorbis -lvorbisfile"
-       audiod_ldflags="$audiod_ldflags $oggvorbis_libs -lvorbis -lvorbisfile"
-       afh_ldflags="$afh_ldflags $oggvorbis_libs -logg -lvorbis -lvorbisfile"
-       server_errlist_objs="$server_errlist_objs ogg_afh"
-       filter_errlist_objs="$filter_errlist_objs oggdec_filter"
-       audiod_errlist_objs="$audiod_errlist_objs oggdec_filter"
-       afh_errlist_objs="$afh_errlist_objs ogg_afh"
-       audiod_audio_formats="$audiod_audio_formats ogg"
-       server_audio_formats="$server_audio_formats ogg"
-       AC_SUBST(oggvorbis_cppflags)
  else
-       AC_MSG_WARN([no ogg vorbis support in para_server/para_filter])
+       AC_MSG_WARN([no ogg/vorbis ogg/speex $msg])
  fi
  CPPFLAGS="$OLD_CPPFLAGS"
  LDFLAGS="$OLD_LDFLAGS"
@@@ -652,14 -691,53 +691,14 @@@ AC_DEFUN([add_dot_o],[$(for i in $@; d
  AC_DEFUN([add_para],[$(for i in $@; do printf "para_$i "; done)])
  AC_DEFUN([objlist_to_errlist],[$(for i in $@; do printf "DEFINE_ERRLIST($(echo $i| tr 'a-z' 'A-Z'));"; done) [const char **para_errlist[[]]] = {$(for i in $@; do printf "PARA_ERRLIST($(echo $i | tr 'a-z' 'A-Z')), "; done) }])
  ############################################################# error2.h
 -AC_DEFUN([define_safe_error_enums],
 -[
 -      exe=""
 -      for i in $executables; do
 -#             eval echo checking if $1 is linked into $i
 -              for j in $(eval echo \$${i}_errlist_objs); do
 -                      if test $j = $1; then
 -                              exe="$exe $i"
 -                              break;
 -                      fi
 -              done
 -      done
 -      #echo "$1 gets linked into $exe"
 -      safe_errlists=""
 -      for i in $all_errlist_objs; do
 -              for j in $exe; do
 -                      found=0
 -                      for k in $(eval echo \$${j}_errlist_objs); do
 -                              if test $k = $i; then
 -                                      found=1
 -                                      break;
 -                              fi
 -                      done
 -                      if test $found -eq 0; then
 -                              break;
 -                      fi
 -              done
 -              if test $found -eq 1; then
 -                      safe_errlists="$safe_errlists $i"
 -              fi
 -      done
 -      #echo "safe errlists for $1: $safe_errlists"
 -      ss_defs=""
 -      for i in $safe_errlists; do
 -              echo "SS_ENUM($(echo $i | tr 'a-z' 'A-Z'));"
 -      done
 -]
 -)
 -
 -
  AC_MSG_NOTICE(creating error2.h)
 +for i in $executables; do
 +      echo "$i: "
 +      eval echo \$${i}_errlist_objs
 +done | ./error2.pl > error2.h
  for obj in $all_errlist_objs; do
        SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
 -      echo "#ifdef MAIN_INPUT_FILE_IS_$obj"
 -      define_safe_error_enums($obj)
 -      echo "#endif"
 -done > error2.h
 +done
  AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
        [enum {$SS NUM_SS}],
        [list of all objects that use paraslash's error facility]
@@@ -675,20 -753,32 +714,23 @@@ lyrics_id duration directory lyrics_nam
  last_played num_chunks chunk_time amplification artist title year album
  comment"
  
 -# $1: prefix, $2: items
 -AC_DEFUN([make_enum_items], [$(
 -      for i in $2; do
 -              printf "$1_$(echo $i | tr 'a-z' 'A-Z'), "
 -      done
 -)])
 -
 -# $1: prefix, $2: items
 -AC_DEFUN([make_enum_array], [$(
 -      for i in $2; do
 -              printf "\"$i\", "
 -      done
 -)])
 -
 -AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM,
 -      make_enum_items(SI,  $status_items),
 -      [enum of all status items]
 -)
 -AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY,
 -      make_enum_array(SI,  $status_items),
 -      [char * array of all status items]
 -)
 +result=
 +for i in $status_items; do
 +      result="$result SI_$(echo $i | tr 'a-z' 'A-Z'), "
 +done
 +AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM, [$result],
 +      [enum of all status items])
 +
 +result=
 +for i in $status_items; do
 +      result="$result \"$i\", "
 +done
 +AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result],
 +      [char * array of all status items])
  
+ AC_DEFINE_UNQUOTED(SERVER_AUDIO_FORMATS, "$server_audio_formats",
+       [formats supported by para_server and para_afh])
  
  AC_SUBST(executables, add_para($executables))