diff options
author | wm4 <wm4@nowhere> | 2014-03-25 01:38:18 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-03-25 01:38:18 +0100 |
commit | 2c693a47328a4faa9581a792c24448407629279b (patch) | |
tree | 4f98655f55f9213ce6258c81cf6ac55b9be06463 /demux | |
parent | 7bd3f2648152d41db9a9d3f479358d0d8f38b210 (diff) | |
download | mpv-2c693a47328a4faa9581a792c24448407629279b.tar.bz2 mpv-2c693a47328a4faa9581a792c24448407629279b.tar.xz |
stream: remove old chapter handling code
Stream-level chapters (like DVD etc.) did potentially not have
timestamps for each chapter, so STREAM_CTRL_SEEK_TO_CHAPTER and
STREAM_CTRL_GET_CURRENT_CHAPTER were needed to navigate chapters. We've
switched everything to use timestamps and that seems to work, so we can
simplify the code and remove this old mechanism.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux.c | 43 |
1 files changed, 10 insertions, 33 deletions
diff --git a/demux/demux.c b/demux/demux.c index 311a563b81..307f45a771 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -902,46 +902,23 @@ static void add_stream_chapters(struct demuxer *demuxer) int demuxer_seek_chapter(demuxer_t *demuxer, int chapter, double *seek_pts) { - int ris = STREAM_UNSUPPORTED; - - if (demuxer->num_chapters == 0) - ris = stream_control(demuxer->stream, STREAM_CTRL_SEEK_TO_CHAPTER, - &chapter); - - if (ris != STREAM_UNSUPPORTED) { - demux_flush(demuxer); - demux_control(demuxer, DEMUXER_CTRL_RESYNC, NULL); - - // exit status may be ok, but main() doesn't have to seek itself - // (because e.g. dvds depend on sectors, not on pts) - *seek_pts = -1.0; - - return chapter; - } else { - if (chapter >= demuxer->num_chapters) - return -1; - if (chapter < 0) - chapter = 0; + if (chapter >= demuxer->num_chapters) + return -1; + if (chapter < 0) + chapter = 0; - *seek_pts = demuxer->chapters[chapter].start / 1e9; + *seek_pts = demuxer->chapters[chapter].start / 1e9; - return chapter; - } + return chapter; } int demuxer_get_current_chapter(demuxer_t *demuxer, double time_now) { int chapter = -2; - if (!demuxer->num_chapters || !demuxer->chapters) { - if (stream_control(demuxer->stream, STREAM_CTRL_GET_CURRENT_CHAPTER, - &chapter) == STREAM_UNSUPPORTED) - chapter = -2; - } else { - uint64_t now = time_now * 1e9 + 0.5; - for (chapter = demuxer->num_chapters - 1; chapter >= 0; --chapter) { - if (demuxer->chapters[chapter].start <= now) - break; - } + uint64_t now = time_now * 1e9 + 0.5; + for (chapter = demuxer->num_chapters - 1; chapter >= 0; --chapter) { + if (demuxer->chapters[chapter].start <= now) + break; } return chapter; } |