clear decoders when viewer is disconnected
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user