diff --git a/openbr/core/core.cpp b/openbr/core/core.cpp index fe460ad..f1887cd 100644 --- a/openbr/core/core.cpp +++ b/openbr/core/core.cpp @@ -203,9 +203,9 @@ struct AlgorithmCore outputDesc.append("GalleryOutput("+gallery.flat()+")"); stages.append(progressCounter.data()); - QScopedPointer pipeline(br::pipeTransforms(stages)); + QScopedPointer pipeline(pipeTransforms(stages)); - QScopedPointer stream(br::wrapTransform(pipeline.data(), "Stream(readMode=StreamGallery, endPoint="+outputDesc+"+DiscardTemplates)")); + QScopedPointer stream(wrapTransform(pipeline.data(), "Stream(readMode=StreamGallery, endPoint="+outputDesc+"+DiscardTemplates)")); TemplateList data, output; data.append(input); @@ -731,9 +731,17 @@ QSharedPointer br::Transform::fromAlgorithm(const QString &algori if (!preprocess) return AlgorithmManager::getAlgorithm(algorithm)->transform; else { - QSharedPointer orig_tform = AlgorithmManager::getAlgorithm(algorithm)->transform; - QSharedPointer newRoot(wrapTransform(orig_tform.data(), "Stream(readMode=DistributeFrames)")); - return newRoot; + QSharedPointer transform = AlgorithmManager::getAlgorithm(algorithm)->transform; + QSharedPointer progressCounter = AlgorithmManager::getAlgorithm(algorithm)->progressCounter; + + QList stages; + stages.append(transform.data()); + stages.append(progressCounter.data()); + + QSharedPointer pipeline(pipeTransforms(stages)); + QSharedPointer stream(wrapTransform(pipeline.data(), "Stream(readMode=DistributeFrames)")); + + return stream; } } diff --git a/openbr/plugins/stream.cpp b/openbr/plugins/stream.cpp index bf835e9..8e35f16 100644 --- a/openbr/plugins/stream.cpp +++ b/openbr/plugins/stream.cpp @@ -1265,6 +1265,9 @@ void BasicLoop::run() class DirectStreamTransform : public CompositeTransform { Q_OBJECT + + using CompositeTransform::setPropertyRecursive; + public: Q_PROPERTY(int activeFrames READ get_activeFrames WRITE set_activeFrames RESET reset_activeFrames) Q_PROPERTY(br::Idiocy::StreamModes readMode READ get_readMode WRITE set_readMode RESET reset_readMode) @@ -1578,6 +1581,8 @@ class StreamTransform : public WrapperTransform { Q_OBJECT + using WrapperTransform::setPropertyRecursive; + public: StreamTransform() : WrapperTransform(false) { @@ -1707,6 +1712,20 @@ public: return res; } + bool setPropertyRecursive(const QString &name, QVariant value) + { + if (br::Object::setPropertyRecursive(name, value)) + return true; + + for (int i=0; i < basis->transforms.size();i++) { + if (basis->transforms[i]->setPropertyRecursive(name, value)) { + basis->init(); + return true; + } + } + return false; + } + private: QSharedPointer basis;