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
ff48681aae
add abstracted shared memory API
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1265 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:46:20 +00:00
Lennart Poettering
20d0823e35
fix a bad type cast
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1264 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:45:19 +00:00
Lennart Poettering
dfa17b9f36
cleanup hashmap.[ch] a little: use hash/compare func prototypes defined in idxset.h, add pa_hashmpa_{get,steal}_first
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1263 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:43:46 +00:00
Lennart Poettering
8be0cf6007
cleanup idxset.[ch] a little: define proper types for the hash/compare funcs, do ptr->int/int->ptr conversions with clean macros
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1262 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:42:14 +00:00
Lennart Poettering
c3df1ceb38
fix a PA_LLIST_HEAD_INIT invocation
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1261 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:03:38 +00:00
Lennart Poettering
a847f74ed0
add missing #include
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1260 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:03:09 +00:00
Lennart Poettering
d89066036b
modify pa_bytes_snprint() to return the string we just wrote to. This should be binary compat with older versions which returned void
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1259 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:02:46 +00:00
Lennart Poettering
99db0672c7
make PA_LLIST_HEAD_INIT thread safe
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1258 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:01:04 +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
Pierre Ossman
6c39af7ad3
update todo
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1256 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-14 08:38:07 +00:00
Lennart Poettering
5d8d916474
update todo
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1255 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 20:45:54 +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
d182a0b1cb
minor optimization
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1251 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 20:43:22 +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
e0f7e8614c
split a validity check into two
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1249 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:53:35 +00:00
Lennart Poettering
79cb80c574
implement hook_source_disconnect
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1248 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:53:18 +00:00
Lennart Poettering
8f91b1f4c4
define new hooks: hook_source_output_new, hook_source_disconnect
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1247 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:52:43 +00:00
Lennart Poettering
a09a49e41b
update todo
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1246 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:39:19 +00:00
Lennart Poettering
a7b9a7d599
Load module-rescue-streams by default
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1245 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:35:46 +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
8180832898
properly implement a pa_sink_disconnect() hook
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1243 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:33:32 +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
abbabd848a
ignore if we recieved a memory block for an invalid stream, since this might happen unwillingly due to the asychnronous nature of the protocol
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1241 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:31:58 +00:00
Lennart Poettering
72cf2118df
remove pa_sink_input::variable_rate field since it has been folded into pa_sink_input::flags
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1240 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:30:51 +00:00
Lennart Poettering
3beef50639
hide hook-list-test
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1239 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 16:22:20 +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
b5cbea940e
fix bad printf()
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1236 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 16:14:06 +00:00
Lennart Poettering
db3f561ec4
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
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1235 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 16:13:36 +00:00
Lennart Poettering
281125c727
rework hook list stuff again, and replace macros with real functins. We loose type safety but things are much cleaner now
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1234 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 01:43:34 +00:00
Lennart Poettering
2622b0ca9e
update hook list test
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1233 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 23:55:48 +00:00
Lennart Poettering
82a913d73e
reall add type safe hook list
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1232 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 23:55:22 +00:00
Lennart Poettering
80d73dd21b
implement typeafe hook chain
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1231 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 23:35:44 +00:00
Lennart Poettering
7f70ca31a1
extend maximum sink/source name length, because HAL UDIs can get ridiculously long
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1230 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 17:59:10 +00:00
Lennart Poettering
17964dda37
update todo
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1229 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 17:07:49 +00:00
Lennart Poettering
02e083cbc4
test if sink->monitor_source is set before making use of it
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1228 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 17:06:39 +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
Lennart Poettering
b5207fc9ca
add pa_sink_used_by()/pa_source_used_by()
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1226 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:50:58 +00:00
Lennart Poettering
b45c39269f
categorize todo file
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1225 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:40:59 +00:00
Lennart Poettering
28f86ea698
name the sink/source after the device file, just like we already do for the non-mmaped driver
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1224 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:33:31 +00:00
Lennart Poettering
bf79e97591
generate default sink/source names from the device files they belong to
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1223 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:26:59 +00:00
Lennart Poettering
005017647b
update todo
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1222 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:02:52 +00:00
Lennart Poettering
4c9c4269bb
handle hot-remeving of OSS devices properly
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1221 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:02:26 +00:00
Lennart Poettering
3cfed301d9
print the device capabilities after opening the device
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1220 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:01:40 +00:00
Lennart Poettering
fbeeb8b70d
when the requested sample format is not available for OSS devices, print a nice warning and take what we can get instead
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1219 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 15:09:49 +00:00
Lennart Poettering
0547b0fd4a
there's no need to queue subscription events if noone is listening, hence don't do it!
...
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1218 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 15:08:53 +00:00
Lennart Poettering
c86890d5e7
* only load an OSS driver for the first device of a sound card, similar to what is done for ALSA.
...
* fix a mem leak
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1217 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 13:18:34 +00:00