]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/async.c
avformat/async: Fix bug where async could not recover after seek to eof
[ffmpeg] / libavformat / async.c
index f4474b866a76a461b06cf10c1aba451b53cd919b..4308c4b587124811173fa0828cc375b6c8add027 100644 (file)
@@ -195,19 +195,16 @@ static void *async_buffer_task(void *arg)
 
         if (c->seek_request) {
             seek_ret = ffurl_seek(c->inner, c->seek_pos, c->seek_whence);
-            if (seek_ret < 0) {
-                c->io_eof_reached = 1;
-                c->io_error       = (int)seek_ret;
-            } else {
+            if (seek_ret >= 0) {
                 c->io_eof_reached = 0;
                 c->io_error       = 0;
+                ring_reset(ring);
             }
 
             c->seek_completed = 1;
             c->seek_ret       = seek_ret;
             c->seek_request   = 0;
 
-            ring_reset(ring);
 
             pthread_cond_signal(&c->cond_wakeup_main);
             pthread_mutex_unlock(&c->mutex);