diff mencoder.c @ 29486:a373af1e3b24

Handle demuxers that never set filepos by using stream_tell.
author reimar
date Mon, 17 Aug 2009 05:55:40 +0000
parents 2d14b0b53d8e
children ecc719c6d7a9
line wrap: on
line diff
--- a/mencoder.c	Mon Aug 17 02:06:00 2009 +0000
+++ b/mencoder.c	Mon Aug 17 05:55:40 2009 +0000
@@ -1399,7 +1399,8 @@
 
     {	float t=(GetTimerMS()-timer_start)*0.001f;
 	float len=(demuxer->movi_end-demuxer->movi_start);
-	float p=len>1000 ? (float)(demuxer->filepos-demuxer->movi_start) / len :
+	off_t pos = demuxer->filepos >= 0 ? demuxer->filepos : stream_tell(demuxer->stream);
+	float p=len>1000 ? (float)(pos-demuxer->movi_start) / len :
                 (demuxer_get_percent_pos(demuxer) / 100.0);
 #if 0
 	if(!len && sh_audio && sh_audio->audio.dwLength>100){