[FFmpeg-devel] [PATCH] avformat/format: make experimental flag works for muxer
Zhao Zhili
quinkblack at foxmail.com
Thu Jun 5 19:21:32 EEST 2025
> On Jun 6, 2025, at 00:09, James Almer <jamrial at gmail.com> wrote:
>
> On 6/5/2025 1:06 PM, Zhao Zhili wrote:
>> From: Zhao Zhili <zhilizhao at tencent.com>
>> ---
>> libavformat/avformat.h | 3 +--
>> libavformat/format.c | 2 ++
>> 2 files changed, 3 insertions(+), 2 deletions(-)
>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
>> index 2034d2aecc..6edcf11022 100644
>> --- a/libavformat/avformat.h
>> +++ b/libavformat/avformat.h
>> @@ -470,8 +470,7 @@ typedef struct AVProbeData {
>> /**
>> * The muxer/demuxer is experimental and should be used with caution.
>> *
>> - * - demuxers: will not be selected automatically by probing, must be specified
>> - * explicitly.
>> + * Will not be selected automatically, must be specified explicitly.
>
> "It will not be selected automatically, and must be specified explicitly."
OK.
I have another question. The AVFMT_EXPERIMENTAL flag is different from
AV_CODEC_CAP_EXPERIMENTAL, that AVFMT_EXPERIMENTALl flag
doesn’t check against strict_std_compliance. It’s kind of overlap for these
two flags.
There are practical reasons, like the AVFMT_EXPERIMENTAL need to check
early. And when user specify the demuxer/muxer explicitly, it make sense to
skip the check.
So, when WHIP add AVFMT_EXPERIMENTAL flag, it has no real effect since
WHIP is always specified explicitly, except user can check and see the flag.
>
>> */
>> #define AVFMT_EXPERIMENTAL 0x0004
>> #define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */
>> diff --git a/libavformat/format.c b/libavformat/format.c
>> index 71018ea6ab..516925e7e4 100644
>> --- a/libavformat/format.c
>> +++ b/libavformat/format.c
>> @@ -95,6 +95,8 @@ const AVOutputFormat *av_guess_format(const char *short_name, const char *filena
>> /* Find the proper file type. */
>> score_max = 0;
>> while ((fmt = av_muxer_iterate(&i))) {
>> + if (fmt->flags & AVFMT_EXPERIMENTAL && !short_name)
>> + continue;
>> score = 0;
>> if (fmt->name && short_name && av_match_name(short_name, fmt->name))
>> score += 100;
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>
More information about the ffmpeg-devel
mailing list