Jurgen Kramer
7c3af4f56f
Report bitrate for DSF and DSDIFF DSD decoders
2014-08-16 18:38:44 +02:00
Max Kellermann
a9f6556454
Merge branch 'v0.18.x'
2014-08-16 08:25:10 +02:00
Max Kellermann
fe9299ceff
decoder/ffmpeg: use avcodec_descriptor_get() to determine codec name
...
In version 11, both ffmpeg and libav deprecate
AVCodecContext::codec_name. The function avcodec_descriptor_get() has
been introduced long ago.
2014-08-13 18:40:39 +02:00
Max Kellermann
d026367334
Merge branch 'v0.18.x'
2014-08-12 16:54:32 +02:00
Max Kellermann
cf797657ed
AllCommands: close connection after syntax error
...
Stop HTTP clients from exploiting MPD via forged POST requests.
2014-08-12 15:33:45 +02:00
Max Kellermann
5d2506e697
SongFilter: new filter "modified-since"
2014-08-11 22:38:58 +02:00
Max Kellermann
2e122e1509
db/simple: compress the database file using gzip
2014-08-11 21:48:25 +02:00
Andrée Ekroth
330b6a0482
decoder/Mp4v2: add MP4v2 decoder plugin
...
This plugin uses the MP4v2 library to play mp4/m4a files.
It is limited to file_decode.
2014-08-07 21:01:38 +02:00
Max Kellermann
abe4c57663
configure.ac: prepare for 0.18.13
2014-08-02 08:45:44 +02:00
Max Kellermann
3422bd9b94
release v0.18.12
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJT2K6KAAoJECNuiljG20USFeIP/R/de4/XHAbf0rntmwBNYfth
YPCdE1+fP1Dnq2mAawSI9qkCXpGKBGgfO3bKceacxb2hWP5Z+vTvRr3IyGfqpE2g
EUQq8i/uC1gE28Q3ZjW3I3HYcPwjHu+p051ppMMQexZ58ef38qDOchY+cdjxQ4mJ
HDrs/sg16VKkCBB5HBapuXFdZT6HNdHb2qobDekc91RF7xZ0GuO4x0GnZMpqf6GG
DAVifwTCJXW5WMxLTtNry6vSIxqHlfBkS2mk1dfBmB6fjUqu4zoPBx4BtRfuBB4D
GQ/FrsVq6eDu+o1TB9ubR4/QqhVWVKYCMksGz8MZkH0WgXvde0Or1W5s2SSN686w
esneKJA32+PPfE4TkmQUWI5GS3Yt2SLYxxXCubXfeTfQCGjOw39cdBe4U+fIvlOE
d3UGJU579P/BA0iygCZuIbVekc+wsaTZy5eRCIJ1jPt2V0zD4QVzaTa3+rMVX6+N
uhY95izwOgHG8UVnz1/B/vgZ0czJHmzl+zJUugdqWR16PXaB/bdX9GsUqv1LLeJD
/PZE2msKI0Akk8c7wh2NNyb9uYtatbrxS8IXVnlNfOD4LrvFtKQE5GvEPitp8xmd
epQKnOsDsqaU6axP9pYFkirivWQljju2zxbDOZ0oV7EBJviFBWEYkjdBUSb+MYob
ZLeA+MyX7l3mm9+RDB5V
=1oPk
-----END PGP SIGNATURE-----
Merge tag 'v0.18.12'
2014-07-30 10:40:40 +02:00
Max Kellermann
a3f3c7ba24
release v0.18.12
2014-07-30 10:30:17 +02:00
Max Kellermann
12b5494906
db/proxy: implement Update()
2014-07-29 23:35:09 +02:00
Max Kellermann
1f9d9c3176
Merge branch 'v0.18.x'
2014-07-12 20:51:22 +02:00
Max Kellermann
7db84a961a
decoder/dsdiff: fix metadata parser bug (uninitialized variables)
2014-07-12 20:41:26 +02:00
Max Kellermann
80d9baa9e8
QueueSave: use the long format to save partial songs
...
Previously, only streams were saved with range and tags, but this is
necessary for all "partial" songs (e.g. CUE tracks).
2014-07-12 19:36:39 +02:00
Max Kellermann
751995ab95
QueueCommands: new command "rangeid"
...
Manipulates the playback range of a queued song.
2014-07-12 18:55:41 +02:00
Max Kellermann
071d05465a
SongPrint: use DetachedSong::GetDuration()
...
Fixes the bogus duration of the last track in a CUE sheet.
2014-07-12 18:41:15 +02:00
Max Kellermann
c400876df1
Merge branch 'v0.18.x'
2014-07-12 01:27:18 +02:00
Max Kellermann
a960e2ef48
decoder/faad: estimate song duration for remote files
...
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.
2014-07-12 00:37:00 +02:00
Max Kellermann
c4bea3dfe4
decoder/sndfile: implement scan_stream() instead of scan_file()
2014-07-11 22:09:35 +02:00
Max Kellermann
3e19298c9e
decoder/sndfile: support more tag types
2014-07-11 22:03:13 +02:00
Max Kellermann
828cd6fd0b
Merge branch 'v0.18.x'
2014-07-11 21:33:50 +02:00
Max Kellermann
0ef843f138
decoder/sndfile: use decoder_read()
...
.. instead of InputStream::LockRead(). The former is cancellable.
2014-07-11 21:18:44 +02:00
Max Kellermann
11a5ee821b
PlaylistEdit: postpone UpdateQueuedSong() when adding multiple songs
...
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.
2014-07-11 20:22:35 +02:00
Max Kellermann
e2cc328eef
Playlist: randomize next song when enabling "random" mode while not playing
...
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.
2014-07-11 19:41:39 +02:00
Max Kellermann
681643ea9e
input/curl: options "verify_peer" and "verify_host"
2014-07-11 16:39:42 +02:00
Max Kellermann
ccbb5c3e01
decoder/audiofile: log libaudiofile errors
2014-07-10 09:37:43 +02:00
Max Kellermann
107321e385
decoder/audiofile: implement scan_stream() instead of scan_file()
2014-07-10 09:23:56 +02:00
Max Kellermann
913064d6cc
Merge branch 'v0.18.x'
2014-07-09 20:02:07 +02:00
Joff
09384df32c
decoder/dsd: use decoder_read_full() where appropriate
...
Addresses Mantis ticket 0004015.
[mk: use decoder_read_full() only when needed, and a few formal
changes]
2014-07-09 19:18:36 +02:00
Max Kellermann
20538516b9
decoder/audiofile: use decoder_read_full()
...
Works around WAV stream playback bug, because libaudiofile does not
like partial reads (Mantis 0004028).
2014-07-09 19:05:20 +02:00
Max Kellermann
bc6472bb9e
decoder/audiofile: use decoder_read()
...
.. instead of InputStream::LockRead(). The former is cancellable.
2014-07-09 18:57:50 +02:00
Christoph Tieben
34689eb2d2
decoder: vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song
...
(see https://www.xiph.org/vorbis/doc/v-comment.html for Details)
2014-06-27 21:14:17 +02:00
Max Kellermann
fa1fb47d75
Merge branch 'v0.18.x'
2014-06-23 10:13:50 +02:00
Max Kellermann
848ed14788
db/proxy: fall back to recursive walk on old libmpdclient/MPD
...
Error message was 'too few arguments for "find"' because the "base"
constraint was not supported, and no other constraints remained.
2014-06-23 09:18:11 +02:00
Max Kellermann
4c8a5dfb05
db/proxy: use mpd_song_get_{start,end}() only with libmpdclient >= 2.3
2014-06-23 09:17:35 +02:00
Max Kellermann
4f61ba766d
configure.ac: prepare for 0.18.12
2014-06-23 09:14:35 +02:00
Max Kellermann
3cd24c0a51
release v0.18.11
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJTcPbuAAoJECNuiljG20US+LsQAI5LcUiQ2AxfDdXfEkIW+ryQ
U5htp4RAAizVFEAdgzdDOoHBVefkvwij6G9ND9WAbJRsUOZs62XwlnOFaB/uQPhd
VvoNIQLmuUNxltF1itaCTJ0UJkXi6ObVExpwMScGI242uUmoNnxwsWxDxyy2s4bn
On/OwT64zTOsPTjkYGdfGncwx4dhQc2KJvGGD6y/lMhxUnn3NoKG/VOgleN4ALcL
KQ0SFQOFbUHJcvMXYdMzhe426d7GiHzFVIfdU16yJz47/xHDmaM+VVJQCOF68rrw
kyb2POxR4VXhPMfIleF2RiCopvDGSvQfUE3jhQjKBgZE2NeFeI/5N6JcWbZgFJ/J
4ez3DcjSD1Oeoz6gzaq1QybCku4EZTvPa6Kbb5/84JNKmVdb/JowGF0L18bwTbGv
y5D5HN3zTdmBXwsiDnTNDtuwaSejvIDTN1k4AkdQ9mLMIMT+13NHLBs1rDE2JnlG
3xhXrIvwhUBdE1A4uFj8duzk11EWzNI+ltJBRnG8uEzAJxpv5Khiwmj2GciS6s5r
wp1YUIUA0BhrEgrtoTdE7x13lXkDrmydcJ5kA0kArJFQALliE7kivyg1gtrcNRj1
7fDRAb9QOxaJrrsJzM9f9pDaIttHRjRvurFtikD90oaRE1g+6ygeScmYJDPhPjvU
R6PxzvsMCn8kJFWq2ARg
=Ubmu
-----END PGP SIGNATURE-----
Merge tag 'v0.18.11'
2014-05-12 18:38:45 +02:00
Max Kellermann
8bfdb4ed0c
release v0.18.11
2014-05-12 18:20:26 +02:00
Max Kellermann
70bd35abe2
decoder/OggUtil: allow skipping up to 32 kB after seek
...
Fixes missing song length on high-latency Opus files.
According to tests with 320 kbit/s opus files with 60ms packets, we
need to skip up to 29 kB.
2014-04-29 11:56:05 +02:00
Max Kellermann
bc2a1160b8
db/Count: implement grouping
2014-04-27 22:27:43 +02:00
Max Kellermann
0efb67b51e
DeferredMonitor: fix race condition when using GLib event loop
...
Turns out the lock-free code using atomics was not thread-safe. The
given callback could be invoked by GLib before the source_id attribute
was assigned. This commit changes the DeferredMonitor class to use a
Mutex to block the event loop until source_id is assigned. This bug
does not exist in the 0.19 branch because it does not use the GLib
main loop anymore.
2014-04-26 22:11:23 +02:00
Max Kellermann
54ebf2a699
configure.ac: prepare for 0.18.11
2014-04-26 22:08:08 +02:00
Max Kellermann
ae178c77bd
DatabaseCommands: "list" allows grouping
2014-04-24 11:38:49 +02:00
Max Kellermann
27002ad1ea
db/Helpers: "list" on album artist falls back to the artist tag
2014-04-24 10:48:52 +02:00
Max Kellermann
1c02b4b9f4
release v0.18.10
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJTRoKFAAoJECNuiljG20UScmgP/3bXQLBVqnGdMEzJio9qfTqz
inqbuaR8FrOSQFT5ULpYYipcjiqxCpG2ooE2M083F3wXDHF8u+j0S84NEvHQjv0T
WvA5EOOeEJS0o0gREZb8onO8NVwH+f1r4x34PAc4QbSeROiAiJRPmfTOZBDTaQkZ
Fy4CGte9UqLvUG10Jxpn1DgcBBeoge9Ruzm+drBLHh53lAfKZH6z9u23htNc4PH0
WMN3/orL7KZNxMtX37zqQDhkbPv2RjCWc0JJ8yxBzw3r/qG53GkmCBsStub6wKIi
iPgkoKXii+FAlg1oRmvVNELmOUDjhnBj8+g7q6WgJGpYqdcSCQBRIBnPPRn6Tfw3
wS7MtGoH7M4yihOfeburIzN0JiD4dtcnA7CrA9ghWt3C0Hci9Q/eni7xHgAuJ7Gp
fD0aEGeaQiQZC8r1UYkgvPuc+CXpsjPcpoN2TlYwDJ3VPQcikHVqTUkJxf5rEGbL
h5K0jhW/TzgT0quozd50w52X/n5J76X8oEng08271OPMlF+6gawGA2/AeDsomRTp
n8OPVutpyaGE3gKGYLGKj3cEnP15tQyt3U0kiU+ccG7osEPXr8JU/A4fipqcrwnN
lwejiIKzfZBU68kwS+gtQLiBncT3oh5tEiLJNzYYpPCF0wkDYt2u/rhRxnVjRoXO
5B9PRaOPuJ5N+6O2hGNS
=qsUE
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.10'
2014-04-10 13:49:20 +02:00
Max Kellermann
d0119548c1
release v0.18.10
2014-04-10 13:36:38 +02:00
Marcello Desantis
95ac6071b9
decoder/sndfile: work around libsndfile bug on partial read
2014-04-09 23:58:56 +02:00
Weng Xuetian
3a4e667078
PlaylistEdit: don't interrupt playback when current song gets deleted
2014-04-09 23:10:14 +02:00
Max Kellermann
ce18c36ed9
decoder/ffmpeg: handle unknown stream start time
2014-03-18 09:16:09 +01:00
Max Kellermann
8e39cf62e7
decoder/ffmpeg: pass AVSEEK_FLAG_ANY to av_seek_frame()
...
This corrects a major mistake from commit 724a59aa
- there was one
small thing that commit was supposed to do, and it failed.
AV_TIME_BASE is not a seek flag.
2014-03-18 09:10:36 +01:00
Max Kellermann
707d379b97
input/mms: move blocking I/O to thread
2014-03-16 11:48:46 +01:00
Max Kellermann
5696f91a1e
pcm/PcmFormat: ARM NEON optimizations for float->s16
...
This is nearly 4 times faster than the "portable" algorithm.
2014-03-15 11:41:01 +01:00
Max Kellermann
a9e351e00d
decoder/gme: fix memory leak in container_scan()
2014-03-06 13:12:39 +01:00
Max Kellermann
d65841a2db
configure.ac: prepare for 0.18.10
2014-03-06 13:08:30 +01:00
Max Kellermann
503ed9c331
release v0.18.9
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJTEwdzAAoJECNuiljG20USkFYP/i1PaM7O20e2EPE7ELhffk1I
PEL6WiuCxfEHP+JbH/RPy/CdyKIqx3TTeaktXzOJmCcU+5fAgbpIwfK689ZjpE7Y
U+7aPfGudfjYTxM/bigEo+1XAIYWJCJ2IlopN0lRIZSquUm8rfxosqsNzJFrhwsK
40Ps36XdpYUA3z9dugyJjeKQETkjJa5Y55C1yml5RRUz+yPqyiPelm0dSlx3Ggce
KpmNZfp8g8/stwb08iw+qk+cNKP75eJwPdFmQrsc91QxP1oW7ERWhiICA0ZtqaNe
T0Ld5+wZ6uTJSztQiUsWrJYS1yKix5q1Za8tyFr3a9NPI+iIjsALXqU9k7zmZ6Id
GK0Xr9Noo1o80QeGkd60nJyCQXbEU/V0p9D/QiDVei+IvK6mbxF3y2gPA7wobgrC
KEDgsJZ+0fjmgdx+eb8ydg0uIwHrk04u0YKukUqA3bkNS/PUEICPqblcg8Spf89I
RMdjq2HFcpkaIwGvryfHIbTNUbonAziMzmiJ0WQA1FCD3x1WELvBf09GzAsUEoFX
Be0Co15rODOByo5ryZvSJv5BCr2RuCPwzNF+V26nMaKK7EloQWmbO0rpkRLVRk81
qo1JmElm6SyeE3kHqVW/NyrPxLtd7VngV+z9hXr95szUjCjMv/MK169r4jumLTex
RLyPDkhkQLDIijamhjfZ
=nX0n
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.9'
2014-03-02 11:46:07 +01:00
Max Kellermann
2784d65618
release v0.18.9
2014-03-02 11:25:01 +01:00
Max Kellermann
a884e37de1
output/alsa: call snd_pcm_prepare() after snd_pcm_drop()
...
Don't wait for an optimistic write to fail. This is an improved
workaround for the infamous Raspberry Pi bug (see commit af991765
).
It works much better and comes without the negative side effects. The
old workaround is now obsolete.
2014-03-02 11:12:25 +01:00
Max Kellermann
0102a8665a
event/SignalMonitor: fix build failure due to missing signal.h include
2014-03-02 10:21:31 +01:00
Max Kellermann
36ca57a54e
fs/StandardDirectory: add GetUserCacheDir()
...
Move code from CreateConfiguredDatabase() and add XDG support. This
implements an automatic Linux fallback for the setting "db_file" if
none was specified.
2014-03-01 22:51:51 +01:00
Max Kellermann
efa6678bcc
NEWS: add group "configuration"
2014-03-01 22:51:51 +01:00
Max Kellermann
96afa8bd2b
command: add command "listfiles"
...
Lists files and directories. Supports storage plugins.
2014-03-01 06:25:57 +01:00
Max Kellermann
d34ae0850c
AllCommands: "findadd" requires the "add" permission
2014-02-27 23:08:22 +01:00
Max Kellermann
681e012fb5
db/update: cancel the update on shutdown
2014-02-27 16:58:35 +01:00
Max Kellermann
4dcf0b8ae0
first Android release
...
Finally, MPD runs on Android. For some small value of "runs". Very
much work left, too much to describe.
2014-02-22 01:39:08 +01:00
Max Kellermann
c32477a223
Merge branch 'v0.18.x'
2014-02-18 21:46:41 +01:00
Max Kellermann
5e1e92626c
event/SignalMonitor: unblock signals after fork
...
Fixes hanging child process in the "pipe" output plugin.
2014-02-18 19:13:50 +01:00
Max Kellermann
7fee85c80a
configure.ac: fix linker failure when libvorbis/libogg are static
...
Link libvorbisfile first, followed to libvorbis and finally libogg.
This order is necessary because libvorbisfile depends on libvorbis.
2014-02-18 18:39:19 +01:00
Max Kellermann
5d87a274a5
configure.ac: link the Vorbis encoder with libogg
...
Fixes another linker failure. Similar to commit ea406875
2014-02-17 19:42:38 +01:00
Max Kellermann
9e02b13ab3
systemd: add socket activation files
2014-02-12 21:22:36 +01:00
Max Kellermann
57e862712a
configure.ac: prepare for 0.18.9
2014-02-09 22:58:14 +01:00
Max Kellermann
570b12ec13
Idle: error out when unrecognized idle event was specified
...
Implements the error checks missing in commit 0bad8406
2014-02-09 08:07:48 +01:00
Max Kellermann
b3663b5da2
storage/nfs: new storage plugin
2014-02-08 14:24:47 +01:00
Max Kellermann
3fdc678aae
Main: support arbitrary storage plugins
2014-02-08 00:04:29 +01:00
Max Kellermann
5e4dd4be9c
Main: allow playlist directory without music directory
2014-02-07 22:39:17 +01:00
Max Kellermann
04d5896c1c
NEWS: mention default soundcloud API key
...
Missing from commit 48c96bba
2014-02-07 22:38:04 +01:00
Max Kellermann
746a47982b
release v0.18.8
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJS9BY7AAoJECNuiljG20USFXcP/1JX3QXdVNxOZdoLvsD7MqmP
Qg9ra1c+9HdD7e2FjTFzSw02USIOrp+l/e3qPn3V0CsD+ZHoCH3lt/zLGaooYbVy
+3gsCNPyW0KTfdmaemFrtQk7sk9lAzuCO+t4jESFQxPmGeUKZRDUtjSMJJsiBKTe
oFiJ6VgkLHmUFb+mAHSmmDQEuZzyW59Qx9ptIAoHIRzBvhIYhAW/X86172XcxZIB
61jmRlebpIrmxi6ft6GFPHjxwD6Od5au7jhQOgI+SqIgkg4KjKotV2ggIcRcYnSs
IenloxdACKNd0yGuyHLOvXJLE5HAUl8GxkLF0QMDx2OH8CjQ+dEo9Kcclj2P6mba
pNVex3LHOtv/Bw5K0OJayxqz4d//rsqs4r2SOBDO4heFGNeNN/nbAiyBrNvkMDKP
VeeIfJBd/aI8M9NRbEMJ3KbuqO6CATR9F3hVsrzocaAJfvixET0uHoqZeunFrpcp
TVHEHavx1eIC0e7LaqIL7lWrhElb6ci1fypCYuau+ZNz6irOnPRA5CY9Zk2XWhSN
pxS+XQRRjHrDYbYjk3YNqCno4lWzFPGSoKkufG4a3Q8jKb/RA3zAKhwlwZXFPfun
PgLIl5XhK3BWl2Dv7t0jMxzqgLiIOMwL0l71AZNaRRl3OYfiYda3lrBK390ByQOG
64R+be+RxotfsyPvfwQF
=Arwc
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.8'
2014-02-07 00:17:36 +01:00
Max Kellermann
ddb5390d88
release v0.18.8
2014-02-07 00:06:31 +01:00
Max Kellermann
fce20e514e
NEWS: fix 0.18.7 release year
2014-02-07 00:06:31 +01:00
Max Kellermann
af66ed2505
doc/user: document the RoarAudio output plugin
2014-02-06 21:46:29 +01:00
Max Kellermann
ea4068757d
configure.ac: link the Vorbis encoder with libvorbis
...
Since the encoder plugin uses a libvorbis function (and not only
libvorbisenc functions), we need to link with libvorbis explicitly.
2014-02-06 21:32:50 +01:00
Max Kellermann
e4322a716c
input/nfs: new plugin using libnfs
2014-02-06 18:37:27 +01:00
Max Kellermann
b9c248e7e7
PlaylistFile: use class SongLoader
2014-02-03 23:50:19 +01:00
Max Kellermann
a31738f6f1
Main, OutputThread: increase kernel timer slack (Linux)
...
Allows the kernel to combine timer wakeups with other processes,
reducing power usage.
2014-01-30 18:43:40 +01:00
Max Kellermann
39a2867ea8
NEWS: mention thread names
2014-01-30 18:43:16 +01:00
Max Kellermann
468c3df82d
NEWS: add "threads" section
2014-01-30 18:43:03 +01:00
Max Kellermann
30fadaed7f
Merge branch 'v0.18.x'
2014-01-27 10:33:42 +01:00
Max Kellermann
2b10ecfa37
IcyMetadataParser: more robust tag parser
...
Allow semicolons and single quotes in the stream title. This is not
part of any specification, but found in real life.
2014-01-27 10:08:21 +01:00
Max Kellermann
5c4a42caa0
neighbor: new subsystem to detect file servers on the local network
...
This commit adds the NeighborPlugin API which can be used to detect
nearby file servers that can be used by input plugins. This list of
servers is exported using the new "listneighbors" command. The idle
even "neighbor" notifies interested clients when a new neighbor is
found or an existing one is lost.
There's a lot missing currently: protocol&user documentation, and a
way to "mount" remote servers into the music database. Obviously,
some code from the UPnP database plugin can be moved to a neighbor
plugin.
2014-01-26 00:10:05 +01:00
Max Kellermann
a6d9998e1d
db/proxy: copy "Last-Modified" from remote directories
2014-01-22 23:07:21 +01:00
Max Kellermann
2f51285349
Merge branch 'v0.18.x'
2014-01-20 09:05:36 +01:00
Max Kellermann
ab9c9068d4
Queue: rename struct queue to Queue
...
Works around a build failure on Solaris because annoyingly, Solaris
reserves the name "queue". This rename was pending anyway.
2014-01-20 08:57:46 +01:00
Max Kellermann
5fb72d7c8f
Merge branch 'v0.18.x'
2014-01-15 11:47:49 +01:00
Max Kellermann
313d1d5d83
decoder/ffmpeg: support libav v10_alpha1
2014-01-15 11:33:18 +01:00
Max Kellermann
f882434547
configure.ac: prepare for 0.18.8
2014-01-15 11:22:06 +01:00
Max Kellermann
4734af747b
OutputThread: use real-time priority
2014-01-14 09:59:04 +01:00
Max Kellermann
5d17731b73
UpdateGlue: let the update thread run at "idle" priority
...
The update thread should not affect the rest of the system, therefore
set "idle" priority, and let it only run when nobody else is using the
resources.
2014-01-14 09:09:52 +01:00
Max Kellermann
8cd15a02cd
release v0.18.7
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJS08NxAAoJECNuiljG20USYMYP/06XGbNmMoNy00DMMPVMGgfi
yvsBAM1kXTgh4/vE5LOZRJoXW8HY/p284TnTbjZWW/56c2RFbJblp4Bya28WtZTU
kAVpYD/8ClAHjZjVpZyvKq3G/U3IsM/EP3to8UnVRfoPRSr9LrOiT03TXnpWW5eO
CgrYqRwEf/XuqftmX/KarVEN/IRB1SxhZkcKLfagyW0nuulSwq5aR8tgR0wSu4qf
Yt+e1NQ2N3hJqINdV0Yb+wb2WAWK7jA6T5zw3ukalIp77/EnwvxD7VhnDKA4E4/8
6Y6MtkDb1KjweFXqRlMScEEZ7Xtvfa8fDkbXGV09jpcKBtN+M59L4+VP5ZC1d8bZ
VDoHOqIwpLsszdhP8/LidYgjkPf3tTjY9jCYmF15cu/E6PIHlrhcc1zD1yOps8bm
DFGFqjcct2hkCqovYFSnZGwHwfcOp/KjSVkoALxcmcw3KZDAuo8zhtH65O14UYdb
LGwotGQOnjDrWyd+Mt6eNyVY65GWuzNYazuCVsDcJqGM66sXIsfXgGKpOtTByAGU
0fYCq6apreGKhNXHoYeNwD5OhbffXWobA8nSWJhyeUu0FGMyNDbX/OET/5d2SCr1
Tm2+DVcBiNxgd4Bc6ddHgzsIem4LzS8VZx07VAwONP5oD4+eCj9wcx5S+0VrKNr9
kld5H4FLAb5fJfcRvKLm
=XVhH
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.7'
2014-01-13 11:52:35 +01:00
Max Kellermann
05ad335ae9
release v0.18.7
2014-01-13 11:39:27 +01:00
Andrée Ekroth
ea771c17c5
Shine encoding plugin
...
This encoding plugin features a fixed-point mp3 encoder,
with faster encoding on architectures without a FPU.
Right now the encoder is limited to stereo and 16 bit depth.
The bitrate and sample rate can be modified in audio_output.
audio_output {
type "httpd"
name "My shine stream"
encoder "shine"
port "8000"
format "44100:16:2"
bitrate "320" # default: 128
}
2014-01-13 11:14:19 +01:00
Max Kellermann
7faeb2ff2b
configure.ac: reject libmpcdec SV7 in configure script
...
Look for symbol "mpc_demux_init" which does not exist in SV7. This
avoids build failures when SV7 was found by configure.ac.
2014-01-11 21:02:12 +01:00
Max Kellermann
71d012fa61
db/proxy: forward "idle" events
...
Send "idle" to the other MPD whenever there's nothing else to do and
forward incoming "idle database" events to all our MPD clients.
2014-01-11 01:11:19 +01:00
Jean-Francois Dockes
406452f019
UPnP database plugin
...
[mk: renamed source files, applied coding style, reduced bloat, using
MPD's threading library, using MPD's error reporting and logging
library and refactoring, fixed lots of bugs]
2014-01-09 20:56:00 +01:00
Max Kellermann
139122c57f
Merge branch 'v0.18.x'
2014-01-08 22:14:12 +01:00
Max Kellermann
fdd76b3461
decoder/faad: fix memory leak
2014-01-08 22:11:00 +01:00
Max Kellermann
e490e5d0ab
playlist/pls: don't free stack buffer
2014-01-08 19:50:44 +01:00
James McGlashan (DarkFox)
d4dea53ae9
http -> https for SoundCloud plugin
2014-01-02 12:29:45 +01:00
Max Kellermann
809b0eb1f5
command: "lsinfo" and "readcomments" allowed for remote files
2013-12-29 18:25:32 +01:00
Max Kellermann
b5f3bfce92
SongUpdate: read tags from songs in an archive
...
Add the TagStream.cxx library, similar to TagFile.cxx, and use it to
load tags from song files inside archives.
2013-12-29 18:15:30 +01:00
Max Kellermann
92a4bf4441
Merge branch 'v0.18.x'
2013-12-29 14:18:19 +01:00
Max Kellermann
d7f80eab68
configure.ac: improved check for libyajl 1.0
...
If we have libyajl 2.0.1 (without a pkg-config file), our configure.ac
would assume this is the libyajl 1.0 API, because the function
yajl_alloc() exists in both. This commit changes the library check to
the function yajl_parse_complete() which was removed in the 2.0 API.
This fixes build failure with libyajl 2.0.1.
2013-12-29 14:12:33 +01:00
Max Kellermann
e30b356eb0
daemon: no initgroups() when already running as the configured user
...
We can assume that initgroups() would be a no-op in that case, however
initgroups() is not allowed for unprivileged users anyway.
2013-12-29 13:59:05 +01:00
Max Kellermann
6a1b2f0387
configure.ac: prepare for 0.18.7
2013-12-29 10:40:59 +01:00
Max Kellermann
5465647c2e
input/smbclient: new input plugin
2013-12-29 01:25:27 +01:00
Max Kellermann
afcf0795c4
pcm/Volume: improved dithering
...
Instead of just adding a rectangular random value before shifting back
to the normal scale, use the existing PcmDither library.
2013-12-28 18:30:24 +01:00
Max Kellermann
64e898f6db
release v0.18.6
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (GNU/Linux)
iQIcBAABAgAGBQJSuWnsAAoJECNuiljG20US3qwP/0WGxzRFU2/dLzX6KG5/n+8R
LqVeX7Ap7vLncA2UQQ2BiddPtF0u9lJOnex64pYCkwwpr4JBmkBa6kTKVGbbXDv5
/tuHeUJk/aWhBJ8Qz/rxmNFBW6tNGlhf+7FVt8vHQqvHn7tWWKRlsQNk6Pd4gGM/
UiMyuA8EtfTJZACPRRZK26H7g7EKIjsGt6vwiuWAh3MxGHWL5R2chuP5Mapi1U4U
Qa1YOUAHlChRxGT+LmNMyKlgq+mqltbKQj+pOLPFuT6Q6BqgZp2Ept5Svod/JamC
yCFRGWYsmRxZ0ZOhtRZACfm/yNzyIhkkvgW8FqM6tINOPrwL2MwAJVMVH3DZM7Aj
/8ltz0OH2s9x9sUfOtxQkK/3bJpBwaDnl+dFQtGIFwigvYLR2Jv2Bl1zQO6+zICu
bdbJS+IcOrElxTnxfir0CVEDysifUQ7/ZSQkwDqpF+RI8E07ZMZZLmXk3S2yX6Fx
6dCwdfIsBAotF7RYsdn4cmRaSEx6Ze+aQr0l5yLh+5sKPEdDRSMrBEnCgPGU94ub
VNl3Cp3dtq5kuSfJ90Mk0QzwVd/kCdKZKBMcTX2zv38NLcX0LCSylM4K9yCi+GR2
gvgAJq9cmbmTEN3+grVdApNx0sqNFrD6pB27KhUKWD0VYypPu7yPPptkOWzSldbz
8JGa8lryMbRmgiXVyivp
=Z823
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.6'
2013-12-24 12:20:24 +01:00
Max Kellermann
fb34519b96
release v0.18.6
2013-12-24 12:01:01 +01:00
Max Kellermann
c05691b546
OutputControl: update both ReplayGainFilters
...
The "mode" of the second ReplayGainFilter was never set, and thus
replay gain was never applied to the new song during cross-fade.
2013-12-24 11:53:21 +01:00
Steven O'Brien
6b3b8c6f2e
fix FfmpegDecoderPlugin to use relative timestamps
2013-12-20 22:28:33 +01:00
Steven O'Brien
35f85ddd86
add draft ALSA input plugin
...
I've created an elementary input plugin that plays sound from the
soundcard, so you can use MPD to listen to anything connected to the
line-in jack, or to Video4Linux FM radio cards that send audio through
the soundcard. There has been a small number of posts here in the
past requesting line-in input, so here is a first, simplistic stab at
it.
The patch adds a new sheme, alsa://, which causes mpd to play data
read directly from a souncdard. It defaults to hw:0,0, but you can
pass any ALSA device name in the URI. So, using mpc for example:
mpc add alsa://
mpc play
will play from device hw:0,0.
To use a diffferent device:
mpc add alsa://hw:1,0
2013-12-19 23:25:50 +01:00
Michal Smucr
e4d69f38b0
riff: recognize upper-case "ID3" chunk name
...
Some tagging libraries (eg. TagLib) produce that variant.
2013-12-19 09:35:54 +01:00
Max Kellermann
c7b1038a9d
Merge branch 'v0.18.x'
2013-12-14 12:37:16 +01:00
Max Kellermann
8e38b4f83c
mixer/alsa: use BlockingCall() instead of EventLoop::AddCall()
...
This is safer, and works without epoll(). Fixes a build failure with
uClibc, which does not support epoll().
2013-12-13 14:35:36 +01:00
mobidyc
96fa69ff6b
SongUpdate: accept files without metadata
...
If the file was recognized by a decoder plugin, accept it - don't
require metadata.
2013-12-10 19:34:35 +01:00
Lukas Stabe
695ca29274
output/osx: fix build failure
2013-12-10 19:19:31 +01:00
Max Kellermann
02e8da6c98
NEWS: add openal line
2013-12-10 19:19:27 +01:00
Max Kellermann
2b717997e2
command: add commands "addtagid", "cleartagid"
2013-12-02 12:50:27 +01:00
Max Kellermann
3e11a28cd9
pcm/SoxrResampler: new resampler option using libsoxr
2013-12-01 19:13:39 +01:00
Max Kellermann
aaeb8150b7
NEWS: prepare for 0.19
2013-12-01 19:13:39 +01:00
Gaetan Bisson
3b0fea5fae
input/cdio_paranoia: support libcdio-paranoia 0.90
2013-11-27 08:25:17 +01:00
Max Kellermann
443516cdda
configure.ac: prepare for 0.18.6
2013-11-27 08:25:17 +01:00
Max Kellermann
57e0cc5442
release v0.18.5
2013-11-23 18:30:12 +01:00
Max Kellermann
d6247902ec
input/curl: work around stream resume bug (fixed in libcurl 7.32.0)
2013-11-23 12:13:41 +01:00
Max Kellermann
fc7d5b055d
PcmResampleLibsamplerate: clip 24 bit data
...
Using pcm_resample_lsr_32() for 24 bit samples works, but may cause 24
bit overflows. This commit makes 24 bit a special case with explicit
clipping.
2013-11-22 23:27:56 +01:00
Max Kellermann
d22acc59c9
db/proxy: implement method GetUpdateStamp()
2013-11-22 00:45:27 +01:00
Max Kellermann
099a2cb586
Stats: print db statistics only if db is available
...
Fixes crash on "stats" in certain configurations.
2013-11-22 00:27:37 +01:00
Max Kellermann
ff1c1107f3
Stats: auto-reload statistics with proxy plugin
2013-11-22 00:19:28 +01:00
Max Kellermann
67b8124a1d
Mapper: _get_music_directory_utf8() may return nullptr
...
If no music_directory is configured, return nullptr instead of an
empty string. This fixes a crash when db_file is configured without
music_directory.
2013-11-22 00:02:17 +01:00
Florian Schlichting
51ec499c89
system/ByteOrder: testing for endianness in a more general way
...
Fixes build tests on ia64 and mipsel by testing for endianness in a
more general / portable way.
2013-11-21 23:04:49 +01:00
Max Kellermann
727c622659
configure.ac: auto-detect fluidsynth by default
...
The option "--enable-fluidsynth" was documented to be "auto" by
default, when it was really "no".
2013-11-21 22:50:58 +01:00
Denis Krjuchkov
1fc0c9fe8a
NEWS: add version 0.18.5 change log
2013-11-18 16:40:00 +06:00
Max Kellermann
35297f8d4f
release v0.18.4
2013-11-13 18:26:01 +01:00
Max Kellermann
0b6548a282
util/RefCount: no "constexpr" with libc++
...
Not supported by libc++.
2013-11-11 12:27:16 +01:00
Max Kellermann
287c70e361
filter/route, ...: add missing stdlib.h includes
2013-11-11 08:20:09 +01:00
Jurgen Kramer
47d3758820
decoder/dsdiff: fix byte order bug
2013-11-10 16:49:39 +01:00
Max Kellermann
32fcc22cb3
configure.ac: prepare for 0.18.4
2013-11-09 09:52:51 +01:00
Max Kellermann
daba1238b5
release v0.18.3
2013-11-08 12:55:12 +01:00
Max Kellermann
2789493a5f
PlayerThread: fix stuck MPD after song change (0.18.2 regression)
...
Commit 77c63511
caused MPD to become stuck right after a song change.
The problem was that at some point, the MusicBuffer became full, and
the DecoderThread working on the next song waits for the PlayerThread.
However, the PlayerThread was stuck in a loop of g_usleep() calls, and
never bothered to tell the DecoderThread that the MusicBuffer is not
full anymore. This bug is very old, but its chance to occur went from
nearly 0% to nearly 100%.
The fix is to wake up the DecoderThread before waiting for it. As a
side effect, I replaced the g_usleep() call with a Cond::Wait() call.
2013-11-08 12:02:21 +01:00
Max Kellermann
834715ea2f
configure.ac: prepare for 0.18.3
2013-11-08 11:57:37 +01:00
Max Kellermann
380a3bbff4
release v0.18.2
2013-11-07 18:48:04 +01:00
Max Kellermann
f33acf8758
input/cdio_paranoia: add setting "default_byte_order"
...
Allows big-endian users to configure the fallback byte order to
little-endian. Without this setting, MPD assumes native byte order if
the CD drive can't decide.
2013-11-07 18:17:54 +01:00
Max Kellermann
fd2eafa7c6
ClientRead: "close" flushes the output buffer
...
Add a new CommandResult code called "FINISH" which, unlike "CLOSE",
will attempt to flush the output buffer. This is a one-shot attempt;
it will do one write, and not try again.
2013-11-06 22:01:06 +01:00
Max Kellermann
ad27d06979
PlayerThread: enable buffering when starting playback
...
For some reason, this got lost in commit 975deca8
.
Re-enabling this fixes stuttering at the beginning of radio streams.
2013-11-06 20:14:38 +01:00
Max Kellermann
c4b1251d0a
configure.ac: require libaudiofile 0.3 due to API breakage
...
Prior to version 0.3, the "length" callback returned a "long" instead
of AFfileoffset. Now that this API bug fix is a few years old, let's
drop 0.2 support for good.
2013-11-06 20:04:21 +01:00
Max Kellermann
01891f8815
input/curl: fix bug with redirected streams
...
Migrate from the old curl_multi_perform() API to the newer
curl_multi_socket_action() API (since CURL 7.16).
This allows working around a bug with HTTP redirections with epoll:
when CURL closes a socket and the new one happens to have the same
file number, MPD did not have a chance to remove the old one from
epoll and subsequently attempted to use EPOLL_CTL_MOD, which was not
allowed by epoll, because it's a new socket now.
2013-11-06 19:14:22 +01:00
Max Kellermann
ed436c6f0c
system/ByteOrder: fix big-endian support
...
D'oh!
2013-11-05 22:08:53 +01:00
Max Kellermann
ae5dd2da4f
playlist/pls: fix reversed song order
...
Remove the forward_list::reverse() call. It was not necessary,
because pls_parser() already reads the playlist in reverse order.
2013-11-05 18:22:34 +01:00
Jurgen Kramer
f4b61e8c8d
decoder/dsf: enable DSD128
2013-11-05 17:38:48 +01:00
Max Kellermann
e49a3d377f
NEWS: add missing line
2013-11-05 17:38:41 +01:00
Max Kellermann
bb62ecf157
configure.ac: prepare for 0.18.2
2013-11-05 11:08:17 +01:00
Max Kellermann
a268ab35ea
release v0.18.1
2013-11-04 23:46:14 +01:00
Max Kellermann
62baec1841
output/alsa: avoid endless loop in Raspberry Pi workaround
...
See code comment.
2013-11-04 23:40:34 +01:00
Max Kellermann
7bca61f5bb
event/ServerSocket: don't abort if IPv6 is not available
...
First check if an IPv6 socket can be created.
2013-11-04 23:36:02 +01:00
Max Kellermann
bcae86196c
event/ServerSocket: open sockets in the order they were configured
...
Use a std::list which can be appended at the end.
2013-11-04 20:10:46 +01:00
Max Kellermann
7adfea8ca2
system/resolver: return path of UNIX domain sockets
...
getnameinfo() doesn't work well - it always returns "localhost".
2013-11-04 19:13:05 +01:00
Max Kellermann
eab1a77683
ClientRead: always ignore whitespace at the end of the line
2013-11-04 18:11:15 +01:00
Max Kellermann
84f5e0c0de
Makefile.am: distribute missing files
2013-11-04 08:26:10 +01:00
Max Kellermann
2ce3900071
filter/AutoConvert: modify child_audio_format, not in_audio_format
...
This prevented using the "volume_normalization" feature with some
codecs (e.g. mp3), because the normalization code requires 16 bit
samples. If the codec happens to deliver formats other than S16, the
AutoConvert filter succeeds to initialize the conversion filter, but
the returned input audio format was wrong.
2013-11-04 08:00:00 +01:00
Max Kellermann
bf2c1f3e9e
configure.ac: prepare for 0.18.1
2013-11-04 08:00:00 +01:00
Max Kellermann
8ccd8a008d
release v0.18
2013-10-31 00:23:41 +01:00
Max Kellermann
54abeab80b
increase default buffer size to 4 MB
...
2 MB was too small for cross-fading a 24 bit file. Increasing to 4 MB
is still not too large for weak machines, but is enough for
cross-fading.
2013-10-30 21:46:40 +01:00
Max Kellermann
2aee1b86f3
SongFilter: add special keyword "base"
...
Restores the features from the previous draft commands "findin" /
"searchin".
2013-10-29 21:13:40 +01:00
Max Kellermann
b5fc21b9f4
Revert "command: new commands "findin", "searchin" with base URI"
...
This reverts commit a577944ab5
.
Will be replaced by new options for the old commands "search" and
"find".
2013-10-29 21:13:40 +01:00
Max Kellermann
6859c22b69
SongFilter: "any" does not match file name
...
According to the protocol documentation, matching the file name was
wrong. This removes some awkward special-case code.
2013-10-29 20:40:55 +01:00
Max Kellermann
4728735acf
decoder/dsf: don't play junk at the end of the "data" chunk
2013-10-28 23:47:25 +01:00
Max Kellermann
c37edfd3e9
configure.ac: disable the OS X output plugin by default
...
There hasn't been a maintainer for this plugin for years. It may even
fail to build.
2013-10-28 22:25:58 +01:00
Max Kellermann
1ad2475f9e
DecoderControl: convert mutex and client_cond to a reference
...
Share the Mutex between the DecoderThread and the PlayerThread. This
simplifies synchronization between the two threads and fixes a freeze
problem: while the PlayerThread waits for the DeocderThread, it cannot
answer requests from the main thread, and the main thread will block
until the DecoderThread finishes.
2013-10-28 10:22:05 +01:00
Max Kellermann
a577944ab5
command: new commands "findin", "searchin" with base URI
2013-10-26 16:13:35 +02:00
Max Kellermann
17dc638c18
command: new command "readcomments" lists arbitrary file tags
2013-10-25 19:35:40 +02:00
Max Kellermann
e17da71a70
output/httpd: support HEAD requests
2013-10-25 00:32:48 +02:00
Max Kellermann
961c7d0f78
OtherCommands: re-add the "volume" command
...
This command was removed by commit 206392ad
(MPD 0.16), even though it
was been proven useful for some very simple clients. On request, I
add it to the protocol again.
2013-10-25 00:20:36 +02:00
Sebastian Thorarensen
db44a6e948
decoder/modplug: Add "loop_count" parameter
...
The "loop_count" configuration parameter allows the user to set how
many times a module with backward loops shall loop. "0" (the default)
means a module is not allowed to use backward loops at all. "-1"
enables inifinite looping.
2013-10-19 16:12:17 +02:00
Sebastian Thorarensen
b6ac249c3c
decoder/mikmod: Add loop configuration parameter
...
This patch allows the user to configure the mikmod decoder plugin to loop
modules. It adds a configuration parameter to the mikmod decoder called
"loop" which can be "no" (the old behaviour, default) or "yes" to allow
modules to use backward loops.
2013-10-18 14:23:24 +02:00
Max Kellermann
608a98c873
fs/Charset: default filesystem charset is UTF-8
...
Implement a fast path for UTF-8 which leaves fs_charset empty, and
don't assign a value to fs_charset if there's no configuration.
2013-10-17 22:42:22 +02:00
Max Kellermann
8cf2f52f7a
Merge tag 'release-0.17.6'
2013-10-14 21:40:56 +02:00
Max Kellermann
681352ac3b
release 0.17.6
2013-10-14 21:15:55 +02:00
Florian Schlichting
d9c662d51f
decoder/modplug: fix include directory
2013-10-14 21:12:47 +02:00
Max Kellermann
ad631d563b
stored_playlist: use fs_charset_to_utf8() for URLs
2013-10-14 21:11:20 +02:00
Max Kellermann
7cbaf11dda
load_file
2013-10-14 21:00:46 +02:00
Max Kellermann
a2ce2447a6
Merge branch 'v0.17.x'
2013-10-01 17:20:38 +02:00
Max Kellermann
9a1076256d
mixer/alsa: handle ENODEV
...
Fixes busy loop when USB sound device gets unplugged (Mantis bug
#3824 ).
2013-10-01 16:35:27 +02:00
Max Kellermann
d397ce68dc
prepare 0.17.6
2013-10-01 16:29:54 +02:00
Max Kellermann
a446775d80
playlist/lastfm: remove defunct Last.fm support
...
This plugin has been defunct ever since Last.fm changed their
protocol. Since there is no volunteer willing to fix the plugin, I'm
removing it now.
2013-09-28 14:01:51 +02:00
Max Kellermann
44faf1080c
SongFilter: search for album artist falls back to the artist tag
...
Implement Mantis ticket 0003646.
2013-09-26 19:25:13 +02:00
Maarten de Vries
08e6d222a2
Listen: Allow tilde paths for socket.
2013-09-12 08:55:45 +02:00
Ales Guzik
3330aa6f6a
input/curl: enable https
2013-09-05 11:56:49 +02:00
Max Kellermann
9e715089a4
Commands: new command "toggleoutput"
2013-08-04 23:21:23 +02:00
Max Kellermann
9326ce53ec
Merge tag 'release-0.17.5'
2013-08-04 14:36:22 +02:00
Max Kellermann
d8217c364a
release 0.17.5
2013-08-04 14:21:45 +02:00
Justin Riley
3a34fd181d
FfmpegDecoderPlugin: add application/flv to mime types list
2013-08-04 14:20:16 +02:00
Christoph Mende
7ff988275f
decoder/mikmod: use MikMod_free() to free the title on libmikmod-3.2
...
Player_LoadTitle() returns an aligned pointer in libmikmod-3.2 that
cannot be freed with free(). The correct way to do this now is
MikMod_free() which extracts the original pointer from the buffer and
frees that.
Signed-off-by: Christoph Mende <mende.christoph@gmail.com>
2013-08-01 09:30:20 +02:00
Max Kellermann
363050f44c
playlist_edit: fix "move" relative to current when there is no current song
...
Fixes Mantis #3770 .
2013-08-01 09:28:03 +02:00
Michael Mair-Keimberger
dbe04c4207
configure.ac: detect system "ar"
2013-08-01 09:13:41 +02:00
tsufeki
d59a332ef9
commmand: fix URI argument in playlistadd
2013-08-01 08:42:22 +02:00
Max Kellermann
8b2dcf7018
decoder/ffmpeg: require ffmpeg/libav 0.8
...
Now that even Debian stable has picked up version 0.8, we can safely
make this a requirement, and remove a lot of old cruft.
2013-07-31 01:01:21 +02:00
Max Kellermann
2df2a989af
input/soup: plugin removed
...
This plugin is cumbersome to support, now that MPD is migrating away
from GLib and the GLib event loop. It has no practical advantages
over the CURL plugin. Soup requires the bloated GType library.
2013-04-17 21:46:16 +02:00
Max Kellermann
e903d00968
output/ffado: remove broken plugin
...
This plugin has been in MPD for three years, and it has never worked.
Enough!
2013-04-17 00:44:02 +02:00
Max Kellermann
cc6c452854
output/mvp: remove obsolete plugin
...
The hardware is obsolete, and the product does not exist anymore on
the Hauppauge web site. Let's see if anybody complains about the
removal.
2013-04-17 00:37:30 +02:00
Max Kellermann
9a4c049675
prepare 0.17.5
2013-04-16 23:17:38 +02:00
Max Kellermann
dca1115196
StateFile: schedule timer only after a change
...
Save the state file 2 minutes after the last change. This reduces the
disruptions by an idle MPD, and MPD can be paged out permanently until
it is used.
2013-04-08 23:11:36 +02:00
Max Kellermann
2c4b998170
Merge tag 'release-0.17.4'
2013-04-08 22:11:42 +02:00
Max Kellermann
0a9c7ff6cf
release 0.17.4
2013-04-08 22:00:43 +02:00
Max Kellermann
436335e9a3
player_control: don't emit IDLE_PLAYER before audio format is known
...
Eliminates one IDLE_PLAYER call in playlist_control, and add two new
ones to player_thread. Fixes Mantis bug 3636.
2013-04-08 21:31:03 +02:00
Anton Khirnov
e0c2c77c2a
ffmpeg decoder plugin: do not allocate an AVFrame on stack.
...
AVFrame must be allocated with avcodec_alloc_frame().
2013-04-05 23:30:47 +02:00
Max Kellermann
8017301de5
Merge branch 'v0.17.x'
2013-02-27 20:00:14 +01:00
Hagen Fritsch
28a60db5aa
clock: add missing include
2013-02-27 19:42:35 +01:00
Max Kellermann
214a526945
Merge branch 'v0.17.x'
2013-02-19 09:24:11 +01:00
Jörg Thalheim
d5b756413a
command: allow to omit END in ranges (START:END)
...
If END is omitted, mpd should use the highest possible value instead of raising an error.
This partially reverts 52e9cab1c1
2013-02-19 09:23:18 +01:00
Max Kellermann
af99176581
output/alsa: workaround for noise after manual song change
...
Workaround for driver bug observed on the Raspberry Pi, see code
comment for details.
2013-02-04 15:51:32 +01:00
Max Kellermann
96dc0a318a
player_thread: implement missing "idle" events on output errors
...
When all outputs fail, MPD automatically pauses playback, but did not
emit the IDLE_PLAYER event. Thus, clients were not woken up. (Mantis
3665)
2013-02-04 10:15:34 +01:00
Max Kellermann
88c17926e4
decoder/mp4ff: delete obsolete plugin
...
The underlying library has been obsolete for many years.
2013-01-28 21:32:14 +01:00
Max Kellermann
74500eacca
Merge branch 'v0.17.x'
2013-01-16 20:05:26 +01:00
Brice Jaglin
1105e61f29
decoder/ffmpeg: support float planar audio
2013-01-16 19:54:54 +01:00
Max Kellermann
3781f6cf39
Merge tag 'release-0.17.3'
2013-01-07 08:46:55 +01:00
Avuton Olrich
227da2377a
Modify version string to post-release version 0.17.4~git
2013-01-06 16:47:09 -08:00
Avuton Olrich
ffb3a9f526
mpd version 0.17.3
2013-01-06 16:47:09 -08:00
Max Kellermann
6837e5a6a0
Merge branch 'v0.17.x'
2013-01-03 22:53:53 +01:00
Max Kellermann
9761abf3b5
cue_parser: fix CUE files with only one track
...
Track whether _finish() has been called, and deliver all partial
results then. Fixes Mantis ticket 0003621.
2013-01-03 21:58:20 +01:00
Max Kellermann
31da4bc566
cue_parser: fix memory leak
2013-01-03 21:02:59 +01:00
Max Kellermann
cbdaa1369f
Merge branch 'v0.17.x'
...
Conflicts:
src/PlaylistSave.cxx
2012-10-05 17:12:44 +02:00
Max Kellermann
d4b5699403
decoder/ffmpeg: support planar audio
...
Implements Mantis feature request 3582.
2012-10-05 16:40:25 +02:00
Max Kellermann
e39382dedd
decoder/ffmpeg: ignore negative time stamps
...
Works around assertion failure in decoder_timestamp().
2012-10-05 16:37:07 +02:00
Max Kellermann
b8fdb452be
decoder/flac: support FLAC files inside archives
...
Implement the "scan_stream" method that can read tags from any
input_stream object. This requires a FLAC__IOCallbacks implementation
based on the input_stream API.
2012-10-04 10:37:09 +02:00
Max Kellermann
ade0483641
Merge branch 'v0.17.x'
2012-10-02 17:34:03 +02:00
Gregory Smith
03a401e477
OSX: Set mDataByteSize correctly on AudioBuffers during render.
2012-10-02 17:27:52 +02:00
Max Kellermann
ccd7104cdc
{decoder,encoder}/flac: drop support for libFLAC 1.1
2012-10-02 10:04:44 +02:00
Max Kellermann
9e3f843291
encoder/vorbis: accept floating point input samples
...
Improves quality by not squeezing 32 bit samples down to 16 bit, and
then back to 32 bit floating point. Reduces CPU usage by skipping a
conversion step.
2012-10-02 08:39:39 +02:00
Max Kellermann
d793b7c03f
encoder/opus: new encoder plugin for the Opus codec
2012-10-02 00:45:24 +02:00
Max Kellermann
d95e538020
Merge branch 'v0.17.x'
2012-10-02 00:36:05 +02:00
Max Kellermann
adbe8c409a
output/{recorder,shout}: call encoder_read() in a loop
...
This is necessary for Ogg packets that span more than one page.
2012-10-02 00:26:40 +02:00
Max Kellermann
d34e55c370
output/recorder: fix write() error check
...
We can only check for negative values if the variable is signed.
2012-10-02 00:20:42 +02:00
Max Kellermann
c7748fedab
output/shout: fix memory leak in error handler
2012-10-02 00:17:27 +02:00
Max Kellermann
b4d8cb7bc1
Merge tag 'release-0.17.2'
2012-10-01 11:06:54 +02:00
Avuton Olrich
f672e4016f
Modify version string to post-release version 0.17.3~git
2012-09-30 03:27:38 -07:00
Avuton Olrich
76e3dec723
mpd version 0.17.2
2012-09-30 03:27:38 -07:00
Max Kellermann
9cdbde4f5e
output: new option "tags" may be used to disable sending tags
...
Implements Mantis ticket 0003340.
2012-09-25 23:31:07 +02:00
Max Kellermann
f9147a0706
NEWS: mention the AdPlug decoder
2012-09-25 23:31:07 +02:00
Simon Hosie
5e9ccdec63
decoder/vorbis: skip 16 bit quantisation, provide float samples
...
Internally the vorbis (non-Tremor) decoder is working in floating
point, and it's not really necessary to cut the output back to 16-bit
if the soundcard or OS supports higher resolution.
The decoder can be trivially modified to bypass its internal
quantisation and produce floating-point output, and a separate
quantisation can be used as appropriate to the platform.
2012-09-25 21:27:50 +02:00
Max Kellermann
e2a574e2a0
Merge branch 'v0.17.x'
...
Conflicts:
src/locate.c
2012-09-25 11:39:01 +02:00
Max Kellermann
c93a28c641
configure.ac: don't auto-detect the Vorbis encoder when Tremor is enabled
...
libvorbisidec and libvorbis export the same symbols, which is a
dangerous thing. Since libvorbisenc depends on libvorbis, this can
get nasty, so let's disable the Vorbis encoder unless the user
explicitly wants it.
2012-09-25 10:41:39 +02:00
Max Kellermann
7088a679a2
decoder/wavpack: support all APEv2 tags
...
WavPack tags are always APEv2, by definition. Reuse the tag_table
from tag_ape.c, instead of rolling our own.
2012-09-25 09:37:16 +02:00
Max Kellermann
1536b5a9d6
src/decoder/opus: new decoder plugin for the Opus codec
...
Using libopus and libogg.
2012-09-05 23:01:17 +02:00
Max Kellermann
2a4c799471
Merge branch 'v0.17.x'
2012-09-04 11:28:13 +02:00
Max Kellermann
27535a7f78
update_walk: fix unsafe readlink() usage
2012-09-03 22:41:04 +02:00
Max Kellermann
def21cc87e
Merge branch 'v0.17.x'
...
Conflicts:
src/queue_save.c
2012-08-25 10:28:33 +02:00
Max Kellermann
acaa725478
playlist/cue: map "PERFORMER" to "artist" or "album artist"
...
Implements Mantis ticket 0003549.
2012-08-25 09:56:14 +02:00
Max Kellermann
f351550534
player_thread: disable cross-fading in "single" mode
...
This commit reimplements the core of the "single" mode. Instead of
doing the detection in the playlist code from the outside, it is moved
to the player thread, which gets a new option called "border_pause".
It will now pause playback exactly at the beginning of the new song,
making the feature more reliable.
Now that the player thread knows what will happen, it can suppress
cross-fading.
Fixes mantis tickets 0003055 and 0003166.
2012-08-25 09:38:41 +02:00
Max Kellermann
5ad21d7e98
queue_save: save song priorities
2012-08-21 19:17:14 +02:00
Max Kellermann
f45616e5f6
Merge branch 'v0.17.x'
2012-08-16 00:04:03 +02:00
Max Kellermann
ef5125f8f4
playlist_print: fix memory leak
2012-08-16 00:01:01 +02:00
Max Kellermann
20695ef369
playlist_song: fix user-after-free bug
2012-08-16 00:00:21 +02:00
Max Kellermann
8422402c39
Merge branch 'v0.17.x'
...
Conflicts:
src/player_thread.c
2012-08-15 22:56:11 +02:00
Max Kellermann
2276e7677b
mapper: fix potential crash in file permission check
2012-08-15 22:44:13 +02:00
Max Kellermann
efccb6ac82
Merge branch 'v0.17.x'
2012-08-15 01:04:34 +02:00
Max Kellermann
4a993cd79e
decoder/fluidsynth: add "sample_rate" setting
2012-08-15 00:57:32 +02:00
Max Kellermann
b1bbd70f0f
decoder/fluidsynth: stop playback at end of file
...
Use libfluidsynth's new function fluid_player_get_status().
2012-08-15 00:47:10 +02:00
Max Kellermann
c8ec85d649
decoder/fluidsynth: check if file is really a MIDI
...
Use fluid_is_midifile() to verify the file format.
2012-08-15 00:36:04 +02:00
Max Kellermann
e291f3d257
decoder/fluidsynth: remove throttle (requires libfluidsynth 1.1)
...
The libfluidsynth API is now sane, and does not require real-time
decoding.
2012-08-15 00:29:38 +02:00
Max Kellermann
7d27d2ea5e
Merge branch 'v0.17.x'
2012-08-14 23:58:54 +02:00
Max Kellermann
302972e9fc
output/httpd: fix throttling bug after resuming playback
...
Reset the timer when paused and no client is connected.
This fixes Mantis ticket 0003527.
2012-08-14 21:39:33 +02:00
Max Kellermann
a869dfea85
timer: use monotonic clock if available
2012-08-14 19:07:31 +02:00
Max Kellermann
5cc3338267
Merge branch 'v0.17.x'
...
Conflicts:
src/mapper.h
2012-08-14 02:39:03 +02:00
Max Kellermann
1ae8972859
mapper: fix non-UTF8 music directory name
...
Duplicate the music_dir variable: one encoded in UTF-8, and another
one using the configured filesystem character set. This fixes an
ancient MPD bug.
2012-08-14 02:28:04 +02:00
Max Kellermann
3047bdf653
Merge branch 'v0.17.x'
...
Conflicts:
NEWS
configure.ac
src/client_file.h
2012-08-13 07:59:19 +02:00
Anton Khirnov
12be9e818f
client_file: remove pure attribute from client_allow_file().
...
That function is not pure, it writes to error.
When marked as pure, the compiler is allowed to assume it does not do
anything to error, so it can remain NULL, which would result in an
invalid read in print_error().
2012-08-13 07:55:40 +02:00
Max Kellermann
d488d796f4
player_control: add GError attribute
...
Rewrite of the pc_get_error_message() function, now using a GError
object instead of the complicated "errored_song" attribute.
2012-08-08 22:54:49 +02:00
Max Kellermann
659d1c7cf7
Modify version string to post-release version 0.18~git
2012-08-01 09:58:42 +02:00
Avuton Olrich
281cd7c057
Modify version string to post-release version 0.17.2~git
2012-07-31 19:05:52 -07:00
Avuton Olrich
63e8766091
mpd version 0.17.1
2012-07-31 19:05:52 -07:00
Max Kellermann
1dedb96478
tag_ape: return false if no usable tag was found
...
Ignore APE tags that have no usable tags, and use the ID3 tag instead.
This is useful when the APE tag only contains replay gain, and the
real tags are stored as ID3. This implements feature request Mantis
#0003521 .
2012-07-29 18:44:03 +02:00
Max Kellermann
7537722a44
cue_parser: support file types "MP3", "AIFF"
...
These two strings are common "FILE" types.
2012-07-26 23:01:40 +02:00
Max Kellermann
5385d1fa80
aiff: support the AIFC format
2012-07-10 01:53:46 +02:00
Max Kellermann
dbee2f1996
output_init: put the "convert" filter at the end of the list
...
No, really! This fixes a regression of commit 74617389
, which
changed the order of filter plugins.
2012-07-10 01:30:22 +02:00
Jonathan Neuschäfer
c1f196dbec
command: require appropriate permissions for searchadd{,pl}
2012-07-10 00:23:19 +02:00
Max Kellermann
ce108acebb
configure.ac: increment version number to 0.17.1
2012-07-09 22:50:32 +02:00
Max Kellermann
6bfd1f1727
mpd version 0.17
2012-06-27 11:38:13 +02:00
geneticdrift
ecec41025f
Documentation for commands searchadd, searchaddpl, and for tcp keepalive config options
2012-06-27 09:50:35 +02:00
Max Kellermann
4eb57e1e9a
Merge branch 'v0.16.x'
...
Conflicts:
src/cmdline.c
src/decoder/wildmidi_decoder_plugin.c
src/gcc.h
src/glib_compat.h
src/input_stream.c
src/output_list.c
src/output_thread.c
valgrind.suppressions
2012-06-12 23:22:03 +02:00
Max Kellermann
ae70875f45
cmdline: consistent plugin listings
2012-06-12 22:29:04 +02:00
Denis Krjuchkov
25d053cbf2
Work around incorrect g_file_test() behavior on Win32
...
g_file_test is redefined to be g_file_test_utf8 and thus can't handle
non-ASCII characters. This fix adds simple wrapper (taken from glib)
that fixes encoding and calls g_file_test_utf8. All required inclusions
of glib_compat.h are added as well.
2012-06-12 19:31:19 +02:00
Max Kellermann
d662c4c0cc
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
2012-05-29 23:46:10 +02:00
Max Kellermann
457d98c860
output/raop: delete the RAOP plugin
...
This plugin is horrible code, I mean it. Last year, I tried hard to
fix it, but I figured would take less time to do a full rewrite.
Given that I don't even have any device that supports RAOP, I can't do
that properly. After 16 months, nobody volunteered for fixing it.
Hereby, I delete it, because having no RAOP plugin is better than
having this mess. Sorry.
2012-05-29 23:15:41 +02:00
Jonathan Neuschäfer
8b6b25220d
decoder/ffmpeg: add webm as a supported format
2012-05-29 22:38:40 +02:00
Jonathan Dieter
7c6d1896a4
tag_rva2: support separate album/track replay gain
2012-04-23 23:29:53 +02:00
Max Kellermann
36a7b4e275
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2012-04-06 15:42:41 +02:00
Avuton Olrich
d3cc8e0ac0
Modify version string to post-release version 0.16.9~git
2012-04-04 18:37:47 -07:00
Avuton Olrich
db1ce4eeeb
mpd version 0.16.8
2012-04-04 18:37:47 -07:00
Max Kellermann
c22cbbf828
Merge branch 'v0.16.x'
...
Conflicts:
src/output/osx_plugin.c
src/text_input_stream.c
2012-04-05 00:45:39 +02:00
Max Kellermann
5acee73fc8
encoder/vorbis: generate end-of-stream packet when playback ends
...
Add the encoder_plugin method end(). This is important for the
recorder plugin.
2012-04-05 00:21:53 +02:00
Max Kellermann
98a468a101
encoder/vorbis: generate end-of-stream packet before tag
...
Don't reset the ogg_stream_state object, because this discards the
end-of-stream packet that was just added.
2012-04-04 23:59:06 +02:00