[FFmpeg-devel] [PATCH 1/2] avformat/mux: Warn if the muxers bitexact flag is not set but it looks as if the user wants it set
Andreas Cadhalpun
andreas.cadhalpun at googlemail.com
Tue Aug 25 00:03:59 CEST 2015
On 24.08.2015 02:22, Michael Niedermayer wrote:
> is below diff better: ?
> iam quite unsure how to word this
>
> using the exact same system as FF_API_OLD_FILTER_OPTS is tricky as
> there is a semantic difference
> "codec->flags & AV_CODEC_FLAG_BITEXACT" is not deprecated as in
> FF_API_OLD_FILTER_OPTS
> Currently storing a bitexact stream in a container makes the
> container bitexact. with FF_API_LAVF_BITEXACT==0 this would no longer
> be the case and the user would have to explicitly switch the muxer
> into bitexact mode in addition to the encoder to get a bitexact
> result.
>
> --- a/libavformat/mux.c
> +++ b/libavformat/mux.c
> @@ -250,10 +250,17 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options)
> (ret = av_opt_set_dict2(s->priv_data, &tmp, AV_OPT_SEARCH_CHILDREN)) < 0)
> goto fail;
>
> + if (s->nb_streams && s->streams[0]->codec->flags & AV_CODEC_FLAG_BITEXACT) {
> + if (!(s->flags & AVFMT_FLAG_BITEXACT))
> + av_log(s, AV_LOG_WARNING, "Muxer bitexact flag is not set, please set AVFormatContext.flags |= AVFMT_FLAG_BITEXACT.\n"
> +#if FF_API_LAVF_BITEXACT
> + "This will become mandatory with future API cleanup\n"
> +#endif
> + );
I'd prefer something like:
if (s->nb_streams && s->streams[0]->codec->flags & AV_CODEC_FLAG_BITEXACT) {
if (!(s->flags & AVFMT_FLAG_BITEXACT)) {
#if FF_API_LAVF_BITEXACT
av_log(s, AV_LOG_WARNING,
"Setting the AVFormatContext to bitexact mode, because "
"the AVCodecContext is in that mode. This behavior will "
"change in the future. To keep the current behavior, set "
"AVFormatContext.flags |= AVFMT_FLAG_BITEXACT.\n");
s->flags |= AVFMT_FLAG_BITEXACT;
#else
av_log(s, AV_LOG_WARNING,
"The AVFormatContext is not in set to bitexact mode, only "
"the AVCodecContext. If this is not intended, set "
"AVFormatContext.flags |= AVFMT_FLAG_BITEXACT.\n");
#endif
}
}
Best regards,
Andreas
More information about the ffmpeg-devel
mailing list