decoder/renderer: no longer index automatically as part of the retrieve
functions Indexing is a lengthy process and had a high chance of getting RenderWorkers stuck doing it rather than being responsive to cache requests. This commit introduces a system where workers never index media, but instead signal that media is not ready to their RenderBackends which ensure that the media gets indexed and re-queues the affected frames when those indexes are ready.
This commit is contained in:
@@ -49,6 +49,7 @@
|
||||
#include "render/backend/opengl/opengltexturecache.h"
|
||||
#include "render/colormanager.h"
|
||||
#include "render/diskmanager.h"
|
||||
#include "render/indexmanager.h"
|
||||
#include "render/pixelservice.h"
|
||||
#include "task/taskmanager.h"
|
||||
#include "ui/style/style.h"
|
||||
@@ -109,6 +110,9 @@ void Core::Start()
|
||||
// Set up node factory/library
|
||||
NodeFactory::Initialize();
|
||||
|
||||
// Set up the index manager for renderers
|
||||
IndexManager::CreateInstance();
|
||||
|
||||
// Load application config
|
||||
Config::Load();
|
||||
|
||||
@@ -147,6 +151,8 @@ void Core::Stop()
|
||||
|
||||
NodeFactory::Destroy();
|
||||
|
||||
IndexManager::DestroyInstance();
|
||||
|
||||
delete main_window_;
|
||||
}
|
||||
|
||||
@@ -370,6 +376,8 @@ void Core::DeclareTypesForQt()
|
||||
qRegisterMetaType<FramePtr>();
|
||||
qRegisterMetaType<AudioRenderingParams>();
|
||||
qRegisterMetaType<NodeKeyframe::Type>();
|
||||
qRegisterMetaType<Decoder::RetrieveState>();
|
||||
qRegisterMetaType<TimeRange>();
|
||||
}
|
||||
|
||||
void Core::StartGUI(bool full_screen)
|
||||
|
||||
Reference in New Issue
Block a user