static void seg_free(AVFormatContext *s)
{
SegmentContext *seg = s->priv_data;
+ SegmentListEntry *cur;
+
ff_format_io_close(s, &seg->list_pb);
if (seg->avf) {
if (seg->is_nullctx)
av_freep(&seg->times);
av_freep(&seg->frames);
av_freep(&seg->cur_entry.filename);
+
+ cur = seg->segment_list_entries;
+ while (cur) {
+ SegmentListEntry *next = cur->next;
+ av_freep(&cur->filename);
+ av_free(cur);
+ cur = next;
+ }
}
static int seg_init(AVFormatContext *s)
{
SegmentContext *seg = s->priv_data;
AVFormatContext *oc = seg->avf;
- SegmentListEntry *cur, *next;
int ret = 0;
if (!oc)
av_opt_free(seg);
- cur = seg->segment_list_entries;
- while (cur) {
- next = cur->next;
- av_freep(&cur->filename);
- av_free(cur);
- cur = next;
- }
-
avformat_free_context(oc);
seg->avf = NULL;
return ret;