It has been allocated and initialized in avformat_find_stream_info() until fd0368e7ca35e2feaf7960564e61a76655c4d1f6 when the structure was moved to AVStreamInternal and its allocation to avformat_new_stream. In order to also initialize the struct for new streams that only get created during avformat_find_stream_info() said the initialization has been added to avformat_new_stream() later. Due to the Libav-FFmpeg split this has been done twice: In 4cda8aa1c5bc58f8a7f53a21a19b03e7379bbcdc and in 30c26c2442e4e44ac5a763c23c4b0fdd9921a7f5. The initialization in avformat_find_stream_info() has not been removed at all despite being redundant. This commit removes it and the duplicated initialization in avformat_new_stream().
Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- a) avformat_find_stream_info() frees this info field; this implies that calling it again leads to crashes. Moreover, I am not even certain that the calls to ff_rfps_add_frame() that the mov demuxer performs are safe (i.e. happen before any call to avformat_find_stream_info()). b) That info structure should have a proper type to simplify the many 'st->internal->info'. libavformat/utils.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 79fa9382cf..8cbe2a0278 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3624,14 +3624,6 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) av_dict_free(&thread_opt); } - for (i = 0; i < ic->nb_streams; i++) { -#if FF_API_R_FRAME_RATE - ic->streams[i]->internal->info->last_dts = AV_NOPTS_VALUE; -#endif - ic->streams[i]->internal->info->fps_first_dts = AV_NOPTS_VALUE; - ic->streams[i]->internal->info->fps_last_dts = AV_NOPTS_VALUE; - } - read_size = 0; for (;;) { const AVPacket *pkt; @@ -4379,7 +4371,6 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c) st->internal->info = av_mallocz(sizeof(*st->internal->info)); if (!st->internal->info) goto fail; - st->internal->info->last_dts = AV_NOPTS_VALUE; st->codecpar = avcodec_parameters_alloc(); if (!st->codecpar) -- 2.30.2 _______________________________________________ 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".