[FFmpeg-trac] #8109(undetermined:reopened): Long loading delay for VfW codecs in Matroska

FFmpeg trac at avcodec.org
Tue Sep 3 18:42:45 EEST 2019


#8109: Long loading delay for VfW codecs in Matroska
-------------------------------------+-------------------------------------
             Reporter:  Austin       |                    Owner:
                 Type:  defect       |                   Status:  reopened
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  git-master   |               Resolution:
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  1
Analyzed by developer:  1            |
-------------------------------------+-------------------------------------
Changes (by mkver):

 * analyzed:  0 => 1


Comment:

 The file has 90000 cue entries and parsing them involves reallocating an
 array for the entries. And Windows seems to be bad at this if the array
 gets big (does it always copy?). Here are timings for the calls to
 av_realloc_array in ebml_parse (notice that these numbers also include the
 allocations of the single MatroskaIndexPos (that don't get reallocated
 lateron)):
 {{{
   55880 decicycles in realloc,      16 runs,      0 skips
   35677 decicycles in realloc,      32 runs,      0 skips
   25478 decicycles in realloc,      63 runs,      1 skips
   17347 decicycles in realloc,     127 runs,      1 skips
   16525 decicycles in realloc,     252 runs,      4 skips
   15753 decicycles in realloc,     505 runs,      7 skips
   18281 decicycles in realloc,    1013 runs,     11 skips
   27369 decicycles in realloc,    2036 runs,     12 skips
   46154 decicycles in realloc,    4077 runs,     19 skips
   93221 decicycles in realloc,    8152 runs,     40 skips
  163832 decicycles in realloc,   16311 runs,     73 skips
  222335 decicycles in realloc,   32677 runs,     91 skips
  383875 decicycles in realloc,   65417 runs,    119 skips
  731573 decicycles in realloc,  130667 runs,    405 skips
 }}}
 It's even more insane if one does not discard outlier:
 {{{
   46876 decicycles in realloc,      16 runs,
   31958 decicycles in realloc,      32 runs,
   24342 decicycles in realloc,      64 runs,
   15159 decicycles in realloc,     128 runs,
   12448 decicycles in realloc,     256 runs,
   11096 decicycles in realloc,     512 runs,
   12053 decicycles in realloc,    1024 runs,
   15506 decicycles in realloc,    2048 runs,
   27108 decicycles in realloc,    4096 runs,
   50788 decicycles in realloc,    8192 runs,
   91929 decicycles in realloc,   16384 runs,
  181616 decicycles in realloc,   32768 runs,
  379396 decicycles in realloc,   65536 runs,
  880554 decicycles in realloc,  131072 runs,
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8109#comment:5>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list