[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