@ -200,35 +200,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
x264_param_default ( & x4 - > params ) ;
x4 - > params . b_cabac = avctx - > coder_type = = FF_CODER_TYPE_AC ;
x4 - > params . i_bframe_adaptive = avctx - > b_frame_strategy ;
x4 - > params . i_keyint_min = avctx - > keyint_min ;
if ( x4 - > params . i_keyint_min > x4 - > params . i_keyint_max )
x4 - > params . i_keyint_min = x4 - > params . i_keyint_max ;
x4 - > params . b_deblocking_filter = avctx - > flags & CODEC_FLAG_LOOP_FILTER ;
if ( avctx - > me_method = = ME_EPZS )
x4 - > params . analyse . i_me_method = X264_ME_DIA ;
else if ( avctx - > me_method = = ME_HEX )
x4 - > params . analyse . i_me_method = X264_ME_HEX ;
else if ( avctx - > me_method = = ME_UMH )
x4 - > params . analyse . i_me_method = X264_ME_UMH ;
else if ( avctx - > me_method = = ME_FULL )
x4 - > params . analyse . i_me_method = X264_ME_ESA ;
else if ( avctx - > me_method = = ME_TESA )
x4 - > params . analyse . i_me_method = X264_ME_TESA ;
else x4 - > params . analyse . i_me_method = X264_ME_HEX ;
x4 - > params . analyse . i_me_range = avctx - > me_range ;
x4 - > params . analyse . i_subpel_refine = avctx - > me_subpel_quality ;
x4 - > params . analyse . b_chroma_me = avctx - > me_cmp & FF_CMP_CHROMA ;
x4 - > params . analyse . i_trellis = avctx - > trellis ;
x4 - > params . analyse . i_noise_reduction = avctx - > noise_reduction ;
if ( x4 - > preset | | x4 - > tune )
if ( x264_param_default_preset ( & x4 - > params , x4 - > preset , x4 - > tune ) < 0 ) {
av_log ( avctx , AV_LOG_ERROR , " Error setting preset/tune %s/%s. \n " , x4 - > preset , x4 - > tune ) ;
@ -332,6 +305,17 @@ static av_cold int X264_init(AVCodecContext *avctx)
x4 - > params . rc . b_mb_tree = ! ! ( avctx - > flags2 & CODEC_FLAG2_MBTREE ) ;
# endif
if ( avctx - > me_method = = ME_EPZS )
x4 - > params . analyse . i_me_method = X264_ME_DIA ;
else if ( avctx - > me_method = = ME_HEX )
x4 - > params . analyse . i_me_method = X264_ME_HEX ;
else if ( avctx - > me_method = = ME_UMH )
x4 - > params . analyse . i_me_method = X264_ME_UMH ;
else if ( avctx - > me_method = = ME_FULL )
x4 - > params . analyse . i_me_method = X264_ME_ESA ;
else if ( avctx - > me_method = = ME_TESA )
x4 - > params . analyse . i_me_method = X264_ME_TESA ;
if ( avctx - > gop_size > = 0 )
x4 - > params . i_keyint_max = avctx - > gop_size ;
if ( avctx - > max_b_frames > = 0 )
@ -350,6 +334,22 @@ static av_cold int X264_init(AVCodecContext *avctx)
x4 - > params . rc . f_qcompress = avctx - > qcompress ; /* 0.0 => cbr, 1.0 => constant qp */
if ( avctx - > refs > = 0 )
x4 - > params . i_frame_reference = avctx - > refs ;
if ( avctx - > trellis > = 0 )
x4 - > params . analyse . i_trellis = avctx - > trellis ;
if ( avctx - > me_range > = 0 )
x4 - > params . analyse . i_me_range = avctx - > me_range ;
if ( avctx - > noise_reduction > = 0 )
x4 - > params . analyse . i_noise_reduction = avctx - > noise_reduction ;
if ( avctx - > me_subpel_quality > = 0 )
x4 - > params . analyse . i_subpel_refine = avctx - > me_subpel_quality ;
if ( avctx - > b_frame_strategy > = 0 )
x4 - > params . i_bframe_adaptive = avctx - > b_frame_strategy ;
if ( avctx - > keyint_min > = 0 )
x4 - > params . i_keyint_min = avctx - > keyint_min ;
if ( avctx - > coder_type > = 0 )
x4 - > params . b_cabac = avctx - > coder_type = = FF_CODER_TYPE_AC ;
if ( avctx - > me_cmp > = 0 )
x4 - > params . analyse . b_chroma_me = avctx - > me_cmp & FF_CMP_CHROMA ;
if ( x4 - > aq_mode > = 0 )
x4 - > params . rc . i_aq_mode = x4 - > aq_mode ;
@ -517,6 +517,15 @@ static const AVCodecDefault x264_defaults[] = {
{ " qcomp " , " -1 " } ,
{ " refs " , " -1 " } ,
{ " sc_threshold " , " -1 " } ,
{ " trellis " , " -1 " } ,
{ " nr " , " -1 " } ,
{ " me_range " , " -1 " } ,
{ " me_method " , " -1 " } ,
{ " subq " , " -1 " } ,
{ " b_strategy " , " -1 " } ,
{ " keyint_min " , " -1 " } ,
{ " coder " , " -1 " } ,
{ " cmp " , " -1 " } ,
{ " threads " , AV_STRINGIFY ( X264_THREADS_AUTO ) } ,
{ NULL } ,
} ;