for( unsigned j = 0; j < i_samples; j++ )
for( unsigned i = 0; i < i_nb_channels; i++ )
- p_out[j * i_nb_channels + i] = pp_in[pi_index[i]][j] << shift;
+ {
+ union { int32_t i; uint32_t u; } spl;
+
+ spl.u = ((uint32_t)pp_in[pi_index[i]][j]) << shift;
+ p_out[j * i_nb_channels + i] = spl.i;
+ }
}
/*****************************************************************************
if (i_extra > 42 && !memcmp(p_dec->fmt_in.p_extra, header, 4))
i_extra = 42;
- else if (i_extra > 34 && !memcmp(p_dec->fmt_in.p_extra, header, 4))
+ else if (i_extra > 34 && memcmp(p_dec->fmt_in.p_extra, header, 4))
i_extra = 34;
switch (i_extra) {
((uint8_t*)p_enc->fmt_out.p_extra)[4] |= 0x80;
}
p_sys->i_headers++;
- return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
+ return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
}
p_block = block_Alloc( bytes );
block_ChainAppend( &p_sys->p_chain, p_block );
- return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
+ return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
}
/*****************************************************************************
* EncoderMetadataCallback: called by libflac to output metadata