- /* Fill the buffer with audio data */
- for (j = 0; j < p_buffer->i_nb_samples; j++)
- {
- p_jack_buffer[j] = ((float*)p_buffer->p_buffer)[2*j+i];
- }
- if (p_buffer->i_nb_samples < i_frames)
- {
- msg_Warn( p_aout, "Buffer underrun (%d)",
- i_frames-p_buffer->i_nb_samples );
- memset( p_jack_buffer+j, 0, i_frames-p_buffer->i_nb_samples );
- }
+ for( i = 0; i < p_aout->output.p_sys->i_channels; i++ )
+ {
+ /* Get an output buffer from JACK */
+ p_jack_buffer = jack_port_get_buffer(
+ p_aout->output.p_sys->p_jack_port[i], i_frames );
+
+ /* Fill the buffer with audio data */
+ for( j = 0; j < i_nb_samples; j++ )
+ {
+ p_jack_buffer[j] = ((float*)p_buffer->p_buffer)[2*j+i];
+ }
+ if (i_nb_samples < i_frames)
+ {
+ memset( p_jack_buffer + i_nb_samples, 0,
+ sizeof( jack_default_audio_sample_t ) *
+ (i_frames - i_nb_samples) );