Commit Graph

9815 Commits

Author SHA1 Message Date
Max Kellermann 4e3d182189 encoder/flac: fix crash with 32 bit playback
Copy to encoder->audio_format *after* adjusting the sample format to
S24_P32.

Fixes http://bugs.musicpd.org/view.php?id=4433
2015-10-16 18:05:34 +02:00
Max Kellermann 205fba74cf tag/ApeLoader: fix buffer overflow after unterminated key 2015-10-16 14:55:40 +02:00
Max Kellermann a9bcf8d50d configure.ac: prepare for 0.19.11 2015-10-16 14:55:40 +02:00
Max Kellermann b0ff3bc7a3 release v0.19.10 2015-06-21 15:51:50 +02:00
Max Kellermann 06301e279c PlayerThread: start the decoder on PlayerCommand::QUEUE
Fixes missing SongBorder() call, which causes "single" mode breakage.
2015-06-21 15:38:48 +02:00
Max Kellermann 6d6f274648 DecoderAPI: discard unused song tag early
If there's a stream tag, don't let the song tag override it in the
next update_stream_tag() call.
2015-06-21 15:10:55 +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 e4d0293a31 DecoderAPI: "move" the Tag object
Reduce runtime overhead.
2015-06-20 16:06:09 +02:00
Romain Rollet ae77542a11 OutputControl: fix fail_timer check right after booting
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.
2015-06-20 15:37:19 +02:00
Max Kellermann 980187f856 system/PeriodClock: make IsDefined() "constexpr" 2015-06-20 15:33:17 +02:00
Max Kellermann 327a8e6c59 decoder/ffmpeg: skip unwanted samples after seeking
When seeking to the beginning of a packet, skip the samples that come
before the desired time stamp.
2015-06-20 15:01:05 +02:00
Max Kellermann d11e2724c4 decoder/ffmpeg: use AVSEEK_FLAG_BACKWARD for seeking
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.
2015-06-20 14:29:42 +02:00
Max Kellermann f768ca3a2d decoder/ffmpeg: move code to StreamRelativePts() 2015-06-19 18:56:29 +02:00
Max Kellermann 947e902288 input/curl: trigger the condition variable in RequestDone()
Fixes deadlock on small responses.
2015-06-19 16:45:38 +02:00
Thomas Guillem 3436a646b5 storage/nfs: fix deadlock when connecting
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.
2015-05-29 22:39:14 +02:00
jai aed0af1e00 input/smbclient: fix DFF playback 2015-05-29 22:37:49 +02:00
Michal Nazarewicz 0d7ee2b014 OpusEncoderPlugin: initialise granulepos so we end up with sane values
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.
2015-03-25 18:02:54 +01:00
Max Kellermann 2f5fd91bd8 configure.ac: prepare for 0.19.10 2015-03-25 18:02:54 +01:00
Max Kellermann 5761800197 release v0.19.9 2015-02-06 17:08:25 +01:00
Max Kellermann 0eebacc521 release v0.18.23
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJU1OZDAAoJECNuiljG20USZeYQAJQ6S63jPBlfcUs+08d3Qe22
 tlVYcBrH4zJiMqcgzzcCjslDTTWJNri5nO5Ryisklav2luvN+arvQIK/1XcIgjEH
 vNLfqPv7LGg1cfIXYDn5yd7j+WQxytZ+fAXL9lGY+fQptRsybPAPP3WCvdXguoir
 HWIHID3C2ndP58DmxYaRi+ewnpDdJgl051tqGVVTFkFBVpUVz+oaPlxJVO7Nj1tF
 qSWXASWSJGvxJyaGs6aOxNuD0qpoFubnb+esfukTdjOFCcHl6X1CNn7GcoOGRvES
 areN9/HlxZSogtv9eoSiwERwraNKKHpPR/8BaBDAT0phUH6ZqS1O69ZIZYQrKyPw
 uls4XdEZBItIUn2Vl/zGyyUGMSNoVwbt0CpDPjJqtzPMBG5tQC2dEGyBAT2+uwAM
 SAneXyYjW+kop4L8QfBav0eWvmXOEOqxCcRYDygvjil/lD/Pg2LhhznHieMhYTQv
 7VmptpHrj41Ea0Mda83lIcBobUGwOxzV63WvHL5gXnPMcNG7yrLZno4ITQUXALxy
 66ApaW52SmO1SFhP4NNNqxqlzoesSkVtwMfVY+CwRzX4LINTq8wLTdvTSrN9Xy38
 XzwxgihtPT5fT73jQGnUyNjCRt7FlkCIO4KJ5UZNg03IwlVvXtD16GHsRmU7DOHP
 lnt8vrRVShy32UCa0IxM
 =wfFE
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.23' into v0.19.x
2015-02-06 17:07:47 +01:00
Max Kellermann 4a5528697d release v0.18.23 2015-02-06 17:04:14 +01:00
Max Kellermann d38034bb5c fs/io/FileOutputStream: don't auto-delete file on WIN32
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.
2015-02-06 14:36:55 +01:00
Max Kellermann b3fe3e8b3d TagBuilder: allow adding duplicate tag types in Complement()
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().
2015-02-06 12:25:34 +01:00
Max Kellermann 5489dec28d NEWS: fix v0.18.22 release date 2015-02-01 12:22:24 +01:00
Max Kellermann 8a6b4db19f Makefile.am: move org_musicpd_Bridge.h to BUILT_SOURCES 2015-01-31 00:05:30 +01:00
Max Kellermann df43b6a05c Makefile.am: generate icon before compiling JNI classes
Apparently, Android's build.xml requires the icon to be available,
even when only running the Java compiler.
2015-01-31 00:05:30 +01:00
Max Kellermann 3adca3c2fa db/update/Walk: use std::unique_ptr instead of std::auto_ptr
std::auto_ptr is deprecated, and std::unique_ptr is much better
anyway.
2015-01-29 08:37:23 +01:00
PHO 39abd3ecb4 Avoid integer overflow in MonotonicClock{S,MS,US}
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.
2015-01-29 08:34:37 +01:00
PHO a4f4fc50b9 Avoid integer overflow in MonotonicClock{S,MS,US}
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.
2015-01-29 08:33:48 +01:00
Max Kellermann 7bf638b0de decoder/DsdLib: use new[] to allocate the ID3 buffer
Don't abort the process if there's not enough memory.  This buffer is
not important and can be large.
2015-01-29 08:24:34 +01:00
Max Kellermann 56662a703c decoder/DsdLib: free ID3 buffer right after id3_tag_parse()
Merge two free() calls.
2015-01-29 08:24:34 +01:00
Max Kellermann 8b5f47d3a3 decoder/DsdLib: raise ID3 tag limit to 1 MB
A bug report was submitted with a 600 kB ID3 tag that could not be
read by MPD.
2015-01-29 08:20:14 +01:00
Max Kellermann a289dcb9ee Merge branch 'v0.18.x' into v0.19.x 2015-01-26 20:48:19 +01:00
PHO 023b9c1e7e Test the existence of strndup(3) before using it.
This can eliminate the ad-hoc "#ifdef WIN32" and can also support other platforms lacking it as well (including Darwin 9).
2015-01-26 20:39:49 +01:00
Max Kellermann 4c61662644 test/read_mixer: add missing stdlib.h include 2015-01-26 20:39:49 +01:00
Max Kellermann ad1b6ef0ac {playlist,input}/despotify: remove defunct plugin 2015-01-26 09:55:31 +01:00
Max Kellermann ed5c6be2f1 util/list: disable gcc5 warning
This file has been removed in newer MPD versions, so don't care about
it now.
2015-01-23 16:50:31 +01:00
Max Kellermann 30cb082932 ClientProcess: cast enum to int before passing to printf()
Fixes gcc5 warning.
2015-01-23 16:50:31 +01:00
Max Kellermann 645554d12f configure.ac: prepare for 0.18.23 2015-01-23 16:47:13 +01:00
Max Kellermann 212b0faf0c android/build.py: use os.path.abspath() to build mpd_path
Fixes a bug that occurs when runing "build.py" from inside the
"android" directory.
2015-01-22 18:51:53 +01:00
Max Kellermann 276a0d9500 thread/Name: include stdio.h if HAVE_PRCTL
Caused a build failure with uClibc because snprintf() was not
available.
2015-01-21 20:40:56 +01:00
Max Kellermann 384b6c8288 doc/protocol: "playlistsearch" is case insensitive 2015-01-16 17:27:19 +01:00
Max Kellermann a2af158fd3 configure.ac: prepare for 0.19.9 2015-01-16 17:26:50 +01:00
Max Kellermann f33d2fb2e7 release v0.19.8 2015-01-14 23:12:24 +01:00
Max Kellermann a9eec35aff release v0.18.22
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJUtuh4AAoJECNuiljG20USnqIP/2PzYYBJp0GsQewDervdJYWn
 5/6npW960l92aofvUxCJXKdNtOgfvioHZNa3y3dv/ENTNN29aS1W0DiBfqVYUzWH
 gm47zWXT+OYGMaxp0lvb+XCnB8DxOaY4SPTq8BdlcX3ux7Do9QmANapG0cU3IIlv
 rM9EORXTCOiWJhygzXg7lq6bDOZ3DBR1HCuQ2L5OJ9seHJl5S/whcxlZwjiQGP+k
 KnxatYDGIIGX5nogZ35bTXgIQ9JhYVQbPkawQtXXsGfEN1WZ1VMC5JvI8MY/9Eey
 nFx9iv/jReDFtUQgEfjaZEQa7FspIjphkSDI1JHEtzA8aChD706VFMZdzrJztCGz
 X15b6j/UVmaDBvMHYKVjyfSs73BI8kVAnV3reN5pcWNHFgxR8j8fsAUOuNecI17x
 xbI7vgkLxm/oP/XRBrYeYKexvlo8hKcOrFauaaBrf68aor/qgFXi6Z1OCbiPXm7s
 cHZK9Y8qzdhhFt7w479lslGWPgNCSkPP/7WpNOAE9/4X85lxhNgIS4/Oujb5JMqa
 IAHEHpltCWCguxrITFRJ6AcEovm8i9DOqk6PylU+9lao+j31dWFmX7w6u8qS2/Pi
 Dj4r2TqD5odN6/7Ky0SKpixXlTWODGcRaf9aGfU+DoW9HGGvIL/BfTB5gDB039Wa
 +PtpFL6PbGUWTirGSGoQ
 =Ro6Y
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.22' into v0.19.x
2015-01-14 23:12:08 +01:00
Max Kellermann 8534f2d1e2 release v0.18.22 2015-01-14 23:04:49 +01:00
Max Kellermann 00740fb23b android/build.py: prepend "./" to "configure" if path is empty
Fixes in-tree build when the script is called as "android/build.py"
and not "./android/build.py".
2015-01-09 16:51:52 +01:00
Max Kellermann 37e9010887 input/async: reset the "open" flag after seeking successfully
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.
2015-01-06 12:46:28 +01:00
Max Kellermann 4bd2c75056 thread/Name: disable pthread_setname_np() on NetBSD
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.
2015-01-06 12:08:36 +01:00
Max Kellermann b9ed850b98 thread/Name: enable FormatThreadName() with prctl()
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.
2015-01-06 12:04:30 +01:00