mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
qsvenc_hevc: allow user set more coding options
The SDK supports NalHrdConformance, RecoveryPointSEI and AUDelimiter for hevc encoder, so we may allow user to set these coding options like as what we did for h264_qsv encoder. Signed-off-by: Haihao Xiang <haihao.xiang@intel.com> Signed-off-by: Zhong Li <zhongli_dev@126.com>
This commit is contained in:
parent
8c2c0135e5
commit
9583e66ea0
@ -290,6 +290,10 @@ static void dump_video_param(AVCodecContext *avctx, QSVEncContext *q,
|
||||
"NalHrdConformance: %s; SingleSeiNalUnit: %s; VuiVclHrdParameters: %s VuiNalHrdParameters: %s\n",
|
||||
print_threestate(co->NalHrdConformance), print_threestate(co->SingleSeiNalUnit),
|
||||
print_threestate(co->VuiVclHrdParameters), print_threestate(co->VuiNalHrdParameters));
|
||||
} else if ((avctx->codec_id == AV_CODEC_ID_HEVC) && QSV_RUNTIME_VERSION_ATLEAST(q->ver, 1, 28)) {
|
||||
av_log(avctx, AV_LOG_VERBOSE,
|
||||
"NalHrdConformance: %s; VuiNalHrdParameters: %s\n",
|
||||
print_threestate(co->NalHrdConformance), print_threestate(co->VuiNalHrdParameters));
|
||||
}
|
||||
|
||||
av_log(avctx, AV_LOG_VERBOSE, "FrameRateExtD: %"PRIu32"; FrameRateExtN: %"PRIu32" \n",
|
||||
@ -680,6 +684,15 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
|
||||
q->extco.RecoveryPointSEI = q->recovery_point_sei ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
|
||||
q->extco.MaxDecFrameBuffering = q->max_dec_frame_buffering;
|
||||
q->extco.AUDelimiter = q->aud ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
|
||||
} else if (avctx->codec_id == AV_CODEC_ID_HEVC) {
|
||||
if (avctx->strict_std_compliance != FF_COMPLIANCE_NORMAL)
|
||||
q->extco.NalHrdConformance = avctx->strict_std_compliance > FF_COMPLIANCE_NORMAL ?
|
||||
MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
|
||||
|
||||
if (q->recovery_point_sei >= 0)
|
||||
q->extco.RecoveryPointSEI = q->recovery_point_sei ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
|
||||
|
||||
q->extco.AUDelimiter = q->aud ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
|
||||
}
|
||||
|
||||
q->extparam_internal[q->nb_extparam_internal++] = (mfxExtBuffer *)&q->extco;
|
||||
|
@ -246,6 +246,8 @@ static const AVOption options[] = {
|
||||
|
||||
{ "tile_cols", "Number of columns for tiled encoding", OFFSET(qsv.tile_cols), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE },
|
||||
{ "tile_rows", "Number of rows for tiled encoding", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE },
|
||||
{ "recovery_point_sei", "Insert recovery point SEI messages", OFFSET(qsv.recovery_point_sei), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE },
|
||||
{ "aud", "Insert the Access Unit Delimiter NAL", OFFSET(qsv.aud), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE},
|
||||
|
||||
{ NULL },
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user