summaryrefslogtreecommitdiff
authorPengcheng 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)
commit030147534d08a251c2c64d57872cdf87b42ae481 (patch)
tree1d61c50f07f6fff41c46314a6a1af817a4d23573
parentbf1752db2c2e2d36053eaae55095df3f3ed801c5 (diff)
downloadsystem-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>
Diffstat
-rw-r--r--libge2d/ge2d_port.c10
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;