diff options
author | James Almer <jamrial@gmail.com> | 2024-01-20 10:58:23 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2024-03-07 08:53:30 -0300 |
commit | 4105899245d79976b4a1a230455066417f3f194d (patch) | |
tree | b632d98f0dc09854cae7e92e8313b176a3b4db67 /libavutil/fifo.c | |
parent | 43c62b11aa9fc1c2cebc5b10c96bb546127fa2e2 (diff) | |
download | ffmpeg-4105899245d79976b4a1a230455066417f3f194d.tar.gz |
avutil: remove deprecated FF_API_FIFO_OLD_API
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavutil/fifo.c')
-rw-r--r-- | libavutil/fifo.c | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/libavutil/fifo.c b/libavutil/fifo.c index b0807abbf7..8806c668d7 100644 --- a/libavutil/fifo.c +++ b/libavutil/fifo.c @@ -290,222 +290,3 @@ void av_fifo_freep2(AVFifo **f) av_freep(f); } } - - -#if FF_API_FIFO_OLD_API -#include "internal.h" -FF_DISABLE_DEPRECATION_WARNINGS -#define OLD_FIFO_SIZE_MAX (size_t)FFMIN3(INT_MAX, UINT32_MAX, SIZE_MAX) - -AVFifoBuffer *av_fifo_alloc_array(size_t nmemb, size_t size) -{ - AVFifoBuffer *f; - void *buffer; - - if (nmemb > OLD_FIFO_SIZE_MAX / size) - return NULL; - - buffer = av_realloc_array(NULL, nmemb, size); - if (!buffer) - return NULL; - f = av_mallocz(sizeof(AVFifoBuffer)); - if (!f) { - av_free(buffer); - return NULL; - } - f->buffer = buffer; - f->end = f->buffer + nmemb * size; - av_fifo_reset(f); - return f; -} - -AVFifoBuffer *av_fifo_alloc(unsigned int size) -{ - return av_fifo_alloc_array(size, 1); -} - -void av_fifo_free(AVFifoBuffer *f) -{ - if (f) { - av_freep(&f->buffer); - av_free(f); - } -} - -void av_fifo_freep(AVFifoBuffer **f) -{ - if (f) { - av_fifo_free(*f); - *f = NULL; - } -} - -void av_fifo_reset(AVFifoBuffer *f) -{ - f->wptr = f->rptr = f->buffer; - f->wndx = f->rndx = 0; -} - -int av_fifo_size(const AVFifoBuffer *f) -{ - return (uint32_t)(f->wndx - f->rndx); -} - -int av_fifo_space(const AVFifoBuffer *f) -{ - return f->end - f->buffer - av_fifo_size(f); -} - -int av_fifo_realloc2(AVFifoBuffer *f, unsigned int new_size) -{ - unsigned int old_size = f->end - f->buffer; - - if (new_size > OLD_FIFO_SIZE_MAX) - return AVERROR(EINVAL); - - if (old_size < new_size) { - size_t offset_r = f->rptr - f->buffer; - size_t offset_w = f->wptr - f->buffer; - uint8_t *tmp; - - tmp = av_realloc(f->buffer, new_size); - if (!tmp) - return AVERROR(ENOMEM); - - // move the data from the beginning of the ring buffer - // to the newly allocated space - // the second condition distinguishes full vs empty fifo - if (offset_w <= offset_r && av_fifo_size(f)) { - const size_t copy = FFMIN(new_size - old_size, offset_w); - memcpy(tmp + old_size, tmp, copy); - if (copy < offset_w) { - memmove(tmp, tmp + copy , offset_w - copy); - offset_w -= copy; - } else - offset_w = old_size + copy; - } - - f->buffer = tmp; - f->end = f->buffer + new_size; - f->rptr = f->buffer + offset_r; - f->wptr = f->buffer + offset_w; - } - return 0; -} - -int av_fifo_grow(AVFifoBuffer *f, unsigned int size) -{ - unsigned int old_size = f->end - f->buffer; - if(size + (unsigned)av_fifo_size(f) < size) - return AVERROR(EINVAL); - - size += av_fifo_size(f); - - if (old_size < size) - return av_fifo_realloc2(f, FFMAX(size, 2*old_size)); - return 0; -} - -/* src must NOT be const as it can be a context for func that may need - * updating (like a pointer or byte counter) */ -int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, - int (*func)(void *, void *, int)) -{ - int total = size; - uint32_t wndx= f->wndx; - uint8_t *wptr= f->wptr; - - if (size > av_fifo_space(f)) - return AVERROR(ENOSPC); - - do { - int len = FFMIN(f->end - wptr, size); - if (func) { - len = func(src, wptr, len); - if (len <= 0) - break; - } else { - memcpy(wptr, src, len); - src = (uint8_t *)src + len; - } - wptr += len; - if (wptr >= f->end) - wptr = f->buffer; - wndx += len; - size -= len; - } while (size > 0); - f->wndx= wndx; - f->wptr= wptr; - return total - size; -} - -int av_fifo_generic_peek_at(AVFifoBuffer *f, void *dest, int offset, int buf_size, void (*func)(void*, void*, int)) -{ - uint8_t *rptr = f->rptr; - - if (offset < 0 || buf_size > av_fifo_size(f) - offset) - return AVERROR(EINVAL); - - if (offset >= f->end - rptr) - rptr += offset - (f->end - f->buffer); - else - rptr += offset; - - while (buf_size > 0) { - int len; - - if (rptr >= f->end) - rptr -= f->end - f->buffer; - - len = FFMIN(f->end - rptr, buf_size); - if (func) - func(dest, rptr, len); - else { - memcpy(dest, rptr, len); - dest = (uint8_t *)dest + len; - } - - buf_size -= len; - rptr += len; - } - - return 0; -} - -int av_fifo_generic_peek(AVFifoBuffer *f, void *dest, int buf_size, - void (*func)(void *, void *, int)) -{ - return av_fifo_generic_peek_at(f, dest, 0, buf_size, func); -} - -int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, - void (*func)(void *, void *, int)) -{ - if (buf_size > av_fifo_size(f)) - return AVERROR(EINVAL); - - do { - int len = FFMIN(f->end - f->rptr, buf_size); - if (func) - func(dest, f->rptr, len); - else { - memcpy(dest, f->rptr, len); - dest = (uint8_t *)dest + len; - } - av_fifo_drain(f, len); - buf_size -= len; - } while (buf_size > 0); - return 0; -} - -/** Discard data from the FIFO. */ -void av_fifo_drain(AVFifoBuffer *f, int size) -{ - av_assert2(av_fifo_size(f) >= size); - f->rptr += size; - if (f->rptr >= f->end) - f->rptr -= f->end - f->buffer; - f->rndx += size; -} -FF_ENABLE_DEPRECATION_WARNINGS -#endif |