st->codecpar->extradata_size = size - 10 * 4;
if (st->codecpar->extradata) {
av_log(s, AV_LOG_WARNING, "New extradata in strf chunk, freeing previous one.\n");
- av_freep(&st->codecpar->extradata);
}
ret = ff_get_extradata(s, st->codecpar, pb,
st->codecpar->extradata_size);
if (size<(1<<30)) {
if (st->codecpar->extradata) {
av_log(s, AV_LOG_WARNING, "New extradata in strd chunk, freeing previous one.\n");
- av_freep(&st->codecpar->extradata);
}
if ((ret = ff_get_extradata(s, st->codecpar, pb, size)) < 0)
return ret;
return AVERROR_INVALIDDATA;
}
- av_freep(&st->codecpar->extradata);
if ((ret = ff_alloc_extradata(st->codecpar, ALAC_HEADER)) < 0)
return ret;
return AVERROR_PATCHWELCOME;
}
avio_skip(pb, size);
- } else {
- av_freep(&st->codecpar->extradata);
- if ((ret = ff_get_extradata(s, st->codecpar, pb, size)) < 0)
- return ret;
+ } else if ((ret = ff_get_extradata(s, st->codecpar, pb, size)) < 0) {
+ return ret;
}
return 0;
if (st->codecpar->codec_id || !source_st->codecpar->codec_id) {
if (st->codecpar->extradata_size < source_st->codecpar->extradata_size) {
- if (st->codecpar->extradata) {
- av_freep(&st->codecpar->extradata);
- st->codecpar->extradata_size = 0;
- }
ret = ff_alloc_extradata(st->codecpar,
source_st->codecpar->extradata_size);
if (ret < 0)
avio_seek(pb, 12, SEEK_SET);
/* send over abbreviated FLIC header chunk */
- av_freep(&st->codecpar->extradata);
if ((ret = ff_alloc_extradata(st->codecpar, 12)) < 0)
return ret;
memcpy(st->codecpar->extradata, header, 12);
if (!size)
return 0;
- av_freep(&st->codecpar->extradata);
if ((ret = ff_get_extradata(s, st->codecpar, s->pb, size)) < 0)
return ret;
st->internal->need_context_update = 1;
return ret;
if (!output_sample_rate)
output_sample_rate = track->sample_rate; // Space is already reserved, so it's this or a void element.
- av_freep(&par->extradata);
ret = ff_alloc_extradata(par, side_data_size);
if (ret < 0)
return ret;
st->codecpar->codec_id == AV_CODEC_ID_QDMC ||
st->codecpar->codec_id == AV_CODEC_ID_SPEEX) {
// pass all frma atom to codec, needed at least for QDMC and QDM2
- av_freep(&st->codecpar->extradata);
ret = ff_get_extradata(c->fc, st->codecpar, pb, atom.size);
if (ret < 0)
return ret;
av_log(c->fc, AV_LOG_WARNING, "ignoring multiple glbl\n");
return 0;
}
- av_freep(&st->codecpar->extradata);
ret = ff_get_extradata(c->fc, st->codecpar, pb, atom.size);
if (ret < 0)
return ret;
return 0;
avio_seek(pb, 6, SEEK_CUR);
- av_freep(&st->codecpar->extradata);
ret = ff_get_extradata(c->fc, st->codecpar, pb, atom.size - 7);
if (ret < 0)
return ret;
return AVERROR_INVALIDDATA;
avio_skip(pb, 40);
- av_freep(&st->codecpar->extradata);
ret = ff_get_extradata(c->fc, st->codecpar, pb, atom.size - 40);
if (ret < 0)
return ret;
avio_skip(pb, 6);
size = PKTSIZE(avio_rl32(pb));
if (vst && subtype == 'R') {
- if (vst->codecpar->extradata) {
- av_freep(&vst->codecpar->extradata);
- vst->codecpar->extradata_size = 0;
- }
if ((ret = ff_get_extradata(NULL, vst->codecpar, pb, size)) < 0)
return ret;
size = 0;
size -= 52;
if (bytestream2_get_bytes_left(&p) < size)
return AVERROR_INVALIDDATA;
- av_freep(&st->codecpar->extradata);
if ((ret = ff_alloc_extradata(st->codecpar, size)) < 0)
return ret;
bytestream2_get_buffer(&p, st->codecpar->extradata, st->codecpar->extradata_size);
/*gain = AV_RL16(packet + 16);*/
/*channel_map = AV_RL8 (packet + 18);*/
- av_freep(&st->codecpar->extradata);
if ((ret = ff_alloc_extradata(st->codecpar, os->psize)) < 0)
return ret;
size -= 22;
}
if (cbSize > 0) {
- av_freep(&par->extradata);
if (ff_get_extradata(s, par, pb, cbSize) < 0)
return AVERROR(ENOMEM);
size -= cbSize;
int nb_streams, i;
size -= 4;
- av_freep(&par->extradata);
if (ff_get_extradata(s, par, pb, size) < 0)
return AVERROR(ENOMEM);
nb_streams = AV_RL16(par->extradata + 4);
ret = AVERROR_PATCHWELCOME;
goto end;
}
- av_freep(&st->codecpar->extradata);
ret = ff_alloc_extradata(st->codecpar, (get_bits_left(&gb) + 7)/8);
if (ret < 0) {
goto end;
{
/* decode the hexa encoded parameter */
int len = ff_hex_to_data(NULL, value), ret;
- av_freep(&par->extradata);
+
if ((ret = ff_alloc_extradata(par, len)) < 0)
return ret;
ff_hex_to_data(par->extradata, value);
case 4: /* stream with extradata */
if (item_len < 30)
return AVERROR_INVALIDDATA;
- av_freep(&st->codecpar->extradata);
+
ret = ff_alloc_extradata(st->codecpar, 26 + item_len);
if (ret < 0) {
return ret;
len -= 2;
if (config_packet) {
-
- av_freep(&st->codecpar->extradata);
- st->codecpar->extradata_size = 0;
-
if (len < 2 || ff_alloc_extradata(st->codecpar, len + 8))
return AVERROR_INVALIDDATA;
if (!size)
return 0;
- av_freep(&st->codecpar->extradata);
if ((ret = ff_alloc_extradata(st->codecpar, size)) < 0)
return ret;
memcpy(st->codecpar->extradata, data, size);
avpriv_set_pts_info(*st, 64, 1, (*st)->codecpar->sample_rate);
avio_seek(pb, -size, SEEK_CUR);
- av_freep(&(*st)->codecpar->extradata);
if ((ret = ff_get_extradata(s, (*st)->codecpar, pb, size)) < 0)
return ret;
av_assert0(xmv->video.stream_index < s->nb_streams);
if (vst->codecpar->extradata_size < 4) {
- av_freep(&vst->codecpar->extradata);
-
if ((ret = ff_alloc_extradata(vst->codecpar, 4)) < 0)
return ret;
}