X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fffmpeg_capture.h;h=fc584827a373e791ae85123a3a58de3d553b72c7;hb=84e8b42b69804464ffb978ea4a2d0b700fe17d89;hp=2ab9481aad6d351e5597f86cc0df3315a39d6606;hpb=11b2ae4ae768b87a4af6f0f50ba39bd75133dbb4;p=nageru diff --git a/nageru/ffmpeg_capture.h b/nageru/ffmpeg_capture.h index 2ab9481..fc58482 100644 --- a/nageru/ffmpeg_capture.h +++ b/nageru/ffmpeg_capture.h @@ -38,6 +38,7 @@ extern "C" { #include +#include #include #include #include @@ -288,6 +289,10 @@ private: std::atomic should_interrupt{false}; bool last_frame_was_connected = true; + // TODO: Replace with std::optional if we go C++17. + bool frame_timeout_valid = false; // If true, will time out any reads after ten seconds. + std::chrono::steady_clock::time_point frame_timeout_started; // Only relevant if frame_timeout_valid == true. + bool has_dequeue_callbacks = false; std::function dequeue_init_callback = nullptr; std::function dequeue_cleanup_callback = nullptr; @@ -326,7 +331,7 @@ private: // Audio resampler. SwrContext *resampler = nullptr; AVSampleFormat last_src_format, last_dst_format; - int64_t last_channel_layout; + AVChannelLayout last_channel_layout; int last_sample_rate; // Subtitles (no decoding done, really).