}
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 */
{
*/
/*
- 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;
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 );