On Tue, May 26, 2015 at 2:44 PM, Luca Barbato <[email protected]> wrote: > On 26/05/15 15:24, Vittorio Giovara wrote: >> >> --- >> libavformat/avio_internal.h | 7 +++++++ >> libavformat/aviobuf.c | 8 ++++++++ >> 2 files changed, 15 insertions(+) >> >> diff --git a/libavformat/avio_internal.h b/libavformat/avio_internal.h >> index c8630ab..aff5564 100644 >> --- a/libavformat/avio_internal.h >> +++ b/libavformat/avio_internal.h >> @@ -85,6 +85,13 @@ int ffio_rewind_with_probe_data(AVIOContext *s, >> unsigned char *buf, int buf_size >> >> uint64_t ffio_read_varlen(AVIOContext *bc); >> >> +/** >> + * Read size bytes from AVIOContext into buf. >> + * Check that exactly size bytes have been read. >> + * @return number of bytes read or AVERROR >> + */ >> +int ffio_read_size(AVIOContext *s, unsigned char *buf, int size); >> + >> /** @warning must be called before any I/O */ >> int ffio_set_buf_size(AVIOContext *s, int buf_size); >> >> diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c >> index 59f807c..d3e3452 100644 >> --- a/libavformat/aviobuf.c >> +++ b/libavformat/aviobuf.c >> @@ -496,6 +496,14 @@ int avio_read(AVIOContext *s, unsigned char *buf, int >> size) >> return size1 - size; >> } >> >> +int ffio_read_size(AVIOContext *s, unsigned char *buf, int size) >> +{ >> + int ret = avio_read(s, buf, size); >> + if (ret != size) >> + return AVERROR_INVALIDDATA; > > > you might do > > if (ret < 0) > return ret; > if (ret != size) > return AVERROR_INVALIDDATA;
umh yeah it's better. -- Vittorio _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
