It's simpler and less error-prone.
Fixes some memleaks along the way.
avctx->codec->close(avctx);
avcodec_default_free_buffers(avctx);
avctx->coded_frame = NULL;
+ if (avctx->codec->priv_class)
+ av_opt_free(avctx->priv_data);
+ av_opt_free(avctx);
av_freep(&avctx->priv_data);
if(avctx->codec && avctx->codec->encode)
av_freep(&avctx->extradata);
last_frame_time = 0;
out:
- av_freep(&s->video_size);
- av_freep(&s->framerate);
return ret;
}
int ret, flags = O_RDONLY;
ret = av_parse_video_rate(&fbdev->fps, fbdev->framerate);
- av_freep(&fbdev->framerate);
if (ret < 0) {
av_log(avctx, AV_LOG_ERROR, "Couldn't parse framerate.\n");
return ret;
*select_fps = fps;
*select_fmt = fmt;
out:
- av_freep(&dc1394->video_size);
- av_freep(&dc1394->pixel_format);
- av_freep(&dc1394->framerate);
return ret;
}
st->codec->bit_rate = s->frame_size * 1/av_q2d(st->codec->time_base) * 8;
out:
- av_freep(&s->video_size);
- av_freep(&s->pixel_format);
- av_freep(&s->standard);
- av_freep(&s->framerate);
return res;
}
pktl = next;
}
- av_freep(&ctx->video_size);
- av_freep(&ctx->framerate);
-
return 0;
}
st->codec->bit_rate = x11grab->frame_size * 1/av_q2d(x11grab->time_base) * 8;
out:
- av_freep(&x11grab->video_size);
- av_freep(&x11grab->framerate);
return ret;
}
st->codec->height = height;
st->codec->pix_fmt = pix_fmt;
fail:
- av_freep(&s1->video_size);
- av_freep(&s1->pixel_format);
- av_freep(&s1->framerate);
return ret;
}
default:
av_set_pts_info(st, 64, 1, 1200000);
fail:
- av_freep(&s1->framerate);
return ret;
}
}
fail:
- av_freep(&s->video_size);
return ret;
}
int i;
AVStream *st;
+ av_opt_free(s);
+ if (s->iformat && s->iformat->priv_class)
+ av_opt_free(s->priv_data);
+
for(i=0;i<s->nb_streams;i++) {
/* free all data in a stream component */
st = s->streams[i];
}
av_freep(&s->chapters);
av_metadata_free(&s->metadata);
- av_freep(&s->key);
av_freep(&s->streams);
av_free(s);
}
av_freep(&s->streams[i]->priv_data);
av_freep(&s->streams[i]->index_entries);
}
+ if (s->iformat && s->iformat->priv_class)
+ av_opt_free(s->priv_data);
av_freep(&s->priv_data);
return ret;
}