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
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