This changes v4l2_pix_format and v4l2_plane_pix_format sizeimage
field description to allow v4l clients to set bigger image size
in case of variable length compressed data.

Presently s5p-mfc and mtk-vcodec codec drivers use that. Lets
make it obvious in the documentation.

Signed-off-by: Stanimir Varbanov <stanimir.varba...@linaro.org>
---
Changes since v2:
Addressed review comments from Mauro.

 .../media/uapi/v4l/pixfmt-v4l2-mplane.rst         | 15 ++++++++++++++-
 Documentation/media/uapi/v4l/pixfmt-v4l2.rst      | 13 ++++++++++++-
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/Documentation/media/uapi/v4l/pixfmt-v4l2-mplane.rst 
b/Documentation/media/uapi/v4l/pixfmt-v4l2-mplane.rst
index 5688c816e334..db43dda5aafb 100644
--- a/Documentation/media/uapi/v4l/pixfmt-v4l2-mplane.rst
+++ b/Documentation/media/uapi/v4l/pixfmt-v4l2-mplane.rst
@@ -31,7 +31,20 @@ describing all planes of that format.
 
     * - __u32
       - ``sizeimage``
-      - Maximum size in bytes required for image data in this plane.
+      - Maximum size in bytes required for image data in this plane,
+       set by the driver. When the image consists of variable length
+       compressed data this is the number of bytes required by the
+       codec to support the worst-case compression scenario.
+
+       The driver will set the value for uncompressed images.
+
+       Clients are allowed to set the sizeimage field for variable length
+       compressed data flagged with ``V4L2_FMT_FLAG_COMPRESSED`` at
+       :ref:`VIDIOC_ENUM_FMT`, but the driver may ignore it and set the
+       value itself, or it may modify the provided value based on
+       alignment requirements or minimum/maximum size requirements.
+       If the client wants to leave this to the driver, then it should
+       set sizeimage to 0.
     * - __u32
       - ``bytesperline``
       - Distance in bytes between the leftmost pixels in two adjacent
diff --git a/Documentation/media/uapi/v4l/pixfmt-v4l2.rst 
b/Documentation/media/uapi/v4l/pixfmt-v4l2.rst
index 71eebfc6d853..da6da2ef139a 100644
--- a/Documentation/media/uapi/v4l/pixfmt-v4l2.rst
+++ b/Documentation/media/uapi/v4l/pixfmt-v4l2.rst
@@ -89,7 +89,18 @@ Single-planar format structure
       - Size in bytes of the buffer to hold a complete image, set by the
        driver. Usually this is ``bytesperline`` times ``height``. When
        the image consists of variable length compressed data this is the
-       maximum number of bytes required to hold an image.
+       number of bytes required by the codec to support the worst-case
+       compression scenario.
+
+       The driver will set the value for uncompressed images.
+
+       Clients are allowed to set the sizeimage field for variable length
+       compressed data flagged with ``V4L2_FMT_FLAG_COMPRESSED`` at
+       :ref:`VIDIOC_ENUM_FMT`, but the driver may ignore it and set the
+       value itself, or it may modify the provided value based on
+       alignment requirements or minimum/maximum size requirements.
+       If the client wants to leave this to the driver, then it should
+       set sizeimage to 0.
     * - __u32
       - ``colorspace``
       - Image colorspace, from enum :c:type:`v4l2_colorspace`.
-- 
2.17.1

Reply via email to