mirror of
https://github.com/Fishwaldo/build.git
synced 2025-07-23 13:29:33 +00:00
* Attach Meson64 to mainline with a bunch of patches. Tested, but need further work. * Enable DVFS on N2 which sometimes works, sometime doesn't, cleanup * Enable beta targets for Meson64 kernel family * Bump with version
62 lines
2.8 KiB
Diff
62 lines
2.8 KiB
Diff
|
|
From: Jonas Karlman <jonas@kwiboo.se>
|
|
|
|
Using the field information attached to v4l2 buffers is not enough to
|
|
determine the type of field referenced by a DPB entry: the decoded
|
|
frame might contain the full picture (both top and bottom fields)
|
|
but the reference only point to one of them.
|
|
Let's add new V4L2_H264_DPB_ENTRY_FLAG_ flags to express that.
|
|
|
|
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
|
|
[Keep only 2 flags and add some details about they mean]
|
|
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
|
|
---
|
|
Changes in v3:
|
|
* This patch was previously part of https://lkml.org/lkml/2019/10/28/956
|
|
* Kept the FIELD and BOTTOM_FIELD flags
|
|
* Updated the doc with more details
|
|
---
|
|
Documentation/media/uapi/v4l/ext-ctrls-codec.rst | 16 ++++++++++++++++
|
|
include/media/h264-ctrls.h | 2 ++
|
|
2 files changed, 18 insertions(+)
|
|
|
|
diff --git a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
|
|
index 28313c0f4e7c..d4fc5f25aa14 100644
|
|
--- a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
|
|
+++ b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
|
|
@@ -2028,6 +2028,22 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type -
|
|
* - ``V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM``
|
|
- 0x00000004
|
|
- The DPB entry is a long term reference frame
|
|
+ * - ``V4L2_H264_DPB_ENTRY_FLAG_FIELD``
|
|
+ - 0x00000008
|
|
+ - The DPB entry is a field reference, which means only one of the field
|
|
+ will be used when decoding the new frame/field. When not set the DPB
|
|
+ entry is a frame reference (both fields will be used). Note that this
|
|
+ flag does not say anything about the number of fields contained in the
|
|
+ reference frame, it just describes the one used to decode the new
|
|
+ field/frame
|
|
+ * - ``V4L2_H264_DPB_ENTRY_FLAG_BOTTOM_FIELD``
|
|
+ - 0x00000010
|
|
+ - The DPB entry is a bottom field reference (only the bottom field of the
|
|
+ reference frame is needed to decode the new frame/field). Only valid if
|
|
+ V4L2_H264_DPB_ENTRY_FLAG_FIELD is set. When
|
|
+ V4L2_H264_DPB_ENTRY_FLAG_FIELD is set but
|
|
+ V4L2_H264_DPB_ENTRY_FLAG_BOTTOM_FIELD is not, that means the
|
|
+ DPB entry is a top field reference
|
|
|
|
``V4L2_CID_MPEG_VIDEO_H264_DECODE_MODE (enum)``
|
|
Specifies the decoding mode to use. Currently exposes slice-based and
|
|
diff --git a/include/media/h264-ctrls.h b/include/media/h264-ctrls.h
|
|
index e877bf1d537c..1c6ff7d63bca 100644
|
|
--- a/include/media/h264-ctrls.h
|
|
+++ b/include/media/h264-ctrls.h
|
|
@@ -185,6 +185,8 @@ struct v4l2_ctrl_h264_slice_params {
|
|
#define V4L2_H264_DPB_ENTRY_FLAG_VALID 0x01
|
|
#define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x02
|
|
#define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x04
|
|
+#define V4L2_H264_DPB_ENTRY_FLAG_FIELD 0x08
|
|
+#define V4L2_H264_DPB_ENTRY_FLAG_BOTTOM_FIELD 0x10
|
|
|
|
struct v4l2_h264_dpb_entry {
|
|
__u64 reference_ts;
|