Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | decoder/faad: estimate song duration for remote files | Max Kellermann | 2014-07-12 | 2 | -0/+23 | |
| | | | | | | | | | | | | | | | | Previously, MPD tried to slurp the whole song file, count the number of frames and calculate the song duration from that. That however is extremely expensive for remote files, and will delay playback for a long time. Workaround: check only the first 128 frames and try to extrapolate from here. Fixes Mantis ticket 0004035. | |||||
| * | DecoderBuffer: add method _available() | Max Kellermann | 2014-07-12 | 2 | -0/+13 | |
| | | ||||||
| * | DecoderBuffer: add method _get_stream() | Max Kellermann | 2014-07-12 | 2 | -0/+10 | |
| | | ||||||
| * | decoder/faad: bail out early if sample rate is invalid | Max Kellermann | 2014-07-12 | 1 | -0/+2 | |
| | | ||||||
| * | decoder/faad: use adts_check_frame() in faad_song_duration() | Max Kellermann | 2014-07-12 | 1 | -2/+1 | |
| | | | | | | | | Eliminate more duplicate code. | |||||
| * | decoder/faad: test "seekable" after ADTS frame check | Max Kellermann | 2014-07-12 | 1 | -1/+5 | |
| | | | | | | | | | | Don't bother to check for ADIF just because the stream is not seekable. | |||||
| * | decoder/faad: move code to faad_decoder_new() | Max Kellermann | 2014-07-12 | 1 | -14/+17 | |
| | | | | | | | | Merge some duplicate code. | |||||
| * | decoder/faad: remove unnecessary read | Max Kellermann | 2014-07-12 | 1 | -2/+0 | |
| | | | | | | | | Eliminate some overhead when the caller doesn't need the buffer. | |||||
| * | DecoderBuffer: add "pure" attributes | Max Kellermann | 2014-07-12 | 1 | -0/+4 | |
| | | ||||||
| * | DecoderBuffer: add method _clear() | Max Kellermann | 2014-07-12 | 3 | -8/+12 | |
| | | ||||||
| * | decoder/faad: check sample_rate, not frames_per_second | Max Kellermann | 2014-07-11 | 1 | -2/+4 | |
| | | | | | | | | Checking the integer is faster, easier and more reliable. | |||||
| * | decoder/faad: make variables more local | Max Kellermann | 2014-07-11 | 1 | -71/+49 | |
| | | ||||||
| * | decoder/faad: use MAX_CHANNELS | Max Kellermann | 2014-07-11 | 1 | -4/+2 | |
| | | | | | | | | .. instead of declaring a new constant. | |||||
* | | decoder/sndfile: implement scan_stream() instead of scan_file() | Max Kellermann | 2014-07-11 | 2 | -5/+7 | |
| | | ||||||
* | | decoder/sndfile: make variables more local | Max Kellermann | 2014-07-11 | 1 | -10/+7 | |
| | | ||||||
* | | decoder/sndfile: support more tag types | Max Kellermann | 2014-07-11 | 2 | -0/+5 | |
| | | ||||||
* | | decoder/sndfile: add str_type to TagType table | Max Kellermann | 2014-07-11 | 1 | -3/+11 | |
| | | ||||||
* | | decoder/sndfile: move code to sndfile_handle_tag() | Max Kellermann | 2014-07-11 | 1 | -15/+12 | |
| | | ||||||
* | | decoder/sndfile: log libsndfile version on startup | Max Kellermann | 2014-07-11 | 1 | -1/+8 | |
| | | ||||||
* | | PlaylistEdit: fix typo in code comment | Max Kellermann | 2014-07-11 | 1 | -1/+1 | |
| | | ||||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-07-11 | 12 | -33/+148 | |
|\| | ||||||
| * | decoder/sndfile: use decoder_read_full() | Max Kellermann | 2014-07-11 | 1 | -16/+6 | |
| | | | | | | | | | | Replaces the loop in sndfile_vio_read(), eliminating duplicate and fragile code. | |||||
| * | decoder/sndfile: use decoder_read() | Max Kellermann | 2014-07-11 | 2 | -16/+23 | |
| | | | | | | | | .. instead of InputStream::LockRead(). The former is cancellable. | |||||
| * | decoder/sndfile: log seek errors | Max Kellermann | 2014-07-11 | 1 | -1/+4 | |
| | | ||||||
| * | decoder/audiofile: log seek errors | Max Kellermann | 2014-07-11 | 1 | -0/+1 | |
| | | ||||||
| * | decoder/audiofile: fix typo in comment | Max Kellermann | 2014-07-11 | 1 | -1/+1 | |
| | | ||||||
| * | PlaylistEdit: postpone UpdateQueuedSong() when adding multiple songs | Max Kellermann | 2014-07-11 | 9 | -1/+111 | |
| | | | | | | | | | | | | | | | | | | | | Implement a "bulk" edit mode that postpones both UpdateQueuedSong() and OnModified(). This way, the playlist version gets incremented only once. More importantly: when adding multiple songs to a queue that consists of only one song, the first song that got added will always be played next. By postponing this choice, all newly added songs get a chance to become the next song. Fixes the second (and last) part of Mantis ticket 0004005. | |||||
| * | QueueCommands: make "result" more local | Max Kellermann | 2014-07-11 | 1 | -3/+2 | |
| | | ||||||
| * | Playlist: randomize next song when enabling "random" mode while not playing | Max Kellermann | 2014-07-11 | 2 | -1/+4 | |
| | | | | | | | | | | | | Don't restore the current song after shufflung when MPD is stopped (but still remembers the current song internally). Fixes the first part of Mantis ticket 0004005. | |||||
| * | PlaylistControl: update code comment | Max Kellermann | 2014-07-11 | 1 | -1/+1 | |
| | | ||||||
* | | input/curl: options "verify_peer" and "verify_host" | Max Kellermann | 2014-07-11 | 3 | -0/+33 | |
| | | ||||||
* | | test/FakeDecoderAPI: dump MixRamp data | Max Kellermann | 2014-07-11 | 1 | -0/+2 | |
| | | ||||||
* | | fs/StandardDirectory: look for cache dir in environment, not user-dirs | Mantas Mikulėnas | 2014-07-11 | 1 | -3/+15 | |
| | | | | | | | | | | The XDG cache directory is part of the "base directories" spec like $XDG_CONFIG_HOME, not "user directories". | |||||
* | | input/async: more API documentation | Max Kellermann | 2014-07-10 | 1 | -0/+26 | |
| | | ||||||
* | | decoder/audiofile: log libaudiofile errors | Max Kellermann | 2014-07-10 | 2 | -4/+16 | |
| | | ||||||
* | | decoder/audiofile: make variables more local | Max Kellermann | 2014-07-10 | 1 | -28/+24 | |
| | | ||||||
* | | decoder/audiofile: implement scan_stream() instead of scan_file() | Max Kellermann | 2014-07-10 | 2 | -23/+24 | |
| | | ||||||
* | | decoder/audiofile: use audiofile_get_duration() in _stream_decode() | Max Kellermann | 2014-07-10 | 1 | -5/+2 | |
| | | ||||||
* | | decoder/audiofile: split audiofile_get_duration() | Max Kellermann | 2014-07-10 | 1 | -4/+11 | |
| | | ||||||
* | | decoder/audiofile: remove unused Error variable | Max Kellermann | 2014-07-09 | 1 | -1/+0 | |
| | | ||||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-07-09 | 8 | -46/+54 | |
|\| | ||||||
| * | decoder/dsd: use decoder_read_full() where appropriate | Joff | 2014-07-09 | 5 | -31/+20 | |
| | | | | | | | | | | | | | | Addresses Mantis ticket 0004015. [mk: use decoder_read_full() only when needed, and a few formal changes] | |||||
| * | decoder/audiofile: use decoder_read_full() | Max Kellermann | 2014-07-09 | 2 | -1/+7 | |
| | | | | | | | | | | Works around WAV stream playback bug, because libaudiofile does not like partial reads (Mantis 0004028). | |||||
| * | DecoderAPI: add function decoder_read_full() | Max Kellermann | 2014-07-09 | 5 | -12/+67 | |
| | | | | | | | | Move code from the "mad" plugin. | |||||
| * | DecoderAPI: add function decoder_skip() | Max Kellermann | 2014-07-09 | 5 | -14/+57 | |
| | | | | | | | | Move code from the "mad" plugin. | |||||
| * | test: merge duplicate code to FakeDecoderAPI.cxx | Max Kellermann | 2014-07-09 | 4 | -157/+113 | |
| | | ||||||
| * | decoder/audiofile: use decoder_read() | Max Kellermann | 2014-07-09 | 2 | -15/+26 | |
| | | | | | | | | | | .. instead of InputStream::LockRead(). The former is cancellable. | |||||
| * | playlist/PlsPlaylistPlugin: fix build failure due to missing stdio.h include | Gustavo Zacarias | 2014-07-09 | 1 | -0/+1 | |
| | | | | | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> | |||||
| * | output/HttpdClient: fix build failure due to missing stdio.h include | Gustavo Zacarias | 2014-07-09 | 1 | -0/+1 | |
| | | | | | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> | |||||
| * | decoder/OpusDecoderPlugin: fix build failure due to missing stdio.h include | Gustavo Zacarias | 2014-07-09 | 1 | -0/+1 | |
| | | | | | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> |