[FFmpeg-devel] [PATCH 01/11] avcodec: add avcodec_get_supported_config()

Michael Niedermayer michael at niedermayer.cc
Mon Apr 8 23:18:33 EEST 2024


On Fri, Apr 05, 2024 at 08:57:11PM +0200, Niklas Haas wrote:
> From: Niklas Haas <git at haasn.dev>
> 
> This replaces the myriad of existing lists in AVCodec by a unified API
> call, allowing us to (ultimately) trim down the sizeof(AVCodec) quite
> substantially, while also making this more trivially extensible.
> 
> In addition to the already covered lists, add two new entries for color
> space and color range, mirroring the newly added negotiable fields in
> libavfilter.
> 
> I decided to drop the explicit length field from the API proposed by
> Andreas Rheinhardt, because having it in place ended up complicating
> both the codec side and the client side implementations, while also
> being strictly less flexible (it's trivial to recover a length given
> a terminator, but requires allocation to add a terminator given
> a length). Using a terminator also presents less of a porting challenge
> for existing users of the current API.
> 
> Once the deprecation period passes for the existing public fields, the
> rough plan is to move the commonly used fields (such as
> pix_fmt/sample_fmt) into FFCodec, possibly as a union of audio and video
> configuration types, and then implement the rarely used fields with
> custom callbacks.
> ---
>  doc/APIchanges              |  5 ++++
>  libavcodec/avcodec.c        | 51 +++++++++++++++++++++++++++++++++++++
>  libavcodec/avcodec.h        | 27 ++++++++++++++++++++
>  libavcodec/codec.h          | 19 +++++++++++---
>  libavcodec/codec_internal.h | 21 +++++++++++++++
>  libavcodec/version.h        |  4 +--
>  6 files changed, 121 insertions(+), 6 deletions(-)

This patchset seems to overlap a bit with AVOptionRanges

I think ideally the user should at some point be able to query using some
API on a AVCodecContext/AVCodecParameters/AVFormatContex/AVStream
what for that specific instance are supported settings for each field

The API here seems to use a enum, which can make sense but it differs from
how AVOption works which doesnt use enums to identify fields


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Never trust a computer, one day, it may think you are the virus. -- Compn
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20240408/c9b021f7/attachment.sig>


More information about the ffmpeg-devel mailing list