]> git.sesse.net Git - ffmpeg/commitdiff
avformat/smoothstreaming: Don't write trailer of subcontext
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Fri, 20 Dec 2019 18:26:00 +0000 (19:26 +0100)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sat, 27 Jun 2020 21:17:07 +0000 (23:17 +0200)
Nothing written in avformat_write_trailer() for the submuxers will be
output anyway because the AVIOContexts used for actual output have been
closed before the call. Writing the trailer of the subcontext has probably
only been done in order to free the memory allocated by the submuxer.
And this job has been taken over by the deinit functions.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavformat/smoothstreamingenc.c

index eefc61d08b0096dfd7e7eae85eec0252ffc7602a..6599687681dbb0e37f007a8ad64086e914126e72 100644 (file)
@@ -49,7 +49,6 @@ typedef struct Fragment {
 
 typedef struct OutputStream {
     AVFormatContext *ctx;
-    int ctx_inited;
     char dirname[1024];
     uint8_t iobuf[32768];
     URLContext *out;  // Current output stream where all output is written
@@ -173,8 +172,6 @@ static void ism_free(AVFormatContext *s)
         ffurl_closep(&os->out);
         ffurl_closep(&os->out2);
         ffurl_closep(&os->tail_out);
-        if (os->ctx && os->ctx_inited)
-            av_write_trailer(os->ctx);
         if (os->ctx && os->ctx->pb)
             avio_context_free(&os->ctx->pb);
         avformat_free_context(os->ctx);
@@ -357,7 +354,6 @@ static int ism_write_header(AVFormatContext *s)
         if (ret < 0) {
              goto fail;
         }
-        os->ctx_inited = 1;
         avio_flush(ctx->pb);
         s->streams[i]->time_base = st->time_base;
         if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {