summaryrefslogtreecommitdiff
path: root/src/modules/module-virtual-sink.c
AgeCommit message (Collapse)AuthorFilesLines
2013-03-06modules: Remove obsolete may_move_to callbacksStefan Huber1-11/+0
Some modules have source_output_may_move_to_cb() and sink_input_may_move_to_cb() implemented that duplicate the default behavior. Remove them.
2012-12-19virtual-sink: Removed the option to specify sample format.Ștefan Săftescu1-2/+0
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=46529
2012-08-22memblock: Add pa_memblock_acquire_chunk().Tanu Kaskinen1-2/+2
Besides making the code a bit cleaner, this also gets rid of a few "cast increases required alignment of target type" warnings.
2012-08-19Add comments referring to bug #53709.Tanu Kaskinen1-0/+5
2012-02-12virtual-sink: Remove irrelevant comment.Tanu Kaskinen1-3/+0
The comment is inherited from module-ladspa-sink. It doesn't make sense in module-virtual-sink.
2011-10-01memblockq: Improve debuggability by storing a name and a sample spec.Tanu Kaskinen1-1/+1
These are not used for anything at this point, but this makes it easy to add ad-hoc debug prints that show the memblockq name and to convert between bytes and usecs.
2011-09-14virtual: Make volume sharing on by defaultArun Raghavan1-1/+1
People who use this code (i.e. mostly filters) would presumably want volume sharing on by default.
2011-08-11Move i18n.[ch] to src/pulsecoreMaarten Bosmans1-1/+1
The header is used in files troughout the tree and is not included in the public api, so it belongs in pulsecore, not in pulse.
2011-07-21virtual: Fix volume callback setting.Tanu Kaskinen1-1/+1
We want to set the volume callbacks only if volume sharing is not used. When volume sharing is used, we don't want to mess with the stream volumes. This was broken in 6c6b50
2011-07-20alsa: Reinitialise the mixer on port change.Colin Guthrie1-3/+8
This allows us to flip from software to hardware volume control as the port's mixer path dictates.
2011-07-19devices: Use wrapper functions to set the *_volume and *_mute callbacks.Colin Guthrie1-2/+2
This is not currently useful but future commits will make further changes concerning automatic setting of flags and event delivery that makes this structure necessary.
2011-06-22Remove unnecessary #includesMaarten Bosmans1-3/+1
2011-05-02core: Add extended stream API to support compressed formatsArun Raghavan1-1/+1
This is the beginning of work to support compressed formats natively in PulseAudio. This adds a pa_stream_new_extended() that takes a format structure, sends it to the server (=> protocol extension) and has the server negotiate with the appropropriate sink to figure out what format it should use. This is work in progress, and works only with PCM streams. Actual compressed format support in some sink needs to be implemented, and extensive testing is required. More details on how this is supposed to work is available at: http://pulseaudio.org/wiki/PassthroughSupport
2011-05-02filter-apply: Mark modules as being autoloadedArun Raghavan1-0/+3
(Based on Colin's review) We mark modules as being autoloaded so that they can handle this as a special case if needed (which is required by module-echo-cancel for now). This inverts how things were done and makes using these modules manually less error-prone.
2011-03-20Get rid of some warningsMaarten Bosmans1-1/+1
Mostly warnings about unused stuff. Furthermore, the first hunk is a fix for the change in 177948a6. Finally, comment in AEC_dtd was translated and the code simplified slightly. CC module_bluetooth_device_la-module-bluetooth-device.lo modules/bluetooth/module-bluetooth-device.c: In function ‘a2dp_process_render’: modules/bluetooth/module-bluetooth-device.c:1335:30: warning: pointer targets in passing argument 6 of ‘sbc_encode’ differ in signedness [-Wpointer-sign] ../src/modules/bluetooth/sbc/sbc.h:92:9: note: expected ‘ssize_t *’ but argument is of type ‘size_t *’ CC module_rygel_media_server_la-module-rygel-media-server.lo modules/module-rygel-media-server.c:383:13: warning: ‘append_property_dict_entry_object_array’ defined but not used [-Wunused-function] CC module_echo_cancel_la-adrian-aec.lo modules/echo-cancel/adrian-aec.h:360:15: warning: ‘AEC_getambient’ defined but not used [-Wunused-function] modules/echo-cancel/adrian-aec.h:368:14: warning: ‘AEC_setgain’ defined but not used [-Wunused-function] modules/echo-cancel/adrian-aec.h:374:14: warning: ‘AEC_setaes’ defined but not used [-Wunused-function] modules/echo-cancel/adrian-aec.h:377:16: warning: ‘AEC_max_dotp_xf_xf’ declared ‘static’ but never defined [-Wunused-function] CC module_echo_cancel_la-module-echo-cancel.lo modules/echo-cancel/module-echo-cancel.c: In function ‘time_callback’: modules/echo-cancel/module-echo-cancel.c:266:12: warning: variable ‘fs’ set but not used [-Wunused-but-set-variable] CC module-virtual-sink.lo modules/module-virtual-sink.c: In function ‘sink_input_pop_cb’: modules/module-virtual-sink.c:206:15: warning: variable ‘current_latency’ set but not used [-Wunused-but-set-variable]
2011-03-11Fix up according to Coding StyleMaarten Bosmans1-1/+1
Only whitespace changes in here
2011-02-26virtual-sink: Fix a crash when moving the sink to a new master right after ↵Tanu Kaskinen1-5/+5
setup. If the virtual sink is moved to a new master right after it has been created, then the virtual sink input's memblockq can be rewound to a negative read index. The data written prior to the move starts from index zero, so after the rewind there's a bit of silence. If the memblockq doesn't have a silence memchunk set, then pa_memblockq_peek() will return zero in such case, and the returned memchunk's memblock pointer will be NULL. That scenario wasn't taken into account in the implementation of sink_input_pop_cb. Setting a silence memchunk for the memblockq solves this problem, because pa_memblock_peek() will now return a valid memblock if the read index happens to point to a hole in the memblockq. I believe this isn't the best possible solution, though. It doesn't really make sense to rewind the sink input's memblockq beyond index 0 in the first place, because now when the stream starts to play to the new master sink, there's some unnecessary silence before the actual data starts. This is a small problem, though, and I don't grok the rewinding system well enough to know how to fix this issue properly. I went through all files that call pa_memblockq_peek() to see if there are more similar bugs. play-memblockq.c was the only one that looked to me like it might be broken in the same way. I didn't try reproducing the bug with play-memblockq.c, though, so I just added a FIXME comment there.
2011-02-26virtual-sink/source: Remove an unused variable.Tanu Kaskinen1-5/+0
2011-02-26virtual-sink/source: Use a more descriptive stream name.Tanu Kaskinen1-1/+1
2011-02-26virtual-sink: Add a modarg for forcing flat volume.Tanu Kaskinen1-1/+15
2011-02-26virtual-sink: Add a modarg for enabling volume sharing.Tanu Kaskinen1-5/+12
2011-02-22core: Link virtual sinks and sources to their streams.Tanu Kaskinen1-0/+3
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.
2010-02-25virtual: when fixed block sizes are used the memblockq must have a silence blockLennart Poettering1-2/+6
2010-02-25virtual: document how to implement fixed block size filtersLennart Poettering1-6/+27
2010-02-25memblockq: implement new call pa_memblockq_peek_fixed_size()Lennart Poettering1-4/+2
2010-02-25virtual: minor simplifications for the virtual sinkLennart Poettering1-20/+11
2010-02-17virutal-sink: boilerplate virtual sink to add PCM processingPierre-Louis Bossart1-0/+635