Module: libav
Branch: master
Commit: c7bd5edae4573d901583475608865c6f6ca64061

Author:    Vladimir Pantelic <[email protected]>
Committer: Reinhard Tartler <[email protected]>
Date:      Thu May 12 10:25:54 2011 +0200

asfdec: fallback to binary search internally

lavf will do that anyway in case seek by index fails

---

 libavformat/asfdec.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index 77c8449..e2161fd 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -1269,21 +1269,22 @@ static int asf_read_seek(AVFormatContext *s, int 
stream_index, int64_t pts, int
     if (!asf->index_read)
         asf_build_simple_index(s, stream_index);
 
-    if(!(asf->index_read && st->index_entries)){
-        if(av_seek_frame_binary(s, stream_index, pts, flags)<0)
-            return -1;
-    }else{
+    if((asf->index_read && st->index_entries)){
         index= av_index_search_timestamp(st, pts, flags);
-        if(index<0)
-            return -1;
-
+        if(index >= 0) {
         /* find the position */
         pos = st->index_entries[index].pos;
 
         /* do the seek */
         av_log(s, AV_LOG_DEBUG, "SEEKTO: %"PRId64"\n", pos);
         avio_seek(s->pb, pos, SEEK_SET);
+        asf_reset_header(s);
+        return 0;
+        }
     }
+    /* no index or seeking by index failed */
+    if(av_seek_frame_binary(s, stream_index, pts, flags)<0)
+        return -1;
     asf_reset_header(s);
     return 0;
 }

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to