François Revol
9d0bf5e95c
Haiku: fix build
2019-03-29 14:32:06 +01:00
Max Kellermann
b1b630a4cc
command/database: support "sort" and "window" in more commands
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/516
2019-03-25 19:05:49 +01:00
Max Kellermann
c60d374fc8
db/DatabasePlaylist: pass DatabaseSelection to search_add_to_playlist()
2019-03-25 19:04:34 +01:00
Max Kellermann
de4fd4c059
command/database: move code to ParseDatabaseSelection()
2019-03-25 19:02:11 +01:00
Max Kellermann
95d8b30864
protocol/Ack: add noexcept
2019-03-25 19:01:34 +01:00
Max Kellermann
eb94f409d5
protocol/Ack: perfect forwarding in the ProtocolError constructor
2019-03-25 19:01:27 +01:00
Max Kellermann
93d91936b5
test/run_filter: check for partial writes
2019-03-25 08:59:34 +01:00
Max Kellermann
2220383d83
test/run_filter: move code to WriteOrThrow()
2019-03-25 08:59:25 +01:00
Max Kellermann
3231706628
test/run_filter: use class FileDescriptor
2019-03-25 08:53:58 +01:00
Max Kellermann
ca4e53859d
Merge branch 'v0.21.x'
2019-03-25 08:11:07 +01:00
Max Kellermann
8b327f1d9b
filter/AutoConvert: implement Flush()
2019-03-24 22:42:06 +01:00
Max Kellermann
aef0507abb
filter/Filter: fix typo in API doc
2019-03-24 22:34:11 +01:00
Max Kellermann
61120d2059
filter/ffmpeg: use only one AVFrame
...
The two were never used at the same time, and merging them saves one allocation.
2019-03-24 22:29:57 +01:00
Max Kellermann
cc1822810f
filter/ffmpeg: use av_buffersrc_add_frame() instead of av_buffersrc_write_frame()
...
This transfers ownership of the buffer instead of adding another reference.
2019-03-24 22:28:40 +01:00
Max Kellermann
a21c6884f2
filter/ffmpeg: call av_frame_unref() before av_buffersink_get_frame()
...
Fix another memory leak.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/514
2019-03-24 22:27:48 +01:00
Max Kellermann
2700eed08d
filter/ffmpeg: remove unnecessary av_frame_make_writable() call
...
A newly allocated buffer doesn't need this call; it only adds overhead
for copying the data.
2019-03-24 22:26:09 +01:00
Max Kellermann
ec2badbedd
filter/ffmpeg: call av_frame_unref() before av_frame_get_buffer()
...
av_frame_get_buffer() leaks memory if buffers were already allocated.
Fixes one of the memory leaks of https://github.com/MusicPlayerDaemon/MPD/issues/514
2019-03-24 22:24:54 +01:00
Max Kellermann
054a7557fa
lib/ffmpeg/Frame: add av_frame_unref() wrapper
2019-03-24 22:21:35 +01:00
Max Kellermann
977a4570d9
Merge branch 'v0.21.x'
2019-03-21 11:49:41 +01:00
Max Kellermann
6c2077eb7c
doc/plugins.rst: fix filter/ffmpeg description
2019-03-21 11:20:40 +01:00
Max Kellermann
6bab3bcfea
test/RunChromaprint: add missing override
2019-03-20 13:30:13 +01:00
Max Kellermann
1d436b3c86
lib/ffmpeg/IOContext: keep using avio_read() with old libavformat versions
...
avio_read_partial() was added in libavformat 57.81.100, and we keep
compatibility with version 57.40 for now. Fixes regression from
commit bfb7b0117f
Closes https://github.com/MusicPlayerDaemon/MPD/issues/511
2019-03-20 13:15:05 +01:00
Max Kellermann
a854595886
event/ServerSocket: runtime error if abstract sockets are unavailable
2019-03-20 13:09:16 +01:00
Max Kellermann
8fc3c5c612
event/ServerSocket: add HAVE_UN check to AddAbstract()
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/510
2019-03-20 13:06:09 +01:00
Max Kellermann
4f408bd952
event/ServerSocket, doc, ...: refer to AF_LOCAL as "local socket"
...
.. and not "UNIX domain socket. Be consistent about the naming.
2019-03-20 12:57:26 +01:00
Max Kellermann
f86b14bfc5
tag/Chromaprint: relicense as BSD-2
2019-03-18 19:26:19 +01:00
Max Kellermann
ec5be91ff6
filter/ffmpeg: new filter plugin
2019-03-18 18:56:06 +01:00
Max Kellermann
a7a9490a0c
filter/hdcd: include cleanup
2019-03-18 18:55:25 +01:00
Max Kellermann
c0d6008781
filter/hdcd: move generic code to class FfmpegFilter
2019-03-18 18:35:23 +01:00
Max Kellermann
9f62824e98
filter/hdcd: fix typo
2019-03-18 18:32:20 +01:00
Max Kellermann
b824ba3299
doc/plugins.rst: document the new "hdcd" filter plugin
2019-03-18 18:26:47 +01:00
Max Kellermann
59c4f9a089
Merge branch 'v0.21.x'
2019-03-18 18:26:23 +01:00
Max Kellermann
7de8fd04a4
doc/plugins.rst: add the Haiku plugin and mark it as unmaintained
2019-03-18 18:24:51 +01:00
Max Kellermann
8158bd218c
doc/plugins.rst: add filter plugin reference
2019-03-18 18:05:18 +01:00
Max Kellermann
aa1d867b72
doc/user.rst: document the "filters" setting
2019-03-18 17:05:23 +01:00
Max Kellermann
34c8242133
doc/user.rst: add more links
2019-03-18 17:01:55 +01:00
Max Kellermann
c673528cff
filter/hdcd: new filter plugin based on FFmpeg's "af_hdcd"
2019-03-18 13:48:24 +01:00
Max Kellermann
321f01b95c
filter/plugins/null: move code to src/filter/NullFilter.hxx
2019-03-18 13:48:24 +01:00
Max Kellermann
e88667e01c
lib/ffmpeg/Filter: add MakeAudioBuffer{Source,Sink}()
2019-03-18 11:05:13 +01:00
Max Kellermann
fb96907b52
lib/ffmpeg/Filter: add missing include
2019-03-18 11:05:13 +01:00
Max Kellermann
09ece26200
lib/ffmpeg/SampleFormat: add ToFfmpegSampleFormat()
2019-03-18 11:02:17 +01:00
Max Kellermann
0c6d22fe47
decoder/ffmpeg: move code to lib/ffmpeg/SampleFormat.hxx
2019-03-18 10:58:46 +01:00
Max Kellermann
c563eb81a3
lib/ffmpeg/Filter: C+++ wrapper for several libavfilter objects
2019-03-18 10:32:25 +01:00
Max Kellermann
e864a0dd05
lib/ffmpeg/meson.build: detect libavfilter
2019-03-18 10:30:02 +01:00
Max Kellermann
42a05bc904
lib/ffmpeg/Frame: add more wrapper methods
2019-03-18 10:29:26 +01:00
Max Kellermann
4722175049
Merge branch 'v0.21.x'
2019-03-18 10:01:00 +01:00
Max Kellermann
e22bdee808
win32/res/meson.build: drop tilde suffix from version number before splitting
...
MPD sometimes uses version numbers like "0.22~git" to mark unreleased
versions. That makes the win32 resource compiler unhappy, because it
expects numbers only.
2019-03-18 09:58:40 +01:00
Jörg Krause
7f87de783f
src/lib/gcrypt/meson.build: use dependency() for quering linker flags
...
Since version 0.49.0 the Meson build system has native support for
finding and using the gcrypt library using the `dependency()` function.
`dependency()` has the advantage over `find_library()` as it queries the
required linker flags for proper linking with external libraries, e.g.
libgpg-error.
As the latest released version 1.8.4 of libgcrypt does not
provide a .pc file, using `libgcrypt-config` is the only way to query
the required linker flags.
Unfortunately, there is an issue when cross compiling mpd and the user does not
define `libgcrypt-config` in the cross file. If the user sets the qobuz feature
to `auto` and the target does not have libgcrypt installed, the Meson
build system will falsly assume libgcrypt is available for the target as
it uses the native `libgcrypt-config` on the host and pretend is has
found the library.
Therefore, we still rely on `find_library()` to workaround this buggy
behavior. This way, if qobuz feature detection is set to `auto`, the
feature is disabled in case there is no target libgcrypt available.
Fixes building mpd statically with the qobuz feature enabled. Otherwise
the build fails with undefined references because of the missing libgpg-error
dependency:
```
/sysroot/usr/lib/libgcrypt.a(libgcrypt_la-visibility.o): In function `gcry_strerror':
visibility.c:(.text+0x14): undefined reference to `gpg_strerror'
```
2019-03-18 09:12:19 +01:00
Jörg Krause
c66389a453
meson.build: require Meson 0.49.0
...
Meson 0.49.0 adds native support for `libgcrypt-config` which is
necessary for detecting libgcrypt dependencies, as the latest
version 1.8.4 of libgcrypt does not provide a .pc file.
2019-03-18 09:11:46 +01:00
Max Kellermann
b63c1a2144
increment version number to 0.21.7
2019-03-18 09:11:16 +01:00