[FFmpeg-cvslog] avformat: always unref the packet after parsing

Hendrik Leppkes git at videolan.org
Mon Nov 2 09:13:05 CET 2015


ffmpeg | branch: master | Hendrik Leppkes <h.leppkes at gmail.com> | Sun Nov  1 09:47:34 2015 +0100| [b64fe493717cb2f05a019d9f13778382a78d9d0a] | committer: Hendrik Leppkes

avformat: always unref the packet after parsing

This fixes a memory leak when side-data is present.

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

 libavformat/utils.c |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 7e4f54f..3f82659 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1285,12 +1285,11 @@ static int parse_packet(AVFormatContext *s, AVPacket *pkt, int stream_index)
 
         compute_pkt_fields(s, st, st->parser, &out_pkt, next_dts, next_pts);
 
-        if ((ret = add_to_pktbuf(&s->internal->parse_queue, &out_pkt,
-                                 &s->internal->parse_queue_end,
-                                 1))) {
-            av_packet_unref(&out_pkt);
+        ret = add_to_pktbuf(&s->internal->parse_queue, &out_pkt,
+                            &s->internal->parse_queue_end, 1);
+        av_packet_unref(&out_pkt);
+        if (ret < 0)
             goto fail;
-        }
     }
 
     /* end of the stream => close and free the parser */



More information about the ffmpeg-cvslog mailing list