]> git.sesse.net Git - vlc/blobdiff - src/audio_output/aout_s16.c
* Mandatory step for video output IV and the audio output quality
[vlc] / src / audio_output / aout_s16.c
index f833756bbcfa81ea443739ae8695047c732cf23f..a0a41a230d7417a03d677d92631c2e29301bb748 100644 (file)
@@ -2,7 +2,6 @@
  * aout_s16.c: 16 bit signed audio output functions
  *****************************************************************************
  * Copyright (C) 1999, 2000, 2001 VideoLAN
- * $Id: aout_s16.c,v 1.2 2001/03/21 13:42:34 sam Exp $
  *
  * Authors: Michel Kaempf <maxx@via.ecp.fr>
  *
@@ -81,16 +80,44 @@ void aout_S16StereoThread( aout_thread_t * p_aout )
 
         for ( l_buffer = 0; l_buffer < l_buffer_limit; l_buffer++ )
         {
-            ((s16 *)p_aout->buffer)[l_buffer] = (s16)( ( p_aout->s32_buffer[l_buffer] / AOUT_MAX_FIFOS ) * p_aout->vol / 256 ) ;
+            ((s16 *)p_aout->buffer)[l_buffer] =
+                     (s16)( ( p_aout->s32_buffer[l_buffer] / AOUT_MAX_FIFOS )
+                            * p_aout->i_vol / 256 ) ;
             p_aout->s32_buffer[l_buffer] = 0;
         }
 
         l_bytes = p_aout->pf_getbufinfo( p_aout, l_buffer_limit );
-        p_aout->date = mdate() + ((((mtime_t)(l_bytes / 4)) * 1000000) / ((mtime_t)p_aout->l_rate)); /* sizeof(s16) << (p_aout->b_stereo) == 4 */
-        p_aout->pf_play( p_aout, (byte_t *)p_aout->buffer, l_buffer_limit * sizeof(s16) );
+#if 0
+        fprintf(stderr,"l_bytes 1: %li\n",l_bytes);
+        fprintf(stderr,"  playing...\n");
+#endif
+
+        /* sizeof(s16) << (p_aout->b_stereo) == 4 */
+        p_aout->date = mdate() + ((((mtime_t)(l_bytes / 4)) * 1000000)
+                                   / ((mtime_t)p_aout->l_rate));
+        p_aout->pf_play( p_aout, (byte_t *)p_aout->buffer,
+                         l_buffer_limit * sizeof(s16) );
+#if 0
+        fprintf( stderr,"l_bytes #: %li\n",
+                 p_aout->pf_getbufinfo( p_aout, l_buffer_limit ) );
+#endif
+
         if ( l_bytes > (l_buffer_limit * sizeof(s16)) )
         {
             msleep( p_aout->l_msleep );
+#if 0
+            fprintf(stderr,"  sleeping...\n");
+            msleep( p_aout->l_msleep / 2);
+            l_bytes = p_aout->pf_getbufinfo( p_aout, l_buffer_limit );
+            fprintf(stderr,"l_bytes *: %li\n",l_bytes);
+            msleep( p_aout->l_msleep / 2);
+        }
+        else
+        {
+            fprintf(stderr,"  not sleeping.\n");
+            l_bytes = p_aout->pf_getbufinfo( p_aout, l_buffer_limit );
+            fprintf(stderr,"l_bytes 2: %li\n\n",l_bytes);
+#endif
         }
     }