diff options
-rw-r--r-- | command.c | 2 | ||||
-rw-r--r-- | libmpdemux/demuxer.c | 4 | ||||
-rw-r--r-- | mplayer.c | 3 |
3 files changed, 5 insertions, 4 deletions
@@ -396,7 +396,7 @@ static int mp_property_chapter(m_option_t *prop, int action, void *arg, if (mpctx->demuxer) chapter = get_current_chapter(mpctx); - if (chapter < 0) + if (chapter < -1) return M_PROPERTY_UNAVAILABLE; switch (action) { diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 0f026dffd6..551fd330c4 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -1529,11 +1529,11 @@ int demuxer_seek_chapter(demuxer_t *demuxer, int chapter, double *seek_pts, int demuxer_get_current_chapter(demuxer_t *demuxer) { - int chapter = -1; + int chapter = -2; if (!demuxer->num_chapters || !demuxer->chapters) { if (stream_control(demuxer->stream, STREAM_CTRL_GET_CURRENT_CHAPTER, &chapter) == STREAM_UNSUPPORTED) - chapter = -1; + chapter = -2; } else { sh_video_t *sh_video = demuxer->video->sh; sh_audio_t *sh_audio = demuxer->audio->sh; @@ -2790,6 +2790,7 @@ static int seek(MPContext *mpctx, double amount, int style) return 0; } +// -2 is no chapters, -1 is before first chapter int get_current_chapter(struct MPContext *mpctx) { if (!mpctx->chapters || !mpctx->sh_video) @@ -4058,7 +4059,7 @@ if (seek_to_sec || mpctx->timeline) { seek(mpctx, seek_to_sec, SEEK_ABSOLUTE); end_at.pos += seek_to_sec; } -if (opts->chapterrange[0] > 1) { +if (opts->chapterrange[0] > 0) { double pts; if (seek_chapter(mpctx, opts->chapterrange[0]-1, &pts, NULL) >= 0 && pts > -1.0) |