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