diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-01-13 17:30:53 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-02-07 00:29:05 +0100 |
commit | 2d71f93c7c0e4c624df3fd53ba162135b0cbe32a (patch) | |
tree | cc2636229e728313aea861c7e24bbae17e67d0ad | |
parent | 03afa12762f8c07da0706075820d78affaefd5ef (diff) |
avutil/fifo: Use av_fifo_generic_peek_at() for av_fifo_generic_peek()
Avoids code duplication. It furthermore properly checks
for buf_size to be > 0 before doing anything.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavutil/fifo.c | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/libavutil/fifo.c b/libavutil/fifo.c index d741bdd395..e1f2175530 100644 --- a/libavutil/fifo.c +++ b/libavutil/fifo.c @@ -194,26 +194,7 @@ int av_fifo_generic_peek_at(AVFifoBuffer *f, void *dest, int offset, int buf_siz int av_fifo_generic_peek(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void *, void *, int)) { - uint8_t *rptr = f->rptr; - - if (buf_size > av_fifo_size(f)) - return AVERROR(EINVAL); - - do { - int len = FFMIN(f->end - rptr, buf_size); - if (func) - func(dest, rptr, len); - else { - memcpy(dest, rptr, len); - dest = (uint8_t *)dest + len; - } - rptr += len; - if (rptr >= f->end) - rptr -= f->end - f->buffer; - buf_size -= len; - } while (buf_size > 0); - - return 0; + return av_fifo_generic_peek_at(f, dest, 0, buf_size, func); } int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, |