Make get_buffer and get_partial_buffer return url_ferror or AVERROR_EOF as

appropriate if it couldn't read any data at all.
This should make handling of EOF and error simpler or make it work right without
extra code in a few place (e.g. raw demuxer).

Originally committed as revision 20135 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Reimar Döffinger 2009-10-02 06:36:39 +00:00
parent de27f4d957
commit 7f7686dfb1

View File

@ -415,6 +415,10 @@ int get_buffer(ByteIOContext *s, unsigned char *buf, int size)
size -= len;
}
}
if (size1 == size) {
if (url_ferror(s)) return url_ferror(s);
if (url_feof(s)) return AVERROR_EOF;
}
return size1 - size;
}
@ -434,6 +438,10 @@ int get_partial_buffer(ByteIOContext *s, unsigned char *buf, int size)
len = size;
memcpy(buf, s->buf_ptr, len);
s->buf_ptr += len;
if (!len) {
if (url_ferror(s)) return url_ferror(s);
if (url_feof(s)) return AVERROR_EOF;
}
return len;
}