aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tag/ApeLoader: fix buffer overflow after unterminated keyMax Kellermann2015-10-162-6/+8
|
* configure.ac: prepare for 0.19.11Max Kellermann2015-10-162-2/+4
|
* release v0.19.10Max Kellermann2015-06-211-1/+1
|
* PlayerThread: start the decoder on PlayerCommand::QUEUEMax Kellermann2015-06-212-0/+7
| | | | Fixes missing SongBorder() call, which causes "single" mode breakage.
* DecoderAPI: discard unused song tag earlyMax Kellermann2015-06-211-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 filesMax Kellermann2015-06-212-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 objectMax Kellermann2015-06-201-1/+1
| | | | Reduce runtime overhead.
* OutputControl: fix fail_timer check right after bootingRomain Rollet2015-06-202-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 Kellermann2015-06-201-1/+1
|
* decoder/ffmpeg: skip unwanted samples after seekingMax Kellermann2015-06-202-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 seekingMax Kellermann2015-06-201-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 Kellermann2015-06-191-6/+20
|
* input/curl: trigger the condition variable in RequestDone()Max Kellermann2015-06-192-0/+3
| | | | Fixes deadlock on small responses.
* storage/nfs: fix deadlock when connectingThomas Guillem2015-05-292-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 playbackjai2015-05-292-0/+3
|
* OpusEncoderPlugin: initialise granulepos so we end up with sane valuesMichal Nazarewicz2015-03-252-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.10Max Kellermann2015-03-252-2/+4
|
* release v0.19.9Max Kellermann2015-02-061-1/+1
|
* Merge tag 'v0.18.23' into v0.19.xMax Kellermann2015-02-061-3/+5
|\
| * release v0.18.23Max Kellermann2015-02-061-1/+1
| |
| * NEWS: fix v0.18.22 release dateMax Kellermann2015-02-011-1/+1
| |
| * Avoid integer overflow in MonotonicClock{S,MS,US}PHO2015-01-292-4/+5
| | | | | | | | | | This is Darwin specific: the previous implementation was causing an integer overflow when base.numer is very large. On PPC Darwin, the timebase info is 1000000000/33330116 and this is too large for integer arithmetic.
* | fs/io/FileOutputStream: don't auto-delete file on WIN32Max Kellermann2015-02-062-0/+3
| | | | | | | | | | | | | | | | | | The file handle is never reset to INVALID_HANDLE_VALUE, and thus the destructor will assume the operation shall be cancelled and will delete the temporary file. This was a major breakage for saving the database file and the state file.
* | TagBuilder: allow adding duplicate tag types in Complement()Max Kellermann2015-02-062-1/+11
| | | | | | | | | | | | | | | | | | | | Build a table of pre-existing tag types before adding new items. The old way would check HasType() each time, which would return true after the first instance of that tag type had been added, preventing duplicate tag types to be merged. This broke duplicate tag types loaded from the state file, because this code path uses TagBuilder::Complement().
* | Makefile.am: move org_musicpd_Bridge.h to BUILT_SOURCESMax Kellermann2015-01-312-3/+2
| |
* | Makefile.am: generate icon before compiling JNI classesMax Kellermann2015-01-311-1/+1
| | | | | | | | | | Apparently, Android's build.xml requires the icon to be available, even when only running the Java compiler.
* | db/update/Walk: use std::unique_ptr instead of std::auto_ptrMax Kellermann2015-01-291-1/+1
| | | | | | | | | | std::auto_ptr is deprecated, and std::unique_ptr is much better anyway.
* | Avoid integer overflow in MonotonicClock{S,MS,US}PHO2015-01-292-6/+7
| | | | | | | | | | This is Darwin specific: the previous implementation was causing an integer overflow when base.numer is very large. On PPC Darwin, the timebase info is 1000000000/33330116 and this is too large for integer arithmetic.
* | decoder/DsdLib: use new[] to allocate the ID3 bufferMax Kellermann2015-01-291-3/+5
| | | | | | | | | | Don't abort the process if there's not enough memory. This buffer is not important and can be large.
* | decoder/DsdLib: free ID3 buffer right after id3_tag_parse()Max Kellermann2015-01-291-5/+2
| | | | | | | | Merge two free() calls.
* | decoder/DsdLib: raise ID3 tag limit to 1 MBMax Kellermann2015-01-292-1/+3
| | | | | | | | | | A bug report was submitted with a 600 kB ID3 tag that could not be read by MPD.
* | Merge branch 'v0.18.x' into v0.19.xMax Kellermann2015-01-2616-839/+10
|\|
| * {playlist,input}/despotify: remove defunct pluginMax Kellermann2015-01-2615-810/+3
| |
| * util/list: disable gcc5 warningMax Kellermann2015-01-231-0/+4
| | | | | | | | | | This file has been removed in newer MPD versions, so don't care about it now.
| * ClientProcess: cast enum to int before passing to printf()Max Kellermann2015-01-232-3/+4
| | | | | | | | Fixes gcc5 warning.
| * configure.ac: prepare for 0.18.23Max Kellermann2015-01-232-2/+4
| |
* | Test the existence of strndup(3) before using it.PHO2015-01-263-5/+8
| | | | | | | | This can eliminate the ad-hoc "#ifdef WIN32" and can also support other platforms lacking it as well (including Darwin 9).
* | test/read_mixer: add missing stdlib.h includeMax Kellermann2015-01-261-0/+1
| |
* | android/build.py: use os.path.abspath() to build mpd_pathMax Kellermann2015-01-221-1/+1
| | | | | | | | | | Fixes a bug that occurs when runing "build.py" from inside the "android" directory.
* | thread/Name: include stdio.h if HAVE_PRCTLMax Kellermann2015-01-212-1/+5
| | | | | | | | | | Caused a build failure with uClibc because snprintf() was not available.
* | doc/protocol: "playlistsearch" is case insensitiveMax Kellermann2015-01-161-1/+1
| |
* | configure.ac: prepare for 0.19.9Max Kellermann2015-01-163-4/+6
| |
* | release v0.19.8Max Kellermann2015-01-141-1/+1
| |
* | Merge tag 'v0.18.22' into v0.19.xMax Kellermann2015-01-141-1/+1
|\|
| * release v0.18.22Max Kellermann2015-01-141-1/+1
| |
* | android/build.py: prepend "./" to "configure" if path is emptyMax Kellermann2015-01-091-1/+1
| | | | | | | | | | Fixes in-tree build when the script is called as "android/build.py" and not "./android/build.py".
* | input/async: reset the "open" flag after seeking successfullyMax Kellermann2015-01-062-0/+6
| | | | | | | | | | | | | | | | | | Fixes a problem with the "curl" input plugin: IsEOF() always returns true because the "open" flag was cleared by CurlInputStream::RequestDone() when end-of-stream was reached. This flag stays false even when seeking to another position has succeeded. This patch resets the "open" flag to true after seeking successfully.
* | thread/Name: disable pthread_setname_np() on NetBSDMax Kellermann2015-01-062-2/+7
| | | | | | | | | | | | | | NetBSD's pthread_setname_np() prototype is incompatible with the rest of the world, and it requires to pass the string argument as a non-const pointer. Instead of working around this misdesign, I hereby disable the feature on NetBSD.
* | thread/Name: enable FormatThreadName() with prctl()Max Kellermann2015-01-061-1/+5
| | | | | | | | | | | | Add macro HAVE_THREAD_NAME which is set when any method to set the thread name is available. Use that macro in FormatThreadName() instead of just checking for HAVE_PTHREAD_SETNAME_NP.
* | thread/Name: indent preprocessor commandsMax Kellermann2015-01-061-3/+3
| |