diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-09-26 21:17:01 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-09-26 21:17:01 +0000 |
commit | 20e4a74eb52887f3a549e3642868d5973612c9d1 (patch) | |
tree | ef4e41b0afdd2335daa2c7f4e9b3692d2c55eb01 | |
parent | e628297bbd96f82ea63d236ebb84fdf5429e6a42 (diff) | |
download | mpv-20e4a74eb52887f3a549e3642868d5973612c9d1.tar.bz2 mpv-20e4a74eb52887f3a549e3642868d5973612c9d1.tar.xz |
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27667 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | DOCS/tech/slave.txt | 1 | ||||
-rw-r--r-- | command.c | 13 | ||||
-rw-r--r-- | mplayer.c | 5 |
3 files changed, 19 insertions, 0 deletions
diff --git a/DOCS/tech/slave.txt b/DOCS/tech/slave.txt index 65c919c777..681f2d653c 100644 --- a/DOCS/tech/slave.txt +++ b/DOCS/tech/slave.txt @@ -478,6 +478,7 @@ stream_start pos 0 X start pos in stream stream_end pos 0 X end pos in stream stream_length pos 0 X (end - start) chapter int 0 X X X select chapter +chapters int X number of chapters angle int 0 X X X select angle length time X length of file in seconds percent_pos int 0 100 X X X position in percent @@ -447,6 +447,17 @@ static int mp_property_chapter(m_option_t *prop, int action, void *arg, return M_PROPERTY_OK; } +/// Number of chapters in file +static int mp_property_chapters(m_option_t *prop, int action, void *arg, + MPContext *mpctx) +{ + if (!mpctx->demuxer) + return M_PROPERTY_UNAVAILABLE; + if (mpctx->demuxer->num_chapters == 0) + stream_control(mpctx->demuxer->stream, STREAM_CTRL_GET_NUM_CHAPTERS, &mpctx->demuxer->num_chapters); + return m_property_int_ro(prop, action, arg, mpctx->demuxer->num_chapters); +} + /// Current dvd angle (RW) static int mp_property_angle(m_option_t *prop, int action, void *arg, MPContext *mpctx) @@ -1983,6 +1994,8 @@ static const m_option_t mp_properties[] = { M_OPT_MIN, 0, 0, NULL }, { "chapter", mp_property_chapter, CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL }, + { "chapters", mp_property_chapters, CONF_TYPE_INT, + 0, 0, 0, NULL }, { "angle", mp_property_angle, CONF_TYPE_INT, CONF_RANGE, -2, 10, NULL }, { "metadata", mp_property_metadata, CONF_TYPE_STRING_LIST, @@ -3531,6 +3531,11 @@ if (mpctx->global_sub_size) { } mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_LENGTH=%.2lf\n", demuxer_get_time_length(mpctx->demuxer)); mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_SEEKABLE=%d\n", mpctx->stream->seek ? 1 : 0); + if (mpctx->demuxer) { + if (mpctx->demuxer->num_chapters == 0) + stream_control(mpctx->demuxer->stream, STREAM_CTRL_GET_NUM_CHAPTERS, &mpctx->demuxer->num_chapters); + mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_CHAPTERS=%d\n", mpctx->demuxer->num_chapters); + } if(!mpctx->sh_video) goto main; // audio-only |