Sent from my iPad > On Apr 11, 2019, at 12:01 AM, Nicolas Dufresne <nicolas@xxxxxxxxxxxx> wrote: > >> Le mercredi 10 avril 2019 à 20:42 +0800, ayaka a écrit : >> From: Randy 'ayaka' Li <ayaka@xxxxxxxxxxx> >> >> Although I really hate the bitstream construction in kernel and I think >> many people realise its problems, I still take the advise from ndufresne to >> release this version. This should be released in a early week but >> I was sick that time. >> >> After reviewed the documents from Rockchip and I have confirmed that with >> some rockchip staff, those documents are not update to date. So you may >> find some part is different comparing to official document. >> >> The v4l2-request-test from bootlin won't work. Its slice data doesn't >> have a start code which making it not a complete nal unit. And I found >> its slice header information may not be correct. Even comparing to the >> Big buck bunny's origin files, neither the slice data nor sequence >> information matches. > > The un-ordered reflist table generated by these tests or the v4l2 VAAPI > driver are known to be broken. They have never been tested. Ezequiel > and I are going to validate against MVPP userspace if this un-ordered > list effectively what we think it is, and will try and get some fixes > in at least one selected userspace. Otherwise it's not possible to test > easily. I have no idea on what the un-ordered means, hardware would only care about the POC of a reference frame which would match its list0(P or B) and list1(B slice). I would suggest to remove decode_param of AVC later, as its slice_param has contains enough information to decode a slice and its reference. > >> >> I extracted a slice data from Rockchip mpp to verify my driver, it work >> fine, you can find it on my github. I only verified the I slice now, >> I have not verified P or B slice. Hopefully it would work. > > If you have some information to share it would be nice. I'm sure we can > cooperate on this if you are willing to. > >> >> I have the same problem with v4l2-request-test on HEVC as well so even >> this version shipped with HEVC bitstream construction, I didn't know >> whether it would work. >> >> I need some time to prepare the userspace tool or it is really hard for >> HEVC to write slice info manually. >> >> Changlog >> v3: add AVC support for rkvdec >> v2: add MPEG-2 support for vdpu2 >> v1: inital version >> >> Randy Li (7): >> staging: video: rockchip: add v4l2 decoder >> rockchip: mpp: rkvdec: rbsp >> [WIP]: rockchip: mpp: HEVC decoder ctrl data >> [TEST]: rockchip: mpp: support qtable >> [TEST]: rockchip: mpp: vdpu2: move qtable to input buffer >> arm64: dts: rockchip: boost clocks for rk3328 >> arm64: dts: rockchip: add video codec for rk3328 >> >> ayaka (2): >> [WIP]: rockchip: mpp: H.264 decoder ctrl data >> [TEST]: rkvdec: spspps address alignment >> >> arch/arm64/boot/dts/rockchip/rk3328-evb.dts | 32 + >> .../arm64/boot/dts/rockchip/rk3328-rock64.dts | 32 + >> arch/arm64/boot/dts/rockchip/rk3328.dtsi | 112 +- >> drivers/staging/Kconfig | 2 + >> drivers/staging/Makefile | 1 + >> drivers/staging/rockchip-mpp/Kconfig | 33 + >> drivers/staging/rockchip-mpp/Makefile | 12 + >> drivers/staging/rockchip-mpp/mpp_debug.h | 87 + >> drivers/staging/rockchip-mpp/mpp_dev_common.c | 1390 +++++++ >> drivers/staging/rockchip-mpp/mpp_dev_common.h | 215 + >> drivers/staging/rockchip-mpp/mpp_dev_rkvdec.c | 924 +++++ >> drivers/staging/rockchip-mpp/mpp_dev_vdpu2.c | 607 +++ >> drivers/staging/rockchip-mpp/mpp_service.c | 197 + >> drivers/staging/rockchip-mpp/mpp_service.h | 38 + >> .../staging/rockchip-mpp/rkvdec/avc-data.c | 239 ++ >> .../staging/rockchip-mpp/rkvdec/avc-data.h | 40 + >> drivers/staging/rockchip-mpp/rkvdec/avc.c | 259 ++ >> drivers/staging/rockchip-mpp/rkvdec/cabac.h | 3614 +++++++++++++++++ >> drivers/staging/rockchip-mpp/rkvdec/hal.h | 70 + >> .../staging/rockchip-mpp/rkvdec/hevc-data.c | 208 + >> .../staging/rockchip-mpp/rkvdec/hevc-data.h | 27 + >> drivers/staging/rockchip-mpp/rkvdec/hevc.c | 169 + >> drivers/staging/rockchip-mpp/rkvdec/rbsp.c | 96 + >> drivers/staging/rockchip-mpp/rkvdec/rbsp.h | 30 + >> drivers/staging/rockchip-mpp/rkvdec/regs.h | 377 ++ >> drivers/staging/rockchip-mpp/vdpu2/avc.c | 165 + >> drivers/staging/rockchip-mpp/vdpu2/hal.h | 52 + >> drivers/staging/rockchip-mpp/vdpu2/mpeg2.c | 277 ++ >> drivers/staging/rockchip-mpp/vdpu2/regs.h | 670 +++ >> include/uapi/video/rk_vpu_service.h | 101 + >> 30 files changed, 10072 insertions(+), 4 deletions(-) >> create mode 100644 drivers/staging/rockchip-mpp/Kconfig >> create mode 100644 drivers/staging/rockchip-mpp/Makefile >> create mode 100644 drivers/staging/rockchip-mpp/mpp_debug.h >> create mode 100644 drivers/staging/rockchip-mpp/mpp_dev_common.c >> create mode 100644 drivers/staging/rockchip-mpp/mpp_dev_common.h >> create mode 100644 drivers/staging/rockchip-mpp/mpp_dev_rkvdec.c >> create mode 100644 drivers/staging/rockchip-mpp/mpp_dev_vdpu2.c >> create mode 100644 drivers/staging/rockchip-mpp/mpp_service.c >> create mode 100644 drivers/staging/rockchip-mpp/mpp_service.h >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/avc-data.c >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/avc-data.h >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/avc.c >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/cabac.h >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/hal.h >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/hevc-data.c >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/hevc-data.h >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/hevc.c >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/rbsp.c >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/rbsp.h >> create mode 100644 drivers/staging/rockchip-mpp/rkvdec/regs.h >> create mode 100644 drivers/staging/rockchip-mpp/vdpu2/avc.c >> create mode 100644 drivers/staging/rockchip-mpp/vdpu2/hal.h >> create mode 100644 drivers/staging/rockchip-mpp/vdpu2/mpeg2.c >> create mode 100644 drivers/staging/rockchip-mpp/vdpu2/regs.h >> create mode 100644 include/uapi/video/rk_vpu_service.h >>