Commit Graph

54 Commits

Author SHA1 Message Date
Max Kellermann
a139279575 Copyright year 2019 2019-06-17 11:17:30 +02:00
Max Kellermann
ce49d99c2f check.h: remove obsolete header
Since we switched from autotools to Meson in commit
94592c1406, we don't need to include
`config.h` early to properly enable large file support.  Meson passes
the required macros on the compiler command line instead of defining
them in `config.h`.

This means we can include `config.h` at any time, whenever we want to
check its macros, and there are no ordering constraints.
2018-11-19 16:33:49 +01:00
Max Kellermann
f5c9071494 *: copyright year 2018 2018-10-31 17:54:59 +01:00
Max Kellermann
914df18bf9 Main, ...: catch any exception, not just std::runtime_error 2017-12-19 10:56:23 +01:00
Max Kellermann
5900253b85 update copyright year 2017-01-03 20:48:59 +01:00
Max Kellermann
114fcee2ae decoder/Client: add virtual method Read() 2016-11-21 22:43:09 +01:00
Max Kellermann
b488204093 decoder/API: move DecoderBridge methods to Bridge.cxx 2016-11-21 22:14:09 +01:00
Max Kellermann
322bfbaf57 decoder/API: simplify the client==nullptr code path in decoder_read() 2016-11-21 22:13:03 +01:00
Max Kellermann
2718f4c333 decoder/API: move part of decoder_check_cancel_read() into class DecoderBridge 2016-11-21 22:07:03 +01:00
Max Kellermann
8c342a764b decoder/API: move functions into class DecoderBridge 2016-11-21 21:44:57 +01:00
Max Kellermann
697c3f8cb9 decoder/Internal: rename struct Decoder to class DecoderBridge 2016-11-21 21:38:23 +01:00
Max Kellermann
723e54f74e decoder/Client: add OpenUri(), replacing decoder_open_uri() 2016-11-18 12:34:04 +01:00
Max Kellermann
a88040e4d5 decoder/Client: add Submit methods
Replaces decoder_data() and others.
2016-11-18 09:05:04 +01:00
Max Kellermann
47a0f46ce8 decoder/Client: add DecoderCommand/seek virtual methods 2016-11-18 09:03:42 +01:00
Max Kellermann
66fb352cca decoder/Client: add virtual method Ready()
Replaces decoder_initialized().
2016-11-18 09:03:41 +01:00
Max Kellermann
fd77acc217 decoder/Client: new interface which wraps struct Decoder
Prepare for a Decoder API redesign based on an abstract class with
virtual methods.
2016-11-18 09:03:39 +01:00
Max Kellermann
595d1942cb decoder/Internal: rename "chunk" to "current_chunk" 2016-11-18 09:01:32 +01:00
Max Kellermann
b0b8f573bc decoder/API: copy exceptions to Decoder::error 2016-11-17 22:54:13 +01:00
Max Kellermann
746aa6cc0f decoder/API: check for errors in decoder_read() 2016-11-17 22:53:43 +01:00
Max Kellermann
fac610d47b decoder/API: decoder_open_uri() can throw StopDecoder 2016-11-17 22:48:18 +01:00
Max Kellermann
93209da176 decoder/API: lock decoder in decoder_get_command() 2016-11-17 22:36:42 +01:00
Max Kellermann
5b8b660bd0 decoder/DecoderAPI: include cleanup 2016-11-09 13:42:52 +01:00
Max Kellermann
8c744efd56 input/InputStream: migrate from class Error to C++ exceptions 2016-09-16 17:43:36 +02:00
Max Kellermann
1bc553ea62 decoder/DecoderAPI: catch InputStream::Read() exceptions 2016-09-16 17:34:53 +02:00
Max Kellermann
fc7d3f64c0 input/Plugin: migrate open() from class Error to C++ exceptions 2016-09-09 18:15:01 +02:00
Max Kellermann
ae1eb9ccde pcm/Convert: migrate from class Error to C++ exceptions 2016-09-09 14:44:13 +02:00
Max Kellermann
845901ab01 decoder/Internal: convert error from Error to std::exception_ptr 2016-09-08 20:56:05 +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
6f59d71e07 decoder/API: check initial_seek_running in _check_cancel_read()
The "seeking" flag is not set for the initial seek, and so
decoder_read() could be canceled when another SEEK was emitted during
initial seek.

This fixes several seek problems, for example the one reported for the
FLAC decoder plugin:

 https://bugs.musicpd.org/view.php?id=4552
2016-07-06 15:46:04 +02:00
Max Kellermann
280d35a053 decoder/api: use class ScopeLock 2016-05-02 23:33:08 +02:00
Max Kellermann
1d67aa7bf2 update copyright year to 2016 2016-02-26 17:54:05 +01:00
Max Kellermann
cadc67ea40 input: wrap InputStream in std::unique_ptr 2016-02-21 08:03:32 +01:00
Max Kellermann
b9213df64b decoder/API: use ScopeLock 2015-12-31 13:43:35 +01:00
Max Kellermann
90e7ace980 release v0.19.10
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJVhsF2AAoJECNuiljG20US2OUQAIyDcaUCFgUa2CYa7MftCPGc
 dYJFwf+6Y2fJdSXcogYZmXNKNjFbPAZ4qqGdoNfI5a0rLxMarmL4DyjziAWi3ETB
 MOkZK65Y5ySyyw69e+i/XsOwOn8rm6jDuwHKpT7wVJNjvZ8nA8esvu5b1Ief5LBd
 UwEmn5DtKjA7dErHEYd2YvMK0xm+YmoKXuhmJKAn3sQdCEldgH4T5BCdOqmfrHWX
 BYmNxmP3PU9Tqi7XHTSFZJn6vWiXhOoWr4Cb7K54j49sRV2B4QMWX1CLyK4+Jwmk
 NZwD1IoGtoks5twfMTA9F9dBV/CPAWT69E0LIvaFJwCyoPCEnEi6k41bRAWK7P65
 QwKxdtY/GZnVFpiqXba+wkD6VBa5wmkjS10+cIBhz3CVCEE+N5YacubUw5JieYg3
 kOG2htSF1YP/Mo+IAObO9doQWHnDUavVhhpQ8UyqQ1bDMsmaEpfE16TRmlY/l5wx
 Aor2p6D3c0E0IGpEwjOl6T9pDql4dyTdrRLLXJ6oD9iYv2rDdahctBRdyFZ1mRwX
 oNUz8bfGDrshHVvwjQTr2b4O+w+yc+RSuJcyCGGcn5LakBuiM6vYNYuZzq3Yj/RK
 Wk7RErVsbtY4ZRH06Lf5MSM5TflnrfQmzkUB0rZ0XoDyweoHOHPyzKhvBaKhadNh
 UnEx4kCOvWdjFXUVWH3Q
 =MrVf
 -----END PGP SIGNATURE-----

Merge tag 'v0.19.10'
2015-06-21 16:06:02 +02:00
Max Kellermann
6d6f274648 DecoderAPI: discard unused song tag early
If there's a stream tag, don't let the song tag override it in the
next update_stream_tag() call.
2015-06-21 15:10:55 +02:00
Max Kellermann
e4d0293a31 DecoderAPI: "move" the Tag object
Reduce runtime overhead.
2015-06-20 16:06:09 +02:00
Max Kellermann
712ed555e6 Copyright year 2015 2015-01-01 19:48:13 +01:00
Max Kellermann
a464dc681a release v0.18.14
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUEdhhAAoJECNuiljG20USwKkP/1MIm6J2ydXEP81RD/3llz6h
 2t8EK94cEIdb6bA6goBI0Pipz7YAtmjgfnDRW90AvFcxNuVt87esxG82gVOiosvo
 7LByehQ2kq/w0evILWy8X1eAvqIk/PvG6T/pZcPrrj7kHrZaIOXh0SVTZ5NLq7HC
 drunwHQxgVntB/410h7BKEFbg1qWHPGxfTyf6qJsZPkHfr5QcgbHrYN7QCr1eUv9
 mARx4Nxo9MXuiqOJOS7ck80V68nbnFdxjNXSflUkl94O0MfiPc741Snbe7qnHI91
 I+BQYCBExKzoqFszuuRZQjxFpJalg4Y/9/stn6+dYemtC3WpreGHogweUBlPZ5if
 wJRL/A/zHAY0xE/hohiEqY6pHZWmVolbumtp7LfNR7dejOetn0IPW+KnFnjYec21
 qkJG/mq8fHStdQMTzp5NDoqh8VrPaBAAhjgP3suZY2wZ5xfbLXHk/HNKdQLvX8s3
 Vv4wcDNsfbOJ/1ZTBo/nqceTkOyHrov5cDSotYnO1hs963vyk3LFwY2IRCgPdOR0
 7o77JmKHZnzZSw60CIT6Mf1+rx38x++Rq3UGDYuH4B4L4VqXv2WrUp32w1VzHQVO
 Dcd/dxwW/sB1SwMdi5J4tIBJCSn5mF7yvBPR0PB5NiZiX1YB6hEqmaXYfwLCqujo
 xyWy8gPJbmYw6XJPmw6A
 =3azu
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.14'
2014-09-11 19:26:58 +02:00
Max Kellermann
26bef5d209 DecoderAPI: use std::min() 2014-08-31 08:27:51 +02:00
Max Kellermann
cd6e0ff88a MusicChunk: remove special case for num_frames==0
Simply return an empty WritableBuffer, not a nulled one.
2014-08-31 08:26:03 +02:00
Max Kellermann
d9d97bd17b DecoderAPI: pass SignedSongTime to decoder_initialized() 2014-08-29 21:40:15 +02:00
Max Kellermann
9d3a85d434 MusicChunk: use SignedSongTime for the time stamp 2014-08-29 13:20:58 +02:00
Max Kellermann
ca252804c6 DecoderControl: use SignedSongTime for the song duration 2014-08-29 13:20:58 +02:00
Max Kellermann
f02998b106 DecoderControl: use std::chrono::duration for start_ms and end_ms 2014-08-28 13:08:44 +02:00
Max Kellermann
6ad933982f DetachedSong: use std::chrono::duration for start_ms and end_ms 2014-08-28 13:03:18 +02:00
Max Kellermann
ba6ba7d4be DecoderControl: use std::chrono::duration for Seek() 2014-08-27 18:48:43 +02:00
Max Kellermann
0c2d767f6f DecoderAPI: use std::chrono::duration for decoder_seek*()
For type safety and code readability.
2014-08-26 22:27:04 +02:00
Max Kellermann
8561c9c5a6 DecoderAPI: add decoder_seek_where_frame() 2014-08-26 11:27:41 +02:00
Max Kellermann
316c72a4ae DecoderAPI: add decoder_seek_where_ms()
Move to fixed-point integers instead of floating point.
2014-08-26 11:02:02 +02:00
Max Kellermann
56f61a6d59 PcmConvert: Convert() returns ConstBuffer 2014-08-12 16:36:07 +02:00