Main Page | Modules | Class List | File List | Class Members | File Members

ofxImageEffect.h

Go to the documentation of this file.
00001 #ifndef _ofxImageEffect_h_
00002 #define _ofxImageEffect_h_
00003 
00004 /*
00005 Software License :
00006 
00007 Copyright (c) 2003-2004, The Foundry Visionmongers Ltd. All rights reserved.
00008 
00009 Redistribution and use in source and binary forms, with or without
00010 modification, are permitted provided that the following conditions are met:
00011 
00012     * Redistributions of source code must retain the above copyright notice,
00013       this list of conditions and the following disclaimer.
00014     * Redistributions in binary form must reproduce the above copyright notice,
00015       this list of conditions and the following disclaimer in the documentation
00016       and/or other materials provided with the distribution.
00017     * Neither the name The Foundry Visionmongers Ltd, nor the names of its 
00018       contributors may be used to endorse or promote products derived from this
00019       software without specific prior written permission.
00020 
00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00024 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
00025 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00026 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00027 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
00028 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00029 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00030 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031 */
00032 
00033 #include "ofxCore.h"
00034 #include "ofxParam.h"
00035 #include "ofxInteract.h"
00036 #include "ofxMessage.h"
00037 #include "ofxMemory.h"
00038 #include "ofxMultiThread.h"
00039 #include "ofxInteract.h"
00040 
00041 
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045 
00051 #define kOfxImageEffectPluginApi "OfxImageEffectPluginAPI"
00052 
00055 #define kOfxImageEffectPluginApiVersion 1
00056 
00059 typedef struct OfxImageEffectStruct *OfxImageEffectHandle;
00060 
00063 typedef struct OfxImageClipStruct *OfxImageClipHandle;
00064 
00066 typedef struct OfxImageMemoryStruct *OfxImageMemoryHandle;
00067 
00069 #define kOfxImageComponentNone "OfxImageComponentNone"
00070 
00072 #define kOfxImageComponentRGBA "OfxImageComponentRGBA"
00073 
00075 #define kOfxImageComponentAlpha "OfxImageComponentAlpha"
00076 
00078 #define kOfxImageComponentYUVA "OfxImageComponentYUVA"
00079 
00082 #define kOfxImageEffectContextGenerator "OfxImageEffectContextGenerator"
00083 
00085 #define kOfxImageEffectContextFilter "OfxImageEffectContextFilter"
00086 
00088 #define kOfxImageEffectContextTransition "OfxImageEffectContextTransition"
00089 
00091 #define kOfxImageEffectContextPaint "OfxImageEffectContextPaint"
00092 
00094 #define kOfxImageEffectContextGeneral "OfxImageEffectContextGeneral"
00095 
00097 #define kOfxImageEffectContextRetimer "OfxImageEffectContextRetimer"
00098 
00100 #define kOfxTypeImageEffectHost "OfxTypeImageEffectHost"
00101 
00103 #define kOfxTypeImageEffect "OfxTypeImageEffect"
00104 
00106 #define kOfxTypeImageEffectInstance "OfxTypeImageEffectInstance"
00107 
00109 #define kOfxTypeClip "OfxTypeClip"
00110 
00112 #define kOfxTypeImage "OfxTypeImage"
00113 
00124 
00126 #define kOfxImageEffectActionGetRegionOfDefinition        "OfxImageEffectActionGetRegionOfDefinition"
00127 
00129 #define kOfxImageEffectActionGetRegionsOfInterest         "OfxImageEffectActionGetRegionsOfInterest"
00130 
00132 #define kOfxImageEffectActionGetTimeDomain                "OfxImageEffectActionGetTimeDomain"
00133 
00135 #define kOfxImageEffectActionGetFramesNeeded              "OfxImageEffectActionGetFramesNeeded"
00136 
00138 #define kOfxImageEffectActionGetClipPreferences       "OfxImageEffectActionGetClipPreferences"
00139 
00141 #define kOfxImageEffectActionIsIdentity            "OfxImageEffectActionIsIdentity"
00142 
00144 #define kOfxImageEffectActionRender                "OfxImageEffectActionRender"
00145 
00147 #define kOfxImageEffectActionBeginSequenceRender   "OfxImageEffectActionBeginSequenceRender"
00148 
00150 #define kOfxImageEffectActionEndSequenceRender      "OfxImageEffectActionEndSequenceRender"
00151 
00153 #define kOfxImageEffectActionDescribeInContext     "OfxImageEffectActionDescribeInContext"
00154 
00157 
00181 #define kOfxImageEffectPropSupportedContexts "OfxImageEffectPropSupportedContexts"
00182 
00190 #define kOfxImageEffectPropPluginHandle "OfxImageEffectPropPluginHandle"
00191 
00200 #define kOfxImageEffectHostPropIsBackground "OfxImageEffectHostPropIsBackground"
00201 
00213 #define kOfxImageEffectPluginPropSingleInstance "OfxImageEffectPluginPropSingleInstance"
00214 
00225 #define kOfxImageEffectPluginRenderThreadSafety "OfxImageEffectPluginRenderThreadSafety"
00226 
00228 #define kOfxImageEffectRenderUnsafe "OfxImageEffectRenderUnsafe"
00229 
00230 #define kOfxImageEffectRenderInstanceSafe "OfxImageEffectRenderInstanceSafe"
00231 
00232 #define kOfxImageEffectRenderFullySafe "OfxImageEffectRenderFullySafe"
00233 
00243 #define kOfxImageEffectPluginPropHostFrameThreading "OfxImageEffectPluginPropHostFrameThreading"
00244 
00257 #define kOfxImageEffectPropSupportsMultipleClipDepths "OfxImageEffectPropMultipleClipDepths"
00258 
00271 #define kOfxImageEffectPropSupportsMultipleClipPARs "OfxImageEffectPropSupportsMultipleClipPARs"
00272 
00273 
00285 #define kOfxImageEffectPropClipPreferencesSlaveParam "OfxImageEffectPropClipPreferencesSlaveParam"
00286 
00299 #define kOfxImageEffectPropSetableFrameRate "OfxImageEffectPropSetableFrameRate"
00300 
00311 #define kOfxImageEffectPropSetableFielding "OfxImageEffectPropSetableFielding"
00312 
00328 #define kOfxImageEffectInstancePropSequentialRender "OfxImageEffectInstancePropSequentialRender"
00329 
00338 #define kOfxImageEffectPluginPropGrouping "OfxImageEffectPluginPropGrouping"
00339 
00348 #define kOfxImageEffectPropSupportsOverlays "OfxImageEffectPropSupportsOverlays"
00349 
00359 #define kOfxImageEffectPluginPropOverlayInteractV1 "OfxImageEffectPluginPropOverlayInteractV1"
00360 
00374 #define kOfxImageEffectPropSupportsMultiResolution "OfxImageEffectPropSupportsMultiResolution"
00375 
00387 #define kOfxImageEffectPropSupportsTiles "OfxImageEffectPropSupportsTiles"
00388 
00398 #define kOfxImageEffectPropInAnalysis "OfxImageEffectPropInAnalysis"
00399 
00413 #define kOfxImageEffectPropTemporalClipAccess "OfxImageEffectPropTemporalClipAccess"
00414 
00428 #define kOfxImageEffectPropContext "OfxImageEffectPropContext"
00429 
00442 #define kOfxImageEffectPropPixelDepth "OfxImageEffectPropPixelDepth"
00443 
00455 #define kOfxImageEffectPropComponents "OfxImageEffectPropComponents"
00456 
00467 #define kOfxImagePropUniqueIdentifier "OfxImagePropUniqueIdentifier"
00468 
00481 #define kOfxImageClipPropContinuousSamples "OfxImageClipPropContinuousSamples"
00482 
00495 #define kOfxImageClipPropUnmappedPixelDepth "OfxImageClipPropUnmappedPixelDepth"
00496 
00506 #define kOfxImageClipPropUnmappedComponents "OfxImageClipPropUnmappedComponents"
00507 
00519 #define kOfxImageEffectPropPreMultiplication "OfxImageEffectPropPreMultiplication"
00520 
00522 #define kOfxImageOpaque  "OfxImageOpaque"
00523 
00525 #define kOfxImagePreMultiplied "OfxImageAlphaPremultiplied"
00526 
00528 #define kOfxImageUnPreMultiplied "OfxImageAlphaUnPremultiplied"
00529 
00530 
00544 #define kOfxImageEffectPropSupportedPixelDepths "OfxImageEffectPropSupportedPixelDepths"
00545 
00559 #define kOfxImageEffectPropSupportedComponents "OfxImageEffectPropSupportedComponents"
00560 
00569 #define kOfxImageClipPropOptional "OfxImageClipPropOptional"
00570 
00582 #define kOfxImageClipPropIsMask "OfxImageClipPropIsMask"
00583 
00584 
00591 #define kOfxImagePropPixelAspectRatio "OfxImagePropPixelAspectRatio"
00592 
00606 #define kOfxImageEffectPropFrameRate "OfxImageEffectPropFrameRate"
00607 
00615 #define kOfxImageEffectPropUnmappedFrameRate "OfxImageEffectPropUnmappedFrameRate"
00616 
00625 #define kOfxImageEffectPropFrameStep "OfxImageEffectPropFrameStep"
00626 
00636 #define kOfxImageEffectPropFrameRange "OfxImageEffectPropFrameRange"
00637 
00638 
00651 #define kOfxImageEffectPropUnmappedFrameRange "OfxImageEffectPropUnmappedFrameRange"
00652 
00663 #define kOfxImageClipPropConnected "OfxImageClipPropConnected"
00664 
00675 #define kOfxImageEffectFrameVarying "OfxImageEffectFrameVarying"
00676 
00690 #define kOfxImageEffectPropRenderScale "OfxImageEffectPropRenderScale"
00691 
00703 #define kOfxImageEffectPropProjectExtent "OfxImageEffectPropProjectExtent"
00704 
00716 #define kOfxImageEffectPropProjectSize "OfxImageEffectPropProjectSize"
00717 
00731 #define kOfxImageEffectPropProjectOffset "OfxImageEffectPropProjectOffset"
00732 
00739 #define kOfxImageEffectPropProjectPixelAspectRatio "OfxImageEffectPropPixelAspectRatio"
00740 
00748 #define kOfxImageEffectInstancePropEffectDuration "OfxImageEffectInstancePropEffectDuration"
00749 
00759 #define kOfxImageClipPropFieldOrder "OfxImageClipPropFieldOrder"
00760 
00768 #define kOfxImagePropData "OfxImagePropData"
00769 
00784 #define kOfxImagePropBounds "OfxImagePropBounds"
00785 
00800 #define kOfxImagePropRegionOfDefinition "OfxImagePropRegionOfDefinition"
00801 
00814 #define kOfxImagePropRowBytes "OfxImagePropRowBytes"
00815 
00816 
00828 #define kOfxImagePropField "OfxImagePropField"
00829 
00839 #define kOfxImageEffectPluginPropFieldRenderTwiceAlways "OfxImageEffectPluginPropFieldRenderTwiceAlways"
00840 
00855 #define kOfxImageClipPropFieldExtraction "OfxImageClipPropFieldExtraction"
00856 
00867 #define kOfxImageEffectPropFieldToRender "OfxImageEffectPropFieldToRender"
00868 
00879 #define kOfxImageEffectPropRegionOfDefinition "OfxImageEffectPropRegionOfDefinition"
00880 
00892 #define kOfxImageEffectPropRegionOfInterest "OfxImageEffectPropRegionOfInterest"
00893 
00904 #define kOfxImageEffectPropRenderWindow "OfxImageEffectPropRenderWindow"
00905 
00906 
00908 #define kOfxImageFieldNone "OfxFieldNone"
00909 
00910 #define kOfxImageFieldLower "OfxFieldLower"
00911 
00912 #define kOfxImageFieldUpper "OfxFieldUpper"
00913 
00914 #define kOfxImageFieldBoth "OfxFieldBoth"
00915 
00916 #define kOfxImageFieldSingle "OfxFieldSingle"
00917 
00919 #define kOfxImageFieldDoubled "OfxFieldDoubled"
00920 
00923 
00925 #define kOfxImageEffectOutputClipName "Output"
00926 
00928 #define kOfxImageEffectSimpleSourceClipName "Source"
00929 
00931 #define kOfxImageEffectTransitionSourceFromClipName "SourceFrom"
00932 
00934 #define kOfxImageEffectTransitionSourceToClipName "SourceTo"
00935 
00937 #define kOfxImageEffectRetimerParamName "SourceTime"
00938 
00939 
00940 
00941 
00943 #define kOfxImageEffectSuite "OfxImageEffectSuite"
00944 
00949 typedef struct OfxImageEffectSuiteV1 {  
00962   OfxStatus (*getPropertySet)(OfxImageEffectHandle imageEffect,
00963                               OfxPropertySetHandle *propHandle);
00964 
00977   OfxStatus (*getParamSet)(OfxImageEffectHandle imageEffect,
00978                            OfxParamSetHandle *paramSet);
00979 
00980 
00995   OfxStatus (*clipDefine)(OfxImageEffectHandle imageEffect,
00996                           const char *name,      
00997                           OfxPropertySetHandle *propertySet);
00998 
01023   OfxStatus (*clipGetHandle)(OfxImageEffectHandle imageEffect,
01024                              const char *name,
01025                              OfxImageClipHandle *clip,
01026                              OfxPropertySetHandle *propertySet);
01027 
01040   OfxStatus (*clipGetPropertySet)(OfxImageClipHandle clip,
01041                                   OfxPropertySetHandle *propHandle);
01042 
01072   OfxStatus (*clipGetImage)(OfxImageClipHandle clip,
01073                             OfxTime       time,
01074                             OfxRectD     *region,
01075                             OfxPropertySetHandle   *imageHandle);
01076   
01090   OfxStatus (*clipReleaseImage)(OfxPropertySetHandle imageHandle);
01091   
01092 
01120   OfxStatus (*clipGetRegionOfDefinition)(OfxImageClipHandle clip,
01121                                          OfxTime time,
01122                                          OfxRectD *bounds);
01123 
01137   int (*abort)(OfxImageEffectHandle imageEffect);
01138 
01155   OfxStatus (*imageMemoryAlloc)(OfxImageEffectHandle instanceHandle, 
01156                                 size_t nBytes,
01157                                 OfxImageMemoryHandle *memoryHandle);
01158         
01173   OfxStatus (*imageMemoryFree)(OfxImageMemoryHandle memoryHandle);
01174 
01195   OfxStatus (*imageMemoryLock)(OfxImageMemoryHandle memoryHandle,
01196                                void **returnedPtr);
01197 
01216   OfxStatus (*imageMemoryUnlock)(OfxImageMemoryHandle memoryHandle);
01217 
01218 } OfxImageEffectSuiteV1;
01219 
01220 
01221 
01235 #define kOfxStatErrImageFormat ((int) 1000)
01236 
01237 
01240 
01241 #ifdef __cplusplus
01242 }
01243 #endif
01244 
01245 
01246 #endif
01247 

Copyright 2003-2004 The Foundry Visonmongers Ltd. All rights reserved.
Copying and redistribution with or without modification, is permitted provided that the following conditions are met:
  1. Redistributions of the document must retain the above copyright notice and this list of conditions.
  2. Neither the name of The Foundry Visonmongers Ltd nor names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
Automatic documentation generated by DOxygen.