media_module: fix netflix test video freeze issue [1/1]
PD#SWPL-809
PD#OTT-844
BUG=117762584 & 120382559
Problem:
in stream mode, decoder drivers with again check will be always in run_ready state.
because of again_threshold not reach. but acutally there is enough data in vbuf.
decoding hang up
Solution:
sync input buf status once again check appears
Verify:
QA test on ampere&atom
Change-Id: I72dc98461865f296fe0c625f8ca60a11561976ac
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
diff --git a/drivers/frame_provider/decoder/h264_multi/vmh264.c b/drivers/frame_provider/decoder/h264_multi/vmh264.c
index d231591..0885616 100644
--- a/drivers/frame_provider/decoder/h264_multi/vmh264.c
+++ b/drivers/frame_provider/decoder/h264_multi/vmh264.c
@@ -6588,8 +6588,12 @@
READ_PARSER_REG(PARSER_VIDEO_WP);
if (parser_wr_ptr >= hw->pre_parser_wr_ptr &&
(parser_wr_ptr - hw->pre_parser_wr_ptr) <
- again_threshold)
+ again_threshold) {
+ int r = vdec_sync_input(vdec);
+ dpb_print(DECODE_ID(hw), PRINT_FLAG_VDEC_DETAIL,
+ "%s buf lelvel:%x\n", __func__, r);
return 0;
+ }
}
if (h264_debug_flag & 0x20000000) {
diff --git a/drivers/frame_provider/decoder/h265/vh265.c b/drivers/frame_provider/decoder/h265/vh265.c
index 1abd329..313be27 100644
--- a/drivers/frame_provider/decoder/h265/vh265.c
+++ b/drivers/frame_provider/decoder/h265/vh265.c
@@ -9996,8 +9996,12 @@
READ_PARSER_REG(PARSER_VIDEO_WP);
if (parser_wr_ptr >= hevc->pre_parser_wr_ptr &&
(parser_wr_ptr - hevc->pre_parser_wr_ptr) <
- again_threshold)
+ again_threshold) {
+ int r = vdec_sync_input(vdec);
+ hevc_print(hevc,
+ PRINT_FLAG_VDEC_DETAIL, "%s buf lelvel:%x\n", __func__, r);
return 0;
+ }
}
#endif