media: videodev2.h: add V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL flag
Add the V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL flag to signal that the coded frame interval can be set separately from the raw frame interval for stateful encoders. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Reviewed-by: Michael Tretter <m.tretter@pengutronix.de> Acked-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
eef7a5e730
commit
286cf7d3a9
|
@ -167,17 +167,37 @@ the ``mbus_code`` field is handled differently:
|
||||||
- The hardware decoder for this compressed bytestream format (aka coded
|
- The hardware decoder for this compressed bytestream format (aka coded
|
||||||
format) is capable of parsing a continuous bytestream. Applications do
|
format) is capable of parsing a continuous bytestream. Applications do
|
||||||
not need to parse the bytestream themselves to find the boundaries
|
not need to parse the bytestream themselves to find the boundaries
|
||||||
between frames/fields. This flag can only be used in combination with
|
between frames/fields.
|
||||||
the ``V4L2_FMT_FLAG_COMPRESSED`` flag, since this applies to compressed
|
|
||||||
|
This flag can only be used in combination with the
|
||||||
|
``V4L2_FMT_FLAG_COMPRESSED`` flag, since this applies to compressed
|
||||||
formats only. This flag is valid for stateful decoders only.
|
formats only. This flag is valid for stateful decoders only.
|
||||||
* - ``V4L2_FMT_FLAG_DYN_RESOLUTION``
|
* - ``V4L2_FMT_FLAG_DYN_RESOLUTION``
|
||||||
- 0x0008
|
- 0x0008
|
||||||
- Dynamic resolution switching is supported by the device for this
|
- Dynamic resolution switching is supported by the device for this
|
||||||
compressed bytestream format (aka coded format). It will notify the user
|
compressed bytestream format (aka coded format). It will notify the user
|
||||||
via the event ``V4L2_EVENT_SOURCE_CHANGE`` when changes in the video
|
via the event ``V4L2_EVENT_SOURCE_CHANGE`` when changes in the video
|
||||||
parameters are detected. This flag can only be used in combination
|
parameters are detected.
|
||||||
with the ``V4L2_FMT_FLAG_COMPRESSED`` flag, since this applies to
|
|
||||||
compressed formats only. It is also only applies to stateful codecs.
|
This flag can only be used in combination with the
|
||||||
|
``V4L2_FMT_FLAG_COMPRESSED`` flag, since this applies to
|
||||||
|
compressed formats only. This flag is valid for stateful codecs only.
|
||||||
|
* - ``V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL``
|
||||||
|
- 0x0010
|
||||||
|
- The hardware encoder supports setting the ``CAPTURE`` coded frame
|
||||||
|
interval separately from the ``OUTPUT`` raw frame interval.
|
||||||
|
Setting the ``OUTPUT`` raw frame interval with :ref:`VIDIOC_S_PARM <VIDIOC_G_PARM>`
|
||||||
|
also sets the ``CAPTURE`` coded frame interval to the same value.
|
||||||
|
If this flag is set, then the ``CAPTURE`` coded frame interval can be
|
||||||
|
set to a different value afterwards. This is typically used for
|
||||||
|
offline encoding where the ``OUTPUT`` raw frame interval is used as
|
||||||
|
a hint for reserving hardware encoder resources and the ``CAPTURE`` coded
|
||||||
|
frame interval is the actual frame rate embedded in the encoded video
|
||||||
|
stream.
|
||||||
|
|
||||||
|
This flag can only be used in combination with the
|
||||||
|
``V4L2_FMT_FLAG_COMPRESSED`` flag, since this applies to
|
||||||
|
compressed formats only. This flag is valid for stateful encoders only.
|
||||||
|
|
||||||
|
|
||||||
Return Value
|
Return Value
|
||||||
|
|
|
@ -187,6 +187,7 @@ replace define V4L2_FMT_FLAG_COMPRESSED fmtdesc-flags
|
||||||
replace define V4L2_FMT_FLAG_EMULATED fmtdesc-flags
|
replace define V4L2_FMT_FLAG_EMULATED fmtdesc-flags
|
||||||
replace define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM fmtdesc-flags
|
replace define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM fmtdesc-flags
|
||||||
replace define V4L2_FMT_FLAG_DYN_RESOLUTION fmtdesc-flags
|
replace define V4L2_FMT_FLAG_DYN_RESOLUTION fmtdesc-flags
|
||||||
|
replace define V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL fmtdesc-flags
|
||||||
|
|
||||||
# V4L2 timecode types
|
# V4L2 timecode types
|
||||||
replace define V4L2_TC_TYPE_24FPS timecode-type
|
replace define V4L2_TC_TYPE_24FPS timecode-type
|
||||||
|
|
|
@ -794,6 +794,7 @@ struct v4l2_fmtdesc {
|
||||||
#define V4L2_FMT_FLAG_EMULATED 0x0002
|
#define V4L2_FMT_FLAG_EMULATED 0x0002
|
||||||
#define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM 0x0004
|
#define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM 0x0004
|
||||||
#define V4L2_FMT_FLAG_DYN_RESOLUTION 0x0008
|
#define V4L2_FMT_FLAG_DYN_RESOLUTION 0x0008
|
||||||
|
#define V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL 0x0010
|
||||||
|
|
||||||
/* Frame Size and frame rate enumeration */
|
/* Frame Size and frame rate enumeration */
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue