summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2010-11-13 15:48:26 +0200
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-11-13 16:48:31 +0200
commit642ce15ef770dd5dbea7c7ee16cbf45f6e86feae (patch)
tree5613aa04b5b9186b0a52612a4f0eb9164bb60742 /libmpdemux/demuxer.c
parent1a336d6616c92c7e3a73500f6b4bb7b95e1268c2 (diff)
downloadmpv-642ce15ef770dd5dbea7c7ee16cbf45f6e86feae.tar.bz2
mpv-642ce15ef770dd5dbea7c7ee16cbf45f6e86feae.tar.xz
core: give pts as parameter to demuxer_get_current_chapter()
demuxer_get_current_chapter() accessed sh_video/sh_audio pts fields to determine playback position. demux layer shouldn't access those and the values used weren't quite correct anyway. Give the playback position as a parameter to the demux layer function instead. Also change the top-level get_current_chapter() to use get_current_time() in the timeline case where it didn't refer to demux layer.
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 4d8e64e7c8..fe4dc18d23 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -1462,7 +1462,7 @@ int demuxer_seek_chapter(demuxer_t *demuxer, int chapter, double *seek_pts,
}
}
-int demuxer_get_current_chapter(demuxer_t *demuxer)
+int demuxer_get_current_chapter(demuxer_t *demuxer, double time_now)
{
int chapter = -2;
if (!demuxer->num_chapters || !demuxer->chapters) {
@@ -1470,11 +1470,7 @@ int demuxer_get_current_chapter(demuxer_t *demuxer)
&chapter) == STREAM_UNSUPPORTED)
chapter = -2;
} else {
- sh_video_t *sh_video = demuxer->video->sh;
- sh_audio_t *sh_audio = demuxer->audio->sh;
- uint64_t now;
- now = (sh_video ? sh_video->pts : (sh_audio ? sh_audio->pts : 0))
- * 1000 + 0.5;
+ uint64_t now = time_now * 1000 + 0.5;
for (chapter = demuxer->num_chapters - 1; chapter >= 0; --chapter) {
if (demuxer->chapters[chapter].start <= now)
break;