mirror of
https://github.com/mpv-player/mpv
synced 2025-03-21 18:57:35 +00:00
demux_mkv: always fail on header reading error
For some reason, if an error happened when reading headers, it merely stopped reading the headers, and then continued normally. (It looks like the case to exit hard (-2) was mainly used for skipping unwanted ordered chapter segments.) I can't comprehend this. Always exit on error when reading headers. (Maybe some more error tolerance would be good, but I have no test case, and there's some danger of entering endless loops.)
This commit is contained in:
parent
85bd178dbe
commit
774eb1d98d
@ -1762,10 +1762,8 @@ static int demux_mkv_open(demuxer_t *demuxer, enum demux_check check)
|
||||
break;
|
||||
}
|
||||
int res = read_header_element(demuxer, id, start_pos);
|
||||
if (res <= -2)
|
||||
return -1;
|
||||
if (res < 0)
|
||||
break;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Read headers that come after the first cluster (i.e. require seeking).
|
||||
@ -1800,10 +1798,8 @@ static int demux_mkv_open(demuxer_t *demuxer, enum demux_check check)
|
||||
}
|
||||
elem->parsed = false; // don't make read_header_element skip it
|
||||
int res = read_header_element(demuxer, elem->id, elem->pos);
|
||||
if (res <= -2)
|
||||
return -1;
|
||||
if (res < 0)
|
||||
break;
|
||||
return -1;
|
||||
}
|
||||
if (!stream_seek(s, start_pos)) {
|
||||
MP_ERR(demuxer, "Couldn't seek back after reading headers?\n");
|
||||
|
Loading…
Reference in New Issue
Block a user