Part Number: AM62P-Q1
■Q.1
When VPU decoding is complete, RET_QUERY_DEC_DECODED_INDEX = -1 and RET_QUERY_DEC_DISPLAY_INDEX = -3.
In what cases does this occur?
RET_QUERY_DEC_DECODED_INDEX and RET_QUERY_DEC_DISPLAY_INDEX are read in the following (3).
(1) Send a DEC_PIC command to the VPU to request decoding.
(2) VPU_VPU_INT_STS = 1, so VPU_VINT_REASON is read.
(3) VPU_VINT_REASON = CMD8 (DEC_PIC done Interrupt) occurs, so RET_QUERY_DEC_DECODED_INDEX and RET_QUERY_DEC_DISPLAY_INDEX are read.
Also, The codec to be decoded is H.264, and the frame structure is SPS → PPS → I → P x 29 → SPS...
DECODED_INDEX = -1 and DISPLAY_INDEX = -3 only occur when decoding an I-frame. This can be the first I-frame or an intermediate I-frame.
When I decode the same data multiple times, sometimes DECODED_INDEX = -1 and DISPLAY_INDEX = -3, and sometimes all frames are successfully decoded (DECODED_INDEX and DISPLAY_INDEX show the same value), so I believe there is no problem with the data being decoded.
■Q.2
I read the following registers to confirm the difference between the successful decoding case and the case where DECODED_INDEX = -1 and DISPLAY_INDEX = -3, but no differences were found.
Are there any other registers I should read?
CMD_INSTANCE_INFO (0x00000110)
VPU_RESET_STATUS (0x00000054)
VPU_BUSY_STATUS (0x00000070)
VPU_HALT_STATUS (0x00000074)
VPU_VCPU_STATUS (0x00000078)
RET_QUEUE_STATUS (0x000001E0)
COMBINED_BACKBONE_BUS_STATUS(0x0000FE14)
VPU_VPU_INT_STS (0x00000044)
CMD_BS_RD_PTR (0x00000118)
CMD_BS_WR_PTR (0x0000011C)
RET_QUERY_DEC_SUCCESS (0x000001DC)