summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/source-output.c
Commit message (Collapse)AuthorAgeFilesLines
* esound,streams: Fix some crashes.Colin Guthrie2011-06-221-3/+5
| | | | | | | | | | After the rework to the add pa_sink_input_new_data_set_sink() (and the source equiv) calling with a NULL sink object will hit an assert. This caused crashes with the esd protocol and there was the potential (albeit unlikely) for a crash when creating a sink input without any sinks available (module-always-sink mitigates this risk but it's still a potential crasher).
* source-output: Trivial code moveArun Raghavan2011-06-221-52/+52
| | | | Makes diff'ing with sink-input.c easier
* capture: Remove support for synchronised capture streams.Colin Guthrie2011-06-221-47/+2
| | | | | | This was added to ensure symmetry between playback and recording streams code, but in reality this makes little sense practically speaking and thus it is removed.
* capture: Implement per-stream volume control for capture streams.Colin Guthrie2011-06-221-5/+518
| | | | | | | This piggy backs onto the previous changes for protocol 22 and thus does not bump the version. This and the previous commits should be seen as mostly atomic. Apologies for any bisecting issues this causes (although I would expect these to be minimal)
* capture: Add the passthrough format negotiation to capture streams.Colin Guthrie2011-06-221-21/+154
| | | | | This helps to keep the API more symmetrical and also potentially allows support for passthrough monitor sources at some point in the future.
* streams: Fix the actual resampler method shown in debug messages.Colin Guthrie2011-06-021-0/+1
|
* core: Link virtual sinks and sources to their streams.Tanu Kaskinen2011-02-221-0/+1
| | | | | | | | | | | | | | | This change doesn't add any functionality in itself, but it will be useful in the future for operating on chains of sinks or sources that are piggy-backing on each other. For example, the PA_PROP_DEVICE_MASTER_DEVICE property could be handled in the core so that each virtual device doesn't have to maintain it separately. By using the origin_sink and destination_source pointers the core is able to see at stream creation time that the stream is created by a virtual device, and then update that device's property list using the name of the master device that the stream is being connected to. The same thing can be done also when the stream is being moved from a device to another, in which case the _MASTER_DEVICE property needs updating.
* introspect: Include whether a stream is corked in the info callback.Colin Guthrie2010-10-061-1/+5
|
* core: dump proplist when creating stream similar to how we already to it for ↵Lennart Poettering2009-09-201-2/+6
| | | | sinks/sources
* core: move 'flags' field into 'pa_sink_input_new_data' structure so that ↵Lennart Poettering2009-08-281-11/+10
| | | | hooks can access it
* core: relex validity checks when destructing half-set up source outputs/sink ↵Lennart Poettering2009-08-221-2/+0
| | | | inputs
* object: speed up type verification by not relying on strcmp()Lennart Poettering2009-08-211-1/+1
| | | | | | | | | | | | | Instead of using string contents for type identification use the address of a constant string array. This should speed up type verifications a little sind we only need to compare one machine word instead of a full string. Also, this saves a few strings. To make clear that types must be compared via address and not string contents 'type_name' is now called 'type_id'. This also simplifies the macros for declaring and defining public and private subclasses.
* core: make fixed latency dynamically changeableLennart Poettering2009-08-151-3/+4
| | | | | | | | | | | | | This of course makes the name 'fixed' a bit of a misnomer. However the definitions are now like this: fixed latency: the latency may change during runtime, but is solely controlled by the backend, the client has no influence. dynamic latency: the latency may change during runtime, influenced by the requests of the clients. i.e. fixed vs. dynamic is from the perspective of the client.
* core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPENDLennart Poettering2009-08-151-1/+1
|
* core: introduce pa_{sink_input|source_output}_fail_move()Lennart Poettering2009-08-151-0/+19
|
* core: add functions to query max_rewind/max_request values from streamsLennart Poettering2009-08-131-0/+8
|
* core: add assert macros for verifying calling contextLennart Poettering2009-08-131-3/+30
| | | | | | | This adds pa_assert_io_context() and pa_assert_ctl_context() in addition to a few related macros. When called they will fail when the current execution context is not IO resp. not control context. (aka 'thread' context vs. 'main' context)
* core: when applying delay memblockq take monitored sink latency into accountLennart Poettering2009-04-141-0/+19
|
* core: use pa_{source|sink}_get_latency_within_thread() at one more placeLennart Poettering2009-04-141-4/+1
|
* core: add a seperate fixed_latency field for sinks/sources with fixed latencyLennart Poettering2009-04-101-4/+9
|
* core: memory leak, fix ref counting when moving streamsLennart Poettering2009-04-101-3/+13
|
* add suspend_within_thread() callbacks to pa_sink_input/pa_source_outputLennart Poettering2009-04-071-0/+1
|
* properly account for seeks in the requested_bytes counterLennart Poettering2009-04-011-1/+1
|
* pass destination source/sink when moving streams so that we can access themLennart Poettering2009-04-011-1/+1
|
* don't access i->sink if it is not setLennart Poettering2009-04-011-3/+5
|
* simplify latency config functions a bit and make them callable in more contextsLennart Poettering2009-03-301-30/+25
|
* Trigger move callback a little bit earlier so that no IO thread is runningLennart Poettering2009-03-301-4/+5
|
* Use LGPL 2.1 on all files previously using LGPL 2Colin Guthrie2009-03-031-1/+1
|
* try to vacuum a little when nothing is going onLennart Poettering2009-02-251-0/+2
|
* make sure we check the sink status for PA_SINK_INPUT_FAIL_ON_SUSPEND only ↵Lennart Poettering2009-02-241-1/+6
| | | | after module-suspend-on-idle had the chance to resume the device
* Allow passing a NULL proplist to pa_xxxx_update_proplist() to just fire a ↵Lennart Poettering2009-02-221-2/+2
| | | | notification
* allow sending meta/policy events to clientsLennart Poettering2009-02-121-0/+28
|
* make return value of pa_{sink_input|source_output}_update_proplist() voidLennart Poettering2009-02-051-10/+8
|
* merge in properties earlier to make identification of streams from hooks easierLennart Poettering2009-02-041-3/+3
|
* make a couple of functions return proper error codesLennart Poettering2009-02-031-38/+41
|
* make a few functions return void where the retval isn't used/never != 0Lennart Poettering2009-02-031-4/+2
|
* implement PA_STREAM_FAIL_ON_SUSPEND logicLennart Poettering2009-02-031-2/+5
|
* when changing volume, store whether it is worth remembering or noLennart Poettering2009-01-271-5/+9
|
* move flat volume logic into the core. while doing so add n_volume_steps ↵Lennart Poettering2009-01-271-4/+7
| | | | field to sinks/sources
* store requested resampling method in a seperate field and use it when create ↵Lennart Poettering2009-01-271-5/+5
| | | | a new resampler after a move
* move sink input/source output move functions into two parts so that we can ↵Lennart Poettering2009-01-231-43/+92
| | | | start the move, delete the original sink, create a new sink, finish the move; similar for source outputs
* in most cases we can use i->core instead of i->sink->core and o->coure ↵Lennart Poettering2009-01-231-12/+12
| | | | instead of o->source->core
* don't include full path in driver name.Lennart Poettering2009-01-221-1/+2
|
* make proplist inheritance scheme automatic and implicitLennart Poettering2009-01-151-0/+3
|
* kill autoload stuff as plannedLennart Poettering2009-01-151-1/+1
|
* maintain a list of sink inputs/source outputs as part of the pa_client objectLennart Poettering2009-01-151-0/+6
|
* core: add source, si, so proplist_updateMarc-André Lureau2009-01-131-0/+15
|
* Don't hit an assert when checking for idlenessLennart Poettering2008-12-171-1/+6
| | | | Closes #398
* add new virtual function may_move_to to sink inputs/source outputs to allow ↵Lennart Poettering2008-10-211-9/+28
| | | | modules to forbid certain connections
* use pa_channel_map_init_extend() instead of pa_channel_map_init_auto() as ↵Lennart Poettering2008-10-071-1/+1
| | | | channel map for sink inputs/source outputs in case no map is specified