|
|
@@ -154,6 +154,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) |
|
|
|
return AVERROR(EINVAL); |
|
|
|
} |
|
|
|
avctx->frame_size = 512 * (avctx->sample_rate / 11025); |
|
|
|
avctx->block_align = (2 + avctx->channels * (22 + 4 * (avctx->frame_size - 1)) + 7) / 8; |
|
|
|
break; |
|
|
|
case AV_CODEC_ID_ADPCM_IMA_SSI: |
|
|
|
avctx->frame_size = s->block_size * 2 / avctx->channels; |
|
|
@@ -550,10 +551,8 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, |
|
|
|
samples_p = (int16_t **)frame->extended_data; |
|
|
|
st = avctx->channels == 2; |
|
|
|
|
|
|
|
if (avctx->codec_id == AV_CODEC_ID_ADPCM_SWF) |
|
|
|
pkt_size = (2 + avctx->channels * (22 + 4 * (frame->nb_samples - 1)) + 7) / 8; |
|
|
|
else if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_SSI || |
|
|
|
avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_APM) |
|
|
|
if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_SSI || |
|
|
|
avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_APM) |
|
|
|
pkt_size = (frame->nb_samples * avctx->channels) / 2; |
|
|
|
else |
|
|
|
pkt_size = avctx->block_align; |
|
|
|