TuttleOFX  1
TurboJpegWriterPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_TURBOJPEG_WRITER_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_TURBOJPEG_WRITER_PLUGIN_HPP_
00003 
00004 #include "TurboJpegWriterDefinitions.hpp"
00005 
00006 #include <tuttle/plugin/context/WriterPlugin.hpp>
00007 
00008 namespace tuttle {
00009 namespace plugin {
00010 namespace turboJpeg {
00011 namespace writer {
00012 
00013 struct TurboJpegWriterProcessParams
00014 {
00015         std::string            filepath;
00016         ETurboJpegOptimization optimization;
00017         ETurboJpegSubsampling  subsampling;
00018         int                    quality;
00019         int                    premult;
00020 };
00021 
00022 /**
00023  * @brief TurboJpeg plugin
00024  */
00025 class TurboJpegWriterPlugin : public WriterPlugin
00026 {
00027 public:
00028         TurboJpegWriterPlugin( OfxImageEffectHandle handle );
00029 
00030 public:
00031         TurboJpegWriterProcessParams getProcessParams( const OfxTime time );
00032 
00033         void render( const OFX::RenderArguments &args );
00034         
00035 public:
00036         OFX::BooleanParam* _paramPremult;      ///< premult output by alpha
00037         OFX::IntParam*     _paramQuality;      ///< quality / compression for jpeg
00038         OFX::ChoiceParam*  _paramSubsampling;  ///< select the subsampling method (4:4:4, 4:2:2, 4:2:0; Gray, 4:4:0)
00039         OFX::ChoiceParam*  _paramOptimization;  ///< TurboJpeg SIMD optimization
00040 };
00041 
00042 }
00043 }
00044 }
00045 }
00046 
00047 #endif