viewer: improve visual appearance of scrubbing

This commit is contained in:
itsmattkc
2023-03-20 10:41:47 -07:00
parent 5b40ac1548
commit e9c97407aa
3 changed files with 14 additions and 1 deletions
+12
View File
@@ -108,6 +108,18 @@ void PreviewAutoCacher::ClearSingleFrameRenders()
}
}
void PreviewAutoCacher::ClearSingleFrameRendersThatArentRunning()
{
QMap<RenderTicketWatcher*, QVector<RenderTicketPtr> > copy = video_immediate_passthroughs_;
for (auto it=copy.cbegin(); it!=copy.cend(); it++) {
if (!it.key()->IsRunning()) {
it.key()->Cancel();
RenderManager::instance()->RemoveTicket(it.key()->GetTicket());
emit it.key()->GetTicket()->Finished();
}
}
}
void PreviewAutoCacher::VideoInvalidatedFromCache(ViewerOutput *context, const TimeRange &range)
{
PlaybackCache *cache = static_cast<PlaybackCache*>(sender());
+1
View File
@@ -54,6 +54,7 @@ public:
RenderTicketPtr GetRangeOfAudio(ViewerOutput *viewer, TimeRange range);
void ClearSingleFrameRenders();
void ClearSingleFrameRendersThatArentRunning();
/**
* @brief Set the viewer node to auto-cache
+1 -1
View File
@@ -900,7 +900,7 @@ void ViewerWidget::UpdateTextureFromNode()
nonqueue_watchers_.append(watcher);
// Clear queue because we want this frame more than any others
RenderManager::instance()->GetCacher()->ClearSingleFrameRenders();
RenderManager::instance()->GetCacher()->ClearSingleFrameRendersThatArentRunning();
DetectMulticamNode(time);