On 06/07/2020 22:08, Yongle Lin wrote:
add block type field to AVVideoBlockParams so we could either export or 
visualize it later.
---
  libavutil/video_enc_params.h | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)

diff --git a/libavutil/video_enc_params.h b/libavutil/video_enc_params.h
index 43fa443154..55b9fc4031 100644
--- a/libavutil/video_enc_params.h
+++ b/libavutil/video_enc_params.h
@@ -101,6 +101,21 @@ typedef struct AVVideoEncParams {
      int32_t delta_qp[4][2];
  } AVVideoEncParams;
+typedef struct MacroBlockType {
+    /**
+     * Is intra prediction
+     */
+    int intra;
+    /**
+     * Skip flag
+     */
+    int skip;
+    /**
+     * Reference to the past or future
+     */
+    int ref[2];

Please can you define carefully in the documentation exactly what each of these 
fields mean, as is done for the QP values above?

(That is, there should be enough information to determine what exactly is meant 
if I am given one of these structures with, say, intra = 3, skip = 7, ref = { 
5, 1 }.)

+} MacroBlockType;

Structures in the public API need to carry the "AV" namespace prefix.

I'm not sure that "macroblock" is a good word to use here: many codecs have no concept 
called a "macroblock", and invoking a word with a specific definition in only some 
contexts seems unhelpful.

+
  /**
   * Data structure for storing block-level encoding information.
   * It is allocated as a part of AVVideoEncParams and should be retrieved with
@@ -126,6 +141,11 @@ typedef struct AVVideoBlockParams {
       * corresponding per-frame value.
       */
      int32_t delta_qp;
+
+    /**
+     * Type of block
+     */
+    MacroBlockType mb_type;
  } AVVideoBlockParams;
/*


- Mark
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to