ppmgr: Interlaced video only shows half. [1/1]
authorrenjiang.han <renjiang.han@amlogic.com>
Tue, 11 Jun 2019 13:40:03 +0000 (21:40 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Tue, 25 Jun 2019 02:21:40 +0000 (19:21 -0700)
PD#SWPL-9350

Problem:
Interlaced video only shows half.

Solution:
Interlaced video height is divided by 2.

Verify:
on U212

Change-Id: I983e3369687eeb55f03d3e7f8474b9e37549440f
Signed-off-by: renjiang.han <renjiang.han@amlogic.com>
drivers/amlogic/media/video_processor/ppmgr/ppmgr_vpp.c

index 1067bf4..b0a2871 100644 (file)
@@ -1788,13 +1788,9 @@ static void process_vf_rotate(struct vframe_s *vf,
        new_vf->orientation = vf->orientation;
        new_vf->flag = vf->flag;
 
-       if ((vf->source_type == VFRAME_SOURCE_TYPE_HDMI)
-               || (vf->source_type == VFRAME_SOURCE_TYPE_CVBS)) {
-               if ((interlace_mode == VIDTYPE_INTERLACE_TOP)
-                       || (interlace_mode == VIDTYPE_INTERLACE_BOTTOM))
-                       vf->height >>= 1;
-       }
-
+       if ((interlace_mode == VIDTYPE_INTERLACE_TOP)
+               || (interlace_mode == VIDTYPE_INTERLACE_BOTTOM))
+               vf->height >>= 1;
 #ifndef CONFIG_AMLOGIC_POST_PROCESS_MANAGER_PPSCALER
        vf_rotate_adjust(vf, new_vf, cur_angle);
 #else
@@ -2365,12 +2361,9 @@ static void process_vf_change(struct vframe_s *vf,
 
        interlace_mode = vf->type & VIDTYPE_TYPEMASK;
 
-       if ((vf->source_type == VFRAME_SOURCE_TYPE_HDMI)
-               || (vf->source_type == VFRAME_SOURCE_TYPE_CVBS)) {
-               if ((interlace_mode == VIDTYPE_INTERLACE_TOP)
-                       || (interlace_mode == VIDTYPE_INTERLACE_BOTTOM))
-                       vf->height >>= 1;
-       }
+       if ((interlace_mode == VIDTYPE_INTERLACE_TOP)
+               || (interlace_mode == VIDTYPE_INTERLACE_BOTTOM))
+               vf->height >>= 1;
 
        memset(ge2d_config, 0, sizeof(struct config_para_ex_s));
        /* data operating. */