[FFmpeg-devel] [PATCH 1/2] lavc: add new minimize_copies hwaccel_flag

Philip Langdale philipl at overt.org
Wed Dec 7 01:42:25 EET 2022


On Mon,  5 Dec 2022 23:25:58 +0100
Timo Rothenpieler <timo at rothenpieler.org> wrote:

> ---
>  doc/APIchanges             |  3 +++
>  libavcodec/avcodec.h       | 11 +++++++++++
>  libavcodec/options_table.h |  1 +
>  libavcodec/version.h       |  2 +-
>  4 files changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/doc/APIchanges b/doc/APIchanges
> index ab7ce15fae..9c1f905a61 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -14,6 +14,9 @@ libavutil:     2021-04-27
>  
>  API changes, most recent first:
>  
> +2022-12-xx - xxxxxxxxxx - lavc 59.54.101 - avcodec.h
> +  Add AV_HWACCEL_FLAG_MINIMIZE_COPIES.
> +
>  2022-11-xx - xxxxxxxxxx - lavu 57.43.100 - tx.h
>    Add AV_TX_FLOAT_DCT, AV_TX_DOUBLE_DCT and AV_TX_INT32_DCT.
>  
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 3edd8e2636..a72551bb5e 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -2253,6 +2253,17 @@ typedef struct AVHWAccel {
>   */
>  #define AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH (1 << 2)
>  
> +/**
> + * Hardware acceleration can have a limited number of direct output
> surfaces.
> + * For some processing chains, this can be okay, but others will run
> into the
> + * limit and in turn produce very confusing errors.
> + *
> + * Thus, the hwaccel will by default make a safety copy. If a users
> really
> + * wants to minimize the amount of copies, they can set this flag
> and ensure
> + * their chain does not exhaust the surface pool.
> + */
> +#define AV_HWACCEL_FLAG_MINIMIZE_COPIES (1 << 3)

I would soften the statement about making a safety copy to make it
clear that only hwaccels where limits are relevant will make safety
copies. Otherwise people will think every other hwaccel has suddenly
started doing it.

Otherwise, LGTM.

--phil


More information about the ffmpeg-devel mailing list