lavf/amr: Return AVERROR_EOF on EOF.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 31 Mar 2017 04:54:01 +0000 (06:54 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 31 Mar 2017 16:19:41 +0000 (18:19 +0200)
Fixes ticket #6280.

libavformat/amr.c

index 59963e1..b5194a2 100644 (file)
@@ -118,7 +118,7 @@ static int amr_read_packet(AVFormatContext *s, AVPacket *pkt)
     AMRContext *amr = s->priv_data;
 
     if (avio_feof(s->pb)) {
-        return AVERROR(EIO);
+        return AVERROR_EOF;
     }
 
     // FIXME this is wrong, this should rather be in an AVParser
@@ -156,6 +156,8 @@ static int amr_read_packet(AVFormatContext *s, AVPacket *pkt)
 
     if (read != size - 1) {
         av_packet_unref(pkt);
+        if (read < 0)
+            return read;
         return AVERROR(EIO);
     }