[FFmpeg-devel] [PATCH v1 8/8] avcodec/apv_decoder: Provided support for APV decoder

Mark Thompson sw at jkqxz.net
Thu Apr 24 22:23:04 EEST 2025


On 23/04/2025 15:13, Dawid Kozinski wrote:
> - Added APV decoder wrapper
> - Changes in project configuration file and libavcodec Makefile
> - Added documentation for APV decoder wrapper
> 
> Signed-off-by: Dawid Kozinski <d.kozinski at samsung.com>
> ---
>  configure              |   1 +
>  doc/decoders.texi      |  27 ++
>  libavcodec/Makefile    |   1 +
>  libavcodec/libapvdec.c | 560 +++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 589 insertions(+)
>  create mode 100644 libavcodec/libapvdec.c
> 
> ...

This is asking the decoder library to decode all of the frames (primary/non-primary/preview/depth/alpha) found in the access unit, putting the resulting frames in a fifo, and then outputting them one at a time to receive_frame.

What is the aim there and what does the user need to do to achieve it?  For typical existing lavc users (such as the ffmpeg utility) this seems likely to be very confusing, as all of the frames will be bunched together in the same stream even though they don't have the same meaning or (likely) the same properties.


For my decoder implementation I am currently outputting only the primary frame, and would appreciate if you have any thoughts on what the right thing to do if there are multiple frames in the access unit is.

I considered decoding an alpha frame and merging it with the primary frame to form a YUVA422P10 frame, but this seemed fragile as the specification places no constraints on the alpha frame (e.g. no requirement that it is 4:0:0 and has the same dimensions as the primary frame) so I decided against including it.

For the other types I have no thoughts on what might be useful and therefore currently ignore them.


Thanks,

- Mark


PS:  Are there any official samples with multiple frames?  Examples which I didn't make myself would be appreciated for test purposes.



More information about the ffmpeg-devel mailing list