Max Kellermann
149d1a2f47
output/shout: use libfmt
2023-03-06 20:10:06 +01:00
Max Kellermann
415de497d3
use more libfmt instead of sprintf()
2023-03-06 19:50:53 +01:00
Max Kellermann
148aca23be
use SPDX IDs, replacing the long copyright headers
2023-03-06 14:59:48 +01:00
Max Kellermann
fa58db798b
lib/fmt/RuntimeError: new library
...
Replacing FormatRuntimeError().
2022-11-29 14:10:34 +01:00
Max Kellermann
cc0def15c4
Copyright year 2022
2022-07-14 17:59:35 +02:00
Max Kellermann
45071607aa
output/Interface: pass std::span to Play()
2022-07-12 12:59:47 +02:00
Max Kellermann
7e14f8f830
encoder/Interface: pass std::span to Write() and Read()
2022-07-12 10:33:59 +02:00
Max Kellermann
6b24344031
output/shout: move buffer to stack
2022-07-12 09:48:02 +02:00
Max Kellermann
33a84a8ca2
output/shout: use shout_set_metadata_utf8()
2022-04-26 17:41:21 +02:00
Max Kellermann
1d04490ed3
output/shout: use shout_set_content_format()
2022-04-26 17:38:43 +02:00
Max Kellermann
4a30c2d79c
output/shout: use shout_set_meta()
2022-04-26 17:24:49 +02:00
Max Kellermann
83072d6b9c
output/shout: pass reference to Setup()
2022-04-26 16:49:18 +02:00
Max Kellermann
e08c13ad7e
output/shout: add "noexcept"
2022-04-26 15:57:03 +02:00
Max Kellermann
2c82a6b2e0
output/shout: handle shout_metadata_add() errors
...
Fixes -Wunused-result
2022-04-26 15:56:55 +02:00
Max Kellermann
e4eb5b79c9
output/shout: move shout_new() call to Enable()
...
Don't allocate any memory until the output is really enabled.
2021-10-14 12:28:36 +02:00
Max Kellermann
1cfea20b22
output/shout: remove the defunct "timeout" option
...
The implementation was removed 12 years ago in commit f6455d5f79 and
nobody missed it.
2021-10-14 12:04:13 +02:00
Max Kellermann
b29a43b4d7
decoder/mad, ...: more libfmt logging
2021-06-25 20:52:08 +02:00
Rosen Penev
220d2bf026
clang-tidy: add explicit deleted constructors
...
Found with cppcoreguidelines-special-member-functions
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2021-05-30 22:47:20 -07:00
Max Kellermann
5348f8c9c8
copyright year 2021
2021-01-01 19:54:28 +01:00
Rosen Penev
ab9f5d2067
replace assert.h with cassert
...
The former was deprecated with C++14.
According to the C++11 and C++17 standards, both files are identical.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-03-12 15:25:38 -07:00
Rosen Penev
f00f8b002a
[clang-tidy] use nodiscard
...
Introduced in C++17. It replaces gcc's warn_unused_result.
Found with modernize-use-nodiscard.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-03-12 12:59:16 -07:00
Rosen Penev
a3963de668
[clang-tidy] change integer prefixes to uppercase
...
Found with readability-uppercase-literal-suffix
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-02-04 15:20:50 -08:00
Rosen Penev
b64fdae938
[clang-tidy] use override instead of virtual
...
Found with modernize-use-override
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-01-31 21:27:26 -08:00
Max Kellermann
2817bf9e95
copyright year 2020
2020-01-18 19:23:49 +01:00
Max Kellermann
683d5848f4
Merge tag 'v0.21.17'
...
release v0.21.17
2019-12-16 23:44:20 +01:00
Max Kellermann
13ce07d181
output/shout: declare metadata as UTF-8
...
Apparently, Icecast defaults to ISO-8859-1 for MP3:
http://icecast.org/docs/icecast-2.4.0/config-file.html#mountsettings
This change forces Icecast to UTF-8 without having to configure it in
Icecast's configuration file.
2019-11-06 16:05:22 +01:00
Max Kellermann
f2c3d86612
output: use StringIsEqual()
2019-09-26 14:48:31 +02:00
Max Kellermann
d663f81420
include cleanups (powered by iwyu)
2019-07-05 09:59:58 +02:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
754f4048a8
output/shout: evaluate tls option only if TLS is enabled in libshout
...
Fixes build failure after commit
0cea67ee70
2019-01-21 14:36:43 +01:00
Jakob Ovrum
0cea67ee70
shout output plugin: add support for TLS
2019-01-19 17:36:14 +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
97f670658f
util/StringFormat: new utility library
2018-01-24 13:28:28 +01:00
Max Kellermann
914df18bf9
Main, ...: catch any exception, not just std::runtime_error
2017-12-19 10:56:23 +01:00
Max Kellermann
37c27fa606
output/Interface: convert need_fully_defined_audio_format to flag
2017-12-19 08:41:34 +01:00
Max Kellermann
20199e770c
output/shout: use the shout_metadata_t only once
...
There is no documentation on whether calling shout_metadata_add()
multiple times on one instance is allowed. To be sure, let's allocate
the object on demand each time in SendTag().
2017-11-10 22:30:53 +01:00
Max Kellermann
4c824e5309
output/shout: simplify shout_tag_to_metadata()
2017-11-10 22:26:25 +01:00
Max Kellermann
981bc85879
output/shout: relax quality and bitrate checks, forward as-is
2017-11-10 22:19:00 +01:00
Max Kellermann
015527d870
output/shout: make "quality" and "bitrate" local variables
2017-11-10 22:17:51 +01:00
Max Kellermann
6464b4b372
encoder/Configured: glue code to initialize PreparedEncoder
2017-11-10 21:54:57 +01:00
Max Kellermann
fef9747fbf
output/shout: use MIME type instead of the encoder plugin name
...
This is more robust, for example it allows using the Shine encoder
plugin instead of LAME.
2017-11-10 21:52:54 +01:00
Max Kellermann
13816c1c7d
output/{recorder,httpd,shout}: use std::unique_ptr to manage PreparedEncoder pointer
2017-11-10 21:35:22 +01:00
Max Kellermann
d0f6131ba4
output/Interface: allow Pause() to throw exception
...
Coverity discovered that the Pulse plugin could throw exceptions from
Pause(), but that method was marked "noexcept" because its caller was
not designed to catch exceptions. So instead of avoiding exceptions
(by catching and logging them in each and every implementation), let's
allow them, and do the catch/log game in the MPD core.
2017-09-08 14:45:53 +02:00
Max Kellermann
31bad5f7af
output/Interface: convert to abstract class
...
Yet another C-style vtable replaced with C++.
2017-08-10 09:01:41 +02:00
Max Kellermann
bea5681fd8
output/Interface: define a new struct AudioOutput
...
Hide struct FilteredAudioOutput from the plugins, preparing for hiding
MPD's core internals.
2017-08-08 18:58:40 +02:00
Max Kellermann
e11229494e
output/Filtered: add method NeedFullyDefinedAudioFormat()
...
Avoid accessing FilteredAudioFormat attributes directly.
2017-08-08 18:57:59 +02:00
Max Kellermann
ccc0fcb5b7
output/Shout: move ConfigureShoutAudioInfo() call to Open()
...
Configure the AudioFormat after opening the encoder, because only now
we know the final format.
2017-08-08 18:56:14 +02:00
Max Kellermann
6e24381962
output/Shout: move code to ShoutSetAudioInfo()
2017-08-08 18:56:12 +02:00
Max Kellermann
3ab905644d
output/Shout: open the encoder first, then open connection
...
This order will be necessary for proper AudioFormat initialization,
because the encoder may change the format.
2017-08-08 18:53:04 +02:00