diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-09-05 23:45:22 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-09-10 13:44:12 +0200 |
commit | 5db09e8930e7914ab3169d26502cb989ec0adc90 (patch) | |
tree | c50969798234ada1ecfcc18a604f195180b4fc75 | |
parent | 848f96a2a6f1f60c8e0539a421d08ce8b4f24139 (diff) |
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 <rcombs@rcombs.me>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r-- | libavformat/segment.c | 17 |
1 files 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; } |