X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fx264_encoder.cpp;h=b38711cb571c3085b6dfb72436ba5eacff665956;hb=cecd32b340ef23498d31095bfb4bb17f5877af7e;hp=6c46c98c689dbdd99e16275e9d3466a883e8dd9e;hpb=f34a3e1bbc207541842e0b54d5418d95bafc8e5b;p=nageru diff --git a/nageru/x264_encoder.cpp b/nageru/x264_encoder.cpp index 6c46c98..b38711c 100644 --- a/nageru/x264_encoder.cpp +++ b/nageru/x264_encoder.cpp @@ -60,16 +60,8 @@ void update_vbv_settings(x264_param_t *param) if (global_flags.x264_bitrate == -1) { return; } - if (global_flags.x264_vbv_buffer_size < 0) { - param->rc.i_vbv_buffer_size = param->rc.i_bitrate; // One-second VBV. - } else { - param->rc.i_vbv_buffer_size = global_flags.x264_vbv_buffer_size; - } - if (global_flags.x264_vbv_max_bitrate < 0) { - param->rc.i_vbv_max_bitrate = param->rc.i_bitrate; // CBR. - } else { - param->rc.i_vbv_max_bitrate = global_flags.x264_vbv_max_bitrate; - } + param->rc.i_vbv_buffer_size = param->rc.i_bitrate; // One-second VBV. + param->rc.i_vbv_max_bitrate = param->rc.i_bitrate; // CBR. } } // namespace @@ -212,16 +204,11 @@ void X264Encoder::init_x264() } else { param.rc.i_rc_method = X264_RC_ABR; param.rc.i_bitrate = bitrate; - } - if (!use_separate_disk_params) { - update_vbv_settings(¶m); - } - if (param.rc.i_vbv_max_bitrate > 0) { - // If the user wants VBV control to cap the max rate, it is - // also reasonable to assume that they are fine with the stream - // constantly being around that rate even for very low-complexity - // content; the obvious and extreme example being a static - // black picture. + + // If the user wants to cap the max rate, it is also reasonable + // to assume that they are fine with the stream constantly + // being around that rate even for very low-complexity content; + // the obvious and extreme example being a static black picture. // // One would think it's fine to have low-complexity content use // less bitrate, but it seems to cause problems in practice; @@ -243,6 +230,9 @@ void X264Encoder::init_x264() // thus ignores the parameter.) param.rc.b_filler = 1; } + if (!use_separate_disk_params) { + update_vbv_settings(¶m); + } // Occasionally players have problem with extremely low quantizers; // be on the safe side. Shouldn't affect quality in any meaningful way.