vmh264: fix frame mode playback not smooth issue [1/1]

PD#SWPL-5926

Problem:
In frame mode and frmbase_cont_bitlevel > 0 case. with some stream
driver will finish search start code until H264_SEARCH_BUFEMPTY. it
will cost 2+ vsync time. decoder will be blocked. actually, in frame mode
decoder don't need to wait for timeout. decoder should return with
H264_SEARCH_BUFEMPTY once bitlevel is very low.

Solution:
skip search start code vsync timeout wait in frame mode

ucode gerrit: 63873 63932

Verify:
X301

Change-Id: Id7a8f08aef41c16f00b56745ac8ffbced632e97e
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
This commit is contained in:
Hui Zhang
2019-03-21 15:48:50 +08:00
committed by Dongjin Kim
parent 79ec5f6b31
commit 6bacff146c
2 changed files with 4 additions and 4 deletions

View File

@@ -5139,8 +5139,8 @@ pic_done_proc:
(dec_dpb_status == H264_DECODE_TIMEOUT)) {
empty_proc:
reset_process_time(hw);
release_cur_decoding_buf(hw);
if (!hw->frmbase_cont_flag)
release_cur_decoding_buf(hw);
if (input_frame_based(vdec) ||
(READ_VREG(VLD_MEM_VIFIFO_LEVEL) > 0x200)) {
@@ -5171,8 +5171,8 @@ empty_proc:
hw->decode_timeout_num++;
else if (dec_dpb_status == H264_DECODE_BUFEMPTY)
hw->decode_dataempty_num++;
hw->data_flag |= ERROR_FLAG;
if (!hw->frmbase_cont_flag)
hw->data_flag |= ERROR_FLAG;
vdec_schedule_work(&hw->work);
} else {

BIN
firmware/video/video_ucode.bin Normal file → Executable file

Binary file not shown.