]> git.sesse.net Git - vlc/commitdiff
* ac3_decoder/ac3_decoder.c, audio_output/audio_output.c :
authorMichel Kaempf <maxx@videolan.org>
Wed, 19 Jan 2000 00:01:26 +0000 (00:01 +0000)
committerMichel Kaempf <maxx@videolan.org>
Wed, 19 Jan 2000 00:01:26 +0000 (00:01 +0000)
- modification de la synkro, d�tection de la fr�quence du flux ac3 ;

src/ac3_decoder/ac3_decoder.c
src/audio_output/audio_output.c

index 41d2c9066888122a457f706f81bbefd6a31859da..c80e80208ade135858070e8b2561910e639dfe83 100644 (file)
@@ -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 */
index 2956132bd67be4c743986f766a6b0eaf823be37a..f492fd63396dc7cd9b47e2878e5a5cdcff9fb6f9 100644 (file)
@@ -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 );