return blocksize;
}
-static int flac_encode_init(AVCodecContext *avctx)
+static av_cold int flac_encode_init(AVCodecContext *avctx)
{
int freq = avctx->sample_rate;
int channels = avctx->channels;
double w;
double c;
+ assert(!(len&1)); //the optimization in r11881 does not support odd len
+ //if someone wants odd len extend the change in r11881
+
n2 = (len >> 1);
c = 2.0 / (len - 1.0);
+
+ w_data+=n2;
+ data+=n2;
for(i=0; i<n2; i++) {
- w = c - i - 1.0;
+ w = c - n2 + i;
w = 1.0 - (w * w);
- w_data[i] = data[i] * w;
- w_data[len-1-i] = data[len-1-i] * w;
+ w_data[-i-1] = data[-i-1] * w;
+ w_data[+i ] = data[+i ] * w;
}
}
put_bits(&s->pb, 16, s->sr_code[1]);
}
flush_put_bits(&s->pb);
- crc = av_crc(av_crc07, 0, s->pb.buf, put_bits_count(&s->pb)>>3);
+ crc = av_crc(av_crc_get_table(AV_CRC_8_ATM), 0,
+ s->pb.buf, put_bits_count(&s->pb)>>3);
put_bits(&s->pb, 8, crc);
}
{
int crc;
flush_put_bits(&s->pb);
- crc = bswap_16(av_crc(av_crc8005, 0, s->pb.buf, put_bits_count(&s->pb)>>3));
+ crc = bswap_16(av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0,
+ s->pb.buf, put_bits_count(&s->pb)>>3));
put_bits(&s->pb, 16, crc);
flush_put_bits(&s->pb);
}
return out_bytes;
}
-static int flac_encode_close(AVCodecContext *avctx)
+static av_cold int flac_encode_close(AVCodecContext *avctx)
{
av_freep(&avctx->extradata);
avctx->extradata_size = 0;