FFmpeg
|
#include <mfxvideo.h>
#include <mfxjpeg.h>
#include <mfxvp8.h>
#include <stdio.h>
#include <string.h>
#include "libavutil/avstring.h"
#include "libavutil/common.h"
#include "libavutil/error.h"
#include "libavutil/hwcontext.h"
#include "libavutil/hwcontext_qsv.h"
#include "libavutil/avassert.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "qsv_internal.h"
#include "refstruct.h"
#include <mfxplugin.h>
Go to the source code of this file.
Macros | |
#define | MFX_IMPL_VIA_MASK(impl) (0x0f00 & (impl)) |
#define | QSV_HAVE_USER_PLUGIN !QSV_ONEVPL |
#define | QSV_HAVE_AUDIO !QSV_ONEVPL |
#define | MFXUnload(a) do { } while(0) |
Functions | |
int | ff_qsv_codec_id_to_mfx (enum AVCodecID codec_id) |
int | ff_qsv_print_iopattern (void *log_ctx, int mfx_iopattern, const char *extra_string) |
static int | qsv_map_error (mfxStatus mfx_err, const char **desc) |
Convert a libmfx error code into an FFmpeg error code. More... | |
int | ff_qsv_print_error (void *log_ctx, mfxStatus err, const char *error_string) |
int | ff_qsv_print_warning (void *log_ctx, mfxStatus err, const char *warning_string) |
enum AVPixelFormat | ff_qsv_map_fourcc (uint32_t fourcc) |
int | ff_qsv_map_pixfmt (enum AVPixelFormat format, uint32_t *fourcc, uint16_t *shift) |
int | ff_qsv_map_frame_to_surface (const AVFrame *frame, mfxFrameSurface1 *surface) |
int | ff_qsv_find_surface_idx (QSVFramesContext *ctx, QSVFrame *frame) |
enum AVFieldOrder | ff_qsv_map_picstruct (int mfx_pic_struct) |
enum AVPictureType | ff_qsv_map_pictype (int mfx_pic_type) |
static int | qsv_load_plugins (mfxSession session, const char *load_plugins, void *logctx) |
static int | qsv_create_mfx_session (AVCodecContext *avctx, mfxIMPL implementation, mfxVersion *pver, int gpu_copy, mfxSession *psession, void **ploader) |
int | ff_qsv_init_internal_session (AVCodecContext *avctx, QSVSession *qs, const char *load_plugins, int gpu_copy) |
static void | mids_buf_free (FFRefStructOpaque opaque, void *obj) |
static QSVMid * | qsv_create_mids (AVBufferRef *hw_frames_ref) |
static int | qsv_setup_mids (mfxFrameAllocResponse *resp, AVBufferRef *hw_frames_ref, QSVMid *mids) |
static mfxStatus | qsv_frame_alloc (mfxHDL pthis, mfxFrameAllocRequest *req, mfxFrameAllocResponse *resp) |
static mfxStatus | qsv_frame_free (mfxHDL pthis, mfxFrameAllocResponse *resp) |
static mfxStatus | qsv_frame_lock (mfxHDL pthis, mfxMemId mid, mfxFrameData *ptr) |
static mfxStatus | qsv_frame_unlock (mfxHDL pthis, mfxMemId mid, mfxFrameData *ptr) |
static mfxStatus | qsv_frame_get_hdl (mfxHDL pthis, mfxMemId mid, mfxHDL *hdl) |
int | ff_qsv_init_session_device (AVCodecContext *avctx, mfxSession *psession, AVBufferRef *device_ref, const char *load_plugins, int gpu_copy) |
int | ff_qsv_init_session_frames (AVCodecContext *avctx, mfxSession *psession, QSVFramesContext *qsv_frames_ctx, const char *load_plugins, int opaque, int gpu_copy) |
int | ff_qsv_close_internal_session (QSVSession *qs) |
void | ff_qsv_frame_add_ext_param (AVCodecContext *avctx, QSVFrame *frame, mfxExtBuffer *param) |
Variables | |
struct { | |
int mfx_iopattern | |
const char * desc | |
} | qsv_iopatterns [] |
struct { | |
mfxStatus mfxerr | |
int averr | |
const char * desc | |
} | qsv_errors [] |
#define QSV_HAVE_USER_PLUGIN !QSV_ONEVPL |
#define QSV_HAVE_AUDIO !QSV_ONEVPL |
int ff_qsv_codec_id_to_mfx | ( | enum AVCodecID | codec_id | ) |
Definition at line 54 of file qsv.c.
Referenced by init_video_param(), init_video_param_jpeg(), and qsv_decode_header().
int ff_qsv_print_iopattern | ( | void * | log_ctx, |
int | mfx_iopattern, | ||
const char * | extra_string | ||
) |
Definition at line 104 of file qsv.c.
Referenced by ff_qsv_enc_init(), and qsv_decode_preinit().
|
static |
Convert a libmfx error code into an FFmpeg error code.
Definition at line 174 of file qsv.c.
Referenced by ff_qsv_print_error(), and ff_qsv_print_warning().
int ff_qsv_print_error | ( | void * | log_ctx, |
mfxStatus | err, | ||
const char * | error_string | ||
) |
Definition at line 189 of file qsv.c.
Referenced by encode_frame(), ff_qsv_enc_init(), ff_qsv_init_internal_session(), ff_qsv_init_session_device(), ff_qsv_init_session_frames(), qsv_create_mfx_session(), qsv_decode(), qsv_decode_header(), qsv_decode_init_context(), qsv_load_plugins(), qsv_process_data(), qsv_retrieve_enc_av1_params(), qsv_retrieve_enc_jpeg_params(), qsv_retrieve_enc_params(), qsv_retrieve_enc_vp9_params(), and update_parameters().
int ff_qsv_print_warning | ( | void * | log_ctx, |
mfxStatus | err, | ||
const char * | warning_string | ||
) |
Definition at line 198 of file qsv.c.
Referenced by encode_frame(), ff_qsv_enc_init(), qsv_create_mfx_session(), and qsv_decode().
enum AVPixelFormat ff_qsv_map_fourcc | ( | uint32_t | fourcc | ) |
Definition at line 207 of file qsv.c.
Referenced by qsv_decode_init_context(), qsv_frame_alloc(), and qsv_process_data().
int ff_qsv_map_pixfmt | ( | enum AVPixelFormat | format, |
uint32_t * | fourcc, | ||
uint16_t * | shift | ||
) |
Definition at line 228 of file qsv.c.
Referenced by init_video_param(), and init_video_param_jpeg().
int ff_qsv_map_frame_to_surface | ( | const AVFrame * | frame, |
mfxFrameSurface1 * | surface | ||
) |
Definition at line 287 of file qsv.c.
Referenced by alloc_frame(), and submit_frame().
int ff_qsv_find_surface_idx | ( | QSVFramesContext * | ctx, |
QSVFrame * | frame | ||
) |
Definition at line 348 of file qsv.c.
Referenced by alloc_frame(), and submit_frame().
enum AVFieldOrder ff_qsv_map_picstruct | ( | int | mfx_pic_struct | ) |
Definition at line 361 of file qsv.c.
Referenced by qsv_decode_init_context().
enum AVPictureType ff_qsv_map_pictype | ( | int | mfx_pic_type | ) |
Definition at line 379 of file qsv.c.
Referenced by qsv_decode().
|
static |
Definition at line 408 of file qsv.c.
Referenced by ff_qsv_init_internal_session(), and ff_qsv_init_session_device().
|
static |
Definition at line 642 of file qsv.c.
Referenced by ff_qsv_init_internal_session(), and ff_qsv_init_session_device().
int ff_qsv_init_internal_session | ( | AVCodecContext * | avctx, |
QSVSession * | qs, | ||
const char * | load_plugins, | ||
int | gpu_copy | ||
) |
Definition at line 681 of file qsv.c.
Referenced by qsv_init_session(), and qsvenc_init_session().
|
static |
Definition at line 748 of file qsv.c.
Referenced by qsv_create_mids().
|
static |
Definition at line 754 of file qsv.c.
Referenced by ff_qsv_init_session_frames(), and qsv_frame_alloc().
|
static |
Definition at line 784 of file qsv.c.
Referenced by qsv_frame_alloc().
|
static |
Definition at line 814 of file qsv.c.
Referenced by ff_qsv_init_session_frames().
|
static |
Definition at line 916 of file qsv.c.
Referenced by ff_qsv_init_session_frames().
|
static |
Definition at line 927 of file qsv.c.
Referenced by ff_qsv_init_session_frames().
|
static |
Definition at line 993 of file qsv.c.
Referenced by ff_qsv_init_session_frames().
|
static |
Definition at line 1010 of file qsv.c.
Referenced by ff_qsv_init_session_frames().
int ff_qsv_init_session_device | ( | AVCodecContext * | avctx, |
mfxSession * | psession, | ||
AVBufferRef * | device_ref, | ||
const char * | load_plugins, | ||
int | gpu_copy | ||
) |
Definition at line 1032 of file qsv.c.
Referenced by ff_qsv_init_session_frames(), qsv_init_session(), and qsvenc_init_session().
int ff_qsv_init_session_frames | ( | AVCodecContext * | avctx, |
mfxSession * | psession, | ||
QSVFramesContext * | qsv_frames_ctx, | ||
const char * | load_plugins, | ||
int | opaque, | ||
int | gpu_copy | ||
) |
Definition at line 1109 of file qsv.c.
Referenced by qsv_init_session(), and qsvenc_init_session().
int ff_qsv_close_internal_session | ( | QSVSession * | qs | ) |
Definition at line 1159 of file qsv.c.
Referenced by ff_qsv_enc_close(), and qsv_decode_close_qsvcontext().
void ff_qsv_frame_add_ext_param | ( | AVCodecContext * | avctx, |
QSVFrame * | frame, | ||
mfxExtBuffer * | param | ||
) |
Definition at line 1177 of file qsv.c.
Referenced by alloc_frame().
int mfx_iopattern |
Definition at line 89 of file qsv.c.
Referenced by ff_qsv_print_iopattern().
const char* desc |
Definition at line 90 of file qsv.c.
Referenced by ff_qsv_init_internal_session(), ff_qsv_print_error(), ff_qsv_print_iopattern(), ff_qsv_print_warning(), and qsv_map_error().
const { ... } qsv_iopatterns[] |
Referenced by ff_qsv_print_iopattern().
mfxStatus mfxerr |
Definition at line 122 of file qsv.c.
Referenced by qsv_map_error().
const { ... } qsv_errors[] |
Referenced by qsv_map_error().