Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fs/Glob: use PathMatchSpec() on Windows | Max Kellermann | 2015-06-22 | 2 | -2/+13 |
| | |||||
* | fs/Glob: use fnmatch() if available | Max Kellermann | 2015-06-22 | 2 | -1/+22 |
| | |||||
* | fs/Glob: make constructor "explicit" | Max Kellermann | 2015-06-22 | 1 | -1/+1 |
| | |||||
* | db/update/ExcludeList: remove obsolete TODO comments | Max Kellermann | 2015-06-22 | 2 | -5/+3 |
| | |||||
* | test/TestFs: new unit test for libfs.a | Max Kellermann | 2015-06-22 | 2 | -0/+116 |
| | |||||
* | db/update/ExcludeList: move class Pattern to fs/Glob.hxx | Max Kellermann | 2015-06-22 | 4 | -31/+70 |
| | |||||
* | test/test_translate_song: use PATH_LITERAL() | Max Kellermann | 2015-06-22 | 1 | -1/+1 |
| | |||||
* | test/test_pcm_util: call the C++11 random engine instead of random() | Max Kellermann | 2015-06-22 | 1 | -1/+1 |
| | | | | Stupid mistake from commit 7cb803ad | ||||
* | pcm/Interleave: add stereo optimization | Max Kellermann | 2015-06-22 | 1 | -0/+19 |
| | |||||
* | pcm/Interleave: instantiate a 16 bit optimization | Max Kellermann | 2015-06-22 | 1 | -0/+15 |
| | |||||
* | pcm/Interleave: convert PcmInterleave32() to template | Max Kellermann | 2015-06-22 | 1 | -4/+13 |
| | |||||
* | pcm/Interleave: add optimization for 32 bit samples | Max Kellermann | 2015-06-22 | 3 | -12/+51 |
| | | | | Move code from the "vorbis" decoder. | ||||
* | pcm/Interleave: add "restrict" keywords | Max Kellermann | 2015-06-22 | 2 | -3/+6 |
| | |||||
* | test/test_pcm: add PcmInterleave() unit test | Max Kellermann | 2015-06-22 | 4 | -0/+145 |
| | |||||
* | decoder/ffmpeg: move code to pcm/Interleave.cxx | Max Kellermann | 2015-06-22 | 4 | -19/+87 |
| | |||||
* | decoder/ffmpeg: check for commands earlier | Max Kellermann | 2015-06-22 | 1 | -22/+22 |
| | | | | | Improve initial seek by not reading/decoding the first frame before checking for the seek command. | ||||
* | decoder/vorbis: check STOP before entering the loop | Max Kellermann | 2015-06-22 | 1 | -2/+2 |
| | |||||
* | OutputThread: move code to CloseOutput() | Max Kellermann | 2015-06-22 | 2 | -6/+19 |
| | |||||
* | lib/ffmpeg/Buffer: add "malloc" attribute | Max Kellermann | 2015-06-22 | 1 | -0/+1 |
| | |||||
* | InputStream: add ReadFull method | Thomas Guillem | 2015-06-22 | 2 | -1/+49 |
| | | | | | | | | Convenient method that behave differently than Read, and that will be used by tag scanners. This method will return in case of error, if the whole data is read or is EOF is reached. | ||||
* | Merge tag 'v0.19.10' | Max Kellermann | 2015-06-21 | 11 | -16/+108 |
|\ | |||||
| * | release v0.19.10 | Max Kellermann | 2015-06-21 | 1 | -1/+1 |
| | | |||||
| * | PlayerThread: start the decoder on PlayerCommand::QUEUE | Max Kellermann | 2015-06-21 | 2 | -0/+7 |
| | | | | | | | | Fixes missing SongBorder() call, which causes "single" mode breakage. | ||||
| * | DecoderAPI: discard unused song tag early | Max Kellermann | 2015-06-21 | 1 | -2/+5 |
| | | | | | | | | | | If there's a stream tag, don't let the song tag override it in the next update_stream_tag() call. | ||||
| * | DecoderThread: set Decoder::song_tag only for local files | Max Kellermann | 2015-06-21 | 2 | -1/+6 |
| | | | | | | | | | | | | | | 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. | ||||
| * | DecoderAPI: "move" the Tag object | Max Kellermann | 2015-06-20 | 1 | -1/+1 |
| | | | | | | | | Reduce runtime overhead. | ||||
| * | OutputControl: fix fail_timer check right after booting | Romain Rollet | 2015-06-20 | 2 | -1/+4 |
| | | | | | | | | | | | | Right after booting, the monotonic clock starts with a very small value, and AudioOutput::LockUpdate() may believe that the fail_timer has not recovered yet. | ||||
| * | system/PeriodClock: make IsDefined() "constexpr" | Max Kellermann | 2015-06-20 | 1 | -1/+1 |
| | | |||||
| * | decoder/ffmpeg: skip unwanted samples after seeking | Max Kellermann | 2015-06-20 | 2 | -5/+50 |
| | | | | | | | | | | When seeking to the beginning of a packet, skip the samples that come before the desired time stamp. | ||||
| * | decoder/ffmpeg: use AVSEEK_FLAG_BACKWARD for seeking | Max Kellermann | 2015-06-20 | 1 | -1/+5 |
| | | | | | | | | | | | | Ask FFmpeg to seek to the next packet boundary *before* the seek position, so we don't miss audio data. Now we get too much, but we'll solve that in the next commit. | ||||
| * | decoder/ffmpeg: move code to StreamRelativePts() | Max Kellermann | 2015-06-19 | 1 | -6/+20 |
| | | |||||
| * | input/curl: trigger the condition variable in RequestDone() | Max Kellermann | 2015-06-19 | 2 | -0/+3 |
| | | | | | | | | Fixes deadlock on small responses. | ||||
| * | storage/nfs: fix deadlock when connecting | Thomas Guillem | 2015-05-29 | 2 | -2/+4 |
| | | | | | | | | | | | | The Connect method can be called between Schedule and lock. In that case, when locked, the state is already set to CONNECTING of READY and the condition won't be signaled anymore. | ||||
| * | input/smbclient: fix DFF playback | jai | 2015-05-29 | 2 | -0/+3 |
| | | |||||
| * | OpusEncoderPlugin: initialise granulepos so we end up with sane values | Michal Nazarewicz | 2015-03-25 | 2 | -1/+3 |
| | | | | | | | | | | | | | | Not initialising granulepos leads to it having arbitrary values in the encoded stream including possibly negative values which are not valid and confuse opusdec. Explicitly initialise opus_encoder::granulepos to avoid that problem. | ||||
| * | configure.ac: prepare for 0.19.10 | Max Kellermann | 2015-03-25 | 2 | -2/+4 |
| | | |||||
* | | pcm/soxr: fix recipe parser | Max Kellermann | 2015-06-20 | 1 | -1/+1 |
| | | |||||
* | | {android,win32}/build.py: allow overriding shared path via environment | Max Kellermann | 2015-06-03 | 2 | -4/+14 |
| | | |||||
* | | {android,win32}/build.py: move tarballs to subdirectory "download" | Max Kellermann | 2015-06-03 | 2 | -2/+2 |
| | | |||||
* | | win32/build.py: build zlib in-tree | Max Kellermann | 2015-06-03 | 1 | -8/+10 |
| | | | | | | | | | | | | zlib cannot be built out-of-tree, and previously, we were building in the "src" directory, not in the "build" directory. The make_build_path() return value was unused. | ||||
* | | {android,win32}/build.py: upgrade Boost to 1.58 | Max Kellermann | 2015-05-05 | 2 | -4/+4 |
| | | |||||
* | | {android,win32}/build.py: upgrade libvorbis, FFmpeg, CURL | Max Kellermann | 2015-05-05 | 2 | -12/+12 |
| | | |||||
* | | db/update/ExcludeList: use the NarrowPath class | Max Kellermann | 2015-03-25 | 1 | -1/+2 |
| | | |||||
* | | fs/io/FileOutputStream: fix wrong #ifdef WIN32 | Max Kellermann | 2015-03-25 | 1 | -23/+3 |
| | | |||||
* | | Playlist*: use the BufferedOutputStream API instead of FILE* | Max Kellermann | 2015-03-24 | 3 | -38/+36 |
| | | |||||
* | | PlaylistSave: return bool/Error instead of PlaylistResult | Max Kellermann | 2015-03-24 | 3 | -24/+28 |
| | | |||||
* | | PlaylistFile: export spl_map_to_fs() and TranslatePlaylistError() | Max Kellermann | 2015-03-24 | 2 | -2/+9 |
| | | |||||
* | | PlaylistFile: eliminate redundant spl_map() calls | Max Kellermann | 2015-03-24 | 1 | -15/+0 |
| | | |||||
* | | Mapper: don't use C-style prototypes | Max Kellermann | 2015-03-24 | 2 | -3/+5 |
| | | |||||
* | | fs/io/FileOutputStream: add method Tell() | Max Kellermann | 2015-03-24 | 2 | -0/+20 |
| | |