Commit graph

271 commits

Author SHA1 Message Date
Lennart Poettering
49b1b15ef0 don't enable prebuffering if we just call is_readable()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2341 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-02 01:20:46 +00:00
Lennart Poettering
52e3628c3e Yes, yet another evil all-in-one commit of intervowen changes. I suck.
* Drop "state" directory, fold that into "runtime directory"
* No longer automatically rewind when a new stream connects
* Rework sound file stream, to cause a rewind on initialisation, shorten _pop() code a bit
* Fix reference counting of pa_socket_server in the protocol implementations
* Rework daemon initialization code to be compatible with non-SUID-root setups where RLIMIT_RTPRIO is non-zero
* Print warning if RT/HP is enabled in the config, but due to missing caps, rlimits, policy we cannot enable it.
* Fix potential memory leak in pa_open_config_file()
* Add pa_find_config_file() which works much like pa_open_config_file() but doesn't actually open the config file in question. Just searches for it.
* Add portable pa_is_path_absolute()
* Add pa_close_all() and use it on daemon startup to close leaking file descriptors (inspired from what I did for libdaemon)
* Add pa_unblock_sigs() and use it on daemon startup to unblock all signals (inspired from libdaemon, too)
* Add pa_reset_sigs() and use it on daemon startup to reset all signal handlers (inspired from libdaemon as well)
* Implement pa_set_env()
* Define RLIMIT_RTTIME and friends if not defined by glibc
* Add pa_strempty()
* rename state testing macros to include _IS_, to make clearer that they are no states, but testing macros
* Implement pa_source_output_set_requested_latency_within_thread() to be able to forward latency info to sources from within the IO thread
* Similar for sink inputs
* generelize since_underrun counter in sink inputs to "playing_for" and "underrun_for". Use only this for ignore potential rewind requests over underruns
* Add new native protocol message PLAYBACK_STREAM_MESSAGE_STARTED for notification about the end of an underrun
* Port native protocol to use underrun_for/playing_for which is maintained by the sink input anyway
* Pass underrun_for/playing_for in timing info to client
* Drop pa_sink_skip() since it breaks underrun detection code
* Move PID file and unix sockets to the runtime dir (i.e. ~/.pulse). This fixes a potention DoS attack from other users stealing dirs in /tmp from us so that we cannot take them anymore)
* Allow setting of more resource limits from the config file. Set RTTIME by default
* Streamline daemon startup code
* Rework algorithm to find default configuration files
* If run in system mode use "system.pa" instead of "default.pa" as default script file
* Change ladspa sink to use pa_clamp_samples() for clamping samples
* Teach module-null-sink how to deal with rewinding
* Try to support ALSA devices with no implicit channel map. Synthesize one by padding with PA_CHANNEL_POSITION_AUX channels. This is not tested since I lack hardware with these problems.
* Make use of time smoother in the client libraries.
* Add new pa_stream_is_corked() and pa_stream_set_started_callback() functions to public API
* Since our native socket moved, add some code for finding sockets created by old versions of PA. This should ease upgrades


git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2329 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:51:05 +00:00
Lennart Poettering
11559a6386 parse boolean parameters as boolean instead of int wherever applicable. add new function pa_cli_command_execute_file_stream()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2326 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:24:09 +00:00
Lennart Poettering
414f1d956f install gccmacro.h properly, drop unused core-def.h file
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2325 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:22:35 +00:00
Lennart Poettering
d7cc1f5a12 change pa_rtpoll_set_timer_absolute() to take a pa_usec_t instead of struct timeval
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2324 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:17:52 +00:00
Lennart Poettering
5816871117 save and restore errno in log functions
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2323 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:16:55 +00:00
Lennart Poettering
b93ea1840c minor reformat
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2322 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:16:25 +00:00
Lennart Poettering
b70edf77da port pa_sample_clamp() to liboil
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2319 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:13:53 +00:00
Lennart Poettering
9dd8f6ceb7 add new function pa_sample_clamp()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2318 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:09:03 +00:00
Lennart Poettering
264385aae4 strip CRLF line breaks from read CLI commands. This should fix the cli interface for people accessing it via telnet.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2317 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:06:15 +00:00
Lennart Poettering
f49df7a3b0 * Increase history set to 64 to simplify reduction of indexes
* Decrease memory consumption a bit by using bitfields for some bools
* Rework reduction code
* Drop an unnessacary counter
* Before adding a new entry to the history, try to figure out if we already have an existing entry with the same x value and replace that. This fixes a division by zero
* Fix up input x for all functions, according to the time offset


git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2316 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-05-01 19:04:42 +00:00
Lennart Poettering
5353cf45f5 fix size of requested_latency
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2311 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-23 19:55:04 +00:00
Lennart Poettering
76031df4a4 Big pile of interdependant changes:
* Fix a deadlock when an asyncq overflows and an RT thread needed to wait until space became available again while the main thread was waiting for a operation to complete and thus didn't free any new items. Now, if the asyncq overflows, queue those items temporarily, and return immediately. Then, when the queue becomes writable again, flush it.
* Modify pa_thread_mq_init() to also set up pa_rtpoll events properly for the MQ
* Some more pa_bool_t'ization
* Unify more common code between alsa-sink and alsa-source
* The upper limit for the tsched watermark is max_use minus one frame
* make module-alsa-source work
* make the alsa modules use pa_alsa_build_pollfd() now
* fix detection of dB scale for alsa-source


git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2308 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-23 18:26:48 +00:00
Lennart Poettering
0b183fbdc6 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
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2305 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-23 18:14:25 +00:00
Lennart Poettering
ed0af46e69 unify code that fixes up buffering metrics
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2302 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-23 18:11:57 +00:00
Lennart Poettering
af03dd4e4f drop a misplaced newline
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2301 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-23 18:11:14 +00:00
Lennart Poettering
6b4b95beed show configure latency metrics
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2298 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-22 02:48:24 +00:00
Lennart Poettering
1adbe822b8 some beautification updates, show msec instead of usec everywhere
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2297 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-22 02:47:47 +00:00
Lennart Poettering
cdb077b6c0 if no timer was armed, we don't need to disarm it
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2296 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-22 02:47:05 +00:00
Lennart Poettering
4a1971a535 if no latency was configure for a sink/source, fill in the max latency automatically
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2295 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-22 02:46:19 +00:00
Lennart Poettering
0d01c4350b make sure the client buffer has space for 2*minreq+tlength. Explain why
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2292 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-22 01:11:16 +00:00
Lennart Poettering
e16a1987a3 - Change meaning of special values of latency request: 0 -> "minimal latency, please"; (pa_usec_t)-1 -> "don't care"
- Remove "source" word from monitor source description
- Increase default tsched watermark to 20ms again
- For the first iteration after snd_pcm_start() halve the sleep time as workaround for USB devices with quick starts


git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2291 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-22 01:04:27 +00:00
Lennart Poettering
88227c41c1 properly initialize memblock->is_silence for imported memory blocks; make is_silence and read_only a bit field
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2290 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-22 00:52:31 +00:00
Lennart Poettering
c2c833c068 use the sink description instead of the name to choose the description for the monitor source
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2286 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 21:49:05 +00:00
Lennart Poettering
5971345e99 rename sink_input->rewind to process_rewind() and set_max_rewind to update_max_rewind()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2284 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 20:35:44 +00:00
Lennart Poettering
62e7bc17c4 Big pile of dependant changes:
* Change pa_memblockq to carry silence memchunk instead of memblock and adapt all users
* Add new call pa_sink_input_get_silence() to get the suitable silence block for a sink input
* Implement monitoring sources properly by adding a delay queue to even out rewinds
* Remove pa_{sink|source}_ping() becaused unnecessary these days and not used
* Fix naming of various rewind related functions. Downstream is now _request_rewind(), upstream is _process_rewind()
* Fix volume adjustments for a single stream in pa_sink_render()
* Properly handle prebuf-style buffer underruns in pa_sink_input
* Don't allow rewinding to more than the last underrun
* Rework default buffering metrics selection for native protocol
* New functions pa_memblockq_prebuf_active(), pa_memblockq_silence()
* add option "mixer_reset=" to module-alsa-sink
* Other cleanups


git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2283 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 20:16:55 +00:00
Lennart Poettering
7556ef5bfc maintain a global silence memblock cache
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2282 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 19:53:07 +00:00
Lennart Poettering
ed36f3129c increase the default pool size to 16MB because we now need to keep a lot more memory around due to glitch-free.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2277 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 19:46:43 +00:00
Lennart Poettering
687aa295a7 add new pa_pstream_get_shm() API, rename pa_pstream_use_shm() to pa_pstream_enable_shm(); pa_bool_t-ization
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2274 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 19:43:20 +00:00
Lennart Poettering
bee409acbe remove debug messages
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2273 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 19:41:53 +00:00
Lennart Poettering
1ddb95a4ce add new silence memblock caching subsystem
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2272 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 19:41:26 +00:00
Lennart Poettering
4b1d684d26 add new API function pa_memchunk_memcpy()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2271 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-20 19:40:30 +00:00
Lennart Poettering
1f0a52dad1 the pointer to rewind() may actually be NULL
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2267 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-14 18:46:24 +00:00
Lennart Poettering
68e4a93705 properly ask the sink to rewind on new sink inputs and when they disappear
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2266 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-14 18:45:08 +00:00
Lennart Poettering
6946d2ad2d make sure to clear all queued RT signals before arm a new timer
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2265 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-14 18:43:59 +00:00
Lennart Poettering
04178d428e add _cb suffix to _max_rewind function like with all other functions, too
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2264 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-14 18:43:11 +00:00
Lennart Poettering
14fd32ee4b add missing 'break's in switch
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2262 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 17:39:38 +00:00
Lennart Poettering
55f273eb00 s/pulsecore\/gccmacro.h/pulse\/gccmacro.h/
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2261 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 17:06:41 +00:00
Lennart Poettering
07f5c1d8e4 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
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2260 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 17:05:46 +00:00
Lennart Poettering
dbe36333f3 properly initialize ->memblockq
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2258 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 17:02:42 +00:00
Lennart Poettering
cdb273de90 add new pa_get_state_dir() function, move pa_strnull() here
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2257 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:58:07 +00:00
Lennart Poettering
dcf7173489 fix help string for volume commands
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2256 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:57:26 +00:00
Lennart Poettering
fe3c42dbfe fix packet formatting for a few commands
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2255 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:53:29 +00:00
Lennart Poettering
2c6176fdd4 mark shm marker struct as packed, to guarantee identical sizes between archs
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2254 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:52:45 +00:00
Lennart Poettering
096e7f0f81 make shm magic marker compat with multiarch systems where 64bit and 32bit processes might share SHM areas
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2252 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:38:16 +00:00
Lennart Poettering
c9db6d2543 don't fail if a signalled writability of STDOUT is no longer true when we try it because some other thread already wrote something
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2251 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:37:22 +00:00
Lennart Poettering
413656bce6 update list-xxx commands a bit
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2250 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:36:38 +00:00
Lennart Poettering
28ab2a0c1d don't print 'signal' each time a rtpoll poll() call is canceled
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2249 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:36:13 +00:00
Lennart Poettering
50d585e458 fix linker warning macro code, move pa_strnull() to core-util.h, move PA_LIKELY definitions here from gccmacro.h
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2248 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:35:31 +00:00
Lennart Poettering
d0ebb71eed don't use fqdn if we don't have to
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2247 fefdeb5f-60dc-0310-8127-8f9354f1896f
2008-04-11 16:34:11 +00:00