mirror of https://github.com/thesofproject/sof.git
Audio: SRC: Fix HiFi2 SRC off-by-one frame issue
This patch fixes the FIR compute off-by-one frame bug. The fix is similar as for generic C except that HiFi2 pointers arithmetic is in bytes. Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This commit is contained in:
parent
e76b92bf18
commit
82bdd0f9f0
|
@ -323,8 +323,7 @@ void src_polyphase_stage_cir(struct src_stage_prm *s)
|
||||||
const int blk_out_words = nch * cfg->num_of_subfilters;
|
const int blk_out_words = nch * cfg->num_of_subfilters;
|
||||||
const int sz = sizeof(int32_t);
|
const int sz = sizeof(int32_t);
|
||||||
const int n_sz = -sizeof(int32_t);
|
const int n_sz = -sizeof(int32_t);
|
||||||
const int rewind_sz = sz * (nch * (cfg->blk_in
|
const int rewind_sz = sz * nch * (cfg->blk_in + (cfg->num_of_subfilters - 1) * cfg->idm);
|
||||||
+ (cfg->num_of_subfilters - 1) * cfg->idm) - nch);
|
|
||||||
const int nch_x_idm_sz = -nch * cfg->idm * sizeof(int32_t);
|
const int nch_x_idm_sz = -nch * cfg->idm * sizeof(int32_t);
|
||||||
const int taps_div_4 = cfg->subfilter_length >> 2;
|
const int taps_div_4 = cfg->subfilter_length >> 2;
|
||||||
int32_t *x_rptr = (int32_t *)s->x_rptr;
|
int32_t *x_rptr = (int32_t *)s->x_rptr;
|
||||||
|
@ -449,8 +448,7 @@ void src_polyphase_stage_cir_s16(struct src_stage_prm *s)
|
||||||
const int blk_out_words = nch * cfg->num_of_subfilters;
|
const int blk_out_words = nch * cfg->num_of_subfilters;
|
||||||
const int sz = sizeof(int32_t);
|
const int sz = sizeof(int32_t);
|
||||||
const int n_sz = -sizeof(int32_t);
|
const int n_sz = -sizeof(int32_t);
|
||||||
const int rewind_sz = sz * (nch * (cfg->blk_in
|
const int rewind_sz = sz * nch * (cfg->blk_in + (cfg->num_of_subfilters - 1) * cfg->idm);
|
||||||
+ (cfg->num_of_subfilters - 1) * cfg->idm) - nch);
|
|
||||||
const int nch_x_idm_sz = -nch * cfg->idm * sizeof(int32_t);
|
const int nch_x_idm_sz = -nch * cfg->idm * sizeof(int32_t);
|
||||||
const int taps_div_4 = cfg->subfilter_length >> 2;
|
const int taps_div_4 = cfg->subfilter_length >> 2;
|
||||||
int16_t *x_rptr = (int16_t *)s->x_rptr;
|
int16_t *x_rptr = (int16_t *)s->x_rptr;
|
||||||
|
|
Loading…
Reference in New Issue