On Tue, 26 May 2015 14:24:38 +0100 Vittorio Giovara <vittorio.giov...@gmail.com> 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; > + return ret; > +} > + > int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const > unsigned char **data) > { > if (s->buf_end - s->buf_ptr >= size && !s->write_flag) { The name of the function has the wrong color. Wouldn't ffio_read_full() be a better name? _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel