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

Reply via email to