From e2455fce2fedd59dea2905ac15090e88d88685f8 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Mon, 3 May 2021 13:55:39 +1000 Subject: [PATCH] renderer: fixed distorted video caused by exporting video with lower frame rate than sequence Wow I thought this issue was 0.1 exclusive but the same bug was here in 0.2 I wonder if it's worth backporting it now that I know what the problem is. --- app/task/export/export.cpp | 2 +- app/task/render/render.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/task/export/export.cpp b/app/task/export/export.cpp index 83a41d396..9f694723f 100644 --- a/app/task/export/export.cpp +++ b/app/task/export/export.cpp @@ -163,7 +163,7 @@ void ExportTask::FrameDownloaded(FramePtr f, const QByteArray &hash, const QVect forever { rational real_time = Timecode::timestamp_to_time(frame_time_, - viewer()->GetVideoParams().frame_rate_as_time_base()); + video_params().frame_rate_as_time_base()); if (!time_map_.contains(real_time)) { break; diff --git a/app/task/render/render.cpp b/app/task/render/render.cpp index 9f327b217..da5336024 100644 --- a/app/task/render/render.cpp +++ b/app/task/render/render.cpp @@ -76,7 +76,7 @@ bool RenderTask::Render(ColorManager* manager, if (!video_range.isEmpty()) { // Get list of discrete frames from range - QVector times = viewer()->video_frame_cache()->GetFrameListFromTimeRange(video_range); + QVector times = FrameHashCache::GetFrameListFromTimeRange(video_range, video_params().frame_rate_as_time_base()); QVector hashes(times.size()); // Generate hashes