summaryrefslogtreecommitdiffstats
path: root/demux/demux.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-03-25 01:38:18 +0100
committerwm4 <wm4@nowhere>2014-03-25 01:38:18 +0100
commit2c693a47328a4faa9581a792c24448407629279b (patch)
tree4f98655f55f9213ce6258c81cf6ac55b9be06463 /demux/demux.c
parent7bd3f2648152d41db9a9d3f479358d0d8f38b210 (diff)
downloadmpv-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/demux.c')
-rw-r--r--demux/demux.c43
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;
}