Hi, Le jeudi 12 novembre 2026 à 08:54 +0000, Arun Iyengar via B4 Relay a écrit : > From: Arun Iyengar > > The VDPU2 decoder format tables (RK3328, RK3568, RK3588 VPU121) and the > RK3399 one let the VP8 OUTPUT format go up to 3840x2160, but their only > CAPTURE format, NV12, stops at 1920x1088, and the CAPTURE size is > clamped to it. A 4K VP8 stream is therefore accepted on OUTPUT and then > decoded into a 1920x1088 buffer: on RK3588 GStreamer v4l2slvp8dec runs > into "gst_video_frame_map_id: assertion 'info->width <= meta->width' > failed" for every frame of a 3840x2160 stream and none of the frames > match FFmpeg. Just to bring to your attention, the IP does support up to 65Kx65k, but then you can't do referencing (its the WebP mode, key frame only). Hughes Fruchet from ST started looking into this but his work was not completed. The general idea though was to perhaps introduce a V4L2_PIX_FMT_WEBP_VP8 (or VP8_INTRA, naming is hard) format to signal this to the decoder, and limit to 1080 the FMT_VP8 (what you are fixing I suppose). > > Nothing above 1080p can be decoded with these tables, so don't > advertise it: limit VP8 to the 1920x1088 of the other codecs and of the > CAPTURE format. Userspace that checks VIDIOC_ENUM_FRAMESIZES, and the > S_FMT clamping, then know that a 4K VP8 stream needs another decoder. > > Fixes: 73fb5bfa53e9 ("media: hantro: Support RK3399 VP8 decoding") > Signed-off-by: Arun Iyengar > --- > drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c > index 02673be9878e..2b6242c1fb86 100644 > --- a/drivers/media/platform/verisilicon/rockchip_vpu_hw.c > +++ b/drivers/media/platform/verisilicon/rockchip_vpu_hw.c > @@ -274,10 +274,10 @@ static const struct hantro_fmt rockchip_vdpu2_dec_fmts[] = { > .max_depth = 2, > .frmsize = { > .min_width = FMT_MIN_WIDTH, > - .max_width = FMT_UHD_WIDTH, > + .max_width = FMT_FHD_WIDTH, > .step_width = MB_DIM, > .min_height = FMT_MIN_HEIGHT, > - .max_height = FMT_UHD_HEIGHT, > + .max_height = FMT_FHD_HEIGHT, > .step_height = MB_DIM, > }, > }, > @@ -315,10 +315,10 @@ static const struct hantro_fmt rk3399_vpu_dec_fmts[] = { > .max_depth = 2, > .frmsize = { > .min_width = FMT_MIN_WIDTH, > - .max_width = FMT_UHD_WIDTH, > + .max_width = FMT_FHD_WIDTH, > .step_width = MB_DIM, > .min_height = FMT_MIN_HEIGHT, > - .max_height = FMT_UHD_HEIGHT, > + .max_height = FMT_FHD_HEIGHT, If you have time, it is also miss-configured on the imx8mm, the combo-core (G1/H1 combined, like RK modified version). While the imx8mq has 4k h264, I don't know if the VP8 core actually is capable of 4k, so perhaps both soc need fixing. > .step_height = MB_DIM, > }, > },