mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/h264_ps: Validate num_units_in_tick/time_scale before setting them in the context
This probably makes no big difference but it is more correct Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
7498f2221e
commit
c658269cd1
|
@ -191,13 +191,16 @@ static inline int decode_vui_parameters(H264Context *h, SPS *sps)
|
||||||
|
|
||||||
sps->timing_info_present_flag = get_bits1(&h->gb);
|
sps->timing_info_present_flag = get_bits1(&h->gb);
|
||||||
if (sps->timing_info_present_flag) {
|
if (sps->timing_info_present_flag) {
|
||||||
sps->num_units_in_tick = get_bits_long(&h->gb, 32);
|
unsigned num_units_in_tick = get_bits_long(&h->gb, 32);
|
||||||
sps->time_scale = get_bits_long(&h->gb, 32);
|
unsigned time_scale = get_bits_long(&h->gb, 32);
|
||||||
if (!sps->num_units_in_tick || !sps->time_scale) {
|
if (!num_units_in_tick || !time_scale) {
|
||||||
av_log(h->avctx, AV_LOG_ERROR,
|
av_log(h->avctx, AV_LOG_ERROR,
|
||||||
"time_scale/num_units_in_tick invalid or unsupported (%"PRIu32"/%"PRIu32")\n",
|
"time_scale/num_units_in_tick invalid or unsupported (%u/%u)\n",
|
||||||
sps->time_scale, sps->num_units_in_tick);
|
time_scale, num_units_in_tick);
|
||||||
sps->timing_info_present_flag = 0;
|
sps->timing_info_present_flag = 0;
|
||||||
|
} else {
|
||||||
|
sps->num_units_in_tick = num_units_in_tick;
|
||||||
|
sps->time_scale = time_scale;
|
||||||
}
|
}
|
||||||
sps->fixed_frame_rate_flag = get_bits1(&h->gb);
|
sps->fixed_frame_rate_flag = get_bits1(&h->gb);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue