8d125dc01d
Fixes handling of the `obs_source_frame::full_range` member variable, which is often set to false by default by many plugins even when using RGB, which would cause RGB to be marked as "partial range". This change is crucial for when partial range RBG support is implemented. Adds `obs_source_frame2` structure that replaces the `full_range` member variable with a `range` variable, which uses the `video_range_type` enum to allow handling default range values. This member variable treats VIDEO_RANGE_DEFAULT as full range if the format is RGB, and partial range if the format is YUV. Also adds `obs_source_output_video2` and `obs_source_preload_video2` functions which use the `obs_source_frame2` structure instead of the `obs_source_frame` structure. When using the original `obs_source_frame`, `obs_source_output_video`, and `obs_source_preload_video` functions, RGB will always be full range by default for backward compatibility purposes.