00001 
00005 cpp_quote("//=---------------------------------------------------------------------=")
00006 cpp_quote("
00007 cpp_quote("
00008 cpp_quote("
00009 cpp_quote("
00010 cpp_quote("
00011 cpp_quote("
00012 cpp_quote("
00013 cpp_quote("
00014 cpp_quote("
00015 cpp_quote("
00016 cpp_quote("
00017 cpp_quote("
00018 cpp_quote("
00019 cpp_quote("
00020 cpp_quote("
00021 cpp_quote("
00022 cpp_quote("
00023 cpp_quote("
00024 cpp_quote("
00025 cpp_quote("
00026 cpp_quote("
00027 cpp_quote("
00028 cpp_quote("
00029 cpp_quote("
00030 cpp_quote("
00031 cpp_quote("
00032 cpp_quote("
00033 cpp_quote("
00034 cpp_quote("
00035 cpp_quote("
00036 cpp_quote("
00037 cpp_quote("
00038 cpp_quote("
00039 
00040 cpp_quote("
00041 cpp_quote("
00042 cpp_quote("
00043 cpp_quote("
00044 
00045 #ifndef DO_NO_IMPORTS
00046 import "unknwn.idl";
00047 #endif
00048 
00049 #ifndef DO_NO_IMPORTS
00050 import "objidl.idl";
00051 #endif
00052 
00053 #ifndef DO_NO_IMPORTS
00054 import "AAF.idl";
00055 #endif
00056 
00057 #ifndef DO_NO_IMPORTS
00058 import "AAFPluginTypes.idl";
00059 #endif
00060 
00061 interface IAAFClassExtension;
00062 interface IAAFEssenceCodec;
00063 interface IAAFEssenceCodec2;
00064 interface IAAFEssenceCodec3;
00065 interface IAAFEssenceContainer;
00066 interface IAAFEssenceDataStream;
00067 interface IAAFEssenceDataStream2;
00068 interface IAAFEssenceStream;
00069 interface IAAFInterpolator;
00070 interface IAAFMultiEssenceCodec;
00071 interface IAAFPlugin;
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00091 [
00092     object,
00093     uuid(65C07344-DF36-11d3-8008-00104bc9156d),
00094     helpstring("IAAFClassExtension Interface"),
00095     pointer_default(unique)
00096 ]
00097 interface IAAFClassExtension : IUnknown
00098 {
00099 
00100 
00101   
00102   
00103   
00104   
00124   HRESULT RegisterDefinitions (
00125     [in] IAAFDictionary * pDictionary);
00126 
00127 }
00128 
00129 
00130 
00131 
00132 
00133 
00134 
00135 
00136 
00137 
00138 
00162 
00163 
00167 [
00168     object,
00169     uuid(3631F7A2-9121-11d2-8088-006008143e6f),
00170     helpstring("IAAFEssenceCodec Interface"),
00171     pointer_default(unique)
00172 ]
00173 interface IAAFEssenceCodec : IUnknown
00174 {
00175 
00181 
00182 
00183   
00184   
00185   
00186   
00210   HRESULT SetEssenceAccess (
00211     [in] IAAFEssenceAccess * pEssenceAccess);
00212 
00213 
00214 
00215   
00216   
00217   
00218   
00236   HRESULT CountFlavours (
00237     [out] aafUInt32*  pCount);
00238 
00239 
00240   
00241   
00242   
00243   
00266   HRESULT GetIndexedFlavourID (
00267     [in] aafUInt32  index,
00268     [out] aafUID_t *  pVariant);
00269 
00270 
00271   
00272   
00273   
00274   
00292   HRESULT CountDataDefinitions (
00293     [out] aafUInt32*  pCount);
00294 
00295 
00296   
00297   
00298   
00299   
00319   HRESULT GetIndexedDataDefinition (
00320     [in] aafUInt32  index,
00321     [out] aafUID_t *  pDataDefID);
00322 
00323 
00324   
00325   
00326   
00327   
00345   HRESULT GetMaxCodecDisplayNameLength (
00346     [out] aafUInt32*  pBufSize);
00347 
00348 
00349   
00350   
00351   
00352   
00369   HRESULT GetCodecDisplayName (
00370     [in, ref] aafUID_constref  flavour,
00371     [out, string, size_is(bufSize)] aafCharacter *  pName,
00372     [in] aafUInt32  bufSize);
00373 
00374         
00383 
00384 
00385   
00386   
00387   
00388   
00418   HRESULT CountChannels (
00419     [in] IAAFSourceMob * fileMob,
00420     [in, ref] aafUID_constref  essenceKind,
00421     [in] IAAFEssenceStream * stream,
00422     [out] aafUInt16 *  pNumChannels);
00423 
00424 
00425   
00426   
00427   
00428   
00456   HRESULT GetSelectInfo (
00457     [in] IAAFSourceMob * fileMob,
00458     [in] IAAFEssenceStream * stream,
00459     [out] aafSelectInfo_t *  pSelectInfo);
00460 
00461 
00462   
00463   
00464   
00465   
00496   HRESULT ValidateEssence (
00497     [in] IAAFSourceMob * fileMob,
00498     [in] IAAFEssenceStream * stream,
00499     [in] aafCheckVerbose_t  verbose,
00500     [in] aafCheckWarnings_t  outputWarnings,
00501     [in] aafUInt32  bufSize,
00502     [out, size_is(bufSize), length_is(*pBytesRead)] aafCharacter *  pErrorText,
00503     [out] aafUInt32*  pBytesRead);
00504 
00505 
00506   
00507   
00508   
00509   
00537   HRESULT Create (
00538     [in] IAAFSourceMob * fileMob,
00539     [in, ref] aafUID_constref  flavour,
00540     [in, ref] aafUID_constref  essenceKind,
00541     [in, ref] aafRational_constref  sampleRate,
00542     [in] IAAFEssenceStream * stream,
00543     [in] aafCompressEnable_t  compEnable);
00544 
00545 
00546   
00547   
00548   
00549   
00573   HRESULT Open (
00574     [in] IAAFSourceMob * fileMob,
00575     [in] aafMediaOpenMode_t  openMode,
00576     [in] IAAFEssenceStream * stream,
00577     [in] aafCompressEnable_t  compEnable);
00578         
00579 
00585 
00586 
00587   
00588   
00589   
00590   
00608   HRESULT CountSamples (
00609     [in, ref] aafUID_constref  essenceKind,
00610     [out] aafLength_t *  pNumSamples);
00611 
00612 
00613   
00614   
00615   
00616   
00649   HRESULT WriteSamples (
00650     [in] aafUInt32  nSamples,
00651     [in] aafUInt32  buflen,
00652     [in,size_is(buflen)] aafDataBuffer_t  buffer,
00653     [out, ref] aafUInt32 *  samplesWritten,
00654     [out, ref] aafUInt32 *  bytesWritten);
00655 
00656 
00657   
00658   
00659   
00660   
00691   HRESULT ReadSamples (
00692     [in] aafUInt32  nSamples,
00693     [in] aafUInt32  buflen,
00694     [out, size_is(buflen),length_is(*bytesRead)] aafDataBuffer_t  buffer,
00695     [out, ref] aafUInt32 *  samplesRead,
00696     [out, ref] aafUInt32 *  bytesRead);
00697 
00698 
00699   
00700   
00701   
00702   
00719   HRESULT Seek (
00720     [in] aafPosition_t  sampleFrame);
00721 
00722 
00723   
00724   
00725   
00726   
00754   HRESULT CompleteWrite (
00755     [in] IAAFSourceMob * pFileMob);
00756 
00757 
00762         
00763 
00764   
00765   
00766   
00767   
00784   HRESULT CreateDescriptorFromStream (
00785     [in] IAAFEssenceStream * pStream,
00786     [in] IAAFSourceMob * pSourceMob);
00787 
00788 
00789   
00790   
00791   
00792   
00807   HRESULT GetCurrentEssenceStream (
00808     [out] IAAFEssenceStream ** ppStream);
00809 
00810         
00811   
00812   
00813   
00814   
00845   HRESULT PutEssenceFormat (
00846     [in] IAAFEssenceFormat * pFormat);
00847 
00848 
00849   
00850   
00851   
00852   
00885   HRESULT GetEssenceFormat (
00886     [in] IAAFEssenceFormat * pFormatTemplate,
00887     [out] IAAFEssenceFormat ** ppNewFormat);
00888 
00889                 
00890   
00891   
00892   
00893   
00916   HRESULT GetDefaultEssenceFormat (
00917     [out] IAAFEssenceFormat ** ppNewFormat);
00918 
00919 
00920   
00921   
00922   
00923   
00939   HRESULT GetEssenceDescriptorID (
00940     [out] aafUID_t *  pDescriptorID);
00941 
00942 
00943   
00944   
00945   
00946   
00962   HRESULT GetEssenceDataID (
00963     [out] aafUID_t *  pEssenceDataID);
00964 
00965 
00966   
00967   
00968   
00969   
00989   HRESULT GetIndexedSampleSize (
00990     [in, ref] aafUID_constref  essenceDefID,
00991     [in] aafPosition_t  sampleOffset,
00992     [out] aafLength_t *  pLength);
00993 
00994 
00995   
00996   
00997   
00998   
01017   HRESULT GetLargestSampleSize (
01018     [in, ref] aafUID_constref  essenceDefID,
01019     [out] aafLength_t *  pLength);
01020 
01021 
01022 
01023 
01024 
01025 
01026 
01027 }
01028 
01029 
01030 
01031 
01032 
01033 
01034 
01035 
01036 
01037 
01065 [
01066     object,
01067     uuid(8888F7A2-9121-11d2-8088-006008143e6f),
01068     helpstring("IAAFEssenceCodec2 Interface"),
01069     pointer_default(unique)
01070 ]
01071 interface IAAFEssenceCodec2 : IUnknown
01072 {
01073 
01074 
01075 
01076 
01077 
01078   
01079   
01080   
01081   
01105   HRESULT SetEssenceAccess (
01106     [in] IAAFEssenceAccess * pEssenceAccess);
01107 
01108 
01109 
01110   
01111   
01112   
01113   
01131   HRESULT CountFlavours (
01132     [out] aafUInt32*  pCount);
01133 
01134 
01135   
01136   
01137   
01138   
01161   HRESULT GetIndexedFlavourID (
01162     [in] aafUInt32  index,
01163     [out] aafUID_t *  pVariant);
01164 
01165 
01166   
01167   
01168   
01169   
01187   HRESULT CountDataDefinitions (
01188     [out] aafUInt32*  pCount);
01189 
01190 
01191   
01192   
01193   
01194   
01214   HRESULT GetIndexedDataDefinition (
01215     [in] aafUInt32  index,
01216     [out] aafUID_t *  pDataDefID);
01217 
01218 
01219   
01220   
01221   
01222   
01240   HRESULT GetMaxCodecDisplayNameLength (
01241     [out] aafUInt32*  pBufSize);
01242 
01243 
01244   
01245   
01246   
01247   
01264   HRESULT GetCodecDisplayName (
01265     [in, ref] aafUID_constref  flavour,
01266     [out, string, size_is(bufSize)] aafCharacter *  pName,
01267     [in] aafUInt32  bufSize);
01268 
01269         
01278 
01279 
01280   
01281   
01282   
01283   
01313   HRESULT CountChannels (
01314     [in] IAAFSourceMob * fileMob,
01315     [in, ref] aafUID_constref  essenceKind,
01316     [in] IAAFEssenceStream * stream,
01317     [out] aafUInt16 *  pNumChannels);
01318 
01319 
01320   
01321   
01322   
01323   
01351   HRESULT GetSelectInfo (
01352     [in] IAAFSourceMob * fileMob,
01353     [in] IAAFEssenceStream * stream,
01354     [out] aafSelectInfo_t *  pSelectInfo);
01355 
01356 
01357   
01358   
01359   
01360   
01391   HRESULT ValidateEssence (
01392     [in] IAAFSourceMob * fileMob,
01393     [in] IAAFEssenceStream * stream,
01394     [in] aafCheckVerbose_t  verbose,
01395     [in] aafCheckWarnings_t  outputWarnings,
01396     [in] aafUInt32  bufSize,
01397     [out, size_is(bufSize), length_is(*pBytesRead)] aafCharacter *  pErrorText,
01398     [out] aafUInt32*  pBytesRead);
01399 
01400 
01401   
01402   
01403   
01404   
01432   HRESULT Create (
01433     [in] IAAFSourceMob * fileMob,
01434     [in, ref] aafUID_constref  flavour,
01435     [in, ref] aafUID_constref  essenceKind,
01436     [in, ref] aafRational_constref  sampleRate,
01437     [in] IAAFEssenceStream * stream,
01438     [in] aafCompressEnable_t  compEnable);
01439 
01440 
01441   
01442   
01443   
01444   
01468   HRESULT Open (
01469     [in] IAAFSourceMob * fileMob,
01470     [in] aafMediaOpenMode_t  openMode,
01471     [in] IAAFEssenceStream * stream,
01472     [in] aafCompressEnable_t  compEnable);
01473         
01474 
01480 
01481 
01482   
01483   
01484   
01485   
01503   HRESULT CountSamples (
01504     [in, ref] aafUID_constref  essenceKind,
01505     [out] aafLength_t *  pNumSamples);
01506 
01507 
01508   
01509   
01510   
01511   
01544   HRESULT WriteSamples (
01545     [in] aafUInt32  nSamples,
01546     [in] aafUInt32  buflen,
01547     [in,size_is(buflen)] aafDataBuffer_t  buffer,
01548     [out, ref] aafUInt32 *  samplesWritten,
01549     [out, ref] aafUInt32 *  bytesWritten);
01550 
01551 
01552   
01553   
01554   
01555   
01586   HRESULT ReadSamples (
01587     [in] aafUInt32  nSamples,
01588     [in] aafUInt32  buflen,
01589     [out, size_is(buflen),length_is(*bytesRead)] aafDataBuffer_t  buffer,
01590     [out, ref] aafUInt32 *  samplesRead,
01591     [out, ref] aafUInt32 *  bytesRead);
01592 
01593 
01594   
01595   
01596   
01597   
01614   HRESULT Seek (
01615     [in] aafPosition_t  sampleFrame);
01616 
01617 
01618   
01619   
01620   
01621   
01649   HRESULT CompleteWrite (
01650     [in] IAAFSourceMob * pFileMob);
01651 
01652 
01657         
01658 
01659   
01660   
01661   
01662   
01679   HRESULT CreateDescriptorFromStream (
01680     [in] IAAFEssenceStream * pStream,
01681     [in] IAAFSourceMob * pSourceMob);
01682 
01683 
01684   
01685   
01686   
01687   
01702   HRESULT GetCurrentEssenceStream (
01703     [out] IAAFEssenceStream ** ppStream);
01704 
01705         
01706   
01707   
01708   
01709   
01740   HRESULT PutEssenceFormat (
01741     [in] IAAFEssenceFormat * pFormat);
01742 
01743 
01744   
01745   
01746   
01747   
01780   HRESULT GetEssenceFormat (
01781     [in] IAAFEssenceFormat * pFormatTemplate,
01782     [out] IAAFEssenceFormat ** ppNewFormat);
01783 
01784                 
01785   
01786   
01787   
01788   
01811   HRESULT GetDefaultEssenceFormat (
01812     [out] IAAFEssenceFormat ** ppNewFormat);
01813 
01814 
01815   
01816   
01817   
01818   
01834   HRESULT GetEssenceDescriptorID (
01835     [out] aafUID_t *  pDescriptorID);
01836 
01837 
01838   
01839   
01840   
01841   
01857   HRESULT GetEssenceDataID (
01858     [out] aafUID_t *  pEssenceDataID);
01859 
01860 
01861   
01862   
01863   
01864   
01884   HRESULT GetIndexedSampleSize (
01885     [in, ref] aafUID_constref  essenceDefID,
01886     [in] aafPosition_t  sampleOffset,
01887     [out] aafLength_t *  pLength);
01888 
01889 
01890   
01891   
01892   
01893   
01912   HRESULT GetLargestSampleSize (
01913     [in, ref] aafUID_constref  essenceDefID,
01914     [out] aafLength_t *  pLength);
01915 
01916 
01917   
01918   
01919   
01920   
01938   HRESULT SetFlavour (
01939     [in, ref] aafUID_constref  flavour);
01940 
01941 }
01942 
01943 
01944 
01945 
01946 
01947 
01948 
01949 
01950 
01951 
01952 
01980 [
01981     object,
01982     uuid(F375A58F-EB6A-49C7-90A2-7937329AE0E4),
01983     helpstring("IAAFEssenceCodec3 Interface"),
01984     pointer_default(unique)
01985 ]
01986 interface IAAFEssenceCodec3 : IUnknown
01987 {
01988 
01989 
01990 
01991 
01992 
01993   
01994   
01995   
01996   
02020   HRESULT SetEssenceAccess (
02021     [in] IAAFEssenceAccess * pEssenceAccess);
02022 
02023 
02024 
02025   
02026   
02027   
02028   
02046   HRESULT CountFlavours (
02047     [out] aafUInt32*  pCount);
02048 
02049 
02050   
02051   
02052   
02053   
02076   HRESULT GetIndexedFlavourID (
02077     [in] aafUInt32  index,
02078     [out] aafUID_t *  pVariant);
02079 
02080 
02081   
02082   
02083   
02084   
02102   HRESULT CountDataDefinitions (
02103     [out] aafUInt32*  pCount);
02104 
02105 
02106   
02107   
02108   
02109   
02129   HRESULT GetIndexedDataDefinition (
02130     [in] aafUInt32  index,
02131     [out] aafUID_t *  pDataDefID);
02132 
02133 
02134   
02135   
02136   
02137   
02155   HRESULT GetMaxCodecDisplayNameLength (
02156     [out] aafUInt32*  pBufSize);
02157 
02158 
02159   
02160   
02161   
02162   
02179   HRESULT GetCodecDisplayName (
02180     [in, ref] aafUID_constref  flavour,
02181     [out, string, size_is(bufSize)] aafCharacter *  pName,
02182     [in] aafUInt32  bufSize);
02183 
02184         
02193 
02194 
02195   
02196   
02197   
02198   
02228   HRESULT CountChannels (
02229     [in] IAAFSourceMob * fileMob,
02230     [in, ref] aafUID_constref  essenceKind,
02231     [in] IAAFEssenceStream * stream,
02232     [out] aafUInt16 *  pNumChannels);
02233 
02234 
02235   
02236   
02237   
02238   
02266   HRESULT GetSelectInfo (
02267     [in] IAAFSourceMob * fileMob,
02268     [in] IAAFEssenceStream * stream,
02269     [out] aafSelectInfo_t *  pSelectInfo);
02270 
02271 
02272   
02273   
02274   
02275   
02306   HRESULT ValidateEssence (
02307     [in] IAAFSourceMob * fileMob,
02308     [in] IAAFEssenceStream * stream,
02309     [in] aafCheckVerbose_t  verbose,
02310     [in] aafCheckWarnings_t  outputWarnings,
02311     [in] aafUInt32  bufSize,
02312     [out, size_is(bufSize), length_is(*pBytesRead)] aafCharacter *  pErrorText,
02313     [out] aafUInt32*  pBytesRead);
02314 
02315 
02316   
02317   
02318   
02319   
02347   HRESULT Create (
02348     [in] IAAFSourceMob * fileMob,
02349     [in, ref] aafUID_constref  flavour,
02350     [in, ref] aafUID_constref  essenceKind,
02351     [in, ref] aafRational_constref  sampleRate,
02352     [in] IAAFEssenceStream * stream,
02353     [in] aafCompressEnable_t  compEnable);
02354 
02355 
02356   
02357   
02358   
02359   
02383   HRESULT Open (
02384     [in] IAAFSourceMob * fileMob,
02385     [in] aafMediaOpenMode_t  openMode,
02386     [in] IAAFEssenceStream * stream,
02387     [in] aafCompressEnable_t  compEnable);
02388         
02389 
02395 
02396 
02397   
02398   
02399   
02400   
02418   HRESULT CountSamples (
02419     [in, ref] aafUID_constref  essenceKind,
02420     [out] aafLength_t *  pNumSamples);
02421 
02422 
02423   
02424   
02425   
02426   
02459   HRESULT WriteSamples (
02460     [in] aafUInt32  nSamples,
02461     [in] aafUInt32  buflen,
02462     [in,size_is(buflen)] aafDataBuffer_t  buffer,
02463     [out, ref] aafUInt32 *  samplesWritten,
02464     [out, ref] aafUInt32 *  bytesWritten);
02465 
02466 
02467   
02468   
02469   
02470   
02501   HRESULT ReadSamples (
02502     [in] aafUInt32  nSamples,
02503     [in] aafUInt32  buflen,
02504     [out, size_is(buflen),length_is(*bytesRead)] aafDataBuffer_t  buffer,
02505     [out, ref] aafUInt32 *  samplesRead,
02506     [out, ref] aafUInt32 *  bytesRead);
02507 
02508 
02509   
02510   
02511   
02512   
02529   HRESULT Seek (
02530     [in] aafPosition_t  sampleFrame);
02531 
02532 
02533   
02534   
02535   
02536   
02564   HRESULT CompleteWrite (
02565     [in] IAAFSourceMob * pFileMob);
02566 
02567 
02572         
02573 
02574   
02575   
02576   
02577   
02594   HRESULT CreateDescriptorFromStream (
02595     [in] IAAFEssenceStream * pStream,
02596     [in] IAAFSourceMob * pSourceMob);
02597 
02598 
02599   
02600   
02601   
02602   
02617   HRESULT GetCurrentEssenceStream (
02618     [out] IAAFEssenceStream ** ppStream);
02619 
02620         
02621   
02622   
02623   
02624   
02655   HRESULT PutEssenceFormat (
02656     [in] IAAFEssenceFormat * pFormat);
02657 
02658 
02659   
02660   
02661   
02662   
02695   HRESULT GetEssenceFormat (
02696     [in] IAAFEssenceFormat * pFormatTemplate,
02697     [out] IAAFEssenceFormat ** ppNewFormat);
02698 
02699                 
02700   
02701   
02702   
02703   
02726   HRESULT GetDefaultEssenceFormat (
02727     [out] IAAFEssenceFormat ** ppNewFormat);
02728 
02729 
02730   
02731   
02732   
02733   
02749   HRESULT GetEssenceDescriptorID (
02750     [out] aafUID_t *  pDescriptorID);
02751 
02752 
02753   
02754   
02755   
02756   
02772   HRESULT GetEssenceDataID (
02773     [out] aafUID_t *  pEssenceDataID);
02774 
02775 
02776   
02777   
02778   
02779   
02799   HRESULT GetIndexedSampleSize (
02800     [in, ref] aafUID_constref  essenceDefID,
02801     [in] aafPosition_t  sampleOffset,
02802     [out] aafLength_t *  pLength);
02803 
02804 
02805   
02806   
02807   
02808   
02827   HRESULT GetLargestSampleSize (
02828     [in, ref] aafUID_constref  essenceDefID,
02829     [out] aafLength_t *  pLength);
02830 
02831 
02832   
02833   
02834   
02835   
02853   HRESULT SetFlavour (
02854     [in, ref] aafUID_constref  flavour);
02855 
02856 
02857   
02858   
02859   
02860   
02882   HRESULT IsCompressionSupported (
02883     [in] aafUID_constref  compression,
02884     [out,retval] aafBoolean_t*  pIsSupported);
02885 
02886 }
02887 
02888 
02889 
02890 
02891 
02892 
02893 
02894 
02907 
02908 [
02909     object,
02910     uuid(a7337031-c103-11d2-808a-006008143e6f),
02911     helpstring("IAAFEssenceContainer Interface"),
02912     pointer_default(unique)
02913 ]
02914 interface IAAFEssenceContainer : IUnknown
02915 {
02916 
02917   
02918   
02919   
02920   
02942   HRESULT CreateEssenceStream (
02943     [in, string] aafCharacter_constptr  pName,
02944     [in] aafMobID_constptr  pMobID,
02945     [out, retval] IAAFEssenceStream ** ppEssenceStream);
02946 
02947 
02948   
02949   
02950   
02951   
02973   HRESULT CreateEssenceStreamWriteOnly (
02974     [in, string] aafCharacter_constptr  pPath,
02975     [in] aafMobID_constptr  pMobID,
02976     [out, retval] IAAFEssenceStream ** ppEssenceStream);
02977 
02978 
02979   
02980   
02981   
02982   
03006   HRESULT OpenEssenceStreamReadOnly (
03007     [in, string] aafCharacter_constptr  pFilePath,
03008     [in] aafMobID_constptr  pMobID,
03009     [out, retval] IAAFEssenceStream ** ppEssenceStream);
03010 
03011 
03012   
03013   
03014   
03015   
03039   HRESULT OpenEssenceStreamAppend (
03040     [in, string] aafCharacter_constptr  pFilePath,
03041     [in] aafMobID_constptr  pMobID,
03042     [out, retval] IAAFEssenceStream ** ppEssenceStream);
03043 }
03044 
03045 
03046 
03047 
03048 
03049 
03050 
03051 
03052 
03076 [
03077     object,
03078     uuid(CDDB6AB1-98DC-11d2-808a-006008143e6f),
03079     helpstring("IAAFEssenceDataStream Interface"),
03080     pointer_default(unique)
03081 ]
03082 interface IAAFEssenceDataStream : IUnknown
03083 {
03084 
03085 
03086   
03087   
03088   
03089   
03094   HRESULT Init (
03095     [in] IUnknown * essenceData);
03096 
03097 }
03098 
03099 
03100 
03101 
03102 
03103 
03104 
03105 
03106 
03107 
03139 [
03140     object,
03141     uuid(F8C9C2A1-DD6B-4e10-884F-012AF43550BC),
03142     helpstring("IAAFEssenceDataStream2 Interface"),
03143     pointer_default(unique)
03144 ]
03145 
03146 interface IAAFEssenceDataStream2 : IUnknown
03147 {
03148 
03149 
03150   
03151   
03152   
03153   
03158   HRESULT Init (
03159     [in] IUnknown * essenceData);
03160 
03161   
03162   
03163   
03164   
03186   HRESULT GetEssenceData (
03187     [out,retval] IAAFEssenceData ** ppEssenceData);
03188 
03189   
03190   
03191   
03192   
03238   HRESULT SetEssenceElementKey (
03239     [in, ref] aafUID_constref  eek,
03240     [in] aafUInt8  eeKind,
03241     [in] aafUInt8  eeCount,
03242     [in] aafUInt8  eeType,
03243     [in] aafUInt8  eeIndex,
03244     [in] aafSlotID_t  sourceSlotID);
03245 
03246   
03247   
03248   
03249   
03277   HRESULT GetEssenceElementKey (
03278     [out] aafUID_t *  pEssenceElementKey);
03279 
03280 }
03281 
03282 
03283 
03284 
03285 
03286 
03287 
03288 
03289 
03290 
03310 
03311 
03312 [
03313     object,
03314     uuid(83402902-9146-11d2-8088-006008143e6f),
03315     helpstring("IAAFEssenceStream Interface"),
03316     pointer_default(unique)
03317 ]
03318 interface IAAFEssenceStream : IUnknown
03319 {
03320 
03321 
03322   
03323   
03324   
03325   
03346   HRESULT Write (
03347     [in] aafUInt32  bytes,
03348     [out, size_is(bytes)] aafDataBuffer_t  buffer,
03349     [out,ref] aafUInt32 *  bytesWritten);
03350 
03351 
03352   
03353   
03354   
03355   
03376   HRESULT Read (
03377     [in] aafUInt32  buflen,
03378     [out, size_is(buflen), length_is(*pBytesRead)] aafDataBuffer_t  pBuffer,
03379     [out,ref] aafUInt32 *  pBytesRead);
03380 
03381   
03382   
03383   
03384   
03389   HRESULT Seek (
03390     [in] aafPosition_t  byteOffset);
03401 
03402   
03403   
03404   
03405   
03420   HRESULT SeekRelative (
03421     [in] aafInt32  byteOffset);
03422 
03423   
03424   
03425   
03426   
03441   HRESULT GetPosition (
03442     [out] aafPosition_t *  pPosition);
03443 
03444   
03445   
03446   
03447   
03462   HRESULT GetLength (
03463     [out] aafLength_t *  pLength);
03464 
03471 
03472   
03473   
03474   
03475   
03490   HRESULT FlushCache ();
03491 
03492   
03493   
03494   
03495   
03508   HRESULT SetCacheSize (
03509     [in] aafUInt32  itsSize);
03510 
03511 }
03512 
03513 
03514 
03515 
03516 
03517 
03518 
03519 
03520 
03521 
03541 
03542 
03546 [
03547     object,
03548     uuid(75C6CDF2-0D67-11d3-80A9-006008143e6f),
03549     helpstring("IAAFInterpolator Interface"),
03550     pointer_default(unique)
03551 ]
03552 interface IAAFInterpolator : IUnknown
03553 {
03554 
03555 
03561 
03562   
03563   
03564   
03565   
03586   HRESULT GetNumTypesSupported (
03587     [out] aafUInt32*  pCount);
03588 
03589 
03590   
03591   
03592   
03593   
03620   HRESULT GetIndexedSupportedType (
03621     [in] aafUInt32  index,
03622     [out] IAAFTypeDef ** ppType);
03623 
03624   
03625   
03626   
03627   
03651   HRESULT GetTypeDefinition (
03652     [out] IAAFTypeDef ** ppTypeDef);
03653 
03654 
03655   
03656   
03657   
03658   
03676   HRESULT SetTypeDefinition (
03677     [in] IAAFTypeDef * pTypeDef);
03678 
03679 
03680   
03681   
03682   
03683   
03707   HRESULT GetParameter (
03708     [out] IAAFParameter ** ppParameter);
03709 
03710 
03711   
03712   
03713   
03714   
03732   HRESULT SetParameter (
03733     [in] IAAFParameter * pParameter);
03734 
03735 
03736   
03737   
03738   
03739   
03767   HRESULT InterpolateOne (
03768     [in] aafRational_t *  pInputValue,
03769     [in] aafUInt32  valueSize,
03770     [out, size_is(valueSize),length_is(*bytesRead)] aafDataBuffer_t  pValue,
03771     [out] aafUInt32*  bytesRead);
03772 
03773 
03774   
03775   
03776   
03777   
03811   HRESULT InterpolateMany (
03812     [in] aafRational_t *  pStartInputValue,
03813     [in] aafRational_t *  pInputStep,
03814     [in] aafUInt32  generateCount,
03815     [out] aafMemPtr_t  pOutputValue,
03816     [out] aafUInt32 *  pResultCount);
03817 }
03818 
03819 
03820 
03821 
03822 
03823 
03824 
03825 
03826 
03827 
03828 
03850 
03851 
03855 [
03856     object,
03857     uuid(7F93992D-DDA3-11d3-8008-00104bc9156d),
03858     helpstring("IAAFMultiEssenceCodec Interface"),
03859     pointer_default(unique)
03860 ]
03861 interface IAAFMultiEssenceCodec : IUnknown
03862 {
03863 
03864 
03870 
03871         
03880 
03881 
03882   
03883   
03884   
03885   
03913   HRESULT MultiCreate (
03914     [in] IAAFSourceMob * fileMob,
03915     [in, ref] aafUID_constref  flavour,
03916     [in] IAAFEssenceStream * stream,
03917     [in] aafCompressEnable_t  compEnable,
03918     [in] aafUInt32  numParms,
03919     [in, size_is(numParms)] aafmMultiCreate_t *  createParms);
03920 
03921 
03922   
03923   
03924   
03925   
03945   HRESULT MultiOpen (
03946     [in] IAAFSourceMob * fileMob,
03947     [in] aafMediaOpenMode_t  openMode,
03948     [in] IAAFEssenceStream * stream,
03949     [in] aafCompressEnable_t  compEnable);
03950         
03951 
03957 
03958 
03959 
03960 
03961   
03962   
03963   
03964   
03999   HRESULT WriteBlocks (
04000     [in] aafDeinterleave_t  inter,
04001     [in] aafUInt16  xferBlockCount,
04002     [in, size_is(xferBlockCount)] aafmMultiXfer_t *  pTransferParm,
04003     [out, size_is(xferBlockCount)] aafmMultiResult_t *  pResultParm);
04004 
04005   
04006   
04007   
04008   
04041   HRESULT ReadBlocks (
04042     [in] aafDeinterleave_t  inter,
04043     [in] aafUInt16  xferBlockCount,
04044     [out, size_is(xferBlockCount)] aafmMultiXfer_t *  pTransferParm,
04045     [out, size_is(xferBlockCount)] aafmMultiResult_t *  pResultParm);
04046 }
04047 
04048 
04049 
04050 
04051 
04052 
04053 
04054 
04055 
04056 
04057 
04058 
04059 
04068 
04069 
04070 [
04071     object,
04072     uuid(3631F7A4-9121-11d2-8088-006008143e6f),
04073     helpstring("IAAFPlugin Interface"),
04074     pointer_default(unique)
04075 ]
04076 interface IAAFPlugin : IUnknown
04077 {
04078 
04079 
04080   
04081   
04082   
04083   
04107   HRESULT CountDefinitions (
04108     [out] aafUInt32 *  pDefCount);
04109 
04110   
04111   
04112   
04113   
04146   HRESULT GetIndexedDefinitionID (
04147     [in] aafUInt32  index,
04148     [out] aafUID_t *  pPluginID);
04149 
04150   
04151   
04152   
04153   
04176   HRESULT GetPluginDescriptorID (
04177     [out] aafUID_t *  pPluginID);
04178 
04179   
04180   
04181   
04182   
04216   HRESULT GetIndexedDefinitionObject (
04217     [in] aafUInt32  index,
04218     [in] IAAFDictionary * pDictionary,
04219     [out] IAAFDefObject ** pDefObject);
04220 
04221   
04222   
04223   
04224   
04251   HRESULT CreateDescriptor (
04252     [in] IAAFDictionary * pDictionary,
04253     [out] IAAFPluginDef ** pPluginDef);
04254 
04255 }
04256