di: 1080p,the screen display anormal [1/1]
authorYong Qin <yong.qin@amlogic.com>
Wed, 13 Mar 2019 12:12:58 +0000 (20:12 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Thu, 14 Mar 2019 06:56:53 +0000 (22:56 -0800)
PD#SWPL-5874

Problem:
1080p the screen display anormal

Solution:
compress mode, modify vdin frame type.

Verify:
tl1

Change-Id: Ic1ee1472105861c8debce2a1645f70ed617fd132
Signed-off-by: Yong Qin <yong.qin@amlogic.com>
drivers/amlogic/media/deinterlace/deinterlace.c

index 028fd8a..fffd4fd 100644 (file)
@@ -129,7 +129,7 @@ static di_dev_t *de_devp;
 static dev_t di_devno;
 static struct class *di_clsp;
 
-static const char version_s[] = "2019-03-05a";
+static const char version_s[] = "2019-03-13b";
 
 static int bypass_state = 1;
 static int bypass_all;
@@ -3526,10 +3526,15 @@ static unsigned char pre_de_buf_config(void)
                        return 0;
 
                /*for support compress from dec*/
-               if (IS_COMP_MODE(vframe->type) &&
-                       (!is_from_vdin(vframe))) {
-                       vframe->width = vframe->compWidth;
-                       vframe->height = vframe->compHeight;
+               if (IS_COMP_MODE(vframe->type)) {
+                       if (IS_VDIN_SRC(vframe->source_type)
+                               && IS_I_SRC(vframe->type)) {
+                               vframe->width = vframe->compWidth;
+                               vframe->height = vframe->compHeight*2;
+                       } else {
+                               vframe->width = vframe->compWidth;
+                               vframe->height = vframe->compHeight;
+                       }
                }
 
                di_print("DI: get %dth vf[0x%p] from frontend %u ms.\n",
@@ -3965,7 +3970,7 @@ jiffies_to_msecs(jiffies_64 - vframe->ready_jiffies64));
                        di_buf->di_wr_linked_buf->index);
 #endif
 
-       /*for support compress from dec*/
+       /*for support compress from dec, not from vdin*/
        if (IS_COMP_MODE(di_pre_stru.cur_inp_type) &&
                (!(di_pre_stru.cur_inp_type & VIDTYPE_VIU_422))) {
                /*compress type and not from vdin*/