[FFmpeg-devel] [PATCH] avformat/format: make experimental flag works for muxer
Zhao Zhili
quinkblack at foxmail.com
Fri Jun 6 14:27:56 EEST 2025
> On Jun 6, 2025, at 18:00, Kieran Kunhya via ffmpeg-devel <ffmpeg-devel at ffmpeg.org> wrote:
>
> On Fri, 6 Jun 2025, 10:51 Michael Niedermayer, <michael at niedermayer.cc>
> wrote:
>
>> On Fri, Jun 06, 2025 at 12:06:34AM +0800, 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.
>>> */
>>> #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;
>>
>> what does AVFMT_EXPERIMENTAL mean for a muxer ?
>>
>> * a muxer could generate invalid, non compliant data
>> * a muxer could be insecure and exploitable
>> * a muxer could lack some feature (iam sure most muxers in most projects
>> lack some feature)
>>
>> I think the first 2 are reasons to use this flag
>>
>
> In the case of WebRTC it's 3. The user would expect it to work over the
> internet (*Web*RTC after all) but it lacks NACK support so cannot recover
> from any packet loss.
>
> Without the experimental flag FFmpeg will get support tickets raised and
> claims it is inferior to other implementations. Users will not be aware of
> the lack of missing feature otherwise.
>
> So it may be compliant on paper but it's not usable in the real world.
I have sent v2 to fix doc as suggested by James. Any comments on the
patch itself?
https://ffmpeg.org/pipermail/ffmpeg-devel/2025-June/344737.html
>
> Kieran
> _______________________________________________
> 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