Rosen Penev
7d2c4ec775
[clang-tidy] remove unneeded return
...
Found with readability-redundant-control-flow
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-02-04 15:19:52 -08:00
Max Kellermann
3fc859c42d
Merge branch 'v0.21.x'
2020-02-04 16:49:18 +01:00
Max Kellermann
50003f6ad2
decoder/ffmpeg: add two more missing commas
2020-02-04 16:30:05 +01:00
Rosen Penev
0914644d2b
add missing comma
...
Found with bugprone-suspicious-missing-comma
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-02-04 16:29:23 +01:00
Max Kellermann
4b0444e760
Merge remote-tracking branches 'neheb/uniq', 'neheb/bool', 'neheb/loop', 'neheb/bool2', 'neheb/perf', 'neheb/void' and 'neheb/value'
2020-02-02 16:22:19 +01:00
Rosen Penev
568deefd68
[clang-tidy] remove pointless void arg
...
Found with modernize-redundant-void-arg
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-02-01 19:52:38 -08:00
Rosen Penev
15fa780c99
[clang-tidy] convert several loops to range based ones
...
Found with modernize-loop-convert
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-02-01 19:46:50 -08:00
Rosen Penev
469cd9582f
[clang-tidy] use make_unique
...
Found with modernize-make-unique
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-02-01 19:40:39 -08:00
Max Kellermann
72ec641f0d
*: use auto
2020-02-01 14:02:43 +01:00
Max Kellermann
302eff0a59
decoder/{vorbis,mpcdec}: use using
instead of typedef
2020-02-01 13:38:43 +01:00
Max Kellermann
5ad6e7fec5
decoder/{audio,snd}file: handle MIME type "audio/wav"
2020-02-01 11:26:57 +01:00
Rosen Penev
0bb943ba3e
FfmpegDecoderPlugin: add WAV support
2020-02-01 11:24:51 +01:00
Rosen Penev
80a0cf694f
MadDecoderPlugin: fix bad printf format
...
max_frames is size_t, not unsigned long. Fixes GCC warning.
2020-01-31 21:21:39 +01:00
Max Kellermann
0b2444450f
decoder/ogg: improve seeking accuracy using binary search
...
On some VBR files, the single-step interpolation was very inaccurate
and inacceptable.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/720
2020-01-31 19:35:35 +01:00
Max Kellermann
e01bbad7bb
lib/xiph/OggVisitor: update the OggStreamState offset
2020-01-31 19:24:41 +01:00
Max Kellermann
6fe4068c8e
decoder/ogg: move code to SeekByte()
2020-01-31 19:24:26 +01:00
Max Kellermann
8472135859
decoder/ogg: remove unimplemented Seek() declaration
2020-01-31 19:20:52 +01:00
Max Kellermann
943a67c805
decoder/ogg: need to sync small files while looking for EOS
...
When calling OggSeekFindEOS() from inside a OggVisitor callback, then
the #InputStream may be in the middle of an Ogg packet, and the newly
initialized #ogg_sync_state will not be able to load it without the
help of ogg_sync_pageseek(). By passing "synced=false" to
OggSeekFindEOS(), we force the use of ogg_sync_pageseek() even when
not actually seeking.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/719
2020-01-25 20:07:11 +01:00
Max Kellermann
cd612c4eef
AudioFormat: move to pcm/
2020-01-18 20:24:59 +01:00
Max Kellermann
914ad261ed
pcm/meson.build: split libpcm into two
...
One basic library without dependencies, and one with heavy
dependencies like libsamplerate.
2020-01-18 20:08:23 +01:00
Max Kellermann
7551867249
meson.build: move Log.cxx and LogBackend.cxx into a static library
...
Prevents compiling those sources many times, once for each debug
program using it.
2020-01-18 19:56:16 +01:00
Max Kellermann
2817bf9e95
copyright year 2020
2020-01-18 19:23:49 +01:00
Max Kellermann
44d7a1d8d2
pcm/Traits: drop "_type" from type names
2020-01-03 16:01:44 +01:00
Max Kellermann
683d5848f4
release v0.21.17
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl34Bg0QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEmOvD/4/gBb1kIOQduz+ZV79LHPGeqDoIJBm8VWg
t9R1Mpt0flqC8+RcXFK/P0kUifBO5fu+a1DbHHijUvDNLYpUsCiXyxTpES9gGh54
7djEeqi1suoLpMUt4zkUEHGTp2dGUTmyewE1TuF1sZi2xlPgOeWXEX7a0xWs4zdG
WI4CojUSkQGVAI2XZ7xIKP1v368B9F6AbqTK4zkzjNbTCv5VfESGlxdde0NXqU2e
/bjil1aT2kdcks3ddeT4llyGIUzn1PzOyA6LQvmVXLSAtz9Rr/hHA+qkR19a4CCt
PXxE0xClhhmZglzPuES0sRqBbwG99dPzA1ajTOtielwMrlFx+OceRfUnfdgqpPqd
HTkEzMGsQ2PMMbE8R9DF5GU8B9xAcnKMh2g3/9KGStbocGSFWahLRObkHEhC5uJu
g5ncQio3o/AtlBirywn/lkd6CYRDvMheMVOTHtv4/ZN0hIONMXCb6u1SQfqnX7qb
fRP2UP9VUpPI9MUfOn/0uqM8/zXb5SMRe78p9UIYCF+mEDST190VxsdMjiBp/Xug
Pktlec72iyiNHCavp04nXkt2kBrfSIFFaAQ0Qlp4huRV1k3Ur672NHtwuPLv8ORH
xLec8On6nWVuuu5kC0F+4KxTlu6u2CMwH+wVr7t/D4rrD1iVo39MtElTBawZZC6+
8EapnNHyGg==
=A+Dp
-----END PGP SIGNATURE-----
Merge tag 'v0.21.17'
release v0.21.17
2019-12-16 23:44:20 +01:00
Max Kellermann
0cf90ee8b6
decoder/mad: work around bogus -Wuninitialized in GCC 10
2019-12-16 23:01:31 +01:00
Max Kellermann
c129ca9f63
lib/xiph/VorbisComments: move to separate static library
...
This also reverts the previous commit which was wrong. When the
Vorbis decoder is disabled, we can't compile VorbisComments.cxx at
all.
Instead of expanding the #ifdef, this commit moves VorbisComments.cxx
to a separate library with dependencies on libvorbis (which was
missing previously, which could also lead to build failures if the
libvorbis headers were in a non-standard directory).
2019-11-20 16:12:35 +01:00
Max Kellermann
ed327c597a
lib/icu/Converter: Create() returns std::unique_ptr
2019-11-04 15:44:06 +01:00
Max Kellermann
0643b5abad
release v0.21.15
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl2LvuAQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEg3VD/9uWiK11PPXfpAqOQgL63c1CS/6HJizwnox
n0ns3T7eJJPXy06NTwuo5M8JeAIhuysEciHlJeGBf4NIGwGGHOL3nQv3FkWJlfeh
UrIJq66gIzElZ62Jvq+7zkkfjm6A0tmQoAEoIPouus+A4RNwndpqsKSotZzLK0yY
ACkJTxl8JJj+UbLzleDKSA+RxG817onGKl+urkvNDRdD7xs3VEUX6jhddVM1n3m+
BqCaihuQZYXur45mYIwFI7H5JevRawnEX8L6tERW0cE8j5IhnnPjwYvMX+DcZoTe
DgYuGkfPTfl31QufbbetTwWITjf4nrummYrAM/fKcNJcaqZFo4hs7m7N6p9c2ebm
QCUG0On32Lvkq4/iLAxXIdoy38mPkarREB2XQebHa6j2XPFjxB01lXLGYJzPtqBu
LCFRpR+ssWeZDQ3uP+fAzlgMXmB+owWa9NVqU5vlx97TCmXInOeim6tfq1T4keGW
3VFLqM6VAw4QyhrbowU0xbvxvYkWrgpkYbM5NcfwI67xZGLsI5vnRzX05VgF6BFZ
B7g+JIWjv+Mjm1ltsvC4OlJEcCXZb0BQWvwLHq0EGeEP/R9MWYX6BxlF1V8FWR2S
bIL0qIqtZfuUI66irNn23ZCyN4DilMcZkS8f30321hB2GLputG8zZwCcjxy1a/ft
1OoHXRfKNw==
=uONC
-----END PGP SIGNATURE-----
Merge tag 'v0.21.15'
release v0.21.15
2019-09-25 21:27:31 +02:00
Max Kellermann
92495d2b0b
decoder/mpcdec: fix bogus ReplayGain values
...
Apparently, libmpcdec sets gain/peak variables to zero if they are not
present. This clashes with our formula and results in bogus values
which cause noise during playback.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/640
2019-09-13 19:52:11 +02:00
Max Kellermann
9270829b5b
ReplayGainInfo: move more code to a function
2019-09-13 19:50:49 +02:00
Max Kellermann
b6243a9945
decoder/mpcdec: merge duplicate code
2019-09-13 19:50:43 +02:00
Max Kellermann
bf49c9e4e2
decoder/{dsf,dsdiff}: precalculate bit rate
2019-09-08 12:52:02 +02:00
Max Kellermann
0da9c91af2
decoder/{dsf,dsdiff}: fix displayed bit rate
...
The formula did not consider the channel count.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/639
2019-09-08 12:45:05 +02:00
Max Kellermann
fd1826cb91
db/update/Container: move SupportsContainerSuffix() to struct DecoderPlugin
2019-09-03 19:36:56 +02:00
Max Kellermann
e6600b8562
release v0.21.14
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl1dBToQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEhlID/4gcrbaegKpTkftGPLBGlSUc4W0qwSHbdiJ
SuzK7sraSGUlLHHiBfqvFfE8tyEaLfsJarqiOdGgfiaW5QyapdwuU5s76nAN6jjY
onEo2QK6vSbv4J/B1+Jv+NGCgVM3ZkPy91GhfTz8MEtJMaBmztFhnpxK60r9jYPG
5EBsnVa6HhI7gniQAtOwE8SXYnn92Q4j72S8OuAbJ7Vwh0oqdIyXECqzcAE97Fk2
TNX/YSLST3I7Chv2OBDb3vOegh9nFUyr0qeSYdi8vk2BBYcgX2xYOOBQCC3ta/nr
NNeuSJOLgcF1XrFqVRRhDKZ8Y2inD6qVAXOH5WtChT1n3uXqYW7vdq0fW+/w3W/E
vouzgt5KvU5Me4Mk2M2dMjEWW+7Y8EUjvrwDnbDIkyP+Yi+BLTmTnyBgAW3cvRO9
UoCcWTBOEgyX2wAFl3r+NMPEneuMLbMCZUMju4/zveiRJdFExA0LC8wk0/iWqQbW
+WD8y6RTo7Z1jsP1vnBimgAkzkLAOuMlKLYNI15ETrxwKWgOjN6a7Q61GVdsaiqG
fKQeO0kZWWFcJ7HECgp3tpwWEi1+7/uqt0TwQgOKDdZHYL0Wb6Ur09KJS4b+eKIl
UzYwCrPgUx1pcYR+rTbMxCNpWn2kA+vp2UaPBN60c/J98d+6C/2nKtIvXfr5MrUA
CEb1epw/ew==
=mEFF
-----END PGP SIGNATURE-----
Merge tag 'v0.21.14'
release v0.21.14
2019-08-21 10:52:49 +02:00
Max Kellermann
44444e1b89
decoder/Thread: on late SEEK, start decoder at seek position
...
Previously, a bogus value (whatever happened to be still in
`start_time`) was used.
2019-08-20 20:15:08 +02:00
Max Kellermann
ca450663d0
decoder/Control: work around crash after SEEK was too late
...
See code comment.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/629
2019-08-20 20:01:53 +02:00
Max Kellermann
04e2d08417
decoder/Control: inline WaitForDecoder()
2019-08-20 19:33:15 +02:00
Max Kellermann
af4ffa91fd
decoder/Control: remove attribute client_is_waiting
...
This optimization is useless because sane pthread_cond_signal()
implementations check the number of waiters and do not invoke a system
call if there are none.
2019-08-20 19:23:44 +02:00
Max Kellermann
433e18b247
decoder/{opus,vorbis}: support embedded pictures (METADATA_BLOCK_PICTURE)
...
More for https://github.com/MusicPlayerDaemon/MPD/issues/42
2019-08-14 12:39:03 +02:00
Max Kellermann
2c2efaa91f
lib/xiph/VorbisComments: pass struct vorbis_comment instead of char**
...
Use the "comments" attribute instead of relying on the nullptr
terminator.
2019-08-14 12:28:52 +02:00
Max Kellermann
6b51429203
decoder/opus: move comment size check to ScanOneOpusTag()
...
Prepare for parsing large binary comments (such as
METADATA_BLOCK_PICTURE).
2019-08-13 12:19:31 +02:00
Max Kellermann
831bc711ca
decoder/mad: remove option "gapless", always do gapless
...
Why would anybody want to keep the silence inserted by the codec?
Other plugins/codecs (such as Vorbis) have this hard-coded as well.
2019-08-12 13:05:57 +02:00
Max Kellermann
828c614d57
decoder/sidplay: use StringFormat<>()
2019-08-10 12:31:31 +02:00
Max Kellermann
4964ad7800
decoder/sidplay: sidplay_load_songlength_db() throws on error
2019-08-10 12:28:53 +02:00
Max Kellermann
a7976cd0f2
decoder/sidplay: automatic memory management inside struct SidplayGlobal
2019-08-10 12:26:10 +02:00
Max Kellermann
bed8a0e040
decoder/sidplay: move global variables to struct SidplayGlobal
2019-08-10 12:16:09 +02:00
Max Kellermann
b8a64771c0
decoder/sidplay: add noexcept
2019-08-10 12:12:52 +02:00
Fredrik Noring
9654a33218
decoder/sidplay: Fix empty album names by using the SID name field
...
SID files are generally collections of tunes, so a SID name field makes
sense as an MPD album. The SID tune information list (STIL) has name
and title fields for individual tunes, when such are known, but MPD is
currently not using the STIL.
2019-08-10 11:01:15 +02:00
Max Kellermann
9bcd02d178
Merge branch 'v0.21.x'
2019-08-10 10:58:32 +02:00