]> git.sesse.net Git - nageru/blobdiff - video_encoder.h
Add an editor for the MIDI mappings.
[nageru] / video_encoder.h
index fc3a570a736c4867e002ec27987505d7099c6de0..9a9f861839e1834f3b2228c492527731928f3242 100644 (file)
@@ -16,6 +16,7 @@
 #include "ref_counted_frame.h"
 #include "ref_counted_gl_sync.h"
 
+class DiskSpaceEstimator;
 class HTTPD;
 class QSurface;
 class QuickSyncEncoder;
@@ -27,7 +28,7 @@ class ResourcePool;
 
 class VideoEncoder {
 public:
-       VideoEncoder(movit::ResourcePool *resource_pool, QSurface *surface, const std::string &va_display, int width, int height, HTTPD *httpd);
+       VideoEncoder(movit::ResourcePool *resource_pool, QSurface *surface, const std::string &va_display, int width, int height, HTTPD *httpd, DiskSpaceEstimator *disk_space_estimator);
        ~VideoEncoder();
 
        void add_audio(int64_t pts, std::vector<float> audio);
@@ -37,6 +38,8 @@ public:
        // Does a cut of the disk stream immediately ("frame" is used for the filename only).
        void do_cut(int frame);
 
+       void change_x264_bitrate(unsigned rate_kbit);
+
 private:
        void open_output_stream();
        static int write_packet2_thunk(void *opaque, uint8_t *buf, int buf_size, AVIODataMarkerType type, int64_t time);
@@ -50,6 +53,7 @@ private:
        std::string va_display;
        int width, height;
        HTTPD *httpd;
+       DiskSpaceEstimator *disk_space_estimator;
 
        std::unique_ptr<Mux> stream_mux;  // To HTTP.
        std::unique_ptr<AudioEncoder> stream_audio_encoder;