From 34c9c1baf4846a78fd46763fb7a7143120cf5863 Mon Sep 17 00:00:00 2001 From: Aurelien Jacobs Date: Sat, 29 Dec 2007 18:32:47 +0000 Subject: [PATCH] move internal queue freeing code in its own function Originally committed as revision 11350 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/matroskadec.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index a2be2425e..20e071b8d 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -846,6 +846,23 @@ matroska_queue_packet (MatroskaDemuxContext *matroska, matroska->num_packets++; } +/* + * Free all packets in our internal queue. + */ +static void +matroska_clear_queue (MatroskaDemuxContext *matroska) +{ + if (matroska->packets) { + int n; + for (n = 0; n < matroska->num_packets; n++) { + av_free_packet(matroska->packets[n]); + av_free(matroska->packets[n]); + } + av_free(matroska->packets); + matroska->packets = NULL; + } +} + /* * Autodetecting... @@ -2690,13 +2707,7 @@ matroska_read_close (AVFormatContext *s) av_free(matroska->muxing_app); av_free(matroska->index); - if (matroska->packets != NULL) { - for (n = 0; n < matroska->num_packets; n++) { - av_free_packet(matroska->packets[n]); - av_free(matroska->packets[n]); - } - av_free(matroska->packets); - } + matroska_clear_queue(matroska); for (n = 0; n < matroska->num_tracks; n++) { MatroskaTrack *track = matroska->tracks[n]; -- 2.11.0