Hello, This RFC proposes a new format flag - V4L2_FMT_FLAG_DYN_RESOLUTION - used to tag coded formats for which the device supports dynamic resolution switching, via V4L2_EVENT_SOURCE_CHANGE. This includes the initial "source change" where the device is able to tell userspace about the coded resolution and the DPB size (which sometimes translates to V4L2_CID_MIN_BUFFERS_FOR_CAPTURE). This flag is mainly aimed at stateful decoder drivers. This RFC is motivated by my development on the amlogic video decoder driver, which does not support dynamic resolution switching for older coded formats (MPEG 1/2, MPEG 4 part II, H263). It does however support it for the newer formats (H264, HEVC, VP9). The specification regarding stateful video decoders should be amended to include that, in the absence of this flag for a certain format, userspace is expected to extract the coded resolution and allocate a sufficient amount of capture buffers on its own. I understand that this point may be tricky, since older kernels with close-to-spec drivers would not have this flag available, yet would fully support dynamic resolution switching. However, with the spec not merged in yet, I wanted to have your opinion on this late addition. The RFC patches also adds support for this flag for the 4 following stateful decoder drivers: - venus - s5p-mfc - mtk-vcodec - vicodec Maxime Jourdan (5): media: videodev2: add V4L2_FMT_FLAG_DYN_RESOLUTION media: venus: vdec: flag OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION media: s5p_mfc_dec: flag OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION media: mtk-vcodec: flag OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION media: vicodec: flag vdec/stateful OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION Documentation/media/uapi/v4l/vidioc-enum-fmt.rst | 7 +++++++ drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 4 ++++ drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 1 + drivers/media/platform/qcom/venus/core.h | 1 + drivers/media/platform/qcom/venus/vdec.c | 11 +++++++++++ drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 1 + drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 13 +++++++++++++ drivers/media/platform/vicodec/vicodec-core.c | 2 ++ include/uapi/linux/videodev2.h | 5 +++-- 9 files changed, 43 insertions(+), 2 deletions(-) -- 2.21.0