mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
lavc/qsvenc: allows the SDK runtime to choose LowPower/non-LowPower modes
The SDK supports LowPower and non-LowPower modes, but some features are available only under one of the two modes. Currently non-LowPower mode is always chosen in FFmpeg if the mode is not set to LowPower explicitly. User will experience some SDK errors if a LowPower related feature is specified but the mode is not set to LowPower. With this patch, the mode is set to unknown by default in FFmpeg, the SDK is able to choose a workable mode for the specified features. Reviewed-by: Soft Works <softworkz@hotmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
21c7df0d22
commit
115f5e8035
@ -514,7 +514,7 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
}
|
||||
}
|
||||
|
||||
if (q->low_power) {
|
||||
if (q->low_power == 1) {
|
||||
#if QSV_HAVE_VDENC
|
||||
q->param.mfx.LowPower = MFX_CODINGOPTION_ON;
|
||||
#else
|
||||
@ -523,7 +523,9 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
q->low_power = 0;
|
||||
q->param.mfx.LowPower = MFX_CODINGOPTION_OFF;
|
||||
#endif
|
||||
} else
|
||||
} else if (q->low_power == -1)
|
||||
q->param.mfx.LowPower = MFX_CODINGOPTION_UNKNOWN;
|
||||
else
|
||||
q->param.mfx.LowPower = MFX_CODINGOPTION_OFF;
|
||||
|
||||
q->param.mfx.CodecProfile = q->profile;
|
||||
|
@ -96,7 +96,7 @@
|
||||
{ "adaptive_b", "Adaptive B-frame placement", OFFSET(qsv.adaptive_b), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE }, \
|
||||
{ "b_strategy", "Strategy to choose between I/P/B-frames", OFFSET(qsv.b_strategy), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE }, \
|
||||
{ "forced_idr", "Forcing I frames as IDR frames", OFFSET(qsv.forced_idr), AV_OPT_TYPE_BOOL,{ .i64 = 0 }, 0, 1, VE }, \
|
||||
{ "low_power", "enable low power mode(experimental: many limitations by mfx version, BRC modes, etc.)", OFFSET(qsv.low_power), AV_OPT_TYPE_BOOL, { .i64 = 0}, 0, 1, VE},\
|
||||
{ "low_power", "enable low power mode(experimental: many limitations by mfx version, BRC modes, etc.)", OFFSET(qsv.low_power), AV_OPT_TYPE_BOOL, { .i64 = -1}, -1, 1, VE},\
|
||||
|
||||
extern const AVCodecHWConfigInternal *const ff_qsv_enc_hw_configs[];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user