vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Dec 19 23:40:40 2018 +0200| [2d41a0b7467628ba1affeb101c8a18980598d167] | committer: Rémi Denis-Courmont
yuvp: addd support for BGRA > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2d41a0b7467628ba1affeb101c8a18980598d167 --- modules/video_chroma/yuvp.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/modules/video_chroma/yuvp.c b/modules/video_chroma/yuvp.c index ea702f5cc8..459ec23556 100644 --- a/modules/video_chroma/yuvp.c +++ b/modules/video_chroma/yuvp.c @@ -68,7 +68,8 @@ static int Open( vlc_object_t *p_this ) if( p_filter->fmt_in.video.i_chroma != VLC_CODEC_YUVP || ( p_filter->fmt_out.video.i_chroma != VLC_CODEC_YUVA && p_filter->fmt_out.video.i_chroma != VLC_CODEC_RGBA && - p_filter->fmt_out.video.i_chroma != VLC_CODEC_ARGB ) || + p_filter->fmt_out.video.i_chroma != VLC_CODEC_ARGB && + p_filter->fmt_out.video.i_chroma != VLC_CODEC_BGRA ) || p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height || p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation ) @@ -144,15 +145,18 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic ) else { video_palette_t rgbp; + int r, g, b, a; - assert( p_filter->fmt_out.video.i_chroma == VLC_CODEC_ARGB || - p_filter->fmt_out.video.i_chroma == VLC_CODEC_RGBA ); + switch( p_filter->fmt_out.video.i_chroma ) + { + case VLC_CODEC_ARGB: r = 1, g = 2, b = 3, a = 0; break; + case VLC_CODEC_RGBA: r = 0, g = 1, b = 2, a = 3; break; + case VLC_CODEC_BGRA: r = 2, g = 1, b = 0, a = 3; break; + default: + vlc_assert_unreachable(); + } /* Create a RGBA palette */ rgbp.i_entries = p_yuvp->i_entries; - const uint8_t r = p_filter->fmt_out.video.i_chroma == VLC_CODEC_ARGB ? 1 : 0; - const uint8_t g = p_filter->fmt_out.video.i_chroma == VLC_CODEC_ARGB ? 2 : 1; - const uint8_t b = p_filter->fmt_out.video.i_chroma == VLC_CODEC_ARGB ? 3 : 2; - const uint8_t a = p_filter->fmt_out.video.i_chroma == VLC_CODEC_ARGB ? 0 : 3; for( int i = 0; i < p_yuvp->i_entries; i++ ) { if( p_yuvp->palette[i][3] == 0 ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
