A recent version of the standard changed the max and default to 15, from
16 in older versions. This updates the default to 15 to match, but the
max stays as 16 so that we don't reject older streams.
flag(motion_vectors_over_pic_boundaries_flag);
ue(max_bytes_per_pic_denom, 0, 16);
ue(max_bits_per_mb_denom, 0, 16);
flag(motion_vectors_over_pic_boundaries_flag);
ue(max_bytes_per_pic_denom, 0, 16);
ue(max_bits_per_mb_denom, 0, 16);
+ // The current version of the standard constrains this to be in
+ // [0,15], but older versions allow 16.
ue(log2_max_mv_length_horizontal, 0, 16);
ue(log2_max_mv_length_vertical, 0, 16);
ue(max_num_reorder_frames, 0, H264_MAX_DPB_FRAMES);
ue(log2_max_mv_length_horizontal, 0, 16);
ue(log2_max_mv_length_vertical, 0, 16);
ue(max_num_reorder_frames, 0, H264_MAX_DPB_FRAMES);
infer(motion_vectors_over_pic_boundaries_flag, 1);
infer(max_bytes_per_pic_denom, 2);
infer(max_bits_per_mb_denom, 1);
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 ||
if ((sps->profile_idc == 44 || sps->profile_idc == 86 ||
sps->profile_idc == 110 || sps->profile_idc == 110 ||
sps->vui.bitstream_restriction_flag = 1;
sps->vui.motion_vectors_over_pic_boundaries_flag = 1;
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;
sps->vui.max_num_reorder_frames = (ctx->b_per_p > 0);
sps->vui.max_dec_frame_buffering = sps->max_num_ref_frames;