Max Kellermann
09157c3130
decoder/Thread: use ScopeLock in decoder_run_stream()
2015-12-31 13:01:49 +01:00
Max Kellermann
00626b1633
decoder/Thread: use std::unique_ptr<InputStream>
2015-12-31 13:01:03 +01:00
Max Kellermann
7e0cdbe502
decoder/Thread: use ScopeUnlock for exception-safety
2015-12-31 12:59:06 +01:00
Max Kellermann
ca08902d71
decoder/Thread: use ScopeLock in TryDecoderFile()
2015-12-31 12:58:58 +01:00
Max Kellermann
fad0e834d5
decoder/Thread: always unlock mutex before returning from TryDecoderFile()
...
Remove that surprising rule.
2015-12-31 12:57:35 +01:00
Max Kellermann
dc76eb6139
decoder/Thread: mutex not locked for decoder_run_{file,stream}()
2015-12-31 12:42:02 +01:00
Max Kellermann
55e113c7a7
decoder/Thread: document locking rules
2015-12-31 12:36:32 +01:00
Max Kellermann
b62f5e079e
decoder/Thread: use ScopeLock for exception-safety
2015-12-31 12:36:00 +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
9acefcb256
DecoderThread: set Decoder::song_tag only for local files
...
If the song tag comes from a stream, and MPD playback restarts, MPD
would believe the tag should override the newly received tag. This
makes the previous tag appear stuck. This change passes the song tag
only if it's authoritative - i.e. if it's a song file.
2015-06-21 15:02:14 +02:00
Max Kellermann
ee6e0e16cb
DecoderThread: make variables more local
2015-01-31 22:20:38 +01:00
Max Kellermann
eb1733609a
decoder/sndfile, ...: update API documentation
2015-01-31 22:17:15 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
7d5442e103
Decoder, Playlist: ignore URI query string for plugin detection
...
Use the new uri_get_suffix() overload that removes the query string.
2014-11-01 13:41:18 +01:00
Max Kellermann
7e12aea1d8
input/Open: use OpenLocalInputStream()
...
Make the "open" method of plugins "file" and "archive" dummy methods
that always fail. Instead, let InputStream::Open() hard-code access
to these two plugins by using OpenLocalInputStream(). This allows
simplifyin the algorithm for falling back to probing archive plugins.
2014-10-02 21:50:14 +02:00
Max Kellermann
20346b0da4
DecoderThread: use OpenLocalInputStream() for local files
2014-10-02 21:48:52 +02: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
f02998b106
DecoderControl: use std::chrono::duration for start_ms and end_ms
2014-08-28 13:08:44 +02:00
Max Kellermann
82337dec44
InputStream: add virtual destructor
...
Replaces the method Close().
2014-05-11 17:12:50 +02:00
Max Kellermann
6773adc771
InputStream: convert to class
2014-05-11 15:34:48 +02:00
Max Kellermann
6b421cc354
DecoderPlugin: pass Path instance to file_decode() and scan_file()
2014-02-07 18:52:19 +01:00
Max Kellermann
ca7f6a26b5
DecoderThread: use only DetachedSong::GetRealURI()
...
Don't use the mapper - all DetachedSong instances we get have already
been mapped.
2014-02-07 18:50:07 +01:00
Max Kellermann
9b69d22d7e
DecoderThread: pass Path object around for local song files
2014-02-07 18:45:11 +01:00
Max Kellermann
f8bfea8bae
Input*: move to input/
2014-01-24 16:33:33 +01:00
Max Kellermann
51adaf2c47
decoder/*: move to decoder/plugins/
2014-01-24 00:02:24 +01:00