Browse Source

avformat/mov: Set fragment.found_tfhd only after TFHD has been parsed

Fixes: Assertion failure
Fixes: crbug971646.mp4

Reported-by: Matt Wolenetz <wolenetz@google.com>
Reviewed-by: Matt Wolenetz <wolenetz@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 696312c487)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n4.0.5
Michael Niedermayer 6 years ago
parent
commit
cd9e249726
1 changed files with 1 additions and 2 deletions
  1. +1
    -2
      libavformat/mov.c

+ 1
- 2
libavformat/mov.c View File

@@ -4544,8 +4544,6 @@ static int mov_read_tfhd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
MOVTrackExt *trex = NULL;
int flags, track_id, i;

c->fragment.found_tfhd = 1;

avio_r8(pb); /* version */
flags = avio_rb24(pb);

@@ -4563,6 +4561,7 @@ static int mov_read_tfhd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
av_log(c->fc, AV_LOG_ERROR, "could not find corresponding trex\n");
return AVERROR_INVALIDDATA;
}
c->fragment.found_tfhd = 1;

frag->base_data_offset = flags & MOV_TFHD_BASE_DATA_OFFSET ?
avio_rb64(pb) : flags & MOV_TFHD_DEFAULT_BASE_IS_MOOF ?


Loading…
Cancel
Save