diff options
Diffstat (limited to '')
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | src/output/ao_plugin.c | 5 | ||||
-rw-r--r-- | src/output/jack_output_plugin.c | 14 | ||||
-rw-r--r-- | src/pipe.h | 2 | ||||
-rw-r--r-- | src/update_walk.c | 6 |
5 files changed, 23 insertions, 10 deletions
@@ -141,9 +141,13 @@ ver 0.16 (2010/12/11) * make single mode 'sticky' -ver 0.15.16 (2010/??/??) +ver 0.15.16 (2011/03/13) +* output: + - ao: initialize the ao_sample_format struct + - jack: fix crash with mono playback * encoders: - lame: explicitly configure the output sample rate +* update: log all file permission problems ver 0.15.15 (2010/11/08) diff --git a/src/output/ao_plugin.c b/src/output/ao_plugin.c index d5c95018c..6fedbc6e2 100644 --- a/src/output/ao_plugin.c +++ b/src/output/ao_plugin.c @@ -26,6 +26,9 @@ #undef G_LOG_DOMAIN #define G_LOG_DOMAIN "ao" +/* An ao_sample_format, with all fields set to zero: */ +static const ao_sample_format OUR_AO_FORMAT_INITIALIZER; + static unsigned ao_output_ref; struct ao_data { @@ -167,7 +170,7 @@ static bool ao_output_open(void *data, struct audio_format *audio_format, GError **error) { - ao_sample_format format; + ao_sample_format format = OUR_AO_FORMAT_INITIALIZER; struct ao_data *ad = (struct ao_data *)data; switch (audio_format->format) { diff --git a/src/output/jack_output_plugin.c b/src/output/jack_output_plugin.c index 110ee5f26..2767d4eb8 100644 --- a/src/output/jack_output_plugin.c +++ b/src/output/jack_output_plugin.c @@ -40,7 +40,7 @@ enum { MAX_PORTS = 16, }; -static const size_t sample_size = sizeof(jack_default_audio_sample_t); +static const size_t jack_sample_size = sizeof(jack_default_audio_sample_t); struct jack_data { /** @@ -103,9 +103,9 @@ mpd_jack_available(const struct jack_data *jd) min = current; } - assert(min % sample_size == 0); + assert(min % jack_sample_size == 0); - return min / sample_size; + return min / jack_sample_size; } static int @@ -123,7 +123,7 @@ mpd_jack_process(jack_nframes_t nframes, void *arg) const jack_nframes_t available = mpd_jack_available(jd); for (unsigned i = 0; i < jd->audio_format.channels; ++i) jack_ringbuffer_read_advance(jd->ringbuffer[i], - available * sample_size); + available * jack_sample_size); /* generate silence while MPD is paused */ @@ -144,7 +144,7 @@ mpd_jack_process(jack_nframes_t nframes, void *arg) for (unsigned i = 0; i < jd->audio_format.channels; ++i) { out = jack_port_get_buffer(jd->ports[i], nframes); jack_ringbuffer_read(jd->ringbuffer[i], - (char *)out, available * sample_size); + (char *)out, available * jack_sample_size); for (jack_nframes_t f = available; f < nframes; ++f) /* ringbuffer underrun, fill with silence */ @@ -675,7 +675,7 @@ mpd_jack_play(void *data, const void *chunk, size_t size, GError **error_r) space = space1; } - if (space >= frame_size) + if (space >= jack_sample_size) break; /* XXX do something more intelligent to @@ -683,7 +683,7 @@ mpd_jack_play(void *data, const void *chunk, size_t size, GError **error_r) g_usleep(1000); } - space /= sample_size; + space /= jack_sample_size; if (space < size) size = space; diff --git a/src/pipe.h b/src/pipe.h index 7eabb6e54..f9540a30e 100644 --- a/src/pipe.h +++ b/src/pipe.h @@ -20,9 +20,9 @@ #ifndef MPD_PIPE_H #define MPD_PIPE_H -#ifndef NDEBUG #include <stdbool.h> +#ifndef NDEBUG struct audio_format; #endif diff --git a/src/update_walk.c b/src/update_walk.c index 95d5854a8..a1796edcb 100644 --- a/src/update_walk.c +++ b/src/update_walk.c @@ -300,6 +300,9 @@ stat_directory(const struct directory *directory, struct stat *st) if (path_fs == NULL) return -1; ret = stat(path_fs, st); + if (ret < 0) + g_warning("Failed to stat %s: %s", path_fs, g_strerror(errno)); + g_free(path_fs); return ret; } @@ -316,6 +319,9 @@ stat_directory_child(const struct directory *parent, const char *name, return -1; ret = stat(path_fs, st); + if (ret < 0) + g_warning("Failed to stat %s: %s", path_fs, g_strerror(errno)); + g_free(path_fs); return ret; } |