vlc | branch: master | Steve Lhomme <[email protected]> | 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 <[email protected]> > 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, _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
