mirror of https://github.com/mpv-player/mpv
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
This commit is contained in:
parent
2dfbc4cea7
commit
84c982c65f
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue