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

Reply via email to