* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <string.h>
+
#include "avcodec.h"
#include "psymodel.h"
#include "iirfilter.h"
+#include "libavutil/mem.h"
extern const FFPsyModel ff_aac_psy_model;
ctx->group = av_mallocz(sizeof(ctx->group[0]) * num_groups);
ctx->bands = av_malloc (sizeof(ctx->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->num_bands, num_bands, sizeof(ctx->num_bands[0]) * num_lens);
}
switch (ctx->avctx->codec_id) {
- case CODEC_ID_AAC:
+ case AV_CODEC_ID_AAC:
ctx->model = &ff_aac_psy_model;
break;
}
int i;
float cutoff_coeff = 0;
ctx = av_mallocz(sizeof(FFPsyPreprocessContext));
+ if (!ctx)
+ return NULL;
ctx->avctx = avctx;
if (avctx->cutoff > 0)
cutoff_coeff, 0.0, 0.0);
if (ctx->fcoeffs) {
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++)
ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER);
}
av_freep(&ctx->fstate);
av_free(ctx);
}
-