mirror of https://git.ffmpeg.org/ffmpeg.git
lavc/qsvenc: make the queried libmfx version easily reused
Signed-off-by: Zhong Li <zhong.li@intel.com>
This commit is contained in:
parent
81ae387a26
commit
b47446cc39
|
@ -468,13 +468,6 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
|||
int target_bitrate_kbps, max_bitrate_kbps, brc_param_multiplier;
|
||||
int buffer_size_in_kilobytes, initial_delay_in_kilobytes;
|
||||
int ret;
|
||||
mfxVersion ver;
|
||||
|
||||
ret = MFXQueryVersion(q->session,&ver);
|
||||
if (ret != MFX_ERR_NONE) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Error getting the session handle\n");
|
||||
return AVERROR_UNKNOWN;
|
||||
}
|
||||
|
||||
ret = ff_qsv_codec_id_to_mfx(avctx->codec_id);
|
||||
if (ret < 0)
|
||||
|
@ -530,7 +523,7 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
|||
// If the minor version is greater than or equal to 19,
|
||||
// then can use the same alignment settings as H.264 for HEVC
|
||||
q->width_align = (avctx->codec_id != AV_CODEC_ID_HEVC ||
|
||||
QSV_RUNTIME_VERSION_ATLEAST(ver, 1, 19)) ? 16 : 32;
|
||||
QSV_RUNTIME_VERSION_ATLEAST(q->ver, 1, 19)) ? 16 : 32;
|
||||
q->param.mfx.FrameInfo.Width = FFALIGN(avctx->width, q->width_align);
|
||||
|
||||
if (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) {
|
||||
|
@ -729,7 +722,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||
#endif
|
||||
|
||||
#if QSV_HAVE_MF
|
||||
if (QSV_RUNTIME_VERSION_ATLEAST(ver, 1, 25)) {
|
||||
if (QSV_RUNTIME_VERSION_ATLEAST(q->ver, 1, 25)) {
|
||||
q->extmfp.Header.BufferId = MFX_EXTBUFF_MULTI_FRAME_PARAM;
|
||||
q->extmfp.Header.BufferSz = sizeof(q->extmfp);
|
||||
|
||||
|
@ -985,6 +978,12 @@ int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q)
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = MFXQueryVersion(q->session,&q->ver);
|
||||
if (ret < 0) {
|
||||
return ff_qsv_print_error(avctx, ret,
|
||||
"Error querying mfx version");
|
||||
}
|
||||
|
||||
// in the mfxInfoMFX struct, JPEG is different from other codecs
|
||||
switch (avctx->codec_id) {
|
||||
case AV_CODEC_ID_MJPEG:
|
||||
|
|
|
@ -131,6 +131,8 @@ typedef struct QSVEncContext {
|
|||
|
||||
QSVFramesContext frames_ctx;
|
||||
|
||||
mfxVersion ver;
|
||||
|
||||
// options set by the caller
|
||||
int async_depth;
|
||||
int idr_interval;
|
||||
|
|
Loading…
Reference in New Issue