obs-ffmpeg: Add support for YUV422P10LE, YUV444P12LE, YUVA444P12LE

This commit also modifies deps/media-playback
master
mvji 2022-04-19 19:38:28 +02:00
parent d3a8ef7128
commit ae94c35152
3 changed files with 29 additions and 3 deletions

View File

@ -22,6 +22,9 @@ static enum AVPixelFormat closest_format(enum AVPixelFormat fmt)
case AV_PIX_FMT_YUYV422:
return AV_PIX_FMT_YUYV422;
case AV_PIX_FMT_YUV444P12LE:
return AV_PIX_FMT_YUV444P12LE;
case AV_PIX_FMT_YUV444P:
case AV_PIX_FMT_YUV444P16LE:
case AV_PIX_FMT_YUV444P16BE:
@ -30,7 +33,6 @@ static enum AVPixelFormat closest_format(enum AVPixelFormat fmt)
case AV_PIX_FMT_YUV444P10BE:
case AV_PIX_FMT_YUV444P10LE:
case AV_PIX_FMT_YUV444P12BE:
case AV_PIX_FMT_YUV444P12LE:
case AV_PIX_FMT_YUV444P14BE:
case AV_PIX_FMT_YUV444P14LE:
return AV_PIX_FMT_YUV444P;
@ -38,12 +40,14 @@ static enum AVPixelFormat closest_format(enum AVPixelFormat fmt)
case AV_PIX_FMT_YUV422P:
return AV_PIX_FMT_YUV422P;
case AV_PIX_FMT_YUV422P10LE:
return AV_PIX_FMT_YUV422P10LE;
case AV_PIX_FMT_YUVJ422P:
case AV_PIX_FMT_UYVY422:
case AV_PIX_FMT_YUV422P16LE:
case AV_PIX_FMT_YUV422P16BE:
case AV_PIX_FMT_YUV422P10BE:
case AV_PIX_FMT_YUV422P10LE:
case AV_PIX_FMT_YUV422P9BE:
case AV_PIX_FMT_YUV422P9LE:
case AV_PIX_FMT_YVYU422:
@ -91,10 +95,14 @@ static enum AVPixelFormat closest_format(enum AVPixelFormat fmt)
case AV_PIX_FMT_YUVA444P16LE:
#if LIBAVUTIL_BUILD >= AV_VERSION_INT(56, 31, 100)
case AV_PIX_FMT_YUVA444P12BE:
case AV_PIX_FMT_YUVA444P12LE:
#endif
return AV_PIX_FMT_YUVA444P;
#if LIBAVUTIL_BUILD >= AV_VERSION_INT(56, 31, 100)
case AV_PIX_FMT_YUVA444P12LE:
return AV_PIX_FMT_YUVA444P12LE;
#endif
case AV_PIX_FMT_P010LE:
return AV_PIX_FMT_P010LE;

View File

@ -38,8 +38,12 @@ static inline enum video_format convert_pixel_format(int f)
return VIDEO_FORMAT_YUY2;
case AV_PIX_FMT_YUV422P:
return VIDEO_FORMAT_I422;
case AV_PIX_FMT_YUV422P10LE:
return VIDEO_FORMAT_I210;
case AV_PIX_FMT_YUV444P:
return VIDEO_FORMAT_I444;
case AV_PIX_FMT_YUV444P12LE:
return VIDEO_FORMAT_I412;
case AV_PIX_FMT_UYVY422:
return VIDEO_FORMAT_UYVY;
case AV_PIX_FMT_NV12:
@ -56,6 +60,10 @@ static inline enum video_format convert_pixel_format(int f)
return VIDEO_FORMAT_I42A;
case AV_PIX_FMT_YUVA444P:
return VIDEO_FORMAT_YUVA;
#if LIBAVUTIL_BUILD >= AV_VERSION_INT(56, 31, 100)
case AV_PIX_FMT_YUVA444P12LE:
return VIDEO_FORMAT_YA2L;
#endif
case AV_PIX_FMT_BGR0:
return VIDEO_FORMAT_BGRX;
case AV_PIX_FMT_P010LE:

View File

@ -15,6 +15,8 @@ obs_to_ffmpeg_video_format(enum video_format format)
switch (format) {
case VIDEO_FORMAT_I444:
return AV_PIX_FMT_YUV444P;
case VIDEO_FORMAT_I412:
return AV_PIX_FMT_YUV444P12LE;
case VIDEO_FORMAT_I420:
return AV_PIX_FMT_YUV420P;
case VIDEO_FORMAT_NV12:
@ -35,12 +37,20 @@ obs_to_ffmpeg_video_format(enum video_format format)
return AV_PIX_FMT_BGR24;
case VIDEO_FORMAT_I422:
return AV_PIX_FMT_YUV422P;
case VIDEO_FORMAT_I210:
return AV_PIX_FMT_YUV422P10LE;
case VIDEO_FORMAT_I40A:
return AV_PIX_FMT_YUVA420P;
case VIDEO_FORMAT_I42A:
return AV_PIX_FMT_YUVA422P;
case VIDEO_FORMAT_YUVA:
return AV_PIX_FMT_YUVA444P;
case VIDEO_FORMAT_YA2L:
#if LIBAVUTIL_BUILD >= AV_VERSION_INT(56, 31, 100)
return AV_PIX_FMT_YUVA444P12LE;
#else
return AV_PIX_FMT_NONE;
#endif
case VIDEO_FORMAT_I010:
return AV_PIX_FMT_YUV420P10LE;
case VIDEO_FORMAT_P010: