Commit graph

1014 commits

Author SHA1 Message Date
Wim Taymans
f65d71dd5b alsa: support planar formats 2020-07-01 11:43:25 +02:00
Wim Taymans
6e03b4005d increase amount of datas in a buffer 2020-07-01 11:43:22 +02:00
Frédéric Danis
41d7ccc336 a2dpsink: Process right amount of data with sbc_encode
sbc_encode() can only process data with at least this->codesize bytes.
When encode_buffer() is called with less then codesize bytes, accumulate
those bytes in a temporary buffer up to codesize length, then SBC encode
them.
Maximum size for SBC buffer is (subbands * blocks * channels * 2) with max
subbands = 8, max blocks = 16, max channels = 2, i.e. 512.

Fixes !277
2020-06-27 13:03:24 +02:00
Wim Taymans
35bb7d794b dlclose on errors 2020-06-23 15:25:45 +02:00
Wim Taymans
4be29c1124 resample: load more data on aarch64 because we can 2020-06-19 11:47:57 +02:00
Wim Taymans
67b692396b v4l2: remove format checks
When a caller sets a format, we do this regardless of the currently
configured format.
2020-06-18 18:26:00 +02:00
Wim Taymans
6e74edc14e v4l2: always stop and clear buffer when setting a format
The caller frees the buffers after setting a new format.
2020-06-18 18:23:36 +02:00
Julian Bouzas
1f1386879b a2dpsink: only request new data when buffer is done 2020-06-18 08:02:50 +00:00
Simon McVittie
b852b58f82 Optionally install examples and tests
This makes it easier to test PipeWire in its "as-installed" state,
for example in an OS distribution.

The .test metadata files in ${datadir}/installed-tests/${package} are
a convention taken from GNOME's installed-tests initiative, allowing a
generic test-runner like gnome-desktop-testing to discover and run tests
in an automatic way.

The installation path ${libexecdir}/installed-tests/${package} is also
a convention borrowed from GNOME's installed-tests initiative.

In addition to the automated tests, I've installed example executables
in the same place, for manual testing. They could be separated into
a different directory if desired, but they seem like they have more
similarities with the automated tests than differences: both are there
to test that PipeWire works correctly, and neither should be relied on
for production use. Some examples are installed in deeper subdirectories
to avoid name clashes.

Signed-off-by: Simon McVittie <smcv@debian.org>
2020-06-16 17:58:02 +00:00
raghu447
cecbe8ff17 libcamera: cleanup build warnings 2020-06-16 17:53:54 +00:00
Wim Taymans
fc57f05e56 audioconvert: reduce memory usage
We only need as many ports and buffer data as the maximum number
of channels, which is 64.
Fix empty output size. We're only ever going to fill this with
float samples.
2020-06-16 15:55:32 +02:00
raghu447
9c631842cb libcamera: cleanup unused variables 2020-06-15 17:45:01 +05:30
raghu447
7c05a7f7b4 libcamera: fixed a small leak and double free 2020-06-15 12:02:22 +05:30
raghu447
40ef322a34 libcamera: Fixed the crash issue when rtkit is enabled. 2020-06-12 12:24:00 +05:30
George Kiagiadakis
da9d17e73e bluez5: don't add transport twice in the device transports list
The transport is already added in profile_new_connection(), unless
is_new is TRUE

Apart from being wrong, adding the same node twice in a list also causes
spa_list_foreach() to loop forever...
2020-06-10 18:24:07 +03:00
Stéphane Cerveau
e7cc0f69e3 libcamera: fix implicit dependency to libdrm
libcamera is depending on libdrm in libcamera_wrapper.cpp but it was
implicitely including the header drm_fourcc.h with libcamera
file pixel_format.h

With this patch, the libcamera plugin should explicitely depends on
libdrm as it needs DRM fourcc and should not depend on multiple
inclusion from libcamera.

Add a FourCC for Motion-JPEG compressed format. This is a temporary
addition until the format gets merged in the upstream kernel.
2020-06-10 09:20:16 +00:00
Wim Taymans
a44bea0b6a tests: check cpu flags
Use the support plugin to load the CPU detection API and check
for the right CPU flags before running the test.

Fixes #246
2020-06-09 08:00:00 +02:00
Wim Taymans
c13c028ebb bluez5: fix leaks 2020-06-05 15:49:39 +02:00
raghu447
af263187ea Reverting redundant changes 2020-06-04 10:36:39 +02:00
raghu447
9024cc4444 Integrating libcamera 2020-06-04 10:36:39 +02:00
Wim Taymans
4dfd60f838 add some more debug 2020-06-02 17:15:47 +02:00
Wim Taymans
c4b87aa5e2 audioadapter: clear convert handle to avoid leaks 2020-06-02 17:14:23 +02:00
Wim Taymans
7d88c37e5b alsa-seq: clear the midi event queue on close to avoid leak 2020-06-02 17:13:53 +02:00
Wim Taymans
d2bd076a97 alsa: close output handler to avoid a leak 2020-06-02 17:13:26 +02:00
Wim Taymans
bb1cb530fc add more debug of fd create and close 2020-06-02 14:06:51 +02:00
Wim Taymans
1246116f06 bluez: free object path 2020-06-01 15:37:57 +02:00
Wim Taymans
7f60ebff27 logger: handle file without '/' in it 2020-05-29 20:32:55 +02:00
Wim Taymans
9fa68f6d46 neon: use regular registers only 2020-05-20 15:24:25 +02:00
Wim Taymans
4f60dcadc6 vulkan: check results of stat 2020-05-20 15:24:25 +02:00
Wim Taymans
f1dc3d9728 vulkan: fix macro variables 2020-05-20 15:24:25 +02:00
Wim Taymans
ff4a314022 use fstat when we can
This avoids having things change between the stat and open.
2020-05-20 15:24:25 +02:00
Wim Taymans
45c62dfde6 a2dp: check and log return value of fcntl 2020-05-20 15:24:25 +02:00
Wim Taymans
a19bab4b16 avoid following NULL pointers 2020-05-20 15:24:25 +02:00
Wim Taymans
fea16cca14 channelmix: support Midi volume control 2020-05-13 15:41:50 +02:00
Wim Taymans
498cb91750 channelmix: fix enum_params
0 should be returned when enum is done or else we loop forever.
2020-05-13 15:41:47 +02:00
Martin Koch
fefdc26f84 plugin: workaround for AVX intrinsic: "_mm256_setr_m128()" missing in GCC
Signed-off-by: Martin Koch <martin.koch@ese.de>
2020-05-13 08:53:43 +00:00
Wim Taymans
4000409c80 channelmix: allow smaller control buffers 2020-05-12 18:01:47 +02:00
Wim Taymans
055c8d6b63 channelmix: improve control handling
We can't write to the input control buffer so keep track of the
control offset ourselves ans skip what we already handled.
2020-05-12 17:52:06 +02:00
Julian Bouzas
5e37131cf8 channelmix: add control port to process control sequences
Channelmix has now a control port that receives control sequences. Each Control
of those sequences are handled individually by channelmix in order to change
properties when a specific amount of samples have been processed.

Co-authored-by: Wim Taymans
2020-05-12 17:51:16 +02:00
Wim Taymans
8d5571fa4c audiotestsrc: fix function signature 2020-05-12 17:23:35 +02:00
Wim Taymans
42af40675d v4l2: mark data CORRUPTED
We need to mark the data corrupted in the chunk, not buffer flags.
2020-05-09 19:38:16 +02:00
Wim Taymans
8dcd6c4417 improve debug 2020-05-09 19:21:55 +02:00
Wim Taymans
1ca7713057 implement NEAREST flag
when the NEAREST flag is set and the param could not be completely
set, set_param should return 1 to indicate this.
2020-05-08 17:52:30 +02:00
Wim Taymans
12b8e095c7 v4l2: log error when format doesn't match 2020-05-08 17:35:57 +02:00
Wim Taymans
8513150bdf resample: use calloc to make sure fields are 0 2020-05-08 16:13:34 +02:00
Wim Taymans
b53cc6feb8 improve debug
Log device name and stream direction
Don't log xrun errors in alsa, we signal the xrun signal, which should
take care of logging if any.
Log quantum in xrun.
ratelimit xrun messages.
2020-05-08 12:13:59 +02:00
Wim Taymans
6203fb967c log: make line==0 suppress the file/line/func output
Disable file/line/func output for pod debug
2020-05-07 20:42:52 +02:00
Wim Taymans
79fd4c941f debug: Don't debug EBUSY params
When a device returned EBUSY when enumerating params, don't try to
enumerate (and fail) them again.
2020-05-07 17:15:46 +02:00
Wim Taymans
995fafa5be alsa-seq: remove the queue for system announce port
The announce messages are not put in a queue so we don't need
to allocate one (and a timer). Without the timer, we avoid wakeups
and consume less power.

See #225
2020-05-06 11:19:46 +02:00
Wim Taymans
713f242853 audioadapter: handle -ENOENT from enum_param 2020-05-03 11:45:06 +02:00