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>
This commit is contained in:
Andreas Rheinhardt 2022-01-13 17:30:53 +01:00
parent 03afa12762
commit 2d71f93c7c
1 changed files with 1 additions and 20 deletions

View File

@ -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,