|
|
@ -779,7 +779,7 @@ static int mov_read_moov(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
|
|
|
|
|
|
|
|
static int mov_read_moof(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
static int mov_read_moof(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
{ |
|
|
|
{ |
|
|
|
c->fragment.moof_offset = avio_tell(pb) - 8; |
|
|
|
c->fragment.moof_offset = c->fragment.implicit_offset = avio_tell(pb) - 8; |
|
|
|
av_dlog(c->fc, "moof offset %"PRIx64"\n", c->fragment.moof_offset); |
|
|
|
av_dlog(c->fc, "moof offset %"PRIx64"\n", c->fragment.moof_offset); |
|
|
|
return mov_read_default(c, pb, atom); |
|
|
|
return mov_read_default(c, pb, atom); |
|
|
|
} |
|
|
|
} |
|
|
@ -2730,7 +2730,8 @@ static int mov_read_tfhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
frag->base_data_offset = flags & MOV_TFHD_BASE_DATA_OFFSET ? |
|
|
|
frag->base_data_offset = flags & MOV_TFHD_BASE_DATA_OFFSET ? |
|
|
|
avio_rb64(pb) : frag->moof_offset; |
|
|
|
avio_rb64(pb) : flags & MOV_TFHD_DEFAULT_BASE_IS_MOOF ? |
|
|
|
|
|
|
|
frag->moof_offset : frag->implicit_offset; |
|
|
|
frag->stsd_id = flags & MOV_TFHD_STSD_ID ? avio_rb32(pb) : trex->stsd_id; |
|
|
|
frag->stsd_id = flags & MOV_TFHD_STSD_ID ? avio_rb32(pb) : trex->stsd_id; |
|
|
|
|
|
|
|
|
|
|
|
frag->duration = flags & MOV_TFHD_DEFAULT_DURATION ? |
|
|
|
frag->duration = flags & MOV_TFHD_DEFAULT_DURATION ? |
|
|
@ -2872,7 +2873,7 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
if (pb->eof_reached) |
|
|
|
if (pb->eof_reached) |
|
|
|
return AVERROR_EOF; |
|
|
|
return AVERROR_EOF; |
|
|
|
|
|
|
|
|
|
|
|
frag->moof_offset = offset; |
|
|
|
frag->implicit_offset = offset; |
|
|
|
st->duration = sc->track_end = dts + sc->time_offset; |
|
|
|
st->duration = sc->track_end = dts + sc->time_offset; |
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|