From 4105899245d79976b4a1a230455066417f3f194d Mon Sep 17 00:00:00 2001 From: James Almer Date: Sat, 20 Jan 2024 10:58:23 -0300 Subject: [PATCH] avutil: remove deprecated FF_API_FIFO_OLD_API Signed-off-by: James Almer --- libavutil/fifo.c | 219 -------------------------------------------- libavutil/fifo.h | 179 ------------------------------------ libavutil/version.h | 1 - 3 files changed, 399 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 diff --git a/libavutil/fifo.h b/libavutil/fifo.h index 7ac497e8f9..048298214a 100644 --- a/libavutil/fifo.h +++ b/libavutil/fifo.h @@ -239,185 +239,6 @@ void av_fifo_reset2(AVFifo *f); */ void av_fifo_freep2(AVFifo **f); - -#if FF_API_FIFO_OLD_API -typedef struct AVFifoBuffer { - uint8_t *buffer; - uint8_t *rptr, *wptr, *end; - uint32_t rndx, wndx; -} AVFifoBuffer; - -/** - * Initialize an AVFifoBuffer. - * @param size of FIFO - * @return AVFifoBuffer or NULL in case of memory allocation failure - * @deprecated use av_fifo_alloc2() - */ -attribute_deprecated -AVFifoBuffer *av_fifo_alloc(unsigned int size); - -/** - * Initialize an AVFifoBuffer. - * @param nmemb number of elements - * @param size size of the single element - * @return AVFifoBuffer or NULL in case of memory allocation failure - * @deprecated use av_fifo_alloc2() - */ -attribute_deprecated -AVFifoBuffer *av_fifo_alloc_array(size_t nmemb, size_t size); - -/** - * Free an AVFifoBuffer. - * @param f AVFifoBuffer to free - * @deprecated use the AVFifo API with av_fifo_freep2() - */ -attribute_deprecated -void av_fifo_free(AVFifoBuffer *f); - -/** - * Free an AVFifoBuffer and reset pointer to NULL. - * @param f AVFifoBuffer to free - * @deprecated use the AVFifo API with av_fifo_freep2() - */ -attribute_deprecated -void av_fifo_freep(AVFifoBuffer **f); - -/** - * Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied. - * @param f AVFifoBuffer to reset - * @deprecated use av_fifo_reset2() with the new AVFifo-API - */ -attribute_deprecated -void av_fifo_reset(AVFifoBuffer *f); - -/** - * Return the amount of data in bytes in the AVFifoBuffer, that is the - * amount of data you can read from it. - * @param f AVFifoBuffer to read from - * @return size - * @deprecated use av_fifo_can_read() with the new AVFifo-API - */ -attribute_deprecated -int av_fifo_size(const AVFifoBuffer *f); - -/** - * Return the amount of space in bytes in the AVFifoBuffer, that is the - * amount of data you can write into it. - * @param f AVFifoBuffer to write into - * @return size - * @deprecated use av_fifo_can_write() with the new AVFifo-API - */ -attribute_deprecated -int av_fifo_space(const AVFifoBuffer *f); - -/** - * Feed data at specific position from an AVFifoBuffer to a user-supplied callback. - * Similar as av_fifo_gereric_read but without discarding data. - * @param f AVFifoBuffer to read from - * @param offset offset from current read position - * @param buf_size number of bytes to read - * @param func generic read function - * @param dest data destination - * - * @return a non-negative number on success, a negative error code on failure - * - * @deprecated use the new AVFifo-API with av_fifo_peek() when func == NULL, - * av_fifo_peek_to_cb() otherwise - */ -attribute_deprecated -int av_fifo_generic_peek_at(AVFifoBuffer *f, void *dest, int offset, int buf_size, void (*func)(void*, void*, int)); - -/** - * Feed data from an AVFifoBuffer to a user-supplied callback. - * Similar as av_fifo_gereric_read but without discarding data. - * @param f AVFifoBuffer to read from - * @param buf_size number of bytes to read - * @param func generic read function - * @param dest data destination - * - * @return a non-negative number on success, a negative error code on failure - * - * @deprecated use the new AVFifo-API with av_fifo_peek() when func == NULL, - * av_fifo_peek_to_cb() otherwise - */ -attribute_deprecated -int av_fifo_generic_peek(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int)); - -/** - * Feed data from an AVFifoBuffer to a user-supplied callback. - * @param f AVFifoBuffer to read from - * @param buf_size number of bytes to read - * @param func generic read function - * @param dest data destination - * - * @return a non-negative number on success, a negative error code on failure - * - * @deprecated use the new AVFifo-API with av_fifo_read() when func == NULL, - * av_fifo_read_to_cb() otherwise - */ -attribute_deprecated -int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int)); - -/** - * Feed data from a user-supplied callback to an AVFifoBuffer. - * @param f AVFifoBuffer to write to - * @param src data source; non-const since it may be used as a - * modifiable context by the function defined in func - * @param size number of bytes to write - * @param func generic write function; the first parameter is src, - * the second is dest_buf, the third is dest_buf_size. - * func must return the number of bytes written to dest_buf, or <= 0 to - * indicate no more data available to write. - * If func is NULL, src is interpreted as a simple byte array for source data. - * @return the number of bytes written to the FIFO or a negative error code on failure - * - * @deprecated use the new AVFifo-API with av_fifo_write() when func == NULL, - * av_fifo_write_from_cb() otherwise - */ -attribute_deprecated -int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int)); - -/** - * Resize an AVFifoBuffer. - * In case of reallocation failure, the old FIFO is kept unchanged. - * - * @param f AVFifoBuffer to resize - * @param size new AVFifoBuffer size in bytes - * @return <0 for failure, >=0 otherwise - * - * @deprecated use the new AVFifo-API with av_fifo_grow2() to increase FIFO size, - * decreasing FIFO size is not supported - */ -attribute_deprecated -int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size); - -/** - * Enlarge an AVFifoBuffer. - * In case of reallocation failure, the old FIFO is kept unchanged. - * The new fifo size may be larger than the requested size. - * - * @param f AVFifoBuffer to resize - * @param additional_space the amount of space in bytes to allocate in addition to av_fifo_size() - * @return <0 for failure, >=0 otherwise - * - * @deprecated use the new AVFifo-API with av_fifo_grow2(); note that unlike - * this function it adds to the allocated size, rather than to the used size - */ -attribute_deprecated -int av_fifo_grow(AVFifoBuffer *f, unsigned int additional_space); - -/** - * Read and discard the specified amount of data from an AVFifoBuffer. - * @param f AVFifoBuffer to read from - * @param size amount of data to read in bytes - * - * @deprecated use the new AVFifo-API with av_fifo_drain2() - */ -attribute_deprecated -void av_fifo_drain(AVFifoBuffer *f, int size); - -#endif - /** * @} */ diff --git a/libavutil/version.h b/libavutil/version.h index e2281acaec..ff998da987 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -105,7 +105,6 @@ * @{ */ -#define FF_API_FIFO_OLD_API (LIBAVUTIL_VERSION_MAJOR < 59) #define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 59) #define FF_API_OLD_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_MAJOR < 59) #define FF_API_AV_FOPEN_UTF8 (LIBAVUTIL_VERSION_MAJOR < 59)