+/*****************************************************************************
+ * SplitBuffer: Needed because aout really doesn't like big audio chunk and
+ * wma produces easily > 30000 samples...
+ *****************************************************************************/
+aout_buffer_t *SplitBuffer( decoder_t *p_dec )
+{
+ decoder_sys_t *p_sys = p_dec->p_sys;
+ int i_samples = __MIN( p_sys->i_samples, 4096 );
+ aout_buffer_t *p_buffer;
+
+ if( i_samples == 0 ) return NULL;
+
+ if( ( p_buffer = p_dec->pf_aout_buffer_new( p_dec, i_samples ) ) == NULL )
+ {
+ msg_Err( p_dec, "cannot get aout buffer" );
+ return NULL;
+ }
+
+ p_buffer->start_date = aout_DateGet( &p_sys->end_date );
+ p_buffer->end_date = aout_DateIncrement( &p_sys->end_date, i_samples );
+
+ memcpy( p_buffer->p_buffer, p_sys->p_samples, p_buffer->i_nb_bytes );
+
+ p_sys->p_samples += p_buffer->i_nb_bytes;
+ p_sys->i_samples -= i_samples;
+
+ return p_buffer;
+}
+