aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/DecoderThread.cxx (follow)
Commit message (Collapse)AuthorAgeFilesLines
* DecoderThread: set Decoder::song_tag only for local filesMax Kellermann2015-06-211-1/+5
| | | | | | | 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.
* Decoder, Playlist: ignore URI query string for plugin detectionMax Kellermann2014-11-011-1/+2
| | | | Use the new uri_get_suffix() overload that removes the query string.
* input/Open: use OpenLocalInputStream()Max Kellermann2014-10-021-3/+1
| | | | | | | 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.
* DecoderThread: use OpenLocalInputStream() for local filesMax Kellermann2014-10-021-1/+20
|
* Merge tag 'v0.18.14'Max Kellermann2014-09-111-1/+11
|
* DecoderControl: use std::chrono::duration for start_ms and end_msMax Kellermann2014-08-281-1/+1
|
* InputStream: add virtual destructorMax Kellermann2014-05-111-2/+2
| | | Replaces the method Close().
* InputStream: convert to classMax Kellermann2014-05-111-3/+4
|
* DecoderPlugin: pass Path instance to file_decode() and scan_file()Max Kellermann2014-02-071-4/+4
|
* DecoderThread: use only DetachedSong::GetRealURI()Max Kellermann2014-02-071-4/+2
| | | | | Don't use the mapper - all DetachedSong instances we get have already been mapped.
* DecoderThread: pass Path object around for local song filesMax Kellermann2014-02-071-21/+27
|
* Input*: move to input/Max Kellermann2014-01-241-1/+1
|
* decoder/*: move to decoder/plugins/Max Kellermann2014-01-241-0/+476