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>
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;
finish:
av_freep(×);
av_freep(&filepositions);
- avio_seek(ioc, max_pos, SEEK_SET);
+ avio_seek(ioc, initial_pos, SEEK_SET);
return ret;
}