Commit graph

224 commits

Author SHA1 Message Date
Lennart Poettering
be4a882836 A lot of more work to get the lock-free stuff in place
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1474 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-06-13 22:08:14 +00:00
Lennart Poettering
69115687ad make untabify
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1472 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-06-11 13:53:31 +00:00
Lennart Poettering
a4fed0fbb5 make eolspace
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1470 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-06-11 12:17:40 +00:00
Lennart Poettering
00da37f2c4 Merge HUGE set of changes temporarily into a branch, to allow me to move them from one machine to another (lock-free and stuff)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1469 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-06-11 12:08:37 +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
79c94db7a6 Fix another DoS vulnerability that has been identified by Luigi Auriemma. (Finally closes #67)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1452 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 17:24:06 +00:00
Lennart Poettering
30c52e56c3 add a missing initialization that causes a crash when parsing invalid volume restoration tables (Problem identified by Luigi Auriemma, re #67)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1451 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 17:12:07 +00:00
Lennart Poettering
312c326def Fix module-oss for devices that return EAGAIN when we don't expect it. (Closes #66)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1442 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 01:02:06 +00:00
Lennart Poettering
01ddb54889 show socket directory when we fail to create it. (Closes #85)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1441 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-22 23:39:47 +00:00
Lennart Poettering
960b5cbd10 Fix build and only load OSS xor ALSA modules if both are available
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1440 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-22 23:38:22 +00:00
Pierre Ossman
0b14c02689 Don't fail if hal doesn't currently contain any devices. (closes #55)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1434 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-03-06 13:31:29 +00:00
Pierre Ossman
2b82336df2 Handle suspended alsa devices. Based on patch by ranma. (closes #26)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1433 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-03-02 09:20:54 +00:00
Pierre Ossman
bb812433a8 Handle when ALSA tweaks our sample spec so much that the frame size changes.
(closes #57).


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1431 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-03-01 17:13:26 +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
de7a883245 Allow specification of device number.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1424 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-12 09:37:34 +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
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
6db6c835ec add missing g_type_init()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1367 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-02 15:18:56 +00:00
Lennart Poettering
5fa9cdb6b4 Merge FreeBSD compatibility patch (from Flameeyes)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1359 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-02 12:03:18 +00:00
Lennart Poettering
97202d1b2d fix a race condition with stream connection vs. latency measuremtn (found by theBear)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1355 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-01 00:24:32 +00:00
Lennart Poettering
b8ea488b76 fix module-combine when used on top of a tunnel sink
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1333 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-26 19:00:22 +00:00
Lennart Poettering
93e005ad37 update module-tunnel to latest protocol
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1332 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-25 22:52:59 +00:00
Lennart Poettering
8f5b86b77d fix handling of "mtu" module argument (patch by "theBear")
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1329 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-23 22:28:53 +00:00
Pierre Ossman
79c4a6842c Make the recording a bit more chunky so that we can fit in the pool and have
efficient blocks.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1327 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-23 07:57:43 +00:00
Pierre Ossman
b27ffbec8c Remove silence generation in solaris module.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1326 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 16:25:47 +00:00
Pierre Ossman
d194604402 Remove silence generation in waveout module.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1325 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 16:15:47 +00:00
Pierre Ossman
306aea78d3 Fix memory leak in waveout module.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1323 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 15:24:11 +00:00
Pierre Ossman
0249651c8e Log when there is a problem opening the waveOut/waveIn device.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1322 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 15:20:57 +00:00
Pierre Ossman
10bbc4b7c9 Fix detection of shared memory support and proper fallback.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1316 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 11:41:14 +00:00
Pierre Ossman
568c8ea715 Fix typo.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1315 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 11:39:19 +00:00
Pierre Ossman
eeabf63673 Add missing header.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1314 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 11:38:46 +00:00
Pierre Ossman
b5ef414ec8 Fix call to pa_memblock_new().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1313 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 11:37:53 +00:00
Pierre Ossman
7bc71103fb Fix missing header for timeval helpers.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1311 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 07:25:45 +00:00
Pierre Ossman
1c320fe0b7 Fix calls to pa_memblock_new().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1310 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 07:23:47 +00:00
Pierre Ossman
6e3d8af520 Add header for pa_cstrerror().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1309 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 07:21:41 +00:00
Lennart Poettering
3dbc4ae973 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
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1304 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 23:08:50 +00:00
Lennart Poettering
521d15babb fix a memory leak
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1290 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 02:23:11 +00:00
Lennart Poettering
e385d93e5a remove all occurences of
pa_logXXX(__FILE__":  
   
and replace them by 
  
   pa_logXXX("



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1272 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 21:38:40 +00:00
Lennart Poettering
0e436a6926 Rework memory management to allow shared memory data transfer. The central idea
is to allocate all audio memory blocks from a per-process memory pool which is
available as read-only SHM segment to other local processes. Then, instead of
writing the actual audio data to the socket just write references to this
shared memory pool.

To work optimally all memory blocks should now be of type PA_MEMBLOCK_POOL or
PA_MEMBLOCK_POOL_EXTERNAL. The function pa_memblock_new() now generates memory
blocks of this type by default.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1266 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:55:18 +00:00
Lennart Poettering
1c3bfc44dc use the description field of sinks/sources to name the zeroconf services, instead of the logical name
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1257 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-15 18:15:00 +00:00
Lennart Poettering
2bf4653713 extend module-rescue-streams to move also source outputs when a source dies
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1254 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 20:45:19 +00:00
Lennart Poettering
3334814ebb fix a segfault when registering a service with avahi fails
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1253 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 20:44:32 +00:00
Lennart Poettering
cdb173f6ab create rtp source output on correct source
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1252 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 20:44:00 +00:00
Lennart Poettering
a75e1ed9ef 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()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1250 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:55:17 +00:00
Lennart Poettering
dd87061153 implement new module "module-rescue-streams" which moves sink inputs away when their sink is removed.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1244 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:34:36 +00:00
Lennart Poettering
87e64d5845 Clean up module description a little
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1242 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:32:35 +00:00
Lennart Poettering
b37ad1ffd3 modify module-volume-restore to change the initial volume of a sink input from a hook instead of an asyncronous subscription event.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1238 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 16:21:20 +00:00
Lennart Poettering
a621d90285 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.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1237 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 16:19:56 +00:00
Lennart Poettering
dbe6bdd2bc make use of pa_sink_used_by()/pa_source_used_by() wherever applicable
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1227 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 17:06:05 +00:00