renderer: allow parameters to be changed mid-session
This commit is contained in:
@@ -44,7 +44,7 @@ VideoRenderBackend::VideoRenderBackend(QObject *parent) :
|
||||
|
||||
bool VideoRenderBackend::InitInternal()
|
||||
{
|
||||
cache_frame_load_buffer_.resize(PixelService::GetBufferSize(params_.format(), params_.effective_width(), params_.effective_height()));
|
||||
ResizeCacheLoadBuffer();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -84,6 +84,12 @@ void VideoRenderBackend::SetParameters(const VideoRenderingParams& params)
|
||||
// Set new parameters
|
||||
params_ = params;
|
||||
|
||||
// Resize frame load buffer
|
||||
ResizeCacheLoadBuffer();
|
||||
|
||||
// Handle custom events from derivatives
|
||||
ParamsChangedEvent();
|
||||
|
||||
// Set params on all processors
|
||||
foreach (RenderWorker* worker, processors_) {
|
||||
static_cast<VideoRenderWorker*>(worker)->SetParameters(params_);
|
||||
@@ -162,6 +168,10 @@ void VideoRenderBackend::InvalidateCacheInternal(const rational &start_range, co
|
||||
Requeue();
|
||||
}
|
||||
|
||||
void VideoRenderBackend::ParamsChangedEvent()
|
||||
{
|
||||
}
|
||||
|
||||
VideoRenderFrameCache *VideoRenderBackend::frame_cache()
|
||||
{
|
||||
return &frame_cache_;
|
||||
@@ -406,3 +416,8 @@ void VideoRenderBackend::Requeue()
|
||||
|
||||
CacheNext();
|
||||
}
|
||||
|
||||
void VideoRenderBackend::ResizeCacheLoadBuffer()
|
||||
{
|
||||
cache_frame_load_buffer_.resize(PixelService::GetBufferSize(params_.format(), params_.effective_width(), params_.effective_height()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user