]> git.sesse.net Git - ffmpeg/commit
ffmpeg: add a data size threshold for muxing queue size
authorJan Ekström <jeebjp@gmail.com>
Thu, 15 Oct 2020 18:21:05 +0000 (21:21 +0300)
committerJan Ekström <jeebjp@gmail.com>
Thu, 29 Oct 2020 14:59:48 +0000 (16:59 +0200)
commit453b2f3c154f6b83221940ad411599ded91f7413
tree5b718860b89a427fa1ad5680bf9c273f577672d6
parent9b45c6d74b6bcc21c3246580db3392d15a6988b8
ffmpeg: add a data size threshold for muxing queue size

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.
doc/ffmpeg.texi
fftools/ffmpeg.c
fftools/ffmpeg.h
fftools/ffmpeg_opt.c