From aae0c4963b8d604506bf0abe6a0d91e91d9d66bd Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sat, 22 Jan 2022 17:31:14 -0800 Subject: [PATCH] add pixel aspect ratio to nodeglobals Turns our pixel aspect ratio is broken in various places. Will have to fix this at some point. --- app/node/globals.h | 21 +++++++++++++++++++-- app/node/traverser.cpp | 2 +- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/node/globals.h b/app/node/globals.h index d80da2a5c..921caaf33 100644 --- a/app/node/globals.h +++ b/app/node/globals.h @@ -30,16 +30,29 @@ namespace olive { class NodeGlobals { public: - NodeGlobals(const QVector2D &resolution, const TimeRange &time) : + NodeGlobals(const QVector2D &resolution, const rational &pixel_aspect, const TimeRange &time) : resolution_(resolution), + pixel_aspect_(pixel_aspect), time_(time) - {} + { + resolution_by_par_ = QVector2D(resolution_.x() * pixel_aspect_.toDouble(), resolution_.y()); + } const QVector2D &resolution() const { return resolution_; } + const QVector2D &resolution_by_par() const + { + return resolution_by_par_; + } + + const rational &pixel_aspect() const + { + return pixel_aspect_; + } + const TimeRange &time() const { return time_; @@ -53,6 +66,10 @@ public: private: QVector2D resolution_; + rational pixel_aspect_; + + QVector2D resolution_by_par_; + TimeRange time_; }; diff --git a/app/node/traverser.cpp b/app/node/traverser.cpp index 00239a9e6..754995a5d 100644 --- a/app/node/traverser.cpp +++ b/app/node/traverser.cpp @@ -141,7 +141,7 @@ int NodeTraverser::GenerateRowValueElementIndex(const Node *node, const QString NodeGlobals NodeTraverser::GenerateGlobals(const VideoParams ¶ms, const TimeRange &time) { - return NodeGlobals(QVector2D(params.width(), params.height()), time); + return NodeGlobals(QVector2D(params.width(), params.height()), params.pixel_aspect_ratio(), time); } int NodeTraverser::GetChannelCountFromJob(const GenerateJob &job)