Merge branch 't/resample'
authorAndre Noll <maan@systemlinux.org>
Sun, 16 Dec 2012 23:09:22 +0000 (00:09 +0100)
committerAndre Noll <maan@systemlinux.org>
Sun, 16 Dec 2012 23:09:22 +0000 (00:09 +0100)
Was cooking for quite some time. The merge conflicted slightly,
but this was easy to fix.

However, even with the conflict resolved, the merged tree would not
compile because after the merge para_play depends on libsamplerate,
but this dependency was not encoded in configure.ac.

There was no way to fix this issue in either of the two branches
involved without rewriting history: The recently merged t/afh_receiver
branch (which introduced para_play) had no idea of libsamplerate
while t/resample has no idea of para_play.

This merge commit fixes both issues.

0eb69b resample filter: Implementation.
cad284 resample filter: Infrastructure.
37e0df check_wav: Ask parent nodes before falling back to defaults.
216399 Replace check_wav_task by write_task.
1af65c Move wav detection code to a separate file.
d5dc1c write: Make wav-related config options modular.
c25d04 para_filter: Call proper ->free_config method on shutdown.

Conflicts:
m4/gengetopt/makefile

1  2 
configure.ac
error.h
m4/gengetopt/makefile

diff --cc configure.ac
@@@ -100,20 -100,16 +100,20 @@@ all_errlist_objs="mp3_afh afh_common ne
        dccp_recv recv_common write_common file_write audiod_command
        client_common recv stdout filter stdin audioc write client
        exec send_common ggo udp_recv color fec fecdec_filter
-       prebuffer_filter bitstream imdct
+       prebuffer_filter bitstream imdct check_wav
        wma_afh wma_common wmadec_filter buffer_tree crypt_common
 -      gui gui_theme sideband"
 +      gui gui_theme sideband afh_recv play"
  
 -executables="recv filter audioc write client afh audiod"
 +executables="recv filter audioc write client afh audiod play"
  
 -recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_recv)"
 +recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_recv afh_recv)"
 +
 +recv_errlist_objs="
 +      http_recv recv_common recv time string net dccp_recv fd
 +      sched stdout ggo udp_recv buffer_tree afh_recv afh_common
 +      wma_afh wma_common mp3_afh
 +"
  
 -recv_errlist_objs="http_recv recv_common recv time string net dccp_recv
 -      fd sched stdout ggo udp_recv buffer_tree"
  recv_ldflags=""
  
  filter_cmdline_objs="add_cmdline(filter compress_filter amp_filter prebuffer_filter)"
  CPPFLAGS="$OLD_CPPFLAGS"
  LDFLAGS="$OLD_LDFLAGS"
  LIBS="$OLD_LIBS"
+ ############################################################# libsamplerate
+ OLD_CPPFLAGS="$CPPFLAGS"
+ OLD_LD_FLAGS="$LDFLAGS"
+ OLD_LIBS="$LIBS"
+ have_samplerate="yes"
+ AC_ARG_WITH(samplerate_headers, [AS_HELP_STRING(--with-samplerate-headers=dir,
+       [look for samplerate headers also in dir])])
+ if test -n "$with_samplerate_headers"; then
+       samplerate_cppflags="-I$with_samplerate_headers"
+       CPPFLAGS="$CPPFLAGS $samplerate_cppflags"
+ fi
+ AC_ARG_WITH(samplerate_libs, [AS_HELP_STRING(--with-samplerate-libs=dir,
+       [look for samplerate libs also in dir])])
+ if test -n "$with_samplerate_libs"; then
+       samplerate_libs="-L$with_samplerate_libs"
+       LDFLAGS="$LDFLAGS $samplerate_libs"
+ fi
+ AC_CHECK_HEADER(samplerate.h, [], have_samplerate=no)
+ AC_CHECK_LIB([samplerate], [src_process], [], have_samplerate=no, [])
+ if test "$have_samplerate" = "yes"; then
+       all_errlist_objs="$all_errlist_objs resample_filter"
+       filter_errlist_objs="$filter_errlist_objs resample_filter check_wav"
+       filter_cmdline_objs="$filter_cmdline_objs add_cmdline(resample_filter)"
+       audiod_errlist_objs="$audiod_errlist_objs resample_filter check_wav"
+       audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(resample_filter)"
++      play_errlist_objs="$play_errlist_objs resample_filter check_wav"
++      play_cmdline_objs="$play_cmdline_objs add_cmdline(resample_filter)"
+       filter_ldflags="$filter_ldflags $samplerate_libs -lsamplerate"
+       audiod_ldflags="$audiod_ldflags $samplerate_libs -lsamplerate"
++      play_ldflags="$play_ldflags $samplerate_libs -lsamplerate"
+       filters="$filters resample"
+       AC_SUBST(samplerate_cppflags)
+ else
+       AC_MSG_WARN([no resample support in para_audiod/para_filter])
+ fi
+ CPPFLAGS="$OLD_CPPFLAGS"
+ LDFLAGS="$OLD_LDFLAGS"
+ LIBS="$OLD_LIBS"
  ############################################################# error2.h
  AC_MSG_NOTICE(creating error2.h)
  for i in $executables; do
diff --cc error.h
Simple merge
@@@ -34,8 -37,10 +37,12 @@@ $(ggo_dir)/client.ggo: 
        $(m4_ggo_dir)/history_file.m4 \
        $(m4_ggo_dir)/complete.m4
  $(ggo_dir)/fade.ggo: $(m4_ggo_dir)/loglevel.m4 $(m4_ggo_dir)/config_file.m4
+ $(ggo_dir)/resample_filter.ggo: \
+       $(m4_ggo_dir)/channels.m4 \
+       $(m4_ggo_dir)/sample_rate.m4 \
+       $(m4_ggo_dir)/sample_format.m4
 +$(ggo_dir)/play.ggo: $(m4_ggo_dir)/loglevel.m4 $(m4_ggo_dir)/config_file.m4
 +
  $(ggo_dir)/%.ggo: $(m4_ggo_dir)/%.m4 $(m4_ggo_dir)/header.m4 | $(ggo_dir)
        @[ -z "$(Q)" ] || echo 'M4 $<'
        $(Q) m4 -I $(m4_ggo_dir) $< > $@