#ifndef F62FEA52_888A_474C_B58C_B83007D75F89 #define F62FEA52_888A_474C_B58C_B83007D75F89 /* ******************************************************************************* * INCLUDE ******************************************************************************* */ #include "ChannelLayout.h" #include "SampleFormat.h" #include "Frame.h" #include "util/FactoryManager.h" #include namespace Video { namespace Core { /* ******************************************************************************* * CLASS DECLARE ******************************************************************************* */ class AudioResampleSelector { public: static int select(ChannelLayout, SampleFormat, int, ChannelLayout, SampleFormat, int) { return 0; } }; class AudioResample: public ::Util::FactoryManager { public: using Ptr = Poco::SharedPtr; public: AudioResample(const std::string& name, Core::ChannelLayout ilayout, Core::SampleFormat iformat, int irate, Core::ChannelLayout olayout, Core::SampleFormat oformat, int orate); virtual ~AudioResample(); public: virtual Frame::Ptr process(Frame::Ptr in) = 0; const std::string name() const; const Core::ChannelLayout inLayout() const; const Core::SampleFormat inFormat() const; const int inRate() const; const Core::ChannelLayout outLayout() const; const Core::SampleFormat outFormat() const; const int outRate() const; private: const std::string _name; Core::ChannelLayout _ilayout; Core::SampleFormat _iformat; int _irate; Core::ChannelLayout _olayout; Core::SampleFormat _oformat; int _orate; }; inline const std::string AudioResample::name() const { return _name; } inline const Core::ChannelLayout AudioResample::inLayout() const { return _ilayout; } inline const Core::SampleFormat AudioResample::inFormat() const { return _iformat; } inline const int AudioResample::inRate() const { return _irate; } inline const Core::ChannelLayout AudioResample::outLayout() const { return _olayout; } inline const Core::SampleFormat AudioResample::outFormat() const { return _oformat; } inline const int AudioResample::outRate() const { return _orate; } } } #endif