]> git.sesse.net Git - nageru/blobdiff - x264_speed_control.h
Export some metrics from x264 speed control.
[nageru] / x264_speed_control.h
index de88f66705a7f15a068c91cb84f6e3e815852c34..8a1f344db847cc2d8daaf5747378ede9cbee96d6 100644 (file)
@@ -44,6 +44,7 @@
 // some cleanup, but it's much, much better than just using a static preset.
 
 #include <stdint.h>
+#include <atomic>
 #include <chrono>
 #include <functional>
 
@@ -53,6 +54,8 @@ extern "C" {
 
 #include "x264_dynamic.h"
 
+#define SC_PRESETS 26
+
 class X264SpeedControl {
 public:
        // x264: Encoding object we are using; must be opened. Assumed to be
@@ -127,4 +130,11 @@ private:
        } stat;
 
        std::function<void(x264_param_t *)> override_func = nullptr;
+
+       // Metrics.
+       std::atomic<int64_t> metric_x264_speedcontrol_preset_used_frames[SC_PRESETS]{{0}};
+       std::atomic<double> metric_x264_speedcontrol_buffer_available_seconds{0.0};
+       std::atomic<double> metric_x264_speedcontrol_buffer_size_seconds{0.0};
+       std::atomic<int64_t> metric_x264_speedcontrol_idle_frames{0};
+       std::atomic<int64_t> metric_x264_speedcontrol_late_frames{0};
 };