summaryrefslogtreecommitdiff
path: root/libavutil/fifo.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-01-13 17:30:53 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-02-07 00:29:05 +0100
commit2d71f93c7c0e4c624df3fd53ba162135b0cbe32a (patch)
treecc2636229e728313aea861c7e24bbae17e67d0ad /libavutil/fifo.c
parent03afa12762f8c07da0706075820d78affaefd5ef (diff)
downloadffmpeg-2d71f93c7c0e4c624df3fd53ba162135b0cbe32a.tar.gz
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>
Diffstat (limited to 'libavutil/fifo.c')
-rw-r--r--libavutil/fifo.c21
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,