Max Kellermann
d5d5705213
pcm/Export: update API documentation
2019-06-18 10:58:26 +02:00
Max Kellermann
96d74e77eb
pcm/Dsd{16,32}: move the conversion loop to a separate function
2019-06-17 22:51:01 +02:00
Max Kellermann
28e07e900f
pcm/Export: convert the DSD bools to an enum
...
These options are exclusive.
2019-06-17 22:35:00 +02:00
Max Kellermann
32380d1db0
pcm/Dop: stash odd frames away for the next call
...
First part of the "real" fix for
https://github.com/MusicPlayerDaemon/MPD/issues/469
2019-06-17 22:18:44 +02:00
Max Kellermann
c9f1354e4d
pcm/RestBuffer: new utility class
2019-06-17 22:18:41 +02:00
Max Kellermann
e3f9e96eef
pcm/Dop: convert public function to stateful class
...
Preparing to add more state.
2019-06-17 22:16:29 +02:00
Max Kellermann
8f9b3cbf0e
pcm/Dop: add separate dsd_buffer for DSD_U16/32
...
The dop_buffer will be moved out soon.
2019-06-17 22:11:23 +02:00
Max Kellermann
458a1beed9
AudioFormat: move MAX_CHANNELS to pcm/ChannelDefs.hxx
...
Reduce header dependencies.
2019-06-17 22:11:08 +02:00
Max Kellermann
33f5e03e80
Merge branch 'v0.21.x'
2019-06-17 22:06:54 +02:00
Max Kellermann
d478bdda8e
pcm/Export: document that Export() may return an empty buffer
2019-06-17 21:07:29 +02:00
Max Kellermann
e87f0ca771
pcm/Pcm*: drop more "Pcm" prefixes from source file names
2019-06-17 11:17:48 +02:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
9fcd33cc8d
pcm/Dop: move the conversion loop to separate function
2019-06-16 12:23:48 +02:00
Max Kellermann
96ff6b9b8b
pcm/Dop: remove redundant inline
keywords
2019-06-16 12:23:38 +02:00
Max Kellermann
fd5e74dbd0
pcm/Pcm{Dop,Export}: drop "Pcm" prefix
2019-06-16 12:11:44 +02:00
Max Kellermann
b64571f4a5
pcm/Export: update API documentation
2019-06-16 11:52:57 +02:00
Max Kellermann
6addc9d6e0
pcm/PcmConvert: remove unused attribute "dest_format"
2019-04-04 21:06:28 +02:00
Max Kellermann
e78d825059
pcm/PcmConvert: eliminate Open() and Close()
...
Let the constructor and destructor do this. This means that all users
have to be converted to allocate PcmConvert dynamically.
2019-04-04 21:01:08 +02:00
Max Kellermann
f2cacaf6b6
AudioFormat, pcm/Dsd*: remove redundant inline
keywords from constexpr
functions
2019-03-08 10:29:03 +01:00
Max Kellermann
c176d94598
system/ByteOrder: move to util/
2019-03-08 10:21:10 +01:00
Max Kellermann
ce49d99c2f
check.h: remove obsolete header
...
Since we switched from autotools to Meson in commit
94592c1406
, we don't need to include
`config.h` early to properly enable large file support. Meson passes
the required macros on the compiler command line instead of defining
them in `config.h`.
This means we can include `config.h` at any time, whenever we want to
check its macros, and there are no ordering constraints.
2018-11-19 16:33:49 +01:00
Max Kellermann
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
Max Kellermann
c97469283c
pcm: build dsd2pcm only if -Dtest=true
2018-10-30 13:31:43 +01:00
Max Kellermann
804ccddf7e
pcm/Clamp: convert to constexpr
2018-10-30 00:08:25 +01:00
Max Kellermann
bb5918932b
pcm/PcmUtils: rename to Clamp.hxx
2018-10-30 00:05:58 +01:00
Max Kellermann
aa77bc323f
pcm/FloatConvert: make IntegerToFloatSampleConvert::Convert() constexpr
2018-10-29 23:52:25 +01:00
Max Kellermann
9b6a2589e5
Merge branch 'v0.20.x'
2018-10-29 23:06:32 +01:00
Max Kellermann
cc5fab28af
pcm/FloatConvert: fix compile-time integer overflow for S32
...
The compile-time calculation for `factor` overflows because `1<<31`
cannot be represented by `int`. By casting to `uintmax_t` first, we
can avoid this overflow.
Closes #380
2018-10-29 22:50:54 +01:00
Max Kellermann
a3f7127e72
pcm/FloatConvert: use FloatToIntegerSampleConvert::factor for IntegerToFloatSampleConvert::factor
2018-10-29 22:50:06 +01:00
Max Kellermann
b0a6a569df
pcm/FloatConvert: add static_assert
on the factor
...
This assertion currently fails for S32 due to integer overflow (#380 ).
2018-10-29 22:38:32 +01:00
Max Kellermann
94592c1406
build with Meson instead of autotools
...
So long, autotools! This is my last MPD related project to migrate
away from it. It has its strengths, but also very obvious weaknesses
and weirdnesses. Today, many of its quirks are not needed anymore,
and are cumbersome and slow. Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Max Kellermann
863722545f
player/CrossFade, ...: use lround()
2018-09-22 19:08:03 +02:00
Max Kellermann
ec54754e22
Compiler.h: move to util/
2018-08-20 16:19:17 +02:00
Max Kellermann
4d80419982
pcm/ConfiguredResampler: use struct ConfigData
2018-07-17 23:04:26 +02:00
Max Kellermann
5b192beaa5
config/Global: remove ConfigBlock::SetUsed() call, let caller do that
...
This fixes an old bug which caused the "unused" warnings to be
unreliable; only the first block in the list was marked as being
"used", no matter if it was really used, and the rest was never marked
as "used", suppressing all warnings for them.
2018-07-17 21:08:41 +02:00
Max Kellermann
816603fd9a
config/Config*: rename files, drop "Config" prefix
2018-07-16 19:50:07 +02:00
Max Kellermann
86a37d0ed6
Main, pcm/SampleFormat, command/Error: remove obsolete GCC version checks
2018-07-16 11:04:05 +02:00
Max Kellermann
9a29d02e7e
Merge branch 'v0.20.x'
2018-07-06 19:43:01 +02:00
Max Kellermann
6f3c0d0a60
AudioFormat: include cleanup
2018-07-06 19:35:31 +02:00
Max Kellermann
b7dc3fae7c
Merge branch 'v0.20.x'
2018-03-15 20:08:13 +01:00
Max Kellermann
a2340c313f
pcm/PcmDop: round down to the nearest multiple of 4 DSD bytes
...
There was a discrepancy between what was written to the buffer and the
size returned by pcm_dsd_to_dop(): the "for" loop uses num_frames/2,
rounding down, while the return value is num_samples which is
num_frames*channels, without rounding. This could cause undefined
data at the end of the destination buffer if the source buffer size
was not aligned to multiples of 8 bytes (4 DSD bytes per channel).
The latter however can occur in the 0.21 branch after commit
a06bf388d9
Closes #233
2018-03-15 20:02:00 +01:00
Max Kellermann
37b07a5e7c
pcm/PcmDop: use size_t
2018-03-15 20:00:14 +01:00
Max Kellermann
65bbb0e0aa
release v0.20.17
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlqAMO0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEg8eD/49NlFvlNdkamgYvh7MI1Sn67yKAwQt+N51
W0hVnmXwPoSg76gfWw8J9kVyQy/jEkaCxsPF/UuEbH5jzqAC0y8hwYVRkJaRc9wN
ZfwHvLHeaUxQweoguEwRSREy4ZC4ImQOK+eAxI1R43mqxxyhko1Akc1NmRVWzYfv
/FGmAjTi1U6FR/yDpdSFn1NdlPmIgZ4WDuRsDT2NrshX/Bb32FiyZBytvek2P8n/
QNgXv18E4yWXSb+zBYhPy/eaKhGasyjI3cbht1F0hNW9Yo/BsFxDuwXrX1vNBaOS
E3Dux4s/nfcJ4RMRjmrkFwXImCvxt7+AGfh8RYBXuwqMExXz2kZjIs4ZVvO7Nu9A
pFDJQwRIojXMfk73LU/MEpmNNEXhvfQLYkrM7poSqYaOr8SWMszqSgNnnfq6+flB
sJbstgAStI6lL0jy0HrtMTvPVEiAGh6wCvMy/r2G9XUAyw76ccOg7MaIldn0MHJv
A51+GfRTi4ILH0ReL1BGAg9nG97uFmRAWGkfkhtyD540xGRk7x5R8/ml4zFogHN6
SbrV0NPdwk+uFd0y2znQT2gWyjc0id4WEKEoHX+Gl6c5qtPIfrq+PQPyk9kR+u+i
AxwqMoKQer6Ji5qnsvCiKSkaGGiVNivrZ11jDWNCZaKjmvlKlvj/P5GxbPpORorq
v4ru/4vNXQ==
=v4t8
-----END PGP SIGNATURE-----
Merge tag 'v0.20.17'
release v0.20.17
2018-02-11 13:22:43 +01:00
Max Kellermann
6de92bb42b
pcm/Order: fix size calculation with 8 channels
...
This was a buffer overflow bug which could cause MPD crahes when
playing back 8 channels with the ALSA output plugin.
Closes #216
2018-02-09 19:01:12 +01:00
Max Kellermann
4a120f8090
Merge branch 'v0.20.x'
2018-01-05 10:10:17 +01:00
Max Kellermann
f6ec43b9ec
pcm/Resampler: add virtual method Flush()
...
Wired to Filter::Flush().
Closes #153
2018-01-02 23:17:25 +01:00
Max Kellermann
c68ed40661
pcm/SoxrResampler: implement method Reset()
2018-01-02 21:53:09 +01:00
Max Kellermann
3bb9c704de
pcm/*: add "noexcept"
2018-01-01 19:07:33 +01:00
Max Kellermann
cd38aa3b2a
Merge branch 'v0.20.x'
2017-12-26 20:03:18 +01:00
Max Kellermann
98472a8104
pcm/SampleFormat: remove wrong "malloc" attribute
2017-12-23 08:38:22 +01:00