mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avformat/dvdvideodec: Don't add chapter markers for empty/dummy PTTs
Some discs (usually same ones with padding cells), also have empty padding PTTs / chapters to accompany them. This results, for example, in an extra chapter marker that starts and ends at 0 (no duration). Don't add these empty chapter markers. Signed-off-by: Marth64 <marth64@proxyid.net>
This commit is contained in:
parent
9af348bd1a
commit
eb07a593d3
@ -875,6 +875,9 @@ static int dvdvideo_chapters_setup_simple(AVFormatContext *s)
|
|||||||
for (int i = chapter_start - 1; i < chapter_end; i++) {
|
for (int i = chapter_start - 1; i < chapter_end; i++) {
|
||||||
uint64_t time_effective = c->play_state.pgc_pg_times_est[i] - c->play_state.nav_pts;
|
uint64_t time_effective = c->play_state.pgc_pg_times_est[i] - c->play_state.nav_pts;
|
||||||
|
|
||||||
|
if (time_effective - time_prev == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (chapter_start != chapter_end &&
|
if (chapter_start != chapter_end &&
|
||||||
!avpriv_new_chapter(s, i, DVDVIDEO_TIME_BASE_Q, time_prev, time_effective, NULL)) {
|
!avpriv_new_chapter(s, i, DVDVIDEO_TIME_BASE_Q, time_prev, time_effective, NULL)) {
|
||||||
|
|
||||||
@ -935,13 +938,16 @@ static int dvdvideo_chapters_setup_preindex(AVFormatContext *s)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!avpriv_new_chapter(s, nb_chapters, DVDVIDEO_TIME_BASE_Q, cur_chapter_offset,
|
if (cur_chapter_duration > 0) {
|
||||||
cur_chapter_offset + cur_chapter_duration, NULL)) {
|
if (!avpriv_new_chapter(s, nb_chapters, DVDVIDEO_TIME_BASE_Q, cur_chapter_offset,
|
||||||
ret = AVERROR(ENOMEM);
|
cur_chapter_offset + cur_chapter_duration, NULL)) {
|
||||||
goto end_close;
|
ret = AVERROR(ENOMEM);
|
||||||
|
goto end_close;
|
||||||
|
}
|
||||||
|
|
||||||
|
nb_chapters++;
|
||||||
}
|
}
|
||||||
|
|
||||||
nb_chapters++;
|
|
||||||
cur_chapter_offset += cur_chapter_duration;
|
cur_chapter_offset += cur_chapter_duration;
|
||||||
cur_chapter_duration = state.vobu_duration;
|
cur_chapter_duration = state.vobu_duration;
|
||||||
last_ptt = state.ptt;
|
last_ptt = state.ptt;
|
||||||
|
Loading…
Reference in New Issue
Block a user