On Fri, Feb 9, 2018 at 7:04 PM, James Almer <jamr...@gmail.com> wrote: > On 2/9/2018 7:16 AM, Muhammad Faiz wrote: >> Should fix >> https://ffmpeg.org/pipermail/ffmpeg-devel/2018-February/225066.html >> >> Signed-off-by: Muhammad Faiz <mfc...@gmail.com> >> --- >> The actual problem is that av*next() and av*iterate() have different >> semantics: >> - av*next() iterate all formats+devices >> - av*iterate() iterate formats only. >> Is this the intended behaviour? >> >> libavformat/format.c | 13 ++++++++++++- >> 1 file changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/libavformat/format.c b/libavformat/format.c >> index b8c5a90a92..75951938cf 100644 >> --- a/libavformat/format.c >> +++ b/libavformat/format.c >> @@ -52,7 +52,9 @@ AVOutputFormat *av_guess_format(const char *short_name, >> const char *filename, >> const char *mime_type) >> { >> AVOutputFormat *fmt = NULL, *fmt_found; >> +#if !FF_API_NEXT >> void *i = 0; >> +#endif >> int score_max, score; >> >> /* specific test for image sequences */ >> @@ -66,7 +68,13 @@ AVOutputFormat *av_guess_format(const char *short_name, >> const char *filename, >> /* Find the proper file type. */ >> fmt_found = NULL; >> score_max = 0; >> - while ((fmt = av_muxer_iterate(&i))) { >> +#if FF_API_NEXT >> +FF_DISABLE_DEPRECATION_WARNINGS >> + while ((fmt = av_oformat_next(fmt))) >> +#else >> + while ((fmt = av_muxer_iterate(&i))) >> +#endif >> + { >> score = 0; >> if (fmt->name && short_name && av_match_name(short_name, fmt->name)) >> score += 100; >> @@ -81,6 +89,9 @@ AVOutputFormat *av_guess_format(const char *short_name, >> const char *filename, >> fmt_found = fmt; >> } >> } >> +#if FF_API_NEXT >> +FF_ENABLE_DEPRECATION_WARNINGS >> +#endif >> return fmt_found; >> } > > Is your intention to schedule this change to happen once the deprecation > period ends two years from now, or were you just disabling it for a bit > until the new API is fixed/finalized? > If the latter, then please don't add the wrappers. Just replace the > _iterate() calls.
My intention is the first. With assumption that people agree with current new API, and the different semantic between av_iformat/oformat_next (which iterate formats+devices) and av_muxer/demuxer_iterate (which iterate formats only) is intended behaviour. Thank's. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel