X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=x264_encoder.h;h=bb9f1dc066dd43b0b544b744452a1c93251a56da;hb=a564f192f808841ad8dfa9a4aa6c8db3335bd6fd;hp=729cb7f02bcc0063861aa946ec700e6321e566b8;hpb=3be00c8dd8b841cecc44f57234b9fc2d3a94cb45;p=nageru diff --git a/x264_encoder.h b/x264_encoder.h index 729cb7f..bb9f1dc 100644 --- a/x264_encoder.h +++ b/x264_encoder.h @@ -31,6 +31,7 @@ extern "C" { } class Mux; +class X264SpeedControl; class X264Encoder { public: @@ -49,6 +50,10 @@ public: std::string get_global_headers() const { return global_headers; } + void change_bitrate(unsigned rate_kbit) { + new_bitrate_kbit = rate_kbit; + } + private: struct QueuedFrame { int64_t pts, duration; @@ -72,6 +77,9 @@ private: std::thread encoder_thread; std::atomic should_quit{false}; x264_t *x264; + std::unique_ptr speed_control; + + std::atomic new_bitrate_kbit{0}; // 0 for no change. // Protects everything below it. std::mutex mu;