mirror of https://git.ffmpeg.org/ffmpeg.git
alacenc: do not set bits_per_coded_sample
encoded ALAC does not have a fixed number of bits per sample
This commit is contained in:
parent
43a4cb070b
commit
64fe3eaeb3
|
@ -393,7 +393,6 @@ static av_cold int alac_encode_init(AVCodecContext *avctx)
|
||||||
uint8_t *alac_extradata = av_mallocz(ALAC_EXTRADATA_SIZE+1);
|
uint8_t *alac_extradata = av_mallocz(ALAC_EXTRADATA_SIZE+1);
|
||||||
|
|
||||||
avctx->frame_size = DEFAULT_FRAME_SIZE;
|
avctx->frame_size = DEFAULT_FRAME_SIZE;
|
||||||
avctx->bits_per_coded_sample = DEFAULT_SAMPLE_SIZE;
|
|
||||||
|
|
||||||
if (avctx->sample_fmt != AV_SAMPLE_FMT_S16) {
|
if (avctx->sample_fmt != AV_SAMPLE_FMT_S16) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "only pcm_s16 input samples are supported\n");
|
av_log(avctx, AV_LOG_ERROR, "only pcm_s16 input samples are supported\n");
|
||||||
|
@ -420,18 +419,18 @@ static av_cold int alac_encode_init(AVCodecContext *avctx)
|
||||||
s->rc.k_modifier = 14;
|
s->rc.k_modifier = 14;
|
||||||
s->rc.rice_modifier = 4;
|
s->rc.rice_modifier = 4;
|
||||||
|
|
||||||
s->max_coded_frame_size = 8 + (avctx->frame_size*avctx->channels*avctx->bits_per_coded_sample>>3);
|
s->max_coded_frame_size = 8 + (avctx->frame_size * avctx->channels * DEFAULT_SAMPLE_SIZE >> 3);
|
||||||
|
|
||||||
s->write_sample_size = avctx->bits_per_coded_sample + avctx->channels - 1; // FIXME: consider wasted_bytes
|
s->write_sample_size = DEFAULT_SAMPLE_SIZE + avctx->channels - 1; // FIXME: consider wasted_bytes
|
||||||
|
|
||||||
AV_WB32(alac_extradata, ALAC_EXTRADATA_SIZE);
|
AV_WB32(alac_extradata, ALAC_EXTRADATA_SIZE);
|
||||||
AV_WB32(alac_extradata+4, MKBETAG('a','l','a','c'));
|
AV_WB32(alac_extradata+4, MKBETAG('a','l','a','c'));
|
||||||
AV_WB32(alac_extradata+12, avctx->frame_size);
|
AV_WB32(alac_extradata+12, avctx->frame_size);
|
||||||
AV_WB8 (alac_extradata+17, avctx->bits_per_coded_sample);
|
AV_WB8 (alac_extradata+17, DEFAULT_SAMPLE_SIZE);
|
||||||
AV_WB8 (alac_extradata+21, avctx->channels);
|
AV_WB8 (alac_extradata+21, avctx->channels);
|
||||||
AV_WB32(alac_extradata+24, s->max_coded_frame_size);
|
AV_WB32(alac_extradata+24, s->max_coded_frame_size);
|
||||||
AV_WB32(alac_extradata+28,
|
AV_WB32(alac_extradata+28,
|
||||||
avctx->sample_rate * avctx->channels * avctx->bits_per_coded_sample); // average bitrate
|
avctx->sample_rate * avctx->channels * DEFAULT_SAMPLE_SIZE); // average bitrate
|
||||||
AV_WB32(alac_extradata+32, avctx->sample_rate);
|
AV_WB32(alac_extradata+32, avctx->sample_rate);
|
||||||
|
|
||||||
// Set relevant extradata fields
|
// Set relevant extradata fields
|
||||||
|
|
Loading…
Reference in New Issue