mbox series

[GIT,PULL,FOR,v5.19] H.264 Field Decoding Support for Frame-based Decoders

Message ID 5ac6c664-c130-265a-c8e0-6a47c9ebbd3f@xs4all.nl (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL,FOR,v5.19] H.264 Field Decoding Support for Frame-based Decoders | expand

Pull-request

git://linuxtv.org/hverkuil/media_tree.git tags/br-v5.19f

Message

Hans Verkuil April 29, 2022, 6:07 a.m. UTC
This PR contains this Nicolas' v4 patch series:

https://patchwork.linuxtv.org/project/linux-media/patch/20220426125751.108293-2-nicolas.dufresne@collabora.com/

except for patch 03/24 ("media: videobuf2-v4l2: Warn on holding buffers without support")
which needs more work. It's independent of the other patches though, so that can be
done later.

Regards,

	Hans

The following changes since commit 6c1c1eb8c87de221051b9198d40971640060842f:

  media: ext-ctrls-codec.rst: fix indentation (2022-04-25 23:55:02 +0100)

are available in the Git repository at:

  git://linuxtv.org/hverkuil/media_tree.git tags/br-v5.19f

for you to fetch changes up to 837f4cd1ceefa0e52631da3df382ed495784c290:

  media: hantro: Enable HOLD_CAPTURE_BUF for H.264 (2022-04-28 10:55:13 +0200)

----------------------------------------------------------------
Tag branch

----------------------------------------------------------------
Jonas Karlman (5):
      media: rkvdec: h264: Fix bit depth wrap in pps packet
      media: rkvdec: h264: Validate and use pic width and height in mbs
      media: rkvdec: h264: Fix reference frame_num wrap for second field
      media: rkvdec: Ensure decoded resolution fit coded resolution
      media: hantro: h264: Make dpb entry management more robust

Nicolas Dufresne (18):
      media: doc: Document dual use of H.264 pic_num/frame_num
      media: v4l2-mem2mem: Trace on implicit un-hold
      media: h264: Avoid wrapping long_term_frame_idx
      media: h264: Use v4l2_h264_reference for reflist
      media: h264: Increase reference lists size to 32
      media: h264: Store current picture fields
      media: h264: Store all fields into the unordered list
      media: v4l2: Trace calculated p/b0/b1 initial reflist
      media: h264: Sort p/b reflist using frame_num
      media: v4l2: Reorder field reflist
      media: rkvdec: Stop overclocking the decoder
      media: rkvdec: h264: Fix dpb_valid implementation
      media: rkvdec: Move H264 SPS validation in rkvdec-h264
      media: rkvdec-h264: Add field decoding support
      media: rkvdec: Enable capture buffer holding for H264
      media: hantro: Stop using H.264 parameter pic_num
      media: hantro: Add H.264 field decoding support
      media: hantro: Enable HOLD_CAPTURE_BUF for H.264

 Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst |  10 +-
 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_if.c      |  36 +++++--
 drivers/media/platform/nvidia/tegra-vde/h264.c                      |  19 ++--
 drivers/media/v4l2-core/v4l2-h264.c                                 | 275 ++++++++++++++++++++++++++++++++++++++++++---------
 drivers/media/v4l2-core/v4l2-mem2mem.c                              |   1 +
 drivers/staging/media/hantro/hantro_g1_h264_dec.c                   |  38 +++----
 drivers/staging/media/hantro/hantro_h264.c                          | 134 ++++++++++++++++++++-----
 drivers/staging/media/hantro/hantro_hw.h                            |   8 +-
 drivers/staging/media/hantro/hantro_v4l2.c                          |  25 +++++
 drivers/staging/media/hantro/rockchip_vpu2_hw_h264_dec.c            |  98 +++++++++---------
 drivers/staging/media/rkvdec/rkvdec-h264.c                          | 157 +++++++++++++++++++++--------
 drivers/staging/media/rkvdec/rkvdec.c                               |  35 +++----
 drivers/staging/media/rkvdec/rkvdec.h                               |   2 +
 include/media/v4l2-h264.h                                           |  31 +++---
 14 files changed, 634 insertions(+), 235 deletions(-)

Comments

Jenkins April 29, 2022, 6:36 a.m. UTC | #1
From: builder@linuxtv.org

Pull request: https://patchwork.linuxtv.org/project/linux-media/patch/5ac6c664-c130-265a-c8e0-6a47c9ebbd3f@xs4all.nl/
Build log: https://builder.linuxtv.org/job/patchwork/203191/
Build time: 00:24:05
Link: https://lore.kernel.org/linux-media/5ac6c664-c130-265a-c8e0-6a47c9ebbd3f@xs4all.nl

gpg: Signature made Fri 29 Apr 2022 06:02:35 AM UTC
gpg:                using EDDSA key 52ADCAAE8A4F70B99ACD8D726B425DF79B1C1E76
gpg: Can't check signature: No public key

Summary: got 4/23 patches with issues, being 4 at build time, plus one error when buinding PDF document

Error/warnings:

patches/0001-media-doc-Document-dual-use-of-H.264-pic_num-frame_n.patch:

    allyesconfig: return code #0:
	../scripts/genksyms/parse.y: warning: 9 shift/reduce conflicts [-Wconflicts-sr]
	../scripts/genksyms/parse.y: warning: 5 reduce/reduce conflicts [-Wconflicts-rr]
	../scripts/genksyms/parse.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples

    allyesconfig: return code #0:
	../drivers/media/platform/qcom/venus/helpers.c: ../drivers/media/platform/qcom/venus/helpers.c:678 venus_helper_get_bufreq() error: we previously assumed 'req' could be null (see line 674)
	SMATCH:../drivers/media/usb/siano/smsusb.c ../drivers/media/usb/siano/smsusb.c:53:38: :warning: array of flexible structures
	SPARSE:../drivers/media/usb/siano/smsusb.c ../drivers/media/usb/siano/smsusb.c:53:38: warning: array of flexible structures
	../drivers/media/pci/cx23885/cx23885-dvb.c: ../drivers/media/pci/cx23885/cx23885-dvb.c:2625 dvb_register() parse error: turning off implications after 60 seconds
	../drivers/media/test-drivers/vivid/vivid-core.c: ../drivers/media/test-drivers/vivid/vivid-core.c:1981 vivid_create_instance() parse error: turning off implications after 60 seconds
	../drivers/media/usb/em28xx/em28xx-video.c: ../drivers/media/usb/em28xx/em28xx-video.c:2888 em28xx_v4l2_init() parse error: turning off implications after 60 seconds

patches/0004-media-h264-Use-v4l2_h264_reference-for-reflist.patch:

    allyesconfig: return code #512:
	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
	make[4]: *** Waiting for unfinished jobs....
	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
	make: *** [Makefile:219: __sub-make] Error 2

    allmodconfig: return code #512:
	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
	make[4]: *** Waiting for unfinished jobs....
	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
	make[3]: *** Waiting for unfinished jobs....
	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
	make: *** [Makefile:219: __sub-make] Error 2

patches/0005-media-h264-Increase-reference-lists-size-to-32.patch:

    allyesconfig: return code #512:
	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
	make[4]: *** Waiting for unfinished jobs....
	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
	make: *** [Makefile:219: __sub-make] Error 2

    allmodconfig: return code #512:
	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
	make[4]: *** Waiting for unfinished jobs....
	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
	make[3]: *** Waiting for unfinished jobs....
	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
	make: *** [Makefile:219: __sub-make] Error 2

patches/0006-media-h264-Store-current-picture-fields.patch:

    allyesconfig: return code #512:
	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
	make[4]: *** Waiting for unfinished jobs....
	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
	make: *** [Makefile:219: __sub-make] Error 2

    allmodconfig: return code #512:
	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
	make[4]: *** Waiting for unfinished jobs....
	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
	make[3]: *** Waiting for unfinished jobs....
	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
	make: *** [Makefile:219: __sub-make] Error 2


Error #512 when building PDF docs
Mauro Carvalho Chehab May 13, 2022, 8:09 a.m. UTC | #2
Hi Hans,

Em Fri, 29 Apr 2022 06:36:21 +0000
Jenkins <jenkins@linuxtv.org> escreveu:

> From: builder@linuxtv.org
> 
> Pull request: https://patchwork.linuxtv.org/project/linux-media/patch/5ac6c664-c130-265a-c8e0-6a47c9ebbd3f@xs4all.nl/
> Build log: https://builder.linuxtv.org/job/patchwork/203191/
> Build time: 00:24:05
> Link: https://lore.kernel.org/linux-media/5ac6c664-c130-265a-c8e0-6a47c9ebbd3f@xs4all.nl
> 
> gpg: Signature made Fri 29 Apr 2022 06:02:35 AM UTC
> gpg:                using EDDSA key 52ADCAAE8A4F70B99ACD8D726B425DF79B1C1E76
> gpg: Can't check signature: No public key
> 
> Summary: got 4/23 patches with issues, being 4 at build time, plus one error when buinding PDF document
> 
> Error/warnings:
> 
> patches/0001-media-doc-Document-dual-use-of-H.264-pic_num-frame_n.patch:
> 
>     allyesconfig: return code #0:
> 	../scripts/genksyms/parse.y: warning: 9 shift/reduce conflicts [-Wconflicts-sr]
> 	../scripts/genksyms/parse.y: warning: 5 reduce/reduce conflicts [-Wconflicts-rr]
> 	../scripts/genksyms/parse.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples
> 
>     allyesconfig: return code #0:
> 	../drivers/media/platform/qcom/venus/helpers.c: ../drivers/media/platform/qcom/venus/helpers.c:678 venus_helper_get_bufreq() error: we previously assumed 'req' could be null (see line 674)
> 	SMATCH:../drivers/media/usb/siano/smsusb.c ../drivers/media/usb/siano/smsusb.c:53:38: :warning: array of flexible structures
> 	SPARSE:../drivers/media/usb/siano/smsusb.c ../drivers/media/usb/siano/smsusb.c:53:38: warning: array of flexible structures
> 	../drivers/media/pci/cx23885/cx23885-dvb.c: ../drivers/media/pci/cx23885/cx23885-dvb.c:2625 dvb_register() parse error: turning off implications after 60 seconds
> 	../drivers/media/test-drivers/vivid/vivid-core.c: ../drivers/media/test-drivers/vivid/vivid-core.c:1981 vivid_create_instance() parse error: turning off implications after 60 seconds
> 	../drivers/media/usb/em28xx/em28xx-video.c: ../drivers/media/usb/em28xx/em28xx-video.c:2888 em28xx_v4l2_init() parse error: turning off implications after 60 seconds
> 
> patches/0004-media-h264-Use-v4l2_h264_reference-for-reflist.patch:
> 
>     allyesconfig: return code #512:
> 	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
> 	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
> 	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
> 	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
> 	make[4]: *** Waiting for unfinished jobs....
> 	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
> 	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
> 	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
> 	make: *** [Makefile:219: __sub-make] Error 2


This series break Kernel compilation. Please fix it and resubmit.

Thanks,
Mauro

> 
>     allmodconfig: return code #512:
> 	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
> 	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
> 	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
> 	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
> 	make[4]: *** Waiting for unfinished jobs....
> 	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
> 	make[3]: *** Waiting for unfinished jobs....
> 	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
> 	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
> 	make: *** [Makefile:219: __sub-make] Error 2
> 
> patches/0005-media-h264-Increase-reference-lists-size-to-32.patch:
> 
>     allyesconfig: return code #512:
> 	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
> 	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
> 	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
> 	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
> 	make[4]: *** Waiting for unfinished jobs....
> 	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
> 	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
> 	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
> 	make: *** [Makefile:219: __sub-make] Error 2
> 
>     allmodconfig: return code #512:
> 	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
> 	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
> 	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
> 	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
> 	make[4]: *** Waiting for unfinished jobs....
> 	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
> 	make[3]: *** Waiting for unfinished jobs....
> 	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
> 	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
> 	make: *** [Makefile:219: __sub-make] Error 2
> 
> patches/0006-media-h264-Store-current-picture-fields.patch:
> 
>     allyesconfig: return code #512:
> 	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
> 	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
> 	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
> 	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
> 	make[4]: *** Waiting for unfinished jobs....
> 	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
> 	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
> 	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
> 	make: *** [Makefile:219: __sub-make] Error 2
> 
>     allmodconfig: return code #512:
> 	../drivers/media/platform/nvidia/tegra-vde/h264.c:823:22: error: ‘struct <anonymous>’ has no member named ‘top_field_order_cnt’
> 	make[6]: *** [../scripts/Makefile.build:288: drivers/media/platform/nvidia/tegra-vde/h264.o] Error 1
> 	make[5]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia/tegra-vde] Error 2
> 	make[4]: *** [../scripts/Makefile.build:550: drivers/media/platform/nvidia] Error 2
> 	make[4]: *** Waiting for unfinished jobs....
> 	make[3]: *** [../scripts/Makefile.build:550: drivers/media/platform] Error 2
> 	make[3]: *** Waiting for unfinished jobs....
> 	make[2]: *** [../scripts/Makefile.build:550: drivers/media] Error 2
> 	make[1]: *** [/var/lib/jenkins/workspace/patchwork/Makefile:1834: drivers] Error 2
> 	make: *** [Makefile:219: __sub-make] Error 2
> 
> 
> Error #512 when building PDF docs
> 



Thanks,
Mauro