From 5db09e8930e7914ab3169d26502cb989ec0adc90 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 5 Sep 2020 23:45:22 +0200 Subject: [PATCH] avformat/segment: Remove redundant code for freeing in write_trailer This code mostly duplicates code in the deinit function; the only exception is av_opt_free(): The options are freed generically lateron. Reviewed-by: Ridley Combs Signed-off-by: Andreas Rheinhardt --- libavformat/segment.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/libavformat/segment.c b/libavformat/segment.c index 3788d9cf90..7e7128d074 100644 --- a/libavformat/segment.c +++ b/libavformat/segment.c @@ -981,30 +981,21 @@ static int seg_write_trailer(struct AVFormatContext *s) { SegmentContext *seg = s->priv_data; AVFormatContext *oc = seg->avf; - int ret = 0; + int ret; if (!oc) - goto fail; + return 0; if (!seg->write_header_trailer) { if ((ret = segment_end(s, 0, 1)) < 0) - goto fail; + return ret; if ((ret = open_null_ctx(&oc->pb)) < 0) - goto fail; + return ret; seg->is_nullctx = 1; ret = av_write_trailer(oc); - close_null_ctxp(&oc->pb); } else { ret = segment_end(s, 1, 1); } -fail: - if (seg->list) - ff_format_io_close(s, &seg->list_pb); - - av_opt_free(seg); - - avformat_free_context(oc); - seg->avf = NULL; return ret; }