Use more appropriate return values in txd demuxer.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 27 Mar 2010 19:10:24 +0000 (19:10 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 27 Mar 2010 19:10:24 +0000 (19:10 +0000)
Originally committed as revision 22703 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/txd.c

index 0fd33e6..6a06711 100644 (file)
@@ -62,10 +62,10 @@ next_chunk:
     marker     = get_le32(pb);
 
     if (url_feof(s->pb))
-        return AVERROR(EIO);
+        return AVERROR_EOF;
     if (marker != TXD_MARKER && marker != TXD_MARKER2) {
         av_log(s, AV_LOG_ERROR, "marker does not match\n");
-        return AVERROR(EIO);
+        return AVERROR_INVALIDDATA;
     }
 
     switch (id) {
@@ -79,13 +79,15 @@ next_chunk:
             goto next_chunk;
         default:
             av_log(s, AV_LOG_ERROR, "unknown chunk id %i\n", id);
-            return AVERROR(EIO);
+            return AVERROR_INVALIDDATA;
     }
 
     ret = av_get_packet(s->pb, pkt, chunk_size);
+    if (ret < 0)
+        return ret;
     pkt->stream_index = 0;
 
-    return ret <= 0 ? AVERROR(EIO) : ret;
+    return 0;
 }
 
 AVInputFormat txd_demuxer =