summaryrefslogtreecommitdiff
path: root/src/libmpg123/layer1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmpg123/layer1.c')
-rw-r--r--src/libmpg123/layer1.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libmpg123/layer1.c b/src/libmpg123/layer1.c
index dd6cef6ac..a4e8075de 100644
--- a/src/libmpg123/layer1.c
+++ b/src/libmpg123/layer1.c
@@ -146,10 +146,15 @@ void do_layer1(metronom_t *metronom, mpgaudio_t *mp, uint32_t pts)
}
}
- if (!mp->is_output_initialized) {
- mp->ao_output->open (metronom, 16, fr->sample_rate,
+ if ((!mp->is_output_initialized) || (mp->sample_rate_device != fr->sample_rate)) {
+
+ if (mp->is_output_initialized)
+ mp->ao_output->close();
+
+ mp->ao_output->open (16, fr->sample_rate,
stereo-1 ? AO_MODE_STEREO: AO_MODE_MONO);
mp->is_output_initialized = 1;
+ mp->sample_rate_device = fr->sample_rate;
printf ("layer1\n");
}