using namespace std;
using namespace std::chrono;
+#define SC_PRESETS 26
+
X264SpeedControl::X264SpeedControl(x264_t *x264, float f_speed, int i_buffer_size, float f_buffer_init)
: dyn(load_x264_for_bit_depth(global_flags.x264_bit_depth)),
x264(x264), f_speed(f_speed)
metric_x264_speedcontrol_buffer_available_seconds = buffer_fill * 1e-6;
metric_x264_speedcontrol_buffer_size_seconds = buffer_size * 1e-6;
- global_metrics.add_histogram("x264_speedcontrol_preset_used_frames", {}, metric_x264_speedcontrol_preset_used_frames, SC_PRESETS);
+ metric_x264_speedcontrol_preset_used_frames.init_uniform(SC_PRESETS);
+ global_metrics.add("x264_speedcontrol_preset_used_frames", &metric_x264_speedcontrol_preset_used_frames);
global_metrics.add("x264_speedcontrol_buffer_available_seconds", &metric_x264_speedcontrol_buffer_available_seconds, Metrics::TYPE_GAUGE);
global_metrics.add("x264_speedcontrol_buffer_size_seconds", &metric_x264_speedcontrol_buffer_size_seconds, Metrics::TYPE_GAUGE);
global_metrics.add("x264_speedcontrol_idle_frames", &metric_x264_speedcontrol_idle_frames);
dyn.x264_encoder_reconfig(x264, &p);
preset = new_preset;
- ++metric_x264_speedcontrol_preset_used_frames[new_preset];
+ metric_x264_speedcontrol_preset_used_frames.count_event(new_preset);
}