cache: use render job times to synchronize cache

Ensure old inaccurate jobs are never prioritized over current jobs.
This commit is contained in:
itsmattkc
2020-06-04 16:48:23 +10:00
parent cc34f0e251
commit 9ff9817b95
13 changed files with 106 additions and 40 deletions
+2 -2
View File
@@ -65,14 +65,14 @@ QFuture<void> CacheTask::DownloadFrame(FramePtr frame, const QByteArray &hash)
void CacheTask::FrameDownloaded(const QByteArray &hash, const std::list<rational> &times)
{
foreach (const rational& t, times) {
viewer()->video_frame_cache()->SetHash(t, hash);
viewer()->video_frame_cache()->SetHash(t, hash, job_time());
}
}
void CacheTask::AudioDownloaded(const TimeRange &range, SampleBufferPtr samples)
{
if (samples) {
viewer()->audio_playback_cache()->WritePCM(range, samples);
viewer()->audio_playback_cache()->WritePCM(range, samples, job_time());
} else {
viewer()->audio_playback_cache()->WriteSilence(range);
}