pulseaudio/src/pulsecore
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
..
authkey-prop.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
authkey-prop.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
authkey.c try to use send(,,MSG_NOSIGNAL) instead of write() wherever possible (which 2006-07-14 22:42:01 +00:00
authkey.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
autoload.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
autoload.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
avahi-wrap.c 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 2006-07-13 23:12:50 +00:00
avahi-wrap.h * port libpulse-browse to use the native avahi API instead of the HOWL cruft 2006-07-13 17:33:44 +00:00
cli-command.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
cli-command.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
cli-text.c 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() 2006-08-13 19:55:17 +00:00
cli-text.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
cli.c * more s/pulseaudio/PulseAudio/ replacements 2006-06-19 23:51:58 +00:00
cli.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
client.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
client.h 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. 2006-08-13 16:19:56 +00:00
conf-parser.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
conf-parser.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
core-def.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
core-error.c * more s/pulseaudio/PulseAudio/ replacements 2006-06-19 23:51:58 +00:00
core-error.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
core-scache.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
core-scache.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
core-subscribe.c there's no need to queue subscription events if noone is listening, hence don't do it! 2006-08-12 15:08:53 +00:00
core-subscribe.h rework subscription code: try to drop redundant queued events 2006-08-12 02:18:24 +00:00
core-util.c Make -1 mean "current group/user" so that some platform dependent calls 2006-07-20 00:21:50 +00:00
core-util.h * add new function pa_check_in_group() 2006-07-19 21:48:35 +00:00
core.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
core.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
creds.h undo r1111 in some way: include sys/socket.h and sys/un.h but wrap it in #ifdef 2006-07-20 00:52:44 +00:00
dllmain.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
dynarray.c minor optimization 2006-08-13 20:43:22 +00:00
dynarray.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
endianmacros.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
esound.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
g711.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
g711.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
gccmacro.h make sure gccmacro.h and cdecl.h may be included at the same time as those headers from the avahi project 2006-07-13 15:52:34 +00:00
hashmap.c cleanup hashmap.[ch] a little: use hash/compare func prototypes defined in idxset.h, add pa_hashmpa_{get,steal}_first 2006-08-18 19:43:46 +00:00
hashmap.h cleanup hashmap.[ch] a little: use hash/compare func prototypes defined in idxset.h, add pa_hashmpa_{get,steal}_first 2006-08-18 19:43:46 +00:00
hook-list.c fix a PA_LLIST_HEAD_INIT invocation 2006-08-17 20:03:38 +00:00
hook-list.h 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 2006-08-13 16:13:36 +00:00
idxset.c cleanup idxset.[ch] a little: define proper types for the hash/compare funcs, do ptr->int/int->ptr conversions with clean macros 2006-08-18 19:42:14 +00:00
idxset.h cleanup idxset.[ch] a little: define proper types for the hash/compare funcs, do ptr->int/int->ptr conversions with clean macros 2006-08-18 19:42:14 +00:00
inet_ntop.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
inet_ntop.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
inet_pton.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
inet_pton.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
iochannel.c implement "auth-ip-acl=" in the native and esound protocols 2006-07-20 18:43:20 +00:00
iochannel.h implement "auth-ip-acl=" in the native and esound protocols 2006-07-20 18:43:20 +00:00
ioline.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
ioline.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
ipacl.c Get ACL:s to work on Win32. 2006-07-20 23:21:57 +00:00
ipacl.h add IP address ACL subsystem 2006-07-20 16:48:26 +00:00
llist.h make PA_LLIST_HEAD_INIT thread safe 2006-08-17 20:01:04 +00:00
log.c s/POLYP/PULSE/g 2006-06-19 23:56:54 +00:00
log.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
Makefile big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
mcalign.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
mcalign.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
memblock.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
memblock.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
memblockq.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
memblockq.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
memchunk.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
memchunk.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
modargs.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
modargs.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
modinfo.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
modinfo.h replace a few remaining uppercase "Polypaudio" occurences with "PulseAudio" 2006-06-19 22:11:49 +00:00
module.c fix a compiler warning 2006-08-12 02:16:47 +00:00
module.h 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. 2006-08-13 16:19:56 +00:00
namereg.c do not export name validity checking routes and apply them only to sink/source names, not sample names 2006-08-11 16:58:21 +00:00
namereg.h extend maximum sink/source name length, because HAL UDIs can get ridiculously long 2006-08-12 17:59:10 +00:00
native-common.h add new commands opcode for moving sink inputs and source outputs 2006-07-31 21:54:20 +00:00
packet.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
packet.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
parseaddr.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
parseaddr.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
pdispatch.c fix a bad type cast 2006-08-18 19:45:19 +00:00
pdispatch.h * add new function pa_check_in_group() 2006-07-19 21:48:35 +00:00
pid.c * add new --system command line parameter to the daemon for running PulseAudio as system-wide instance 2006-07-19 17:44:19 +00:00
pid.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
pipe.c 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. 2006-07-17 21:20:31 +00:00
pipe.h 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. 2006-07-17 21:20:31 +00:00
play-memblockq.c 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. 2006-08-13 16:19:56 +00:00
play-memblockq.h 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 2006-07-28 22:52:28 +00:00
play-memchunk.c 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. 2006-08-13 16:19:56 +00:00
play-memchunk.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
poll.c 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. 2006-07-17 21:20:31 +00:00
poll.h 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. 2006-07-17 21:20:31 +00:00
props.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
props.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
protocol-cli.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
protocol-cli.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
protocol-esound.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
protocol-esound.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
protocol-http.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
protocol-http.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
protocol-native.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
protocol-native.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
protocol-simple.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
protocol-simple.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
pstream-util.c * add new function pa_check_in_group() 2006-07-19 21:48:35 +00:00
pstream-util.h * add new function pa_check_in_group() 2006-07-19 21:48:35 +00:00
pstream.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
pstream.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
queue.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
queue.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
random.c try to use send(,,MSG_NOSIGNAL) instead of write() wherever possible (which 2006-07-14 22:42:01 +00:00
random.h add missing #include 2006-08-17 20:03:09 +00:00
resampler.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
resampler.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
sample-util.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
sample-util.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
sconv-s16be.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sconv-s16be.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sconv-s16le.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sconv-s16le.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sconv.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sconv.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
shm.c add abstracted shared memory API 2006-08-18 19:46:20 +00:00
shm.h add abstracted shared memory API 2006-08-18 19:46:20 +00:00
sink-input.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
sink-input.h 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() 2006-08-13 19:55:17 +00:00
sink.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
sink.h add pa_sink_used_by()/pa_source_used_by() 2006-08-12 16:50:58 +00:00
sioman.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sioman.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
socket-client.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
socket-client.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
socket-server.c * add new function pa_check_in_group() 2006-07-19 21:48:35 +00:00
socket-server.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
socket-util.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
socket-util.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sound-file-stream.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
sound-file-stream.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
sound-file.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
sound-file.h Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
source-output.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
source-output.h 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() 2006-08-13 19:55:17 +00:00
source.c Rework memory management to allow shared memory data transfer. The central idea 2006-08-18 19:55:18 +00:00
source.h add pa_sink_used_by()/pa_source_used_by() 2006-08-12 16:50:58 +00:00
strbuf.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
strbuf.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
strlist.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
strlist.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
tagstruct.c split a few asserts 2006-07-25 20:10:47 +00:00
tagstruct.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
tokenizer.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
tokenizer.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
winsock.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
x11prop.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
x11prop.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
x11wrap.c big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00
x11wrap.h big s/polyp/pulse/g 2006-06-19 21:53:48 +00:00