author | Pengcheng Chen <pengcheng.chen@amlogic.com> | 2017-06-02 09:33:45 (GMT) |
---|---|---|
committer | Pengcheng Chen <pengcheng.chen@amlogic.com> | 2017-06-06 01:11:47 (GMT) |
commit | 030147534d08a251c2c64d57872cdf87b42ae481 (patch) | |
tree | 1d61c50f07f6fff41c46314a6a1af817a4d23573 | |
parent | bf1752db2c2e2d36053eaae55095df3f3ed801c5 (diff) | |
download | system-030147534d08a251c2c64d57872cdf87b42ae481.zip system-030147534d08a251c2c64d57872cdf87b42ae481.tar.gz system-030147534d08a251c2c64d57872cdf87b42ae481.tar.bz2 |
PD#144703: ge2dlib: fix rgba blend yv12 format caused red frame issue
Change-Id: Ib7d1c10d2f0931be1debfacbba1961e6a5374315
Signed-off-by: Pengcheng Chen <pengcheng.chen@amlogic.com>
-rw-r--r-- | libge2d/ge2d_port.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libge2d/ge2d_port.c b/libge2d/ge2d_port.c index ef7ab90..714ccca 100644 --- a/libge2d/ge2d_port.c +++ b/libge2d/ge2d_port.c @@ -117,9 +117,11 @@ static int is_no_alpha(int format) return 0; } -static int is_nv21(int format) +static int is_need_swap_src2(int format) { - if (format == PIXEL_FORMAT_YCrCb_420_SP) + /* src2 not support nv21/nv12/yv12, swap src1 and src2 */ + if ((format == PIXEL_FORMAT_YCrCb_420_SP) || + (format == PIXEL_FORMAT_YV12)) return 1; else return 0; @@ -506,8 +508,8 @@ static int ge2d_blend_config_ex_ion(int fd,aml_ge2d_info_t *pge2dinfo) buffer_info_t* input_buffer_info = &pge2dinfo->src_info[0]; buffer_info_t* input2_buffer_info = &pge2dinfo->src_info[1]; buffer_info_t* output_buffer_info = &pge2dinfo->dst_info; - /* src2 not support nv21/nv12, swap src1 and src2 */ - if (is_nv21(input2_buffer_info->format)) { + /* src2 not support nv21/nv12/yv12, swap src1 and src2 */ + if (is_need_swap_src2(input2_buffer_info->format)) { input_buffer_info = &pge2dinfo->src_info[1]; input2_buffer_info = &pge2dinfo->src_info[0]; b_src_swap = 1; |