clear decoders when viewer is disconnected

This commit is contained in:
itsmattkc
2020-10-28 15:50:20 +11:00
parent 5343ec4b86
commit 43873e79e9
3 changed files with 11 additions and 0 deletions
+4
View File
@@ -139,6 +139,10 @@ void RenderBackend::SetViewerNode(ViewerOutput *viewer_node)
&PlaybackCache::Invalidated,
this,
&RenderBackend::AutoCacheAudioInvalidated);
foreach (const WorkerData& worker, workers_) {
worker.worker->ClearDecoders();
}
}
if (viewer_node) {
+5
View File
@@ -164,6 +164,11 @@ void RenderWorker::RenderAudio(RenderTicketPtr ticket, ViewerOutput* viewer, con
emit FinishedJob();
}
void RenderWorker::ClearDecoders()
{
decoder_cache_.clear();
}
NodeValueTable RenderWorker::GenerateBlockTable(const TrackOutput *track, const TimeRange &range)
{
if (track->track_type() == Timeline::kTrackTypeAudio) {
+2
View File
@@ -107,6 +107,8 @@ public:
void RenderAudio(RenderTicketPtr ticket, ViewerOutput* viewer, const TimeRange& range);
void ClearDecoders();
protected:
virtual void TextureToFrame(const QVariant& texture, FramePtr frame, const QMatrix4x4 &mat) const = 0;