From a47bce5ff4348f9628028b361f4ce838e5ff2939 Mon Sep 17 00:00:00 2001 From: Michel Kaempf Date: Wed, 19 Jan 2000 00:01:26 +0000 Subject: [PATCH] =?UTF-8?q?*=20ac3=5Fdecoder/ac3=5Fdecoder.c,=20audio=5Fou?= =?UTF-8?q?tput/audio=5Foutput.c=20:=20-=20modification=20de=20la=20synkro?= =?UTF-8?q?,=20d=EF=BF=BDtection=20de=20la=20fr=EF=BF=BDquence=20du=20flux?= =?UTF-8?q?=20ac3=20;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ac3_decoder/ac3_decoder.c | 20 ++++++++++++++++++++ src/audio_output/audio_output.c | 6 ++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/ac3_decoder/ac3_decoder.c b/src/ac3_decoder/ac3_decoder.c index 41d2c90668..c80e80208a 100644 --- a/src/ac3_decoder/ac3_decoder.c +++ b/src/ac3_decoder/ac3_decoder.c @@ -214,6 +214,26 @@ static void RunThread( ac3dec_thread_t * p_ac3dec ) } parse_syncinfo( p_ac3dec ); +/* + switch ( p_ac3dec->syncinfo.fscod ) + { + case 0: + p_ac3dec->p_aout_fifo->l_rate = 48000; + break; + + case 1: + p_ac3dec->p_aout_fifo->l_rate = 44100; + break; + + case 2: + p_ac3dec->p_aout_fifo->l_rate = 32000; + break; + + default: + fprintf( stderr, "ac3dec debug: fscod == `11' (reserved)\n" ); + break; + } +*/ parse_bsi( p_ac3dec ); /* frame 1 */ diff --git a/src/audio_output/audio_output.c b/src/audio_output/audio_output.c index 2956132bd6..f492fd6339 100644 --- a/src/audio_output/audio_output.c +++ b/src/audio_output/audio_output.c @@ -504,9 +504,10 @@ static __inline__ int NextFrame( aout_thread_t * p_aout, aout_fifo_t * p_fifo/*, { */ /* - if ( p_fifo->date[p_fifo->l_next_frame] - p_fifo->date[p_fifo->l_start_frame] > 1000000 ) + if ( (p_fifo->date[p_fifo->l_next_frame] - p_fifo->date[p_fifo->l_start_frame] > 1000000) || (p_fifo->date[p_fifo->l_next_frame] <= p_fifo->date[p_fifo->l_start_frame]) ) { - p_fifo->date[p_fifo->l_start_frame] = p_fifo->date[p_fifo->l_next_frame] - ((1000000 * AOUT_FRAME_SIZE * ((mtime_t)((p_fifo->l_next_frame - p_fifo->l_start_frame) & AOUT_FIFO_SIZE)) >> p_fifo->b_stereo) / ((mtime_t)p_fifo->l_rate)); + fprintf( stderr, "aout debug: p_fifo->l_rate == %li\n", p_fifo->l_rate ); + p_fifo->date[p_fifo->l_start_frame] = p_fifo->date[p_fifo->l_next_frame] - ((1000000 * ((mtime_t)(p_fifo->l_frame_size * ((p_fifo->l_next_frame - p_fifo->l_start_frame) & AOUT_FIFO_SIZE))) >> p_fifo->b_stereo) / ((mtime_t)p_fifo->l_rate)); } */ p_fifo->b_next_frame = 1; @@ -540,6 +541,7 @@ static __inline__ int NextFrame( aout_thread_t * p_aout, aout_fifo_t * p_fifo/*, l_rate = (long)( ((mtime_t)l_units * 1000000) / (p_fifo->date[p_fifo->l_next_frame] - p_fifo->date[p_fifo->l_start_frame]) ); +// fprintf( stderr, "aout debug: l_rate == %li\n", l_rate ); InitializeIncrement( &p_fifo->unit_increment, l_rate, p_aout->dsp.l_rate );