%include %include %include %include #define VS_EXPORT /* Parse the header file to generate wrappers. * ORDER MATTERS A LOT HERE, beware of dependencies!!! */ /* Not implemented yet */ %ignore VideoStitch::Output::StereoWriter::getExpectedFrameSizeFor; %ignore VideoStitch::Output::StereoWriter::getExpectedFrameSize; %ignore VideoStitch::Audio::AudioPath::addSink; %ignore VideoStitch::Audio::AudioPath::AudioPath; %ignore VideoStitch::Audio::AudioPath::setSinks; %ignore VideoStitch::Audio::AudioPath::removeSink; %include "../../include/libvideostitch/config.hpp" %include "../../include/libvideostitch/logging.hpp" %include "../../include/libvideostitch/status.hpp" %include "../../include/libvideostitch/audio.hpp" %include "../../include/libvideostitch/allocator.hpp" %template(PotentialSourceSurface) VideoStitch::Potential; %template(PotentialPanoSurface) VideoStitch::Potential; %template(PotentialSourceOpenGLSurface) VideoStitch::Potential; %template(PotentialPanoOpenGLSurface) VideoStitch::Potential; %template(SourceRendererPtr) std::shared_ptr; %template(PanoRendererPtr) std::shared_ptr; %template(SourceRendererPtrVector) std::vector>; %template(PanoRendererPtrVector) std::vector>; %include "../../include/libvideostitch/ptv.hpp" %template(PtvValuePtrVector) std::vector; %ignore VideoStitch::PotentialValue::PotentialValue(T&&); %ignore VideoStitch::GPU::operator<<; %include "../../include/libvideostitch/frame.hpp" %ignore VideoStitch::Core::operator<<; %include "../../include/libvideostitch/gpu_device.hpp" %include "../../include/libvideostitch/outputEventManager.hpp" %include "../../include/libvideostitch/output.hpp" %template(Writer) VideoStitch::Potential; %include "../../include/libvideostitch/input.hpp" %include "../../include/libvideostitch/inputFactory.hpp" %include "../../include/libvideostitch/imageMergerFactory.hpp" %template(PotentialMergerFactory) VideoStitch::Potential; %include "../../include/libvideostitch/imageWarperFactory.hpp" %template(PotentialWarperFactory) VideoStitch::Potential; %include "../../include/libvideostitch/imageFlowFactory.hpp" %template(PotentialFlowFactory) VideoStitch::Potential; %include "../../include/libvideostitch/stitchOutput.hpp" %template(StitchOutput) VideoStitch::Core::StitcherOutput; %template(PotentialExtractOutput) VideoStitch::Potential; %template(PotentialStitchOutput) VideoStitch::Potential>; %template(PotentialOnlineAlgorithm) VideoStitch::Potential; %template(ExtractOutputPtrVector) std::vector; %template(StitchOutputPtrVector) std::vector; %include "../../include/libvideostitch/controller.hpp" /* StitcherController inherits getFrameRate from InputController * But Swig doesn't seem to catch that (because it's virtual inheritance) * Workaround: extend Controller with new method, let C++ compiler do the virtual inheritance resolving */ %extend VideoStitch::Core::StitcherController { FrameRate getFrameRateFromInputController() const override { return $self->getFrameRate(); } } %template(Controller) VideoStitch::Core::StitcherController; %template(PotentialController) VideoStitch::Potential>; %template(OutputWriterPtrVector) std::vector,PanoDeviceDefinition >::Output::Writer>>;