[FFmpeg-devel] [PATCH] libavcodec/h264dec: export block type in H.264

Lynne dev at lynne.ee
Thu Jul 16 00:15:14 EEST 2020


Jul 15, 2020, 22:05 by yongle.lin.94 at gmail.com:

> ---
>  libavcodec/h264dec.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
> index 1e2ca68449..b3de5290d0 100644
> --- a/libavcodec/h264dec.c
> +++ b/libavcodec/h264dec.c
> @@ -816,6 +816,20 @@ static int h264_export_enc_params(AVFrame *f, H264Picture *p)
>  b->h     = 16;
>  
>  b->delta_qp = p->qscale_table[mb_xy] - par->qp;
> +
> +            int mb_type = p->mb_type[mb_xy];
> +            if (IS_PCM(mb_type))
> +                b->flags |= AV_VIDEO_ENC_BLOCK_INTRA;
> +            if (IS_SKIP(mb_type))
> +                b->flags |= AV_VIDEO_ENC_BLOCK_SKIP;
> +            if (!USES_LIST(mb_type, 1))
> +                b->ref[0] = p->ref_index[0];
> +            else if (!USES_LIST(mb_type, 0))
> +                b->ref[0] = p->ref_index[1];
> +            else {
> +                b->ref[0] = p->ref_index[0];
> +                b->ref[1] = p->ref_index[1];
> +            }
>  } 
>

Looks good to me, apart from the wrong bracket style, which anyone applying
can correct.
I think Anton or Mark need to take a look at this too, since they know h264 better
than I do.


More information about the ffmpeg-devel mailing list