On Thu, Oct 19, 2017 at 05:25:17PM +0200, wm4 wrote:
> Module: libav
> Author: wm4 <[email protected]>
> Committer: Anton Khirnov <[email protected]>
> Date: Thu Oct 19 16:38:20 2017 +0200
>
> lavc: external hardware frame pool initialization
>
> This adds a new API, which allows the API user to query the required
> AVHWFramesContext parameters. This also reduces code duplication across
> the hwaccels by introducing ff_decode_get_hw_frames_ctx(), which uses
> the new API function. It takes care of initializing the hw_frames_ctx
> if needed, and does additional error handling and API usage checking.
>
> ---
>
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -3984,6 +3994,109 @@ int avcodec_send_frame(AVCodecContext *avctx, const
> AVFrame *frame);
> +int avcodec_get_hw_frames_parameters(AVCodecContext *avctx,
> + AVBufferRef *device_ref,
> + enum AVPixelFormat hw_pix_fmt,
> + AVBufferRef **out_frames_ref);
> +
> +
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -669,6 +669,88 @@ static AVHWAccel *find_hwaccel(enum AVCodecID codec_id,
> +int ff_decode_get_hw_frames_ctx(AVCodecContext *avctx,
> + enum AVHWDeviceType dev_type)
> +{
> + ret = avcodec_get_hw_frames_parameters(avctx,
> + avctx->hw_device_ctx,
> + avctx->hwaccel->pix_fmt,
> + avctx->hw_frames_ctx);
This generates a very suspicious warning:
libavcodec/decode.c: In function ‘ff_decode_get_hw_frames_ctx’:
libavcodec/decode.c:701:44: warning: passing argument 4 of
avcodec_get_hw_frames_parameters’ from incompatible pointer type
[-Wincompatible-pointer-types]
avctx->hw_frames_ctx);
^~~~~
In file included from libavcodec/decode.c:34:0:
libavcodec/avcodec.h:4094:5: note: expected ‘AVBufferRef ** {aka struct
AVBufferRef **}’ but argument is of type ‘AVBufferRef * {aka struct AVBufferRef
*}’
int avcodec_get_hw_frames_parameters(AVCodecContext *avctx,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel