mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-30 23:10:32 +00:00
avcodec/adpcmenc: cleanup trellis checks
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
This commit is contained in:
parent
932edaaa60
commit
e35a0f8f3f
@ -69,25 +69,26 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
|
||||
if (avctx->trellis && (unsigned)avctx->trellis > 16U) {
|
||||
av_log(avctx, AV_LOG_ERROR, "invalid trellis size\n");
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
|
||||
if (avctx->trellis &&
|
||||
(avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_SSI ||
|
||||
avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_APM)) {
|
||||
/*
|
||||
* The current trellis implementation doesn't work for extended
|
||||
* runs of samples without periodic resets. Disallow it.
|
||||
*/
|
||||
av_log(avctx, AV_LOG_ERROR, "trellis not supported\n");
|
||||
return AVERROR_PATCHWELCOME;
|
||||
}
|
||||
|
||||
if (avctx->trellis) {
|
||||
int frontier = 1 << avctx->trellis;
|
||||
int max_paths = frontier * FREEZE_INTERVAL;
|
||||
int frontier, max_paths;
|
||||
|
||||
if ((unsigned)avctx->trellis > 16U) {
|
||||
av_log(avctx, AV_LOG_ERROR, "invalid trellis size\n");
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
|
||||
if (avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_SSI ||
|
||||
avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_APM) {
|
||||
/*
|
||||
* The current trellis implementation doesn't work for extended
|
||||
* runs of samples without periodic resets. Disallow it.
|
||||
*/
|
||||
av_log(avctx, AV_LOG_ERROR, "trellis not supported\n");
|
||||
return AVERROR_PATCHWELCOME;
|
||||
}
|
||||
|
||||
frontier = 1 << avctx->trellis;
|
||||
max_paths = frontier * FREEZE_INTERVAL;
|
||||
if (!FF_ALLOC_TYPED_ARRAY(s->paths, max_paths) ||
|
||||
!FF_ALLOC_TYPED_ARRAY(s->node_buf, 2 * frontier) ||
|
||||
!FF_ALLOC_TYPED_ARRAY(s->nodep_buf, 2 * frontier) ||
|
||||
|
Loading…
Reference in New Issue
Block a user