Commit graph

1460 commits

Author SHA1 Message Date
Lennart Poettering
1c0690776d make speex-float-3 the default resampler
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1973 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-10-29 08:34:30 +00:00
Lennart Poettering
a67c21f093 merge 'lennart' branch back into trunk.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1971 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-10-28 19:13:50 +00:00
Lennart Poettering
1e12e0ee8d Kill spaces on EOL
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1465 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-29 17:24:48 +00:00
Lennart Poettering
67cb77575f build fix for systems lacking capability suppoort. (Problem identified and original patch supplied by Diego Petteno
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1462 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-28 15:52:13 +00:00
Lennart Poettering
918cacb4f4 Replace AO_xxx usage with pa_atomic_xxx and friends wherever it makes sense
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1459 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-27 20:38:14 +00:00
Lennart Poettering
6a2dffd78a 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.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1458 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-27 16:59:34 +00:00
Lennart Poettering
872018efc8 Minor optimization: read log level character code from array
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1457 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-27 16:37:05 +00:00
Lennart Poettering
d949983845 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
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1456 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-26 23:39:33 +00:00
Lennart Poettering
4d88fcd59d 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)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1455 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-25 20:35:30 +00:00
Lennart Poettering
33304ba118 Fix a DoS with allocating overly large silence buffers. (Identified by Luigi Auriemma (re #67)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1450 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 16:59:03 +00:00
Lennart Poettering
cf925b10e1 Fix yet another DoS vulnerability, also identified Luigi Auriemma (re #67)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1448 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 16:42:26 +00:00
Lennart Poettering
c3b5de77bc fix minor typo
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1447 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 16:30:57 +00:00
Lennart Poettering
f90339528b Fix another DoS vulnerability, also identified Luigi Auriemma (closes #67)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1446 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 16:29:18 +00:00
Lennart Poettering
407a1b6efe fix a DoS vulnerability (re #67), originally identified by Luigi Auriemma
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1445 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 16:24:54 +00:00
Lennart Poettering
16dd5f7872 fix comment
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1438 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-22 23:08:34 +00:00
Pierre Ossman
f6023cb5ee Fix some instances where we printed a string without first checking that
the pointer was valid.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1436 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-03-06 15:47:11 +00:00
Pierre Ossman
6ba21d4a0b Add some debugging output from sample cache subsystem.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1430 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-03-01 17:11:10 +00:00
Pierre Ossman
df47c7b828 Add a wrapper around close() to work around Windows' ass backwards way of
handling sockets.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1429 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-14 12:13:49 +00:00
Pierre Ossman
8bf7943e8e Allow a formatted string in the validation warning.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1428 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-14 09:27:19 +00:00
Pierre Ossman
3016c7561d Prefix log lines with a character indicating level.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1427 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-14 09:26:48 +00:00
Pierre Ossman
06211b7c8f Add copyright notices to all relevant files. (based on svn log)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1426 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-13 15:35:19 +00:00
Pierre Ossman
f65ab1b3eb Don't abort config loading when the user specific cannot be loaded.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1423 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-05 10:26:14 +00:00
Pierre Ossman
521daf6f0a Huge trailing whitespace cleanup. Let's keep the tree pure from here on,
mmmkay?


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-01-04 13:43:45 +00:00
Pierre Ossman
1a460ee40a Fix silly copy-and-paste error. (closes #45)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1417 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-12-04 08:15:06 +00:00
Pierre Ossman
68bcbd2913 Fix incorrect assert.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1416 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-24 09:29:10 +00:00
Pierre Ossman
0ef2d7eb77 Support reversed endian floats. (closes #28) (closes #35)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1412 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-08 13:03:35 +00:00
Pierre Ossman
55c25c657e Check correct variable for return value. Closes #37.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1411 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-08 12:56:26 +00:00
Pierre Ossman
8dc6214276 Revert r1404 and keep it on a development branch until it is fully tested.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1409 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-06 13:06:01 +00:00
Lennart Poettering
d210ebbb09 rework memory block management to be thread-safe and mostly lock-free.
pa_memblock is now an opaque structure. Access to its fields is now done
through various accessor functions in a thread-safe manner.

pa_memblock_acquire() and pa_memblock_release() are now used to access the
attached audio data. Why? To allow safe manipulation of the memory pointer
maintained by the memory block. Internally _acquire() and _release() maintain a
reference counter. Please do not confuse this reference counter whith the one
maintained by pa_memblock_ref()/_unref()!

As a side effect this patch removes all direct usages of AO_t and replaces it
with pa_atomic_xxx based code.

This stuff needs some serious testing love. Especially if threads are actively
used.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1404 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-26 23:50:56 +00:00
Lennart Poettering
5ad143b3ab upgrade refcnt.h to make use of our new pa_atomic_xxx() API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1403 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-26 23:42:08 +00:00
Lennart Poettering
736de36f68 add asynchronous inter-thread notification API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1402 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-26 23:41:20 +00:00
Pierre Ossman
772645922a Fix up build structure for platform dependent modules. Also add implementation
on Win32 for pa_once().


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1395 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-11 07:56:03 +00:00
Lennart Poettering
0e96d8b7bc make pa_mutex_new() and pa_cond_new() succeed in all cases. Similar behaviour to pa_xmalloc().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1389 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 23:55:58 +00:00
Lennart Poettering
d0dcde060b 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.
With the previous code it might happen that an long-running initializing in a once function is not terminated yet when another thread thinks it already is.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1387 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 23:54:19 +00:00
Lennart Poettering
6d532029ea 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
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1386 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 22:59:17 +00:00
Lennart Poettering
3426a399cc implement trival pa_once API based on atomic operations
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1385 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 22:55:51 +00:00
Lennart Poettering
c89cb6a00f add static initializer PA_ATOMIC_INIT()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1384 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 22:54:11 +00:00
Lennart Poettering
ee40a3439f implement a simple lock-free free list
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1382 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 21:05:31 +00:00
Lennart Poettering
bfaa358458 add a tiny wrapper around libatomic_ops: pa_atomic_int_t and pa_atomit_ptr_t.
Reasoning:

This wrapper fixes a few API issues I found with atomic_ops:

 * AO_t is an int, which can be written to with "=". pa_tomic_int_t however is
   a struct which due to type-safety enforces proper access with
   pa_atomic_xx(). (Inspired by the way the Linux kernel handles this)
 
 * AO_load()'s parameter is lacking a "const" 

 * Explicitly choosing the proper memory barrier for each call is very
   difficult and especially hard to debug because most CPUs support only two
   different barrier types which the eight types defined by atomic_ops are
   mapped to. Most other software (i.e. glib, Linux kernel) which provides
   atomic variable access usually do a full barrier in all cases and so should
   we. Eventually we might choose to add additional memory barrier calls, in
   which case we can add special versions of the current function with special
   suffixes.

 * The function names are unnecesarily long

 * Atomic pointer accesses are only supported with manual casts. 

The new pa_atomic_xxx interface borrows heavily from the GLib and Linux kernel
atomicity API, though it is different from both of them.

In addition this abstract API makes it easy to port PA to different atomicty
APIs, if libatomic_ops should ever become out-of-fashion or if the system OS
supports atomic primitives anyway.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1381 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-08 15:43:44 +00:00
Lennart Poettering
791bbd8e0e don't maintain a list of allocated mempool slots, we don't use it anyway
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1380 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-07 20:17:25 +00:00
Lennart Poettering
1728e3ac98 make pa_stream thread-safe: use new refcounting system, protect access using mutexes
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1379 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-07 19:08:19 +00:00
Lennart Poettering
ead67cda48 fix indentation
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1375 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-06 22:19:11 +00:00
Lennart Poettering
6bbfb43f2a add accessor functions for the userdata attached to a pa_thread object
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1371 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 22:15:15 +00:00
Lennart Poettering
3be920d9ae fix pa_thread_is_running() for foreign threads; fix a memory leak for foreign threads
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1370 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 22:04:33 +00:00
Lennart Poettering
8e7c2a3b0c make pa_thread_self() return a sensible pointer on foreign threads
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1368 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 21:28:34 +00:00
Pierre Ossman
647ef180c3 Fix call to pa_mutex_new().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1358 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-01 19:06:44 +00:00
Pierre Ossman
f84c65ed86 Add pthread_once() equivalent support.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1357 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-01 18:39:55 +00:00
Pierre Ossman
3571bf1699 Thread implementation for Win32.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1356 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-01 18:16:55 +00:00
Pierre Ossman
6e9706bcbc Also wrap yield functionality so that it can be platform independent.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1353 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-31 16:13:07 +00:00
Lennart Poettering
aee4a3738e define AO_REQUIRE_CAS in the Makefile instead of each source file, effectively reversing r1348
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1351 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-31 15:20:43 +00:00