From fca5f65899f8c2ed5d23cdd57cb7040c8e84c695 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat, 7 May 2022 16:27:10 -0700 Subject: [PATCH] renderer: fix divider regression --- app/node/project/footage/footage.cpp | 7 +------ app/node/traverser.cpp | 17 +++++++++++++++++ app/render/renderprocessor.cpp | 11 +---------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/node/project/footage/footage.cpp b/app/node/project/footage/footage.cpp index d3c82304f..59d520d96 100644 --- a/app/node/project/footage/footage.cpp +++ b/app/node/project/footage/footage.cpp @@ -118,12 +118,7 @@ void Footage::InputValueChangedEvent(const QString &input, int element) decoder_ = footage_info.decoder(); for (int i=0; i 1 + && VideoParams::GetScaledDimension(job_params.width(), job_params.divider()-1) < render_params.effective_width() + && VideoParams::GetScaledDimension(job_params.height(), job_params.divider()-1) < render_params.effective_height()) { + job_params.set_divider(job_params.divider() - 1); + } + job.set_video_params(job_params); + if (footage_time.isNaN()) { // Push dummy texture tex = CreateDummyTexture(job.video_params()); diff --git a/app/render/renderprocessor.cpp b/app/render/renderprocessor.cpp index ce1db8b41..f58b7ea3c 100644 --- a/app/render/renderprocessor.cpp +++ b/app/render/renderprocessor.cpp @@ -402,19 +402,10 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, const FootageJ // Check the still frame cache. On large frames such as high resolution still images, uploading // and color managing them for every frame is a waste of time, so we implement a small cache here // to optimize such a situation - const VideoParams& render_params = GetCacheVideoParams(); VideoParams stream_data = stream.video_params(); ColorManager* color_manager = Node::ValueToPtr(ticket_->property("colormanager")); - // See if we can make this divider larger (i.e. if the fooage is smaller) - int footage_divider = render_params.divider(); - while (footage_divider > 1 - && VideoParams::GetScaledDimension(stream_data.width(), footage_divider-1) < render_params.effective_width() - && VideoParams::GetScaledDimension(stream_data.height(), footage_divider-1) < render_params.effective_height()) { - footage_divider--; - } - QString using_colorspace = stream_data.colorspace(); if (using_colorspace.isEmpty()) { @@ -449,7 +440,7 @@ void RenderProcessor::ProcessVideoFootage(TexturePtr destination, const FootageJ if (decoder) { Decoder::RetrieveVideoParams p; - p.divider = footage_divider; + p.divider = stream.video_params().divider(); p.src_interlacing = stream_data.interlacing(); p.dst_interlacing = GetCacheVideoParams().interlacing();