Do not output an extra packet when out_size is reached.
Also return AVERROR_EOF instead of AVERROR(EIO).
---
 libavformat/xa.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/xa.c b/libavformat/xa.c
index 82b703f..aacdd2b 100644
--- a/libavformat/xa.c
+++ b/libavformat/xa.c
@@ -100,8 +100,8 @@ static int xa_read_packet(AVFormatContext *s,
     unsigned int packet_size;
     int ret;
 
-    if(xa->sent_bytes > xa->out_size)
-        return AVERROR(EIO);
+    if (xa->sent_bytes >= xa->out_size)
+        return AVERROR_EOF;
     /* 1 byte header and 14 bytes worth of samples * number channels per block 
*/
     packet_size = 15*st->codec->channels;
 
-- 
1.7.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to