#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>
class ChromaSubsampler;
class DISComputeFlow;
class Interpolate;
-class Mux;
class QSurface;
class QSurfaceFormat;
class YCbCrConverter;
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;
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.
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)