Jul 7, 2020, 23:47 by yongle.lin...@gmail.com:

> add block type field to AVVideoBlockParams so we could either export or 
> visualize it later.
> ---
>  libavutil/video_enc_params.h | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/libavutil/video_enc_params.h b/libavutil/video_enc_params.h
> index 43fa443154..52c0058f5b 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,17 @@ 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
> +     */
> +    uint8_t ref[8];
>  } AVVideoBlockParams; 
>

After some discussion on IRC, could you clarify the ref array description to 
this:

> 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.

E.g. your current frame has 6 valid possible references, and your frame header 
specifies you
can use ref_frame[3] and ref_frame[5] as a reference.
So the values of ref[] for each block must be either 3 or 5.
Its convoluted because the array maps indices to indices but it makes sense.
_______________________________________________
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