- st->codecpar->extradata_size = data_size + IFF_EXTRA_VIDEO_SIZE;
- st->codecpar->extradata = av_malloc(data_size + IFF_EXTRA_VIDEO_SIZE + AV_INPUT_BUFFER_PADDING_SIZE);
- if (!st->codecpar->extradata)
- return AVERROR(ENOMEM);
- if (avio_read(pb, st->codecpar->extradata + IFF_EXTRA_VIDEO_SIZE, data_size) < 0)
+ res = ff_alloc_extradata(st->codecpar,
+ data_size + IFF_EXTRA_VIDEO_SIZE);
+ if (res < 0)
+ return res;
+ if (avio_read(pb, st->codecpar->extradata + IFF_EXTRA_VIDEO_SIZE, data_size) < 0) {
+ av_freep(&st->codecpar->extradata);
+ st->codecpar->extradata_size = 0;