[pulseaudio-commits] [SCM] PulseAudio Sound Server annotated tag, v0.9.11, created. v0.9.11
Lennart Poettering
gitmailer-noreply at 0pointer.de
Thu Jul 24 06:26:02 PDT 2008
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 v0.9.11 annotated tag has been created
at 9211fcaed369cc70812363d0e1e2357dfeabb47b (tag)
tagging e3fb086681bf743310f2af19bf9a01957fd34782 (commit)
tagged by Lennart Poettering
on Thu Jul 24 15:25:53 2008 +0200
- Log -----------------------------------------------------------------
PulseAudio 0.9.11
CJ van den Berg (6):
Merge dead branch 'prepare-0.9.10'
Merge dead branch 'liboil-test'
Merge dead branch 'ossman'
Merge dead branch 'lockfree'
Merge dead branch 'lennart'
Merge dead branch 'glitch-free'
Colin Guthrie (7):
Perfer client.conf over X11 property variables.
Also link libpulsecore.la to some libraries (needed for logging). Discovered while compiling with --as-needed
Rejig r2495 slightly and directly compile the necessary source files as libpulsecore.so is not available when libpulsedsp.so is built
Do not invalidate the cookie if no file was specified.
Trivial typo fix in debug log message.
Export the cleanup_name() function and rename it to pa_namereg_make_valid_name().
Add xmltoman to the distribution. This saves pulling in an external dependancy
Diego Petteno (11):
Fix detection of polkit_context_is_caller_authorized() function, also reported by Nix. Also fix detection of policydir for prefixes different from /usr.~
Enable D-Bus if Bluez or HAL are enabled; use DBUS_LIBS/DBUS_CFLAGS when building libdbus-util.la.
Check for mkdir -p or equivalent, and use that rather than simple mkdir to create the modules, modules/gconf and modules/rtp directories.
Add a configure switch to enable the per-user ESounD socket path, but default to vanilla ESounD's path. This way distributions and users can configure PulseAudio according to their ESounD library.
Apply the fix for CVE-2008-0008 from 0.9.9 release on trunk.
Use check_PROGRAMS rather than noinst_PROGRAMS for test programs.
Mark long_options constant.
Build and run using libltdl from libtool 2.2. The user module loader support has changed drastically.
Test for _struct_ lt_user_dlloader, otherwise it won't be found.
And one more.
fix the help for --disable-per-user-esound-socket so that it actually
Lennart Poettering (2093):
Create trunk directory
initial commit
make it compile
autoconf
ignore fix
module dependencie foo
make the whole stuff run and clean it self up again
remove moddep files (since they are obsolete)
a bunch of fixes
more cleanups
remove oss.c
commit some work and rename
rename some more
oss output works
minor work
more work
cleanup
fix mixing
got mmap oss output working
configure fix
basic cli interface
some more work
some more work on the cli
add simple ptorocol with unix
minor work
rename module-simple-protocol to module-protocol-stub
cli protocol
mofiy keyword expansion
partial implementation of native protocol
main part of the native protocol
ignore some more stuff
minor compile work
rename oss.[ch] to oss-util.[ch]
make rename of oss.[ch] to oss-util.[ch] complete
some fixes
many fixes
make native playback work
add name registrar
esound protocol
extended esound protocol
volume work
latency
add resampler
add resampling
forgot to add memchunk.[ch]
add libsamplerate dependency
fix minor typo
add pa_ prefix to all identifiers.
add kill_* and default_* commands to CLI
auth support in esound and native
draining ind native protocol
add output stream draining
fix recording for simpel and esound protocols
implement recording in native API
implement parec-simple and matching simple recording API
forgot to add parec-simple
make memblockq merge chunks
add description field for sinks/sources
add dependency script
rename hashset to hashmap
make the protocol plugins make use of modargs
make module-oss-* use modargs
add preliminary command line parsing
complete implementation of the command line
update todo
implement client side TCP support
fix modargs memory leak
implement daemonizing
remove global exported variables:
add pactl tool
implement get_latency native command
optimize esound latency for xmms
add alsa sink
split PA_SAMPLE_FLOAT32 into PA_SAMPLE_FLOAT{LE,BE}
implement alsa source
make oss sample spec configurable
make a symbol in module-ptorocol-stub static
rename a bunch of files
adjust file references due to renaming
fix distcheck
include config.h in every file
include copyright and svn tag in *.[ch]
add missing liecenses
add pkgconfig stuff
add documentation
ignore README
move todo file
rename configuration file
rename src to polyp
fix Makefile.am and configure.ac to match directory renaming
make polypaudio run when installed
make distcheck clean
some makefile fixes
two simple fixes
readme update
minor fixes
sample cache work
add a todo item
add new module "module-x11-bell"
add support for querying sample ist with esound protocol
sample cache work
introduce pa_xmalloc() and friends
forgot some files
add initial glib mainloop adapter
add mainloop test utility
cleanup priority management in main loop
rename mainloop testing tool
better mainloop test build system
glib mainloop fix
compile fix
add subscription subsystem
todo update
info and subscription work
add more subscription events
todo fix
some preliminary cleanup
split polyplib.h
add internal header file for polyplib
add polyplib-sample
add polyplib-sample.c
rename polyplib-sample to polyplib-scache
implement proper refcounting in polyplib
proper ref counting for more objects
add support for volume manipulation
add sink input/source output support to the native protocol
fix sink iunput and source output stuff
rename clitext to cli-text
make clitext to cli-text renaming complete
update todo file
create native-common-internal.h
remove native-common-internal
Documentation work
autoconf beefup
todo update
fix x11 build
remove global memblock statistic variables in favor of memblock_stat objects
add missing copyright headers
add version routines to polyplib
minor stuff
move sample cache to namereg
build fixes
Doxygen stuff
readme update
doxygen fix
documentation update
documentation update
add support for glib12
add pkg config file glib12-mainloop
new features:
minor documentation update
latency work
minor cleanups
document every polyplib function
relicense client library to LGPL
add LGPL/GPL to dist package
readme update (licensing)
minor fixes
fix homepage script
fix module path
add support for SCHED_FIFO
remove most -W compiler warnings
implement missing scache_get_id_by_name
add support for dB volumes
add \since to dB functions
cleanup comment
add PA_MININFTY
introduce sink input and source output limits
add sound file streaming
add esd compatible startup script
daemon auto spawn
make use F_CLOEXEC wherever useful
add total sample cache size to statistics
add CPU load limiter
add option to disallow module loading after startup
add support for automatic termination of the daemon after the last client quit
implement proper logging
add module-pipe-source
correct a recording bug in native protocol
add support for setting/getting default sink/source via native protocol
change the way the default sink/source is selected
implemented new CLI command: dump
documentation update
date fix
add FAQ to homepage
add support for module search path as command line argument
add version number to library names
add modinfo support
extend pa_usec_t to 64 bit
update simple API
build system update
fix public= on native and esound protocol
fix parsing of POLYP_SERVER environment variable
correct latency calculation
new configuration subsystem
add module-combine
add refernce counting for sinks, sources, sink-inputs and source-outputs
make module-combine autoloadable
correct autospawning
remove auto-load-sample stuff
work around C99/GCC incompatibility
add input latency measurement
add support for subscribing to autoload table changes
fix two gcc 2.95 incompatibilities
gcc 2.95 compatibility, take 2
update according to autoscan
new configuration subsystem
make daemon.conf/client.conf autogenerated
rename some stuff
rename some more
add --resample-method argument
add resample_method option module-combine
change sysconf path
minor stuff
work around gcc 2.95 limitation
work around gcc 2.95 limitation
add pacat command line parsing
add new function pa_mainloop_deferred_pending()
remove obnoxious assert from module-combine
update module descriptions
fix xmms spawn bug
documentation update
build updates
add link to mailing list
show which command is unknown in esound protocol
add noop implementation of standby/resume ESOUND commands
support for esd arguments: -spawnpid and -spawnfd
improve esound module
add support for capabilities
OSX protability patches from Conrad Parker
Fix a bug in the build system reported by Iain Fothergill
place full binary path in default.pa's shebang line
ignore default.in
allow high priority scheduling only for users in group "realtime"
bump version number and update documentation
bum version number
add new tool paplay
add POSIX locking to authkey.c
really fix cpu usage when using esddsp with polypaudio
try to use file sample type for cache entries and play-file playback
Add module-tunnel
add latency measurement support to tunnel module
fix module-tunnel for to aborting when connection fails
renamed module-tunnel to module-tunnel-sink
really fix API version API
Add support for libwrap
add sample spec parameters to pacat
todo update
enlarge default buffers
gcc 2.95 fix
add user volume API
support for latency interpolation
two latency interpolation fixes
latency calculation fix
add null sink
update todo
minor updates
make autoload list use idxset
prepare next release 0.6
require newer libsndfile
use setreuid() instead of setuid()/seteuid() when dropping root
some updates for pa_hashmap
Apply Joe Marcus Clarke's FreeBSD patches
fix client libaryr in case no latency interpolation is required
add some more comments
compilation fix
some commenting
* Look for M4 in configure.ac
implemented pax11publish.c
build pax11publish only when X11 is available
export FQDN instead of hostname
use fqdn in module-x11-publish as well
split out x11prop.[ch]
add username to runtime directory name in /tmp/
remove a debug message
* remove as superfluous assert() in polyplib-stream which broke the gstreamer plugin
* implement module-esound-sink
Make the whole stuff LGPL only
todo update
* some commenting work
* fix a long standing bug in ioline.c (large prints failed)
update todo list
fix module-tunnel.c
todo update
minor fixes for latency interpolation
limit the number of concurrent connections for all four protocols
* some iochannel fixes
* add µlaw/alaw support
option to use ALSA default fragment number and size
* remove autospawn lock file usage
* some minor pid file fixes
some commenting
* PID and lock file fixes
* fix the trivial resampler
fixes for bugs found when compiling with gcc 2.95
* add some missing "static"s
bump version number
* new tool pacmd
* create parec as link to pacat
calculate buffer sizes from sample spec
* update todo
* make --help fit in 80 columns terminal
Comment some more files
Documentation updates
prepare for release
* some fixes for MacOS X by Conrad Parker
* install fix
* use setresuid() instead of setruid() if available
* fix autospawn lock file creation
* really fix integer only resampler
* add first part of zeroconf publisher
* fix alsa initialisation
* complete zeroconf publisher
* fix include file names in installed header files
* prepare polyplib-browse for installation
* fix daemonizing
do mor daemonizing work
* Publish server info in mDNS in addition to sinks/sources
cleanup zeroconf service names
* fix error message when starting polypaudio while it is already running
gcc 2.95 compat
fix conditional X11 compilation
minor fixes
* add support for asynchronous name resolution
update todo list
change doxygen build stuff for better compat with moderm automakes
* add new module for LIRC volume control
* make lirc program name configurable
* increase timeout in pacmd
* todo update
* add new module module-mmkbd-evdev
* new environment variable $POLYP_LOG
* make pa_sample_spec_snprint return point to written string
* extend HTTP module
* fix LIRC configuration
create a copy for liboil porting
commit liboil porting changes
add libsamplerate/libsndfile CFLAGS
fix start_timeout()
remove esound protocol directory on unload of module-protocol-esound
handle EOF in ioline.c
alter alsa periods number
bail out if no sink is defined
build fix
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@352 fefdeb5f-60dc-0310-8127-8f9354f1896f
print a nice message when libltdl is missing
handle float values in sound files sensibly
add pa_sound_file_too_big_to_cache()
add new field running_as_daemon to pa_core
increase number of allowed connections
initialize running_as_daemon
chance ALSA sink to use "default" as default alsa device
fix alsa memory leak
fix synchronized clock change
improve sync clock change
Merge Pierre's changes
build system updates, including support for some newer GCC options
* remove a lot of compiler warnings introduced by using some new GCC flags
Mega patch:
add support more for up to 16 auxiliary channel positions
* add variadic function pa_tagstruct_get() and pa_tagstruct_put() for parsing/constructing tagstruct records
todo update
fix warning text
print ALSA error messages on failure
allow polypaudio to startup without any enabled module
Add HAVE_ALSA and HAVE_OSS defines
add simple hardware auto detection module
* svn:ignore some files
move alsa-util.[ch], oss-util.[ch] and howl-wrap.[ch] to the modules directory since they are just helper source used exclusively by the modules
add a bunch of simple Makefile in the subdirs, just to make compilation with emacs easier
make channel naming somewhat RFC2551 compliant
drop polyplib- prefix from client library files
fix compilation of simple API
* drop polylib prefix from #define
shorten include list of utils a little
* rename polypcore/subscribe.[ch] to polypcore/core-subscribe.[ch] to avoid confusion with polyp/subscribe.[ch]
include header files in simple.h with <> instead of ""
fix doxygen
update todo
1) Add flexible seeking support (including absolute) for memory block queues and playback streams
make doxygen ignore PA_CDECL_BEGIN/PA_CDECL_END
update TODO
remove cdecl.h from doxygen docs
* Make typdefs for the pa_context callback prototypes
explcitily cast strings to make gcc shut up
replace "spawn" parameter of pa_context_new() with a proper flags parameter
minor doxygen fixes
add doxygen docs for channel map
todo update
* a lot of doxygen updates
* modify pa_context_exit_daemon() to return a pa_operation object
fix moddir
change calls of pa_context_connect() to pass flags arugment correctly
remove a superfluous log line
fix yet another pa_context_connect() occurance with regards to the flags parameter
add validity check for the "server" parameter of pa_context_connect()
improve error checking in simple API
todo update
build dllmain.c only on win32 (makes gcc shut up a little more)
fix snd_pcm_hw_params_set_rate_near() usage
build defer() function in src/polyp/mainloop-signal.c only on win32
disable SIGPIPE before calling pa_core_new(), this way the warning message is not printed
todo update
add hw volume control for module-oss-mmap
todo update
* Get rid of libpolyp-mainloop
todo update
* Don't build seperate ipv4/ipv6 versions of the protocol plugins
todo update
fix pacat
todo update
remove left-over log line in protocol-esound.c
add new utility function pa_endswith()
include hw description gathered from /dev/sndstat in sink/source description string
add hw info to description for oss-mmap, too
todo update - outline what i consider pre-0.8 and post-0.8 issues
todo update
rework parameter validity checking in protocol-native server side
todo test
unbreak Makefile.am
revive howl support
pkg-config update
todo update
add listen= parameter to tcp protocol modules
update todo
enforce maximum memblockq length for clients
fix source volume adjustment: copy memchunk before changing the volume of it
simplify tagstruct creation
change pa_log() and friends to not require a trailing \n on all logged strings
ignore pabrowse
really ignore pabrowse
update todo
add a few more validity checks to protocol-esound
todo update
todo update
add support for authentication using SCM_CREDENTIALS
* Add new "auth-group=" parameter to protocol-native-unix
todo update
move scatter/gather todo item to post-0.8, since it's impact on perfomance might not even be worth the effort.
protocol changes for new latency API (partial!)
remove some GCC warnings introduced by improperly casting to (char*) instead of (const char*)
* set IPV6_V6ONLY for IPv6 sockets, to avoid warning when both ipv6 and the ipv4 sockets try to bind to the same port
s/index/idx/, to avoid gcc warning
change pa_gettimeofday() to return a pointer to the struct timeval*, instead of an int
* really pass the ipv6 socket server to protocol_new in case of ipv6.
remove queue length field from latency request (server side)
rework latency querying API (this needs more testing)
update pacat.c for new latency API
update simple API for new latency API
* update docs for reworked latency API
hdie some more
remove yet another item from the todo list
fix pkg-config files
* enable write_index correction and timing interpolation only for playback (and record) streams
todo update
remove item from TODO list, since it requires the SNDCTL_DSP_GETERROR ioctl() which isn't supported by the Linux kernel
minor cleanups
todo update
add new introspection data field for sinks/sources: a flags field which specifies whether the sink/source supports hw volume control and latency querying
* show flags value when dumping sink/source info in pactl.
remove another item from the todo list
when doing software volume adjustments, don't use the volume value as linear factor, but pass it through pa_sw_volume_to_linear() first.
add proper volume clipping support for OSS devices
clip volume at PA_VOLUME_NORM for alsa devices
unbreak last commit from ossman
update TODO
Lennart is blind
add new PA_STREAM_AUTO_TIMING_UPDATE
* implement PA_STREAM_AUTO_TIMING_UPDATE
todo update
when using record mode, allow file to save data to to be passed on the command line
minor cleanups for OSS module
* Beef up latency calculation in module-oss-mmap
update todo
validity checks for pa_context_is_pending()
return the error code and not just -1 when pa_context_is_pending() fails
unbreak fresh SVN builds
todo update
when flushin a memblockq, set the write index to the read index
proper validity checking for pa_context_is_pending()
protocol change: don't send stream buffer size in latency update. This data is redundant, since it can be calculated from write_index - read_index anyway
* rename "latency correction" to "write index correction"
beefup pacat a little:
remove a bunch of log messages
* fix latency calculation where a full playback buffer was erroneously taken as empty buffer and vice versa.
* dispatch defer events in pa_mainloop_dispatch() and not already in pa_mainloop_prepare()
small fix to deal properly with slow links
yet anotrher fix for slow links
when storing recording data in file, create file with proper access rights
include local record memblockq in latency calculations
remove yet another item from the todo
Documentation updates
more documentation updates
doc updates
update documentation for release 0.8
add new configure option to enable preloading even on architectures that support dlopen(). Useful for debugging
make --enable-force-preopen the default for SVN builds
add code to allow polypaudio dump preloaded modules using "--dump-modules"
hmm, nothing important
fix latency calculations of module-combine
include in-flux resampled chunk in latency calculations of playback streams
remove yet another item from the todo list
unbreak module-tunnel
remove yet another item from the todo list! This means we are now read for 0.8!
* add a link to Cendio to the README
minor doc updates
minor beautification
add an RTP sender module
* ignore some more files
correct some types
* change default multicast address
* add RTP/SAP/SDP reciever module
todo update
* add new check for $RANDOM_DEVICE
initialize random seed globaly from $RANDOM_DEVICE
replace homegrown endswith() with pa_endswith() from util.h
* increase default MTU
* deal properly with underruns, overflows and packet losses
* make sure RTP ports are chosen to be even
rename module-rtp-monitor to module-rtp-send
ignore symdef file of module-rtp-send
change default mcast address once again, to make sure our traffic doesn't leave the network by default
fix typo in module description
limit number of concurrent RTP streams
add documentation for the new RTP modules
properly initialize session counter
add new API to replace the poll() function used by the main loop implementation
* add pa_mainloop_wakeup() calls for deferred events
add new JACK sink
* allow the user to set the jack client name
add a jack source module
* fix pa_random_seet() function prototype
fix code for pre-C99
build jack source
fix connecting of jack source in jack daemon
add JACK module documentation
Documentation updates
fix make distcheck
fix "make distccheck" properly
fix CFLAGS for jack modules
fix a couple of issues I found when compiling polypaudio with gcc 2.95
make proper use of the muting facility of sinks in module-mmkbd-evdev
* rename "LICENSE" to "LGPL"
add new explaining LICENSE file
ship GPL and LGPL files with the tarball
minor improvements to the LICENSE text
replace copy by symlink when installing homepage
chown() and chmod() /tmp/.esd/ before checking if everything is ok with it
try to remove the directory where the PID file resides in after removing the PID file
first unlink the socket, the close it
add new function pa_parent_dir()
* for unix sockets: remove the right parent directory on shutdown
fix sample cache
fix x11 handling
when loading sound files, initialize channel map data properly
modify x11 modules to not cache the Display variable since pa_x11wrap_get_display() is now used as notification that the x11 output buffer needs flushing
require automake 1.9 in configure.ac
remove superfluous "set -ex" line
* Merge build system patch from Igor Zubkov
allow recieving of invalid channel maps, volumes and sample specs. This makes handling of uninitialized data better, e.g. when sending info about lazy-load sample chache entries, where the channel mapping and sample spec is still unknown.
fix multiplication of software pa_cvolumes
* when playing back a sample from the sample cache, just take a pa_volume_t and not a pa_cvolume_t as argument for the volume. Usually it is not known to the player of theses samples how many channels it has, hence it doesn't make any sense to allow him to pass a by-channel volume structure here.
introduce a new error PA_ERR_TOOLARGE
* fix ref counting of pa_stream: strictly refcount from context to stream and never vice versa to make sure that we never loose memory
enforce maximum sample size in sample cache
fix sample uploading
small optimization
* add validity checking for sample_spec, channel_map and cvolume structures
fix a segfault when uploading samples with esound
* rework reference counting in the client libraries: now refcounting goes
* add new function pa_channel_map_parse()
add new test 'channelmap-test'
don't allow channel positions to be specified twice in the same channelmap
add support for parsing channel maps as module arguments
support new channel_map argument in sink/source modules
* make a validity check of parsed channel maps before rteurning theme
allow specifying the channel map to use on the command line
it was a bad idea to require that a channel map doesn't contain the same position twice
if a sample is not yet loaded, don't print rubbish about its channel map
fix volume range printed on --help
allow the user to specify an alternative channel map in paplay too
fail if the channel map doesn't match the sample specs
bump version number
doc update for 0.8.1
ouch!
fix date
* make sure the wakeup fd is polled on wven when no other fd is registered for polling
add new threaded main loop implementation (with test/example)
allow signalling from event loop thread
remove bogus check that disallowed latency interpolation and stuff for record streams
add support for reading audio data from a file instead of plain STDIN in pacat-simple.c
* optionally, make pa_threaded_mainloop_signal() wait until the main thread took over control
rework the simple API to make use of the new threaded mainloop implementation
update todo
fix handling of timing status requests
add thread-mainloop.h to doxygen docs
split of signal releasing into its own function and name it pa_threaded_mainloop_accept()
don't signal the accept_cond automatically when waiting for a signal event
update doxygen docs
fix iochannel for hangup signals
fix hangup detection for recording streams
remove superfluous log message
use default alsa channel map for alsa devices
fix fragment size calculation for module-alsa-source
don't hit an assert when trying to resample data for 6channel audio
first set buffer size, and afterwards period size
* set default fragment metrics depending on the sample specs of the device in OSS and ALSA
fix esound sample cache names
modify argument order of pa_client_new() to actually match how it is usually called
* add new parameter to pa_open_config_file() to specify open mode
add new module module-volume-restore which saves and restores volume of playback streams
update todo
add utf8 validity checking API
check for valid utf8 strings
take the filename specified on the command line as default stream name
remove superfluous log line
add utf8 validity checking to esound protocol
update TODO
remove regex.h from include, since it is actually not used
undo r868
add notification callback which is called when new latency data becomes available
* fix segfault in pa_utf8_validate()
downgrade a log message
use the new latency update callback to be notified when latency data becomes
* remove "const" from return type of pa_utf8_filter() since it desn't make any sense
add double include protection
add svn:keywords property
add new test programme utf8-test.c
instead of kicking clients with invalid UTF8 stream names, filter invalid characters and use that instead
tell svn to ignore the utf8-test binary
* remove .a files from the modules directory after installation
update todo
* add new configure option --with-module-dir=
bump version number to 0.9
change version number from "0.9" to "0.9.0" to make version comparisons easier
* modify pa_channel_map_init_auto() to take an extra argument specifying the standard to use (ALSA, AIFF, ...)
add new channel mapping standard PA_CHANNEL_MAP_OSS
use PA_CHANNEL_MAP_OSS in module-oss, module-oss-mmap
increase PA_CHANNELS_MAX to 32
when playing an ULAW or ALAW audio file, do not convert to S16NE unconditionally, instead use sf_read_raw() to read raw audio data
* use S16NE for SF_FORMAT_PCM_S8 formats, too
support loading ULAW/ALAW files into ULAW/ALAW memchunks
* support native ULAW/ALAW file streams
update todo
update todo
add documentation for module-volume-restore
add proper locking when accessing the file volume.table
add proper locking when accessing the file match.table
more sensible default.pa file
fix svn tag
add new channel map argument to pa_simple_new()
add utf8.h and xmalloc.h to doxygen docs
* make pa_xfree() a real function
add doxygen docs for utf8.h
include more files in polypaudio.h
replace memory allocation function calls with pa_xXXXX()
split polypcore/util.[ch] into polypcore/core-util.[ch] and polyp/util.[ch]
include util.h in polypaudio.h
add util.h to doxygen
* add doxygen docs to header file
add C++ macros to xmalloc.h
add C++ macros to utf8.h
fix include line for "core-util.h"
modify lirc module to use pa_sink_mute() for muting and unmuting
update README for 0.9.0
generate PA_MAJORMINOR properly - only from major and minor, not from micro
rename pa_simple_get_playback_latency() to pa_simple_get_latency() and allow its usage on capture streams
fix long-standing buf that could cause polypaudio to eat 100% CPU: fix handling of event bits for pa_iochannel
doc update
add new function pa_usec_to_bytes() as inverse of pa_bytes_to_usec()
add missing #include
add missing #include
change return type of pa_cstrerror() to "const char*"
add new padsp utility: a $LD_PRELOAD wrapper for using the OSS API with polypaudio
pass the binary name as client name to polypaudio
- use pthread_atfork() to disable open sound streams in the child after a fork.
implement emulation of /dev/sndstat
fix playback of small sound files
implement a /dev/mixer interface
update TODO
* issue volume updates syncrhonously
fix evil, evil typo that cause all gtk2 based apps to crash
add support to disable emulation of /dev/dsp,/dev/mixer,/dev/sndstat selectively by either passing an environment variable or by defining a symbol __padsp_disable__ in the process
read stream and client name from $PADSP_STREAM_NAME resp. $PADSP_CLIENT_NAME, if available
update todo
add item about moving pa_cstrerror() to TODO
move modules to ${libdir}/polypaudio-${PA_MAJORMINOR}/modules/
* split pa_cstrerror() into its own file polypcore/core-error.[ch]
really fix a superfluous warning when building padsp.c
* add new API function pa_stream_get_buffer_attr().
update todo
disable padsp for the polypaudio daemon itself by defining the __padsp_disabled__ symbol
update README for 0.9.0
drop the .sh suffix from esdcompat
update svn:ignore to reflect the esdcompat name change
merge patch from Igor Zubkov, fixing linking of the HOWL modules
fix amd64 portability issues
load alsa modules with device string hw:0 instead of hw:0,0
update todo
* if an ALSA device doesn't support the channel count requested, use what ALSA suggests instead
* alsa-sink: if "PCM" is not found as mixer track name, fallback to "Master"
downgrade a log message
decrease maximum allowed sample frequency for ALSA devices to 5%, since 48000 would otherwise match with 44100
update TODO
remove superfluous prefixes from service names
Add new configure options to disable/enable specific modules at configure time. Original patch by ed at catmur.co.uk. (Closes #16)
bump version and soname
update docs for 0.9.1
fix ugly access-after-free bug when doing asyncronous NS lookups
actually build cpulimit support if SIGXCPU is available
fix pa_xstrndup() implementation to not access potentially uninitialized memory
rework ioline EOF handling to actually work properly
update todo
if S16NE is not supported, fall back to S16RE. If FLOAT32NE is not supported, fall back to FLOAT32NE. If still nothing is supported, try everything else in order
* make hw param settings easier to debug by splitting up long if
* implement volume adjusting and mixing for S16RE
* add new argument 'exit_on_eof' to module-cli and make use of it if "-C" is passed to the daemon
add new test "interpol-test"
minor cleanups
* rework latency interpolation to make it smoother
hide interpol-test
unhide padsp
big s/polyp/pulse/g
rename polypaudio.h to pulseaudio.h
hide pulseadudio binary from SVN
replace a few remaining uppercase "Polypaudio" occurences with "PulseAudio"
name the pkg-config files after the library names
update references to the pkg-config files in the docs
* more s/pulseaudio/PulseAudio/ replacements
update docs
s/POLYP/PULSE/g
fix segfault when module-alsa-source fails to load
bump version number
only interpolate when the last timing info told us the stream is indeed playing
include config.h in browser.c (closes #20)
increase the maxium number of concurrent esd and native connections
update readme for 0.9.2
fix mailman URL
replace remaining ML refs to polyp
s/avahi/pulseuaiod/
remove all docs from tarball since they are now available on pulseaudio.org
unhide a few files
* remove doc/ directory
mark HAL for shams king
check for avahi in configure.ac
make sure gccmacro.h and cdecl.h may be included at the same time as those headers from the avahi project
update module-zeroconf-publish to make use of the native AVAHI API, instead of HOWL
* port libpulse-browse to use the native avahi API instead of the HOWL cruft
add browser.h to doxygen docs
* add proper error handling to pabrowse.c
remove HOWL snippet from configure script
remove howl-wrap.[ch]
remove avahi/howl item from todo list
update todo
support time events with NULL timevals which are OK in avahi, but not in PA. This makes padevchooser actually work on top of the new avahi browsing stuff
* fall back to prctl(PR_GET_NAME) in pa_get_binary_name() if readlink() fails
Don't call pa_path_get_filename() anymore since it is implicitly called by pa_get_binary_name() anyway
add new test get-binary-name-test for testing pa_get_binary_name()
update todo
remove vi'ism
try to use send(,,MSG_NOSIGNAL) instead of write() wherever possible (which
don't set MSG_NOSIGNAL for recvmsg(), since it doesn't make sense there
don't send SCM_CREDENTIALS on every sendmsg(), instead do it only on handshake
remove checking for SIGPIPE blocking from client code. Because we use
update todo
improve latency calculation of NULL sink
update todo
add a new boolean variable is_hardware to pa_sink/pa_source to denote wether the specific device is a hardware device or virtual/software
add new PA_SOURCE_HARDWARE/PA_SINK_HARDWARE flag
set is_hardware flag for a few hw plugins
show value of PA_SINK_HARDWARE/PA_SOURCE_HARDWARE in pactl
show summary after "configure" has run (closes: #22)
todo
make pulseaudio compile again on FreeBSD (patch from Diego "Flameeyes" Petteno)
change licensing blurb form "Library GPL" to "Lesser GPL" on request of Loic Minier. Effectively this means using the same license blurb like in all other source files.
define proper typdefs for callback prototypes
turn the glib adapter into a single GSource instead of creating a bunch of seperate GSources for each event
fix module-detect on FreeBSD (patch from Diego "Flameeyes" Pettenó)
add two more \since
remove glib 1.2 adapter. It started to bitrot and wasn't used by anything anyway.
* add new --system command line parameter to the daemon for running PulseAudio as system-wide instance
fix sed scripts according to #define renames
update @@ tokens according to recent Makefile.am change
use access group dedclared in ~/.pulse/client.conf instead of PA_ACCESS_GROUP
* add new function pa_check_in_group()
add a few comments
undo r1111 in some way: include sys/socket.h and sys/un.h but wrap it in #ifdef
add support to set resource limits for the daemon and set some of them to some sane values
add IP address ACL subsystem
actually ship src/pulsecore/creds.h in the tarballs
implement "auth-ip-acl=" in the native and esound protocols
update todo
remove configurable client access group, since can never work on Linux anway, since SCM_CREDENTAILS doesn't allow sending supplementary GIDs
bump release and sonames
some more FreeBSD compat from Flameeyes
add missing #ifdef HAVE_CREDS (thanks, Flameeyes)
even more FreeBSD portability (thanks Flameeyes, again!)
fix a few @@ replacments
remove access group setting from default client.conf
raise the default value for RLIMIT_NOFILE to 200 since 25 is apparently too small if every single GNOME apps thinks it needs to create its own server connection!
fix horribly broken glib timeout event handling
update todo
as a result of memory profiling with valgrind/massif: decrease default hash table size from 1024 to 127. the hashtables are sparsely filled most of the time, so there is no point in allocating to much memory by default.
add massif target to Makefile
bump version and sonames
add autogen.sh for jhbuild (for you, elmarco!)
add a few more g_assert()s and change all assert()s to g_assert()s
split a few assert()s
split a few asserts
Results of profiling PulseAudio with valgrind's callgrind module: rework the default event loop implementation to use PA_LLIST_xxx instead of pa_idxset; don't generate weakeup events if we aren't in STATE_POLLING; minimize dispatching of io events; cache next time event instead of traversing the list of time events on every event loop iteration; other optimizations
add new command line option --no-cpu-limit. This is useful when running PulseAudio in valgrind's massif or callgrind tools
add new module "module-gconf" which reads configuration information from gconf. this will be used in my upcoming paconf module
add missing configure.ac checks for module-gconf
add some protection that the gconf helper process will be killed when the daemon process dies. make sure the gconf helper process doesn't keep open file descriptors belonging to the daemon; if gconf helper path
mainloop fixes: when disabling time events when dispatching them, make sure to adjust the cache time event and enabled time event counters
remove two superfluous lines
remove superfluous code
because gconf doesn't provide real transactions we emulate our own with a "locked" gconf key
if possible do not unload already loaded modules when the gconf settings change. instead try to reuse already loaded modules as much as possible
introduce three virtual sink/source names: @DEFAULT_SINK@, @DEFAULT_SOURCE@, @DEFAULT_MONITOR at . Especially the latter is useful for connecting to the monitor source of the default sink.
load module-gconf in default install
update todo
introduce pa_play_memblockq() which creates a playback stream and passes the data from the memblockq to it. after that is done, frees the memblockq
fold the seperate variable pa_sink_input::playing into pa_sink_input::state as state PA_SINK_INPUT_DRAINED. The following mappings hold:
for the playing field of pa_timing_info use pa_sink_input::state == PA_SINK_INPUT_RUNNING. This means that this variable will now refer to the current state and not to the expected future state, which is probably more what clients expect.
handle EOF correctly if it is read before the stream was created
fix calculation of pa_usec_to_bytes, to make sure that it never returns fractions of a frame size
if the memblockq is empty, return -1 in all cases
free the memblockq if we decide not to play it
* implement "hot" moving of playback streams between sinks (pa_sink_input_move_to()).
add new CLI function "move-sink-input" as wrapper around pa_sink_input_move_to()
fix two typos (pierre, have you been sleeping? next time please the comments wrong but the code right, not the other way round! ;-))
don't hit an assetr if there are operations outstanding when the pa_context is destroyed
fix module-gconf initialization
fix bad memory access if a non-existing entry shall be removed from a pa_idxset by index
deal properly with recursive module unloading
add new commands opcode for moving sink inputs and source outputs
add new native protocol function for moving sink inputs between sinks
wrap PA_COMMAND_MOVE_SINK_INPUT for libpulse
add new "move-sink-input" command to pactl
bump API and protocol version. Return PA_ERR_NOTSUPPORTED if pa_context_move_sink_input_by_*()is called for servers that don't support it
- don't call pa_sink_notify in pa_sink_input_new() because the virtual methods are not yet initialized at this time
Implement pa_source_input_move_to() for moving record streams between sources
add new CLI command move-source-output as wrapper around pa_source_output_move_to()
wrap pa_source_output_move_to() in the native protocol
implement pa_context_move_source_output_by_{name,index}()
implement "pactl move-source-output"
update todo
merge HAL support from Shams E. King
* add SVN $Id$ tags
try to reduce volume updates in the ALSA sinks/sources: only touch the shadowed hw volme if necessary
use the copied udi string as hash key for the device table, because the temporary one is freed when the function exits
change order of the ALSA event dispatch code to make sure that the code survives if the event dispatcher frees the ALSA client
ALSA: handle write()/read() errors properly by unloading the driver module. This should fix problems when removing USB audio device while pulseaudio is running.
remove OSS specific code from module-hal-detect if HAVE_OSS is not set. Same for ALSA
Build HAL support only when either OSS or ALSA is available
rework name register a litle to only allow "valid" names.
fix bad memory access and a leak when detructing ALSA fd lists
do not export name validity checking routes and apply them only to sink/source names, not sample names
use the HAL UDI for naming input/output devices
shorten sink/source device descriptions a little
update todo
* introduce new functions pa_sink_set_description() and pa_source_set_description() for changing the description of a sink/source
comment which values in pa_{sink,source,sink_input,source_output} structures may be NULL
don't set the sink/source descriptions manually, use the new functions pa_{sink,source}_set_description() instead
allow setting the null sink description by a module parameter
update todo
add new macro PA_LLIST_INSERT_AFTER
fix a compiler warning
rework subscription code: try to drop redundant queued events
clean up event generation a little: suppress unnecessary events and generate new ones on owner change
update todo
update todo
fix pa_gettimeofday() return value testing
fix a segfault in module-oss
* only load an OSS driver for the first device of a sound card, similar to what is done for ALSA.
there's no need to queue subscription events if noone is listening, hence don't do it!
when the requested sample format is not available for OSS devices, print a nice warning and take what we can get instead
print the device capabilities after opening the device
handle hot-remeving of OSS devices properly
update todo
generate default sink/source names from the device files they belong to
name the sink/source after the device file, just like we already do for the non-mmaped driver
categorize todo file
add pa_sink_used_by()/pa_source_used_by()
make use of pa_sink_used_by()/pa_source_used_by() wherever applicable
test if sink->monitor_source is set before making use of it
update todo
extend maximum sink/source name length, because HAL UDIs can get ridiculously long
implement typeafe hook chain
reall add type safe hook list
update hook list test
rework hook list stuff again, and replace macros with real functins. We loose type safety but things are much cleaner now
rework hook list stuff once again: change the callback prototype to recieve three data pointers: one to the data for the hook, once for the slot and once for the call
fix bad printf()
allow hooking into the process of creating playback streams. To implement this I modified the pa_sink_input_new() signature to take a pa_sink_input_new_data structure instead of direct arguments.
modify module-volume-restore to change the initial volume of a sink input from a hook instead of an asyncronous subscription event.
hide hook-list-test
remove pa_sink_input::variable_rate field since it has been folded into pa_sink_input::flags
ignore if we recieved a memory block for an invalid stream, since this might happen unwillingly due to the asychnronous nature of the protocol
Clean up module description a little
properly implement a pa_sink_disconnect() hook
implement new module "module-rescue-streams" which moves sink inputs away when their sink is removed.
Load module-rescue-streams by default
update todo
define new hooks: hook_source_output_new, hook_source_disconnect
implement hook_source_disconnect
split a validity check into two
implement hook_source_ouput_new. For this I modified the pa_source_output_new constructor to take a struct similar to what I already did for pa_sink_input_new()
minor optimization
create rtp source output on correct source
fix a segfault when registering a service with avahi fails
extend module-rescue-streams to move also source outputs when a source dies
update todo
use the description field of sinks/sources to name the zeroconf services, instead of the logical name
make PA_LLIST_HEAD_INIT thread safe
modify pa_bytes_snprint() to return the string we just wrote to. This should be binary compat with older versions which returned void
add missing #include
fix a PA_LLIST_HEAD_INIT invocation
cleanup idxset.[ch] a little: define proper types for the hash/compare funcs, do ptr->int/int->ptr conversions with clean macros
cleanup hashmap.[ch] a little: use hash/compare func prototypes defined in idxset.h, add pa_hashmpa_{get,steal}_first
fix a bad type cast
add abstracted shared memory API
Rework memory management to allow shared memory data transfer. The central idea
update tests for new memory manager
add new test memblock-test for testing SHM import/export
look for shm_open in -lrt
update todo
rework logging subsystem, to implicitly include __FILE__ in pa_log() calls. In addition we now record the line numbers and function names of pa_log calls. However, those are only shown If $PULSE_LOG_META is set.
remove all occurences of
hide memblock-test
add new function pa_mempool_is_shared() to test whether a memory pool is suitable for SHM data transfers
remove export/import objects when SHM is disable for a pa_pstream object
one s/0/NULL/
activate SHM support on the server side only when new client supports it and when client and server have the same UID.
enable SHM support on the client side only if both the client and the server run as the same user and the server supports it
update todo
fix a memory leak
fix allocation of anonymous memory
deal properly with pa_mempool_new() failing
allow importing of external shm data blocks unconditionally, even when local SHM support is disabled
add new "disable-shm" option to client.conf
add default "disable-shm" option to client.conf
add new "disable-shm" server config option
add "disable-shm=" to default daemon configuration file
add --disable-shm command line option to the daemon
update todo
fix a memory leak
rework the resample to allocate temporary memory with pa_memblock_new() instead of pa_xrealloc()
update todo
generate per-type memory block statistics
print per-type memory block statistics on "stat"
update todo
if MAP_ANONYMOUS is not supported use posix_memalign if possible to allocate the memory pool
check for posix_memalign and friends
update todo
update todo
when transferring large memory chunks of a pa_pstream, split them up
update todo
fix a bad memory access
If a client leaves the sink/source for a stream unspecified by passing NULL as
restore the sink/source for a client in addition to the playback volume. This changes the file format of the table file. To avoid parse errors ~/.pulse/volume.table has been renamed to ~/.pulse/volume-restore.table
update todo
fix pactl output (sink drivers and names where switched)
fix typo
update todo
fix handling of "mtu" module argument (patch by "theBear")
activate HAL in the default config
update module-tunnel to latest protocol
fix module-combine when used on top of a tunnel sink
bump version and sonames
increase operation timeout
fix an misdesigned assert()
add libatomic-ops to hard dependencies
add lock-free reference counting macros, based on libatomic-ops
modify memory block reference counting to use the new reference counting API
make pa_mempool_stat thread-safe/lock-free
add a threading primitive API
fix handling of "running" variable
update todo
define AO_REQUIRE_CAS in the Makefile instead of each source file, effectively reversing r1348
work around bug in firefox which apparently misuses access() as NULL pointer test. Original patch by "alon". (Closes #27)
fix a race condition with stream connection vs. latency measuremtn (found by theBear)
Merge FreeBSD compatibility patch (from Flameeyes)
make esdcompat executable
fix esdcompat for non-gnu systems
fix a few autoconf warnings (patch by Flameeyes)
allow building when srcdir != builddir (patch from Flameeyes)
update acx_pthread.m4
include PTRHEAD_LIBS in pkg-config file (patch from Flameeyes)
rework handling of srcdir != builddir (patch from Flameeyes)
add missing g_type_init()
make pa_thread_self() return a sensible pointer on foreign threads
port the threaded mainloop to our new abstract mutex/thread API
fix pa_thread_is_running() for foreign threads; fix a memory leak for foreign threads
add accessor functions for the userdata attached to a pa_thread object
remove yet another occurence of pthread_yield() by pa_thread_yield()
implement a few more ioctl()s, including a subset of SNDCTL_DSP_GETOPTR. Just enough to make JavaSound work.
fix a bogus debug line
fix indentation
don't hit an assert in the client if posix shm is not available
fix alsa-sink example
add missing channel names (fixes a segfault when parsing invalid channel maps)
make pa_stream thread-safe: use new refcounting system, protect access using mutexes
don't maintain a list of allocated mempool slots, we don't use it anyway
add a tiny wrapper around libatomic_ops: pa_atomic_int_t and pa_atomit_ptr_t.
implement a simple lock-free free list
add a test program for the free list
add static initializer PA_ATOMIC_INIT()
implement trival pa_once API based on atomic operations
update for newer APIs: replace direct usage of libatomic_ops by usage of our own atomic.h; remove pa_once implementation; always use our pa_once implementation instead of the POSIX version
rework pa_once once again, because the once function needs to have terminated before pa_once returns, regardless whether the local call executes it or another thread does.
add pa_once testing code
make pa_mutex_new() and pa_cond_new() succeed in all cases. Similar behaviour to pa_xmalloc().
update Makefile
ignore flist-test
ignore flist-test in the correct dir
rename default realtime group from "realtime" to "pulse-rt", since it is pulseaudio specific. you may still pass --with-realtime-group=realtime to configure to get the old behaviour
enable module-hal-detect in the default configuration file only if HAL support is enabled (closes #30)
add asynchronous inter-thread notification API
upgrade refcnt.h to make use of our new pa_atomic_xxx() API
rework memory block management to be thread-safe and mostly lock-free.
fix comment
drop unused variable
Fix build and only load OSS xor ALSA modules if both are available
show socket directory when we fail to create it. (Closes #85)
Fix module-oss for devices that return EAGAIN when we don't expect it. (Closes #66)
Treat empty :0.0 identically to unset :0.0 when trying to find a PA server. (Closes #87)
fix a few obvious copynpaste errors when handling volumes
fix a DoS vulnerability (re #67), originally identified by Luigi Auriemma
Fix another DoS vulnerability, also identified Luigi Auriemma (closes #67)
fix minor typo
Fix yet another DoS vulnerability, also identified Luigi Auriemma (re #67)
don't allow excessively high sample rates
Fix a DoS with allocating overly large silence buffers. (Identified by Luigi Auriemma (re #67)
add a missing initialization that causes a crash when parsing invalid volume restoration tables (Problem identified by Luigi Auriemma, re #67)
Fix another DoS vulnerability that has been identified by Luigi Auriemma. (Finally closes #67)
only browse for ipv4 pa servers for now. Needs better fixing which however is not trivial and probably breaks the API
fix suid Makefile target
when called with the setid bit change euid to uid sooner to make sure that we can access our own files even when we dropped most capabilities. (Closes #21)
Add a new meta command ".ifexists" to the CLI language, to execute commands only if a specified file exists. Original patch from cjvdb. Closes #36
Minor optimization: read log level character code from array
unfortunately we cannot detect if a foreign thread is still running. Thus sucks. But what can we do? U. Drepper thinks our use case is invalid.
Replace AO_xxx usage with pa_atomic_xxx and friends wherever it makes sense
Bump revision of libs and package
build fix for systems lacking capability suppoort. (Problem identified and original patch supplied by Diego Petteno
add target "eolspace" to makefil to remove trailing newlines from all source files
Kill spaces on EOL
add a new private branch
Merge HUGE set of changes temporarily into a branch, to allow me to move them from one machine to another (lock-free and stuff)
make eolspace
Add new untabify makefile target
make untabify
A lot of more work to get the lock-free stuff in place
trivial cleanups
Move a few things between the threads
Make debug message more useful
rework sink input/source output state machine
Remove anotify.[ch], since it is now entirely replaced by pa_asyncmsgq
Fix a nasty typo in pa_asyncq_pop
Show memchunk length in debug output
use pa_memblockq_push_align() instead of pa_memblockq_push() to deal with unaligned data coming from clients
Fix another ugly typo, which made source outputs unusable
Port module-pipe-source to the new threaded design
Fix minor typo
minor cleanups and optimizations
fix a typo and some minor optimizations
drop silence generation from sink drivers
don't handle underrun special
remove underrun condition in pa_sinks. Instead return silence in pa_sink_render() when necessary. This is required to guarantee that the time functions in connected sink inputs stays linear
Update OSS driver for new lock-free core
Make use of dbus_watch_get_unix_fd() instead of dbus_watch_get_fd() because of deprecation of the latter
Fix length calculation in pa_silence_memblock_new() and make use of pa_assert() everywhere instead of assert()
Include assert.h, since we use assert() for our pa_assert() macro
Make sure the returned pa_msgobject object has a valid refcnt before returning it
rework the logic of pa_asyncq
Track the 'missing' variable safely between the threads
Limit silence buffer size for pa_sink_render()
make sure we don't free the same connection twice
remove pa_memblockq_is_writable() (because it is stupid and not used anywhere anyway, and replace all assert()s with pa_assert()s
Port module-oss to the new lock-free core
fix segfault when recording with module-oss.c
Make sure pollfd[POLLFD_ASYNCQ].revents is properly initialized on signal
Properly initialize all revents on EINTR
Make pa_sink_render_* and pa_source_post work only when in RUNNING state, to fix handling of monitor sources when their sink is suspended
Merge module-oss-mmap into module-oss and make suspending working properly
Remove module-oss-mmap, since it is now merged into module-oss
Replace a couple of assert()s by pa_assert()s
Fix off-by-one in mixing code
Fix concurrency bug when turning memblock into a local memblock
Remove a superfluous pa_memblock_release(); properly handle buf4 allocation
Reenable a couple of more modules
Port module-sine to the new lock-free core
Actually make the static flist static
Make use of static flist for hashmap entry alllocation
Minor clarification
s/assert/pa_assert/g; make use of static flist for memblock allocation where applicable; properly initialize length value in pa_memexport_put()
Fix typo in pa_memblock_release() call; s/assert/pa_assert/
Fix a couple of typos in the resampler code
change order of munmap and freeing of memblocks
wrap destructor gcc attribute in macro
destruct freelists properly, by using gcc destructors. we do this only to make valgrind shut up, not because it would have any real value during runtime
update static free list usage in hashmap
update static free list usage in asyncmsgq
drop chunk argument from various drop() functions, since it doesn't make any sense if we want to guarantee always monotonously increasing read pointers; a couple of other fixes
Simplify implementation of pa_assert_se()
add our own implementation for pa_snprintf() because NUL termination is apparently not guaranteed on windows and a couple of other libcs
Modernize things a little
Modernize things a little bith more
Convert most snprintf() calls to pa_snprintf()
fix some alignment issues and modernize file a little bit
Store strings directly in strlst elements, other modernizations
add abstracted file descriptor based semaphore object that is lock-free in the best cases
port asyncq to make use of new fdsem object
reverse order of printf and push to make output more readable
Add fdsem to makefile
properly deref sink_input/source_output objects when removing them from a sink/source
Increase ref counter of sink input as long as it is included in the sink idxset
reverse order flist destruction and mempool allocation warning
make valgrind shut up regarding non-freed ident strings. other modernizations
properly free memblocks when skipping over them
remove debug messages; don't queue request messages like nothing when send file is finished
remove some log messages
Fix channel remapping in resample; other modernizations
Disable memory mapping if we open the device in O_WRONLY. Unfortunately we cannot do mmap() in Linux without opening the device for reading as well.
minor modernizations
port module-alsa-sink to new lock-free core. also add mmmap'ing support while doing so.
bring back alsa fd list managemet, since we need it for proper mixer change notification
reload OSS volume after unsuspend
restore proper mixer volume control
add PA_SINK_OPENED/PA_SOURCE_OPENED macros for easier checking for _IDLE or _RUNNING states
Fix suspending/resuming
It is now allowed to call pa_sink_get_volume() from thread context
drop data from inputs only when in running state
fix suspending logic
minor cleanups
port module-alsa-source to new lock-free core
A lot of updates, all necessary to get the native protocol ported:
rename pa_source_output_new_data::corked to start_corked to match pa_sink_input_new_data::start_corked
On recommendation of Takashi Iwai prefer Master volume control over PCM and don't control Mic control
Remove unnecessary snd_pcm_hwsync()
Don't stop hardware on buffer underruns. Instead continue playing to guarantee that our time function stays as linear as possible.
jack driver build fix which became apparent on fedora
compat with automake 1.10
merge compat changes from trunk
minor cleanups
modernize play-memchunk and port it to the new core
Modernize pstream.[ch], reintroduce defer event to make things actually work
typesafe casts
follow rename of pstream_close() to pstream_unlink()
initialize method pointers properly
play memchunks completely
use posix_fadvise to avoid page faults when reading audio files from disk
minor optimization for cacheing in of samples by using posix_fadvise
make sure to handle disconnecting our own connection properly
initialize 'length' properly
fix playback over native protocol
fix a memory leak
fix playback status querying
minor fixes and cleanups
port esound protocol to new lock-free core
add global suspend command to cli
reinitialize sw params after resume
don't print error on socket read/write failure
properly reinitialize pollfd array after resume
properly reinitialize pollfd array after resume
Remove warning when client is too slow to handle our data
be more verbose when device does not support sampling parameters
modernize dbus-util.c
modernize module-hal-detect.c and check for ALSA pcm_class != modem
fix bug in handling of defer events
add new function pa_scache_play_item_by_name
listen for HAL ACL events; play an event sound on hw coldplug, hotplug and ACL access
by default, store esd socket in /tmp/.esd-`id -u`/socket, instead of /tmp/.esd/socket, to allow multiple simultaneous esd instances. this is only compatible with a patched esd, which however ubuntu and fedora ship now. other distros need to patch their esd as well, or may pass socket=/tmp/.esd/socket to module-protocol-esound-unix
don't hit an assert when we cannot resume a device
add a couple of additional hooks for modules to use
if we get access to a device we don't know yet, add it to our tree instead of ignoring it
add new module-suspend-on-idle module which suspends sinks/sources which are idle for more than 5s (or any other configurable time). Power saving, here we come\!
forgot to actually add the new suspend-on-idle module source code
protect memimpors with a recursive mutex to avoid deadlock when shutting down
update default configuration
s/login.wav/startup3.wav
play ACL event sound only when gained access, not when losing it
don't assume that sink/source is already unregistered from namereg when disconnect hook is called
modernize
Add X11 XSMP module for hooking into the X11 session manager, for being notified about X11 disconnects before they actually happen, so that we are not killed by the bloody xlibs
Avoid a race condition when one PA instance gets HAL's ACLAdded message before the previous owner instance has given up access to the device, and thus the device is blocked
handle ACLAdded messages for previously unknown devices identically to a really new device
avoid duplicate loading of modules
fix minor memory leakage
* drop redundant pa_core argument from module initialization functions
fix closing of fds in gconf module
minor cleanliness fixes
do not acces playback pa_messagq from main thread
move pa_queue to an implementation based on pa_flist
Rename pa_once_t to pa_once
update thread test to use pa_once instead of pa_once_t
Wrap two pa_asyncmsq in a new pa_thread_mq object for bidirectional, lock-free communication between a main loop and a thread
minor update
make use of pa_thread_mq everywhere
if no thread-mq is attached to the current thread, return an error, don't hit an assert
add callbacks for the revoke/release stuff, so that we can make this thing thread-safe
make revoke/release thread safe in the native protocol
move pstream item allocation to pa_flist
add default fragment settings variables to pa_core
allow setting the default sample and fragment settings from the config file
modernization
fix default device naming and fix api selection code
modify alsa drivers to make use of new global fragment setting variables
allow destruction of pa_fdsem object that are still in 'poll' state
add proper refcounting to pa_asyncmsgq objects, to allow destruction from the dispatched callbacks
fix module-hal when no api= argument is specified
deal with messages properly which are recieved after destruction of a stream
make sure that the device access event sound is only generated once
port oss driver to make use of the default fragment sizes as defined in pa_core: store in the sink/source description whether mmap is used; if mmap() fails, fall back to UNIX read/write mode instead of bailing out immediately
use single array for storing pa_core hook lists, add sink state changed hook, drop NO_HOOKS flags for sink inputs/source outputs, listen for resume events in module-suspend-on-idle.c
restore the ability move record streams between sources
Add 'via DMA' to sink/source description if device is accessed with mmap()
hook into move operations for resuming/suspending devices appropriately
minor modernizations
fix latency reporting for oss and alsa modules
minor cleanup
modernize pa_play_memblockq() and add a new function pa_memblockq_sink_input_new() which allows creation of memblockq streams without activating them immediately
add comments describing the context these functions are called from
Resurrect ability to move streams between sinks
bump soname and stuff for fedora pre-release
ship full libltdl tree in SVN to make sure we can build this crack on fedora
make make dist work
make make distcheck pass
build fix for newer glibc
yet another new glibc build fix
64 bit fixes and minor gcc shut ups
deactivate module-x11-xsmp by default, due to a deadlock when pa is being started from gnome-session
a couple of build fixes
add load-module and unload-module commands to pactl
load module-x11-xsmp from a /etc/xdg/autostart file, to make sure it is loaded when we have XSMP
actually mute sinks when asked for i, add new function pa_sink_suspend_all
actually mute sinks when asked for i, add new function pa_sink_suspend_all
fix muting for sink inputs
use pa_source_suspend_all/pa_sink_suspend_all for suspending all sinks/sources
bump protocol revision and soname of libpulse
add protocol support for muting sink inputs and suspending sinks/sources
add new commands suspend-source, suspend-sink
set CLOEXEC on more fds
add new tool pasuspender which temporarily suspends all sinks and resumes them later again
don't fail if no pa is srunning
fix an awful race condition when handling data requests
add fedora-snapshot target
add pa_truncate_utf8() function for truncating a string and guaranteeing it stays valid UTF8 afterwards
truncate service names if necessary, include user name in service string
only suspend device when server is local
Keep CAP_SYS_NICE not only in PERMITTED but also in EFFECTIVE capset
seperately get high nice level and acquire realtime sched
never stay root after startup, even if we don't have capabilites
use realtime scheduling for ALSA and OSS driver threads
modernizations
add more PA_PTR_TO_XXX macros
add macro for creating static TLS objects
add pa_is_power_of_two() and pa_make_power_of_two() functions
make use of new public function pa_is_power_of_two()
rename a few things in a macro to make name collisions less likely
add monotonic clock abstraction pa_rtclock
add facility for managing realtime signals
add new realtime event loop abstraction which precise time keeping by using hrtimers on Linux, if they are available
add test program for pa_rtpoll
add rtpoll, rtclock, rtsig to Makefile
add check for ppoll()
add new option to pa_core stating whether we are running as high prio process
check pa_core::high_priority before becoming rt thread
hide rtpoll-test from svn
add message about hrtimers, and initialize pa_core::high_priority
add missing #include
make pa_make_power_of_two() and pa_is_power_of_two() inline functions
add missing include
add convenience functions to hook up pa_fdsem and pa_asyncmsgq to an pa_rtpoll; add pa_rtpoll_item_get_userdata(), on EINTR/EAGAIN, reset revents; automatically destory left over items
reverse hrtimer check, add missing #include
port alsa driver to make use of new pa_rtpoll object
support absolute, relative and periodic timers in pa_rtpoll
minor cleanups
port remaining sinks to pa_rtpoll
fix minor typo
add a copy of the speex resampler to our sources
build speex resampler tiwce, once for fixed point, one for floating point
add a small speex wrapper so that we can include both the fp and the fixed-point resampler in the same binary
a couple of modernizations; parse RE sample types properly
fix a bad memory access when destructing pa_memimports
big resampler rework: support integer-only resampling, support speex resampler
make speex resampler the default
Copy resampler from ffmpeg into our sources
add makefiles to speex/ and ffmpeg/ to easy compilation from emacs
make ffmpeg resampler actually work
include ffmpeg resampler in build
lower suspend timeout to 1s
enable -ffast-math for gcc
make floating point speex resampler the default
Add option --dump-resample-methods to list available resampler implementations
drop check for gid < 500, since this isn't really a security improvement, re: #111
add new PA_SINK_CAN_SUSPEND/PA_SOURCE_CAN_SUSPEND flag
make passing a code pointer to pa_asyncmsgq_get() optional
add pa_timespec_reset()
add an assert()
fix pa_memchunk_make_writable(), make memchunk functions return the memchunk they modify
add new function pa_memblock_ref_is_one()
move queue processing code into pa_thread_mq
modernize and make use of a static flist for allocating idxset entries
reorder initialization of pa_core variables
Lots of assorted minor cleanups and fixes:
port module-combine to new core
- fix suspend handling
replace a pa_assert() by an pa_assert_se()
add two new functions pa_make_path_absolute()/pa_getcwd()
minor reformatting
make sure that we make include paths absolute before calling chdir()
add pa_channel_position_to_pretty_string() for usage in pavucontrol/pavumeter
add pa_channel_position_to_pretty_string() to header
add a couple of macros for memory page alignment
make use of new memory page alignment macros, reindent
make use of new PA_PAGE_SIZE macro
add new pa_will_need() API for paging in memory
add new API pa_memblock_will_need() and make use of PA_PAGE_SIZE macro
add new pa_memchunk_will_need() API, similar to pa_memblock_will_need()
make use of pa_memchunk_will_need() before handing sample cache audio to the RT threads
Don't set RLIMIT_MEMBLOCK to 0 on startup. Retain 4 pages
fix build for dbus < 1.1.1, re #126, patch from Marc-Andre Lureau
make argument to pa_memchunk_will_need() const
fix dbus version check for dbus_watch_get_unix_fd()
Allow compilation without libsamplerate; based on patch from Marc-Andre Lureau; re #125
add missing configure.ac part of the libsamplerate patch from r1753, re #125
make libpulse-core a noinst lib, because it does not have yet a stable API and won't get one anytime. Also, don't install its header files
actually define HAVE_LIBSAMPLERATE with AC_DEFINE
add new API function pa_resample_method_supported() which tests whether a resampling method is supported. Fix building with libsamplerate enabled
only list supported resampling methods when --dump-resample-methods is executed
header file cleanup
add a new module module-default-device-restore which automatically saves and restores the selected default device. Enable it by default.
actually add source code of module-default-device-restore
When in PA_STREAM_AUTO_TIMING_UPDATE mode, delay completion of initialization until we have the first timing data
initialize libltdl for multi-thread support
drop initial libtool_lock() call since this is a debian-specific borkage
add a few missing files for make dist
create config.rpath to fix build on fedora
if available, use native gcc atomicity builtins
fix a couple of compiler warnings
detect whether gcc atomic builtins are available
add native amd64 atomic int implementation
update libltdl copy
explicitly test for the availability of dbus_watch_get_unix_fd() before using it. The previous version-based check didn't work anyway since the constants checked for weren't set.
update default config:
downgrade realtime group membership warning to 'info' at be a little bit more elaborate
fix copynpaste error
install libpulsecore again, since libtool otherwise links it statically into every single module
fix an assert when runnig module-oss in record only-mode. optimize allocation of memblocks on playback
don't call pa_source_process_msg() for PA_SOURCE_MESSAGE_GET_LATENCY, since it makes querying the latency always fail
document that the native amd64 atomic ops implementation is incomplete
hide a couple of files
update todo file a little
add pulseaudio logo with text
make sure that the device volume is properly read before we call pa_sink_put() and thus make the pa_sink available
beef up comment
make the memchunk writeable before silencing it
minor cleanup
make sure we send each memblock only once when recording, not twice
simple modernizations: s/assert/pa_assert
add new API pa_threaded_mainloop_in_thread(), update test case for it
s/assert/pa_assert/ modernizations
unify static TLS support, make use of gcc __thread attribute if available
more s/assert/pa_assert/ modernizations
Instead of including config.h from header files, check whether PACKAGE is defined and if not, fail (thus using PACKAGE as a check for inclusion of config.h)
add missing config.h includes
add globally defined PA_PATH_SEP macro, replacing private per-file macros
port client libs to refcnt.h
add 'wait' parameter to pa_rtpoll_run(), if zero pa_rtpoll_runn will only update the struct pollfd but not wait for an event
More s/assert/pa_assert/ modernizations
finish modernizations in pulse/, s/assert/pa_assert/g
more modernizations, s/assert/pa_assert/g
explcitly initialize tls memory to NULL
Rework core-error.c on top of PA_STATIC_TLS_DECLARE, the windows specific parts need to be moved to thread-win32.c
remaining s/assert/pa_assert/ and refcnt.h modernizations
on systems where we know that POSIX shm is mapped to /dev/shm, add the ability to cleanup stale SHM segments. (Right now only Linux)
consolidate close() calls to pa_close(), and make sure on every occasion that we handle failures of close() sensibly
add new pa_pipe_close() API to close two fds at the same time
change pa_modargs_get_channel_map() to take an extra argument for specifying the name of the modargs attribute to parse
reindent, and s/assert/pa_assert/g
add missing config.h inclusion
extend rtpoll API to allow registration of arbitray functions to be executed in the event loop. Add priority system for specifying the order of these functions.
make newer gcc shut up
fix two typos in reference count handling
call dbus_shutdown() before exiting, to make valgrind output more useful
add two new macros PA_ONCE_BEGIN and PA_ONCE_END which allow usage of pa_once without declaring a function to be called
explicitly destory TLS data before destroying TLS
simplify rt loops a bit by moving more code into pa_rtpoll. It is now possible to attach "work" functions to a pa_rtpoll_item, which will be called in each loop iteration. This allows us to hide the message processing in the RT loops and to drop the seperate sink_input->process hooks. Basically, only the driver-specific code remains in the RT loops.
Move attaching/detaching from a pa_rtpoll into pa_sink proper, remove it from module-combine
count corked streams per sink/source and make pa_sink_used_by() return only the number of streams that are not corked. Introduce pa_sink_linked_by() returning the number of streams connected at all. This will allow suspending of sinks/sources when all streams connected to a sink are corked.
trivial typo
add frame alignment APIs; don't require memory to be writable when silencing it (required of the mmap modes drivers where the hw data needs to be silenced, although it is not writable to others)
be a little bit more elaborate on the reason why we drop to software volume control if hw is not featureful enough for us
add missing header file changes for frame alignment apis
properly define MAX/MIN macros
* add a new resampler "copy" which is does not change sample rates but copies data unmodified from input to output.
add new API pa_mempool_block_size_max() to query the maximum tile size
split memblocks into multiples of the mempool tile size
add a "length" argument to the seek functions, as an optimization to request a certain block size if any data needs to be generated. this is merely a hint.
add a new module module-remap-sink which can be used to remap the channel maps of an already existant sink. one use case is to create a virtual sink that redirects stereo data to the rear speakers of a surround card.
use gcc const and pure function attributes wherever applicable
add proper boolean type pa_bool_t
use priority inheritance on mutexes where applicable
Add a special ltdl .so loader that avoids lazy frelocations during runtime
add missing initialization
on Linu disable lazy binding altogether
once.c is no longer POSIX specific. Since it is now considerably more advanced than it used to be, use it on windows, too
drop a couple of WARNING prefixes in log messages, since we have pa_log_warn anyway for marking warnings especially
Rename pa_strsignal() to pa_sig2str(), since we return the symbolical signal name, not a human readable string. This follows the Solaris API of sig2str() a bit. Also, add all remaining signals to the list of signal names.
fall back to plughw: if hw: doesn't work
hide sig2str-test
add a locale-independant pa_atof() implementation
print a message when we fall back on plughw
add LADSPA sink than can be piggy-backed ontop of another sink
actually close the alsa device before we try to reopen it as plughw
port module-rtp-send.c to lock-free core
If PTHREAD_PRIO_INHERIT mutexes are not available fall back to normal mutexes
make sure we don't call pa_source_post() for a monitor source after it was unlinked
bug fixes for module-rtp-recv
add two missing header file inclusions
add new pa_socket_udp_low_delay() API
make rtp send socket low delay
lower SO_PRIORITY priority to 6, since this is the best we get without being root
make use of pa_bool_t on a few places where applicable; really start work_cb
properly release memblock always abd as soon as possible
fall back to plughw:, if hw: doesn't work, in the alsa source, too
copy free_cb into a temporary variable first, to avoid compiler warning
make O_CLOEXEC, O_NONBLOCK and socket low latency fd ops more uniform: always return void, name them similarly, only pass a single fd
fix check for lrintf, make resample2.c again identical to upstream ffmpeg
fix trivial typo
make sure we initialize thread private data before we move our ghost sink to the rt thread, not after
render new data always in the master sink's thread, fixing missing locking
maintain the attach status in a boolean variable 'attach' accessible from the IO thread for sink_inputs/source_outputs
rework module-combine again
properly detach/attach when moving sink inputs
don't segfault when the master changes
add CLAMP macro
clamp sample data to -1 .. 1, before passing it to the plugin; if a control port data specification is left empty, initialize with the default value of the plugin
allow _unlink() functions to be called as many times as people want, even before _put() was called
add test program for the resampler
make use of byte swap builtins of gcc if they are available
fix selection of working format
- rework volume adjustment code to not require fp
rework a couple of sample type converters, to actually work
prefix by order macros with PA_
include the name of the master sink in the name for piggy-backed virtual sinks
minor optimization
use O_NOFOLLOW when creating PID file, to avoid symlink vulnerability
use O_NOFOLLOW when creating lock files, too
instead of using the mixer ioctl()s on the dsp fd, open a seperate fd for the mixer. This allows us the keep the mixer fd open while closing the dsp device while suspending.
drop the PA_SOURCE_CAN_SUSPEND and PA_SINK_CAN_SUSPEND flags, since they were a bad idea in the first place. All sinks/sources are now *required* to handle suspending in one way or another. Luckily all current sink/source implementations handle it fine anyway.
don't count streams using the monitor source in pa_sink_used_by(), because this would disallow suspending a sink ehn an rtp stream is connected
fix stream corking: ignore pa_sink_input() when we are in corked state
add hooks for name/description changes of sinks/source and streams
rework zeroconf service publishing, to use synchronous hooks instead of asynchronous subscription events. Don't push autoload entries anymore.
fix IDLE vs. RUNNING state handling of sinks/sources when changing cork status for streams
* add new state changed hook for streams
only post data into the monitor source when it is not suspended
* decouple suspending of monitor sources and their sinks
fix suspending in module-combine.c
fix make dist
work around newest open() magic in fedora glibc
make sure when can shutdown PA cleanly without segfault
fix build with compilers that lack __thread
Use Linux eventfd() if kernel supports it
speed up semaphore allocation with an flist
don't free silence memblocks that don't exist
only do IO if we are RUNNING or IDLE, but not when we are in INIT
Allocate rtsigs from back to front, to avoid clashes with other libraries makeing use of rtsigs
use the full range of RTSIGS for our stuff
Move the poll() call outside the #ifdef checking for ppoll, since we want the poll in all cases. Prior to this change the check for negative return values of poll/ppoll was never actually executed when ppoll() was available
rework module-combine once again. We now run the data generation always in a seperate thread. This should help use to avoid all the awful race conditions we had in previously
treat timer_enabled like a real, grown-up boolean variable
fix silence initializer for alaw and ulaw
fix trivial typo
Fix race condition between IO thread creation and pa_sink_put(). Move activation of rtpoll fds when we change the state INIT->IDLE.
Move request size handling into pa_memblockq, function pa_memblockq_pop_missing()
update native protocol to make use of pa_memblockq_pop_missing
fix poll.h check, bad boy ossman broke
Fix build; change return value of pa_rtclock_hrtimer() to pa_bool
add new API function pa_timeval_store()
fix build
s/timespec/timeval
add missing poll.h inclusion
add missing poll.h inclusion
add missing poll.h inclusion
fix url
Properly handle if ALSA sends us an POLLERR event, this should allow us to survive a system suspend cycle better
add interleaving/deinterleaving APIs
minor fixup
Port JACK sink module over from old core
enable jack sink in Makefile
also port over JACK source to new core
properly copy error string
add definition of PA_USEC_PER_MSEC
add better time interpolator: use linear regression to determine gradient from
fix alsa mmap initialization bogosity, discovered by Jyri Sarha
hide smoother test
add pa_timeval_load() API
add pa_rtclock_usec() API
add missing pa_smoother destructor
modernize pa_iochannel a bit, add pa_iochannel_get_send_fd()
add ability to "pause" the input time temporarily. don't accidently overwrite variables we still need.
minor fixups, to make the test more deterministic
minor fix to make gcc shut up
minor cleanup
don't use SIGRTMAX, for compatibility with valgrind which apparently uses this signal
port module-esound-sink to new core
don't use errno on EOF
fix error handling
Merge r1473 from trunk (mixer ioctls on /dev/dsp)
Merge r1503 from trunk: Make -no-undefined actually work (and fix up error found by it).
Merge r1505 from trunk: Make sure we link to the core to get all symbols.
Merge r1504 from trunk: Solaris hides inet_ntop in nsl
Merge r1502 from trunk: Move pthreads detection as it gets confused by things in LIBS.
merge 'lennart' branch back into trunk.
add missing dependency on socket-util
make speex-float-3 the default resampler
add new pa_readlink() API
make use of new pa_readlink() where applicable
use real path of binary instead of /proc/self/exe to execute ourselves
properly deal with time pausing
downgrade a few log messages
bring back module-tunnel, yay!
fail on name clash
export pa_namereg_is_valid_name()
publish dns-sd subtypes to allow distinction of virtual, hardware and monitor sinks/source
add new module module-zeroconf-discover
add new API pa_strlist_reverse()
reverse server order for PULSE_SERVER x11 property, to follow order in which modules are loaded
we don't want to include assert.h anymore
make gcc shut up a bit more
ignore network sinks/sources
don't try to send pause request before our stream is properly set up
don't announce monitor sources
keep track of configured tunnels and make sure to unload them when they disappear from zeroconf again
deal properly with signals interrupting us when we wait for data from gconf helper
remove libltdl from SVN
initialize userdata struct with 0
rework the tunnel naming scheme, and make it follow the description changes of the underlying devices; never check for tagstruct eof, to ease later extensions
ignore updates not relevant to us
rename stream names too, when the sink name changes
handle tcp4: prefix for server specs correctly. (Closes #136)
rename 'length' parameters in the API to 'bytes', to make their unit clear
make make distcheck pass
make sjoerd happy: include ChangeLog built from svn logs in tarball
bump sonames
save and restore errno in the sig handler
add new function pa_yes_no()
fix comment
make the bool config parser actually parse bools
more pa_boolization
pa_boolize the client config
add nice and rtprio resource limit support; make rtprio and nice level to use configurable; some minor updates
save and restore errno in sig handler
add new option --realtime
drop rt scheduling before we start our helper process
make rtprio and nice level actually configurable
make disallow-module-loading config option work again (original patch from Diego Petteno)
add missing pthread libs
comment the library versions a bit
Add linker version script to hide non-ABI stable symbols in the client
Properly terminate pa_readlink() strings. Patch from Sjoerd Simons. Closes #149
add eventfd syscall nr for arm; patch from Sjoerd Simons; Closes #150
pa_boolization
fix two alignment issues found by the debian buildd gcc on sparc
add a man page for the pulseaudio binary. More will follow.
add a couple of more man pages
minor cleanups of --help texts
complete pactl man page
add man pages for padsp, pabrowse, pasuspender
warn if the sound server is not local
add remaing man pages
strip most comments from the default configuration files, since the man page is now more elaborate and we don't want to maintain those docs redundantly at two places
parse the pasuspend argument like any other boolean in PulseAudio
add support for likely()/unlikely() type macros
add PA_CLAMP_LIKELY and PA_CLAMP_UNLIKELY macros
add a few missing macro definitions
add missing #include
fix CLAMP_LIKELY/UNLIKELY definition
add support for 32bit integer samples
.la files for modules can probably be removed safely on all archs now
remove PA_CLAMP_LIKELY macro because it doesn't really make sense.
replace a few CLAMPs by PA_CLAMP_UNLIKELY
optimize mixing code a bit. Add mixers for S32LE, S32BE, ULAW, ALAW and FLOAT32BE. Add volume adjusters for FLOAT32BE, ALAW, ULAW.
minor typo
tag modules that may only be loaded once at most especially, and enforce that in the module loader
add a simple fully-automatic fully-linearupmixer/downmixer and enable it by default
add new function pa_strnull() to simplify passing null strings to non-linux printf()
pull code for starting helper processes out of module-gconf, clean it up, and stick into a new API pa_start_child_for_read()
Port module-gconf to make use of the new API pa_start_child_for_read()
add new fun module that automatically mutes your audio devices when you leave with your bluetooth phone, and unmutes when you come back
fix loading of load-once modules if no other modules was loaded before
Completely rework ALSA device selection code: choose the device to open depending on the requested number of channels and channel map. In most cases it will now suffice to set default-channels=6 to enable 5.1 sound for all devices that support it
increase the pacmd timeout a bit
don't touch RLIMIT:MEMBLOCK by default. This should improve out-of-the-box comaptibility with JACK
don't fail if the bt-proximity-helper is not built
add array size to increase chance of detecting missing updates
Rework ALSA mixer channel detection code. This time we actually care about the channel names the ALSA mixer exports for us
add missing pa_boolization
use a free list for allocating reply_info structs
use a free list for allocation pa_operation objects
use a prio inheriting mutex for the threaded mainloop, to ease writing of RT clients
add interface to PolicyKit
build PolicyKit support
detect whether PolicyKit support is available
add API to allow runtime reconfiguration of memblockqs
add a couple of new opcodes, and document the versions the opcodes where added
add short version history of the PA protocol
minor typo fix
- Check process name when dealing with PID files
increment api and protocol version
when speaking to a client with a version < 12, hide S32 sample specs, and make them appaear as FLOAT32
update man pages a bit
bump version and soname
Tagging release 0.9.8
update speex resampler with newer snapshot from Speex SVN
fix uploading of samples into PA. Problem discovered by Colin Guthrie
make sure to create ~/.pulse before using any configuration file from it
add new endianess macros for FLOAT32
add new pa_mutex_try_lock() API
rearrange #includes
Add new subsystem for applying envelopes (such as volume ramps) to audio signals
add new property list implementation
hide proplist-test
wrap speex_resampler_reset_mem()
add API for resetting allocated resamplers
add new function pa_proplist_contains()
convert argument to boolean value before passing it on to __builtin_expect in PA_LIKELY
use __BYTE_ORDER macro for detecting byte order, as suggested on http://unixpapa.com/incnote/byteorder.html
prepare 0.9.9
fix CVE-2008-0008.patch
bump revision
deal with a possibly failing pa_channel_map_init_auto() correctly
Improve compatibility with applications which like to pass invalid strings to the libc functions we overwrite, by handing directly to the original function. Patch by Colin Guthrie and Gustavo De Nardin, Closes #227
print pa version id each time we start up, so that it is easier to identify the version people are reporting bugs again
look for timer_create in librt, Closes #210, patch supplied by matthijs
explicitly recommend the usage of -- in the pasuspender command line, Closes #203
allow compilation on systems that lack POSIX shared memory. Patch from matthijs, closes #200
only call pa_ltdl_done() if we called pa_ltdl_init() before
change policy file to not show polkit auth dlg by default
work around solaris printf %s and NULL string brain damage
create glitch-free branch
really create glitch-free branch
commit glitch-free work
commit glitch-free work
commit glitch-free work
commit glitch-free work
commit glitch-free work
remaining bits and pieces
add proper arm atomic ops support, patch from Jyri Sarha
Abort instead of cleanly exiting, so we can obtain a core dump and find out
add vendor data to pk policy file
rename polkit policy file to org.pulseaudio.policy to follow upstream guidelines
modernize polkit code a bit, use new functions from pk 0.7 instead of our home-grown ones
Attempt to resolve the multilib conflicts by getting all the config files
Double maximum sample size for some overly huge samples some distros ship
make loading of a few more modules non-fatal
create branch for 0.9.10
bump revision
merge r2078 from trunk
merge r2074 from trunk
merge r2073 from trunk
merge r2075 from trunk
merge r2076 from trunk
merge r2077 from trunk
merge r2079 from trunk
merge r2081 from trunk
Enable per-user esound sockets by default. Esound CVS already enables this by default, and all sane distributions ship a patched esd anyway. And those which do not should get a life and start patching esd
copy originial l2ping license from bluez into bt helper
merge r2083 from trunk
merge r2145 from trunk
merge r2084 from trunk
merge r2090 from trunk
merge r2091 from trunk
remove a redundant if check
merge r2092,r2093,r2094,r2152 from trunk
merge r2095 from trunk
merge r2096 from trunk
merge r2097 from trunk
merge r2098 from trunk
merge r2104 from trunk
merge r2105 from trunk
merge r2106 from trunk
merge r2107 from trunk
merge r2108 from trunk
merge r2109 from trunk
merge r2110 from trunk
merge r2111 from trunk
merge r2112 from trunk
merge r2113,r2214,r2115 from trunk
merge r2116 from trunk
merge r2117 from trunk
merge r2127 from trunk
merge r2128 from trunk
merge r2129 from trunk
merge r2130 from trunk
merge r2131 from trunk
merge r2132 from trunk
merge r2133 from trunk
merge r2134 from trunk
merge r2146 from trunk
initialize gconf module before we publish our X11 credentials -- because gconf might cause network support enabled in the first place
merge r2179 from prepare-0.9.10
properly notify clients about suspended state when moving source output streams. Closes #244. Patch from slicer
work around yet another solaris braindamage
Fix ioctl() definition for solaris compat. Patch from yippi. Closes #253
actually set lennart to the user name, not the group name. Set lennart too.
if we are run as root, always use 'root' as username, regardless of any env vars
don't segfault when module-tunnel is used without a sink_name/source_name parameter. Closes #197
don't fail on init if the default device does not exist and .nofail is active
merge r2187 from trunk
bump soname
require autoconf 2.60 since we use AC_PROG_MKDIR_P
fix compiler warning
avoid name clash with libc's remove() function
make pa_drop_caps() abort on failure
rework pa_assert_se() to make sure it never gets optmized away, even if NDEBUG is defined
fix buildsystem to provide pa_log() in all binaries
merge r2182 from prepare-0.9.10
merge r2183 from prepare-0.9.10
merge r2184 from prepare-0.9.10
merge r2185 from prepare-0.9.10
merge r2186 from prepare-0.9.10
merge r2187 from prepare-0.9.10
merge r2190 from prepare-0.9.10
merge r2189 from prepare-0.9.10
merge r2191 from prepare-0.9.10
merge r2192 from prepare-0.9.10
merge r2193 from prepare-0.9.10
merge r2194 from prepare-0.9.10
merge r2195 from prepare-0.9.10
merge r2136 from prepare-0.9.10
update copyright year
fix caps stuff for crazy people who disable caps
catch up with trunk HEAD (i.e. 2118:2213)
- deprecate autoload stuff
mark libpulse-browse as obsolete
drop support for periodic timers, cleanup code a bit
propery calculate min_avail in frames instead of bytes. don't use device_id= parameter in alsa modules if parameter wasn't specified
add utility functions to dump alsa PCM state
fix bug where we silently dropped data that didn't fit into one mempool tile
call snd_pcm_hwsync() expclicitly before we access any of the status fields, since this seems to be necessary. try to find the right mixer device via the card index
include proplist.h in doxygen docs
bump protocol version
add new latency argument
export both min and max latency that is configured for a sink; add API for querying the requested latency of a sink/source from the main thread
show configured latency and its ranges
init min/max latency properly; fix avail_min updating
remove doxygen \since tag for API changes older than 0.9; properly implement new latency query APIs
implement server side of new sink/source reconfiguration commands
add new pa_proplist_setf() API function
add new describe-module CLI command
move gccmacro from pulsecore/ to pulse/
fix proplist serialization
add new API pa_rtclock_from_wallclock()
increase version of required ALSA to 1.0.16. check for gdbm
add new module module-device-restore
add gccmacro.h to doxygen docs
fix bad memory access when initializing client proplist
remove gcc macros from cdecl.h because we have them in gccmacro.h now
add new API function pa_timeval_add()
fix bit depth guarantee for pa_usec_t
add C++ safety to header file
remove misplaced PA_GCC_PURE
mark autoload functions as deprecated
make use of new alsa SND_PCM_NO_AUTO_xxx flags; redirect alsa errors to normal PA log system
redirect alsa errors to normal PA log system; export buffer settings in device props
don't use fqdn if we don't have to
fix linker warning macro code, move pa_strnull() to core-util.h, move PA_LIKELY definitions here from gccmacro.h
don't print 'signal' each time a rtpoll poll() call is canceled
update list-xxx commands a bit
don't fail if a signalled writability of STDOUT is no longer true when we try it because some other thread already wrote something
make shm magic marker compat with multiarch systems where 64bit and 32bit processes might share SHM areas
add new PA_GCC_PACKED macro
mark shm marker struct as packed, to guarantee identical sizes between archs
fix packet formatting for a few commands
fix help string for volume commands
add new pa_get_state_dir() function, move pa_strnull() here
properly initialize ->memblockq
dump all info we know about sinks/sources/... in pactl
register sink/source name as first step when creating a new sink/source so that we can hand the valid name string to the hook functions; se tup props for monitor sources correctly; fix implicit flag setting logic
s/pulsecore\/gccmacro.h/pulse\/gccmacro.h/
add missing 'break's in switch
add _cb suffix to _max_rewind function like with all other functions, too
make sure to clear all queued RT signals before arm a new timer
properly ask the sink to rewind on new sink inputs and when they disappear
the pointer to rewind() may actually be NULL
define PA_xxxSEC_PER_yyySEC for usec, too
add new rtstutter tool which can be used generate artifical scheduling latencies in the OS to trigger buffer underrun events in your software. it's an awesome debug tool for glitch-free; also move test programs from automake's check_ back to noinst_ to make sure it is built everytime Lennart presses F9 in his emacs
print a message on xrun
add new API function pa_memchunk_memcpy()
add new silence memblock caching subsystem
remove debug messages
add new pa_pstream_get_shm() API, rename pa_pstream_use_shm() to pa_pstream_enable_shm(); pa_bool_t-ization
follow pa_pstream_use_shm->pa_pstream_enable_shm rename
add lower boundary for artifical latencies
increase the default pool size to 16MB because we now need to keep a lot more memory around due to glitch-free.
split user supplied data in multiple memory blocks if necessary to fit in one mempool tile. If the caller supplied a free_cb and we use shm it's better to copy the data immediately to the shm region instead of keeping it around as user memblock
update to recent changes of proplist api
we have not periodic timers anymore
fix for new location of gccmacro.h
maintain a global silence memblock cache
Big pile of dependant changes:
rename sink_input->rewind to process_rewind() and set_max_rewind to update_max_rewind()
drop a redundant pa_init_proplist(), properly set MEDIA_NAME property on stream, not on context
use the sink description instead of the name to choose the description for the monitor source
initialize properties for ALSA sinks/sources more elaborately, re #277
fix C++ compat
improve dB volume calculation
properly initialize memblock->is_silence for imported memory blocks; make is_silence and read_only a bit field
- Change meaning of special values of latency request: 0 -> "minimal latency, please"; (pa_usec_t)-1 -> "don't care"
make sure the client buffer has space for 2*minreq+tlength. Explain why
implement --process-time
add new function pa_alsa_recover_from_poll() to merge common core from module-alsa-sink and module-alsa-source
if no latency was configure for a sink/source, fill in the max latency automatically
if no timer was armed, we don't need to disarm it
some beautification updates, show msec instead of usec everywhere
show configure latency metrics
* don't increase tsched_watermark on underrun without limits
do not fix automatic buffer attrs anymore, the new protocol version doesn't need this anymore and it creates more problems than it solves. Also drop the initial timing info query. Correct programs shouldn't depend on it anyway
drop a misplaced newline
unify code that fixes up buffering metrics
add new function pa_alsa_build_pollfd() to alsa-util to unify a bit more common code from the sink and the source
add missing header definitions for last commit
respect the resampler's maximum block size to avoid that we get kicked out of the memory pool due to resampling. actually drop data from the delay queue after we used it
pa_bool_t'ization
add new tool 'stripnul' which can be used to drop leading zeros from a file which is useful to do byte-by-byte comparison of what goes in and comes out of PA
Big pile of interdependant changes:
add stripnul to build
fix build for auxiliary modules
fix size of requested_latency
define minimal and maximal wakeup/sleep times; check for underrun condition only once during buffer fillup
save errno before calling free()
a bit of pa_bool_t'ization
make check for $DISPLAY=="" more readable, pa_bool_tization
* Increase history set to 64 to simplify reduction of indexes
strip CRLF line breaks from read CLI commands. This should fix the cli interface for people accessing it via telnet.
add new function pa_sample_clamp()
port pa_sample_clamp() to liboil
don't allow overwriting of callback pointers when we're already dead
check for $PULSE_INTERNAL before enabling padsp
minor reformat
save and restore errno in log functions
change pa_rtpoll_set_timer_absolute() to take a pa_usec_t instead of struct timeval
install gccmacro.h properly, drop unused core-def.h file
parse boolean parameters as boolean instead of int wherever applicable. add new function pa_cli_command_execute_file_stream()
some minor updates
move unlinking code to operation_unlink()
Yes, yet another evil all-in-one commit of intervowen changes. I suck.
don't enable prebuffering if we just call is_readable()
add multiarch paths to default LADSPA search path
some modernizations
fix a compiler warning
reorderer a few things
a few modernizations
only send PA_SINK_MESSAGE_SET_STATE if there's still an asyncmsqg around to do so
don't require a module name when resolving a dl symbol
make sure to call sink->update_requested_latency() always when we change latency, same for source
send PA_SINK_MESSAGE_REMOVE_INPUT only when an asyncmsgq is available, reset resampler only when we really need to
follow _unlink() changes from sink-input
when rewinding after the end of an underrun, make sure to rewind as much as we can, so that we deal properly with changed latencies of the sink
explain why a rewind was requested
update LADSPA module for glitch-free moed
fix remapping sink for glitch-free
add a few more asserts, don't allow pa_limit_caps() to fail
rename 'routing' to 'filter'
explain why changing rlimits at this time is safe
define callback function types; allow pa_signal_done() to be called even without prior pa_signal_init()
decrease verbosity a bit
rework the rewinding logic once again, fixing
update to new rewinding logic
beefup proplist handling for sound events
make memchunk/memblockq streams work with glitch-free
fix a memory leak
apparently alsa expects us to free the memory for card names
fix a race condition when tearing down the ladspa/remap sink
double default asyncq size
fix recording
fix some comments
bah, english sucks
make sure the smoother code can deal with incoming data that is out-of-order; start smoothing only when we have at least a configurable number of entries in our history
modify test to generate data events out-of-order
- Fix moving of sink inputs between sinks
fix module-sine for glitch-free
if zero is passed to pa_memblock_new() allocate largest memory block possible from mempool
store peer name in native-protocol.peer property
some fixes to make the simple protocol work on glitch-free again
some fixes to make the esound protocol work on glitch-free again
fix braindead mistake
fix pipe sink for glitch-free
update pipe source for glitch-free, too
don't spam us with wakeup msgs in non-tsched mode
initialize volume properly, set more properties, modernizations
modernizations
modernizations
add pa_memblockq_get_nblocks()
add pa_ulog2()
add PA_REFCNT_INIT_ZERO
add 'stream' as media role
use pa_bool_t
more pa_bool_t'ization
reduce number of allocated memblocks when receiving RTP data by reusing blocks
increase shm size limit, modernizations
increase default mempool size, make mempool_slot an abstract struct because the only fields it defined where actually unused
export a few more properties for RTP streams
add adaptive resampler to the RTP receiver, other modernizations
add pa_vsnprintf()
reduce malloc() usage when logging, to minimize the hit of logging in RT threads. Not complete yet, i18n still uses malloc
Print message when stream started playback, use terminal sequence to clear line when printing that message
export a couple of more functions from libpulse
fix suspend for alsa sink
don't access stream before it is valid
fix moving of record streams
fix up requested latency when we move a record stream
decrease default tsched buffer to 2s to reduce overall memory consumption
follow recent alsa sink changes in the alsa source
update protocol spec
merge glitch-free branch back into trunk
also update PROTOCOL
bump so revisions
declare the explicit type for our PA_xSEC_PER_ySEC constants
fix a minor compiler warning
type fixes for constants
type fixes for constants
fix pa_stream flag checking
fix peak detection pseudo resampler
dump latency metrics for recording streams, too
only unref memblock if there is one
add new function pa_source_set_latency_range(), fix type of requested_latency
link latency of monitor source to sink
use pa_sink_set_latency_range() where applicable
use pa_source_set_latency_range()/pa_sink_set_latency_range() in the ALSA drivers; fix sleep time calculation
use pa_source_set_latency_range()/pa_sink_set_latency_range() in the ALSA drivers; fix sleep time calculation
add another assert to catch sleep time miscalculations easier
fix return value of noop pa_limit_caps()
fix a misplaced assert
fix pa_close_all() to make it actually work as advertised
make sure we don't hit an assert when autospawning
remove a misplaced assert
add a small test program for pa_close_all()
ignore close-test binary
fix daemon shutdown with active monitor streams
add new functions pa_state_path()/pa_get_state_dir(), change return value of pa_startswith()/pa_endswith() pa_bool, add pa_in_system_mode() and pa_streq(); alow pa_unlock_lockfile() without file name spec
add O_NOCTTY
fix a compiler warning
make state and config path for system instance configurable
properly handle if pa_runtime_path() fails
deal with failing pa_runtime_path()
define PA_SYSTEM_CONFIG_PATH and PA_SYSTEM_STATE_PATH for C
move volume restore table from runtime to state dir, fix another compiler warning
move default device from runtime to state dir
move device volume file to state dir
big mumbo jumo of interleaved patches.
fix a minor memory leak
readd name field to upload datagram
fix esound proto to not crash
always expect name field in upload datagram
never hand out more data from a sink input than requested. Otherwise the resampler might run for too long and we get a heavy delay/underrun
allow on-the-fly deleting of hashmap entries wile we iterate through them
update props
fix a compiler warning on ARM due to missing cast, patch from Jyri Sarha
update well-known property list
replace pa_atof() by pa_atod() because floats are lame
add new module module-position-event-sounds for positioning event sounds in space
add new module-console-kit which tracks ck sessions to avoid termination when there is still some session using the PA instance
install auto unload time event only when we have at least one auto unload module
reformat things
move pa_core_check_quit() a bit later
don't exit when the XSM signals us a session exit. instead just unload all X11 modules
add new switch --start to the PA binary which allows starting PA if it is not running yet. In contrast to normal startup an already running PA will not be considered an error. Also, take the autospawn lock so we can guarantee that after this call returns PA is ralive and running
enable ConsoleKit support and positioned event sounds by default
enable auto-spawning by default
merge Colin Guthrie's module-always-sink module, and add priorization to the hook subsystem while doing so.
drop hal inclusion from module-console-kit.c
fix a minor memory leak when unloading m-c-k
sometimes a simple memset() is much faster
consider passing the same argument twice to a module an error, also consider a variable name without following = an error
rearrange things
fix a bad memory access pulsecore/client.c
update todo
avoid division by zero when informing user about unloaded lazy samples in the sample cache
minor modernizations, increase unload timeout to 60s
add missing inclusion
add new functions pa_socket_is_local() and pa_socket_address_is_local()
make use of the new pa_socket_address_is_local() function
add new function pa_iochannel_socket_is_local()
a few modernizations
use new pa_sink_set_latency_range() in null sink
check for packet size on server info data
add Nokia copyright
add pa_memblockq_get_base()
add missing const to a few functions
move pa_init_proplist() to proplist-util.[ch]
make use of the pa_init_proplist() version in proplist-util.[ch]
minor modernizations
rework shm usage negotiation; merge a few pa_bool_t in a single bit field to save a bit of memory; drop redundant implementation of pa_init_proplist()
server side of new shm negotiation scheme; fix a bad memory access
bring module-tunnel back to life
limit the prebuf value by tlength
reset prebuf if it is too large
fix man page xml
if building a man page fails remove the output to make sure that calling make repeatedly will actually work
Add a small README with the new git URLs and stuff
Add a .gitignore file for the src/ directory.
add another .gitignore file, this time for pulse/
add missing gitignore files
get rid of svn $ keywords
remove remaining $
ignore tarballs
add new API pa_channel_map_init_extend() to synthesize a channel map if noone is known
make user of pa_channel_map_init_extend() wherever it makes sense
remove trailing spaces
add new remix= parameter to remap sink
add new function pa_smoother_reset()
add new abstract device class
fix interpretation of remix parameter
Rework module-combine to work with glitch-free core; add new max_request field to pa_sink
Request a rewrite immediately after we have been linked, so that playback starts immediately
allow sinks to be created with max_request initialized to 0, so that the data can be filled in later when attaching to some piggybacked sink
execute detach callback before we change the state to UNLINKED
since the sink is unlinked before the sink input we need to make sure we don't call any function for unlinked sinks from any sink input callback
call the right function in the right context
Don't fail when we cannot determine the lock file path
Properly check for home directory
fix deadlock when resuming oss sinks
support file-based capabilities instead of SUID root for giving PA rights to acquire RT/HP scheduling: setcap cap_sys_nice=ep /usr/bin/pulseaudio
include proplist.h in pulseaudio.h
don't refer to nonexisting pa_stream_read() function
call update_source_requested_latency callback for source outputs only when it is set to non-NULL
Merge branch 'master' of git://git.debian.org/git/pkg-pulseaudio/pulseaudio-upstream
choose more sensible default buffer sizes for old clients
fix return value of pa_namereg_make_valid_name()
call the enum PA_STREAM_NOT_MONOTONIC and make PA_STREAM_NOT_MONOTONOUS an alias for that
fix up monotonicity of input to _get() instead of hitting an assert
fix up if the smoother shall be resumed 'before' it was actually paused
use the bight lighter _silence() instead of _flush() when destructing our little q
comment two functions in memblockq.c
split pa_memblockq_flush() into two flush commands, one which fixes up the read ptr, and one which fixes up the write ptr
properly initialize pa_stream::corked based on the flags
remove redundant check
use the newer name for monotonic/monotonous
make sure to call process_rewind() under all circumstances before we do the next loop iteration
convert to double only once, and make sure we can deal with negative results of -y
unify smoother pause/resume handling in a single function check_smoother_status()
move initialization order of validity bools around a bit
add a FIXME
reorder a few things to get rid of an uneeded comparison
rework logic to request automatic timing updates a bit
some svn->git updates in the Makefile
always forward rewind requests to the sink, and don't abort on nbytes=0
cork/uncork before we ask for the rewrite, to make sure the rewrite actually gets trhough
fix crash when using sync'ed streams
use (uint32_t) -1 to signify default buffer_attr values instead of 0, to allow prebuf=0
fix underrun detection for prebuf=0 streams
fix typo in man page, closes rhbz #447355
some modernizations
save some memory by increasing the dynamic array at a slower rate
rename pa_queu_is_empty() to pa_queue_isempty() to follow idxset/hashmap nomenclatura
some modernizations
rework the flist implementation to halve memory consumption by merging the state field and the pointer in the flist cells
modernize hashmap implementation a bit, reduce memory consumption a bit
halve memory consumption of mempool flist, since we know we cannot have more than n_blocks entries in it
modernize idxset a bit, reduce memory consumption, get rid of pa_idxset_foreach()
save a bit of memory
handle rewind requests
handle rewind requests
simplify handling of rewrite requests
update ffmpeg resampler from upstream SVN
update speex resampler
add additional file when updating speex resampler
ignore ~ files
make sure we call pa_sink_process_rewind() under all circumstances if a rewind was requested before we call pa_sink_render()
add proper update_max_request handler to native protocol streams
get rid of our internal copy of the speex resampler. Instead, link against a system-installes libspeexdsp
try to bypass alsa softvol, since it is broken when used with snd_pcm_rewind()
forward process_msg calls to the generic source handler, not the generic sink handler
fix gconf autoconf check
prepare doxygen docs for 0.9.11
enable exit-on-idle by default
don't drop caps if we are started as normal root user
make missing gdbm fatal (spotted by Betelgeuse)
bump alsa dep to 1.0.17
don't break if we fail to resume access to an audio device
allow module-x11-xsmp to be loaded more than once
follow consolekit's recent D-Bus API change, original patch from William Jon McCan
bump api verson
add missing pieces for new startup logic
reset dbus error struct before retrying parsing messages
hide start-pulseaudio-x11
fix destruction of dbus modules: make sure we don't leave filter function registered after unreffing the dbus connection
make module-hal and module-ck live together in peace
Pierre Ossman (422):
Creating branch for patches from Pierre Ossman
Big cleanup of the build structure.
Since README is generated conditionally we must make sure there are no
Remove unused automake conditional.
Check for OSS by looking for its header. Win32 isn't the only platform
Abstract the gettimeofday call into a utility function to ease porting.
Remove unnecessary dependency on timeval definition.
We have a generic function for extracting the filename, let's use it.
Fallbacks for systems that do not have getaddrinfo(). Does not handle
Glob is not present on all systems.
SIXCPU isn't present on all platforms. Replace cpulimit with dummy functions
Syslog is not present on all platforms.
To access the new pa_gettimeofday() we need to include util.h.
The standard declares some signals as optional. Make sure we handle
Remove any warnings about incorrect type to setsockopt() (char* vs void*).
AF_UNIX and PF_UNIX is more portable than the _LOCAL equivalent.
Handle when the platform doesn't have UNIX sockets.
PIPE_BUF has nothing to do with the esound buffers.
Fix some compiler warnings about unused variables.
inet_ntop can't be found on all platforms. Do a stupid emulation when
Fix warning.
Two variables with the same name causing corrupt strings.
Esound latency should not include buffer length. This added an extra second
Don't include sys/socket.h in the header when we do not need to.
Fix correct type.
Old kernel headers didn't define the input_id structure. Therefore we cannot
Fix printf string.
Make sure the array is never too small.
Compiler warning about uninitialized variable.
SIGQUIT is an optional signal.
Fall back to signal() when sigaction isn't supported.
There was a race condition here that caused latency calculation to fail
Handle platforms that do not support the UNIX user/group database.
Fix indentation.
Remove ftruncate test since we're not doing anything with the result.
Fix test for mkfifo(). HAVE_MKFIFO is only generated as a config.h define by
Emulate poll() through select() where needed.
Use pa_get_path_filename() instead of duplicating code.
Make sure all socket headers are protected by ifdefs.
Protect sys/wait.h with an ifdef.
We need explicit actions here.
Add possibility for linking semi-static executables (libtools definition
No need for conditional generation of symdef files.
Add option to select which modules get linked in during static builds.
Make it possible to disable caps support since it breaks fully static
ifdef-protect setpgid and setsid.
config.h should always be included so that necessary fixes can take effect.
Stub uses socket defines so include the header.
PATH_MAX is defined in limits.h.
No regexp funtions are used in this file.
Protect getuid() with an ifdef.
c was used before it was assigned.
ctime_r() is not available everywhere.
Replace paths with defines.
Protect sched.h with ifdef.
Protect sys/resource.h with an ifdef.
Protect pthread.h with an ifdef.
Port to Windows. This is mostly glue layers for the poor POSIX support
The Windows sound interface module.
Solaris support.
Ignore windows exe:s.
Use autoconf detected define for getgroups() type.
Reversing incorrect commit.
Make sure the data gets endianness conversion.
Make the tagstruct handling safe on machines with alignment restrictions.
Condense winsock includes and defines into one header.
Generalise lstat fallback.
Merge with trunk.
Update comment for pa_lock_fd() to reflect that locks are mandatory
Put inet_ntop() emulation in a seperate file.
getopt_long resides in libiberty on many platforms.
Move library checks to a separate section and make sure it's before
Static libs bork the creation of dlls and AC_CHECK_LIB isn't very bright,
Make sure socklen_t is defined.
Add some required headers.
Unfortunately Windows has two different values for EBADF depending on
Add needed error code.
buf is needed on Windows aswell.
Accidental use of a swapped int.
Store previous reported time in order to assure a monotonic clock.
Make sure the caps header check can also be disabled.
Handle Windows paths when normalizing authkey path.
Our makefiles work just fine on older automakes (1.7 tested). Let's keep
Remove the old compiler flag test now that we have a new shiny one.
Many (FSF and Sun at least) have interpreted the C99 standard in a way
If the card couldn't do duplex when required we would incorrectly return
Used 0 as an invalid fd. Changed to -1.
Some drivers (via82xx) doesn't start recording until we read something.
Some crappy hardware generate noise on the output when reading input. To
Under win32 we freed the wrong pointer causing a segmentation fault.
We need a logical, not an arithmetic shift here. So use unsigned types when
Ugly hack to get around Solaris particularly brain dead sound system.
Open the device in non-blocking mode.
Fix so that peer name can be determined on Windows. We do not support console
Use AC_SEARCH_LIBS instead of AC_CHECK_LIBS since it is a lot smarter and
We get the -lcap through LIBS, so no need for CAP_LIBS.
Remove the version number from the module directory. Makes life easier
Print an error message before aborting.
Breaks missing from conversion to a switch statement.
Fixes for the new infrastructure so that the solaris module compiles.
Fixes for the new infrastructure so that the waveout module compiles.
Reverting an incorrect checkin.
Volume adjustment must be done _after_ dropping the chunk since drop will
Use defines and not hard coded values for volume levels. Caused incorrect
Fix endian conversion macros and reformat them to be a bit more readable.
Let's have just one endian conversion macro suite.
Install the new headers for channels and volume.
Fix some new alignment bugs in the tagstruct handling.
Split mainloop_iterate() into three, distinct parts. Allows for more flexible
Add function to "wake up", i.e. interrupt, a running poll(). This is needed
Fix api. Setting volume is done through a pa_cvolume struct, not a pa_volume_t
Reorganised the source tree. We now have src/ with a couple of subdirs:
Move the util libs to the modules section since they're in that directory.
Cleaned up the includes after the restructuring. Indicate which headers are
Make sure that all polypcore headers are installed.
Integrate error routines into libpolyp. Not much point in having this as a
Fix typo in #ifndef.
Fix path to poll.h.
Module needs stuff in libpolypcore.
Ignore generated win32 binaries.
Have a memblock queue on the client side during recording. This makes the
That's a delta parameter, not a size parameter.
Properly clear members during init.
util.c uses some socket functions so we need winsock on Windows.
Remove a debug fprintf that was left in.
Detect support for Solaris (/dev/audio).
Detect support for Windows' waveout.
Add mute switch to todo.
Fixes for the Solaris detection.
Hardware volume support for Solaris.
Fix some warnings by making sure we have the right signedness on things.
Add aligment fix in esound to todo.
Hardware volume support on Windows.
update todo
Remove polyplib-error and polyplib-mainloop for requirements.
Support for setting volume on sources.
Wrong userdata used to init operation.
Hardware source volume support in OSS.
Make sure hardware volume gets a correct initial value.
Wrong function name.
Update hardware volume to a correct initial value.
Add inet_pton emulation for platforms that lack it. Only support IPv4 at
inet_pton expects in[6]_addr structures, nothing else.
Hardware source volume support.
update todo
update todo
Mute switch for sinks and sources. This is independent of the volume
Some new additions were mislabeled as '\since 0.9'.
IGAIN is a better choice than IMIX for source volume.
Hardware sink mute support.
Make local function static.
Call correct function.
Tweak the handling of missing credential support so that we minimise non-POSIX
Wrong variable used for port.
This wasn't supposed to be checked in.
Do an explicit cast to shut up gcc.
Hardware volume support in ALSA modules.
Fix correct default device.
Handle ALSA file descriptors more correctly. This means a bit more overhead,
Get notifications about mixer changes from ALSA.
update todo
Function prototype didn't match actual definition.
Fix some signed/unsigned warnings.
64-bit fixes.
Catch volume update events.
We have both sink and source in this module.
update todo
update todo
typo fix
Handle the new latency protocol. This is just a quick fix and does not
Fix warnings on 64-bit systems.
The tag argument is no longer unused.
Negotiate protocol version between server and client. Will allow smoother
Alignment safe protocol handling in esound module.
update todo
Fix warning caused by missing return in main().
Update module-tunnel to the new protocol.
Tried to get the volume information even upon init failure.
Return the proper error code so that we get a correct error message.
It's safer to set buffer size than to try setting number of periods.
Volume support in tunnel module.
update todo
Fetch sound card name into sink/source description.
update todo
Trying to listen on an IPv6 socket by default and only do IPv4 if that fails
We've already set an initial reference count of 1 so don't count it up again.
The extra stream ref actually did some good. Re-add it, but with some more
We filled the volume with the wrong channel count (we used the input, not
Remember to store the struct with module info.
We no longer guarantee that an operation object is returned. Need to tweak
update todo
Large file support. Polypaudio probably doesn't need it, but it causes warnings
Fix some warnings caused by size_t having varying size.
Some memcpy arithmetic that wasn't removed when doing the redesign to update
Big documentation update. Describe the client API in a more tutorial like
Use the modern Ki/Mi/Gi prefixes to clarify that 1024 is the base.
Clarify behaviour of deferred events.
Fix ALSA fd handling to be compatible with blocking deferred events.
C99 requires explicit marking of integer literals' size.
Avoid including non-portable header sys/poll.h.
We need to emulate sendmsg/recvmsg to support rtp on Windows. Will do
update todo
More fixes caused by Sun's complete inability to follow any standard
Clarify that JACK libs are optional.
Make the probe for RNG sources at runtime since the configure script isn't
Reverse order of IPv6/IPv4 binding to handle systems without IPV6_V6ONLY.
Having constant deferred events isn't allowed and causes problems. Use timers
Win32 needs to have the socket subsystem initialised.
WaveOut needs to have rather large chunks. This is about as low as we can
Minor fixes for the way Windows handles sockets.
Sun's documentation about SIGPOLL on EOF:s is wrong, so use a timer based
Tweaks for the solaris module. The sound system requires complete frames
update todo
Undo invalid automake version requirement.
chown() and chmod() aren't available on Windows.
glibc <= 2.2 has a broken unistd.h, lacking setresuid().
Fall back to software volume if hardware mixer cannot control all channels.
update todo
update todo
update todo
Channel map argument support for waveout.
Channel map argument support for solaris.
Clarify how the automatic channel map is generated.
Zero the fd list since we do a memcmp on it later.
When a control is removed, all bits are set so we need to test for that first.
Windows doesn't have POSIX thread. ifdef out things for now.
We need to read the cookie in binary mode for things to work correctly.
Fix control flow in pa_oss_open(). Also fall back to half duplex when device doesn't
update todo
Use pa_msleep() to get platform independence.
Add stubs for the threaded main loop so that we can compile it on
Do WSAStartup() in the DLL entry routine instead of at context creation.
ANSI codes aren't supported on Windows terminals.
Include log header to get rid of warnings.
Handle pipes on platforms where they are non-existant of broken.
pa_write() should use a const pointer.
Remove some debug code that wasn't supposed to be committed.
Windows support for the threaded API.
Include utf8.h for the validation function.
module-volume-restore uses regexp() so make sure it's only built on systems
Clean up the UTF-8 validation code.
Add function to filter a string of any invalid UTF-8 sequences. User must
Use default channel map for Solaris module. There doesn't seem to be a standard
Add Microsoft's WAVEFORMWATEEXTENSIBLE channel mapping.
Set default channel map system for waveout module.
Documentation for the threaded main loop API.
Update documentation to contain the UTF-8 requirement.
update todo
Move xmalloc to the public side (libpolyp).
Move utf8 to the public part (libpolyp).
Move timeval calculation functions into their own file.
update todo
PATH_MAX needs limits.h.
Don't include util.h from core-util.h as it is not needed by many users.
Missing include of util.h.
And functions for convertion to and from current locale and UTF-8.
Make paplay convert names to UTF-8 before sending to the server.
Convert log text to current locale before passing it on to stderr or syslog.
update todo
Sort source files.
Fix which headers get installed for libpolyp.
Fix some missing headers.
update todo
Wrap strerror() in a function that makes it thread safe and converts the
Fix TLS on Win32 to something a bit more safe and portable (compiler-wise).
Fix some warnings.
Cast size_t to long to be more compatible with 64-bit systems.
Fix stray \
Remove the exceedingly anal warnings. It's impossible to write a non-trivial
Fix warnings.
padsp needs dlsym & co so make sure we get that lib included.
Move libpolypdsp in the makefile to avoid the libtool bug where it must come
Use only the basename of libpolypdsp.so so that it will work on multi-arch
Fix padsp script so that it accepts parameters, setting relevant environment
We only need the so for libpolypdsp.
Wrong prefix used in the padsp script.
Explicitly check version number when determining which fields are in a stream
Returned buffer attr is const.
Fix typos.
Fix the fix_metrics() function so that we don't get a tiny buffer by default.
update todo
Try the ltdl mangled name ourselves so that .la files for modules are optional.
update todo
Add all the preopen libs to the polypaudio binary's dependency list as they
Properly escape the m4 macros and make the code a bit more readable.
Also look in winsock2.h for INADDR_NONE. (solves #18)
Fix AC_CHECK_DEFINE so that we can look in different files for the same
Use AM_ICONV to determine what needs to be done for iconv support. (closes #19)
Handle pretty printing of IPv6 socket names.
Tweak the printing of client connections a bit so that it's more apparent
Make sure our inet_ntop() implementation gets linked into the new users.
Catch the access() system call as some applications do this to test if they
Make a copy of the va_list as vsnprintf() is free to change it.
Make debug output in padsp a bit less verbose. Specifying -d twice will give
Record support.
Creating a stream might take some time, so check that it's in the right state
/dev/dsp should default to U8, not mulaw.
Handle clients that just want to set fragment size (and not count).
Fix the final few occurences of polyp.
Make interpol-test build on Win32 and non-pthread systems.
Check for pthread_yield() as not all platforms have that.
Make sure we do not use pthread_yield() on platforms that do not have them.
Make fix_metrics() exit early so that it doesn't spam the output needlessly.
Warn when applications use SNDCTL_DSP_GET[IO]PTR even when they shouldn't.
Fix handling of the io flags in duplex mode.
Make sure we print the file name we actually use.
Fix typo.
Remove some unused m4 files.
Make sure the win32 default conf gets shipped.
Restore SIGPIPE warning when the platform doesn't have MSG_NOSIGNAL.
Forgot to protect one access to with_creds with an ifdef.
Remove unneeded headers.
Protect platform dependent headers with ifdefs.
Make -1 mean "current group/user" so that some platform dependent calls
Add missing header.
Make sure parse_rlimit is only used when rlimits are supported.
Handle user switch in a more platform independent manner.
Move check for SUID into the caps functions.
Centralise check if we're running as root.
Only warn when running as root and not --system.
Fix incorrect call to nonexistant pa_log_warning().
Get ACL:s to work on Win32.
Use proper @libdir@ in pc.in files to handle x86_64 machines.
update todo
Add an ifdef for when we do not have creds.
Fix call to pa_pstream_send_tagstruct().
Add header for pa_cstrerror().
Fix calls to pa_memblock_new().
Fix missing header for timeval helpers.
Fix detection of page size for non-POSIX systems.
Fix call to pa_memblock_new().
Add missing header.
Fix typo.
Fix detection of shared memory support and proper fallback.
Fix up portability of memory pool handling a bit.
Improve error messages a bit.
Fall back to creating a "normal" memory pool if unable to get a shared one.
Log when there is a problem opening the waveOut/waveIn device.
Fix memory leak in waveout module.
Proceed with connect even when no cookie is loaded. Allows you to connect
Remove silence generation in waveout module.
Remove silence generation in solaris module.
Make the recording a bit more chunky so that we can fit in the pool and have
fix typo
Add missing header.
update todo
Add PulseAudio logo to tree.
We need to have a callback when changing volume or we might deadlock.
Remove check for libatomic_ops library as some systems have no (zero, nada)
Make sure the libatomic_ops lib is included.
Add AO_REQUIRE_CAS as we do.
Also wrap yield functionality so that it can be platform independent.
Make sure libatomic_ops.a isn't included in win32 builds as libtool doesn't
Thread implementation for Win32.
Add pthread_once() equivalent support.
Fix call to pa_mutex_new().
Fix typo.
Use platform independent sleep.
Fix up build structure for platform dependent modules. Also add implementation
Fix debug output for SNDCTL_DSP_SETFRAGMENT.
Stop using x86-isms and use ISO C (oversized shifts are undefined).
No need to create these dirs as they're part of the source tree.
Revert r1398 as it broke the srcdir != builddir patch. New fix that doesn't
Handle when threaded mainloop is freed before it is started.
The OSS spec is unclear what should happen when a reset is requested. Let's
Create branch for lock free memblock implementation.
Revert r1404 and keep it on a development branch until it is fully tested.
Fix some missing line breaks.
Check correct variable for return value. Closes #37.
Support reversed endian floats. (closes #28) (closes #35)
Yet again try to fix the creation of necessary directories when srcdir !=
Make sure we package version.h.in.
Add atomic.h as a dependency at relevant places.
Fix incorrect assert.
Fix silly copy-and-paste error. (closes #45)
Huge trailing whitespace cleanup. Let's keep the tree pure from here on,
Fix error messages for failure connecting streams.
Free stream objects when they've been invalidated.
Report IO error on ioctl() when we're in a fatal error state.
Make sure we report success for SNDCTL_DSP_SETDUPLEX.
Don't abort config loading when the user specific cannot be loaded.
Allow specification of device number.
Make sure we get proper host identifiers.
Add copyright notices to all relevant files. (based on svn log)
Prefix log lines with a character indicating level.
Allow a formatted string in the validation warning.
Add a wrapper around close() to work around Windows' ass backwards way of
Add some debugging output from sample cache subsystem.
Handle when ALSA tweaks our sample spec so much that the frame size changes.
Revert stuff from commit 1431 that wasn't supposed to be there.
Handle suspended alsa devices. Based on patch by ranma. (closes #26)
Don't fail if hal doesn't currently contain any devices. (closes #55)
Pulsecore should be linked into all modules.
Fix some instances where we printed a string without first checking that
Add support for SNDCTL_DSP_SETTRIGGER. (closes #56)
We now use gid unconditionally, so make sure it's defined.
Add support for the poorly documented SNDCTL_DSP_GETTRIGGER.
Support stat() and friends as some programs (audacity) likes to check if
Make sure mixer ioctls work on /dev/dsp aswell.
Move pthreads detection as it gets confused by things in LIBS.
Make -no-undefined actually work (and fix up error found by it).
Solaris hides inet_ntop in nsl.
Make sure we link to the core to get all symbols.
POSIX realtime clock functions are in time.h so make sure to include it.
Monotonic clock is optional so treat is as such.
TIOCINQ isn't present on all systems.
Remove mkdir_p again...
posix_madvise and posix_fadvise aren't present on all systems.
NSIG is not defined by neither C99 nor POSIX so we can't rely on it.
Make sure the header file is only included on linux (as this is a linux-only
Emulate lrintf with simple truncation if it isn't available.
NSIG seems to be more common than _NSIG.
strtof() is a rather recent addition to C. Fall back to strtod() if it isn't
Incorrectly used str2sig() instead of sig2str().
Update module-solaris to new structure.
Replace all references to sys/poll.h with poll.h as that's what POSIX defines.
Adapt rtpoll and friends to Windows by replacing timespec with timeval and
Add stubs when RT signals aren't available.
Assorted minor Windows compatibility fixes for recent code updates.
Platform dependent semaphore implementation for Windows.
module_ladspa used libltdl so make sure it links against it.
Don't call pa_rtsig_configure() when we lack the necessary defines.
Shahms E. King (3):
clean up hal patch to use pa_xnew and timeval compatibility wrappers
add HAL support for OSS devices and capability changes
increase module argument buffer size to prevent truncating names
Sjoerd Simons (4):
Add forgotted #ifdef __linux__ and only use SIGRTMIN if it is defined. Fixes
Implement opcodes in the tunnel modules that were added in version 12 of
Don't send opcodes introduced in protocol versions 12 to clients using protocol
Let bootstrap.sh require version 1.10 of the various autofoo bits. Otherwise things will break during compilation
Tanu Kaskinen (18):
Modified the JACK sink heavily:
Corrected a bogus comment.
Changed PA_SAMPLE_S16_NE to PA_SAMPLE_S16NE in the example code in the Simple API Doxygen documentation.
Correct the parameter positions with the pa_cvolume_set() call.
Fix the assignment of control values by using the right variable for indexing.
Comment typo fix.
Added an assertion for the case when the sink programmer hasn't installed the thread_mq properly.
Fixed PA_GCC_CONST definition.
A couple of comment typo fixes.
Add "support" for plugins that have control output ports, i.e. don't crash on them anymore (the plugins correctly assume that every port is connected to a buffer, so we connect them to a dummy buffer that isn't used anywhere).
Increase the maximum line length of default.pa from 256 to 1024. Load commands of modules that need multiple channel maps may grow rather long.
Downgraded the priority of a message, because it's really quite uninteresting.
Fix the parsing of trailing default values in the "control" module argument.
The previous commit introduced a new bug: giving too many values in the "control" argument wasn't detected any more. Fixed.
Add a missing pa_xfree.
Clarify the explanation of the in_action field in pa_autoload_entry.
Fix setrlimit() return value comparsion.
Fix typo: "now"->"not".
-----------------------------------------------------------------------
--
hooks/post-receive
PulseAudio Sound Server
More information about the pulseaudio-commits
mailing list