Commit 6dcec366 authored by Max Kellermann's avatar Max Kellermann

Merge release 0.15.16 into v0.16.x

Conflicts: NEWS configure.ac src/output/jack_plugin.c src/update.c
parents e2aea6bc 4d4b7e3d
......@@ -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)
......
......@@ -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) {
......
......@@ -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;
......
......@@ -20,9 +20,9 @@
#ifndef MPD_PIPE_H
#define MPD_PIPE_H
#ifndef NDEBUG
#include <stdbool.h>
#ifndef NDEBUG
struct audio_format;
#endif
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment