mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
psymodel: Check memory allocation
This commit is contained in:
parent
fef2f4722b
commit
03927cb733
@ -39,6 +39,12 @@ av_cold int ff_psy_init(FFPsyContext *ctx, AVCodecContext *avctx, int num_lens,
|
|||||||
ctx->group = av_mallocz(sizeof(ctx->group[0]) * num_groups);
|
ctx->group = av_mallocz(sizeof(ctx->group[0]) * num_groups);
|
||||||
ctx->bands = av_malloc (sizeof(ctx->bands[0]) * num_lens);
|
ctx->bands = av_malloc (sizeof(ctx->bands[0]) * num_lens);
|
||||||
ctx->num_bands = av_malloc (sizeof(ctx->num_bands[0]) * num_lens);
|
ctx->num_bands = av_malloc (sizeof(ctx->num_bands[0]) * num_lens);
|
||||||
|
|
||||||
|
if (!ctx->ch || !ctx->group || !ctx->bands || !ctx->num_bands) {
|
||||||
|
ff_psy_end(ctx);
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(ctx->bands, bands, sizeof(ctx->bands[0]) * num_lens);
|
memcpy(ctx->bands, bands, sizeof(ctx->bands[0]) * num_lens);
|
||||||
memcpy(ctx->num_bands, num_bands, sizeof(ctx->num_bands[0]) * num_lens);
|
memcpy(ctx->num_bands, num_bands, sizeof(ctx->num_bands[0]) * num_lens);
|
||||||
|
|
||||||
@ -98,6 +104,8 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av
|
|||||||
int i;
|
int i;
|
||||||
float cutoff_coeff = 0;
|
float cutoff_coeff = 0;
|
||||||
ctx = av_mallocz(sizeof(FFPsyPreprocessContext));
|
ctx = av_mallocz(sizeof(FFPsyPreprocessContext));
|
||||||
|
if (!ctx)
|
||||||
|
return NULL;
|
||||||
ctx->avctx = avctx;
|
ctx->avctx = avctx;
|
||||||
|
|
||||||
if (avctx->cutoff > 0)
|
if (avctx->cutoff > 0)
|
||||||
@ -109,6 +117,10 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av
|
|||||||
cutoff_coeff, 0.0, 0.0);
|
cutoff_coeff, 0.0, 0.0);
|
||||||
if (ctx->fcoeffs) {
|
if (ctx->fcoeffs) {
|
||||||
ctx->fstate = av_mallocz(sizeof(ctx->fstate[0]) * avctx->channels);
|
ctx->fstate = av_mallocz(sizeof(ctx->fstate[0]) * avctx->channels);
|
||||||
|
if (!ctx->fstate) {
|
||||||
|
av_free(ctx);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
for (i = 0; i < avctx->channels; i++)
|
for (i = 0; i < avctx->channels; i++)
|
||||||
ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER);
|
ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user