Browse code

id3v1: Seek back to old position after reading.

FFmpeg did not seek back to the original position, but to "0", making
reading a VBR tag impossible.
(issue 2645)

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>

Carl Eugen Hoyos authored on 2011/03/26 03:46:27
Showing 1 changed files
... ...
@@ -227,6 +227,7 @@ void ff_id3v1_read(AVFormatContext *s)
227 227
 {
228 228
     int ret, filesize;
229 229
     uint8_t buf[ID3v1_TAG_SIZE];
230
+    int64_t position = avio_tell(s->pb);
230 231
 
231 232
     if (!url_is_streamed(s->pb)) {
232 233
         /* XXX: change that */
... ...
@@ -237,7 +238,7 @@ void ff_id3v1_read(AVFormatContext *s)
237 237
             if (ret == ID3v1_TAG_SIZE) {
238 238
                 parse_tag(s, buf);
239 239
             }
240
-            avio_seek(s->pb, 0, SEEK_SET);
240
+            avio_seek(s->pb, position, SEEK_SET);
241 241
         }
242 242
     }
243 243
 }