Commit graph

339 commits

Author SHA1 Message Date
Felipe Sateler
64b259c2c9 qpaeq: use python3 instead of python 2
The script was already compatible, so lets just switch interpreter
2019-10-25 08:39:03 -03:00
Felipe Sateler
f3609ee3d0 qpaeq: Drop unused imports
Neither sip nor PyQt5 are used. From PyQt5 we only use the named imports just below
2019-10-25 08:34:59 -03:00
Rasmus Thomsen
bff163089c meson: link libintl if it's not provided by libc
This fixes the build on musl with external gettext
2019-09-25 04:42:03 +00:00
Jan Alexander Steffens (heftig)
493e7f3582
build-sys: meson: Add some missing checks
- Header and function checks from configure.ac
  (some libc, some libpthread, dladdr from libdl)
- Find iconv and check constness
2019-08-09 23:11:24 +02:00
Russell Treleaven
91fb54dab1 add script to collect information for bug reports 2019-08-09 12:31:48 +00:00
Arun Raghavan
7f44a623e0 build-sys: meson: Correctly set up RPATH
This was being done automatically by autotools, now we need to manually
specify this for each executable/library with a dependency in a
non-standard directory.
2019-08-05 09:52:32 +05:30
Arun Raghavan
f996ad0688 build-sys: meson: Add -Wl,no-delete to relevant libraries
This mirrors the autotools option for all server-side dynamic libraries.
2019-08-05 09:52:32 +05:30
Jan Alexander Steffens (heftig)
09231eaead meson: Fix build of padsp
- Rename "pulsedspdir" to the same "padsplibdir" that Autotools uses.

 - Add a new option "pulsedsp-location" that is only used for padsp.in,
   just like Autotools' --with-pulsedsp-location.

 - Use 'set' instead of 'set_quoted' to avoid PULSEDSP_LOCATION getting
   quoted twice.
2019-07-25 16:53:01 +00:00
S Page
6e392ae84f pasuspender: explain program argument in help
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/706
2019-07-16 06:23:50 +00:00
Arnaud Rebillout
f5c9ef59f3 meson: Install utils symlinks, install qpaeq
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2019-06-08 11:57:00 +02:00
scootergrisen
a4264de3a8 channel/s to channel(s) 2019-02-16 11:11:58 +00:00
Arun Raghavan
9e0aa31f0a pactl: Fix some corner cases when setting sink formats
Mostly deals with failure more gracefully, and NULL-initialises the
format array for safety.
2019-01-16 09:39:24 +05:30
Arnaud Rebillout
ce16b373b2 meson: Build pax11publish only if X11 is found
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:55 +05:30
Arnaud Rebillout
ea92c28218 meson: Create bindir and libdir variables
This is to avoid using the construct 'join_paths(prefix, get_option(...))'
everywhere in the meson files. It's better to settle the paths question
once and for all at the beginning.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:07 +05:30
Arnaud Rebillout
13202eb9ed meson: Add pulsedspdir option
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-12-27 17:25:07 +05:30
Marek Cernocky
65c9195e8f i18n: Fixed plural forms handling 2018-10-09 11:56:31 +03:00
Arnaud Rebillout
7f05b835df meson: Build and install man pages
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-10-04 08:44:18 +05:30
Arnaud Rebillout
5b0a1df228 meson: Enable oss module and padsp util
Regarding the module:

This is unlike the autotools where liboss-util is built as a library,
here we build everything in the oss module, as apparently there's no
other consumer for liboss-util.

Regarding padsp:

Setting the install mode for padsp requires meson 0.47, so instead we
set padsp.in as executable in the git repository (which is what glib
does for gdbus-codegen btw).

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-10-04 08:44:18 +05:30
Joseph Herlant
08d0dc6930
Fix typo: occured -> occurred 2018-09-17 09:52:36 -07:00
Stefan Huber
4f831e0d7a pacat: Fix code style 2018-08-11 13:36:51 +03:00
Arun Raghavan
114cdfbdde build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.

There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.

To use this, install meson (distro package, or mesonbuild.com) and run:

  $ cd <pulseaudio src dir>
  $ meson <builddir>
  $ ninja -C <builddir>
2018-06-21 05:50:29 +05:30
Felipe Sateler
ba2b748d40 qpaeq: fix Qt5 mainloop use
This change was missed in the Qt4 -> Qt5 conversion.
2018-04-11 15:26:19 +03:00
Andrius Štikonas
480e0e74f4 qpaeq: port to PyQt5 2017-12-12 06:28:40 +02:00
Tanu Kaskinen
61217528a1 qpaeq: change license from AGPL to LGPL v2.1
This removes one unnecessary exception in the PulseAudio licensing
terms. In December 2016 I asked permission from all qpaeq contributors
for the license change, and all gave the permission. I have archived the
emails here:
https://www.freedesktop.org/software/pulseaudio/misc/qpaeq_relicensing_emails.txt
2017-09-19 21:29:44 +03:00
Khem Raj
66885ad633 padsp: Make it compile on musl
break assumptions on glibc and there is no stat64 on non
glibc C libraries

See pulseaudio bug

https://bugs.freedesktop.org/show_bug.cgi?id=85319

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-05 13:46:26 +03:00
Denis Shulyaka
7ebe7b8a35 pacat: fix a memory issue
If only part of the buffer is written into stdout by stdout_callback,
the buffer_index variable is increased by the number of written bytes,
buffer_length variable is decreased while the allocated buffer size
remains the same. That suggests that the current allocated size is
calculated as (buffer_index + buffer_length). However the current
stream_read_callback implementation writes new data to the start of the
buffer and allocates too little space, so that (buffer + buffer_index +
buffer_length - 1) could actully point outside of the allocated buffer.
2017-07-31 04:41:10 +03:00
Arun Raghavan
8ce8c93cb7 padsp: Write only frame-aligned chunks to the stream
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=101121
2017-06-05 01:26:51 +03:00
Peter Meerwald-Stadler
a199b9045e build: Use #ifdef to check for #defines
for example, in case HAVE_MEMFD is #undef, checking with #if HAVE_MEMFD
gives a warning (gcc 5.4.1, Ubuntu)

pulsecore/shm.c: In function 'sharedmem_create':
pulsecore/shm.c:208:5: warning: "HAVE_MEMFD" is not defined [-Wundef]
 #if HAVE_MEMFD

use #ifdef or #if defined() to check for presence of a #define

Signed-off-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
2017-03-08 14:31:29 +01:00
Felipe Sateler
9ce55be610 padsp: allow overriding library install location
The current build script hardcodes the $pkglibdir in the padsp command.
This works and is a reasonable default. However, distributions that
know where they install, can override this path and thus make padsp
work for any architecture that has the library installed by using the
following configure argument:

   --with-pulsedsp-location='/usr/\\$$LIB/pulseaudio'

This works because ld.so considers $LIB a variable that will expand to
several location paths, depending on the architecture of the binary
being executed.

In debian, for example, this would work for libpulsedsp.so installed in
/usr/lib/x86_64-linux-gnu/ for amd64 and /usr/lib/i386-linux-gnu/ for
i386, with a single padsp command.
2017-01-19 03:00:45 +02:00
Ahmed S. Darwish
f7b8df50c7 pacat: Write to stream only in frame-sized chunks
Current pacat code reads whatever available from STDIN and writes
it directly to the playback stream. A minimal buffer is created
for each read operation; no further reads are then allowed unless
earlier read buffer has been fully consumed by a stream write.

While quite simple, this model breaks upon the new requirements of
writing only frame-aligned data to the stream (commits #1 and #2).
The kernel read syscall can return a length much smaller than the
frame-aligned size requested, leading to invalid unaligned writes.

This can easily be reproduced by choosing a starved STDIN backend:

  pacat /dev/random    pa_stream_write() failed: EINVAL
  echo 1234 | pacat    pa_stream_write() failed: EINVAL

or by playing an incomplete WAV file in raw, non-paplay, mode.

So guard against such incomplete kernel reads by writing only in
frame-aligned sizes, while caching any trailing partial frame for
subsequent writes.

Other operation modes are not affected. Non-raw paplay playback is
handled by libsndfile, ensuring complete reads, and recording mode
just writes to the STDOUT fd without any special needs.

CommitReference #1: 22827a5e1e
CommitReference #2: 150ace90f3
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=98475
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=77595

Suggested-by: David Henningsson <diwic@ubuntu.com>
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
2016-12-20 19:59:08 +02:00
Ahmed S. Darwish
f5315113a5 pacat: Synchronize STDIN and "write stream ready" events
Users reported pacat crashes when playing certain multi-channel
audio. For example:

  pacat --channels=2 /dev/zero    works
  pacat --channels=3 /dev/zero    pa_stream_write() failed: EINVAL
  pacat --channels=4 /dev/zero    works
  pacat --channels=5 /dev/zero    pa_stream_write() failed: EINVAL

pacat audio playback is pipe-like, from STDIN to PA write stream.
Meanwhile STDIN "ready to read" events got regularly triggered
before the write stream was even created, or at moments where the
stream could not accept any more audio.

In these out-of-sync cases, the write stream could not report the
appropriate buffer lengths it accepts, thus a default of 4K bytes
was chosen -- compatible by luck with some channel counts and
incompatible with others.

Instead of choosing a faulty default in these scenarios, mute the
the STDIN events until the write stream is available & queriable.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=98475
Reported-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
2016-11-24 20:40:04 +02:00
Peter Meerwald-Stadler
c99efbffd6 padsp: Fix flush and improve error handling
read() can return a number of bytes read less than k

in addition, handle EAGAIN and EOF

CID 1137981
2016-09-02 14:52:53 +02:00
Aidan Gauland
be4619e3f7 qpaeq: Don't set font-size on widgets
Setting the font-size CSS property on a widget overrides the system
font-size, and since qpaeq provides no mechanism for setting the
application's font-size, we should not do this.

This commit also removes the font-size property from commented-out calls to
setStyleSheet() so that if these are ever reinstated, this behaviour is
not reintroduced.

Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
2016-06-22 12:55:55 +05:30
Kamil Rytarowski
a1191874fe solaris: Illumos does not ship with SOUND_PCM* functionality
Code reference:
https://github.com/joyent/illumos-joyent/blob/master/usr/src/uts/common/sys/audio/audio_oss.h

Add autoconf checks for:
- SOUND_PCM_READ_RATE
- SOUND_PCM_READ_CHANNELS
- SOUND_PCM_READ_BITS

Some platforms like SunOS (Illumos) may ship without SOUND_PCM_* functionality

Thanks to Jonathan Perkin (Joyent) for Illumos code reference.
2016-01-22 13:25:29 +05:30
Peter Mattern
01aec46fb4 pacmd: Fix typo in set-default-* help
which was causing faulty output when running 'pacmd --help' on the shell
2015-10-30 18:47:16 +05:30
Deepak Srivastava
a3bf429efd Removed exclamation marks from user-visible messages.
<EP-E358F00C1D9A449EAE69225B9D2530F8>
According to rationale-"http://techbase.kde.org/Projects/Usability/HIG/Exclamation_points" as suggested in reported bug.
Component: misc

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=78563

Signed-off-by: Deepak Srivastava <srivastava.d@samsung.com>
2015-08-14 12:17:02 +03:00
Deepak Srivastava
c37698ddf8 patcl: Error msg from pactl not quite accurate for 'mute' commands
<EP-E358F00C1D9A449EAE69225B9D2530F8>
Updated the error string for mute commands in pactl. If someone forget to specify
the parameter on the commandline the resulting error message isn't quite right.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90117

Signed-off-by: Deepak Srivastava <srivastava.d@samsung.com>
2015-08-12 15:20:46 +02:00
Manish Sogi
1d4715c43f pacmd: Placeholders describing command line options should not have spaces
<EP-F69A421D31544C56BDE97C590307C014>
Buglink: https://bugs.freedesktop.org/show_bug.cgi?id=78565

Signed-off-by: Manish Sogi <manish.sogi@samsung.com>
2015-08-12 12:02:13 +02:00
Deepak Srivastava
8b3b39c7d8 padsp: Avoid possible deadlock. Unlocked i->mainloop before returning from default case.
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=91184

Signed-off-by: Deepak Srivastava <srivastava.d@samsung.com>
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2015-07-21 16:44:26 +02:00
Peter Meerwald
6942e13a36 padsp: Fix wrong condition discovered by -Wlogical-not-parentheses warning
warnings emited by gcc 5.1:

utils/padsp.c: In function 'dsp_trigger':
utils/padsp.c:1902:39: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
     while (!pa_operation_get_state(o) != PA_OPERATION_DONE) {
                                       ^
utils/padsp.c: In function 'dsp_cork':
utils/padsp.c:1937:39: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
     while (!pa_operation_get_state(o) != PA_OPERATION_DONE) {
                                       ^
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2015-05-27 19:16:38 +02:00
David Henningsson
17e939dc15 core-util, pactl: Make one localised and one non-localised version of pa_yes_no
We currently use pa_yes_no to write module arguments, so they can not be
localised. Instead add a new pa_yes_no_localised function and use it in pactl
(and thus, revert all other places to use the non-localised version).

BugLink: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1445358
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2015-04-20 17:36:53 +02:00
Tanu Kaskinen
9860bc30ac pactl: Fix relative volume parsing
The recent change to reject leading '+' in pa_atod() broke the
relative volume parsing in pactl. This fixes that.
2015-04-10 11:19:18 +03:00
Peter Meerwald
ebee1a6306 pacat: Fix comment wording
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2015-02-26 23:30:25 +01:00
Peter Meerwald
8a08e7e38a pacat: State purpose of program depending how it was invoked
see https://bugs.freedesktop.org/show_bug.cgi?id=68135

state purpose of paplay/parec/pamon/parecord/pacat when invoked with -h

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2015-02-12 20:36:58 +01:00
Ondrej Holecek
5effc83479 update FSF addresses to FSF web page
FSF addresses used in PA sources are no longer valid and rpmlint
generates numerous warnings during packaging because of this.
This patch changes all FSF addresses to FSF web page according to
the GPL how-to: https://www.gnu.org/licenses/gpl-howto.en.html

Done automatically by sed-ing through sources.
2015-01-14 22:20:40 +02:00
Boris Egorov
f5c001af5f pacmd: add missing 'else' keyword
See code above for proper behavior.

Issue detected by PVS Studio
2015-01-13 11:27:47 +01:00
Felipe Sateler
4edc15346b pactl: fix getopt indexing for set-*-volume
When pactl is invoked with any options or the -- specifier, optind will
be > 1. Therefore using a static 3 value is wrong. Use optind+2 as both
offset and count difference.

Bug-Debian: http://bugs.debian.org/774810
2015-01-08 13:25:02 +01:00
Peter Meerwald
6d1fd4d1aa pactl: Remove deprecated 'stat' behaviour
the stat command should only output statistics, not info

behaviour was deprecated anno 2011 in 8ace9185 "pactl: Make stat backwards
compatible" -- fix this now

v2: (thanks Tanu Kaskinen):
* adjust shell completion

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
2014-11-04 22:22:19 +01:00
Tanu Kaskinen
71ead4989a authkey: Rename pa_authkey_load_auto() to pa_authkey_load()
pa_authkey_load() was removed earlier, so the _auto suffix isn't
necessary any more.
2014-06-24 13:15:11 +03:00
Tanu Kaskinen
5141188ca8 client-conf: Move x11 and env loading to pa_client_conf_load()
This simplifies the code a bit.
2014-06-24 13:13:50 +03:00