diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-06-01 00:43:47 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-06-01 00:43:50 +0200 |
commit | ebab902a1c3670c1e445d144f1d4365f32955a85 (patch) | |
tree | 0d7fafd2563d5b40f32c172abc4dceea773336a7 | |
parent | 3bd43430f86d58dac31add7b3913563622430eb1 (diff) | |
parent | bff0349d9da527084e1433167466d8afc9e25c7f (diff) | |
download | ffmpeg-ebab902a1c3670c1e445d144f1d4365f32955a85.tar.gz |
Merge commit 'bff0349d9da527084e1433167466d8afc9e25c7f'
* commit 'bff0349d9da527084e1433167466d8afc9e25c7f':
avio: Add avio_read wrapper to simplify error checking
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/avio_internal.h | 7 | ||||
-rw-r--r-- | libavformat/aviobuf.c | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/libavformat/avio_internal.h b/libavformat/avio_internal.h index 1ed5831e78..ad505673c4 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_siz 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 9701d74f19..aad97ae030 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -580,6 +580,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) { |