summaryrefslogtreecommitdiff
authorshihong.zheng <shihong.zheng@amlogic.com>2020-07-27 06:04:26 (GMT)
committer Hui Zhang <hui.zhang@amlogic.com>2020-07-28 02:10:30 (GMT)
commite1a96298f7afe491182465a139819a32182a632f (patch)
treece364ee506ab5fb532fa5900c875e006ecb3bfbf
parent8e980f27c33ae6e5fabe660c4f05664debdbac7e (diff)
downloadmedia_modules-e1a96298f7afe491182465a139819a32182a632f.zip
media_modules-e1a96298f7afe491182465a139819a32182a632f.tar.gz
media_modules-e1a96298f7afe491182465a139819a32182a632f.tar.bz2
vh265: fix h265 dv frame mode overdecode error. [1/1]
PD#SWPL-30305 Problem: dv frame mode overdecode when resolution change. Solution: do not check empty and shift status when dv mode detected EOS Verify: ah212 Change-Id: Icbc04376f9aed259660f24e26b89ae04cfec250f Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
Diffstat
-rw-r--r--drivers/frame_provider/decoder/h265/vh265.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/frame_provider/decoder/h265/vh265.c b/drivers/frame_provider/decoder/h265/vh265.c
index 5a89fc9..886d879 100644
--- a/drivers/frame_provider/decoder/h265/vh265.c
+++ b/drivers/frame_provider/decoder/h265/vh265.c
@@ -10072,7 +10072,7 @@ pic_done:
}
}
/*Detects the first frame whether has an over decode error*/
- if (vdec->master == NULL && vdec->slave == NULL &&
+ if ((!vdec_dual(vdec)) &&
hevc->empty_flag == 0) {
hevc->over_decode =
(READ_VREG(HEVC_SHIFT_STATUS) >> 15) & 0x1;
@@ -10264,7 +10264,7 @@ force_output:
}
#endif
/*Detects frame whether has an over decode error*/
- if (vdec->master == NULL && vdec->slave == NULL &&
+ if ((!vdec_dual(vdec)) &&
hevc->empty_flag == 0) {
hevc->over_decode =
(READ_VREG(HEVC_SHIFT_STATUS) >> 15) & 0x1;
@@ -12335,7 +12335,7 @@ static void vh265_work_implement(struct hevc_state_s *hevc,
READ_VREG(HEVC_PARSER_LCU_START)
& 0xffffff;
- if (vdec->master == NULL && vdec->slave == NULL &&
+ if ((!vdec_dual(vdec)) &&
hevc->empty_flag == 0) {
hevc->over_decode =
(READ_VREG(HEVC_SHIFT_STATUS) >> 15) & 0x1;
@@ -12911,7 +12911,6 @@ static void run(struct vdec_s *vdec, unsigned long mask,
init_pic_list_hw(hevc);
backup_decode_state(hevc);
-
start_process_time(hevc);
mod_timer(&hevc->timer, jiffies);
hevc->stat |= STAT_TIMER_ARM;