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
Brice Jaglin
1105e61f29
decoder/ffmpeg: support float planar audio
2013-01-16 19:54:54 +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
599a562170
cue_parser: add code comments
2013-01-03 21:38:38 +01:00
Max Kellermann
31da4bc566
cue_parser: fix memory leak
2013-01-03 21:02:59 +01:00
Denis Krjuchkov
01a45a53aa
cmdline: bunch of fixes related to config file selection
...
- fix potential memory leak of system_path
'Potential' because currently g_get_system_config_dirs()
returns single entry on Windows, but that might change.
- remove incorrect g_free() call
It's not required at all because
g_get_system_config_dirs() returns GLib owned memory.
- remove extra semicolon
2013-01-03 19:45:51 +01:00
Max Kellermann
8fb20fcdf8
playlist_song: fix potential charset bug in apply_song_metadata()
...
The song's URI must be UTF-8, not filesystem character set.
2012-10-05 17:01:04 +02:00
Max Kellermann
72bf226608
playlist_save: use temp2 instead of temp
...
Fixes minor Windows compatibility problem.
2012-10-05 16:55:30 +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
1dc27be015
decoder/ffmpeg: fix playback of planar PCM data
...
Interleaving was completely wrong. This code was never used, so it
didn't have an effect.
2012-10-05 16:38:55 +02:00
Max Kellermann
230a3eb400
decoder/ffmpeg: move code to copy_interleave_frame2()
2012-10-05 16:37:07 +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
fd016f4507
decoder/ffmpeg: show unsupported sample format name
...
Use av_get_sample_fmt_string() to obtain a human-readable string.
2012-10-05 15:24:53 +02:00
Max Kellermann
9d728b365d
decoder/ffmpeg: pass AVSampleFormat to ffmpeg_sample_format()
...
API simplification.
2012-10-05 15:14:57 +02:00
Max Kellermann
ddc0283339
decoder/ffmpeg: remove duplicate sample format error message
2012-10-05 14:52:30 +02:00
Gregory Smith
03a401e477
OSX: Set mDataByteSize correctly on AudioBuffers during render.
2012-10-02 17:27:52 +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
58e600f408
output/recorder: move code to _write_to_file()
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
fbcbcdc001
output/recorder: make variables more local
2012-10-02 00:20:32 +02:00
Max Kellermann
4227a325a5
output/httpd: make variables more local
2012-10-02 00:20:13 +02:00
Max Kellermann
d115507502
encoder/vorbis: make variables more local
2012-10-02 00:20:01 +02:00
Max Kellermann
43d8252050
output/recorder, test/*: invoke encoder_read() after _open()
...
Make sure the file header gets written at the beginning, before
_write() gets called.
2012-10-02 00:18:18 +02:00
Max Kellermann
674b4ab647
output/shout: eliminate struct shout_buffer
...
Move the raw buffer to struct shout_data.
2012-10-02 00:18:04 +02:00
Max Kellermann
fe8fc1081a
output/shout: remove shout_buffer.len
...
Make it a local variable instead.
2012-10-02 00:17:53 +02:00
Max Kellermann
c7748fedab
output/shout: fix memory leak in error handler
2012-10-02 00:17:27 +02:00
Max Kellermann
c392efb481
output/shout: make variables more local
2012-10-02 00:17:17 +02:00
Max Kellermann
ba6ef53ef9
decoder_control: remove MixRamp debug messages
...
These are confusing, and since MixRamp development has ceased, not
useful to anybody.
2012-09-25 11:08:16 +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
04c02a1eb8
locate: cast enum tag_type to int before comparing with integer
...
Avoids clang pickiness. This code is not correct, but we'll fix that
another day.
2012-09-22 09:48:27 +02:00
Max Kellermann
41487426f5
decoder/_ogg_common: fix buffer size check
...
Fixes potential access to uninitialised memory.
2012-09-04 11:22:15 +02:00
Max Kellermann
0d24250aa7
decoder/_ogg_common: simplify the large "if" expression
2012-09-04 11:22:05 +02:00
Max Kellermann
013e8479af
AudioCompress: abort on out-of-memory
...
This library crashes on out-of-memory (NULL pointer dereference).
There's not much useful MPD can do in such a situation, so let's
explicitly abort instead, just like GLib does.
2012-09-03 22:45:33 +02:00
Max Kellermann
27535a7f78
update_walk: fix unsafe readlink() usage
2012-09-03 22:41:04 +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
66ecf39efe
command: make "single" a bool
2012-08-21 19:38:08 +02:00
Max Kellermann
5ad21d7e98
queue_save: save song priorities
2012-08-21 19:17:14 +02:00
Max Kellermann
ef5125f8f4
playlist_print: fix memory leak
2012-08-16 00:01:01 +02:00
Max Kellermann
bf2e07074b
playlist_song: pass const song to _check_load_song()
2012-08-16 00:00:50 +02:00
Max Kellermann
20695ef369
playlist_song: fix user-after-free bug
2012-08-16 00:00:21 +02:00
Max Kellermann
9374e0f445
player_thread: add local variable "start_ms"
...
Just in case "song" becomes invalid at some point.
2012-08-15 22:51:48 +02:00
Max Kellermann
19ed233118
playlist: fix unprotected player_control access
2012-08-15 22:47:08 +02:00
Max Kellermann
faa4fff4dd
filter/volume: include cleanup
2012-08-15 22:45:03 +02:00
Max Kellermann
2276e7677b
mapper: fix potential crash in file permission check
2012-08-15 22:44:13 +02:00
Max Kellermann
4a993cd79e
decoder/fluidsynth: add "sample_rate" setting
2012-08-15 00:57:32 +02:00
Max Kellermann
02325d2ede
decoder/fluidsynth: add "soundfont" setting
...
Replaces the old global "soundfont" which never worked.
2012-08-15 00:51:45 +02:00
Max Kellermann
9c83464b95
configure.ac: auto-detect libfluidsynth
...
Now that the libfluidsynth API was sanitized, we can enable the plugin
automatically if libfluidsynth is installed.
2012-08-15 00:48:52 +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
c31d11bfe0
decoder/fluidsynth: don't duplicate path
...
The libfluidsynth now accepts const strings.
2012-08-15 00:39:22 +02:00