diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c index b2a4bc20fb3bfa41b30e0b797f2119c075c1155e..33301e677e994254572b03d1cd5b2b409f69a5cf 100644 --- a/libavformat/ffmdec.c +++ b/libavformat/ffmdec.c @@ -252,6 +252,8 @@ static void adjust_write_index(AVFormatContext *s) } +static int ffm_close(AVFormatContext *s); + static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap) { FFMContext *ffm = s->priv_data; @@ -381,12 +383,7 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap) ffm->first_packet = 1; return 0; fail: - for(i=0;i<s->nb_streams;i++) { - st = s->streams[i]; - if (st) { - av_free(st); - } - } + ffm_close(s); return -1; }