TuttleOFX
1
|
00001 #ifndef _TUTTLE_PLUGIN_TURBOJPEG_READER_PLUGIN_HPP_ 00002 #define _TUTTLE_PLUGIN_TURBOJPEG_READER_PLUGIN_HPP_ 00003 00004 #include "TurboJpegReaderDefinitions.hpp" 00005 00006 #include <tuttle/plugin/context/ReaderPlugin.hpp> 00007 00008 namespace tuttle { 00009 namespace plugin { 00010 namespace turboJpeg { 00011 namespace reader { 00012 00013 struct TurboJpegReaderProcessParams 00014 { 00015 std::string filepath; 00016 ETurboJpegOptimization optimization; 00017 bool fastUpsampling; 00018 }; 00019 00020 /** 00021 * @brief TurboJpeg plugin 00022 */ 00023 class TurboJpegReaderPlugin : public ReaderPlugin 00024 { 00025 public: 00026 TurboJpegReaderPlugin( OfxImageEffectHandle handle ); 00027 00028 public: 00029 TurboJpegReaderProcessParams getProcessParams( const OfxTime time ) const; 00030 00031 void changedParam( const OFX::InstanceChangedArgs &args, const std::string ¶mName ); 00032 bool getRegionOfDefinition( const OFX::RegionOfDefinitionArguments& args, OfxRectD& rod ); 00033 void getClipPreferences( OFX::ClipPreferencesSetter& clipPreferences ); 00034 00035 void render( const OFX::RenderArguments &args ); 00036 00037 public: 00038 OFX::ChoiceParam* _optimization; ///< TurboJpeg SIMD optimization 00039 OFX::BooleanParam* _fastUpsampling; ///< TurboJpeg fast upsampling for U,V channels 00040 00041 }; 00042 00043 } 00044 } 00045 } 00046 } 00047 00048 #endif