Module: libav Branch: master Commit: 44272c1cccfb92415801ae60693a7ed04e458916
Author: Luca Barbato <lu_z...@gentoo.org> Committer: Luca Barbato <lu_z...@gentoo.org> Date: Tue Sep 4 16:05:28 2012 +0200 avformat: refactor avformat_close_input Do not crash if the input format is not allocated yet. --- libavformat/utils.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 3a829a9..c0da7f2 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2702,12 +2702,21 @@ void av_close_input_file(AVFormatContext *s) void avformat_close_input(AVFormatContext **ps) { AVFormatContext *s = *ps; - AVIOContext *pb = (s->iformat->flags & AVFMT_NOFILE) || (s->flags & AVFMT_FLAG_CUSTOM_IO) ? - NULL : s->pb; + AVIOContext *pb = s->pb; + + if ((s->iformat && s->iformat->flags & AVFMT_NOFILE) && + (s->flags & AVFMT_FLAG_CUSTOM_IO)) + pb = NULL; + flush_packet_queue(s); - if (s->iformat->read_close) - s->iformat->read_close(s); + + if (s->iformat) { + if (s->iformat->read_close) + s->iformat->read_close(s); + } + avformat_free_context(s); + *ps = NULL; avio_close(pb); _______________________________________________ libav-commits mailing list libav-commits@libav.org https://lists.libav.org/mailman/listinfo/libav-commits