render: fix issue responding to cancelled tasks
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include "footagedescription.h"
|
||||
#include "node/output/viewer/viewer.h"
|
||||
#include "render/audioparams.h"
|
||||
#include "render/cancelatom.h"
|
||||
#include "render/videoparams.h"
|
||||
|
||||
namespace olive {
|
||||
@@ -141,7 +142,7 @@ public:
|
||||
*/
|
||||
void set_timestamp(const qint64 &t);
|
||||
|
||||
void SetCancelPointer(const QAtomicInt* c)
|
||||
void SetCancelPointer(CancelAtom *c)
|
||||
{
|
||||
cancelled_ = c;
|
||||
}
|
||||
@@ -232,7 +233,7 @@ private:
|
||||
|
||||
bool valid_;
|
||||
|
||||
const QAtomicInt* cancelled_;
|
||||
CancelAtom *cancelled_;
|
||||
|
||||
private slots:
|
||||
void CheckFootage();
|
||||
|
||||
@@ -260,7 +260,6 @@ NodeValueTable NodeTraverser::ProcessInput(const Node* node, const QString& inpu
|
||||
|
||||
NodeTraverser::NodeTraverser() :
|
||||
cancel_(nullptr),
|
||||
heard_cancel_(false),
|
||||
transform_(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
+7
-15
@@ -26,6 +26,7 @@
|
||||
#include "codec/decoder.h"
|
||||
#include "common/cancelableobject.h"
|
||||
#include "node/output/track/track.h"
|
||||
#include "render/cancelatom.h"
|
||||
#include "render/job/footagejob.h"
|
||||
#include "render/job/colortransformjob.h"
|
||||
#include "value.h"
|
||||
@@ -130,24 +131,16 @@ protected:
|
||||
|
||||
bool IsCancelled()
|
||||
{
|
||||
bool c = cancel_ && *cancel_;
|
||||
if (c) {
|
||||
heard_cancel_ = true;
|
||||
}
|
||||
return c;
|
||||
return cancel_ && cancel_->IsCancelled();
|
||||
}
|
||||
|
||||
bool HeardCancel() const { return heard_cancel_; }
|
||||
|
||||
const QAtomicInt *GetCancelPointer() const
|
||||
bool HeardCancel() const
|
||||
{
|
||||
return cancel_;
|
||||
return cancel_ && cancel_->HeardCancel();
|
||||
}
|
||||
|
||||
void SetCancelPointer(const QAtomicInt *cancel)
|
||||
{
|
||||
cancel_ = cancel;
|
||||
}
|
||||
CancelAtom *GetCancelPointer() const { return cancel_; }
|
||||
void SetCancelPointer(CancelAtom *cancel) { cancel_ = cancel; }
|
||||
|
||||
void ResolveJobs(NodeValue &value, const TimeRange &range);
|
||||
|
||||
@@ -165,8 +158,7 @@ private:
|
||||
|
||||
AudioParams audio_params_;
|
||||
|
||||
const QAtomicInt *cancel_;
|
||||
bool heard_cancel_;
|
||||
CancelAtom *cancel_;
|
||||
|
||||
const Node *transform_start_;
|
||||
const Node *transform_now_;
|
||||
|
||||
Reference in New Issue
Block a user