[vlc-commits] blend: support BGRA blending
Steve Lhomme
git at videolan.org
Tue Apr 28 09:50:17 CEST 2015
vlc | branch: master | Steve Lhomme <robUx4 at videolabs.io> | Mon Apr 27 14:56:25 2015 +0000| [5b7ab111f461c480c1decbe5e0f85c75e306c547] | committer: Jean-Baptiste Kempf
blend: support BGRA blending
--
tested with some colourful karaoke
looking at the code, there's a change VLC_CODEC_ARGB is not handled properly
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5b7ab111f461c480c1decbe5e0f85c75e306c547
---
modules/video_filter/blend.cpp | 14 +++++++++++---
src/video_output/vout_subpictures.c | 2 ++
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/modules/video_filter/blend.cpp b/modules/video_filter/blend.cpp
index befe886..b9b3a97 100644
--- a/modules/video_filter/blend.cpp
+++ b/modules/video_filter/blend.cpp
@@ -268,9 +268,15 @@ public:
CPictureRGBX(const CPicture &cfg) : CPicture(cfg)
{
if (has_alpha) {
- offset_r = 0;
- offset_g = 1;
- offset_b = 2;
+ if (fmt->i_chroma == VLC_CODEC_BGRA) {
+ offset_r = 2;
+ offset_g = 1;
+ offset_b = 0;
+ } else {
+ offset_r = 0;
+ offset_g = 1;
+ offset_b = 2;
+ }
offset_a = 3;
} else {
#ifdef WORDS_BIGENDIAN
@@ -403,6 +409,7 @@ typedef CPictureYUVPacked<0, 3, 1> CPictureYVYU;
typedef CPictureYUVPacked<1, 2, 0> CPictureVYUY;
typedef CPictureRGBX<4, true> CPictureRGBA;
+typedef CPictureRGBX<4, true> CPictureBGRA;
typedef CPictureRGBX<4, false> CPictureRGB32;
typedef CPictureRGBX<3, false> CPictureRGB24;
@@ -565,6 +572,7 @@ static const struct {
RGB(VLC_CODEC_RGB24, CPictureRGB24, convertNone),
RGB(VLC_CODEC_RGB32, CPictureRGB32, convertNone),
RGB(VLC_CODEC_RGBA, CPictureRGBA, convertNone),
+ RGB(VLC_CODEC_BGRA, CPictureBGRA, convertNone),
YUV(VLC_CODEC_YV9, CPictureYV9, convertNone),
YUV(VLC_CODEC_I410, CPictureI410_8, convertNone),
diff --git a/src/video_output/vout_subpictures.c b/src/video_output/vout_subpictures.c
index b3f0152..5ed60c3 100644
--- a/src/video_output/vout_subpictures.c
+++ b/src/video_output/vout_subpictures.c
@@ -1433,12 +1433,14 @@ subpicture_t *spu_Render(spu_t *spu,
VLC_CODEC_YUVA,
VLC_CODEC_RGBA,
VLC_CODEC_ARGB,
+ VLC_CODEC_BGRA,
VLC_CODEC_YUVP,
0,
};
static const vlc_fourcc_t chroma_list_default_rgb[] = {
VLC_CODEC_RGBA,
VLC_CODEC_ARGB,
+ VLC_CODEC_BGRA,
VLC_CODEC_YUVA,
VLC_CODEC_YUVP,
0,
More information about the vlc-commits
mailing list