mirror of https://git.ffmpeg.org/ffmpeg.git
mov: Reduce the verbosity of the warning about fragmented MP4 vs advanced edit lists
Only warn if the advanced_editlist option is enabled (it is enabled by default though) so we don't print one warning for each track, and demote the warning to AV_LOG_LEVEL_VERBOSE; this message does get generated whenever parsing a fragmented MP4 file, regardless of whether the file actually uses multiple edits or not. Later when parsing the mov structures, the demuxer does warn if the file did contain multiple edits which would require the advanced_editlist option enabled for decoding correctly. Adjust the warning message for the case when the file seemed like it actually would have needed handling of advanced edit lists, to reflect the fact that it doesn't help to try set the option as it has been automatically disabled. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
01f58f3646
commit
431f6260ac
|
@ -286,6 +286,7 @@ typedef struct MOVContext {
|
|||
int use_absolute_path;
|
||||
int ignore_editlist;
|
||||
int advanced_editlist;
|
||||
int advanced_editlist_autodisabled;
|
||||
int ignore_chapters;
|
||||
int seek_individually;
|
||||
int64_t next_root_atom; ///< offset of the next root atom
|
||||
|
|
|
@ -4063,10 +4063,15 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
|
|||
}
|
||||
}
|
||||
|
||||
if (multiple_edits && !mov->advanced_editlist)
|
||||
av_log(mov->fc, AV_LOG_WARNING, "multiple edit list entries, "
|
||||
"Use -advanced_editlist to correctly decode otherwise "
|
||||
"a/v desync might occur\n");
|
||||
if (multiple_edits && !mov->advanced_editlist) {
|
||||
if (mov->advanced_editlist_autodisabled)
|
||||
av_log(mov->fc, AV_LOG_WARNING, "multiple edit list entries, "
|
||||
"not supported in fragmented MP4 files\n");
|
||||
else
|
||||
av_log(mov->fc, AV_LOG_WARNING, "multiple edit list entries, "
|
||||
"Use -advanced_editlist to correctly decode otherwise "
|
||||
"a/v desync might occur\n");
|
||||
}
|
||||
|
||||
/* adjust first dts according to edit list */
|
||||
if ((empty_duration || start_time) && mov->time_scale > 0) {
|
||||
|
@ -4507,10 +4512,13 @@ static int mov_read_trak(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
|||
* It cannot be used with use_mfra_for = {pts,dts} either, as the index
|
||||
* is not complete, but filled in as more trun atoms are read, as well.
|
||||
*/
|
||||
if (!sc->stts_count || c->use_mfra_for != FF_MOV_FLAG_MFRA_AUTO) {
|
||||
av_log(c->fc, AV_LOG_WARNING, "advanced_editlist does not work with fragmented "
|
||||
if (!sc->stts_count || c->use_mfra_for != FF_MOV_FLAG_MFRA_AUTO &&
|
||||
c->advanced_editlist) {
|
||||
|
||||
av_log(c->fc, AV_LOG_VERBOSE, "advanced_editlist does not work with fragmented "
|
||||
"MP4. disabling.\n");
|
||||
c->advanced_editlist = 0;
|
||||
c->advanced_editlist_autodisabled = 1;
|
||||
}
|
||||
|
||||
mov_build_index(c, st);
|
||||
|
|
Loading…
Reference in New Issue