From 1e87df89bb90f44b8d595ea0d010a66dd29e059a Mon Sep 17 00:00:00 2001 From: jpark37 Date: Sun, 11 Aug 2019 11:26:52 -0700 Subject: [PATCH] deps/media-playback: Convert YUV alpha formats to RGB on GPU I40A -> RGBA, 1080p, CPU swscale (MMX), Intel i7-6700: 1910 us -> 0 us GPU measurements used Intel GPA with SetStablePowerState. I40A -> RGBA, 1080p, GPU Intel HD Graphics 530: 0 us -> 677 us NVIDIA RTX 2080 Ti: 0 us -> 43 us --- deps/media-playback/media-playback/closest-format.h | 9 +++++++++ deps/media-playback/media-playback/media.c | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/deps/media-playback/media-playback/closest-format.h b/deps/media-playback/media-playback/closest-format.h index 837791430..c6f2ea580 100644 --- a/deps/media-playback/media-playback/closest-format.h +++ b/deps/media-playback/media-playback/closest-format.h @@ -61,6 +61,15 @@ static enum AVPixelFormat closest_format(enum AVPixelFormat fmt) case AV_PIX_FMT_YUV420P14LE: return AV_PIX_FMT_YUV420P; + case AV_PIX_FMT_YUVA420P: + return AV_PIX_FMT_YUVA420P; + + case AV_PIX_FMT_YUVA422P: + return AV_PIX_FMT_YUVA422P; + + case AV_PIX_FMT_YUVA444P: + return AV_PIX_FMT_YUVA444P; + case AV_PIX_FMT_RGBA: case AV_PIX_FMT_BGRA: case AV_PIX_FMT_BGR0: diff --git a/deps/media-playback/media-playback/media.c b/deps/media-playback/media-playback/media.c index d874c983a..35554eb35 100644 --- a/deps/media-playback/media-playback/media.c +++ b/deps/media-playback/media-playback/media.c @@ -48,6 +48,12 @@ static inline enum video_format convert_pixel_format(int f) return VIDEO_FORMAT_BGRA; case AV_PIX_FMT_BGR0: return VIDEO_FORMAT_BGRX; + case AV_PIX_FMT_YUVA420P: + return VIDEO_FORMAT_I40A; + case AV_PIX_FMT_YUVA422P: + return VIDEO_FORMAT_I42A; + case AV_PIX_FMT_YUVA444P: + return VIDEO_FORMAT_YUVA; default:; }