From ee8df4f4d8e2088da9dbc38e3230fad1de64908f Mon Sep 17 00:00:00 2001 From: Guenter Bartsch Date: Sat, 23 Jun 2001 19:45:47 +0000 Subject: fixed race between metronom and xine engine, small audio plugin api change to improve responsiveness (unfinished), small demux_mpeg_block bugfix (alignment for DVD plugin) CVS patchset: 218 CVS date: 2001/06/23 19:45:47 --- src/libmpg123/layer3.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'src/libmpg123') diff --git a/src/libmpg123/layer3.c b/src/libmpg123/layer3.c index 58c7d018a..88318370f 100644 --- a/src/libmpg123/layer3.c +++ b/src/libmpg123/layer3.c @@ -1600,18 +1600,20 @@ void do_layer3(mpgaudio_t *mp) } } - if ((!mp->is_output_initialized) || (mp->sample_rate_device != fr->sample_rate)) { - - if (mp->is_output_initialized) - mp->ao_output->close(mp->ao_output); + if (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); + + mp->ao_output->open (mp->ao_output, 16, fr->sample_rate, + stereo-1 ? AO_CAP_MODE_STEREO: AO_CAP_MODE_MONO); + mp->is_output_initialized = 1; + mp->sample_rate_device = fr->sample_rate; + } - mp->ao_output->open (mp->ao_output, 16, fr->sample_rate, - stereo-1 ? AO_CAP_MODE_STEREO: AO_CAP_MODE_MONO); - mp->is_output_initialized = 1; - mp->sample_rate_device = fr->sample_rate; + mp->ao_output->write_audio_data (mp->ao_output, (int16_t*)mp->osspace, num_bytes/(stereo-1 ? 4:2), + mp->pts); } - - mp->ao_output->write_audio_data (mp->ao_output, (int16_t*)mp->osspace, num_bytes/(stereo-1 ? 4:2), - mp->pts); mp->pts = 0; } -- cgit v1.2.3