forked from FFmpeg/FFmpeg
flvdec: Fix support for flvtool2 "keyframes based" generated index
Current keyframes data parser unconditionally rewind metadata to the end at the end of function. As result ALL metadata located after keyframes index not parsed, and as metadata object can have ANY placement inside metadata it can lead to unpredictable result (bitrate can not be found, etc.). As result FLV movie will not play at all in such situation. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
c41eb2ade4
commit
b5304f7b2e
1 changed files with 2 additions and 1 deletions
|
@ -136,6 +136,7 @@ static int parse_keyframes_index(AVFormatContext *s, AVIOContext *ioc, AVStream
|
|||
int64_t *times = NULL;
|
||||
int64_t *filepositions = NULL;
|
||||
int ret = 0;
|
||||
int64_t initial_pos = avio_tell(ioc);
|
||||
|
||||
while (avio_tell(ioc) < max_pos - 2 && amf_get_string(ioc, str_val, sizeof(str_val)) > 0) {
|
||||
int64_t* current_array;
|
||||
|
@ -183,7 +184,7 @@ static int parse_keyframes_index(AVFormatContext *s, AVIOContext *ioc, AVStream
|
|||
finish:
|
||||
av_freep(×);
|
||||
av_freep(&filepositions);
|
||||
avio_seek(ioc, max_pos, SEEK_SET);
|
||||
avio_seek(ioc, initial_pos, SEEK_SET);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue