Add a drop_frame flag to Dav1dData
This is intended to speed up seeking. For 1-frame thread, this is only helpful if the video has film grain. For multiple frame threads, this helps regardless of whether or not film grain is present (though it should help even more if film grain is present).
Below is testing dav1d
on Chimera-AV1-8bit-1280x720-3363kbps.ivf (which doesn't have film grain, I believe) on an iMac Pro (Intel Xeon W @ 2.3 GHz with 18 cores; obviously underutilized):
| Frame threads | Tile threads | Decode time
=====================+===============+==============+============
without --dropframes | 1 | 1 | 81.59
with --dropframes | 1 | 1 | 80.79
---------------------+---------------+--------------+------------
without --dropframes | 1 | 2 | 39.82
with --dropframes | 1 | 2 | 40.32
---------------------+---------------+--------------+------------
without --dropframes | 2 | 1 | 57.93
with --dropframes | 2 | 1 | 48.97
---------------------+---------------+--------------+------------
without --dropframes | 2 | 2 | 35.52
with --dropframes | 2 | 2 | 28.89
Command used:
/usr/bin/time -lp ./build/tools/dav1d --quiet --input ~/Downloads/Chimera-AV1-8bit-1280x720-3363kbps.ivf --output /tmp/z.null --framethreads F --tilethreads T
I ran the benchmark a few times and timings were fairly consistent (+/- 1 second).