Max Kellermann
76efea3aa7
decoder/ffmpeg: add libfmt formatter for AVSampleFormat
...
Fixes compiler warning because formatting unscoped enums is deprecated
since libfmt 9.
2022-09-28 11:34:33 +02:00
Max Kellermann
57d5df8118
decoder/ffmpeg: fix FFmpeg 5.1 deprecation warnings
2022-07-27 11:04:09 +02:00
Max Kellermann
59792cb0b8
decoder/ffmpeg: wrap FFmpeg include in "extern C"
...
Commit ebae25d175
added that #include, but forgot to wrap it in
"extern C", so the linker tried to look up C++ symbols, causing linker
failure.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1582
2022-07-27 11:04:03 +02:00
BurroCargado
11d1f56062
Fix seeking HLS on-demand streaming not working
...
This issue occurs when playing HLS streaming delivered
from a server that does not support partial requests.
The issue is reproduced as follows(using Ubuntu 20.04 PC):
1. Prepare HLS example content.
$ mkdir test
$ ffmpeg -i example.flac -vn -c:a aac -b:a 128000 -f hls -hls_list_size 0 test/output.m3u8
(ffmpeg 4.2.4 is used)
2. Prepare web server without partial requests support.
(Docker version 20.10.12 and NGINX official Docker image is used)
$ docker run --name tmp-nginx-container -d nginx
$ docker cp tmp-nginx-container:/etc/nginx/conf.d/default.conf .
$ docker rm -f tmp-nginx-container
Edit default.conf and add "max_ranges 0;" to "location / {...}".
This disables partial requests support,
removes 'Accept-Ranges: bytes' header from the server response.
Then, run the server:
$ docker run --name test-nginx -v $PWD/test:/usr/share/nginx/html:ro -v $PWD/default.conf:/etc/nginx/conf.d/default.conf -d -p 8080:80 nginx
3. Setup MPD to Play the next URL.
http://address-of-the-server:8080/output.m3u8
Seeking this stream results in "exception: Not seekable".
2022-05-07 12:18:56 +09:00
BurroCargado
bd840d4638
decoder/plugins/FFmpegDecoder: fix IsSeekable()
...
AVFMTCTX_UNSEEKABLE signals the stream is not seekable
according to FFmpeg source code description:
8e98dfc57f/libavformat/avformat.h (L1181)
2022-05-07 09:48:04 +09:00
Max Kellermann
f2a3dfd700
decoder/ffmpeg: add missing nullptr checks
...
Fixes part 1 of https://github.com/MusicPlayerDaemon/MPD/issues/1490
2022-04-26 20:51:57 +02:00
nick black
ebae25d175
plugins/FfmpegIO: include libavutil/mem.h
...
ffmpeg from current git master no longer exposes
av_malloc() nor av_free() through other included
headers. directly include libavutil/mem.h to fix
compilation with (as-yet-unreleased) ffmpeg.
2022-03-14 14:11:31 +01:00
Max Kellermann
8f84e1befd
decoder/plugins/FfmpegIo: return AVERROR_EOF at end of file
...
This part of the AVIOContext API is not documented :-(
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1448
2022-03-14 14:00:28 +01:00
Max Kellermann
86e9ed5f3a
decoder/opus: fix "readpicture" on Opus files
...
Don't return early from ScanOpusTags() if only
TagHandler::WantPicture() is set.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1413
2022-01-26 14:43:45 +01:00
Max Kellermann
a5fa43b526
fs/io: move to io/
2021-12-03 14:35:41 +01:00
Max Kellermann
1c69913eca
decoder/flac: submit MixRamp only if there is actual data
2021-12-01 17:58:51 +01:00
Max Kellermann
cb5c6259fd
decoder/mad: submit MixRamp only if there is actual data
...
Fixes MixRamp failures when a MP3 file has two ID3 tags, one of them
without MixRamp.
2021-12-01 17:19:53 +01:00
Max Kellermann
bf287fefb5
decoder/mad: move parse_id3_mixramp() to tag/Id3MixRamp.cxx
2021-12-01 17:11:36 +01:00
Max Kellermann
9bc4c168fd
tag/MixRamp: rename to MixRampParser.cxx
2021-12-01 17:07:53 +01:00
Rosen Penev
837fc98638
use const references
...
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2021-11-11 17:18:33 -08:00
Rosen Penev
31aa6d0c4f
use auto with make_unique
...
C arrays can be used with make_unique in C++17.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2021-11-11 01:33:03 -08:00
Max Kellermann
5f4ec7de5b
decoder/ffmpeg, lib/ffmpeg: make AVCodec pointers "const"
...
For libavcodec 59 support.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1333
2021-11-09 21:09:14 +01:00
Max Kellermann
72f6e018e7
Log: remove the obsolete printf-style functions
2021-10-13 17:41:19 +02:00
Max Kellermann
e1c16d78e4
decoder/wavpack: use AllocatedString for concatenation
2021-10-13 12:15:57 +02:00
Max Kellermann
a49b49cba7
decoder/wavpack: fix WVC file support
...
The wrong variable was used. This has been broken by commit
4eeea640f4
seven years ago - and nobody as noticed, d'oh!
2021-10-13 12:11:39 +02:00
Max Kellermann
f510564d9d
more [[gnu::...]] attributes
2021-10-13 12:07:05 +02:00
Max Kellermann
5d35983298
decoder/openmpt: catch libopenmpt exceptions in scan_stream()
...
Fixes crash bug.
2021-10-06 20:14:01 +02:00
Rosen Penev
6ec5089cc9
remove std::make_pair
...
make_pair is an old C++98 function that can be replaced by modern
shorter constructs.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2021-09-07 21:13:22 -07:00
Max Kellermann
bedcf1cce5
Merge branch 'exp2' of git://github.com/neheb/MPD
2021-08-17 10:53:36 +02:00
Rosen Penev
30e3ef4c8e
constexpr/std::array conversions
...
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2021-08-16 21:05:56 -07:00
Rosen Penev
4c5fea96e4
constexpr global variable conversion
...
Found with cppcoreguidelines-avoid-non-const-global-variables
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2021-08-16 20:58:21 -07:00
Sam Bazley
5b775ca5b4
decoder/ffmpeg: check if long_name is not null
2021-07-28 16:05:15 +01:00
Max Kellermann
b29a43b4d7
decoder/mad, ...: more libfmt logging
2021-06-25 20:52:08 +02:00
Max Kellermann
6f539cfcd6
Partition, ...: use libfmt for logging
2021-06-24 21:40:11 +02:00
Max Kellermann
0185d58a2b
Log: add libfmt support
2021-06-24 21:14:42 +02:00
Max Kellermann
e4e4576a39
Merge tag 'v0.22.9'
...
release v0.22.9
2021-06-23 21:02:06 +02:00
Max Kellermann
ac59ec34f9
decoder/ffmpeg: fix build failure with FFmpeg 3.4
...
av_demuxer_iterate() was added in libavformat 58.9.100.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1178
2021-05-31 18:10:06 +02:00
Max Kellermann
82da57b7ce
decoder/ffmpeg: suppress -Wunused with libavformat<58.6.100
2021-05-31 16:49:48 +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
GrimReaperFloof
724754f16c
Fix std::to_string warning for booleans in openmpt decoder
2021-05-27 20:47:45 +02:00
GrimReaperFloof
6f64fa070d
Add repeat count setting to openmpt decoder
2021-05-26 23:43:38 +02:00
GrimReaperFloof
dc5b9d989b
Backwards compatibility with older libopenmpt versions than 0.5
2021-05-26 23:43:38 +02:00
GrimReaperFloof
9e407f5989
Change WritableBuffer<uint8_t> to AllocatedArray<std::byte>
2021-05-26 23:43:38 +02:00
GrimReaperFloof
fec6aac0f1
Code deduplication: move mod_loadfile() into ModCommon.cxx
2021-05-26 23:43:38 +02:00
GrimReaperFloof
541c31c879
Add openmpt decoder plugin
2021-05-26 23:43:38 +02:00
Max Kellermann
4ee0a06e18
Merge branch 'v0.22.x'
2021-05-26 13:15:29 +02:00
Max Kellermann
38e24208f6
decoder/ffmpeg: support the tags "album-sort", "artist-sort"
2021-05-26 13:04:47 +02:00
Max Kellermann
fbaedf2262
decoder/ffmpeg: support the "sort_album" tag
...
From libavformat/mov.c.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1173
2021-05-26 13:03:47 +02:00
Max Kellermann
8f3341cefb
decoder/ffmpeg: add comment
2021-05-26 13:03:41 +02:00
Max Kellermann
4ec4bab3a9
decoder/ffmpeg: remove "year" tag
...
This mapping was added 11 years ago in commit 766b9fd453
, but FFmpeg
doesn't appear to support it.
2021-05-26 13:03:27 +02:00
Max Kellermann
6d567bcd35
decoder/ffmpeg: fix ArtistSort and AlbumArtistSort mapping
...
These were added 11 years ago in commit 766b9fd453
, but I cannot find
any evidence in the FFmpeg repository that these names were ever
supported. This commit adds the tags as they are currently present in
libavformat/mov.c.
2021-05-26 13:03:26 +02:00
Max Kellermann
d2bd12822f
Merge branch 'v0.22.x'
2021-05-26 11:57:41 +02:00
Max Kellermann
8c690fb737
decoder/mad: move variable declaration into "case"
2021-05-25 21:34:09 +02:00
GrimReaperFloof
34f636ffc3
Change WritableBuffer<uint8_t> to AllocatedArray<std::byte>
2021-05-19 09:54:06 +02:00
GrimReaperFloof
a134f692bf
Code deduplication: move mod_loadfile() into ModCommon.cxx
2021-05-19 09:53:39 +02:00