]> git.sesse.net Git - nageru/blobdiff - input_state.h
Fix an issue where the mixer lagging too much behind CEF would cause us to display...
[nageru] / input_state.h
index 26015ef569b85d61f95af40e21c17a4a537d7423..2f33654537b9cd9bd6ff78a3b6bd86977af1d64f 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef _INPUT_STATE_H
 #define _INPUT_STATE_H 1
 
+#include <movit/image_format.h>
+
 #include "defs.h"
 #include "ref_counted_frame.h"
 
@@ -13,12 +15,20 @@ struct BufferedFrame {
 // In particular, this is captured by Theme::get_chain(),
 // so that it can hold on to all the frames it needs for rendering.
 struct InputState {
-       // For each card, the last three frames (or fields), with 0 being the
+       // For each card, the last five frames (or fields), with 0 being the
        // most recent one. Note that we only need the actual history if we have
        // interlaced output (for deinterlacing), so if we detect progressive input,
        // we immediately clear out all history and all entries will point to the same
        // frame.
-       BufferedFrame buffered_frames[MAX_CARDS][FRAME_HISTORY_LENGTH];
+       BufferedFrame buffered_frames[MAX_VIDEO_CARDS][FRAME_HISTORY_LENGTH];
+
+       // For each card, the current Y'CbCr input settings. Ignored for BGRA inputs.
+       // If ycbcr_coefficients_auto = true for a given card, the others are ignored
+       // for that card (SD is taken to be Rec. 601, HD is taken to be Rec. 709,
+       // both limited range).
+       bool ycbcr_coefficients_auto[MAX_VIDEO_CARDS];
+       movit::YCbCrLumaCoefficients ycbcr_coefficients[MAX_VIDEO_CARDS];
+       bool full_range[MAX_VIDEO_CARDS];
 };
 
 #endif  // !defined(_INPUT_STATE_H)