aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h264_metadata_bsf.c
diff options
context:
space:
mode:
authorDecai Lin <decai.lin@intel.com>2019-03-20 17:14:47 +0800
committerMark Thompson <sw@jkqxz.net>2019-03-27 00:13:27 +0000
commitec1e4a8baf1bfdb693555ffea7c280e1cf842dfc (patch)
tree6b77b46f90a2a4dbd96492b0501a9f54a84b5758 /libavcodec/h264_metadata_bsf.c
parent1e34014010dba9325fc5430934b51a61a5007c63 (diff)
downloadffmpeg-ec1e4a8baf1bfdb693555ffea7c280e1cf842dfc.tar.gz
lavc/h264_levels: add MaxMBPS checking and update fate test.
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.lin@intel.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
Diffstat (limited to 'libavcodec/h264_metadata_bsf.c')
-rw-r--r--libavcodec/h264_metadata_bsf.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/h264_metadata_bsf.c
index a17987a06c..ae54929b85 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,12 @@ 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 / 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;