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>
| ... | ... |
@@ -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 |
} |