From 3967f68053979cbd17f499b8d50e3ea859dd23aa Mon Sep 17 00:00:00 2001 From: Joseph Artsimovich Date: Wed, 8 May 2013 13:07:41 +0100 Subject: [PATCH] Better handling for MXF essence reading reaching EOF. If no metadata follows MXF essence, that is essence ends with EOF, "Operation not permitted" error was produced and a non-zero code was returned from ffmpeg executable. Signed-off-by: Michael Niedermayer --- libavformat/mxfdec.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 286a884cc7..5f948fa0e3 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -2210,10 +2210,8 @@ static int mxf_read_packet_old(AVFormatContext *s, AVPacket *pkt) KLVPacket klv; MXFContext *mxf = s->priv_data; - while (!url_feof(s->pb)) { + while (klv_read_packet(&klv, s->pb) == 0) { int ret; - if (klv_read_packet(&klv, s->pb) < 0) - return -1; PRINT_KEY(s, "read packet", klv.key); av_dlog(s, "size %"PRIu64" offset %#"PRIx64"\n", klv.length, klv.offset); if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key)) { @@ -2298,7 +2296,7 @@ static int mxf_read_packet_old(AVFormatContext *s, AVPacket *pkt) skip: avio_skip(s->pb, klv.length); } - return AVERROR_EOF; + return url_feof(s->pb) ? AVERROR_EOF : -1; } static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt)