On 20/03/2019 09:14, Decai Lin wrote: > 1. add MaxMBPS checking for level idc setting to align with AVC spec > AnnexA table A-1/A-6 level limits. > 2. update h264 level fate test. > > Signed-off-by: Decai Lin <decai....@intel.com> > --- > libavcodec/h264_levels.c | 4 +++ > libavcodec/h264_levels.h | 1 + > libavcodec/h264_metadata_bsf.c | 9 ++++++- > libavcodec/tests/h264_levels.c | 58 > +++++++++++++++++++++++++++++++++++++++--- > libavcodec/vaapi_encode_h264.c | 7 +++++ > 5 files changed, 75 insertions(+), 4 deletions(-) > > ... > diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/h264_metadata_bsf.c > index a17987a..0f6ce26 100644 > --- a/libavcodec/h264_metadata_bsf.c > +++ b/libavcodec/h264_metadata_bsf.c > @@ -223,6 +223,7 @@ static int h264_metadata_update_sps(AVBSFContext *bsf, > const H264LevelDescriptor *desc; > int64_t bit_rate; > int width, height, dpb_frames; > + int framerate; > > if (sps->vui.nal_hrd_parameters_present_flag) { > bit_rate = > (sps->vui.nal_hrd_parameters.bit_rate_value_minus1[0] + 1) * > @@ -244,7 +245,13 @@ static int h264_metadata_update_sps(AVBSFContext *bsf, > height = 16 * (sps->pic_height_in_map_units_minus1 + 1) * > (2 - sps->frame_mbs_only_flag); > > - desc = ff_h264_guess_level(sps->profile_idc, bit_rate, > + if (sps->vui.timing_info_present_flag) { > + framerate = sps->vui.time_scale / sps->vui.num_units_in_tick;
This calculated number is the fieldrate, not the framerate. I fixed that by adding the missing factor 2. > + } else { > + framerate = 0; > + } > + > + desc = ff_h264_guess_level(sps->profile_idc, bit_rate, framerate, > width, height, dpb_frames); > if (desc) { > level_idc = desc->level_idc; LGTM with that, and applied. Thanks, - 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".