[FFmpeg-cvslog] Free AVStream->info in chained muxers

Martin Storsjö git
Fri Feb 4 03:37:01 CET 2011


ffmpeg | branch: master | Martin Storsj? <martin at martin.st> | Wed Feb  2 10:57:26 2011 +0200| [d0d8a9b1384ba3cd465d6ef3439f3979d4518b4b] | committer: Michael Niedermayer

Free AVStream->info in chained muxers

This fixes memory leaks in the RTSP muxer and RTP hinting in the
mov muxer present since SVN rev 25418.

Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
(cherry picked from commit ce41c51b0c71c87f623914ba0786aef325d818fe)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d0d8a9b1384ba3cd465d6ef3439f3979d4518b4b
---

 libavformat/movenchint.c   |    2 ++
 libavformat/rtpenc_chain.c |    1 +
 libavformat/rtsp.c         |    1 +
 3 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/libavformat/movenchint.c b/libavformat/movenchint.c
index 2ebe8b8..2aa0f17 100644
--- a/libavformat/movenchint.c
+++ b/libavformat/movenchint.c
@@ -86,6 +86,7 @@ fail:
     }
     if (track->rtp_ctx && track->rtp_ctx->streams[0]) {
         av_metadata_free(&track->rtp_ctx->streams[0]->metadata);
+        av_free(track->rtp_ctx->streams[0]->info);
         av_free(track->rtp_ctx->streams[0]);
     }
     if (track->rtp_ctx) {
@@ -490,6 +491,7 @@ void ff_mov_close_hinting(MOVTrack *track) {
     }
     av_metadata_free(&rtp_ctx->streams[0]->metadata);
     av_metadata_free(&rtp_ctx->metadata);
+    av_free(rtp_ctx->streams[0]->info);
     av_free(rtp_ctx->streams[0]);
     av_freep(&rtp_ctx);
 }
diff --git a/libavformat/rtpenc_chain.c b/libavformat/rtpenc_chain.c
index 10d9df2..19ea98f 100644
--- a/libavformat/rtpenc_chain.c
+++ b/libavformat/rtpenc_chain.c
@@ -70,6 +70,7 @@ AVFormatContext *ff_rtp_chain_mux_open(AVFormatContext *s, AVStream *st,
             url_close_dyn_buf(rtpctx->pb, &ptr);
             av_free(ptr);
         }
+        av_free(rtpctx->streams[0]->info);
         av_free(rtpctx->streams[0]);
         av_free(rtpctx);
         return NULL;
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index e1d7503..52c686c 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -500,6 +500,7 @@ void ff_rtsp_undo_setup(AVFormatContext *s)
                 }
                 av_metadata_free(&rtpctx->streams[0]->metadata);
                 av_metadata_free(&rtpctx->metadata);
+                av_free(rtpctx->streams[0]->info);
                 av_free(rtpctx->streams[0]);
                 av_free(rtpctx);
             } else if (rt->transport == RTSP_TRANSPORT_RDT && CONFIG_RTPDEC)




More information about the ffmpeg-cvslog mailing list