// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #include "./imageWarper.hpp" #include "./linearFlowWarper.hpp" #include "./noWarper.hpp" namespace VideoStitch { namespace Core { Potential ImageWarper::factor(const ImageWarperAlgorithm e, std::shared_ptr mergerPair, std::map parameters, GPU::Stream gpuStream) { std::unique_ptr warperPtr; switch (e) { #ifndef VS_OPENCL case ImageWarperAlgorithm::LinearFlowWarper: { warperPtr.reset(new LinearFlowWarper(parameters)); } break; #endif case ImageWarperAlgorithm::NoWarper: warperPtr.reset(new NoWarper(parameters)); break; default: warperPtr.reset(new NoWarper(parameters)); break; } FAIL_RETURN(warperPtr->init(mergerPair)); FAIL_RETURN(warperPtr->setupCommon(gpuStream)); return Potential(warperPtr.release()); } ImageWarper::ImageWarperAlgorithm ImageWarper::getDefaultImageWarper() { return ImageWarperAlgorithm::NoWarper; } ImageWarper::ImageWarper(const std::map& parameters_) : parameters(parameters_), mergerPair(nullptr) {} ImageWarper::~ImageWarper() {} Status ImageWarper::init(std::shared_ptr& inMergerPair) { this->mergerPair = inMergerPair; return Status::OK(); } Status ImageWarper::warp(GPU::Buffer warpedBuffer, const GPU::Buffer inputBuffer, const Rect&, const GPU::Buffer flow, const int, const int, GPU::Buffer debug, GPU::Buffer flowWarpedBuffer, GPU::Stream gpuStream) { return Status::OK(); } Status ImageWarper::setupCommon(GPU::Stream gpuStream) { return Status::OK(); } } // namespace Core } // namespace VideoStitch