@ -139,6 +139,9 @@ static void dump_video_param(AVCodecContext *avctx, QSVEncContext *q,
# if QSV_HAVE_CO3
# if QSV_HAVE_CO3
mfxExtCodingOption3 * co3 = ( mfxExtCodingOption3 * ) coding_opts [ 2 ] ;
mfxExtCodingOption3 * co3 = ( mfxExtCodingOption3 * ) coding_opts [ 2 ] ;
# endif
# endif
# if QSV_HAVE_EXT_HEVC_TILES
mfxExtHEVCTiles * exthevctiles = ( mfxExtHEVCTiles * ) coding_opts [ 3 + QSV_HAVE_CO_VPS ] ;
# endif
av_log ( avctx , AV_LOG_VERBOSE , " profile: %s; level: % " PRIu16 " \n " ,
av_log ( avctx , AV_LOG_VERBOSE , " profile: %s; level: % " PRIu16 " \n " ,
print_profile ( info - > CodecProfile ) , info - > CodecLevel ) ;
print_profile ( info - > CodecProfile ) , info - > CodecLevel ) ;
@ -204,6 +207,12 @@ static void dump_video_param(AVCodecContext *avctx, QSVEncContext *q,
av_log ( avctx , AV_LOG_VERBOSE , " RateDistortionOpt: %s \n " ,
av_log ( avctx , AV_LOG_VERBOSE , " RateDistortionOpt: %s \n " ,
print_threestate ( co - > RateDistortionOpt ) ) ;
print_threestate ( co - > RateDistortionOpt ) ) ;
# if QSV_HAVE_EXT_HEVC_TILES
if ( avctx - > codec_id = = AV_CODEC_ID_HEVC )
av_log ( avctx , AV_LOG_VERBOSE , " NumTileColumns: % " PRIu16 " ; NumTileRows: % " PRIu16 " \n " ,
exthevctiles - > NumTileColumns , exthevctiles - > NumTileRows ) ;
# endif
# if QSV_HAVE_CO2
# if QSV_HAVE_CO2
av_log ( avctx , AV_LOG_VERBOSE ,
av_log ( avctx , AV_LOG_VERBOSE ,
" RecoveryPointSEI: %s IntRefType: % " PRIu16 " ; IntRefCycleSize: % " PRIu16 " ; IntRefQPDelta: % " PRId16 " \n " ,
" RecoveryPointSEI: %s IntRefType: % " PRIu16 " ; IntRefCycleSize: % " PRIu16 " ; IntRefQPDelta: % " PRId16 " \n " ,
@ -771,6 +780,16 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
}
# endif
# endif
# if QSV_HAVE_EXT_HEVC_TILES
if ( avctx - > codec_id = = AV_CODEC_ID_HEVC ) {
q - > exthevctiles . Header . BufferId = MFX_EXTBUFF_HEVC_TILES ;
q - > exthevctiles . Header . BufferSz = sizeof ( q - > exthevctiles ) ;
q - > exthevctiles . NumTileColumns = q - > tile_cols ;
q - > exthevctiles . NumTileRows = q - > tile_rows ;
q - > extparam_internal [ q - > nb_extparam_internal + + ] = ( mfxExtBuffer * ) & q - > exthevctiles ;
}
# endif
if ( ! check_enc_param ( avctx , q ) ) {
if ( ! check_enc_param ( avctx , q ) ) {
av_log ( avctx , AV_LOG_ERROR ,
av_log ( avctx , AV_LOG_ERROR ,
" some encoding parameters are not supported by the QSV "
" some encoding parameters are not supported by the QSV "
@ -889,7 +908,14 @@ static int qsv_retrieve_enc_params(AVCodecContext *avctx, QSVEncContext *q)
} ;
} ;
# endif
# endif
mfxExtBuffer * ext_buffers [ 2 + QSV_HAVE_CO2 + QSV_HAVE_CO3 + QSV_HAVE_CO_VPS ] ;
# if QSV_HAVE_EXT_HEVC_TILES
mfxExtHEVCTiles hevc_tile_buf = {
. Header . BufferId = MFX_EXTBUFF_HEVC_TILES ,
. Header . BufferSz = sizeof ( hevc_tile_buf ) ,
} ;
# endif
mfxExtBuffer * ext_buffers [ 2 + QSV_HAVE_CO2 + QSV_HAVE_CO3 + QSV_HAVE_CO_VPS + QSV_HAVE_EXT_HEVC_TILES ] ;
int need_pps = avctx - > codec_id ! = AV_CODEC_ID_MPEG2VIDEO ;
int need_pps = avctx - > codec_id ! = AV_CODEC_ID_MPEG2VIDEO ;
int ret , ext_buf_num = 0 , extradata_offset = 0 ;
int ret , ext_buf_num = 0 , extradata_offset = 0 ;
@ -907,6 +933,10 @@ static int qsv_retrieve_enc_params(AVCodecContext *avctx, QSVEncContext *q)
if ( q - > hevc_vps )
if ( q - > hevc_vps )
ext_buffers [ ext_buf_num + + ] = ( mfxExtBuffer * ) & extradata_vps ;
ext_buffers [ ext_buf_num + + ] = ( mfxExtBuffer * ) & extradata_vps ;
# endif
# endif
# if QSV_HAVE_EXT_HEVC_TILES
if ( avctx - > codec_id = = AV_CODEC_ID_HEVC )
ext_buffers [ ext_buf_num + + ] = ( mfxExtBuffer * ) & hevc_tile_buf ;
# endif
q - > param . ExtParam = ext_buffers ;
q - > param . ExtParam = ext_buffers ;
q - > param . NumExtParam = ext_buf_num ;
q - > param . NumExtParam = ext_buf_num ;