mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2025-02-17 11:28:05 +00:00
movenc: Only adjust the cts offset at the start of fragments if necessary
Adjusting it is only necessary when a sidx/tfrf/tfxd atom already has been written for the previous fragment (since the sidx/tfrf/tfxd atoms include the duration between the first pts of the previous fragment, to the first pts of the new fragment). Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
5cf892d694
commit
eee13d6539
@ -3454,10 +3454,12 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
* of this packet to be what the previous packets duration implies. */
|
||||
trk->cluster[trk->entry].dts = trk->start_dts + trk->track_duration;
|
||||
/* We also may have written the pts and the corresponding duration
|
||||
* in sidx tags; make sure the sidx pts and duration match up with
|
||||
* in sidx/tfrf/tfxd tags; make sure the sidx pts and duration match up with
|
||||
* the next fragment. This means the cts of the first sample must
|
||||
* be the same in all fragments. */
|
||||
pkt->pts = pkt->dts + trk->start_cts;
|
||||
if ((mov->flags & FF_MOV_FLAG_DASH && !(mov->flags & FF_MOV_FLAG_FASTSTART)) ||
|
||||
mov->mode == MODE_ISM)
|
||||
pkt->pts = pkt->dts + trk->start_cts;
|
||||
} else {
|
||||
/* New fragment, but discontinuous from previous fragments.
|
||||
* Pretend the duration sum of the earlier fragments is
|
||||
|
Loading…
x
Reference in New Issue
Block a user