Max Kellermann
|
0bd25f1e17
|
decoder/sidplay: log detailed error message
|
2016-07-29 17:04:38 +02:00 |
|
Max Kellermann
|
a4cd7411e8
|
decoder/sidplay: remove unnecessary error check
The ReSIDBuilder constructor cannot fail.
|
2016-07-29 17:03:26 +02:00 |
|
Max Kellermann
|
bf276f6235
|
decoder/sidplay: use SidTune::getStatus()
|
2016-07-29 16:58:58 +02:00 |
|
Max Kellermann
|
071cacc9a4
|
decoder/sidplay: pass SidTuneMod to get_song_length()
Eliminate duplicate SidTune construction.
|
2016-07-29 14:56:05 +02:00 |
|
Max Kellermann
|
33f33323af
|
decoder/sidplay: simplify the SidDatabase::length() call
|
2016-07-29 14:55:58 +02:00 |
|
Max Kellermann
|
388fae2c47
|
decoder/sidplay: include cleanup
|
2016-07-29 14:55:28 +02:00 |
|
Max Kellermann
|
9f878b77e9
|
decoder/sidplay: use class SidDatabase
Remove our own songlength database parser.
|
2016-07-29 14:55:28 +02:00 |
|
Max Kellermann
|
a547d2aaba
|
decoder/sidplay: use config_param::GetBlockPath()
|
2016-07-29 14:55:28 +02:00 |
|
Max Kellermann
|
c013026821
|
decoder/sidplay: make "songlength_file" local
|
2016-07-29 14:55:28 +02:00 |
|
Max Kellermann
|
96b48a2404
|
decoder/sidplay: pass parsed path to get_song_length()
Eliminates duplicate ParseContainerPath() call.
|
2016-07-29 14:55:28 +02:00 |
|
Max Kellermann
|
9612975c2c
|
decoder/sidplay: merge get_container_name() and get_song_num()
|
2016-07-29 14:55:28 +02:00 |
|
Max Kellermann
|
8825393660
|
decoder/ffmpeg: use avcodec_alloc_context3()
This commit suppresses the remaining deprecation warnings with FFmpeg 3.1.
|
2016-07-29 09:20:36 +02:00 |
|
Max Kellermann
|
2b9246c6ad
|
decoder/ffmpeg: use avcodec_send_packet() and avcodec_receive_frame() on FFmpeg 3.1
|
2016-07-29 09:20:05 +02:00 |
|
Max Kellermann
|
a9edb4de28
|
decoder/ffmpeg: use AtScopeExit() for safe cleanup
|
2016-07-29 09:08:14 +02:00 |
|
Max Kellermann
|
0c809fbb40
|
Merge branch 'v0.19.x'
|
2016-07-29 09:00:20 +02:00 |
|
Max Kellermann
|
cafc266e0b
|
decoder/ffmpeg: merge avformat_close_input() calls
|
2016-07-28 20:38:07 +02:00 |
|
Max Kellermann
|
a3d020eff9
|
decoder/ffmpeg: use AVCodecParameters on FFmpeg 3.1
The AVCodecContext attribute is deprecated.
|
2016-07-28 19:50:25 +02:00 |
|
Max Kellermann
|
8412d94d05
|
decoder/ffmpeg: add GetCodecParameters()
Preparing for FFmpeg 3.1 support.
|
2016-07-28 19:49:47 +02:00 |
|
Max Kellermann
|
d1c5bb956a
|
decoder/ffmpeg: move code to IsAudio()
|
2016-07-28 19:49:45 +02:00 |
|
Max Kellermann
|
70986bc120
|
decoder/ffmpeg: move code to FfmpegSendFrame()
|
2016-07-28 19:49:18 +02:00 |
|
Max Kellermann
|
f31fe8b865
|
decoder/ffmpeg: include cleanup
|
2016-07-28 19:49:17 +02:00 |
|
Max Kellermann
|
142a9fe530
|
decoder/ffmpeg: move code to pcm/Interleave.cxx
|
2016-07-28 19:49:13 +02:00 |
|
Max Kellermann
|
4dd2ad9b27
|
decoder/ffmpeg: check for commands earlier
Improve initial seek by not reading/decoding the first frame before
checking for the seek command.
|
2016-07-28 19:48:27 +02:00 |
|
Max Kellermann
|
62f7375804
|
decoder/ffmpeg: simplify mpd_ffmpeg_open_input()
|
2016-07-28 19:48:25 +02:00 |
|
Max Kellermann
|
543296b5ba
|
decoder/ffmpeg: move code to lib/ffmpeg/Init.cxx
|
2016-07-28 19:48:22 +02:00 |
|
Max Kellermann
|
5fee130d00
|
decoder/ffmpeg: move code to lib/ffmpeg/LogCallback.cxx
|
2016-07-28 19:47:49 +02:00 |
|
Max Kellermann
|
073facea70
|
decoder/ffmpeg: remove obsolete comment
|
2016-07-28 19:47:47 +02:00 |
|
Max Kellermann
|
dbe3b6eee4
|
decoder/ffmpeg: convert enums to constexpr
|
2016-07-28 19:47:36 +02:00 |
|
Max Kellermann
|
df97049647
|
decoder/ffmpeg: move struct AvioStream to FfmpegIo.hxx
|
2016-07-28 19:47:31 +02:00 |
|
Max Kellermann
|
42c5f68362
|
decoder/ffmpeg: use AVStream::duration
Use the duration of the stream we're actually decoding - not the
"global" attribute AVFormatContext::duration which may differ.
|
2016-07-28 19:47:24 +02:00 |
|
Max Kellermann
|
cc19e760cf
|
decoder/ffmpeg: use more references
|
2016-07-28 19:45:22 +02:00 |
|
Max Kellermann
|
0ff22a16fa
|
decoder/ffmpeg: move code to lib/ffmpeg/Time.hxx
|
2016-07-28 19:45:11 +02:00 |
|
Max Kellermann
|
47360ec906
|
decoder/ffmpeg: use av_free() instead of av_freep()
|
2016-07-28 19:45:07 +02:00 |
|
Max Kellermann
|
087a9938d2
|
decoder/ffmpeg: add API documentation
|
2016-07-28 19:45:05 +02:00 |
|
Max Kellermann
|
26d8e41a6b
|
decoder/ffmpeg: copy_interleave_frame() returns ConstBuffer
|
2016-07-28 19:45:01 +02:00 |
|
Max Kellermann
|
750ae1d3f3
|
decoder/ffmpeg: copy_interleave_frame() returns Error
|
2016-07-28 19:44:42 +02:00 |
|
Max Kellermann
|
f8a9a7a108
|
decoder/ffmpeg: simplify ffmpeg_send_packet()
|
2016-07-28 19:44:39 +02:00 |
|
Max Kellermann
|
eb192137d6
|
decoder/ffmpeg: copy the AVPacket in ffmpeg_send_packet()
Revert commit 70495aad by rewriting it. Turns out, in old FFmpeg
versions, copying the AVPacket is necessary.
|
2016-07-28 19:42:25 +02:00 |
|
Max Kellermann
|
c25b464f37
|
decoder/ffmpeg: move code to class FfmpegBuffer
|
2016-07-27 17:31:02 +02:00 |
|
Max Kellermann
|
710b48d410
|
decoder/ffmpeg: log detailed error message
|
2016-07-27 17:28:12 +02:00 |
|
Max Kellermann
|
5e77a8199d
|
decoder/ffmpeg: remove obsolete comment
|
2016-07-27 17:28:12 +02:00 |
|
Max Kellermann
|
6637db086b
|
decoder/ffmpeg: add "pure" attributes
|
2016-07-27 17:28:12 +02:00 |
|
Max Kellermann
|
a271a55da7
|
decoder/ffpmeg: make variables more local
|
2016-07-27 17:28:12 +02:00 |
|
Max Kellermann
|
6eeec6cbfa
|
decoder/ffpmeg: simplify ffmpeg_send_packet()
|
2016-07-27 17:22:13 +02:00 |
|
Max Kellermann
|
5e3f3b0400
|
decoder/ffpmeg: rename functions to CamelCase
|
2016-07-27 17:18:58 +02:00 |
|
Max Kellermann
|
923c402f69
|
decoder/ffmpeg: optimize ffmpeg_scan_dictionary()
Don't scan tag items if the handler doesn't implement the tag()
method.
|
2016-07-27 17:17:14 +02:00 |
|
Max Kellermann
|
44219d5e91
|
decoder/flac: refactor flac_convert() to class FlacPcmImport
|
2016-07-11 23:34:55 +02:00 |
|
Max Kellermann
|
b9de3270f6
|
decoder/flac: specialize "stereo" for all bit depths
|
2016-07-11 23:33:34 +02:00 |
|
Max Kellermann
|
590d6faeb0
|
decoder/flac: convert flac_convert_*() to templates
|
2016-07-11 23:27:57 +02:00 |
|
Max Kellermann
|
62e96e9a58
|
decoder/flac: pass number of frames to flac_convert()
|
2016-07-11 23:24:48 +02:00 |
|
Max Kellermann
|
1c818ef0a0
|
decoder/flac: improve warning message about unsupported bit depth
|
2016-07-11 23:13:33 +02:00 |
|
Max Kellermann
|
d6ce2e3671
|
decoder/flac: move functions into struct FlacDecoder
|
2016-07-11 23:11:22 +02:00 |
|
Max Kellermann
|
85b6a52662
|
decoder/flac: use C++11 initializers
|
2016-07-11 22:44:39 +02:00 |
|
Max Kellermann
|
0246082b9b
|
decoder/flac: move position code to FlacDecoder::GetDeltaPosition()
|
2016-07-11 22:38:26 +02:00 |
|
Max Kellermann
|
3b031c6ba5
|
decoder/flac: throw exception on FLAC__stream_decoder_new() failure
|
2016-07-11 22:38:03 +02:00 |
|
Max Kellermann
|
74740ca50b
|
decoder/flac: add class FlacStreamDecoder wrapping a FLAC__StreamDecoder*
|
2016-07-11 22:37:55 +02:00 |
|
Max Kellermann
|
631baa7120
|
decoder/flac: eliminate redundant FlacDecoder attributes
|
2016-07-11 22:37:52 +02:00 |
|
Max Kellermann
|
657d6edff7
|
decoder/flac: add FlacInput getter methods
|
2016-07-11 22:37:49 +02:00 |
|
Max Kellermann
|
737c5a9549
|
decoder/flac: rename struct flac_data to FlacDecoder
|
2016-07-11 22:37:46 +02:00 |
|
Max Kellermann
|
b67e7df38e
|
release v0.19.17
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXgCv6AAoJECNuiljG20USR3cP/RALB4qlhecMo6H8VwZvfjiA
FHfhBKfdpHM3U3EEIZc1zxwHIdWk1yELtmx298vmJbWUifpYAYarXF5497tZf2XE
AVfhTltEJEd7xB5ZULnEScM1aHzMZm5HRcHwM1UqNCsXP7PT8fmpk7gw19pKOChT
h8V3+tpC403lCIcHcJGlkuzgZvKIZDs73g7a0+4GxD9XRAPwnMYRl3Cfd8QjKT/U
r67AcOwQlS6hWJFs0K1JjOQwfwbRq2YmuOmFJua6n8O6CI/7t4h3faSQ0V/5qjFd
k/pAMRtX6mz3mjVhZv4cuMy+QILWlxUNwLBIwtxSfbwcFKrN0vtIRG8O9622hTs2
+mvYiVboWABk6hnukiDAfki96jWYHlsCJR5oIK9DZ4nBe5RVp0r9Nq/ook2AW2it
6VgYIDBI5zS/blyJzXtzDVWEtSmLFxm21JSl+jHfWDtL6/rQGimdVOFkRw40oCBz
seYb5kIbilrg6xq1KiBMT+EWmXMf+q+3YWQsu01blXGYGPhpUqhIr0h/qUfWAqMs
fwIsoxsTrkQQjEWb6YWupPrdOLZ+kTAyaK+7v8B8JmzS/H3SohusMPUZKsQXl82s
5LJVLtVxB9WRRmpfSoYqfk7CkTHOktCzVmiHb/FYUYElS9VKmJYYU8XQ25snCoZ6
bYtERsH28q8rrpkWWEXP
=IXD5
-----END PGP SIGNATURE-----
Merge tag 'v0.19.17'
release v0.19.17
|
2016-07-09 00:46:09 +02:00 |
|
Max Kellermann
|
ab95027fc6
|
decoder/flac: suppress warning at end of stream
This is required if a stream ands without another chained FLAC file.
|
2016-07-08 23:19:47 +02:00 |
|
Max Kellermann
|
ed3bc4ab63
|
decoder/flac: move code to FlacInitAndDecode()
|
2016-07-08 23:03:49 +02:00 |
|
Max Kellermann
|
68064f1aa6
|
decoder/flac: move duplicate code to flac_data::Initialize()
|
2016-07-08 22:44:23 +02:00 |
|
Max Kellermann
|
475ac76a5f
|
decoder/flac: late "total_frames" initialization
|
2016-07-08 22:43:31 +02:00 |
|
Max Kellermann
|
79d4f8674c
|
decoder/flac: remove "duration" parameter from flac_decoder_initialize()
It's always 0.
|
2016-07-08 22:41:19 +02:00 |
|
Max Kellermann
|
e42eed4d4c
|
decoder/flac: remove pointless check
|
2016-07-08 22:41:19 +02:00 |
|
Max Kellermann
|
4a7042e847
|
decoder/flac: handle unknown duration correctly
If the duration is unknown, pass SignedSongTime::Negative(), as
documented for decoder_initialized().
|
2016-07-08 22:33:49 +02:00 |
|
Max Kellermann
|
7f36923eb4
|
decoder/flac: pass SignedSongTime to decoder_initialized()
|
2016-07-08 22:32:23 +02:00 |
|
Max Kellermann
|
2ca8d69126
|
decoder/flac: document flac_data::position
|
2016-07-08 22:20:16 +02:00 |
|
Max Kellermann
|
70367d70c8
|
decoder/flac: remove obsolete sub-song support
This is obsolete because it has been moved to the MPD core.
|
2016-07-08 21:59:30 +02:00 |
|
Max Kellermann
|
f9130f42a2
|
decoder/flac: try to recover from seek error()
libFLAC API documentation suggests that FLAC__stream_decoder_flush()
should be called to recover from FLAC__STREAM_DECODER_SEEK_ERROR.
|
2016-07-05 19:29:56 +02:00 |
|
Max Kellermann
|
faf2eeaa99
|
decoder/flac: evaluate all possible FLAC__stream_decoder_get_state() values
Stop after all fatal errors. This fixes assertion failures in
libFLAC.
|
2016-07-05 19:27:40 +02:00 |
|
Max Kellermann
|
34e91850d9
|
decoder/pcm: assume that audio/L16 is big-endian
See https://bugs.musicpd.org/view.php?id=4547
|
2016-07-01 21:34:56 +02:00 |
|
Max Kellermann
|
8b903626c2
|
release v0.19.16
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXXuZbAAoJECNuiljG20USSegP/1gYoDyp4vDDCcRBNZkr3hlE
VbFyEz06/chfUTCRWFxtM6ghVMzSpqv7I8wDA8zv22NTkForVWD3gjimtJqJ/R4w
aT7QMZJmJUIH0Uf+dRp98YRG7m5S1Y5JkKEYu4oxQOECxbNMPd+ilbb6wwr2pYZ/
k2ks+oyYtPgqtWlriIbJMwXOyQEfqNCJgzxUzC2U6idVALYpj+5aK+VTY4Nk1YXw
nLAu8TT40jNYFfss0bDYBzQbm/82m8Q9JIkmoOpX/3WaRaCjaVza7IvRKgDPZutJ
mmrtu5SJ+QgLQLaXvav84KwtXhDbJu4zEbC7tUL0LGSmzbpiiz2DSUJP2jQ0C6nS
wgcACFkHGBLOjKNbjDB1eUhS7ouzxTGgPlsMC89254R7XQP/5EV9H3Quxb48Bxq7
PuW6nNHytppfAIZP18X62oL8hpSgwK1zLe34jzayJlkGIg5O1he4FcJQykvlzrjm
fBvL+hX3TM9exfASQujNXVgxFGPmgb37bE2aQyxZunE1DltJWfHyOhdme9vCuEcB
acz8gR/jcp8OKe4RCEdD1g86CSW2wlMfKfnzuwPPhcw0L3kz6OYcjRr2oMae7uG0
/NFw+PcdHcVKXjiRoJsdCvtN+jRtJhCUn314IskgyKad/UNcELbo7WDBUqHC36Wg
ncM6Sis4oal4jPXJ2JoE
=6ee1
-----END PGP SIGNATURE-----
Merge tag 'v0.19.16'
release v0.19.16
|
2016-06-13 19:03:59 +02:00 |
|
Max Kellermann
|
4ecd325371
|
decoder/flac: log seek errors
|
2016-06-13 18:37:45 +02:00 |
|
Max Kellermann
|
22ff0d80ce
|
decoder/pcm: add MIME type "audio/x-mpd-float"
|
2016-06-10 23:06:21 +02:00 |
|
Max Kellermann
|
5a22a0c27d
|
decoder/pcm: implement RFC 2586 (audio/L16)
https://bugs.musicpd.org/view.php?id=4525
|
2016-06-10 22:52:35 +02:00 |
|
Max Kellermann
|
2ee43c403c
|
decoder/vorbis: reimplement using class OggDecoder
Use libvorbis instead of libvorbisfile, which gives us more control
over the decoding process.
|
2016-05-14 12:31:12 +02:00 |
|
Max Kellermann
|
bbbda7f812
|
decoder/opus: move code to new class OggDecoder
Prepare to reuse the same code for a new Vorbis decoder plugin based
on libvorbis instead of libvorbisfile.
|
2016-05-14 11:31:31 +02:00 |
|
Max Kellermann
|
e958900380
|
decoder/vorbis: reimplement _scan_stream() with plain libvorbis
|
2016-05-14 10:52:52 +02:00 |
|
Max Kellermann
|
74926c1dd3
|
decoder/opus: move _scan_stream() code to OggReadPacket()
|
2016-05-14 10:39:53 +02:00 |
|
Max Kellermann
|
2654888782
|
decoder/OggFind: move to lib/xiph/
|
2016-05-14 10:34:05 +02:00 |
|
Max Kellermann
|
b5ecfb4c9a
|
decoder/opus: move code to class OggVisitor
|
2016-05-13 13:37:49 +02:00 |
|
Max Kellermann
|
5acc77a163
|
decoder/opus: change return types to void
|
2016-05-13 13:24:32 +02:00 |
|
Max Kellermann
|
0709878b4c
|
decoder/API: add class StopDecoder
|
2016-05-13 13:23:24 +02:00 |
|
Max Kellermann
|
662e477028
|
decoder/opus: throw exceptions instead of returning DecoderCommand::STOP
|
2016-05-13 13:18:19 +02:00 |
|
Max Kellermann
|
9252432bc0
|
decoder/opus: move OggSyncState into class MPDOpusDecoder
|
2016-05-13 12:25:30 +02:00 |
|
Max Kellermann
|
f057f6768f
|
decoder/opus: pass DecoderReader to constructor
|
2016-05-13 12:16:22 +02:00 |
|
Max Kellermann
|
e8fd771b91
|
decoder/opus: change Decoder pointers to references
|
2016-05-13 10:39:36 +02:00 |
|
Max Kellermann
|
fa4178fefa
|
decoder/opus: remove ogg_page parameter from constructor
Initialize the OggStreamState as soon as the first page is seen; no
special code needed in the caller.
|
2016-05-11 17:57:51 +02:00 |
|
Max Kellermann
|
1af59d31b9
|
decoder/opus: add method IsInitialized()
|
2016-05-11 17:27:26 +02:00 |
|
Max Kellermann
|
20758cef30
|
decoder/opus: make internal methods "private"
|
2016-05-11 17:27:02 +02:00 |
|
Max Kellermann
|
272938529d
|
decoder/opus: move everything into anonymous namespace
|
2016-05-11 17:25:43 +02:00 |
|
Max Kellermann
|
a1a26b70bc
|
decoder/opus: make opus_serialno a local variable
|
2016-05-09 15:43:15 +02:00 |
|
Max Kellermann
|
34a7f86a07
|
decoder/opus: use class OggStreamState in _stream_decode()
|
2016-05-09 15:41:03 +02:00 |
|
Max Kellermann
|
e7311ac2f3
|
decoder/opus: use C++11 initializers
|
2016-05-09 15:41:01 +02:00 |
|
Max Kellermann
|
8d9ecc0c62
|
decoder/opus: make variables more local
|
2016-05-09 15:41:00 +02:00 |
|
Max Kellermann
|
f01b991108
|
decoder/opus: use class OggStreamState in _scan_stream()
|
2016-05-09 15:40:59 +02:00 |
|
Max Kellermann
|
a9678f0ae0
|
decoder/opus: fix minor typo
|
2016-05-09 15:00:04 +02:00 |
|
Max Kellermann
|
8af68db965
|
lib/xiph/OggStreamState: new ogg_stream_state wrapper
|
2016-05-09 14:50:39 +02:00 |
|