author | shihong.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) |
commit | e1a96298f7afe491182465a139819a32182a632f (patch) | |
tree | ce364ee506ab5fb532fa5900c875e006ecb3bfbf | |
parent | 8e980f27c33ae6e5fabe660c4f05664debdbac7e (diff) | |
download | media_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>
-rw-r--r-- | drivers/frame_provider/decoder/h265/vh265.c | 7 |
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; |