amvecm: overscan: fix video local play, screen mode set error [1/1]
authorMingLiang Dong <mingliang.dong@amlogic.com>
Thu, 11 Oct 2018 03:20:17 +0000 (23:20 -0400)
committerJianxin Pan <jianxin.pan@amlogic.com>
Wed, 14 Nov 2018 07:49:44 +0000 (00:49 -0700)
PD#SWPL-206

Problem:
overscan set error when local play

Solution:
overscan don't set at vpp

Verify:
verify on txlx

Change-Id: Ifd4ad4f5fcdb9fbc7ad05a540d0ed11b24d4ca66
Signed-off-by: MingLiang Dong <mingliang.dong@amlogic.com>
drivers/amlogic/media/enhancement/amvecm/amve.c
drivers/amlogic/media/video_sink/vpp.c

index 52c0f6a..b8f91ef 100644 (file)
@@ -1464,15 +1464,19 @@ void amvecm_fresh_overscan(struct vframe_s *vf)
                else
                        cur_overscan_timing = TIMING_UHD;
 
-
                overscan_timing = cur_overscan_timing;
                overscan_screen_mode =
                        overscan_table[overscan_timing].screen_mode;
 
                vf->pic_mode.AFD_enable =
                        overscan_table[overscan_timing].afd_enable;
-               vf->pic_mode.screen_mode =
-                       overscan_table[overscan_timing].screen_mode;
+               /*local play screen mode set by decoder*/
+               if (overscan_table[0].source == SOURCE_MPEG)
+                       vf->pic_mode.screen_mode = 0xff;
+               else
+                       vf->pic_mode.screen_mode =
+                               overscan_table[overscan_timing].screen_mode;
+
                vf->pic_mode.hs = overscan_table[overscan_timing].hs;
                vf->pic_mode.he = overscan_table[overscan_timing].he;
                vf->pic_mode.vs = overscan_table[overscan_timing].vs;
index fcb4318..b663469 100644 (file)
@@ -2436,7 +2436,8 @@ vpp_set_filters(u32 process_3d_type, u32 wide_mode,
 
        if ((vf->ratio_control & DISP_RATIO_ADAPTED_PICMODE)
                && !disable_adapted) {
-               wide_mode = vf->pic_mode.screen_mode;
+               if (vf->pic_mode.screen_mode != 0xff)
+                       wide_mode = vf->pic_mode.screen_mode;
                if (vf->pic_mode.provider == PIC_MODE_PROVIDER_WSS) {
                        /* from wss, need add global setting */
                        video_source_crop_top += vf->pic_mode.vs;