FFmpeg
Data Structures | Macros | Functions | Variables
qsvvpp.c File Reference

Intel Quick Sync Video VPP base function. More...

#include "libavutil/common.h"
#include "libavutil/mathematics.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_qsv.h"
#include "libavutil/time.h"
#include "libavutil/pixdesc.h"
#include "internal.h"
#include "qsvvpp.h"
#include "video.h"

Go to the source code of this file.

Data Structures

struct  QSVFrame
 
struct  QSVVPPContext
 

Macros

#define IS_VIDEO_MEMORY(mode)
 
#define IS_OPAQUE_MEMORY(mode)   (mode & MFX_MEMTYPE_OPAQUE_FRAME)
 
#define IS_SYSTEM_MEMORY(mode)   (mode & MFX_MEMTYPE_SYSTEM_MEMORY)
 

Functions

int ff_qsvvpp_print_iopattern (void *log_ctx, int mfx_iopattern, const char *extra_string)
 
static int qsv_map_error (mfxStatus mfx_err, const char **desc)
 
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)
 
static mfxStatus frame_alloc (mfxHDL pthis, mfxFrameAllocRequest *req, mfxFrameAllocResponse *resp)
 
static mfxStatus frame_free (mfxHDL pthis, mfxFrameAllocResponse *resp)
 
static mfxStatus frame_lock (mfxHDL pthis, mfxMemId mid, mfxFrameData *ptr)
 
static mfxStatus frame_unlock (mfxHDL pthis, mfxMemId mid, mfxFrameData *ptr)
 
static mfxStatus frame_get_hdl (mfxHDL pthis, mfxMemId mid, mfxHDL *hdl)
 
static int pix_fmt_to_mfx_fourcc (int format)
 
static int map_frame_to_surface (AVFrame *frame, mfxFrameSurface1 *surface)
 
static int fill_frameinfo_by_link (mfxFrameInfo *frameinfo, AVFilterLink *link)
 
static void clear_unused_frames (QSVFrame *list)
 
static void clear_frame_list (QSVFrame **list)
 
static QSVFrameget_free_frame (QSVFrame **list)
 
static QSVFramesubmit_frame (QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picref)
 
static QSVFramequery_frame (QSVVPPContext *s, AVFilterLink *outlink)
 
static int init_vpp_session (AVFilterContext *avctx, QSVVPPContext *s)
 
int ff_qsvvpp_create (AVFilterContext *avctx, QSVVPPContext **vpp, QSVVPPParam *param)
 
int ff_qsvvpp_free (QSVVPPContext **vpp)
 
int ff_qsvvpp_filter_frame (QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picref)
 

Variables

static const mfxHandleType handle_types []
 
static const AVRational default_tb = { 1, 90000 }
 
struct {
   int   mfx_iopattern
 
   const char *   desc
 
qsv_iopatterns []
 
struct {
   mfxStatus   mfxerr
 
   int   averr
 
   const char *   desc
 
qsv_errors []
 

Detailed Description

Intel Quick Sync Video VPP base function.

Definition in file qsvvpp.c.

Macro Definition Documentation

#define IS_VIDEO_MEMORY (   mode)
Value:
(mode & (MFX_MEMTYPE_VIDEO_MEMORY_DECODER_TARGET | \
MFX_MEMTYPE_VIDEO_MEMORY_PROCESSOR_TARGET))
mode
Use these values in ebur128_init (or'ed).
Definition: ebur128.h:83

Definition at line 35 of file qsvvpp.c.

Referenced by ff_qsvvpp_create(), and init_vpp_session().

#define IS_OPAQUE_MEMORY (   mode)    (mode & MFX_MEMTYPE_OPAQUE_FRAME)

Definition at line 37 of file qsvvpp.c.

Referenced by ff_qsvvpp_create(), and init_vpp_session().

#define IS_SYSTEM_MEMORY (   mode)    (mode & MFX_MEMTYPE_SYSTEM_MEMORY)

Definition at line 38 of file qsvvpp.c.

Referenced by ff_qsvvpp_create(), query_frame(), and submit_frame().

Function Documentation

int ff_qsvvpp_print_iopattern ( void log_ctx,
int  mfx_iopattern,
const char *  extra_string 
)

Definition at line 91 of file qsvvpp.c.

Referenced by ff_qsvvpp_create(), and init_out_session().

static int qsv_map_error ( mfxStatus  mfx_err,
const char **  desc 
)
static

Definition at line 148 of file qsvvpp.c.

Referenced by ff_qsvvpp_print_error(), and ff_qsvvpp_print_warning().

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 
)

Definition at line 173 of file qsvvpp.c.

Referenced by ff_qsvvpp_create(), init_out_session(), and init_vpp_session().

static mfxStatus frame_alloc ( mfxHDL  pthis,
mfxFrameAllocRequest *  req,
mfxFrameAllocResponse *  resp 
)
static

Definition at line 184 of file qsvvpp.c.

Referenced by init_vpp_session().

static mfxStatus frame_free ( mfxHDL  pthis,
mfxFrameAllocResponse *  resp 
)
static

Definition at line 218 of file qsvvpp.c.

Referenced by init_vpp_session().

static mfxStatus frame_lock ( mfxHDL  pthis,
mfxMemId  mid,
mfxFrameData *  ptr 
)
static

Definition at line 224 of file qsvvpp.c.

Referenced by init_vpp_session().

static mfxStatus frame_unlock ( mfxHDL  pthis,
mfxMemId  mid,
mfxFrameData *  ptr 
)
static

Definition at line 229 of file qsvvpp.c.

Referenced by init_vpp_session().

static mfxStatus frame_get_hdl ( mfxHDL  pthis,
mfxMemId  mid,
mfxHDL *  hdl 
)
static

Definition at line 234 of file qsvvpp.c.

Referenced by init_vpp_session().

static int pix_fmt_to_mfx_fourcc ( int  format)
static

Definition at line 240 of file qsvvpp.c.

Referenced by fill_frameinfo_by_link().

static int map_frame_to_surface ( AVFrame frame,
mfxFrameSurface1 *  surface 
)
static

Definition at line 256 of file qsvvpp.c.

Referenced by query_frame(), and submit_frame().

static int fill_frameinfo_by_link ( mfxFrameInfo *  frameinfo,
AVFilterLink link 
)
static

Definition at line 289 of file qsvvpp.c.

Referenced by ff_qsvvpp_create().

static void clear_unused_frames ( QSVFrame list)
static

Definition at line 336 of file qsvvpp.c.

Referenced by query_frame(), and submit_frame().

static void clear_frame_list ( QSVFrame **  list)
static

Definition at line 347 of file qsvvpp.c.

Referenced by ff_qsvvpp_free().

static QSVFrame* get_free_frame ( QSVFrame **  list)
static

Definition at line 359 of file qsvvpp.c.

Referenced by query_frame(), and submit_frame().

static QSVFrame* submit_frame ( QSVVPPContext s,
AVFilterLink inlink,
AVFrame picref 
)
static

Definition at line 382 of file qsvvpp.c.

Referenced by ff_qsvvpp_filter_frame().

static QSVFrame* query_frame ( QSVVPPContext s,
AVFilterLink outlink 
)
static

Definition at line 454 of file qsvvpp.c.

Referenced by ff_qsvvpp_filter_frame().

static int init_vpp_session ( AVFilterContext avctx,
QSVVPPContext s 
)
static

Definition at line 506 of file qsvvpp.c.

Referenced by ff_qsvvpp_create().

int ff_qsvvpp_create ( AVFilterContext avctx,
QSVVPPContext **  vpp,
QSVVPPParam param 
)

Definition at line 669 of file qsvvpp.c.

Referenced by config_output().

int ff_qsvvpp_free ( QSVVPPContext **  vpp)

Definition at line 777 of file qsvvpp.c.

Referenced by ff_qsvvpp_create(), overlay_qsv_uninit(), and vpp_uninit().

int ff_qsvvpp_filter_frame ( QSVVPPContext s,
AVFilterLink inlink,
AVFrame picref 
)

Definition at line 801 of file qsvvpp.c.

Referenced by filter_frame(), and process_frame().

Variable Documentation

const mfxHandleType handle_types[]
static
Initial value:
= {
MFX_HANDLE_VA_DISPLAY,
MFX_HANDLE_D3D9_DEVICE_MANAGER,
MFX_HANDLE_D3D11_DEVICE,
}

Definition at line 71 of file qsvvpp.c.

Referenced by ff_qsv_init_session_device(), and init_vpp_session().

const AVRational default_tb = { 1, 90000 }
static

Definition at line 77 of file qsvvpp.c.

int mfx_iopattern

Definition at line 80 of file qsvvpp.c.

const char* desc
const { ... } qsv_iopatterns[]
Initial value:
= {
{MFX_IOPATTERN_IN_VIDEO_MEMORY, "input is video memory surface" },
{MFX_IOPATTERN_IN_SYSTEM_MEMORY, "input is system memory surface" },
{MFX_IOPATTERN_IN_OPAQUE_MEMORY, "input is opaque memory surface" },
{MFX_IOPATTERN_OUT_VIDEO_MEMORY, "output is video memory surface" },
{MFX_IOPATTERN_OUT_SYSTEM_MEMORY, "output is system memory surface" },
{MFX_IOPATTERN_OUT_OPAQUE_MEMORY, "output is opaque memory surface" },
}

Referenced by ff_qsvvpp_print_iopattern().

mfxStatus mfxerr

Definition at line 109 of file qsvvpp.c.

Referenced by qsv_map_error().

int averr

Definition at line 110 of file qsvvpp.c.

const { ... } qsv_errors[]

Referenced by qsv_map_error().