[FFmpeg-devel] [PATCH 2/5] lavc/container_fifo: move to lavu and make public

Alexander Strasser eclipse7 at gmx.net
Sun Dec 15 23:20:28 EET 2024


On 2024-12-11 15:05 +0100, Anton Khirnov wrote:
> This can be useful in other places, e.g. it can replace objpool in
> fftools.
>
> The API is modified in the following nontrivial ways:
> * opaque pointers can be passed through to all user callbacks
> * read and write were previously separate callbacks in order to
>   accomodate the caller wishing to write a new reference to the FIFO and
>   keep the original one; the two callbacks are now merged into one, and
>   a flags argument is added that allows to request such behaviour on a
>   per-call basis
> * new peek and drain functions
> ---
>  doc/APIchanges                             |   5 +-
>  libavcodec/Makefile                        |   2 +-
>  libavcodec/container_fifo.h                |  89 --------------
>  libavcodec/hevc/hevcdec.c                  |  10 +-
>  libavcodec/hevc/hevcdec.h                  |   2 +-
>  libavcodec/hevc/refs.c                     |   4 +-
>  libavutil/Makefile                         |   2 +
>  {libavcodec => libavutil}/container_fifo.c | 116 ++++++++++--------
>  libavutil/container_fifo.h                 | 130 +++++++++++++++++++++
>  9 files changed, 215 insertions(+), 145 deletions(-)
>  delete mode 100644 libavcodec/container_fifo.h
>  rename {libavcodec => libavutil}/container_fifo.c (51%)
>  create mode 100644 libavutil/container_fifo.h
>
> diff --git a/doc/APIchanges b/doc/APIchanges
> index 13789fcea4..5d75b6077d 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -2,10 +2,13 @@ The last version increases of all libraries were on 2024-03-07
>
>  API changes, most recent first:
>
> -2024-12-xx - xxxxxxxxxx - lavu 59.50.100 - refstruct.h
> +2024-12-xx - xxxxxxxxxx - lavu 59.50.100 - refstruct.h container_fifo.h
>    Add a new public header refstruct.h with new API for
>    reference-counted objects.
>
> +  Add a new public header container_fifo.h with new API for
> +  a FIFO of container objects (e.g. AVFrame or AVPacket).

I see this was already pushed.

I wanted to comment mainly because of the naming. Didn't deeply
check the series as a whole, but AFAICS it looks legit.

I find the "container" part of the naming consusing, especially in
a multimedia project.

Didn't yet have brilliant ideas.
Some suggestions to get started follow in no particular order:

* objpool_fifo
* reusable_obj_fifo
* refstruct_fifo


Best regards,
  Alexander


More information about the ffmpeg-devel mailing list