module: use new interface to increase accuracy of ar calculation [2/2]

PD#OTT-2068

Problem:
When playing 1280x128 video under normal screen mode, the aspect ratio from
decodec is not accurate enough by multipling 0x100. (128x256/1280=25.6).
Dropping 0.6 will cause height losing 9 lines.

Solution:
Using new interface to pass real ar width and height following steps:
1.Set old ar variable to 0x3ff as a trigger flag.
2.set the original ar value into sar_width and sar_height of vframe.

Verify:
verified on franklin

Change-Id: I681197707f3f2cff64298dc13c28c28f7ee80b94
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
This commit is contained in:
Peng Yixin
2019-04-16 20:26:22 +08:00
committed by Dongjin Kim
parent e138484e6a
commit 0046660ba6

View File

@@ -2663,6 +2663,11 @@ int prepare_display_buf(struct vdec_s *vdec, struct FrameStore *frame)
else
decoder_do_frame_check(hw_to_vdec(hw), vf);
}
vf->ratio_control |= (0x3FF << DISP_RATIO_ASPECT_RATIO_BIT);
vf->sar_width = vf->width;
vf->sar_height = vf->height;
kfifo_put(&hw->display_q, (const struct vframe_s *)vf);
ATRACE_COUNTER(MODULE_NAME, vf->pts);
hw->vf_pre_count++;