[FFmpeg-devel] [PATCH 1/2] avformat: always unref the packet after parsing

wm4 nfxjfg at googlemail.com
Sun Nov 1 12:57:40 CET 2015


On Sun,  1 Nov 2015 11:21:26 +0100
Hendrik Leppkes <h.leppkes at gmail.com> wrote:

> This fixes a memory leak when side-data is present.
> ---
>  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 */

I thought he semantics of add_to_pktbuf was to transfer packet
ownership if the last parameter is 1?


More information about the ffmpeg-devel mailing list