• Jan Ekström's avatar
    ffmpeg: add a data size threshold for muxing queue size · 453b2f3c
    Jan Ekström authored
    This way the old max queue size limit based behavior for streams
    where each individual packet is large is kept, while for smaller
    streams more packets can be buffered (current default is at 50
    megabytes per stream).
    
    For some explanation, by default ffmpeg copies packets from before
    the appointed seek point/start time and puts them into the local
    muxing queue. Before, it getting utilized was much less likely
    since as soon as the filter chain was initialized, the encoder
    (and thus output stream) was also initialized.
    
    Now, since we will be pushing the encoder initialization to when the
    first AVFrame is decoded and filtered - which only happens after
    the exact seek point is hit as packets are ignored until then -
    this queue will be seeing much more usage.
    
    In more layman's terms, this attempts to fix cases such as where:
    - seek point ends up being 5 seconds before requested time.
    - audio is set to copy, and thus immediately begins filling the
      muxing queue.
    - video is being encoded, and thus all received packets are skipped
      until the requested time is hit.
    453b2f3c
ffmpeg.h 20.2 KB