int opus_projection_decode_float(OpusProjectionDecoder *st, const unsigned char *data, opus_int32 len, float *pcm, int frame_size, int decode_fec) { return opus_multistream_decode_native(get_multistream_decoder(st), data, len, pcm, opus_projection_copy_channel_out_float, frame_size, decode_fec, 0, get_demixing_matrix(st)); }
int opus_multistream_decode_float( OpusMSDecoder *st, const unsigned char *data, opus_int32 len, float *pcm, int frame_size, int decode_fec ) { return opus_multistream_decode_native(st, data, len, pcm, frame_size, decode_fec); }
int opus_multistream_decode( OpusMSDecoder *st, const unsigned char *data, opus_int32 len, opus_int16 *pcm, int frame_size, int decode_fec ) { return opus_multistream_decode_native(st, data, len, pcm, opus_copy_channel_out_short, frame_size, decode_fec, 0); }
int opus_multistream_decode(OpusMSDecoder *st, const unsigned char *data, opus_int32 len, opus_int16 *pcm, int frame_size, int decode_fec) { VARDECL(float, out); int ret, i; ALLOC_STACK; ALLOC(out, frame_size*st->layout.nb_channels, float); ret = opus_multistream_decode_native(st, data, len, out, frame_size, decode_fec); if (ret > 0) { for (i=0;i<ret*st->layout.nb_channels;i++) pcm[i] = FLOAT2INT16(out[i]); } RESTORE_STACK; return ret; }