- p_dec->p_fifo->p_vlc->pf_memcpy( p_dest, p_data->p_payload_start,
- p_data->p_payload_end - p_data->p_payload_start );
- p_dest += p_data->p_payload_end - p_data->p_payload_start;
- p_data = p_data->p_next;
+ uint8_t *p_out = p_aout_buffer->p_buffer;
+
+ while( p_block->i_buffer / 10 )
+ {
+ /* Sample 1 */
+ p_out[0] = p_block->p_buffer[0];
+ p_out[1] = p_block->p_buffer[1];
+ p_out[2] = p_block->p_buffer[8] & 0xF0;
+ /* Sample 2 */
+ p_out[3] = p_block->p_buffer[2];
+ p_out[4] = p_block->p_buffer[3];
+ p_out[5] = p_block->p_buffer[8] << 4;
+ /* Sample 3 */
+ p_out[6] = p_block->p_buffer[4];
+ p_out[7] = p_block->p_buffer[5];
+ p_out[8] = p_block->p_buffer[9] & 0xF0;
+ /* Sample 4 */
+ p_out[9] = p_block->p_buffer[6];
+ p_out[10] = p_block->p_buffer[7];
+ p_out[11] = p_block->p_buffer[9] << 4;
+
+ p_block->i_buffer -= 10;
+ p_block->p_buffer += 10;
+ p_out += 12;
+ }
+ }
+ else
+ {
+ memcpy( p_aout_buffer->p_buffer,
+ p_block->p_buffer, p_block->i_buffer );