Commit 0403beaa authored by aurel's avatar aurel

move internal queue freeing code in its own function

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@11350 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 22423779
...@@ -846,6 +846,23 @@ matroska_queue_packet (MatroskaDemuxContext *matroska, ...@@ -846,6 +846,23 @@ matroska_queue_packet (MatroskaDemuxContext *matroska,
matroska->num_packets++; 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... * Autodetecting...
...@@ -2690,13 +2707,7 @@ matroska_read_close (AVFormatContext *s) ...@@ -2690,13 +2707,7 @@ matroska_read_close (AVFormatContext *s)
av_free(matroska->muxing_app); av_free(matroska->muxing_app);
av_free(matroska->index); av_free(matroska->index);
if (matroska->packets != NULL) { matroska_clear_queue(matroska);
for (n = 0; n < matroska->num_packets; n++) {
av_free_packet(matroska->packets[n]);
av_free(matroska->packets[n]);
}
av_free(matroska->packets);
}
for (n = 0; n < matroska->num_tracks; n++) { for (n = 0; n < matroska->num_tracks; n++) {
MatroskaTrack *track = matroska->tracks[n]; MatroskaTrack *track = matroska->tracks[n];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment