Rosen Penev
a859de6806
sndfile: fix compilation with clang's libc++
...
error: non-constant-expression cannot be narrowed from type 'sf_count_t'
(aka 'long long') to 'size_type' (aka 'unsigned int') in initializer list
[-Wc++11-narrowing]
215 | std::span{buffer, num_frames * frame_size},
| ^~~~~~~~~~~~~~~~~~~~~~~
note: insert an explicit cast to silence this issue
215 | std::span{buffer, num_frames * frame_size},
| ^~~~~~~~~~~~~~~~~~~~~~~
| static_cast<size_type>()
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2024-01-03 12:18:52 -08:00
Max Kellermann
42f6a0441c
use [[gnu::...]] attributes
2023-03-06 16:14:15 +01:00
Max Kellermann
148aca23be
use SPDX IDs, replacing the long copyright headers
2023-03-06 14:59:48 +01:00
Max Kellermann
cc0def15c4
Copyright year 2022
2022-07-14 17:59:35 +02:00
Max Kellermann
c34f6ed8c0
decoder/Client: pass std::span to SubmitData()
2022-07-11 22:37:38 +02:00
Max Kellermann
502e5f006a
decoder/*: use std::string_view instead of StringView
2022-07-04 14:50:18 +02:00
Max Kellermann
b29a43b4d7
decoder/mad, ...: more libfmt logging
2021-06-25 20:52:08 +02:00
Max Kellermann
5348f8c9c8
copyright year 2021
2021-01-01 19:54:28 +01:00
Max Kellermann
67c7116f05
Merge branch 'v0.21.x' into master
2020-09-04 18:35:21 +02:00
Max Kellermann
0aa0ffb67b
decoder/sndfile: allow partial reads at end of file
...
While libsndfile doesn't like partial reads in the middle of a file
(see commit 95ac6071b9
), it allows partial reads at the end of a file.
It doesn't pay attention to the file size when issuing a read.
Commit ecb67a1ed1
(MPD 0.18.12) was a regression: previously,
partial reads at the end of a file were possible, but switching to
decoder_read_full() made this an error condition. This way, a portion
at the end of each file was lost, leading to corruption with gapless
playback (https://github.com/MusicPlayerDaemon/MPD/issues/936 ).
This fix switches to the newly introduced function
decoder_read_much(), which does the same as the code before commit
ecb67a1ed1
.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/936
2020-09-04 13:35:00 +02:00
Max Kellermann
c3cfb5fe16
Merge branch 'v0.21.x'
2020-07-06 20:56:52 +02:00
Max Kellermann
bfdf13dca3
decoder/Plugin: allow scan_{file,stream}() to throw
...
Bug #915 is about an I/O exception thrown where none was allowed,
leading to crash via std::terminate(). However, instead of catching
and logging the error inside the decoder plugin, it should be able to
propagate the I/O error to the MPD core, so MPD can avoid trying other
decoder plugins.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/915
2020-07-06 14:13:34 +02:00
Rosen Penev
f319f88df4
[cppcheck] use const for several variables
...
Found with constVariable
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-03-23 21:03:22 -07:00
Rosen Penev
97425d56e7
remove gcc_unused
...
[[maybe_unused]] (introduced in C++17) is standard C++.
https://clang.llvm.org/docs/AttributeReference.html#maybe-unused-unused
says that this is equivalent to the GNU unused attribute.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-03-16 00:08:21 -07:00
Max Kellermann
3fc859c42d
Merge branch 'v0.21.x'
2020-02-04 16:49:18 +01:00
Max Kellermann
5ad6e7fec5
decoder/{audio,snd}file: handle MIME type "audio/wav"
2020-02-01 11:26:57 +01:00
Max Kellermann
cd612c4eef
AudioFormat: move to pcm/
2020-01-18 20:24:59 +01:00
Max Kellermann
2817bf9e95
copyright year 2020
2020-01-18 19:23:49 +01:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
527642a90b
decoder/Plugin: simplify compile-time initialization
...
Add a `constexpr` constructor and several `constexpr` methods to
construct a DecoderPlugin at compile time, in a way which allows
adding new methods later without having to edit each plugin.
2019-06-15 14:44:37 +02:00
Max Kellermann
548aa00111
tag/Handler: pass StringView to OnTag() and OnPair()
...
Eliminates a number of allocations, because callers don't need to copy
the strings to a newly allocated buffer only to null-terminate them.
And most callers don't need to have a null-terminated string.
2019-06-06 13:00:53 +02: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
3be8b02cc2
decoder/sndfile: make vio
constexpr
...
Use `const_cast` to be able to pass it to sf_open_virtual() which has
a wrong parameter declaration.
2018-10-19 19:51:17 +02:00
Max Kellermann
de0ee26432
decoder/sndfile: call TagHandler::OnAudioFormat()
2018-07-07 13:29:39 +02:00
Max Kellermann
45cccbce59
decoder/sndfile: use AtScopeExit()
...
Fixes memory leaks.
2018-07-07 13:27:26 +02:00
Max Kellermann
479de9c7cb
decoder/sndfile: add CheckAudioFormat(SF_INFO)
2018-07-07 13:26:39 +02:00
Max Kellermann
3d3a1232b1
tag/Handler: convert to class with virtual methods
2018-07-05 19:07:05 +02:00
Max Kellermann
7d789a984a
decoder/Plugin: add "noexcept"
2018-01-21 11:47:17 +01:00
Max Kellermann
914df18bf9
Main, ...: catch any exception, not just std::runtime_error
2017-12-19 10:56:23 +01:00
Max Kellermann
4faef28cc5
Merge tag 'v0.20.7'
...
release v0.20.7
2017-05-15 23:01:49 +02:00
Max Kellermann
71f0ed8b74
*: add "noexcept" to many, many function prototypes
...
This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
2017-05-08 14:44:49 +02:00
Max Kellermann
03a97d87ea
tag/Tag*: rename several source files
2017-02-08 08:49:42 +01:00
Max Kellermann
5900253b85
update copyright year
2017-01-03 20:48:59 +01:00
Max Kellermann
a88040e4d5
decoder/Client: add Submit methods
...
Replaces decoder_data() and others.
2016-11-18 09:05:04 +01:00
Max Kellermann
47a0f46ce8
decoder/Client: add DecoderCommand/seek virtual methods
2016-11-18 09:03:42 +01:00
Max Kellermann
66fb352cca
decoder/Client: add virtual method Ready()
...
Replaces decoder_initialized().
2016-11-18 09:03:41 +01:00
Max Kellermann
fd77acc217
decoder/Client: new interface which wraps struct Decoder
...
Prepare for a Decoder API redesign based on an abstract class with
virtual methods.
2016-11-18 09:03:39 +01:00
Max Kellermann
cfd51db229
CheckAudioFormat: migrate from class Error to C++ exceptions
2016-11-10 12:55:08 +01:00
Max Kellermann
8c744efd56
input/InputStream: migrate from class Error to C++ exceptions
2016-09-16 17:43:36 +02:00
Max Kellermann
1d67aa7bf2
update copyright year to 2016
2016-02-26 17:54:05 +01:00
Max Kellermann
73307bf2e7
tag/TagHandler: pass by reference
2016-02-23 10:10:13 +01:00
Max Kellermann
a5f8fd774d
tag/handler: use CamelCase
2016-02-22 17:38:06 +01:00
Max Kellermann
eb1733609a
decoder/sndfile, ...: update API documentation
2015-01-31 22:17:15 +01:00
Max Kellermann
4fa5538e2b
config/Param: split block-specific attributes to new struct ConfigBlock
...
The old struct config_param remains only for top-level string options.
2015-01-21 23:56:33 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
ead034e638
decoder/sndfile: include cleanup
2014-09-21 13:15:53 +02:00
Max Kellermann
1c03d1e87d
decoder/sndfile: remove obsolete code comment
2014-09-19 23:00:12 +02:00
Max Kellermann
f8804c8a56
decoder/sndfile: remove debug printf()
2014-09-19 22:49:31 +02:00
Max Kellermann
dd1cec4196
decoder/sndfile: log detailed sf_open_virtual() error message
2014-09-19 21:51:24 +02:00