[FFmpeg-devel] [PATCH] libavutil/video_enc_params: add block type
Yongle Lin
yongle.lin.94 at gmail.com
Wed Jul 8 02:30:13 EEST 2020
add block type field to AVVideoBlockParams so we could either export or visualize it later.
---
libavutil/video_enc_params.h | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/libavutil/video_enc_params.h b/libavutil/video_enc_params.h
index 43fa443154..8bf5f240c9 100644
--- a/libavutil/video_enc_params.h
+++ b/libavutil/video_enc_params.h
@@ -57,6 +57,11 @@ enum AVVideoEncParamsType {
AV_VIDEO_ENC_PARAMS_H264,
};
+enum AVVideoBlockFlags {
+ AV_VIDEO_ENC_BLOCK_INTRA = 1ULL << 0, /* Indicates block uses intra prediction */
+ AV_VIDEO_ENC_BLOCK_SKIP = 1ULL << 1, /* Indicates block is not coded (skipped) */
+};
+
/**
* Video encoding parameters for a given frame. This struct is allocated along
* with an optional array of per-block AVVideoBlockParams descriptors.
@@ -126,6 +131,20 @@ typedef struct AVVideoBlockParams {
* corresponding per-frame value.
*/
int32_t delta_qp;
+
+ /**
+ * Type flag of the block
+ * Each bit field indicates a type flag
+ */
+ enum AVVideoBlockFlags flags;
+
+ /**
+ * Reference frames used for prediction
+ * Each entry specifies the first/second/third/etc. reference frame the current frame uses.
+ * The value at each entry specifies the index inside the reference frame array for that current frame.
+ * Any entry that is unused will be set to -1
+ */
+ int8_t ref[8];
} AVVideoBlockParams;
/*
--
2.27.0.383.g050319c2ae-goog
More information about the ffmpeg-devel
mailing list