diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-08-19 19:41:04 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-08-19 19:41:04 +0000 |
commit | 84c982c65fcd3d26849891bfb55f3f6a8aff4059 (patch) | |
tree | 14b03198dfc77fe8c0e69aa880800ef86041d403 /stream | |
parent | 2dfbc4cea7de7c9e340fb232949f3923a9d30772 (diff) | |
download | mpv-84c982c65fcd3d26849891bfb55f3f6a8aff4059.tar.bz2 mpv-84c982c65fcd3d26849891bfb55f3f6a8aff4059.tar.xz |
implemented STREAM_CTRL_GET_TIME_LENGTH (duration of the pgc playing)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19459 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream')
-rw-r--r-- | stream/stream_dvdnav.c | 14 | ||||
-rw-r--r-- | stream/stream_dvdnav.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 66e4d8bd72..475a53d408 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -216,6 +216,12 @@ int dvdnav_stream_read(dvdnav_priv_t * dvdnav_priv, unsigned char *buf, int *len break; } + case DVDNAV_CELL_CHANGE: { + dvdnav_cell_change_event_t *ev = (dvdnav_cell_change_event_t*)buf; + if(ev->pgc_length) + dvdnav_priv->duration = ev->pgc_length/90; + break; + } case DVDNAV_WAIT: dvdnav_wait_skip(dvdnav_priv->dvdnav); break; @@ -357,6 +363,14 @@ static int control(stream_t *stream, int cmd, void* arg) { *((unsigned int *)arg) = part - 1; return 1; } + case STREAM_CTRL_GET_TIME_LENGTH: + { + if(dvdnav_priv->duration) + { + *((unsigned int *)arg) = dvdnav_priv->duration; + return 1; + } + } } return STREAM_UNSUPORTED; diff --git a/stream/stream_dvdnav.h b/stream/stream_dvdnav.h index fdea2d97f6..ab93bc02b4 100644 --- a/stream/stream_dvdnav.h +++ b/stream/stream_dvdnav.h @@ -18,6 +18,7 @@ typedef struct { int started; /* Has mplayer initialization finished? */ unsigned char prebuf[STREAM_BUFFER_SIZE]; /* prefill buffer */ int prelen; /* length of prefill buffer */ + unsigned int duration; /* in milliseconds */ } dvdnav_priv_t; extern int dvd_nav_still; |