James Almer: > On 3/27/2020 6:55 AM, Andreas Rheinhardt wrote: >> Using ff_free_stream() makes the code more readable, more future-proof >> (the old code freed AVCodecContexts and AVCodecParameters and its >> substructures manually, so that there is a chance that there would be a >> memleak for some time if new substructures were added) and reduces >> code size. >> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> >> --- >> libavformat/avidec.c | 17 ++--------------- >> 1 file changed, 2 insertions(+), 15 deletions(-) >> >> diff --git a/libavformat/avidec.c b/libavformat/avidec.c >> index 00c3978b2d..ae343e732a 100644 >> --- a/libavformat/avidec.c >> +++ b/libavformat/avidec.c >> @@ -600,21 +600,8 @@ static int avi_read_header(AVFormatContext *s) >> goto fail; >> >> ast = s->streams[0]->priv_data; >> - av_freep(&s->streams[0]->codecpar->extradata); >> - av_freep(&s->streams[0]->codecpar); >> -#if FF_API_LAVF_AVCTX >> -FF_DISABLE_DEPRECATION_WARNINGS >> - av_freep(&s->streams[0]->codec); >> -FF_ENABLE_DEPRECATION_WARNINGS >> -#endif >> - if (s->streams[0]->info) >> - av_freep(&s->streams[0]->info->duration_error); >> - av_freep(&s->streams[0]->info); >> - if (s->streams[0]->internal) >> - av_freep(&s->streams[0]->internal->avctx); >> - av_freep(&s->streams[0]->internal); >> - av_freep(&s->streams[0]); >> - s->nb_streams = 0; >> + st->priv_data = NULL; >> + ff_free_stream(s, st); > > I stream_index guaranteed to be 0 here? Or in turn, was s->streams[0] > correct in this chunk to begin with? >
Yes. See lines 592-595: /* After some consideration -- I don't think we * have to support anything but DV in type1 AVIs. */ if (s->nb_streams != 1) goto fail; (I basically don't know DV, so I don't know how much additional work it would be to extend this. I also don't know if simply freeing the last stream (as ff_free_stream() does automatically) would mean that the above check could be removed. All I know is that the avpriv_dv_init_demux() will add a new stream to s.) - Andreas _______________________________________________ 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".