Message ID | 20220124170014.17189-2-anton@khirnov.net |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,01/13] lavc/h264: replace MAX_MMCO_COUNT with H264_MAX_MMCO_COUNT | expand |
On 1/24/2022 2:00 PM, Anton Khirnov wrote: > Parsers should not mess with decoder private data. It is also completely > unnecessary here. > --- > libavcodec/h264_parser.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c > index e3a11702c5..816b04845e 100644 > --- a/libavcodec/h264_parser.c > +++ b/libavcodec/h264_parser.c > @@ -247,7 +247,6 @@ static inline int parse_nal_units(AVCodecParserContext *s, > const uint8_t * const buf, int buf_size) > { > H264ParseContext *p = s->priv_data; > - H264Context *h = avctx->priv_data; > H2645RBSP rbsp = { NULL }; > H2645NAL nal = { NULL }; > int buf_index, next_avc; > @@ -553,11 +552,10 @@ static inline int parse_nal_units(AVCodecParserContext *s, > p->last_picture_structure = s->picture_structure; > p->last_frame_num = p->poc.frame_num; > } > - if (h && sps->timing_info_present_flag) { > + if (sps->timing_info_present_flag) { > int64_t den = sps->time_scale; > - if (p->sei.unregistered.x264_build >= 0) > - h->x264_build = p->sei.unregistered.x264_build; > - if (h->x264_build < 44U) > + if (p->sei.unregistered.x264_build >= 0 && I don't think this check is needed. < 44U should in theory ensure the default of -1 is converted to unsigned and the check will evaluate to false. See my patch (I don't mind if you amend yours and push this with your authorship). > + p->sei.unregistered.x264_build < 44U) > den *= 2; > av_reduce(&avctx->framerate.den, &avctx->framerate.num, > sps->num_units_in_tick * avctx->ticks_per_frame, den, 1 << 30);
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c index e3a11702c5..816b04845e 100644 --- a/libavcodec/h264_parser.c +++ b/libavcodec/h264_parser.c @@ -247,7 +247,6 @@ static inline int parse_nal_units(AVCodecParserContext *s, const uint8_t * const buf, int buf_size) { H264ParseContext *p = s->priv_data; - H264Context *h = avctx->priv_data; H2645RBSP rbsp = { NULL }; H2645NAL nal = { NULL }; int buf_index, next_avc; @@ -553,11 +552,10 @@ static inline int parse_nal_units(AVCodecParserContext *s, p->last_picture_structure = s->picture_structure; p->last_frame_num = p->poc.frame_num; } - if (h && sps->timing_info_present_flag) { + if (sps->timing_info_present_flag) { int64_t den = sps->time_scale; - if (p->sei.unregistered.x264_build >= 0) - h->x264_build = p->sei.unregistered.x264_build; - if (h->x264_build < 44U) + if (p->sei.unregistered.x264_build >= 0 && + p->sei.unregistered.x264_build < 44U) den *= 2; av_reduce(&avctx->framerate.den, &avctx->framerate.num, sps->num_units_in_tick * avctx->ticks_per_frame, den, 1 << 30);