Browse Source

obs-ffmpeg: Fix non-exhaustive switch statements

PatTheMav 2 years ago
parent
commit
6e0d802874

+ 5 - 9
plugins/obs-ffmpeg/obs-ffmpeg-av1.c

@@ -209,21 +209,17 @@ static void *av1_create_internal(obs_data_t *settings, obs_encoder_t *encoder,
 {
 	video_t *video = obs_encoder_video(encoder);
 	const struct video_output_info *voi = video_output_get_info(video);
-	switch (voi->format) {
-	case VIDEO_FORMAT_I010:
-	case VIDEO_FORMAT_P010:
-		break;
-	default:
-		switch (voi->colorspace) {
-		case VIDEO_CS_2100_PQ:
-		case VIDEO_CS_2100_HLG: {
+
+	if (voi->format != VIDEO_FORMAT_P010 &&
+	    voi->format != VIDEO_FORMAT_I010) {
+		if (voi->colorspace == VIDEO_CS_2100_PQ ||
+		    voi->colorspace == VIDEO_CS_2100_HLG) {
 			const char *const text =
 				obs_module_text("AV1.8bitUnsupportedHdr");
 			obs_encoder_set_last_error(encoder, text);
 			blog(LOG_ERROR, "[AV1 encoder] %s", text);
 			return NULL;
 		}
-		}
 	}
 
 	struct av1_encoder *enc = bzalloc(sizeof(*enc));

+ 2 - 0
plugins/obs-ffmpeg/obs-ffmpeg-formats.h

@@ -115,6 +115,8 @@ convert_ffmpeg_sample_format(enum AVSampleFormat format)
 		return AUDIO_FORMAT_32BIT_PLANAR;
 	case AV_SAMPLE_FMT_FLTP:
 		return AUDIO_FORMAT_FLOAT_PLANAR;
+	default:
+		return AUDIO_FORMAT_16BIT;
 	}
 
 	/* shouldn't get here */

+ 6 - 8
plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c

@@ -343,16 +343,15 @@ static void *h264_nvenc_create(obs_data_t *settings, obs_encoder_t *encoder)
 		return NULL;
 	}
 	default:
-		switch (voi->colorspace) {
-		case VIDEO_CS_2100_PQ:
-		case VIDEO_CS_2100_HLG: {
+		if (voi->colorspace == VIDEO_CS_2100_PQ ||
+		    voi->colorspace == VIDEO_CS_2100_HLG) {
 			const char *const text =
 				obs_module_text("NVENC.8bitUnsupportedHdr");
 			obs_encoder_set_last_error(encoder, text);
 			blog(LOG_ERROR, "[NVENC encoder] %s", text);
 			return NULL;
 		}
-		}
+		break;
 	}
 
 	bool psycho_aq = obs_data_get_bool(settings, "psycho_aq");
@@ -383,16 +382,15 @@ static void *hevc_nvenc_create(obs_data_t *settings, obs_encoder_t *encoder)
 	case VIDEO_FORMAT_P010:
 		break;
 	default:
-		switch (voi->colorspace) {
-		case VIDEO_CS_2100_PQ:
-		case VIDEO_CS_2100_HLG: {
+		if (voi->colorspace == VIDEO_CS_2100_PQ ||
+		    voi->colorspace == VIDEO_CS_2100_HLG) {
 			const char *const text =
 				obs_module_text("NVENC.8bitUnsupportedHdr");
 			obs_encoder_set_last_error(encoder, text);
 			blog(LOG_ERROR, "[NVENC encoder] %s", text);
 			return NULL;
 		}
-		}
+		break;
 	}
 
 	bool psycho_aq = obs_data_get_bool(settings, "psycho_aq");

+ 2 - 0
plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c

@@ -277,6 +277,8 @@ static bool vaapi_update(void *data, obs_data_t *settings)
 		enc->context->color_primaries = AVCOL_PRI_BT709;
 		colorspace = AVCOL_SPC_BT709;
 		break;
+	default:
+		break;
 	}
 
 	enc->context->colorspace = colorspace;