Commit 0cf9fa99 authored by Mark Thompson's avatar Mark Thompson

Merge commit '2d6b3f3a'

* commit '2d6b3f3a':
  qsvenc: Provide a detailed error message if the parameters are invalid
Merged-by: 's avatarMark Thompson <sw@jkqxz.net>
parents 9053b088 2d6b3f3a
......@@ -348,15 +348,34 @@ static int select_rc_mode(AVCodecContext *avctx, QSVEncContext *q)
return 0;
}
static int rc_supported(QSVEncContext *q)
static int check_enc_param(AVCodecContext *avctx, QSVEncContext *q)
{
mfxVideoParam param_out = { .mfx.CodecId = q->param.mfx.CodecId };
mfxStatus ret;
#define UNMATCH(x) (param_out.mfx.x != q->param.mfx.x)
ret = MFXVideoENCODE_Query(q->session, &q->param, &param_out);
if (ret < 0 ||
param_out.mfx.RateControlMethod != q->param.mfx.RateControlMethod)
if (ret < 0) {
if (UNMATCH(CodecId))
av_log(avctx, AV_LOG_ERROR, "Current codec type is unsupported\n");
if (UNMATCH(CodecProfile))
av_log(avctx, AV_LOG_ERROR, "Current profile is unsupported\n");
if (UNMATCH(RateControlMethod))
av_log(avctx, AV_LOG_ERROR, "Selected ratecontrol mode is unsupported\n");
if (UNMATCH(LowPower))
av_log(avctx, AV_LOG_ERROR, "Low power mode is unsupported\n");
if (UNMATCH(FrameInfo.FrameRateExtN) || UNMATCH(FrameInfo.FrameRateExtN))
av_log(avctx, AV_LOG_ERROR, "Current frame rate is unsupported\n");
if (UNMATCH(FrameInfo.PicStruct))
av_log(avctx, AV_LOG_ERROR, "Current picture structure is unsupported\n");
if (UNMATCH(FrameInfo.Width) || UNMATCH(FrameInfo.Height))
av_log(avctx, AV_LOG_ERROR, "Current resolution is unsupported\n");
if (UNMATCH(FrameInfo.FourCC))
av_log(avctx, AV_LOG_ERROR, "Current pixel format is unsupported\n");
return 0;
}
return 1;
}
......@@ -634,10 +653,10 @@ FF_ENABLE_DEPRECATION_WARNINGS
#endif
}
if (!rc_supported(q)) {
if (!check_enc_param(avctx,q)) {
av_log(avctx, AV_LOG_ERROR,
"Selected ratecontrol mode is not supported by the QSV "
"runtime. Choose a different mode.\n");
"some encoding parameters are not supported by the QSV "
"runtime. Please double check the input parameters.\n");
return AVERROR(ENOSYS);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment