summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-02-05source: Increase max outputs per sourceHEADmasterTanu Kaskinen1-1/+1
This change is just for being symmetric with sinks, which got this change in 26bf2df903b1c7439ad3eef0dc3bb1e777835cc3.
2014-02-04protocol-native: Fix a crashTanu Kaskinen1-0/+1
Without this check pa_source_output_set_volume() crashes if so->volume_writable is false. The same check already exists for sink inputs. BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=74529
2014-01-30thread-win32: Implement pa_thread_free_nojoin()Tanu Kaskinen1-0/+7
This fixes a build error with mingw32: pulsecore/.libs/libpulsecommon_4.99_la-lock-autospawn.o: In function `unref': /home/abuild/rpmbuild/BUILD/pulseaudio-4.99.2/src/pulsecore/lock-autospawn.c:123: undefined reference to `pa_thread_free_nojoin' collect2: error: ld returned 1 exit status pa_thread_free_nojoin() was initially only implemented for the pthread based pa_thread backend, because it was incorrectly assumed that autospawning (the only user of pa_thread_free_nojoin()) is not used on Windows. Reported-By: Michael DePaulo <mikedep333@gmail.com>
2014-01-29card-restore: Fix a memory leakTanu Kaskinen1-0/+1
entry_read() may set entry->profile, so we need to free that string before we can replace it with a new string.
2014-01-28resampler: Resample first followed by remapping if have more out channels ↵Peter Meerwald1-12/+32
than in channels Reintroduces a cleaned-up version of commit 30ce3a14e5ae1cd316a18bec95b831c07ac57a1a which was reverted by 1ce71cbd8206d1be59ac62274ad83cdbe693a96a; for more information see http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/17479/focus=17487 The patch intends to reduce computational load when resampling AND remapping. The PA resampler performs the following steps: sample format conversion -> remapping -> resampling -> sample format conversion In case the number of output channels is higher than the number of input channels, the resampler has to be run more often than necessary. E.g. in case of mono to 4-channel remapping, the resampler runs on 4 channels separately. To ímprove this, the PA resampler pipeline is made adaptive: if out-channels <= in-channels: sample format conversion -> remapping -> resampling -> sample format conversion if out-channels > in-channels: sample format conversion -> resampling -> remapping -> sample format conversion Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
2014-01-28resampler: Implement leftover handling in convert_to_work_format()Peter Meerwald1-9/+27
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2014-01-28resampler: Extend fit_buf() helper to copy leftover data to new bufferPeter Meerwald1-35/+28
the patch changes the interface of the (internal) fit_buf() function: fit_buf() manages the memblock of the buf chunk, it reallocates the memblock if the requested number of bytes ('len') if larger than the memblock's size ('size') and optionally preserves 'copy' bytes the code should be in line with the comment now Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2014-01-27module: Replace rindex() with strrchr()Tanu Kaskinen1-1/+1
rindex() appears to be "non-standard" to an extent, and it caused a build failure on mingw32. From the man page of rindex(): "POSIX.1-2008 removes the specifications of index() and rindex(), recommending strchr(3) and strrchr(3) instead."
2014-01-26device-manager: Don't try to use unlinked devicesTanu Kaskinen1-0/+4
This fixes an assertion crash: [pulseaudio] source.c: Assertion 'PA_SOURCE_IS_LINKED(s->state)' failed at pulsecore/source.c:734, function pa_source_update_status(). Aborting. The crash happened when a Bluetooth headset profile was changed from a2dp to hsp. During the profile change three devices are created: a sink, a monitor source for the sink, and a regular source. First pa_sink/source_new() are called for each device, and that puts the devices to u->core->sinks/sources. Then, pa_sink_put() is called for the sink, and that in turn calls pa_source_put() for the source. At that point module-device-manager decides to reroute all source outputs. The non-monitor source that the Bluetooth card created hasn't been linked yet at this stage, because it will only be linked after the sink and the monitor source have been linked. So, module-device-manager should take into account during the rerouting that not all sinks and sources are necessarily linked. This patch does that. Reported-By: Iskren Hadzhinedev <i.hadzhinedev@gmail.com>
2014-01-26caps: Don't require --without-caps on FreeBSDTanu Kaskinen1-0/+3
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=72580
2014-01-26daemon: Remove deprecated Encoding from .desktop filesWim Taymans2-2/+0
Encoding is deprecated according to http://standards.freedesktop.org/desktop-entry-spec/latest/apc.html
2014-01-24build-sys: Move ORC_SOURCE definitions outside of "if HAVE_ORC"Dominique Leuenberger2-2/+4
Not having ORC_SOURCE defined results in different tarballs depending on whether the dev issuing 'make dist' has orc support enabled or disabled. Specifying ORC_SOURCE unconditionally addresses that, without causing negative effects on users not having orc in the end.
2014-01-23build-sys: Add tests/runtime-test-util.h to the tarballTanu Kaskinen1-3/+3
The file is used by three test binaries, but none of them mentioned it in Makefile.am, which caused the file to be left out of the tarball.
2014-01-23build-sys: Bump sonamesTanu Kaskinen1-3/+3
The bigger than usual bump in libpulse-simple was warranted by the change in pa_simple_flush() that allows also record streams to be flushed. There are no changes to the function signature, but it's in practice a change in the ABI anyway, because new clients using the new possibility won't work with older versions of the library. libpulse-mainloop-glib got a bug fix in commit 68156d3f79b67c77f88050e6c9de180698377c64.
2014-01-23introspect, thread-mainloop: Fix Doxygen "since" tagsTanu Kaskinen2-4/+4
2014-01-17combine-sink: fix segfaultDaniel Albers1-1/+3
2014-01-17Update Russian translationAlexander Potashev1-1566/+1987
Translated in sync with the guidelines at http://l10n.lrn.ru/wiki/Pulseaudio
2014-01-17Update Ukrainian translationYuri Chornoivan1-1427/+1507
2014-01-15sink, source: Remove useless attach/detach stuffTanu Kaskinen4-70/+0
The removed stuff wasn't used anywhere.
2014-01-15Revert "ladspa-sink: Handle empty chunks in sink_input_pop_cb"Tanu Kaskinen1-13/+6
This reverts commit dbe66b0b5e6b6e24df45bda8bf656836f18e7f4b. I accidentally pushed this patch that was superseded by e96785c1c34706e902f28c25844f31d8201db2b2.
2014-01-15ladspa-sink: Set a silence memchunk for the memblockqBen Brewer1-1/+5
A crash was observed that was caused by pa_memblockq_peek() returning a NULL memblock in sink_input_pop_cb(). The scenario where this was happening was 1. Delete 2 rtp-recv's connected to a ladspa-sink 2. Delete ladspa-sink 3. Delete alsa-sink 4. Create alsa-sink 5. Create ladspa-sink 6. Create 2 rtp-recv's connected to the ladspa-sink The crash was probably caused by a rewind that made the read index go negative while the write index was at least zero, causing there to be a gap in the memblockq. The problematic rewind might have been caused by adding the rtp-recv stream to the ladspa-sink. That has not been proven, but this looks very similar to the bug that was fixed in module-virtual-sink in commit 6bd34156b130c07b130de10111a12ef6dab18b52.
2014-01-15ladspa-sink: Handle empty chunks in sink_input_pop_cbBen Brewer1-6/+13
2014-01-15zeroconf-discover: Specify the interface when connecting to a link-local ↵Héctor Martín1-2/+9
IPv6 address BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=40785
2014-01-15alsa: Mute "Bass Speaker" when using headphones or lineoutTanu Kaskinen3-0/+12
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=73604
2014-01-14rtp-send: Remove "don't inhibit auto-suspend" flagBen Brewer1-1/+0
A source is no longer considered idle in pa_source_check_suspend when module-rtp-send is consuming data from it.
2014-01-11build-sys: Fix building with --as-neededTanu Kaskinen1-2/+3
pulsecore/core-format.c was recently added to libpulsecommon, and core-format.c depends on functions in libpulse, which libpulsecommon doesn't link to. That broke building with --as-needed. This patch adds pulse/format.c to libpulsecommon, so that core-format.c doesn't need to depend on libpulse any more. format.c pulls in also the dependency to json-c. Reported-By: Jan Steffens <jan.steffens@gmail.com>
2014-01-10rtp-recv: Only try adding the group membership for multicast addressesLaurentiu Nicola1-8/+17
2014-01-10caps: Use standard macro when checking for LinuxTanu Kaskinen1-3/+3
linux and __linux are non-standard, according to http://sourceforge.net/p/predef/wiki/OperatingSystems/ Reported-By: Damir Jelić <poljarinho@gmail.com>
2014-01-10alsa-card: Don't free the modargs in pa__initPeter Meerwald1-26/+19
The modargs are in both cases (a succesfull as well as a failed module initialization) freed already in pa__done(). To avoid leaking modargs memory before they are assigned to u->modargs, the code is reorganized to first allocate userdata, and then allocate the modargs. Local variable ma is not needed anymore. discussion here http://lists.freedesktop.org/archives/pulseaudio-discuss/2013-December/019661.html Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Reported-by: poljar (Damir Jelić) <poljarinho@gmail.com>
2014-01-08format: Add some error loggingTanu Kaskinen1-5/+26
2014-01-08stream: Mention pa_stream_new_extended() in the high-level stream creation ↵Tanu Kaskinen1-3/+8
documentation
2014-01-08stream: Improve pa_stream_connect_playback() documentationTanu Kaskinen1-1/+5
2014-01-08def, format: Document how to leave PCM parameters to be decided by the serverTanu Kaskinen2-9/+85
2014-01-08sink-input, source-output: Interpret missing PCM parameters in format info ↵Tanu Kaskinen2-112/+69
as a request to decide those parameters at the server end The "fix flags" (PA_SINK_INPUT_FIX_FORMAT etc.) don't work properly with the pa_stream_new_extended() interface. This patch fixes it so that the same effect can be achieved by leaving some of the PCM parameters unspecified in format info objects. Also, when converting a sample spec to a format info when using the old pa_stream_new() interface, the "fix flags" are taken into account in that conversion. BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=68952
2014-01-08stream: Remove a volume channel validity checkTanu Kaskinen1-1/+0
The check is done for clients that use pa_stream_new() but not for clients that use pa_stream_new_extended(). This is inconsistent. We could check that the volume channels match the channels set in the format info struct that is passed to pa_stream_new_extended(), but that doesn't work if the format info doesn't contain the channel information (that can happen if the client wants the server to choose the channel count for the stream). And it should also be possible to pass a mono volume for a multi-channel stream. The check could be extended to handle all these cases, but I don't see much point in wasting time on that. The server will anyway validate the stream parameters, it's not particularly important to fail already when the stream is being created at the client side.
2014-01-08stream-util: Add pa_stream_get_volume_channel_map()Tanu Kaskinen3-0/+137
The new function isn't used yet, but it soon will.
2014-01-08format, core-format: Constify some function parametersTanu Kaskinen4-32/+32
2014-01-08sink-input, source-output: Do routing related validity checks immediately ↵Tanu Kaskinen2-9/+11
after routing It's more logical that way.
2014-01-08core-format: Add pa_format_info_from_sample_spec2()Tanu Kaskinen2-0/+55
The function will be used in pa_sink_input_new() and pa_source_output_new() to convert the sample spec given by the client to a format info object. The set_format, set_rate and set_channels will be set according to the stream flags (PA_SINK_INPUT_FIX_FORMAT etc.).
2014-01-08core-format: Add pa_format_info_to_sample_spec2()Tanu Kaskinen2-0/+76
The function will be used in pa_sink_input_new() and pa_source_output_new(). The fallback parameters are used to merge the data in the format info with the sink/source sample spec and channel map, when the format info is lacking some information.
2014-01-08format: Simplify pa_format_info_to_sample_spec()Tanu Kaskinen1-10/+5
2014-01-08core-format: Add pa_format_info_get_channel_map()Tanu Kaskinen3-12/+29
2014-01-08core-format: Add pa_format_info_get_channels()Tanu Kaskinen3-4/+27
This also fixes an issue in pa_format_info_to_sample_spec(): it did no validation for the channels value. Now the validation is taken care of in pa_format_info_get_channels().
2014-01-08core-format: Add pa_format_info_get_rate()Tanu Kaskinen3-3/+28
This also fixes an issue in pa_format_info_to_sample_spec(): it did no validation for the rate value. Now the validation is taken care of in pa_format_info_get_rate().
2014-01-08core-format: Add pa_format_info_get_sample_format()Tanu Kaskinen3-7/+33
2014-01-08Move pa_format_info_to_sample_spec_fake() to core-formatTanu Kaskinen4-23/+86
I will need to use the function from outside libpulse. I added the channel map argument, because the function will be called from another function that is expected to initialize the channel map. I don't know if it's in practice necessary, but it shouldn't do any harm either.
2014-01-03volume-test: Increase the allowed number of rouding errorsTanu Kaskinen1-1/+7
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=72374
2014-01-03module-rtp-recv: Add an argument for latencyLaurentiu Nicola1-3/+15
2014-01-03caps: Remove the FreeBSD implementation of pa_drop_caps()Tanu Kaskinen1-2/+0
Quoting Ryan Lortie from [1]: I assumed from my reading of the Linux code ("cap_clear()...") that it was clearing all capabilities of the process when in fact it is only clearing the "special to root" capabilities. The FreeBSD version of the code indeed clears _all_ capabilities beyond ones that the process already has (ie: cannot open any new files, create sockets, etc.) This has a pretty obvious adverse effect on pulseaudio's ability to do what it needs to do -- indeed, it bombs out pretty quickly due to an inability to read its own config file. [1] https://bugs.freedesktop.org/show_bug.cgi?id=72580#c11
2014-01-03alsa-mixer: Free the description key in alsa_path_free().poljar (Damir Jelić)1-0/+1