X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=input_state.h;h=2f33654537b9cd9bd6ff78a3b6bd86977af1d64f;hp=26015ef569b85d61f95af40e21c17a4a537d7423;hb=refs%2Fheads%2Fcef;hpb=196392c483a9cbf7fd7b572d9242aa283031453f diff --git a/input_state.h b/input_state.h index 26015ef..2f33654 100644 --- a/input_state.h +++ b/input_state.h @@ -1,6 +1,8 @@ #ifndef _INPUT_STATE_H #define _INPUT_STATE_H 1 +#include + #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)