Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Steven Liu <lingjiujianke@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Cc: Steven Liu <lq@chinaffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal
Date: Fri, 24 Dec 2021 18:46:11 +0800
Message-ID: <CADxeRw==TMkL8iufFLFPV4xuDoky=54C+wYTt_zee03AgrpPHQ@mail.gmail.com> (raw)
In-Reply-To: <tencent_CD93114859D3F63366B5DDE913AEB4A54605@qq.com>

"zhilizhao(赵志立)" <quinkblack@foxmail.com> 于2021年12月24日周五 18:38写道:
>
>
>
> > On Dec 24, 2021, at 6:19 PM, Steven Liu <lq@chinaffmpeg.org> wrote:
> >
> >> 2021年12月24日 下午5:58,Zhao Zhili <quinkblack@foxmail.com> 写道:
> >>
> >> The samples I have got have hoov and moov both. Unknown boxes
> >> should be skipped according to the spec. So don't treat hoov as
> >> moov in normal mode.
> >>
> >> For backward compatible, a log message has been added to notice
> >> the user to relax the striction if moov doesn't exist.
> >>
> >> Fix #8883.
> >> ---
> >> libavformat/mov.c | 13 +++++++++----
> >> 1 file changed, 9 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/libavformat/mov.c b/libavformat/mov.c
> >> index ea2f010aa0..63483740a0 100644
> >> --- a/libavformat/mov.c
> >> +++ b/libavformat/mov.c
> >> @@ -7324,10 +7324,11 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
> >>        if (atom.size >= 8) {
> >>            a.size = avio_rb32(pb);
> >>            a.type = avio_rl32(pb);
> >> -            if (((a.type == MKTAG('f','r','e','e') && c->moov_retry) ||
> >> -                  a.type == MKTAG('h','o','o','v')) &&
> >> -                a.size >= 8 &&
> >> -                c->fc->strict_std_compliance < FF_COMPLIANCE_STRICT) {
> >> +            if (((a.type == MKTAG('f','r','e','e') && c->moov_retry &&
> >> +                        c->fc->strict_std_compliance < FF_COMPLIANCE_STRICT) ||
> >> +                 (a.type == MKTAG('h','o','o','v') &&
> >> +                        c->fc->strict_std_compliance < FF_COMPLIANCE_NORMAL)) &&
> >> +                a.size >= 8) {
> >
> > I prefer add one option ignore_hoov, let user choose ignore it, because it should more clearly than use stirct.
>
> Add an option works for me too, but it should default to ignore hoov, because:
> 1. Truncated/broken files are minority compared to normal files (I hope);
> 2. Support normal files has higher priority than workaround broken files.
>
I think about ignore hoov should not default, because it use hoov
default before.
We should attention users pay attention about this change maybe do it
like deprecate warning. Just waning need change default it ignore hoov
and use moov.
But I’m not sure ignore hoov is correct, because not sure user have
the sample file which only have one hoov and have no moov atom in the
files.

> We can support both by drop fake moov info after found a real moov, but
> it doesn’t deserve the complexity.
>
> I’d like to get more opinions.
>
>
> >>                uint32_t type;
> >>                avio_skip(pb, 4);
> >>                type = avio_rl32(pb);
> >> @@ -7340,6 +7341,10 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
> >>                    a.type = MKTAG('m','o','o','v');
> >>                }
> >>            }
> >> +            if (a.type == MKTAG('h','o','o','v') &&
> >> +                c->fc->strict_std_compliance >= FF_COMPLIANCE_NORMAL)
> >> +                av_log(c->fc, AV_LOG_INFO,
> >> +                        "Skip hoov atom, try decrease -strict if moov doesn't exist.\n");
> >>            if (atom.type != MKTAG('r','o','o','t') &&
> >>                atom.type != MKTAG('m','o','o','v')) {
> >>                if (a.type == MKTAG('t','r','a','k') ||
> >> --
> >> 2.31.1
> >>
> >> _______________________________________________
> >> ffmpeg-devel mailing list
> >> ffmpeg-devel@ffmpeg.org
> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >>
> >> To unsubscribe, visit link above, or email
> >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> >>
> >
> > Thanks
> >
> > Steven Liu
> >
> >> 2021年12月24日 下午5:58,Zhao Zhili <quinkblack@foxmail.com> 写道:
> >>
> >> The samples I have got have hoov and moov both. Unknown boxes
> >> should be skipped according to the spec. So don't treat hoov as
> >> moov in normal mode.
> >>
> >> For backward compatible, a log message has been added to notice
> >> the user to relax the striction if moov doesn't exist.
> >>
> >> Fix #8883.
> >> ---
> >> libavformat/mov.c | 13 +++++++++----
> >> 1 file changed, 9 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/libavformat/mov.c b/libavformat/mov.c
> >> index ea2f010aa0..63483740a0 100644
> >> --- a/libavformat/mov.c
> >> +++ b/libavformat/mov.c
> >> @@ -7324,10 +7324,11 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
> >>        if (atom.size >= 8) {
> >>            a.size = avio_rb32(pb);
> >>            a.type = avio_rl32(pb);
> >> -            if (((a.type == MKTAG('f','r','e','e') && c->moov_retry) ||
> >> -                  a.type == MKTAG('h','o','o','v')) &&
> >> -                a.size >= 8 &&
> >> -                c->fc->strict_std_compliance < FF_COMPLIANCE_STRICT) {
> >> +            if (((a.type == MKTAG('f','r','e','e') && c->moov_retry &&
> >> +                        c->fc->strict_std_compliance < FF_COMPLIANCE_STRICT) ||
> >> +                 (a.type == MKTAG('h','o','o','v') &&
> >> +                        c->fc->strict_std_compliance < FF_COMPLIANCE_NORMAL)) &&
> >> +                a.size >= 8) {
> >
> > I prefer add one option ignore_hoov, let user choose ignore it, because it should more clearly than use stirct.
> >>                uint32_t type;
> >>                avio_skip(pb, 4);
> >>                type = avio_rl32(pb);
> >> @@ -7340,6 +7341,10 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
> >>                    a.type = MKTAG('m','o','o','v');
> >>                }
> >>            }
> >> +            if (a.type == MKTAG('h','o','o','v') &&
> >> +                c->fc->strict_std_compliance >= FF_COMPLIANCE_NORMAL)
> >> +                av_log(c->fc, AV_LOG_INFO,
> >> +                        "Skip hoov atom, try decrease -strict if moov doesn't exist.\n");
> >>            if (atom.type != MKTAG('r','o','o','t') &&
> >>                atom.type != MKTAG('m','o','o','v')) {
> >>                if (a.type == MKTAG('t','r','a','k') ||
> >> --
> >> 2.31.1
> >>
> >> _______________________________________________
> >> ffmpeg-devel mailing list
> >> ffmpeg-devel@ffmpeg.org
> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >>
> >> To unsubscribe, visit link above, or email
> >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> >>
> >
> > Thanks
> >
> > Steven Liu
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

Thanks
Steven
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2021-12-24 10:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20211224095823.58415-1-quinkblack@foxmail.com>
2021-12-24  9:58 ` Zhao Zhili
2021-12-24 10:19   ` Steven Liu
2021-12-24 10:37     ` "zhilizhao(赵志立)"
2021-12-24 10:46       ` Steven Liu [this message]
2021-12-24 19:08         ` Derek Buitenhuis
2021-12-25  8:49           ` "zhilizhao(赵志立)"
2021-12-24  9:58 ` [FFmpeg-devel] [PATCH 3/3] avformat/mov: remove always false condtion Zhao Zhili
2021-12-24 10:22   ` Steven Liu
2021-12-24 11:13     ` Gyan Doshi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CADxeRw==TMkL8iufFLFPV4xuDoky=54C+wYTt_zee03AgrpPHQ@mail.gmail.com' \
    --to=lingjiujianke@gmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    --cc=lq@chinaffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git