* [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal
[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 9:58 ` [FFmpeg-devel] [PATCH 3/3] avformat/mov: remove always false condtion Zhao Zhili
1 sibling, 1 reply; 9+ messages in thread
From: Zhao Zhili @ 2021-12-24 9:58 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Zhao Zhili
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) {
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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* [FFmpeg-devel] [PATCH 3/3] avformat/mov: remove always false condtion
[not found] <20211224095823.58415-1-quinkblack@foxmail.com>
2021-12-24 9:58 ` [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal Zhao Zhili
@ 2021-12-24 9:58 ` Zhao Zhili
2021-12-24 10:22 ` Steven Liu
1 sibling, 1 reply; 9+ messages in thread
From: Zhao Zhili @ 2021-12-24 9:58 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Zhao Zhili
203b0e35 made duration unsigned.
---
libavformat/mov.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 63483740a0..636cfce400 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -3972,17 +3972,6 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
current_offset += sample_size;
stream_size += sample_size;
-
- /* A negative sample duration is invalid based on the spec,
- * but some samples need it to correct the DTS. */
- if (sc->stts_data[stts_index].duration < 0) {
- av_log(mov->fc, AV_LOG_WARNING,
- "Invalid SampleDelta %d in STTS, at %d st:%d\n",
- sc->stts_data[stts_index].duration, stts_index,
- st->index);
- dts_correction += sc->stts_data[stts_index].duration - 1;
- sc->stts_data[stts_index].duration = 1;
- }
current_dts += sc->stts_data[stts_index].duration;
if (!dts_correction || current_dts + dts_correction > last_dts) {
current_dts += dts_correction;
--
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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal
2021-12-24 9:58 ` [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal Zhao Zhili
@ 2021-12-24 10:19 ` Steven Liu
2021-12-24 10:37 ` "zhilizhao(赵志立)"
0 siblings, 1 reply; 9+ messages in thread
From: Steven Liu @ 2021-12-24 10:19 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Steven Liu, Zhao Zhili
> 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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/mov: remove always false condtion
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
0 siblings, 1 reply; 9+ messages in thread
From: Steven Liu @ 2021-12-24 10:22 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Steven Liu, Zhao Zhili
> 2021年12月24日 下午5:58,Zhao Zhili <quinkblack@foxmail.com> 写道:
>
> 203b0e35 made duration unsigned.
> ---
> libavformat/mov.c | 11 -----------
> 1 file changed, 11 deletions(-)
>
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 63483740a0..636cfce400 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -3972,17 +3972,6 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
>
> current_offset += sample_size;
> stream_size += sample_size;
> -
> - /* A negative sample duration is invalid based on the spec,
> - * but some samples need it to correct the DTS. */
> - if (sc->stts_data[stts_index].duration < 0) {
> - av_log(mov->fc, AV_LOG_WARNING,
> - "Invalid SampleDelta %d in STTS, at %d st:%d\n",
> - sc->stts_data[stts_index].duration, stts_index,
> - st->index);
> - dts_correction += sc->stts_data[stts_index].duration - 1;
> - sc->stts_data[stts_index].duration = 1;
> - }
> current_dts += sc->stts_data[stts_index].duration;
> if (!dts_correction || current_dts + dts_correction > last_dts) {
> current_dts += dts_correction;
> --
> 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".
>
Yes, this is a warning when compiling the mov.o module, but not sure if the duration is unsigned can small than 0,
Because there have some way about unsigned int use way,not sure it corect or not:
Eg. unsigned int example = -1;
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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal
2021-12-24 10:19 ` Steven Liu
@ 2021-12-24 10:37 ` "zhilizhao(赵志立)"
2021-12-24 10:46 ` Steven Liu
0 siblings, 1 reply; 9+ messages in thread
From: "zhilizhao(赵志立)" @ 2021-12-24 10:37 UTC (permalink / raw)
To: Steven Liu; +Cc: FFmpeg development discussions and patches
> 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.
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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal
2021-12-24 10:37 ` "zhilizhao(赵志立)"
@ 2021-12-24 10:46 ` Steven Liu
2021-12-24 19:08 ` Derek Buitenhuis
0 siblings, 1 reply; 9+ messages in thread
From: Steven Liu @ 2021-12-24 10:46 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Steven Liu
"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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/mov: remove always false condtion
2021-12-24 10:22 ` Steven Liu
@ 2021-12-24 11:13 ` Gyan Doshi
0 siblings, 0 replies; 9+ messages in thread
From: Gyan Doshi @ 2021-12-24 11:13 UTC (permalink / raw)
To: ffmpeg-devel
On 2021-12-24 03:52 pm, Steven Liu wrote:
>
>> 2021年12月24日 下午5:58,Zhao Zhili <quinkblack@foxmail.com> 写道:
>>
>> 203b0e35 made duration unsigned.
>> ---
>> libavformat/mov.c | 11 -----------
>> 1 file changed, 11 deletions(-)
>>
>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>> index 63483740a0..636cfce400 100644
>> --- a/libavformat/mov.c
>> +++ b/libavformat/mov.c
>> @@ -3972,17 +3972,6 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
>>
>> current_offset += sample_size;
>> stream_size += sample_size;
>> -
>> - /* A negative sample duration is invalid based on the spec,
>> - * but some samples need it to correct the DTS. */
>> - if (sc->stts_data[stts_index].duration < 0) {
>> - av_log(mov->fc, AV_LOG_WARNING,
>> - "Invalid SampleDelta %d in STTS, at %d st:%d\n",
>> - sc->stts_data[stts_index].duration, stts_index,
>> - st->index);
>> - dts_correction += sc->stts_data[stts_index].duration - 1;
>> - sc->stts_data[stts_index].duration = 1;
>> - }
>> current_dts += sc->stts_data[stts_index].duration;
>> if (!dts_correction || current_dts + dts_correction > last_dts) {
>> current_dts += dts_correction;
>> --
>> 2.31.1
This is due to a recent change I made to the type of stts duration.
There is a pending patch to replace this check with a check in
mov_read_stts, so ignore the warning for now.
Thanks,
Gyan
_______________________________________________
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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal
2021-12-24 10:46 ` Steven Liu
@ 2021-12-24 19:08 ` Derek Buitenhuis
2021-12-25 8:49 ` "zhilizhao(赵志立)"
0 siblings, 1 reply; 9+ messages in thread
From: Derek Buitenhuis @ 2021-12-24 19:08 UTC (permalink / raw)
To: ffmpeg-devel
On 12/24/2021 10:46 AM, Steven Liu wrote:
> I think about ignore hoov should not default, because it use hoov
> default before.
I agree - we (Vimeo) get a ton of hoov files with no moov or broken moov -
much more than files with hoov and valid moov (I've never seen any). This
would be quite a breaking change.
> 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.
+1
> 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 have a lot of files with only hoov.
- Derek
_______________________________________________
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".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal
2021-12-24 19:08 ` Derek Buitenhuis
@ 2021-12-25 8:49 ` "zhilizhao(赵志立)"
0 siblings, 0 replies; 9+ messages in thread
From: "zhilizhao(赵志立)" @ 2021-12-25 8:49 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> On Dec 25, 2021, at 3:08 AM, Derek Buitenhuis <derek.buitenhuis@gmail.com> wrote:
>
> On 12/24/2021 10:46 AM, Steven Liu wrote:
>> I think about ignore hoov should not default, because it use hoov
>> default before.
>
> I agree - we (Vimeo) get a ton of hoov files with no moov or broken moov -
> much more than files with hoov and valid moov (I've never seen any). This
> would be quite a breaking change.
The second version should works for both case: with only hoov and with both
box types. Please review.
http://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/290378.html
>
>> 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.
>
> +1
>
>> 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 have a lot of files with only hoov.
>
> - Derek
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-12-25 8:50 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20211224095823.58415-1-quinkblack@foxmail.com>
2021-12-24 9:58 ` [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal Zhao Zhili
2021-12-24 10:19 ` Steven Liu
2021-12-24 10:37 ` "zhilizhao(赵志立)"
2021-12-24 10:46 ` Steven Liu
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
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