[FFmpeg-devel] [PATCH v2 30/36] cbs_h264: Fix range and default value of max mv lengths

Xiang, Haihao haihao.xiang at intel.com
Fri Jun 15 06:01:37 EEST 2018


On Fri, 2018-06-08 at 00:43 +0100, Mark Thompson wrote:
> The max and default values are 15, not 16.

I guessed you mixed both h264 and h265. The h264 doc i have specifies the range
for log2_max_mv_length_vertical/log2_max_mv_length_horizontal is [0, 16] and the
value of log2_max_mv_length_vertical/log2_max_mv_length_horizontal should be
inferred to 16 when log2_max_mv_length_vertical/log2_max_mv_length_horizontal is
not present.

> ---
>  libavcodec/cbs_h264_syntax_template.c | 8 ++++----
>  libavcodec/vaapi_encode_h264.c        | 4 ++--
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/libavcodec/cbs_h264_syntax_template.c
> b/libavcodec/cbs_h264_syntax_template.c
> index 027b555db6..21edcb799e 100644
> --- a/libavcodec/cbs_h264_syntax_template.c
> +++ b/libavcodec/cbs_h264_syntax_template.c
> @@ -185,16 +185,16 @@ static int FUNC(vui_parameters)(CodedBitstreamContext
> *ctx, RWContext *rw,
>          flag(motion_vectors_over_pic_boundaries_flag);
>          ue(max_bytes_per_pic_denom, 0, 16);
>          ue(max_bits_per_mb_denom,   0, 16);
> -        ue(log2_max_mv_length_horizontal, 0, 16);
> -        ue(log2_max_mv_length_vertical,   0, 16);
> +        ue(log2_max_mv_length_horizontal, 0, 15);
> +        ue(log2_max_mv_length_vertical,   0, 15);
>          ue(max_num_reorder_frames,  0, H264_MAX_DPB_FRAMES);
>          ue(max_dec_frame_buffering, 0, H264_MAX_DPB_FRAMES);
>      } else {
>          infer(motion_vectors_over_pic_boundaries_flag, 1);
>          infer(max_bytes_per_pic_denom, 2);
>          infer(max_bits_per_mb_denom,   1);
> -        infer(log2_max_mv_length_horizontal, 16);
> -        infer(log2_max_mv_length_vertical,   16);
> +        infer(log2_max_mv_length_horizontal, 15);
> +        infer(log2_max_mv_length_vertical,   15);
>  
>          if ((sps->profile_idc ==  44 || sps->profile_idc ==  86 ||
>               sps->profile_idc == 110 || sps->profile_idc == 110 ||
> diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c
> index 4034053dc0..0d7780110c 100644
> --- a/libavcodec/vaapi_encode_h264.c
> +++ b/libavcodec/vaapi_encode_h264.c
> @@ -491,8 +491,8 @@ static int
> vaapi_encode_h264_init_sequence_params(AVCodecContext *avctx)
>  
>      sps->vui.bitstream_restriction_flag    = 1;
>      sps->vui.motion_vectors_over_pic_boundaries_flag = 1;
> -    sps->vui.log2_max_mv_length_horizontal = 16;
> -    sps->vui.log2_max_mv_length_vertical   = 16;
> +    sps->vui.log2_max_mv_length_horizontal = 15;
> +    sps->vui.log2_max_mv_length_vertical   = 15;
>      sps->vui.max_num_reorder_frames        = (ctx->b_per_p > 0);
>      sps->vui.max_dec_frame_buffering       = sps->max_num_ref_frames;
>  


More information about the ffmpeg-devel mailing list