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
Max Kellermann
a9edf85a69
output/jack: check for connection failure before starting playback
2012-04-04 21:40:56 +02:00
Max Kellermann
e7a1862517
output/jack: workaround for libjack1 crash bug
2012-04-04 21:38:29 +02:00
Anton Khirnov
83174de420
update: properly skip symlinks in path that is to be updated.
2012-04-04 08:56:45 +02:00
Max Kellermann
8ff0197a43
output/osx: use the fifo_buffer library instead of rolling own
...
The existing buffer implementation has a major flaw: it is unable to
re-fill the buffer until it has been consumed completely, leading to
many occasions where the render callback needs to generate silence,
just because the play() implementation was unable to append more
data. The fifo_buffer library handles that well.
2012-03-28 21:51:17 +02:00
Max Kellermann
167242fec0
output/alsa: add option to enable DSD over USB
2012-03-22 01:30:16 +01:00
Max Kellermann
4f500149af
text_input_stream: detect end-of-file
...
Fixes endless loop when the last line of a text file was not
terminated (bug 3470).
2012-03-19 23:17:56 +01:00
Robert Vollmert
7cef52478d
A soundcloud playlist plugin.
...
Requires YAJL to build, and this doesn't include the necessary
automake changes. Can be built using
./configure CFLAGS="-I/usr/include/yajl" LIBS="-lyajl" --enable-soundcloud
Add the following to your config:
playlist_plugin {
name "soundcloud"
enabled "true"
apikey "c4c979fd6f241b5b30431d722af212e8"
}
Then you can stream from soundcloud using calls like:
mpc load soundcloud://track/<track-id>
mpc load soundcloud://playlist/<playlist-id>
mpc load soundcloud://url/http://soundcloud.com/some/track/or/playlist
For the last case, you can leave off the http:// or
http://soundcloud.com/ .
2012-03-01 20:11:09 +01:00
Max Kellermann
7338b16c18
listen: implement systemd socket activation
2012-02-13 21:32:42 +01:00
Max Kellermann
5540fbaec2
command: new command "config"
2012-02-13 20:30:27 +01:00
Max Kellermann
c616165f81
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
src/decoder/ffmpeg_decoder_plugin.c
test/read_tags.c
2012-02-13 19:15:18 +01:00
Max Kellermann
103832742d
decoder/ffmpeg: read the "year" tag
...
This was disabled when compiled with a new ffmpeg version. Older
ffmpeg versions used it explicitly, while newer ones may pass it
through from the codec.
2012-02-13 19:05:39 +01:00
Max Kellermann
e1e3ce980a
decoder_api: check state before emitting initial seek command
...
This fixes seeking in the vorbis decoder during MPD startup.
2012-02-13 18:27:43 +01:00
Max Kellermann
7855a32579
pcm_buffer: pcm_buffer_get() never returns NULL
...
This fixes a bug when libsamplerate returns an empty buffer for a very
small input buffer. The caller thinks this is an error, bug there is
no GError object.
2012-02-13 18:17:05 +01:00
Max Kellermann
01b0d9eb97
db_print: print extra "playlist" object for embedded CUE sheets
...
This finally enables the new embedded CUE sheet code: when a song file
contains a playlist, it is printed in the "lsinfo" output, so clients
get to know about this.
2012-02-12 18:41:25 +01:00
Max Kellermann
abcc225763
cue_parser: new line based CUE sheet parser
...
To replace libcue, the unmaintained and crashy library.
2012-02-10 00:12:29 +01:00
Max Kellermann
b9673fc521
command: add optional range parameter to "load"
2012-02-09 23:55:34 +01:00
Max Kellermann
e15b4f40d6
Merge commit 'release-0.16.7'
...
Conflicts:
NEWS
configure.ac
2012-02-05 18:33:58 +01:00
Avuton Olrich
66235fddff
Modify version string to post-release version 0.16.8~git
2012-02-04 14:41:59 -08:00
Avuton Olrich
f9c5d026f4
mpd version 0.16.7
2012-02-04 14:41:59 -08:00
Max Kellermann
c46239af22
Merge branch 'v0.16.x'
...
Conflicts:
src/decoder/ffmpeg_decoder_plugin.c
test/read_tags.c
test/run_decoder.c
2012-02-04 17:23:53 +01:00
Max Kellermann
5d9876e338
decoder/ffmpeg: use AV_SAMPLE_FMT_* if available
...
Implements support for libavcodec 0.9, which removes the compatibility
macros SAMPLE_FMT_*
2012-02-03 09:55:25 +01:00
Max Kellermann
378fa5ee6a
decoder/ffmpeg: support all MPD tags
...
Use the tag_item_names table to look up the names of all MPD tags, and
remove the duplicate entries from ffmpeg_tag_maps.
2012-02-03 09:10:48 +01:00
Max Kellermann
26ec62714c
mixer/alsa: listen for external volume changes
...
Use libasound's polling functions, implement a bridge to GSource /
GPollFD and send idle events to clients when an external program
changes the ALSA mixer volume.
2012-01-05 01:52:40 +01:00
Max Kellermann
9937ff8ac0
Merge branch 'v0.16.x'
...
Conflicts:
src/decoder/ffmpeg_decoder_plugin.c
src/input/ffmpeg_input_plugin.c
2012-01-05 00:33:23 +01:00
Max Kellermann
abd1949825
decoder/ffmpeg: support libavformat 0.8
2012-01-05 00:17:56 +01:00
Max Kellermann
4e6bc77a70
decoder/ffmpeg: use avcodec_decode_audio4(), support libavcodec 0.8
2012-01-04 22:10:38 +01:00
Max Kellermann
76fcf25898
decoder/ffmpeg: use AVIOContext instead of ByteIOContext
2012-01-04 21:47:47 +01:00
Max Kellermann
56257f072b
input/ffmpeg: use the new AVIOContext API
...
URLContext is deprecated.
2012-01-04 21:47:19 +01:00
Max Kellermann
1ebadf8620
output/osx: implement 32 bit playback
2011-12-24 18:18:42 +01:00
Max Kellermann
43c5058682
Merge branch 'v0.16.x'
2011-12-24 18:15:17 +01:00
Max Kellermann
97b4a6b51f
output/osx: clear render buffer when there's not enough data
...
When we don't have enough data, generate some silence, hoping the
input buffer will fill soon. Reducing the render buffer size is not
legal.
2011-12-24 17:59:36 +01:00
Max Kellermann
f405d27c56
output/osx: remove sleep call from render callback
...
Blocking inside the render callback is forbidden, and this sleep call
didn't make any sense.
2011-12-24 17:56:10 +01:00
Max Kellermann
99949c8f6f
command: new command "seekcur"
...
For simpler seeking within current song.
2011-12-24 11:20:02 +01:00
Maarten Sebregts
3a9697adf2
Playlist: fix bug in moving after current song
...
Moving songs using either 'move' or 'moveid' to position -1 (after the
current song) would fail for a song which is just before the current
song.
This patch corrects the check to see if the current song is in the range
to be moved. Since the range is from `start` up to `end` (exclusive) the
check was incorrect, but is now fixed.
2011-12-21 10:29:07 +01:00
Max Kellermann
e735abe334
output/openal: use alGetSourcei(AL_BUFFER) to force-unqueue buffers
...
The implementation of cancel() did not work well: you cannot use
alSourceUnqueueBuffers() to unqueue queued buffers, and our function
openal_unqueue_buffers() left the OpenAL library in a rather undefined
state; nothing was supposed to be queued, but the "filled" variable
was not reset.
2011-12-13 21:59:10 +01:00
Max Kellermann
aa4f45b9a5
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-12-13 21:57:44 +01:00
Max Kellermann
96ad5b8444
output/openal: force 16 bit playback, as 8 bit doesn't work
...
The OpenAL specification says that AL_FORMAT_MONO8 and
AL_FORMAT_STEREO8 expect unsigned 8 bit samples, but MPD uses unsigned
samples.
2011-12-13 21:32:19 +01:00
Max Kellermann
097e5dfbdc
timer: fix time unit mixup in timer_delay()
...
The local variable was already divided by 1000, and the return value
was being divided by 1000 again - doh! This caused delays in the
httpd output plugin that were too small by three orders of magnitude,
and the buffer was filled too quickly.
2011-12-13 21:02:48 +01:00
Denis Krjuchkov
33232face9
winmm_output_plugin: fail if wrong device specified instead of using fallback.
...
Silently choosing default is misleading and can cause hours of investigation.
It's better to fail immediately telling user what is wrong with config.
2011-12-13 19:12:33 +01:00
Avuton Olrich
8ca3642429
Modify version string to post-release version 0.16.7~git
2011-12-01 05:44:53 -08:00
Avuton Olrich
1dc000c06a
mpd version 0.16.6
2011-12-01 05:44:53 -08:00
Max Kellermann
4f093d5b97
Merge branch 'v0.16.x'
...
Conflicts:
Makefile.am
NEWS
configure.ac
src/encoder/flac_encoder.c
src/log.c
src/pcm_buffer.c
2011-11-28 11:56:01 +01:00
Max Kellermann
e1b032cbad
decoder/ffmpeg: work around bogus channel count
...
Initialize the audio_format before calling avcodec_open(), because
avcodec_open() will fill bogus values.
2011-11-28 11:39:21 +01:00
Max Kellermann
6f365c30eb
mapper: check "r" permission on music directory
...
Yet another common support case.
2011-11-28 09:57:21 +01:00
Max Kellermann
718e180423
mapper: check "x" permission on music directory
...
This is a common support case, and hopefully, the new error message
will allow the user to understand the error without requiring support.
2011-11-28 09:51:21 +01:00
Max Kellermann
cead5e5bd7
mapper: fix the bogus "not a directory" error message
...
Use stat() instead of g_file_test() to detect other types of errors,
such as "permission denied".
2011-11-28 09:50:44 +01:00
Max Kellermann
a727d0bb0b
log: print reason for failure
2011-11-28 09:31:43 +01:00
Max Kellermann
0a218ee56a
encoder/wave: support packed 24 bit samples
...
Convert to padded 24 bit samples, instead of falling back to 16 bit.
2011-11-28 09:25:42 +01:00
Max Kellermann
74beefcaf6
encoder/null: use fifo_buffer instead of pcm_buffer
...
This fixes a buffer corruption bug; pcm_buffer is not designed to be a
persistent buffers, and will discard anything between two consecutive
calls.
2011-11-28 09:23:36 +01:00
Max Kellermann
399a3abefc
encoder/wave: use fifo_buffer instead of pcm_buffer
...
This fixes a buffer corruption bug; pcm_buffer is not designed to be a
persistent buffers, and will discard anything between two consecutive
calls.
2011-11-28 09:23:12 +01:00
Max Kellermann
cee5036aca
encoder/flac: use fifo_buffer instead of pcm_buffer
...
This fixes a buffer corruption bug; pcm_buffer is not designed to be a
persistent buffers, and will discard anything between two consecutive
calls.
2011-11-28 09:21:32 +01:00
Max Kellermann
ef40e362c9
decoder_api: cancel initial seek when song is not seekable
...
Fixes assertion failure.
2011-11-27 19:19:43 +01:00
Denis Krjuchkov
6452461c39
path: autodetect filesystem encoding on Win32
...
WinAPI explicitly declares filesystem encoding.
It can be determined by GetACP().
Use that instead of Glib routine that always "detects" UTF-8 on Win32,
which is incorrect for MPD case.
2011-10-23 16:29:58 +02:00
Max Kellermann
545685bc32
audio_format: basic support for floating point samples
...
Support for conversion from float to 16, 24 and 32 bit integer
samples.
2011-10-20 02:32:39 +02:00
Max Kellermann
c30c46cd5f
configure.ac: define WINVER
...
Ensure that WINVER is defined early enough, so other system headers
won't fall back to their default value. Specifically, this solves a
build failure (-Werror) with mingw-w64 ("WINVER redefined").
2011-10-13 09:23:32 +02:00
Max Kellermann
04525c0259
event_pipe: fix WIN32 regression
...
The event pipe is not a socket, and the patch that introduced
g_io_channel_new_socket() to the event pipe library was wrong.
2011-10-13 09:08:37 +02:00
Max Kellermann
b9e99575ce
Merge commit 'release-0.16.5'
...
Conflicts:
NEWS
configure.ac
2011-10-09 16:32:36 +02:00
Avuton Olrich
fa5e06f95d
Modify version string to post-release version 0.16.6~git
2011-10-09 04:44:51 -07:00
Avuton Olrich
3041409334
mpd version 0.16.5
2011-10-09 04:44:51 -07:00
Max Kellermann
b43bf4dd74
Merge branch 'v0.16.x'
2011-10-08 14:50:44 +02:00
Max Kellermann
5ed0eb51d1
output/openal: auto-fallback to mono if channel count is unsupported
...
.. instead of failing playback completely.
2011-10-08 14:41:22 +02:00
Max Kellermann
fa7fa2a55f
playlist_song: allow references to songs outside the musicdir
...
When we have an absolute path that's not inside the music directory,
allow loading it anyway, if we're in "secure" mode (i.e. the client is
connected via UNIX socket).
2011-10-06 22:57:14 +02:00
Max Kellermann
5c0576ca55
Merge branch 'v0.16.x'
...
Conflicts:
configure.ac
src/player_control.c
src/player_thread.c
src/playlist_song.c
2011-10-06 22:45:02 +02:00
Jesús Bravo Álvarez
039b354490
playlist_song: fix absolute path support in playlists
...
Right now, a playlist with absolute pathnames can only add songs that
are in the same the directory of the playlist or under it.
If uri is an absolute pathname and base_uri is set,
playlist_check_translate_song() will check that base_uri is a prefix
of uri, excluding every other song in the music directory outside
base_uri.
I think in this case base_uri should be completely ignored (and made
NULL) and uri should just be checked against music root directory.
2011-10-06 22:21:24 +02:00
Max Kellermann
b2f03e76ff
player_thread: add flag "output_open", fixes assertion failure
...
Previously, the condition "defined(play_audio_format)" was used to see
if an output device has been opened, but if the device had failed on
startup, an assertion failure could occur. This patch adds a separate
flag.
2011-10-06 21:22:48 +02:00
Max Kellermann
8ea6c113b5
player_control: auto-start playback when seeking is requested
...
Now that the player thread can handle SEEK commands while not (yet)
playing, we can remove the "pc.state" check from pc_seek().
2011-10-06 00:35:54 +02:00
Max Kellermann
37f026a0a6
player_thread: handle SEEK while not playing
2011-10-06 00:35:53 +02:00
Max Kellermann
4e909f9411
decoder/dsdiff: new decoder plugin
...
Doesn't seem to work yet, getting just noise from a test file.
Seeking isn't implemented yet.
2011-10-04 21:41:03 +02:00
Steven Blackburn
21851c0673
Add support for streaming to a DLNA client
...
The Naim Uniti does not appear to support icecast-style streaming of FLAC
music but does support the codec from a DLNA server. This change looks for
"transferMode.dlna.org: Streaming" in the HTTP request header and responds
with something the Uniti (and hopefully other DLNA clients) accepts.
The only difference in the DLNA streaming mode is the reponse header and
that icecast metadata is disabled. If a client request indicates both modes
are supported, the DLNA mode is preferred (as the Uniti says it supports
both but then rejects a FLAC ICY stream).
Note: This change may be specific to Naim equipment (the only device it was
tested on). E.g. the hardcoding of Content-Length which works but is not a
logically correct value. The change should be backwards-compatible, so
only those clients requesting a DLNA stream will see any difference.
2011-09-30 08:53:09 +02:00
Miklos Vajna
83f6498aac
Install systemd service file if systemd is available
2011-09-30 08:37:36 +02:00
Max Kellermann
7e219c362c
Merge branch 'v0.16.x'
...
Conflicts:
src/player_thread.c
2011-09-22 00:27:34 +02:00
Max Kellermann
525a791987
decoder_api: emulate SEEK command for initial seek to CUE track
...
When playing a CUE track, the player thread waited for the decoder to
become ready, and then sent a SEEK command to the beginning of the CUE
track. If that is near the start of the song file, and the track is
short enough, the decoder could have finished decoding already at that
point, and seeking fails.
This commit makes this initial seek more robust: instead of letting
the player thread deal with the difficult timings, let the decoder API
emulate a SEEK command, and return it to the decoder plugin, as soon
as the plugin finishes its initialization.
2011-09-22 00:04:48 +02:00
Max Kellermann
a3f7947ad2
server_socket: use resolve_host_port() instead of getaddrinfo()
...
Allow port specification in "bind_to_address" settings.
2011-09-20 21:15:22 +02:00
Max Kellermann
921553d7bb
Merge branch 'v0.16.x'
2011-09-20 08:47:06 +02:00
Max Kellermann
c476819cb1
fd_util: add function close_socket()
...
Wrap close(), use closesocket() on WIN32/WinSock.
2011-09-20 08:38:58 +02:00
Max Kellermann
1d8840412f
configure.ac: add option --enable-solaris-output
...
Allow enabling the plugin explicitly without running Solaris, to test
the build.
2011-09-19 09:39:35 +02:00
Max Kellermann
df1152ee0f
configure.ac: fix solaris result display
...
Wrong variable name.
2011-09-19 09:39:05 +02:00
Max Kellermann
754f26a97c
input_stream: non-blocking I/O
...
Add GMutex, GCond attributes which will be used by callers to
conditionally wait on the stream.
Remove the (now-useless) plugin method buffer(), wait on GCond
instead. Lock the input_stream before each method call. Do the same
with the playlist plugins.
2011-09-16 21:22:13 +02:00
Max Kellermann
87b624f5d5
Merge branch 'v0.16.x'
2011-09-16 07:52:39 +02:00
Max Kellermann
443e96381a
configure.ac: disable assertions in the non-debugging build
...
Add -DNDEBUG to AM_CPPFLAGS.
2011-09-16 07:41:41 +02:00
Max Kellermann
f804a739b1
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-09-15 21:48:33 +02:00
Max Kellermann
724a59aaf7
decoder/ffmpeg: don't require key frame for seeking
...
Use flag AV_TIME_BASE.
2011-09-15 21:32:29 +02:00
Max Kellermann
42d8c2981f
decoder/ffmpeg: higher precision timestamps
2011-09-15 21:30:27 +02:00
Max Kellermann
48a84ca23e
input/rewind: copy the MIME type only once
...
Reduce heap usage by reducing the number of malloc() / free() calls.
2011-09-15 20:24:15 +02:00
Max Kellermann
5cf4ce9318
pcm_format: fix 32-to-24 bit conversion (the "silence" bug)
...
D'oh, we were reading 16 bit integers instead of 32 bit integers!
That caused silence when trying to play a 32 bit input file on a 24
bit sound card (e.g. USB sound chips with 24 bit packed samples).
2011-09-08 23:47:32 +02:00
Max Kellermann
c2c4228722
Merge commit 'release-0.16.4'
...
Conflicts:
NEWS
configure.ac
2011-09-02 06:38:01 +02:00
Avuton Olrich
5469941f2b
Modify version string to post-release version 0.16.5~git
2011-09-01 17:58:29 -07:00
Avuton Olrich
e888c9e827
mpd version 0.16.4
2011-09-01 17:58:28 -07:00
Max Kellermann
3d3bca5338
decoder/oggflac: delete this obsolete plugin
...
libOggFLAC has been deprecated for 5 years now, and we havn't been
testing it for a long time. Let's delete it.
2011-09-01 19:29:04 +02:00
Max Kellermann
6a3008d7ff
Merge branch 'v0.16.x'
...
Conflicts:
configure.ac
src/output_control.c
2011-09-01 19:19:42 +02:00
Max Kellermann
596f36bb78
output/osx: don't drain the buffer when closing
...
Eliminate an unnecessary source of deadlocks.
2011-09-01 18:21:46 +02:00
Max Kellermann
13cdc9a9f8
configure.ac: auto-detect libmad without pkg-config
...
The pkg-config file was added by the Debian package maintainers, and
unfortunately, the rest of the world doesn't have it.
2011-09-01 11:06:08 +02:00
Max Kellermann
e635d47912
configure.ac: use MPD_AUTO_PKG to detect avahi
...
Don't abort the configure script when avahi could not be
auto-detected. It previously did, because there was no custom "fail"
action for PKG_CHECK_MODULES.
2011-09-01 10:11:23 +02:00
Max Kellermann
8b0b4ff086
output_thread: reimplement CANCEL synchronization
...
The output thread could hang indefinitely after finishing CANCEL,
because it could have missed the signal while the output was not
unlocked in ao_command_finished().
This patch removes the wait() call after CANCEL, and adds the flag
"allow_play" instead. While this flag is set, playback is skipped.
With this flag, there will not be any excess wait() call after the
pipe has been cleared.
This patch fixes a bug that causes mpd to discontinue playback after
seeking, due to the race condition described above.
2011-09-01 07:13:21 +02:00
Max Kellermann
11626e48bf
input/curl: implement a hard-coded timeout of 10 seconds
...
Be sure to stop the operation at some point when the server isn't
responding.
2011-08-26 19:28:09 +02:00
Max Kellermann
3b9ffea36f
input/soup: new input plugin based on libsoup
...
To demonstrate the new I/O thread. libsoup is well-integrated into
the GLib main loop, which made this plugin pretty easy to write.
As a side effect, we have to initialize the I/O thread in all debug
programs that use the input API.
2011-08-24 03:33:49 +02:00
Max Kellermann
5ecb6fecc4
Merge branch 'v0.16.x'
2011-08-24 01:47:10 +02:00
Max Kellermann
b3df4dc2c9
output/pulse: fix deadlock when the stream was suspended
...
Check if the stream is suspended; wake up the main loop when it
becomes suspended.
2011-08-23 23:02:13 +02:00
Max Kellermann
25686e5bce
pulse/output: fix deadlock when resuming the stream
...
Unlock the mainloop in all code paths.
2011-08-23 22:45:47 +02:00
Max Kellermann
8d70f808d9
input/curl: limit the receive buffer size
2011-08-23 20:46:51 +02:00
Max Kellermann
b7f435b50e
output/httpd: don't warn on client disconnect
...
This warning should only be logged when we really received something.
When the client disconnects, G_IO_IN is triggered, and the read
returns G_IO_STATUS_EOF.
2011-08-23 18:02:56 +02:00
Max Kellermann
0ea4c970d7
Merge branch 'v0.16.x'
...
Conflicts:
src/player_thread.c
src/playlist_control.c
2011-07-20 21:46:05 +02:00
Max Kellermann
838f7cd210
encoder_plugin: add method pre_tag()
...
In the "vorbis" plugin, this is a copy of the old flush() method,
while flush() gets a lot of code remove, it just sets the "flush" flag
and nothing else. It doesn't start a new stream now, which should fix
a few problems in some players.
2011-07-20 20:54:34 +02:00
Max Kellermann
b2175629fd
update_walk: apply follow_inside_symlinks to absolute symlinks
2011-07-20 14:15:20 +02:00
Max Kellermann
2e28ed8f81
wavpack: obey all decoder commands, stop at CUE track border
...
It used to ignore the decoder_data() return value.
2011-07-20 12:54:30 +02:00
Max Kellermann
d7d717f2ce
playlist_control: don't resume playback when seeking to another song while paused
...
Use a shortcut in playlist_seek_song(), don't call
playlist_play_order() because that would reset the "paused" state.
2011-07-20 11:33:51 +02:00
Max Kellermann
d1eeed6a5b
output/alsa: fix SIGFPE when alsa announces a period size of 0
2011-07-20 06:54:51 +02:00
Max Kellermann
eb2f413cf0
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-07-19 00:24:20 +02:00
Max Kellermann
73f9e17951
NEWS: fix memory leaks
2011-07-18 22:47:51 +02:00
Max Kellermann
6aa6a9c272
decoder/flac: validate the sample rate when scanning the tag
...
Don't calculate the song duration when the sample rate is 0 (division
by zero crash).
2011-07-03 14:57:56 +02:00
oblique
8d1c7ca206
ffmpeg: workaround for semantic API change in recent ffmpeg versions
2011-07-03 14:54:56 +02:00
Avuton Olrich
3c4f4793b5
Modify version string to post-release version 0.16.4~git
2011-06-04 07:37:34 -07:00
Avuton Olrich
e2950a7e4d
mpd version 0.16.3
2011-06-04 07:37:33 -07:00
Max Kellermann
e228caaca6
Merge branch 'v0.16.x'
...
Conflicts:
src/decoder/ffmpeg_decoder_plugin.c
2011-06-03 16:58:09 +02:00
Max Kellermann
4b4aa64261
directory: allow directories with just playlists
...
Keep those when scanning for empty directories. The check in
playlist_vector_is_empty() was missing.
2011-05-09 21:37:43 +02:00
Qball Cow
9ac8f89b1d
cue_tag: show CUE track numbers
2011-05-09 21:26:36 +02:00
Max Kellermann
c74edd0e33
decoder/ffmpeg: use AVIOContext instead of ByteIOContext
2011-05-09 21:23:58 +02:00
Max Kellermann
98acf3f281
input/ffmpeg: use the new AVIOContext API
...
URLContext is deprecated.
2011-05-09 21:23:24 +02:00
Max Kellermann
26735390ff
playlist_song: fix playlist files in base music directory
...
g_path_get_dirname() returns "." when there is no directory name in
the given path. This patch adds a workaround for that.
2011-05-09 18:05:11 +02:00
Max Kellermann
9402b23dd5
playlist_song: fix NULL pointer dereference
2011-05-09 18:03:54 +02:00
Max Kellermann
246db3d565
decoder/ffmpeg: use avcodec_decode_audio3() if available
...
avcodec_decode_audio3() has been added in libavformat 52.25.0, and the
predecessor avcodec_decode_audio2() has been deprecated.
2011-05-09 09:24:17 +02:00
Anton Khirnov
327d41c00f
decoder/ffmpeg: don't use deprecated CODEC_TYPE_AUDIO with new lavc
...
fixes build with lavc 53.
2011-05-09 08:00:45 +02:00
Anton Khirnov
9d91aa23e6
decoder/ffmpeg: drop support for pre-0.5 ffmpeg
...
All modern distros ship 0.5, so there's no need to support old and buggy
ffmpeg versions.
2011-04-12 08:14:14 +02:00
Max Kellermann
c2ada39fd3
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-04-12 08:11:33 +02:00
Max Kellermann
def2fe8805
Merge branch 'v0.15.x' into v0.16.x
...
Conflicts:
NEWS
configure.ac
src/listen.c
2011-04-12 07:39:01 +02:00
Max Kellermann
532f94a187
audio_parser: fix assertion failure in audio format mask parser
...
Use audio_format_mask_valid() to verify a mask.
2011-03-23 22:22:51 +01:00
Simon Kagstrom
a8f891efcd
configure.ac: Enable HAVE_OGG_COMMON when using libtremor
...
Otherwise OGGs can't be played.
2011-03-23 22:09:58 +01:00
Max Kellermann
0c9fc2f809
Merge commit 'release-0.16.2'
...
Conflicts:
Makefile.am
NEWS
configure.ac
2011-03-19 09:58:07 +01:00
Avuton Olrich
b5fc2419e8
Modify version string to post-release version 0.16.3~git
2011-03-18 17:43:11 -07:00
Avuton Olrich
fe588a255b
mpd version 0.16.2
2011-03-18 17:43:11 -07:00
Max Kellermann
b6303313f0
encoder/vorbis: reset the Ogg stream after flush
...
Without the ogg_stream_reset() call, the "e_o_s" flag never gets
reset, and libogg writes EOS packets over and over.
2011-03-16 19:16:06 +01:00
Max Kellermann
a28449a123
encoder/vorbis: reset the Ogg stream after flush
...
Without the ogg_stream_reset() call, the "e_o_s" flag never gets
reset, and libogg writes EOS packets over and over.
2011-03-16 19:13:46 +01:00
Max Kellermann
6dcec36621
Merge release 0.15.16 into v0.16.x
...
Conflicts:
NEWS
configure.ac
src/output/jack_plugin.c
src/update.c
2011-03-16 18:08:54 +01:00
Hans-Kristian Arntzen
1a954748a0
RoarAudio output plugin
2011-03-16 17:57:47 +01:00
Avuton Olrich
84d0fd39a3
Modify version string to post-release version 0.15.17~git
2011-03-13 20:27:33 -07:00
Avuton Olrich
4d4b7e3de0
mpd version 0.15.16
2011-03-13 20:27:33 -07:00
Ulrich Spörlein
e2aea6bce5
output/httpd: include sys/socket.h for AF_UNIX
2011-03-09 19:53:48 +01:00
Ulrich Spörlein
5779146a7f
configure.ac: fix bashism in tremor test
...
This makes FreeBSD detect libogg correctly. The '==' operator is an
undocumented GNU extension to test(1) and cannot be relied upon to
exist and do the right thing. POSIX mandates string comparisons to be
done using "test foo = bar".
2011-03-09 19:50:54 +01:00
Max Kellermann
a1d1c2beaa
output/oss: disable 24 bit playback on FreeBSD
...
See code comment.
2011-02-28 00:09:45 +01:00
Max Kellermann
ee9c60fad4
output/oss: AFMT_S24_PACKED is little-endian
...
According to the Solaris dsp manpage, AFMT_S24_PACKED is
little-endian:
http://download.oracle.com/docs/cd/E19963-01/821-1475/6nmf5baot/index.html
The Minix soundcard.h header says the same.
2011-02-28 00:00:41 +01:00
Max Kellermann
2abad0f479
command: "update" and "rescan" need only "CONTROL" permission
...
From http://bugs.debian.org/513291
"In mpd.conf, the "admin" permission covers updating the db and
killing mpd.
"Since there are quite some usecases in which the user can upload
music to the mpd's directory by means of anonymous FTP or so, it is
desirable that any user may issue a db update, while killing the mpd
should not be possible.
"I'd suggest to remove the db update from the admin group and either
add it to "control" or an own group."
2011-02-27 23:35:00 +01:00
Max Kellermann
1674a4ec82
output/jack: fix crash with mono playback
...
With mono sound, jack_sample_size is smaller than frame_size (4 vs 2
bytes), and "space/jack_sample_size==0". That means mpd_jack_play()
will return 0, although no error has occurred.
2011-02-27 23:26:50 +01:00
Max Kellermann
2fb40fe728
playlist_state: add option "restore_paused"
...
When set, MPD will not auto-start playback on startup; it will be in
"paused" state.
2011-02-23 09:10:23 +01:00
Christopher Brannon
2a1f4539f6
Insure proper initialization of stack-allocated struct.
...
Version 1.0.0 of the libao library added a new field to the
ao_sample_format struct. It is a char * named matrix. When
an ao_sample_format is allocated on the stack, this field contains
garbage. The proper course is to insure that is initialized to NULL.
NULL indicates that we do not want any mapping.
The struct is now initialized using a static initializer, and this
technique is compatible with all known versions of libao.
2011-02-15 12:16:25 +01:00
Thomas Jansen
144d092637
output/shout: add possibility to set url
...
Added a new optional parameter for the shout plugin called "url".
2011-02-09 22:42:51 +01:00
Thomas Jansen
e776c605ad
output/httpd: initialize unflushed_input
...
This fixes the following valgrind warning occuring on the first call of
httpd_output_read_page:
==20124== Conditional jump or move depends on uninitialised value(s)
==20124== at 0x425E65: httpd_output_read_page (httpd_output_plugin.c:240)
==20124== by 0x426087: httpd_output_open (httpd_output_plugin.c:279)
==20124== by 0x41D862: ao_open (output_plugin.h:206)
==20124== by 0x41E133: audio_output_task (output_thread.c:590)
2011-02-09 22:41:36 +01:00
Tony Miller
8b2f4fc823
Set fadeout in gme_decoder_plugin. Due to the nature of the gme library,
...
this needs to be done for the end of songs to be detected.
2011-02-03 00:25:35 +01:00
Max Kellermann
03018611f8
update: log all file permission problems
2011-01-31 09:39:24 +01:00
Max Kellermann
f8b09c194f
protocol: support client-to-client communication
2011-01-29 10:43:54 +01:00
Max Kellermann
c6cbcc2c25
copyright year 2011
2011-01-29 10:13:54 +01:00
Ian Zimmerman
27aa34d4ae
input/curl: enable CURLOPT_NETRC
...
I wanted mpd to play a mp3 stream from a music website. The stream is
only available to subscribers, which restriction is enforced through
normal http authentication. However, the URL I get from the website
is not the final URL of the stream, but a generic URL which points to
the real one through a redirect (code 301). Thus, I cannot predict
the final URL, and so I cannot use the username:password hack to force
the authentication, and mpd (libcurl on mpds behalf) fails to grab the
stream.
libcurl allows the option CURLOPT_NETRC to be set and then the
credentials can be stored in the good old .netrc file (in this case it
would be ~mpd/.netrc, of course). But mpd doesn't set this option. I
think it should.
2011-01-29 08:43:30 +01:00
Dustin Puckett
79e0db4ca0
output/raop: new output plugin
...
Remote Audio Output Protocol (RAOP), for Apple devices.
2011-01-28 21:17:09 +01:00
Max Kellermann
8f99c954ad
NEWS: fix 0.16.1 release year
2011-01-28 21:12:17 +01:00
Max Kellermann
5735c9efc1
configure.ac: fix tremor configure test
...
When the configure options were moved around for 0.16, the order was
changed, and the Tremor check broke.
2011-01-28 12:21:03 +01:00
Yuriy Kaminskiy
9ae3acf2e7
mpg123 decoder: implement seeking
2011-01-21 15:37:08 +01:00
Max Kellermann
2b29ca796e
Merge commit 'release-0.16.1'
...
Conflicts:
NEWS
2011-01-10 11:47:14 +01:00
Avuton Olrich
44b4b50949
Modify version string to post-release version 0.16.2~git
2011-01-09 18:00:12 -08:00
Avuton Olrich
9ad862d3a6
mpd version 0.16.1
2011-01-09 18:00:12 -08:00
Yuriy Kaminskiy
77d71c4ee6
Makefile.am: resolve modplug vs. libsndfile cflags/headers conflict
...
A bit of automake magic (see info automake "Per-Object Flags").
Compile-tested.
2011-01-09 18:21:27 +01:00
Max Kellermann
1a2ea4c06c
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-01-07 23:52:23 +01:00
Max Kellermann
8c0afd8557
Merge branch 'v0.15.x' into v0.16.x
...
Conflicts:
NEWS
configure.ac
src/directory.h
2011-01-07 23:50:23 +01:00
Max Kellermann
2a56300f7b
player_thread: discard empty chunks while cross-fading
...
When a music_chunk to be crossfaded consists only of a tag,
cross-fading is not possible, and led to an assertion failure. This
patch just discards those, as if cross-fading was not enabled.
2011-01-07 23:45:51 +01:00
Max Kellermann
5f06999686
output_thread: fix double lock
...
During the whole output thread, the audio_output object is locked, and
it is only unlocked while waiting for the GCond and while running a
plugin method. The error handler in ao_play_chunk() attempted to lock
the object again, which was code from MPD 0.15.x which should have
been removed a long time ago.
2011-01-07 23:08:18 +01:00
Max Kellermann
4c09aeb5a1
player_thread: fix assertion failure due to early seek
...
Until the decoder plugin has called decoder_initialized(), the player
may not submit seek commands. This however could occur with a slow
decoder and a CUE file with a virtual song offset. This patch adds
another check.
2011-01-07 22:52:50 +01:00
Max Kellermann
0022fb100b
encoder/lame: explicitly configure the output sample rate
...
When you don't explicitly set an output sample rate, liblame tries to
guess an output sample rate from the input sample rate. You would
think that this "guessing" consists of just setting both equal, but
that is not the case. For 44.1kHz at 96kbit/s, liblame chooses
32kHz. This patch explicitly configures the output sample rate, to
stop the bad guessing.
2011-01-07 19:37:39 +01:00
Max Kellermann
b5645ab29f
output/osx: fix up audio format first, then apply it to device
...
This is a MPD 0.16 regression: when playing a 24 bit file, the switch
to 16 bit was made only partially, after mBytesPerPacket and
mBytesPerFrame had already been applied.
That means mBytesPerFrame referred to 24 bit, and mBitsPerChannel
referred to 16 bits. Of course, that cannot work.
2011-01-07 17:31:36 +01:00
Max Kellermann
c44a744c0b
fix version number in NEWS
2011-01-07 17:25:25 +01:00
Max Kellermann
9bf7fde49f
configure.ac: hook the cdio_paranoia input plugin
2010-12-22 09:44:02 +01:00
Max Kellermann
76cddfab90
configure.ac: disable the FFADO plugin by default
...
It is known to crash instantly.
2010-12-22 07:31:17 +01:00
Max Kellermann
42c5788de3
Modify version string to post-release version 0.15.16~git
2010-12-21 20:19:49 +01:00
Max Kellermann
fb00e7fddc
add void casts to suppress "result unused" warnings (clang)
2010-12-21 08:06:02 +01:00
Alex Viskovatoff
41fdcf328c
decoder/mad: work around build failure on Solaris
...
Rename the "version" struct, because it seems to be a reserved name on
Solaris:
"src/decoder/mad_decoder_plugin.c", line 550: (enum) tag redeclared: version
cc: acomp failed for src/decoder/mad_decoder_plugin.c
2010-12-21 07:57:07 +01:00
Greg Ward
80dc602193
osx_output: allow user to specify other audio devices.
...
Add new config parameter 'device' to audio_output type "osx":
- if not supplied or set to "default", open default device
- if set to "system", open system device
- otherwise 'device' should be an audio device name: mpd will find and
open the specified audio device, falling back to the default
device if it's not found
2010-12-21 07:36:28 +01:00
Alex Viskovatoff
144ad7992e
output/solaris: add missing parameter to open_cloexec() call
2010-12-21 07:31:08 +01:00
Alex Viskovatoff
a0dd1a1b8b
audio_check: fix parameter in prototype
2010-12-21 07:29:58 +01:00
Max Kellermann
c360e69162
Modify version string to post-release version 0.16.1~git
2010-12-21 07:29:31 +01:00
Avuton Olrich
c7f5a87258
Modify version string to post-release version 0.17~git
2010-12-11 04:19:49 -08:00
Avuton Olrich
da01c6ef5b
mpd version 0.16
2010-12-11 04:19:49 -08:00
Max Kellermann
748a8a6f42
tag_id3: support multiple values
...
Loop over all frames with a specific id, and import all of them - not
just the first one (index 0).
2010-12-07 18:05:44 +01:00
Max Kellermann
429ed24c99
tag_ape: support multiple values
...
One APE tag may contain more than one value, separated by null bytes.
2010-11-24 08:59:04 +01:00
Max Kellermann
f6bbe1332f
replay_gain_ape: parse replay gain from APE tags
...
Based on the APE reader.
2010-11-18 22:26:06 +01:00
Max Kellermann
f384f8da93
Merge release 0.15.15 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
2010-11-08 18:50:22 +01:00
Max Kellermann
23cd8a74be
mpd version 0.15.15
2010-11-08 18:48:28 +01:00
Max Kellermann
cc1debc948
output/shout: artist comes first in stream title
...
After popular demand, I've switched the order of "artist" and "title"
in the stream title. There is no standard, and there is no reliable
way to parse those from the stream title.
2010-11-08 18:46:14 +01:00
Max Kellermann
ad52eb236d
input/rewind: fix assertion failure
...
The assertion added in MPD 0.15.14 was too much, it failed when the
MIME type of a stream was NULL.
2010-11-08 10:37:09 +01:00
Max Kellermann
4478b3ef74
Merge release 0.15.14 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
src/decoder_control.c
src/decoder_control.h
src/input/rewind_input_plugin.c
src/output_control.c
src/output_thread.c
src/player_thread.c
2010-11-07 15:30:18 +01:00
Avuton Olrich
462bba8e2f
Modify version string to post-release version 0.15.15~git
2010-11-06 14:42:03 -07:00
Avuton Olrich
dec7090198
mpd version 0.15.14
2010-11-06 14:42:02 -07:00
Max Kellermann
83ec0e5552
player_thread: fix assertion failure due to wrong music pipe on seek
...
When one song is played twice, and the decoder is working on the
second "instance", but the first should be seeked, the check in
player_seek_decoder() may assume that it can reuse the decoder without
exchanging pipes. The last thing was the mistake: the pipe pointer
was different, which led to an assertion failure. This patch adds
another check which exchanges the player pipe.
2010-11-05 19:24:42 +01:00
Max Kellermann
a728d7a026
input/rewind: fix double free bug
...
Duplicate the "mime" attribute of the inner input_stream object,
instead of copying the pointer.
2010-11-05 18:39:40 +01:00
Max Kellermann
90dc880e67
output/httpd: implement delay()
2010-11-05 09:49:22 +01:00
Max Kellermann
e11ff967d0
output/shout: implement delay()
...
This makes the plugin more responsive to control commands, because it
will listen to control events while waiting.
2010-11-05 09:49:20 +01:00
Max Kellermann
e8d8bd4c0d
decoder/{mp4ff,ffmpeg}: add extension ".m4b" (audio book)
...
Same as ".m4a".
2010-11-05 02:01:35 +01:00
Max Kellermann
8d5fa754e8
output_thread: fix assertion failure due to race condition in OPEN
...
Change the assertion on "fail_timer==NULL" in OPEN to a runtime check.
This assertion crashed when the output thread failed while the player
thread was calling audio_output_open().
2010-11-04 23:44:23 +01:00
Alder Hornbridge
fe1b626f76
decoder/sidplay: play mus, str, prg, x00 files
2010-10-27 21:18:43 +02:00
Alder Hornbridge
4e94516912
decoder/sidplay: play monaural SID tunes in mono
2010-10-27 21:16:24 +02:00
Max Kellermann
a57f9e712d
Merge release 0.15.13 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
src/input/rewind_input_plugin.c
src/output/httpd_output_plugin.c
2010-10-11 20:33:17 +02:00
Avuton Olrich
a549d871f3
Modify version string to post-release version 0.15.14~git
2010-10-10 09:57:57 -07:00
Avuton Olrich
b552e9a120
mpd version 0.15.13
2010-10-10 09:57:52 -07:00
Max Kellermann
5923cfcde3
output/httpd: MIME type audio/ogg for Ogg Vorbis
...
RFC 5334 10.3 defines the MIME type "audio/ogg". We could use
"application/ogg" as well, but we know for sure that we only emit
audio data.
2010-10-03 16:22:03 +02:00
Thomas Jansen
e3f4c7b91c
input/rewind: enable for MMS
2010-09-28 12:56:47 +02:00
Andrew Morgan
a59ab3e2ee
playlist: make single mode 'sticky'
2010-09-28 12:52:52 +02:00
Thomas Jansen
9af9fd1400
output/httpd: bind_to_address support (including IPv6)
...
Added support for a new optional configuration setting for the httpd output
named "bind_to_address". Setting it to a specific IP address (v4 or v6) will
cause the httpd output to bind to that address exclusively. Supporting
multiple addresses in parallel is future work.
This implements the feature requests #2998 and #2646 .
2010-09-25 15:00:43 +02:00
Thomas Jansen
54294366d5
rewind_input_plugin: Update MIME not only once
...
The assumption that MIME type is set only once is not valid with CURL,
as URL redirections may update the MIME type.
This fixes bug #3044 .
2010-09-23 20:39:13 +02:00
Qball Cow
4a7abc9d44
Correctly terminate stream_title.
...
This caused random data to be send via icy-server if the played
song had no tags.
2010-09-08 13:19:59 +02:00