24#ifndef AVFILTER_QSVVPP_H
25#define AVFILTER_QSVVPP_H
34#define FF_INLINK_IDX(link) ((int)((link)->dstpad - (link)->dst->input_pads))
35#define FF_OUTLINK_IDX(link) ((int)((link)->srcpad - (link)->src->output_pads))
37#define QSV_VERSION_ATLEAST(MAJOR, MINOR) \
38 (MFX_VERSION_MAJOR > (MAJOR) || \
39 MFX_VERSION_MAJOR == (MAJOR) && MFX_VERSION_MINOR >= (MINOR))
41#define QSV_RUNTIME_VERSION_ATLEAST(MFX_VERSION, MAJOR, MINOR) \
42 ((MFX_VERSION.Major > (MAJOR)) || \
43 (MFX_VERSION.Major == (MAJOR) && MFX_VERSION.Minor >= (MINOR)))
45#define QSV_ONEVPL QSV_VERSION_ATLEAST(2, 0)
46#define QSV_HAVE_OPAQUE !QSV_ONEVPL
55#define QSVVPP_MAX_FRAME_EXTBUFS 8
85 mfxExtOpaqueSurfaceAlloc opaque_alloc;
137 const char *extra_string);
140 const char *error_string);
143 const char *warning_string);
146 mfxVersion *pver, mfxSession *psession);
static AVFormatContext * ctx
Main libavfilter public API header.
An API-specific header for AV_HWDEVICE_TYPE_QSV.
AVPixelFormat
Pixel format.
AVFrame * ff_qsvvpp_get_video_buffer(AVFilterLink *inlink, int w, int h)
int ff_qsvvpp_print_iopattern(void *log_ctx, int mfx_iopattern, const char *extra_string)
int ff_qsvvpp_create_mfx_session(void *ctx, void *loader, mfxIMPL implementation, mfxVersion *pver, mfxSession *psession)
int ff_qsvvpp_print_error(void *log_ctx, mfxStatus err, const char *error_string)
int ff_qsvvpp_print_warning(void *log_ctx, mfxStatus err, const char *warning_string)
int ff_qsvvpp_filter_frame(QSVVPPContext *vpp, AVFilterLink *inlink, AVFrame *frame, AVFrame *propref)
int ff_qsvvpp_close(AVFilterContext *avctx)
int ff_qsvvpp_init(AVFilterContext *avctx, QSVVPPParam *param)
Describe the class of an AVClass context structure.
A link between two filters.
This structure describes decoded (raw) audio or video data.
mfxFrameSurface1 ** surface_ptrs_in
enum AVPixelFormat out_sw_format
Real output format.
mfxFrameSurface1 ** surface_ptrs_out
mfxExtBuffer ** seq_buffers
store sequence parameters
mfxFrameInfo * frame_infos
frame info for each input
AVFifo * async_fifo
order with frame_out, sync
QSVFrame * out_frame_list
int(* filter_frame)(AVFilterLink *outlink, AVFrame *frame)
callback
mfxExtBuffer ** ext_buffers
store all parameters for vpp execution, including parameters per frame
int(* set_frame_ext_params)(AVFilterContext *ctx, const AVFrame *in, AVFrame *out, QSVVPPFrameParam *fp)
callback
int in_mem_mode
members related to the input/output surface
int(* set_frame_ext_params)(AVFilterContext *ctx, const AVFrame *in, AVFrame *out, QSVVPPFrameParam *fp)
callback
int(* filter_frame)(AVFilterLink *outlink, AVFrame *frame)
enum AVPixelFormat out_sw_format