00001 #ifndef _ofxImageEffect_h_
00002 #define _ofxImageEffect_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
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
00924
00926 #define kOfxImageEffectSuite "OfxImageEffectSuite"
00927
00932 typedef struct OfxImageEffectSuiteV1 {
00945 OfxStatus (*getPropertySet)(OfxImageEffectHandle imageEffect,
00946 OfxPropertySetHandle *propHandle);
00947
00960 OfxStatus (*getParamSet)(OfxImageEffectHandle imageEffect,
00961 OfxParamSetHandle *paramSet);
00962
00963
00978 OfxStatus (*clipDefine)(OfxImageEffectHandle imageEffect,
00979 const char *name,
00980 OfxPropertySetHandle *propertySet);
00981
01006 OfxStatus (*clipGetHandle)(OfxImageEffectHandle imageEffect,
01007 const char *name,
01008 OfxImageClipHandle *clip,
01009 OfxPropertySetHandle *propertySet);
01010
01023 OfxStatus (*clipGetPropertySet)(OfxImageClipHandle clip,
01024 OfxPropertySetHandle *propHandle);
01025
01055 OfxStatus (*clipGetImage)(OfxImageClipHandle clip,
01056 OfxTime time,
01057 OfxRectD *region,
01058 OfxPropertySetHandle *imageHandle);
01059
01073 OfxStatus (*clipReleaseImage)(OfxPropertySetHandle imageHandle);
01074
01075
01103 OfxStatus (*clipGetRegionOfDefinition)(OfxImageClipHandle clip,
01104 OfxTime time,
01105 OfxRectD *bounds);
01106
01120 int (*abort)(OfxImageEffectHandle imageEffect);
01121
01138 OfxStatus (*imageMemoryAlloc)(OfxImageEffectHandle instanceHandle,
01139 size_t nBytes,
01140 OfxImageMemoryHandle *memoryHandle);
01141
01156 OfxStatus (*imageMemoryFree)(OfxImageMemoryHandle memoryHandle);
01157
01178 OfxStatus (*imageMemoryLock)(OfxImageMemoryHandle memoryHandle,
01179 void **returnedPtr);
01180
01199 OfxStatus (*imageMemoryUnlock)(OfxImageMemoryHandle memoryHandle);
01200
01201 } OfxImageEffectSuiteV1;
01202
01203
01204
01218 #define kOfxStatErrImageFormat ((int) 1000)
01219
01220
01223 #ifdef __cplusplus
01224 }
01225 #endif
01226
01227
01228 #endif
01229