h->param.i_bframe_bias = x264_clip3( h->param.i_bframe_bias, -90, 100 );
h->param.b_bframe_pyramid = h->param.b_bframe_pyramid && h->param.i_bframe > 1;
h->param.b_bframe_adaptive = h->param.b_bframe_adaptive && h->param.i_bframe > 0;
+ h->param.analyse.b_weighted_bipred = h->param.analyse.b_weighted_bipred && h->param.i_bframe > 0;
h->mb.b_direct_auto_write = h->param.analyse.i_direct_mv_pred == X264_DIRECT_PRED_AUTO
&& h->param.i_bframe
&& ( h->param.rc.b_stat_write || !h->param.rc.b_stat_read );
BOOLIFY( b_cabac );
BOOLIFY( b_deblocking_filter );
BOOLIFY( analyse.b_transform_8x8 );
- BOOLIFY( analyse.b_weighted_bipred );
BOOLIFY( analyse.b_bidir_me );
BOOLIFY( analyse.b_chroma_me );
BOOLIFY( analyse.b_fast_pskip );
sps->i_profile_idc = PROFILE_BASELINE;
sps->i_level_idc = param->i_level_idc;
- sps->b_constraint_set0 = 0;
- sps->b_constraint_set1 = 0;
+ sps->b_constraint_set0 = sps->i_profile_idc == PROFILE_BASELINE;
+ /* x264 doesn't support the features that are in Baseline and not in Main,
+ * namely arbitrary_slice_order and slice_groups. */
+ sps->b_constraint_set1 = sps->i_profile_idc <= PROFILE_MAIN;
+ /* Never set constraint_set2, it is not necessary and not used in real world. */
sps->b_constraint_set2 = 0;
sps->i_log2_max_frame_num = 4; /* at least 4 */