forked from FFmpeg/FFmpeg
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
2 changed files with 15 additions and 0 deletions
|
@ -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…
Add table
Reference in a new issue