Daisuke,
It's a good idea to compare T-kernel version with Linux version. Tracking vpu_DecUpdateBitstreamBuffer() and BIT_WR_PTR is helpful for this issue.
I decoded an H.264 clip, and dumped the API call sequence FYI.
[DEBUG] vpu_lib.c:266 enter vpu_Init()
[DEBUG] vpu_lib.c:495 enter vpu_GetVersionInfo()
[DEBUG] vpu_lib.c:2563 enter vpu_DecOpen()
[DEBUG] vpu_lib.c:3538 enter vpu_DecGetBitstreamBuffer()
[DEBUG] vpu_lib.c:3622 enter vpu_DecUpdateBitstreamBuffer()
[DEBUG] vpu_lib.c:3623 Update bitstream buffer size 2094592
[DEBUG] vpu_lib.c:2835 enter vpu_DecSetEscSeqInit()
[DEBUG] vpu_lib.c:2883 enter vpu_DecGetInitialInfo()
[DEBUG] vpu_lib.c:2835 enter vpu_DecSetEscSeqInit()
[DEBUG] vpu_lib.c:4760 enter vpu_DecGiveCommand()
[DEBUG] vpu_lib.c:3269 enter vpu_DecRegisterFrameBuffer()
[DEBUG] vpu_lib.c:3749 enter vpu_DecStartOneFrame()
[DEBUG] vpu_lib.c:93 enter vpu_IsBusy()
[DEBUG] vpu_lib.c:3538 enter vpu_DecGetBitstreamBuffer()
[DEBUG] vpu_lib.c:130 enter vpu_WaitForInt()
[DEBUG] vpu_lib.c:93 enter vpu_IsBusy()
[DEBUG] vpu_lib.c:4185 enter vpu_DecGetOutputInfo()
[DEBUG] vpu_lib.c:2787 enter vpu_DecClose()
We filled as much bs as possible before vpu_DecGetInitialInfo().
According to your log, I wonder why
- VpuWriteReg(BIT_BIT_STREAM_PARAM, val); is not executed after entering vpu_DecUpdateBitstreamBuffer()?
- vpu_DecGetInitialInfo() is successful on Linux without filling any bs
Please compare wrPtr before vpu_DecGetInitialInfo() / vpu_DecStartOneFrame()
BR
Hongzhang