On 25.08.2015 00:19, Michael Niedermayer wrote:
> On Tue, Aug 25, 2015 at 12:03:59AM +0200, Andreas Cadhalpun wrote:
>> 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:
>
> whatever people/you prefer,
> please set Author to you, if you push
OK, attaching a proper patch.
I'll push that if nobody complains.
Best regards,
Andreas
>From 67f20f0a4eb918f7f7911f620cd024043fd44d7a Mon Sep 17 00:00:00 2001
From: Andreas Cadhalpun <[email protected]>
Date: Tue, 25 Aug 2015 00:37:04 +0200
Subject: [PATCH] mux: warn if the encoders bitexact flag is set, but not the
muxers
Based-on-patch-by: Michael Niedermayer <[email protected]>
Signed-off-by: Andreas Cadhalpun <[email protected]>
---
libavformat/mux.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 81c4676..8d5867c 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -250,10 +250,23 @@ 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)) {
#if FF_API_LAVF_BITEXACT
- if (s->nb_streams && s->streams[0]->codec->flags & AV_CODEC_FLAG_BITEXACT)
- s->flags |= AVFMT_FLAG_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
+ }
+ }
// some sanity checks
if (s->nb_streams == 0 && !(of->flags & AVFMT_NOSTREAMS)) {
--
2.5.0
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel