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 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel