]> git.sesse.net Git - nageru/blobdiff - x264_encoder.h
Write 1.4.0 changelog.
[nageru] / x264_encoder.h
index ef118c6f4410d7e3554aad2a4e8354d6875e1c0b..c71cba2f373e7bc3864a23224a734a17ffeb9ead 100644 (file)
 #define _X264ENCODE_H 1
 
 #include <stdint.h>
-
+#include <x264.h>
 #include <atomic>
 #include <condition_variable>
 #include <memory>
 #include <mutex>
-#include <thread>
 #include <queue>
+#include <string>
+#include <thread>
 
 extern "C" {
-#include "x264.h"
 #include <libavformat/avformat.h>
 }
 
@@ -50,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;
@@ -75,6 +79,8 @@ private:
        x264_t *x264;
        std::unique_ptr<X264SpeedControl> speed_control;
 
+       std::atomic<unsigned> new_bitrate_kbit{0};  // 0 for no change.
+
        // Protects everything below it.
        std::mutex mu;