]> git.sesse.net Git - vlc/blobdiff - modules/audio_filter/scaletempo.c
Make aout_buffer_t an alias for block_t
[vlc] / modules / audio_filter / scaletempo.c
index 3137bf1cd7468ce1233d7aba5f947aff4207b57a..5eb18505b1e8f65202377f2b32801445a96db401 100644 (file)
@@ -482,8 +482,8 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     aout_filter_sys_t *p = p_filter->p_sys;
 
     if( p_filter->input.i_rate == p->sample_rate ) {
-      memcpy( p_out_buf->p_buffer, p_in_buf->p_buffer, p_in_buf->i_nb_bytes );
-      p_out_buf->i_nb_bytes   = p_in_buf->i_nb_bytes;
+      memcpy( p_out_buf->p_buffer, p_in_buf->p_buffer, p_in_buf->i_buffer );
+      p_out_buf->i_buffer   = p_in_buf->i_buffer;
       p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
       return;
     }
@@ -500,8 +500,14 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                (int)( p->bytes_stride / p->bytes_per_frame ) );
     }
 
-    size_t i_outsize = calculate_output_buffer_size ( p_filter, p_in_buf->i_nb_bytes );
-    if( i_outsize > p_out_buf->i_size ) {
+    size_t i_outsize = calculate_output_buffer_size ( p_filter, p_in_buf->i_buffer );
+    if( i_outsize > p_out_buf->i_buffer ) {
+#if 0   /* FIXME: This requires audio filter2 to work */
+        p_out_buf = block_Realloc( p_out_buf, i_outsize, 0 );
+        if( p_out_buf == NULL )
+            abort();
+#else   /* This fails horribly if we have more than two buffers in the
+         * pipeline, or if the buffer is passed to another thread... XXX */
         void *temp = realloc( p->p_buffers[ p->i_buf ], i_outsize );
         if( temp == NULL )
         {
@@ -510,12 +516,13 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         p->p_buffers[ p->i_buf ] = temp;
         p_out_buf->p_buffer = p->p_buffers[ p->i_buf ];
         p->i_buf = ! p->i_buf;
+#endif
     }
 
     size_t bytes_out = transform_buffer( p_filter,
-        p_in_buf->p_buffer, p_in_buf->i_nb_bytes,
+        p_in_buf->p_buffer, p_in_buf->i_buffer,
         p_out_buf->p_buffer );
 
-    p_out_buf->i_nb_bytes   = bytes_out;
+    p_out_buf->i_buffer   = bytes_out;
     p_out_buf->i_nb_samples = bytes_out / p->bytes_per_frame;
 }