From fb7a9edadc7276683fbf723164b8fcc5eb83a053 Mon Sep 17 00:00:00 2001 From: PatTheMav Date: Thu, 16 Feb 2023 20:53:24 +0100 Subject: [PATCH] libobs: Fix non-exhaustive switch statements --- libobs/graphics/graphics-ffmpeg.c | 4 +-- libobs/media-io/video-io.c | 3 +++ libobs/media-io/video-matrices.c | 15 ++++++----- libobs/obs-scene.c | 44 +++++++++++-------------------- libobs/obs-source-deinterlace.c | 6 +++++ libobs/obs-source.c | 17 ++++++++++++ libobs/obs.c | 18 ++++++++++--- 7 files changed, 66 insertions(+), 41 deletions(-) diff --git a/libobs/graphics/graphics-ffmpeg.c b/libobs/graphics/graphics-ffmpeg.c index a94d41eb3..87a62d9b6 100644 --- a/libobs/graphics/graphics-ffmpeg.c +++ b/libobs/graphics/graphics-ffmpeg.c @@ -626,9 +626,9 @@ static inline enum gs_color_format convert_format(enum AVPixelFormat format) return GS_BGRX; case AV_PIX_FMT_RGBA64BE: return GS_RGBA16; + default: + return GS_BGRX; } - - return GS_BGRX; } uint8_t *gs_create_texture_file_data(const char *file, diff --git a/libobs/media-io/video-io.c b/libobs/media-io/video-io.c index 32d8d73b9..cc772650f 100644 --- a/libobs/media-io/video-io.c +++ b/libobs/media-io/video-io.c @@ -309,6 +309,9 @@ static enum video_colorspace collapse_space(enum video_colorspace cs) break; case VIDEO_CS_2100_HLG: cs = VIDEO_CS_2100_PQ; + break; + default: + break; } return cs; diff --git a/libobs/media-io/video-matrices.c b/libobs/media-io/video-matrices.c index 4e9239b2c..a05431305 100644 --- a/libobs/media-io/video-matrices.c +++ b/libobs/media-io/video-matrices.c @@ -242,12 +242,10 @@ bool video_format_get_parameters(enum video_colorspace color_space, enum video_range_type range, float matrix[16], float range_min[3], float range_max[3]) { - uint32_t bpc = 8; - switch (color_space) { - case VIDEO_CS_2100_PQ: - case VIDEO_CS_2100_HLG: - bpc = 10; - } + uint32_t bpc = (color_space == VIDEO_CS_2100_PQ || + color_space == VIDEO_CS_2100_HLG) + ? 10 + : 8; return video_format_get_parameters_for_bpc(color_space, range, matrix, range_min, range_max, bpc); @@ -260,7 +258,7 @@ bool video_format_get_parameters_for_format(enum video_colorspace color_space, float range_min[3], float range_max[3]) { - uint32_t bpc = 8; + uint32_t bpc; switch (format) { case VIDEO_FORMAT_I010: case VIDEO_FORMAT_P010: @@ -271,6 +269,9 @@ bool video_format_get_parameters_for_format(enum video_colorspace color_space, case VIDEO_FORMAT_YA2L: bpc = 12; break; + default: + bpc = 8; + break; } return video_format_get_parameters_for_bpc(color_space, range, matrix, diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index c415268b8..d2bceb142 100644 --- a/libobs/obs-scene.c +++ b/libobs/obs-scene.c @@ -642,24 +642,19 @@ static void render_item_texture(struct obs_scene_item *item, tech_name = "DrawUpscaleMultiply"; break; case GS_CS_709_EXTENDED: - switch (current_space) { - case GS_CS_SRGB: - case GS_CS_SRGB_16F: + if (current_space == GS_CS_SRGB || + current_space == GS_CS_SRGB_16F) tech_name = "DrawUpscaleTonemap"; - break; - case GS_CS_709_SCRGB: + else if (current_space == GS_CS_709_SCRGB) tech_name = "DrawUpscaleMultiply"; - } break; case GS_CS_709_SCRGB: - switch (current_space) { - case GS_CS_SRGB: - case GS_CS_SRGB_16F: + if (current_space == GS_CS_SRGB || + current_space == GS_CS_SRGB_16F) tech_name = "DrawUpscaleMultiplyTonemap"; - break; - case GS_CS_709_EXTENDED: + else if (current_space == GS_CS_709_EXTENDED) tech_name = "DrawUpscaleMultiply"; - } + break; } } else { switch (source_space) { @@ -669,24 +664,19 @@ static void render_item_texture(struct obs_scene_item *item, tech_name = "DrawMultiply"; break; case GS_CS_709_EXTENDED: - switch (current_space) { - case GS_CS_SRGB: - case GS_CS_SRGB_16F: + if (current_space == GS_CS_SRGB || + current_space == GS_CS_SRGB_16F) tech_name = "DrawTonemap"; - break; - case GS_CS_709_SCRGB: + else if (current_space == GS_CS_709_SCRGB) tech_name = "DrawMultiply"; - } break; case GS_CS_709_SCRGB: - switch (current_space) { - case GS_CS_SRGB: - case GS_CS_SRGB_16F: + if (current_space == GS_CS_SRGB || + current_space == GS_CS_SRGB_16F) tech_name = "DrawMultiplyTonemap"; - break; - case GS_CS_709_EXTENDED: + else if (current_space == GS_CS_709_EXTENDED) tech_name = "DrawMultiply"; - } + break; } } @@ -1524,11 +1514,9 @@ scene_video_get_color_space(void *data, size_t count, enum gs_color_space space = GS_CS_SRGB; struct obs_video_info ovi; if (obs_get_video_info(&ovi)) { - switch (ovi.colorspace) { - case VIDEO_CS_2100_PQ: - case VIDEO_CS_2100_HLG: + if (ovi.colorspace == VIDEO_CS_2100_PQ || + ovi.colorspace == VIDEO_CS_2100_HLG) space = GS_CS_709_EXTENDED; - } } return space; diff --git a/libobs/obs-source-deinterlace.c b/libobs/obs-source-deinterlace.c index 1f1f5d4ec..05f756353 100644 --- a/libobs/obs-source-deinterlace.c +++ b/libobs/obs-source-deinterlace.c @@ -400,6 +400,9 @@ void deinterlace_render(obs_source_t *s) case GS_CS_709_SCRGB: tech_name = "DrawMultiply"; multiplier = obs_get_video_sdr_white_level() / 80.0f; + break; + case GS_CS_709_EXTENDED: + break; } break; case GS_CS_709_SCRGB: @@ -412,6 +415,9 @@ void deinterlace_render(obs_source_t *s) case GS_CS_709_EXTENDED: tech_name = "DrawMultiply"; multiplier = 80.0f / obs_get_video_sdr_white_level(); + break; + case GS_CS_709_SCRGB: + break; } } diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 39c555020..64a27a784 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -2516,6 +2516,9 @@ static inline void obs_source_render_async_video(obs_source_t *source) tech_name = "DrawMultiply"; multiplier = obs_get_video_sdr_white_level() / 80.0f; + break; + case GS_CS_709_EXTENDED: + break; } break; case GS_CS_709_SCRGB: @@ -2531,6 +2534,9 @@ static inline void obs_source_render_async_video(obs_source_t *source) tech_name = "DrawMultiply"; multiplier = 80.0f / obs_get_video_sdr_white_level(); + break; + case GS_CS_709_SCRGB: + break; } } @@ -2655,6 +2661,11 @@ static void source_render(obs_source_t *source, gs_effect_t *effect) case GS_CS_709_SCRGB: convert_tech = "DrawMultiply"; multiplier = obs_get_video_sdr_white_level() / 80.0f; + break; + case GS_CS_SRGB: + break; + case GS_CS_SRGB_16F: + break; } break; case GS_CS_709_EXTENDED: @@ -2666,6 +2677,9 @@ static void source_render(obs_source_t *source, gs_effect_t *effect) case GS_CS_709_SCRGB: convert_tech = "DrawMultiply"; multiplier = obs_get_video_sdr_white_level() / 80.0f; + break; + case GS_CS_709_EXTENDED: + break; } break; case GS_CS_709_SCRGB: @@ -2678,6 +2692,9 @@ static void source_render(obs_source_t *source, gs_effect_t *effect) case GS_CS_709_EXTENDED: convert_tech = "DrawMultiply"; multiplier = 80.0f / obs_get_video_sdr_white_level(); + break; + case GS_CS_709_SCRGB: + break; } } diff --git a/libobs/obs.c b/libobs/obs.c index 2131733d2..db39833ce 100644 --- a/libobs/obs.c +++ b/libobs/obs.c @@ -108,6 +108,9 @@ static inline void calc_gpu_conversion_sizes(struct obs_core_video_mix *video) video->conversion_techs[0] = "P010_SRGB_Y"; video->conversion_techs[1] = "P010_SRGB_UV"; } + break; + default: + break; } } @@ -234,6 +237,8 @@ static bool obs_init_gpu_conversion(struct obs_core_video_mix *video) if (!video->convert_textures[0] || !video->convert_textures[1]) success = false; break; + default: + break; } if (!success) { @@ -345,6 +350,9 @@ static bool obs_init_textures(struct obs_core_video_mix *video) case VIDEO_FORMAT_I412: case VIDEO_FORMAT_YA2L: format = GS_RGBA16F; + break; + default: + break; } for (size_t i = 0; i < NUM_TEXTURES; i++) { @@ -390,11 +398,10 @@ static bool obs_init_textures(struct obs_core_video_mix *video) space = GS_CS_709_EXTENDED; break; default: - switch (info->format) { - case VIDEO_FORMAT_I010: - case VIDEO_FORMAT_P010: + if (info->format == VIDEO_FORMAT_I010 || + info->format == VIDEO_FORMAT_P010) space = GS_CS_SRGB_16F; - } + break; } video->render_texture = @@ -2051,6 +2058,9 @@ static void obs_render_main_texture_internal(enum gs_blend_type src_c, case GS_CS_709_SCRGB: tech_name = "DrawMultiply"; multiplier = obs_get_video_sdr_white_level() / 80.f; + break; + case GS_CS_709_EXTENDED: + break; } const bool previous = gs_framebuffer_srgb_enabled();