diff mplayer.c @ 22338:434cd072b0d3

Seek to -ss position without first starting audio/video from the start. Manual seeks no longer shift -endpos position (hopefully no one considered that a "feature").
author uau
date Tue, 27 Feb 2007 01:16:59 +0000
parents 5a5c7529e8a3
children baeb54a9c3e9
line wrap: on
line diff
--- a/mplayer.c	Tue Feb 27 00:19:01 2007 +0000
+++ b/mplayer.c	Tue Feb 27 01:16:59 2007 +0000
@@ -3330,6 +3330,17 @@
   mpctx->eof=PT_NEXT_ENTRY; goto goto_next_file;
 }
 
+if (seek_to_sec) {
+    seek(mpctx, seek_to_sec, 1);
+    end_at.pos += seek_to_sec;
+}
+
+if (end_at.type == END_AT_SIZE) {
+    mp_msg(MSGT_CPLAYER, MSGL_WARN, MSGTR_MPEndposNoSizeBased);
+    end_at.type = END_AT_NONE;
+}
+
+
 while(!mpctx->eof){
     float aq_sleep_time=0;
 if(!mpctx->sh_audio && mpctx->d_audio->sh) {
@@ -3506,20 +3517,6 @@
 }
   mpctx->was_paused = 0;
 
-  if (seek_to_sec) {
-      rel_seek_secs += seek_to_sec;
-      seek_to_sec = 0;
-  }
-  
-  if (end_at.type != END_AT_NONE) {
-    if(end_at.type == END_AT_SIZE) {
-      mp_msg(MSGT_CPLAYER, MSGL_WARN, MSGTR_MPEndposNoSizeBased);
-      end_at.type = END_AT_NONE;
-    } else {
-      end_at.pos += rel_seek_secs;
-    }
-  }
-
   /* Looping. */
   if(mpctx->eof==1 && loop_times>=0) {
     int l = loop_times;