]> git.sesse.net Git - nageru/blobdiff - futatabi/video_stream.h
Fix a dangling reference (found by GCC 14).
[nageru] / futatabi / video_stream.h
index f156be9af662578ee96cabec201f3337a08b09bc..c83a4849d07286cb3719bc906d6c96aae529651c 100644 (file)
@@ -12,6 +12,7 @@ extern "C" {
 #include "frame_on_disk.h"
 #include "jpeg_frame_view.h"
 #include "queue_spot_holder.h"
+#include "shared/mux.h"
 #include "shared/ref_counted_gl_sync.h"
 
 #include <atomic>
@@ -29,7 +30,6 @@ extern "C" {
 class ChromaSubsampler;
 class DISComputeFlow;
 class Interpolate;
-class Mux;
 class QSurface;
 class QSurfaceFormat;
 class YCbCrConverter;
@@ -135,6 +135,7 @@ private:
                float alpha;
                BorrowedInterpolatedFrameResources resources;
                RefCountedGLsync fence;  // Set when the interpolated image is read back to the CPU.
+               std::chrono::steady_clock::time_point fence_created;
                GLuint flow_tex, output_tex, cbcr_tex;  // Released in the receiving thread; not really used for anything else. flow_tex will typically even be from a previous frame.
                FrameOnDisk id;
 
@@ -142,6 +143,7 @@ private:
                std::function<void(std::shared_ptr<Frame>)> display_decoded_func;  // Same, except for INTERPOLATED and FADED_INTERPOLATED.
 
                std::string subtitle;  // Blank for none.
+               std::string exif_data;  // Blank for none.
 
                // Audio, in stereo interleaved 32-bit PCM. If empty and not of type SILENCE, one frame's worth of silence samples
                // is synthesized.
@@ -174,6 +176,7 @@ private:
        FrameOnDisk last_frame1, last_frame2;
 
        std::string last_frame;
+       Mux::WithSubtitles with_subtitles;  // true for streaming, false for export to file.
 };
 
 #endif  // !defined(_VIDEO_STREAM_H)