mirror of https://git.ffmpeg.org/ffmpeg.git
lavf/id3v2: seek back to previous offset if header size is not matched
Makes ff_id3v2_read reset stream position at the end of ID3 data if the header size is not matched (caused by an EOF for example). Current behaviour (without the patch): filesize = 400 id3 data size = 399 file offset after ff_id3v2_read is 400 instead of 399 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
0c6b0409af
commit
b3b456b258
|
@ -788,8 +788,10 @@ void ff_id3v2_read(AVFormatContext *s, const char *magic, ID3v2ExtraMeta **extra
|
|||
/* save the current offset in case there's nothing to read/skip */
|
||||
off = avio_tell(s->pb);
|
||||
ret = avio_read(s->pb, buf, ID3v2_HEADER_SIZE);
|
||||
if (ret != ID3v2_HEADER_SIZE)
|
||||
if (ret != ID3v2_HEADER_SIZE) {
|
||||
avio_seek(s->pb, off, SEEK_SET);
|
||||
break;
|
||||
}
|
||||
found_header = ff_id3v2_match(buf, magic);
|
||||
if (found_header) {
|
||||
/* parse ID3v2 header */
|
||||
|
|
Loading…
Reference in New Issue