X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fvideo_encoder.h;h=7a5fef1ac4dfd9cadc07bc6492b1281213a327f4;hb=8bb8bb7cc9700befab35a8cc2c4b7a88f0638af9;hp=76dd92fa12cb12ef7dc2d439f9f335d75dcaf6b4;hpb=131a051c4cd3719a9be415386fdf0f4e15da7c66;p=nageru diff --git a/nageru/video_encoder.h b/nageru/video_encoder.h index 76dd92f..7a5fef1 100644 --- a/nageru/video_encoder.h +++ b/nageru/video_encoder.h @@ -24,6 +24,7 @@ extern "C" { #include "shared/ref_counted_gl_sync.h" class AudioEncoder; +class AV1Encoder; class DiskSpaceEstimator; class HTTPD; class Mux; @@ -51,7 +52,7 @@ public: // // The semantics of y_tex and cbcr_tex depend on is_zerocopy(): // - // - If false, the are input parameters, ie., the caller + // - If false, they are input parameters, ie., the caller // allocates textures. (The contents are not read before // end_frame() is called.) // - If true, they are output parameters, ie., VideoEncoder @@ -78,7 +79,7 @@ private: static int write_packet2_thunk(void *opaque, uint8_t *buf, int buf_size, AVIODataMarkerType type, int64_t time); int write_packet2(uint8_t *buf, int buf_size, AVIODataMarkerType type, int64_t time); - AVOutputFormat *oformat; + const AVOutputFormat *oformat; mutable std::mutex qs_mu, qs_audio_mu; std::unique_ptr quicksync_encoder; // Under _and_ . movit::ResourcePool *resource_pool; @@ -93,6 +94,10 @@ private: std::unique_ptr stream_mux; // To HTTP. std::unique_ptr stream_audio_encoder; std::unique_ptr x264_encoder; // nullptr if not using x264. + std::unique_ptr x264_disk_encoder; // nullptr if not using x264, or if not having separate disk encodes. +#ifdef HAVE_AV1 + std::unique_ptr av1_encoder; // nullptr if not using SVT-AV1. +#endif std::string stream_mux_header; MuxMetrics stream_mux_metrics;