Mask away AVSEEK_FORCE properly in some checks in url_fseek()
authorTomas Härdin <Tomas.hardin@codemill.se>
Wed, 24 Mar 2010 10:41:58 +0000 (10:41 +0000)
committerBenoit Fouet <benoit.fouet@free.fr>
Wed, 24 Mar 2010 10:41:58 +0000 (10:41 +0000)
Patch by Tomas Härdin $(name).$(s/ä/a/ $(surname)) AT codemill DOT se

Originally committed as revision 22653 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/aviobuf.c

index da05251..37a6f6d 100644 (file)
@@ -130,6 +130,8 @@ int64_t url_fseek(ByteIOContext *s, int64_t offset, int whence)
 {
     int64_t offset1;
     int64_t pos;
+    int force = whence & AVSEEK_FORCE;
+    whence &= ~AVSEEK_FORCE;
 
     if(!s)
         return AVERROR(EINVAL);
@@ -151,8 +153,7 @@ int64_t url_fseek(ByteIOContext *s, int64_t offset, int whence)
         /* can do the seek inside the buffer */
         s->buf_ptr = s->buffer + offset1;
     } else if(s->is_streamed && !s->write_flag && offset1 >= 0 &&
-              (   offset1 < (s->buf_end - s->buffer) + (1<<16)
-               || (whence & AVSEEK_FORCE))){
+              (offset1 < (s->buf_end - s->buffer) + (1<<16) || force)) {
         while(s->pos < offset && !s->eof_reached)
             fill_buffer(s);
         if (s->eof_reached)