Fix seek.
authorCarl Hetherington <cth@carlh.net>
Fri, 26 Apr 2013 18:13:50 +0000 (19:13 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 26 Apr 2013 18:13:50 +0000 (19:13 +0100)
src/lib/player.cc

index a84117a4e4ce0cb14821bcfea050d3818c4e242b..357c69e82d2d3c1e7d997e0ae600d831b82d6425 100644 (file)
@@ -174,17 +174,15 @@ Player::seek (double t)
 
        /* Find the decoder that contains this position */
        _video_decoder = 0;
-       while (_video_decoder < _video_decoders.size ()) {
-               if (t < _video_start[_video_decoder]) {
-                       assert (_video_decoder);
+       while (1) {
+               ++_video_decoder;
+               if (_video_decoder >= _video_decoders.size () || t < _video_start[_video_decoder]) {
                        --_video_decoder;
+                       t -= _video_start[_video_decoder];
                        break;
                }
-
-               t -= _video_start[_video_decoder];
-               ++_video_decoder;
        }
-       
+
        if (_video_decoder < _video_decoders.size()) {
                _video_decoders[_video_decoder]->seek (t);
        } else {