On Mon, 27 Mar 2017 21:38:14 +0100
Mark Thompson <[email protected]> wrote:
> ---
> doc/APIchanges | 3 +++
> libavcodec/avcodec.h | 14 ++++++++++++++
> libavcodec/options_table.h | 1 +
> 3 files changed, 18 insertions(+)
>
> diff --git a/doc/APIchanges b/doc/APIchanges
> index 649d35a08..677f5f7f1 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -14,6 +14,9 @@ libavutil: 2017-03-23
> API changes, most recent first:
>
> 2017-04-xx - xxxxxxx - lavc 58.x+1.0 - avcodec.h
> + Add AVCodecContext.extra_hw_frames.
> +
> +2017-04-xx - xxxxxxx - lavc 58.x+1.0 - avcodec.h
> Add AVHWAccel.device_type and avcodec_probe_hw().
>
> 2017-04-xx - xxxxxxx - lavc 58.x.y+1 - avcodec.h
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 8f7293d02..0a50cd876 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -2724,6 +2724,20 @@ typedef struct AVCodecContext {
> * AVCodecContext.get_format callback)
> */
> int hwaccel_flags;
> +
> + /**
> + * Video decoding only. Sets the number of extra hardware frames which
> + * the decoder will allocate for use by the caller. This is only used
> + * if hw_device_ctx is set.
> + *
> + * Some hardware decoders require all frames that they will use for
> + * output to be defined in advance before decoding starts. For such
> + * decoders, the hardware frame pool must therefore be of a fixed size.
> + * The extra frames set here are on top of any number that the decoder
> + * needs internally in order to operate normally (for example, frames
> + * used as reference pictures).
> + */
> + int extra_hw_frames;
> } AVCodecContext;
>
> /**
> diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
> index 925ef376f..ce871dccd 100644
> --- a/libavcodec/options_table.h
> +++ b/libavcodec/options_table.h
> @@ -419,6 +419,7 @@ static const AVOption avcodec_options[] = {
> {"side_data_only_packets", NULL, OFFSET(side_data_only_packets),
> AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, A|V|E },
> #endif
> {"apply_cropping", NULL, OFFSET(apply_cropping), AV_OPT_TYPE_INT, { .i64 = 1
> }, 0, 1, V | D },
> +{"extra_hw_frames", "Number of extra hardware frames to allocate for the
> user", OFFSET(extra_hw_frames), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX,
> V|D },
> {NULL},
> };
>
What will it do for decoders which do not require pre-allocation? A
small note of this would be good. Otherwise LGTM.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel