diff --git a/app/render/backend/audiorenderbackend.cpp b/app/render/backend/audiorenderbackend.cpp index 100537895..9a4a52df5 100644 --- a/app/render/backend/audiorenderbackend.cpp +++ b/app/render/backend/audiorenderbackend.cpp @@ -65,10 +65,9 @@ NodeInput *AudioRenderBackend::GetDependentInput() QString AudioRenderBackend::CachePathName() { - QDir this_cache_dir = QDir(GetMediaCacheLocation()).filePath(cache_id()); - this_cache_dir.mkpath("."); - - return this_cache_dir.filePath(QStringLiteral("pcm")); + QString cache_fn = cache_id(); + cache_fn.append(".pcm"); + return QDir(GetMediaCacheLocation()).filePath(cache_fn); } bool AudioRenderBackend::CanRender() diff --git a/app/render/backend/videorenderframecache.cpp b/app/render/backend/videorenderframecache.cpp index 57fe511ab..a7d8cad69 100644 --- a/app/render/backend/videorenderframecache.cpp +++ b/app/render/backend/videorenderframecache.cpp @@ -116,7 +116,7 @@ const QMap &VideoRenderFrameCache::time_hash_map() const QString VideoRenderFrameCache::CachePathName(const QByteArray &hash) const { - QDir this_cache_dir = QDir(GetMediaCacheLocation()).filePath(cache_id_); + QDir this_cache_dir = QDir(GetMediaCacheLocation()); this_cache_dir.mkpath("."); QString filename = QStringLiteral("%1.exr").arg(QString(hash.toHex())); diff --git a/app/render/backend/videorenderworker.cpp b/app/render/backend/videorenderworker.cpp index d0978f864..1f6c450d2 100644 --- a/app/render/backend/videorenderworker.cpp +++ b/app/render/backend/videorenderworker.cpp @@ -26,6 +26,18 @@ NodeValueTable VideoRenderWorker::RenderInternal(const NodeDependency& path, con QByteArray hash; if (operating_mode_ & kHashOnly) { QCryptographicHash hasher(QCryptographicHash::Sha1); + + // Embed video parameters into this hash + int vwidth = video_params_.effective_width(); + int vheight = video_params_.effective_height(); + PixelFormat::Format vfmt = video_params_.format(); + RenderMode::Mode vmode = video_params_.mode(); + + hasher.addData(reinterpret_cast(&vwidth), sizeof(int)); + hasher.addData(reinterpret_cast(&vheight), sizeof(int)); + hasher.addData(reinterpret_cast(&vfmt), sizeof(PixelFormat::Format)); + hasher.addData(reinterpret_cast(&vmode), sizeof(RenderMode::Mode)); + HashNodeRecursively(&hasher, path.node(), path.in()); hash = hasher.result(); }