opus: fix hybrid folding indexing during band quantization
Resulted in valgrind errors due to uninitialized memory. Also updates fate and makes it use the tron sample result. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
This commit is contained in:
parent
c67c7191b1
commit
4678339e74
@ -481,13 +481,12 @@ void ff_celt_quant_bands(CeltFrame *f, OpusRangeCoder *rc)
|
|||||||
if (i == f->start_band + 1) {
|
if (i == f->start_band + 1) {
|
||||||
/* Special Hybrid Folding (RFC 8251 section 9). Copy the first band into
|
/* Special Hybrid Folding (RFC 8251 section 9). Copy the first band into
|
||||||
the second to ensure the second band never has to use the LCG. */
|
the second to ensure the second band never has to use the LCG. */
|
||||||
int offset = 8 * ff_celt_freq_bands[i];
|
int count = (ff_celt_freq_range[i] - ff_celt_freq_range[i-1]) << f->size;
|
||||||
int count = 8 * (ff_celt_freq_range[i] - ff_celt_freq_range[i-1]);
|
|
||||||
|
|
||||||
memcpy(&norm1[offset], &norm1[offset - count], count * sizeof(float));
|
memcpy(&norm1[band_offset], &norm1[band_offset - count], count * sizeof(float));
|
||||||
|
|
||||||
if (f->channels == 2)
|
if (f->channels == 2)
|
||||||
memcpy(&norm2[offset], &norm2[offset - count], count * sizeof(float));
|
memcpy(&norm2[band_offset], &norm2[band_offset - count], count * sizeof(float));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get a conservative estimate of the collapse_mask's for the bands we're
|
/* Get a conservative estimate of the collapse_mask's for the bands we're
|
||||||
|
@ -24,18 +24,19 @@ FATE_OPUS := $(sort $(FATE_OPUS))
|
|||||||
$(FATE_OPUS): CMP = stddev
|
$(FATE_OPUS): CMP = stddev
|
||||||
$(FATE_OPUS): CMP_UNIT = s16
|
$(FATE_OPUS): CMP_UNIT = s16
|
||||||
$(FATE_OPUS): FUZZ = 3
|
$(FATE_OPUS): FUZZ = 3
|
||||||
fate-opus-testvector01: CMP_TARGET = 0
|
fate-opus-testvector01: CMP_TARGET = 0
|
||||||
fate-opus-testvector02: CMP_TARGET = 191
|
fate-opus-testvector02: CMP_TARGET = 191
|
||||||
fate-opus-testvector03: CMP_TARGET = 139
|
fate-opus-testvector03: CMP_TARGET = 139
|
||||||
fate-opus-testvector04: CMP_TARGET = 119
|
fate-opus-testvector04: CMP_TARGET = 119
|
||||||
fate-opus-testvector05: CMP_TARGET = 109
|
fate-opus-testvector05: CMP_TARGET = 108
|
||||||
fate-opus-testvector06: CMP_TARGET = 109
|
fate-opus-testvector06: CMP_TARGET = 106
|
||||||
fate-opus-testvector07: CMP_TARGET = 0
|
fate-opus-testvector07: CMP_TARGET = 0
|
||||||
fate-opus-testvector08: CMP_TARGET = 6
|
fate-opus-testvector08: CMP_TARGET = 6
|
||||||
fate-opus-testvector09: CMP_TARGET = 0
|
fate-opus-testvector09: CMP_TARGET = 0
|
||||||
fate-opus-testvector10: CMP_TARGET = 38
|
fate-opus-testvector10: CMP_TARGET = 38
|
||||||
fate-opus-testvector11: CMP_TARGET = 0
|
fate-opus-testvector11: CMP_TARGET = 0
|
||||||
fate-opus-testvector12: CMP_TARGET = 160
|
fate-opus-testvector12: CMP_TARGET = 160
|
||||||
|
fate-opus-tron.6ch.tinypkts: CMP_TARGET = 0
|
||||||
|
|
||||||
$(FATE_OPUS_CELT): CMP = oneoff
|
$(FATE_OPUS_CELT): CMP = oneoff
|
||||||
$(FATE_OPUS_CELT): FUZZ = 6
|
$(FATE_OPUS_CELT): FUZZ = 6
|
||||||
|
Loading…
x
Reference in New Issue
Block a user