cd612c4eef
AudioFormat: move to pcm/
2020-01-18 20:24:59 +01:00
2817bf9e95
copyright year 2020
2020-01-18 19:23:49 +01:00
683d5848f4
Merge tag 'v0.21.17'
...
release v0.21.17
2019-12-16 23:44:20 +01:00
0cf90ee8b6
decoder/mad: work around bogus -Wuninitialized in GCC 10
2019-12-16 23:01:31 +01:00
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
192ad91010
Merge tag 'v0.21.13'
...
release v0.21.13
2019-08-06 11:39:25 +02:00
864d6f312d
Revert "decoder/mad: use MAD_F_MIN and MAD_F_MAX"
...
This reverts commit f7ed7446ae
. It was
a bad idea, because MAD_F_MIN and MAD_F_MAX do not represent the
clamping limits, but the theoretical minimum and maximum values of the
mad_fixed_t data type.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/617
2019-08-05 13:07:41 +02:00
c764b70b3a
decoder/mad: merge DecodeNextFrame() and DecodeNextFrameHeader()
2019-08-03 12:55:56 +02:00
52bb03e136
decoder/mad: eliminate redundant error handling from DecodeNextFrame()
...
Much of that is not possible when mad_header_decode() has already been
called.
2019-08-03 12:55:48 +02:00
a90685d6cf
Merge tag 'v0.21.12'
...
release v0.21.12
2019-08-03 12:53:23 +02:00
9661062ae2
decoder/mad: pass const reference to RecoverFrameError()
2019-08-03 11:59:41 +02:00
2a07354cad
decoder/mad: change integers to size_t
2019-08-03 11:44:02 +02:00
fc18fd571c
decoder/mad: return from SynthAndSubmit() early
2019-08-03 11:42:05 +02:00
51abed9732
decoder/mad: pass mad_pcm to mad_fixed_to_24_buffer()
2019-08-03 11:40:06 +02:00
d00afc912c
decoder/mad: eliminate the loop in SubmitPCM()
...
libmad has a hard-coded maximum PCM buffer size; if we make our
output_buffer just as large, we can avoid the loop, because any
possible size will fit.
2019-08-03 11:36:05 +02:00
9d0fe725eb
decoder/mad: rename a few misnamed methods
2019-08-03 11:32:42 +02:00
8a432c9b7f
decoder/mad: move code to LoadNextFrame()
2019-08-03 11:32:06 +02:00
187204f03c
decoder/mad: move code to HandleCurrentFrame()
2019-08-03 11:32:06 +02:00
5e5fadb5f2
decoder/mad: remove unnecessary initializers
...
These will not be used until they are initialized in SyncAndSend().
2019-08-03 08:49:26 +02:00
952c793235
decoder/mad: subtract libmad decoder delay from LAME encoder padding
...
Apparently, libmad not only inserts 529 samples of silence at the
beginning of the file, but also removes them at the end.
This solves the last piece of
https://github.com/MusicPlayerDaemon/MPD/issues/601
Closes https://github.com/MusicPlayerDaemon/MPD/issues/601
2019-08-03 08:35:00 +02:00
3e3d8c7f9d
decoder/mad: pad the input buffer with zero bytes and end of file
...
libmad requires padding the input buffer with "MAD_BUFFER_GUARD" zero
bytes at the end of the file, or else it is unable to decode the last
frame.
This fixes yet another bug which prevented this plugin from decoding
the last frame, see
https://github.com/MusicPlayerDaemon/MPD/issues/601
2019-08-03 08:32:27 +02:00
9b99a9897a
decoder/mad: don't count the Xing/LAME metadata frame
...
The Xing/LAME frame indicates how many frames there are, but that
excludes the initial Xing/LAME frame. Therefore, it should not be
counted.
This fixes an off-by-one bug which caused the last frame to be
skipped, fixing one part of
https://github.com/MusicPlayerDaemon/MPD/issues/601
2019-08-03 08:25:48 +02:00
4f56fdc397
decoder/mad: make "current_frame" zero-based
...
Increment "current_frame" after processing the frame.
2019-08-03 08:24:25 +02:00
c87d6825ec
decoder/mad: add API documentation
2019-08-03 08:07:30 +02:00
00830a20e3
decoder/mad: convert to class, make almost everything private
2019-08-03 07:52:51 +02:00
d39d2874b4
decoder/mad: move code to methods RunDecoder(), RunScan()
2019-08-03 07:49:41 +02:00
a0a74951b8
decoder/mad: eliminate attribute "bit_rate"
...
This also fixes a bug which caused the bit rate to not update after
seeking.
2019-08-03 00:38:45 +02:00
779a6855ff
decoder/mad: add noexcept
2019-08-03 00:28:59 +02:00
f7ed7446ae
decoder/mad: use MAD_F_MIN and MAD_F_MAX
2019-08-03 00:27:59 +02:00
9d44a6d2ae
decoder/mad: use Clamp()
2019-08-03 00:26:57 +02:00
10da9ee7ba
decoder/mad: refactor local variables in FillBuffer()
2019-08-02 23:19:11 +02:00
f9eff31205
decoder/mad: use sizeof(input_buffer)
2019-08-02 23:19:11 +02:00
1d74a029a2
decoder/mad: simplify variable initialization in FillBuffer()
2019-08-02 23:19:11 +02:00
6b8ca514bb
decoder/mad: fix broken log message
...
Broken since commit f8bfea8bae
2019-08-02 22:58:16 +02:00
f51e555154
decoder/mad: change "mp3_" suffix to "mad_"
2019-08-02 22:49:55 +02:00
61a3c69a06
decoder/mad: make enums strictly-typed
2019-08-02 22:49:55 +02:00
089615a01e
decoder/mad: include cleanup
2019-08-02 22:49:55 +02:00
d663f81420
include cleanups (powered by iwyu)
2019-07-05 09:59:58 +02:00
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
22a9e866bc
decoder/mad: make enums strictly-typed
2019-06-16 10:02:51 +02:00
97e6ea57c4
decoder/mad: change "mp3_" suffix to "mad_"
2019-06-16 10:01:10 +02:00
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
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
e28d1e0f65
decoder/mad: convert Tag**
parameter to just Tag*
2018-10-22 09:44:54 +02:00
a491d8ae24
decoder/mad: use class UniqueId3Tag
2018-10-22 09:44:50 +02:00
3cd5dd15f8
decoder/mad: don't initialize xing::frames
2018-10-22 09:44:48 +02:00
562ae44d38
decoder/mad: remove unused attribute from xing::magic
2018-10-22 09:44:46 +02:00
650a67dc38
decoder/mad: use mad_bit_skip() where appropriate
2018-10-19 20:24:16 +02:00
bdfaea0c25
decoder/mad: move parse_id3_mixramp() to src/tag/Id3ReplayGain.cxx
2018-10-19 19:45:32 +02:00
fd80683ade
decoder/mad: make "gapless_mp3_playback" a block option
...
Remove another dependency on the config/Global library.
2018-07-18 10:50:09 +02:00