summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-12 17:19:56 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-12 17:19:56 +0000
commit6e28f63e36321ad554646b9598f2b1f258620b84 (patch)
treebe9a189de2782508013242fa38554493976351e2 /libmpdemux
parent72023719ba723203df4d07b979ea6c476524e187 (diff)
downloadmpv-6e28f63e36321ad554646b9598f2b1f258620b84.tar.bz2
mpv-6e28f63e36321ad554646b9598f2b1f258620b84.tar.xz
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
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_mpg.c8
-rw-r--r--libmpdemux/demuxer.c10
2 files changed, 7 insertions, 11 deletions
diff --git a/libmpdemux/demux_mpg.c b/libmpdemux/demux_mpg.c
index 7bae4f3f74..07de9882bd 100644
--- a/libmpdemux/demux_mpg.c
+++ b/libmpdemux/demux_mpg.c
@@ -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) {
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 2517e3dbcc..d65456cfd6 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -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;
}