diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2001-05-06 16:56:01 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2001-05-06 16:56:01 +0000 |
commit | a3801dae20515db5ba2da755a99b5470df9e8c5d (patch) | |
tree | 248daad5e9c95a52542603095de5677d5df6eb06 /src/libmpg123/layer2.c | |
parent | 0f52a1b976833f18ab46d2754fc28fa145b9a536 (diff) | |
download | xine-lib-a3801dae20515db5ba2da755a99b5470df9e8c5d.tar.gz xine-lib-a3801dae20515db5ba2da755a99b5470df9e8c5d.tar.bz2 |
sample rate handling for streams that change their sample rate at some points
CVS patchset: 66
CVS date: 2001/05/06 16:56:01
Diffstat (limited to 'src/libmpg123/layer2.c')
-rw-r--r-- | src/libmpg123/layer2.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/libmpg123/layer2.c b/src/libmpg123/layer2.c index 738825995..42d680273 100644 --- a/src/libmpg123/layer2.c +++ b/src/libmpg123/layer2.c @@ -286,13 +286,17 @@ void do_layer2(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 ("layer2\n"); - } mp->ao_output->write_audio_data (metronom, (int16_t*)mp->osspace, num_bytes/(stereo-1 ? 4:2), pts); |