mirror of
https://github.com/mpv-player/mpv
synced 2025-02-20 06:46:55 +00:00
consistency fix: STREAM_CTRL_GET_TIME_LENGTH and STREAM_CTRL_GET_CURRENT_TIME now return time in (double) seconds
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20867 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
72023719ba
commit
6e28f63e36
@ -802,15 +802,11 @@ void demux_seek_mpg(demuxer_t *demuxer,float rel_seek_secs,float audio_delay, in
|
||||
|
||||
int demux_mpg_control(demuxer_t *demuxer,int cmd, void *arg){
|
||||
mpg_demuxer_t *mpg_d=(mpg_demuxer_t*)demuxer->priv;
|
||||
int msec = 0;
|
||||
|
||||
switch(cmd) {
|
||||
case DEMUXER_CTRL_GET_TIME_LENGTH:
|
||||
msec = stream_control(demuxer->stream, STREAM_CTRL_GET_TIME_LENGTH, arg);
|
||||
if(msec != STREAM_UNSUPORTED) {
|
||||
msec = *((unsigned int*)arg);
|
||||
*((double *)arg)=(double)msec/1000.0f;
|
||||
mp_msg(MSGT_DEMUXER,MSGL_DBG2,"\r\nDEMUX_MPG_CTRL, stream len: %d (%.3lf)\r\n", msec, *((double*)arg));
|
||||
if(stream_control(demuxer->stream, STREAM_CTRL_GET_TIME_LENGTH, arg) != STREAM_UNSUPORTED) {
|
||||
mp_msg(MSGT_DEMUXER,MSGL_DBG2,"\r\nDEMUX_MPG_CTRL, (%.3lf)\r\n", *((double*)arg));
|
||||
return DEMUXER_CTRL_GUESS;
|
||||
}
|
||||
if (mpg_d && mpg_d->has_valid_timestamps) {
|
||||
|
@ -881,7 +881,7 @@ int demux_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_delay,int flag
|
||||
demux_stream_t *d_video=demuxer->video;
|
||||
sh_audio_t *sh_audio=d_audio->sh;
|
||||
sh_video_t *sh_video=d_video->sh;
|
||||
unsigned int tmp = 0;
|
||||
double tmp = 0;
|
||||
double pts;
|
||||
|
||||
if(!demuxer->seekable){
|
||||
@ -916,13 +916,13 @@ if(!demuxer->seekable){
|
||||
else {
|
||||
if(stream_control(demuxer->stream, STREAM_CTRL_GET_CURRENT_TIME, &tmp) == STREAM_UNSUPORTED)
|
||||
goto dmx_seek;
|
||||
pts = (double)tmp / 1000.0f;
|
||||
pts = tmp;
|
||||
}
|
||||
|
||||
if(flags & 2) { // percent seek
|
||||
if(stream_control(demuxer->stream, STREAM_CTRL_GET_TIME_LENGTH, &tmp) == STREAM_UNSUPORTED)
|
||||
goto dmx_seek;
|
||||
pts += (double)tmp / 1000.0f * rel_seek_secs;
|
||||
pts += tmp * rel_seek_secs;
|
||||
} else
|
||||
pts += rel_seek_secs;
|
||||
|
||||
@ -1032,10 +1032,10 @@ double demuxer_get_time_length(demuxer_t *demuxer){
|
||||
*/
|
||||
int demuxer_get_current_time(demuxer_t *demuxer){
|
||||
double get_time_ans = 0;
|
||||
unsigned tm;
|
||||
double tm;
|
||||
sh_video_t *sh_video = demuxer->video->sh;
|
||||
if(stream_control(demuxer->stream, STREAM_CTRL_GET_CURRENT_TIME,(void *)&tm)!=STREAM_UNSUPORTED) {
|
||||
get_time_ans = (double) tm / 1000.0f;
|
||||
get_time_ans = tm;
|
||||
} else if(sh_video) get_time_ans = sh_video->pts;
|
||||
return (int) get_time_ans;
|
||||
}
|
||||
|
@ -633,7 +633,7 @@ static int control(stream_t *stream,int cmd,void* arg)
|
||||
{
|
||||
case STREAM_CTRL_GET_TIME_LENGTH:
|
||||
{
|
||||
*((unsigned int *)arg) = mp_get_titleset_length(d->vts_file, d->tt_srpt, d->cur_title-1);
|
||||
*((double *)arg) = (double) mp_get_titleset_length(d->vts_file, d->tt_srpt, d->cur_title-1)/1000.0;
|
||||
return 1;
|
||||
}
|
||||
case STREAM_CTRL_GET_NUM_CHAPTERS:
|
||||
@ -663,8 +663,7 @@ static int control(stream_t *stream,int cmd,void* arg)
|
||||
if(stream_cache_size > 0) return STREAM_UNSUPORTED;
|
||||
tm = dvd_get_current_time(stream, 0);
|
||||
if(tm != -1) {
|
||||
tm *= 1000.0f;
|
||||
*((unsigned int *)arg) = (unsigned int) tm;
|
||||
*((double *)arg) = tm;
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
|
@ -279,7 +279,7 @@ static int control(stream_t *stream, int cmd, void* arg) {
|
||||
{
|
||||
if(priv->duration)
|
||||
{
|
||||
*((unsigned int *)arg) = priv->duration;
|
||||
*((double *)arg) = (double)priv->duration / 1000.0;
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user