浏览代码

libobs: Fix video warnings

jpark37 6 年之前
父节点
当前提交
42bf026a49
共有 3 个文件被更改,包括 27 次插入13 次删除
  1. 5 4
      libobs/media-io/video-scaler-ffmpeg.c
  2. 0 1
      libobs/obs-source.c
  3. 22 8
      libobs/obs-video.c

+ 5 - 4
libobs/media-io/video-scaler-ffmpeg.c

@@ -29,14 +29,10 @@ static inline enum AVPixelFormat
 get_ffmpeg_video_format(enum video_format format)
 get_ffmpeg_video_format(enum video_format format)
 {
 {
 	switch (format) {
 	switch (format) {
-	case VIDEO_FORMAT_NONE:
-		return AV_PIX_FMT_NONE;
 	case VIDEO_FORMAT_I420:
 	case VIDEO_FORMAT_I420:
 		return AV_PIX_FMT_YUV420P;
 		return AV_PIX_FMT_YUV420P;
 	case VIDEO_FORMAT_NV12:
 	case VIDEO_FORMAT_NV12:
 		return AV_PIX_FMT_NV12;
 		return AV_PIX_FMT_NV12;
-	case VIDEO_FORMAT_YVYU:
-		return AV_PIX_FMT_NONE;
 	case VIDEO_FORMAT_YUY2:
 	case VIDEO_FORMAT_YUY2:
 		return AV_PIX_FMT_YUYV422;
 		return AV_PIX_FMT_YUYV422;
 	case VIDEO_FORMAT_UYVY:
 	case VIDEO_FORMAT_UYVY:
@@ -61,6 +57,11 @@ get_ffmpeg_video_format(enum video_format format)
 		return AV_PIX_FMT_YUVA422P;
 		return AV_PIX_FMT_YUVA422P;
 	case VIDEO_FORMAT_YUVA:
 	case VIDEO_FORMAT_YUVA:
 		return AV_PIX_FMT_YUVA444P;
 		return AV_PIX_FMT_YUVA444P;
+	case VIDEO_FORMAT_NONE:
+	case VIDEO_FORMAT_YVYU:
+	case VIDEO_FORMAT_AYUV:
+		/* not supported by FFmpeg */
+		return AV_PIX_FMT_NONE;
 	}
 	}
 
 
 	return AV_PIX_FMT_NONE;
 	return AV_PIX_FMT_NONE;

+ 0 - 1
libobs/obs-source.c

@@ -1355,7 +1355,6 @@ enum convert_type {
 	CONVERT_422,
 	CONVERT_422,
 	CONVERT_422_A,
 	CONVERT_422_A,
 	CONVERT_422_PACK,
 	CONVERT_422_PACK,
-	CONVERT_422_Y,
 	CONVERT_444,
 	CONVERT_444,
 	CONVERT_444_A,
 	CONVERT_444_A,
 	CONVERT_444_A_PACK,
 	CONVERT_444_A_PACK,

+ 22 - 8
libobs/obs-video.c

@@ -268,8 +268,8 @@ static inline gs_texture_t *render_output_texture(struct obs_core_video *video)
 	return target;
 	return target;
 }
 }
 
 
-static void render_convert_plane(gs_effect_t *effect, gs_texture_t *texture,
-				 gs_texture_t *target, const char *tech_name)
+static void render_convert_plane(gs_effect_t *effect, gs_texture_t *target,
+				 const char *tech_name)
 {
 {
 	gs_technique_t *tech = gs_effect_get_technique(effect, tech_name);
 	gs_technique_t *tech = gs_effect_get_technique(effect, tech_name);
 
 
@@ -317,8 +317,7 @@ static void render_convert_texture(struct obs_core_video *video,
 	if (video->convert_textures[0]) {
 	if (video->convert_textures[0]) {
 		gs_effect_set_texture(image, texture);
 		gs_effect_set_texture(image, texture);
 		gs_effect_set_vec4(color_vec0, &vec0);
 		gs_effect_set_vec4(color_vec0, &vec0);
-		render_convert_plane(effect, texture,
-				     video->convert_textures[0],
+		render_convert_plane(effect, video->convert_textures[0],
 				     video->conversion_techs[0]);
 				     video->conversion_techs[0]);
 
 
 		if (video->convert_textures[1]) {
 		if (video->convert_textures[1]) {
@@ -327,8 +326,7 @@ static void render_convert_texture(struct obs_core_video *video,
 			if (!video->convert_textures[2])
 			if (!video->convert_textures[2])
 				gs_effect_set_vec4(color_vec2, &vec2);
 				gs_effect_set_vec4(color_vec2, &vec2);
 			gs_effect_set_float(width_i, video->conversion_width_i);
 			gs_effect_set_float(width_i, video->conversion_width_i);
-			render_convert_plane(effect, texture,
-					     video->convert_textures[1],
+			render_convert_plane(effect, video->convert_textures[1],
 					     video->conversion_techs[1]);
 					     video->conversion_techs[1]);
 
 
 			if (video->convert_textures[2]) {
 			if (video->convert_textures[2]) {
@@ -337,8 +335,7 @@ static void render_convert_texture(struct obs_core_video *video,
 				gs_effect_set_float(width_i,
 				gs_effect_set_float(width_i,
 						    video->conversion_width_i);
 						    video->conversion_width_i);
 				render_convert_plane(
 				render_convert_plane(
-					effect, texture,
-					video->convert_textures[2],
+					effect, video->convert_textures[2],
 					video->conversion_techs[2]);
 					video->conversion_techs[2]);
 			}
 			}
 		}
 		}
@@ -640,6 +637,23 @@ static void set_gpu_converted_data(struct obs_core_video *video,
 
 
 			break;
 			break;
 		}
 		}
+
+		case VIDEO_FORMAT_NONE:
+		case VIDEO_FORMAT_YVYU:
+		case VIDEO_FORMAT_YUY2:
+		case VIDEO_FORMAT_UYVY:
+		case VIDEO_FORMAT_RGBA:
+		case VIDEO_FORMAT_BGRA:
+		case VIDEO_FORMAT_BGRX:
+		case VIDEO_FORMAT_Y800:
+		case VIDEO_FORMAT_BGR3:
+		case VIDEO_FORMAT_I422:
+		case VIDEO_FORMAT_I40A:
+		case VIDEO_FORMAT_I42A:
+		case VIDEO_FORMAT_YUVA:
+		case VIDEO_FORMAT_AYUV:
+			/* unimplemented */
+			;
 		}
 		}
 	}
 	}
 }
 }