[pulseaudio-commits] [SCM] PulseAudio Sound Server branch, master, updated. v1.0-dev-67-g051d821

Colin Guthrie gitmailer-noreply at 0pointer.de
Tue Feb 1 02:10:00 PST 2011


This is an automated email from the git hooks/post-receive script. It was
generated because of a push to the "PulseAudio Sound Server" repository.

The master branch has been updated
      from  d766b38e1ba5d483ad7eec105860e9b9f7f55702 (commit)

- Log -----------------------------------------------------------------
051d821 alsa: disable period wakeups in tsched mode if possible
9498440 echo-cancel: Make Orc file names less silly
a9d8249 build: Simplify Orc-related make rules
548e102 build: Move orc.mak out of build/
-----------------------------------------------------------------------

Summary of changes:
 build/orc.mak                                      |   72 ------
 orc.mak                                            |   46 ++++
 src/Makefile.am                                    |   31 ++-
 src/modules/alsa/alsa-util.c                       |   28 +++
 src/modules/echo-cancel/adrian-aec-orc-dist.c      |  250 --------------------
 src/modules/echo-cancel/adrian-aec-orc-dist.h      |   61 -----
 src/modules/echo-cancel/adrian-aec.c               |    2 +-
 .../{adrian-aec-orc.orc => adrian-aec.orc}         |    0
 8 files changed, 97 insertions(+), 393 deletions(-)
 delete mode 100644 build/orc.mak
 create mode 100644 orc.mak
 delete mode 100644 src/modules/echo-cancel/adrian-aec-orc-dist.c
 delete mode 100644 src/modules/echo-cancel/adrian-aec-orc-dist.h
 rename src/modules/echo-cancel/{adrian-aec-orc.orc => adrian-aec.orc} (100%)

-----------------------------------------------------------------------

commit 548e1026e37d594fd71da405d37b7a058bf49c89
Author: Arun Raghavan <arun.raghavan at collabora.co.uk>
Date:   Sun Oct 17 08:25:27 2010 +0530

    build: Move orc.mak out of build/
    
    That directory is commonly used by developers for out-of-tree builds, so
    don't keep the Makefile in there.

diff --git a/build/orc.mak b/build/orc.mak
deleted file mode 100644
index 90d403a..0000000
--- a/build/orc.mak
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# This is a makefile.am fragment to build Orc code.
-#
-# Define ORC_SOURCE and then include this file, such as:
-#
-#  ORC_SOURCE=gstadderorc
-#  include $(top_srcdir)/common/orc.mak
-#
-# This fragment will create tmp-orc.c and gstadderorc.h from
-# gstadderorc.orc.
-#
-# When 'make dist' is run at the top level, or 'make orc-update'
-# in a directory including this fragment, the generated source
-# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
-# should be checked in to git, since they are used if Orc is
-# disabled.
-#
-# Note that this file defines BUILT_SOURCES, so any later usage
-# of BUILT_SOURCES in the Makefile.am that includes this file
-# must use '+='.
-#
-
-
-EXTRA_DIST += $(ORC_SOURCE).orc
-
-ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-BUILT_SOURCES += tmp-orc.c $(ORC_SOURCE).h
-
-
-orc-update: tmp-orc.c $(ORC_SOURCE).h
-	cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
-	cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
-
-orcc_v_gen = $(orcc_v_gen_$(V))
-orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
-orcc_v_gen_0 = @echo "  ORCC   $@";
-
-cp_v_gen = $(cp_v_gen_$(V))
-cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
-cp_v_gen_0 = @echo "  CP     $@";
-
-if HAVE_ORC
-tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
-	$(orcc_v_gen)$(ORCC) --implementation -o $(builddir)/tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
-
-$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
-	mkdir -p $$(dirname $(builddir)/$(ORC_SOURCE).h)
-	$(orcc_v_gen)$(ORCC) --header -o $(builddir)/$(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
-else
-tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
-	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
-
-$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
-	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
-endif
-
-clean-local: clean-orc
-.PHONY: clean-orc
-clean-orc:
-	rm -f tmp-orc.c $(ORC_SOURCE).h
-
-dist-hook: dist-hook-orc
-.PHONY: dist-hook-orc
-dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
-	rm -f tmp-orc.c~
-	cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
-	  cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
-	cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
-	  cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
-	mkdir -p $$(dirname $(ORC_SOURCE))
-	cp -p $(srcdir)/$(ORC_SOURCE)-dist.c $(distdir)/$$(dirname $(ORC_SOURCE))
-	cp -p $(srcdir)/$(ORC_SOURCE)-dist.h $(distdir)/$$(dirname $(ORC_SOURCE))
diff --git a/orc.mak b/orc.mak
new file mode 100644
index 0000000..90d403a
--- /dev/null
+++ b/orc.mak
@@ -0,0 +1,72 @@
+#
+# This is a makefile.am fragment to build Orc code.
+#
+# Define ORC_SOURCE and then include this file, such as:
+#
+#  ORC_SOURCE=gstadderorc
+#  include $(top_srcdir)/common/orc.mak
+#
+# This fragment will create tmp-orc.c and gstadderorc.h from
+# gstadderorc.orc.
+#
+# When 'make dist' is run at the top level, or 'make orc-update'
+# in a directory including this fragment, the generated source
+# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
+# should be checked in to git, since they are used if Orc is
+# disabled.
+#
+# Note that this file defines BUILT_SOURCES, so any later usage
+# of BUILT_SOURCES in the Makefile.am that includes this file
+# must use '+='.
+#
+
+
+EXTRA_DIST += $(ORC_SOURCE).orc
+
+ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
+BUILT_SOURCES += tmp-orc.c $(ORC_SOURCE).h
+
+
+orc-update: tmp-orc.c $(ORC_SOURCE).h
+	cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
+	cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
+
+orcc_v_gen = $(orcc_v_gen_$(V))
+orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
+orcc_v_gen_0 = @echo "  ORCC   $@";
+
+cp_v_gen = $(cp_v_gen_$(V))
+cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
+cp_v_gen_0 = @echo "  CP     $@";
+
+if HAVE_ORC
+tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
+	$(orcc_v_gen)$(ORCC) --implementation -o $(builddir)/tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
+
+$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
+	mkdir -p $$(dirname $(builddir)/$(ORC_SOURCE).h)
+	$(orcc_v_gen)$(ORCC) --header -o $(builddir)/$(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
+else
+tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
+	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
+
+$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
+	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
+endif
+
+clean-local: clean-orc
+.PHONY: clean-orc
+clean-orc:
+	rm -f tmp-orc.c $(ORC_SOURCE).h
+
+dist-hook: dist-hook-orc
+.PHONY: dist-hook-orc
+dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
+	rm -f tmp-orc.c~
+	cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
+	  cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
+	cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
+	  cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
+	mkdir -p $$(dirname $(ORC_SOURCE))
+	cp -p $(srcdir)/$(ORC_SOURCE)-dist.c $(distdir)/$$(dirname $(ORC_SOURCE))
+	cp -p $(srcdir)/$(ORC_SOURCE)-dist.h $(distdir)/$$(dirname $(ORC_SOURCE))
diff --git a/src/Makefile.am b/src/Makefile.am
index 18199e4..eeb3431 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1695,7 +1695,7 @@ module_suspend_on_idle_la_CFLAGS = $(AM_CFLAGS)
 
 # echo-cancel module
 ORC_SOURCE=modules/echo-cancel/adrian-aec-orc
-include $(top_srcdir)/build/orc.mak
+include $(top_srcdir)/orc.mak
 module_echo_cancel_la_SOURCES = modules/echo-cancel/module-echo-cancel.c modules/echo-cancel/echo-cancel.h \
 				modules/echo-cancel/speex.c \
 				modules/echo-cancel/adrian-aec.c modules/echo-cancel/adrian-aec.h \

commit a9d824925d55191f2599dd85f21ee278b09eb02a
Author: Arun Raghavan <arun.raghavan at collabora.co.uk>
Date:   Tue Oct 19 09:59:45 2010 +0530

    build: Simplify Orc-related make rules
    
    This greatly simplifies the Orc-related make rules. The old system of
    distributing generated files is gone, which means that anyone who wants
    to build with Orc support enabled needs to have the orcc compiler
    installed (presumably the orc 'devel' package in most distros).

diff --git a/orc.mak b/orc.mak
index 90d403a..5a6ff96 100644
--- a/orc.mak
+++ b/orc.mak
@@ -1,35 +1,33 @@
 #
-# This is a makefile.am fragment to build Orc code.
+# This is a Makefile.am fragment to build Orc code. It is based
+# on the orc.mak file distributed in the GStreamer common
+# repository.
 #
-# Define ORC_SOURCE and then include this file, such as:
+# Include this file like this:
 #
-#  ORC_SOURCE=gstadderorc
-#  include $(top_srcdir)/common/orc.mak
+#  include $(top_srcdir)/orc.mak
 #
-# This fragment will create tmp-orc.c and gstadderorc.h from
-# gstadderorc.orc.
+# For each Orc source file, append its name (without the extension)
+# to ORC_SOURCE:
 #
-# When 'make dist' is run at the top level, or 'make orc-update'
-# in a directory including this fragment, the generated source
-# files will be copied to $(ORC_SOURCE)-dist.[ch].  These files
-# should be checked in to git, since they are used if Orc is
-# disabled.
+#  ORC_SOURCE += gstadderorc
 #
-# Note that this file defines BUILT_SOURCES, so any later usage
-# of BUILT_SOURCES in the Makefile.am that includes this file
-# must use '+='.
+# This will create gstadder-orc-gen.c and gstadder-orc-gen.h, which
+# you need to add to your nodist_module_SOURCES.
+#
+# Note that this file appends to BUILT_SOURCES and CLEANFILES, so
+# define them before including this file.
 #
 
 
-EXTRA_DIST += $(ORC_SOURCE).orc
+EXTRA_DIST += $(addsuffix .orc,$(ORC_SOURCE))
 
-ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
-BUILT_SOURCES += tmp-orc.c $(ORC_SOURCE).h
+ORC_BUILT_SOURCE = $(addsuffix -orc-gen.c,$(ORC_SOURCE))
+ORC_BUILT_HEADER = $(addsuffix -orc-gen.h,$(ORC_SOURCE))
 
+BUILT_SOURCES += $(ORC_BUILT_SOURCE) $(ORC_BUILT_HEADER)
+CLEANFILES += $(BUILT_SOURCES)
 
-orc-update: tmp-orc.c $(ORC_SOURCE).h
-	cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
-	cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
 
 orcc_v_gen = $(orcc_v_gen_$(V))
 orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
@@ -39,34 +37,10 @@ cp_v_gen = $(cp_v_gen_$(V))
 cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
 cp_v_gen_0 = @echo "  CP     $@";
 
-if HAVE_ORC
-tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
-	$(orcc_v_gen)$(ORCC) --implementation -o $(builddir)/tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
-
-$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
-	mkdir -p $$(dirname $(builddir)/$(ORC_SOURCE).h)
-	$(orcc_v_gen)$(ORCC) --header -o $(builddir)/$(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
-else
-tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
-	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
-
-$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
-	$(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
-endif
-
-clean-local: clean-orc
-.PHONY: clean-orc
-clean-orc:
-	rm -f tmp-orc.c $(ORC_SOURCE).h
+%-orc-gen.c: %.orc
+	@mkdir -p $(@D)
+	$(orcc_v_gen)$(ORCC) --implementation -o $@ $<
 
-dist-hook: dist-hook-orc
-.PHONY: dist-hook-orc
-dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
-	rm -f tmp-orc.c~
-	cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
-	  cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
-	cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
-	  cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
-	mkdir -p $$(dirname $(ORC_SOURCE))
-	cp -p $(srcdir)/$(ORC_SOURCE)-dist.c $(distdir)/$$(dirname $(ORC_SOURCE))
-	cp -p $(srcdir)/$(ORC_SOURCE)-dist.h $(distdir)/$$(dirname $(ORC_SOURCE))
+%-orc-gen.h: %.orc
+	@mkdir -p $(@D)
+	$(orcc_v_gen)$(ORCC) --header -o $@ $<
diff --git a/src/Makefile.am b/src/Makefile.am
index eeb3431..82bd653 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -125,6 +125,15 @@ xdgautostart_DATA = $(xdgautostart_in_files:.desktop.in=.desktop)
 
 
 ###################################
+#          Includes               #
+###################################
+
+BUILT_SOURCES =
+CLEANFILES =
+include $(top_srcdir)/orc.mak
+ORC_SOURCE =
+
+###################################
 #          Main daemon            #
 ###################################
 
@@ -1293,7 +1302,7 @@ SYMDEF_FILES = \
 		module-virtual-source-symdef.h
 
 EXTRA_DIST += $(SYMDEF_FILES)
-BUILT_SOURCES = $(SYMDEF_FILES) builddirs
+BUILT_SOURCES += $(SYMDEF_FILES) builddirs
 
 $(SYMDEF_FILES): modules/module-defs.h.m4
 	$(AM_V_at)$(MKDIR_P) modules
@@ -1694,17 +1703,21 @@ module_suspend_on_idle_la_LIBADD = $(MODULE_LIBADD)
 module_suspend_on_idle_la_CFLAGS = $(AM_CFLAGS)
 
 # echo-cancel module
-ORC_SOURCE=modules/echo-cancel/adrian-aec-orc
-include $(top_srcdir)/orc.mak
 module_echo_cancel_la_SOURCES = modules/echo-cancel/module-echo-cancel.c modules/echo-cancel/echo-cancel.h \
 				modules/echo-cancel/speex.c \
 				modules/echo-cancel/adrian-aec.c modules/echo-cancel/adrian-aec.h \
-				modules/echo-cancel/adrian.c modules/echo-cancel/adrian.h \
-				$(ORC_SOURCE).orc
-nodist_module_echo_cancel_la_SOURCES = $(ORC_NODIST_SOURCES)
+				modules/echo-cancel/adrian.c modules/echo-cancel/adrian.h
 module_echo_cancel_la_LDFLAGS = $(MODULE_LDFLAGS)
-module_echo_cancel_la_LIBADD = $(MODULE_LIBADD) $(LIBSPEEX_LIBS) $(ORC_LIBS)
-module_echo_cancel_la_CFLAGS = $(AM_CFLAGS) $(LIBSPEEX_CFLAGS) $(ORC_CFLAGS) -I$(top_builddir)/src/modules/echo-cancel
+module_echo_cancel_la_LIBADD = $(MODULE_LIBADD) $(LIBSPEEX_LIBS)
+module_echo_cancel_la_CFLAGS = $(AM_CFLAGS) $(LIBSPEEX_CFLAGS)
+if HAVE_ORC
+ORC_SOURCE += modules/echo-cancel/adrian-aec-orc
+nodist_module_echo_cancel_la_SOURCES = \
+				modules/echo-cancel/adrian-aec-orc-orc-gen.c \
+				modules/echo-cancel/adrian-aec-orc-orc-gen.h
+module_echo_cancel_la_LIBADD += $(ORC_LIBS)
+module_echo_cancel_la_CFLAGS += $(ORC_CFLAGS) -I$(top_builddir)/src/modules/echo-cancel
+endif
 
 # RTP modules
 module_rtp_send_la_SOURCES = modules/rtp/module-rtp-send.c
@@ -1826,7 +1839,7 @@ module_rygel_media_server_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
 #        Some minor stuff         #
 ###################################
 
-CLEANFILES = esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 start-pulseaudio-kde daemon/pulseaudio.desktop daemon/pulseaudio-kde.desktop
+CLEANFILES += esdcompat client.conf default.pa system.pa daemon.conf start-pulseaudio-x11 start-pulseaudio-kde daemon/pulseaudio.desktop daemon/pulseaudio-kde.desktop
 
 esdcompat: daemon/esdcompat.in Makefile
 	sed -e 's, at PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
diff --git a/src/modules/echo-cancel/adrian-aec-orc-dist.c b/src/modules/echo-cancel/adrian-aec-orc-dist.c
deleted file mode 100644
index ea93d0b..0000000
--- a/src/modules/echo-cancel/adrian-aec-orc-dist.c
+++ /dev/null
@@ -1,250 +0,0 @@
-
-/* autogenerated from adrian-aec-orc.orc */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#ifndef DISABLE_ORC
-#include <orc/orc.h>
-#endif
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#endif
-#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; orc_int16 x4[4]; } orc_union64;
-#endif
-
-void update_tap_weights (float * d1, const float * s1, float p1, int n);
-
-
-/* begin Orc C target preamble */
-#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
-#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
-#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
-#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
-#define ORC_SB_MAX 127
-#define ORC_SB_MIN (-1-ORC_SB_MAX)
-#define ORC_UB_MAX 255
-#define ORC_UB_MIN 0
-#define ORC_SW_MAX 32767
-#define ORC_SW_MIN (-1-ORC_SW_MAX)
-#define ORC_UW_MAX 65535
-#define ORC_UW_MIN 0
-#define ORC_SL_MAX 2147483647
-#define ORC_SL_MIN (-1-ORC_SL_MAX)
-#define ORC_UL_MAX 4294967295U
-#define ORC_UL_MIN 0
-#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
-#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
-#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
-#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
-#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
-#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
-#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
-#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
-#define ORC_SWAP_Q(x) ((((x)&0xffULL)<<56) | (((x)&0xff00ULL)<<40) | (((x)&0xff0000ULL)<<24) | (((x)&0xff000000ULL)<<8) | (((x)&0xff00000000ULL)>>8) | (((x)&0xff0000000000ULL)>>24) | (((x)&0xff000000000000ULL)>>40) | (((x)&0xff00000000000000ULL)>>56))
-#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
-#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
-#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&0x7ff0000000000000ULL) == 0) ? 0xfff0000000000000ULL : 0xffffffffffffffffULL))
-#define ORC_ISNAN_DOUBLE(x) ((((x)&0x7ff0000000000000ULL) == 0x7ff0000000000000ULL) && (((x)&0x000fffffffffffffULL) != 0))
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
-/* end Orc C target preamble */
-
-
-
-/* update_tap_weights */
-#ifdef DISABLE_ORC
-void
-update_tap_weights (float * d1, const float * s1, float p1, int n){
-  int i;
-  orc_union32 * ORC_RESTRICT ptr0;
-  const orc_union32 * ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *)d1;
-  ptr4 = (orc_union32 *)s1;
-
-    /* 0: loadpl */
-    var33.i = p1;
-
-  for (i = 0; i < n; i++) {
-    /* 1: loadl */
-    var34 = ptr4[i];
-    /* 2: mulf */
-    {
-       orc_union32 _src1;
-       orc_union32 _src2;
-       orc_union32 _dest1;
-       _src1.i = ORC_DENORMAL(var33.i);
-       _src2.i = ORC_DENORMAL(var34.i);
-       _dest1.f = _src1.f * _src2.f;
-       var37.i = ORC_DENORMAL(_dest1.i);
-    }
-    /* 3: loadl */
-    var35 = ptr0[i];
-    /* 4: addf */
-    {
-       orc_union32 _src1;
-       orc_union32 _src2;
-       orc_union32 _dest1;
-       _src1.i = ORC_DENORMAL(var35.i);
-       _src2.i = ORC_DENORMAL(var37.i);
-       _dest1.f = _src1.f + _src2.f;
-       var36.i = ORC_DENORMAL(_dest1.i);
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_update_tap_weights (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 * ORC_RESTRICT ptr0;
-  const orc_union32 * ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union32 var34;
-  orc_union32 var35;
-  orc_union32 var36;
-  orc_union32 var37;
-
-  ptr0 = (orc_union32 *)ex->arrays[0];
-  ptr4 = (orc_union32 *)ex->arrays[4];
-
-    /* 0: loadpl */
-    var33.i = ex->params[24];
-
-  for (i = 0; i < n; i++) {
-    /* 1: loadl */
-    var34 = ptr4[i];
-    /* 2: mulf */
-    {
-       orc_union32 _src1;
-       orc_union32 _src2;
-       orc_union32 _dest1;
-       _src1.i = ORC_DENORMAL(var33.i);
-       _src2.i = ORC_DENORMAL(var34.i);
-       _dest1.f = _src1.f * _src2.f;
-       var37.i = ORC_DENORMAL(_dest1.i);
-    }
-    /* 3: loadl */
-    var35 = ptr0[i];
-    /* 4: addf */
-    {
-       orc_union32 _src1;
-       orc_union32 _src2;
-       orc_union32 _dest1;
-       _src1.i = ORC_DENORMAL(var35.i);
-       _src2.i = ORC_DENORMAL(var37.i);
-       _dest1.f = _src1.f + _src2.f;
-       var36.i = ORC_DENORMAL(_dest1.i);
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-update_tap_weights (float * d1, const float * s1, float p1, int n)
-{
-  OrcExecutor _ex, *ex = &_ex;
-  static int p_inited = 0;
-  static OrcProgram *p = 0;
-  void (*func) (OrcExecutor *);
-
-  if (!p_inited) {
-    orc_once_mutex_lock ();
-    if (!p_inited) {
-      OrcCompileResult result;
-
-      p = orc_program_new ();
-      orc_program_set_name (p, "update_tap_weights");
-      orc_program_set_backup_function (p, _backup_update_tap_weights);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 0, 0x00000000, "c1");
-      orc_program_add_constant (p, 0, 0x00000000, "c2");
-      orc_program_add_constant (p, 0, 0x00000000, "c3");
-      orc_program_add_constant (p, 0, 0x00000000, "c4");
-      orc_program_add_constant (p, 0, 0x00000000, "c5");
-      orc_program_add_constant (p, 0, 0x00000000, "c6");
-      orc_program_add_constant (p, 0, 0x00000000, "c7");
-      orc_program_add_constant (p, 0, 0x00000000, "c8");
-      orc_program_add_parameter_float (p, 4, "p1");
-      orc_program_add_temporary (p, 4, "t1");
-
-      orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_P1, ORC_VAR_S1, ORC_VAR_D1);
-      orc_program_append_2 (p, "addf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1);
-
-      result = orc_program_compile (p);
-    }
-    p_inited = TRUE;
-    orc_once_mutex_unlock ();
-  }
-  ex->program = p;
-
-  ex->n = n;
-  ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *)s1;
-  {
-    orc_union32 tmp;
-    tmp.f = p1;
-    ex->params[ORC_VAR_P1] = tmp.i;
-  }
-
-  func = p->code_exec;
-  func (ex);
-}
-#endif
diff --git a/src/modules/echo-cancel/adrian-aec-orc-dist.h b/src/modules/echo-cancel/adrian-aec-orc-dist.h
deleted file mode 100644
index 00228c6..0000000
--- a/src/modules/echo-cancel/adrian-aec-orc-dist.h
+++ /dev/null
@@ -1,61 +0,0 @@
-
-/* autogenerated from adrian-aec-orc.orc */
-
-#ifndef ___MODULES_ECHO_CANCEL_ADRIAN_AEC_ORC_H_
-#define ___MODULES_ECHO_CANCEL_ADRIAN_AEC_ORC_H_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-#ifndef _ORC_INTEGER_TYPEDEFS_
-#define _ORC_INTEGER_TYPEDEFS_
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#include <stdint.h>
-typedef int8_t orc_int8;
-typedef int16_t orc_int16;
-typedef int32_t orc_int32;
-typedef int64_t orc_int64;
-typedef uint8_t orc_uint8;
-typedef uint16_t orc_uint16;
-typedef uint32_t orc_uint32;
-typedef uint64_t orc_uint64;
-#elif defined(_MSC_VER)
-typedef signed __int8 orc_int8;
-typedef signed __int16 orc_int16;
-typedef signed __int32 orc_int32;
-typedef signed __int64 orc_int64;
-typedef unsigned __int8 orc_uint8;
-typedef unsigned __int16 orc_uint16;
-typedef unsigned __int32 orc_uint32;
-typedef unsigned __int64 orc_uint64;
-#else
-#include <limits.h>
-typedef signed char orc_int8;
-typedef short orc_int16;
-typedef int orc_int32;
-typedef unsigned char orc_uint8;
-typedef unsigned short orc_uint16;
-typedef unsigned int orc_uint32;
-#if INT_MAX == LONG_MAX
-typedef long long orc_int64;
-typedef unsigned long long orc_uint64;
-#else
-typedef long orc_int64;
-typedef unsigned long orc_uint64;
-#endif
-#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; orc_int16 x4[4]; } orc_union64;
-#endif
-void update_tap_weights (float * d1, const float * s1, float p1, int n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/modules/echo-cancel/adrian-aec.c b/src/modules/echo-cancel/adrian-aec.c
index 269bd61..5a45591 100644
--- a/src/modules/echo-cancel/adrian-aec.c
+++ b/src/modules/echo-cancel/adrian-aec.c
@@ -18,7 +18,7 @@
 #include "adrian-aec.h"
 
 #ifndef DISABLE_ORC
-#include "adrian-aec-orc.h"
+#include "adrian-aec-orc-orc-gen.h"
 #endif
 
 #ifdef __SSE__

commit 9498440dc67376832f6d4cc0af79498643c7c3de
Author: Arun Raghavan <arun.raghavan at collabora.co.uk>
Date:   Mon Oct 25 09:00:06 2010 +0100

    echo-cancel: Make Orc file names less silly
    
    The naming was what it was because of the way orc.mak was originally
    written. This has changed now.

diff --git a/src/Makefile.am b/src/Makefile.am
index 82bd653..0687e40 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1711,10 +1711,10 @@ module_echo_cancel_la_LDFLAGS = $(MODULE_LDFLAGS)
 module_echo_cancel_la_LIBADD = $(MODULE_LIBADD) $(LIBSPEEX_LIBS)
 module_echo_cancel_la_CFLAGS = $(AM_CFLAGS) $(LIBSPEEX_CFLAGS)
 if HAVE_ORC
-ORC_SOURCE += modules/echo-cancel/adrian-aec-orc
+ORC_SOURCE += modules/echo-cancel/adrian-aec
 nodist_module_echo_cancel_la_SOURCES = \
-				modules/echo-cancel/adrian-aec-orc-orc-gen.c \
-				modules/echo-cancel/adrian-aec-orc-orc-gen.h
+				modules/echo-cancel/adrian-aec-orc-gen.c \
+				modules/echo-cancel/adrian-aec-orc-gen.h
 module_echo_cancel_la_LIBADD += $(ORC_LIBS)
 module_echo_cancel_la_CFLAGS += $(ORC_CFLAGS) -I$(top_builddir)/src/modules/echo-cancel
 endif
diff --git a/src/modules/echo-cancel/adrian-aec-orc.orc b/src/modules/echo-cancel/adrian-aec-orc.orc
deleted file mode 100644
index 8054772..0000000
--- a/src/modules/echo-cancel/adrian-aec-orc.orc
+++ /dev/null
@@ -1,8 +0,0 @@
-.function update_tap_weights
-.dest 4 w float
-.source 4 xf float
-.floatparam 4 mikro_ef
-.temp 4 tmp float
-
-mulf tmp, mikro_ef, xf
-addf w, w, tmp
diff --git a/src/modules/echo-cancel/adrian-aec.c b/src/modules/echo-cancel/adrian-aec.c
index 5a45591..6793e59 100644
--- a/src/modules/echo-cancel/adrian-aec.c
+++ b/src/modules/echo-cancel/adrian-aec.c
@@ -18,7 +18,7 @@
 #include "adrian-aec.h"
 
 #ifndef DISABLE_ORC
-#include "adrian-aec-orc-orc-gen.h"
+#include "adrian-aec-orc-gen.h"
 #endif
 
 #ifdef __SSE__
diff --git a/src/modules/echo-cancel/adrian-aec.orc b/src/modules/echo-cancel/adrian-aec.orc
new file mode 100644
index 0000000..8054772
--- /dev/null
+++ b/src/modules/echo-cancel/adrian-aec.orc
@@ -0,0 +1,8 @@
+.function update_tap_weights
+.dest 4 w float
+.source 4 xf float
+.floatparam 4 mikro_ef
+.temp 4 tmp float
+
+mulf tmp, mikro_ef, xf
+addf w, w, tmp

commit 051d82133f0ae6a57bf66fd200bc8e3591a7d5ca
Author: Pierre-Louis Bossart <bossart.nospam at gmail.com>
Date:   Mon Jan 31 13:20:27 2011 -0600

    alsa: disable period wakeups in tsched mode if possible
    
    This patch reflects a new capability that Lennart was wishing
    for. Wish granted...
    
    Re-submitting it now that alsa-lib 1.0.24
    provides additional entry points to disable period
    wakeups in timer-scheduling mode if hardware can
    work without it (HDAudio, oxygen and Intel SST).
    
        Example with standard playback on HDAudio output
        Before change:
    
        Top causes for wakeups:
           3.8% (  5.4)   [hda_intel] <interrupt>
           2.8% (  4.0)   alsa-sink
    
        After change:
        Top causes for wakeups:
           2.3% (  3.0)   alsa-sink
    
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at intel.com>

diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index 5a726ff..786e664 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -251,6 +251,22 @@ int pa_alsa_set_hw_params(
     if (!pa_alsa_pcm_is_hw(pcm_handle))
         _use_tsched = FALSE;
 
+#if (SND_LIB_VERSION >= ((1<<16)|(0<<8)|24)) /* API additions in 1.0.24 */
+    if (_use_tsched) {
+
+        /* try to disable period wakeups if hardware can do so */
+        if (snd_pcm_hw_params_can_disable_period_wakeup(hwparams)) {
+
+            if (snd_pcm_hw_params_set_period_wakeup(pcm_handle, hwparams, FALSE) < 0)
+                /* don't bail, keep going with default mode with period wakeups */
+                pa_log_debug("snd_pcm_hw_params_set_period_wakeup() failed: %s", pa_alsa_strerror(ret));
+            else
+                pa_log_info("Trying to disable ALSA period wakeups, using timers only");
+        } else
+            pa_log_info("cannot disable ALSA period wakeups");
+    }
+#endif
+
     if ((ret = set_format(pcm_handle, hwparams, &_ss.format)) < 0)
         goto finish;
 
@@ -378,6 +394,18 @@ success:
         goto finish;
     }
 
+#if (SND_LIB_VERSION >= ((1<<16)|(0<<8)|24)) /* API additions in 1.0.24 */
+    if (_use_tsched) {
+        unsigned int no_wakeup;
+        /* see if period wakeups were disabled */
+        snd_pcm_hw_params_get_period_wakeup(pcm_handle, hwparams, &no_wakeup);
+        if (no_wakeup == 0)
+            pa_log_info("ALSA period wakeups disabled");
+        else
+            pa_log_info("ALSA period wakeups were not disabled");
+    }
+#endif
+
     ss->rate = _ss.rate;
     ss->channels = _ss.channels;
     ss->format = _ss.format;

-- 
hooks/post-receive
PulseAudio Sound Server



More information about the pulseaudio-commits mailing list