mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2025-03-04 10:47:39 +00:00
mov: Remove ancient heuristic hack
This breaks files with legitimate single-entry edit lists, and the hack, introduced in f03a081df09f9c4798a17d7e24446ed47924b11b, has no link to any known sample in its commit message. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
parent
5006627843
commit
04f8d31287
@ -155,7 +155,6 @@ typedef struct MOVStreamContext {
|
||||
MOVDref *drefs;
|
||||
int dref_id;
|
||||
int timecode_track;
|
||||
int wrong_dts; ///< dts are wrong due to huge ctts offset (iMovie files)
|
||||
int width; ///< tkhd width
|
||||
int height; ///< tkhd height
|
||||
int dts_shift; ///< dts shift when ctts is negative
|
||||
|
@ -2802,12 +2802,8 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
|
||||
sc->time_offset = start_time - empty_duration;
|
||||
current_dts = -sc->time_offset;
|
||||
if (sc->ctts_count>0 && sc->stts_count>0 &&
|
||||
sc->ctts_data[0].duration / FFMAX(sc->stts_data[0].duration, 1) > 16) {
|
||||
/* more than 16 frames delay, dts are likely wrong
|
||||
this happens with files created by iMovie */
|
||||
sc->wrong_dts = 1;
|
||||
sc->ctts_data[0].duration / FFMAX(sc->stts_data[0].duration, 1) > 16)
|
||||
st->codecpar->video_delay = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!unsupported && st->codecpar->codec_id == AV_CODEC_ID_AAC && start_time > 0)
|
||||
@ -5352,8 +5348,6 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
sc->ctts_index++;
|
||||
sc->ctts_sample = 0;
|
||||
}
|
||||
if (sc->wrong_dts)
|
||||
pkt->dts = AV_NOPTS_VALUE;
|
||||
} else {
|
||||
int64_t next_dts = (sc->current_sample < st->nb_index_entries) ?
|
||||
st->index_entries[sc->current_sample].timestamp : st->duration;
|
||||
|
Loading…
x
Reference in New Issue
Block a user