📄 fauxcodec.cpp
字号:
uppImageCodecNewImageBufferMemoryProcInfo = 0x0000FFF0,
uppImageCodecExtractAndCombineFieldsProcInfo = 0x0FFFFFF0,
uppImageCodecGetMaxCompressionSizeWithSourcesProcInfo = 0x000FEFF0,
uppImageCodecSetTimeBaseProcInfo = 0x000003F0,
uppImageCodecSourceChangedProcInfo = 0x0000FFF0,
uppImageCodecFlushFrameProcInfo = 0x000003F0,
uppImageCodecGetSettingsAsTextProcInfo = 0x000003F0,
uppImageCodecGetParameterListHandleProcInfo = 0x000003F0,
uppImageCodecGetParameterListProcInfo = 0x000003F0,
uppImageCodecCreateStandardParameterDialogProcInfo = 0x000EFFF0,
uppImageCodecIsStandardParameterDialogEventProcInfo = 0x00000FF0,
uppImageCodecDismissStandardParameterDialogProcInfo = 0x000003F0,
uppImageCodecStandardParameterDialogDoActionProcInfo = 0x00003FF0,
uppImageCodecNewImageGWorldProcInfo = 0x00003FF0,
uppImageCodecDisposeImageGWorldProcInfo = 0x000003F0,
uppImageCodecHitTestDataWithFlagsProcInfo = 0x000FFFF0,
uppImageCodecValidateParametersProcInfo = 0x00003FF0,
uppImageCodecGetBaseMPWorkFunctionProcInfo = 0x0000FFF0,
uppImageCodecRequestGammaLevelProcInfo = 0x00003FF0,
uppImageCodecGetSourceDataGammaLevelProcInfo = 0x000003F0,
uppImageCodecGetDecompressLatencyProcInfo = 0x000003F0,
uppImageCodecPreflightProcInfo = 0x000003F0,
uppImageCodecInitializeProcInfo = 0x000003F0,
uppImageCodecBeginBandProcInfo = 0x00003FF0,
uppImageCodecDrawBandProcInfo = 0x000003F0,
uppImageCodecEndBandProcInfo = 0x00003BF0,
uppImageCodecQueueStartingProcInfo = 0x000000F0,
uppImageCodecQueueStoppingProcInfo = 0x000000F0,
uppImageCodecDroppingFrameProcInfo = 0x000003F0,
uppImageCodecScheduleFrameProcInfo = 0x00003FF0,
uppImageCodecCancelTriggerProcInfo = 0x000000F0
};
#endif /* IMAGECODEC_BASENAME */
/*
Example usage:
#define QTPHOTO_BASENAME() Fred
#define QTPHOTO_GLOBALS() FredGlobalsHandle
#include <ImageCodec.k.h>
To specify that your component implementation does not use globals, do not #define QTPHOTO_GLOBALS
*/
#ifdef QTPHOTO_BASENAME
#ifndef QTPHOTO_GLOBALS
#define QTPHOTO_GLOBALS()
#define ADD_QTPHOTO_COMMA
#else
#define ADD_QTPHOTO_COMMA ,
#endif
#define QTPHOTO_GLUE(a,b) a##b
#define QTPHOTO_STRCAT(a,b) QTPHOTO_GLUE(a,b)
#define ADD_QTPHOTO_BASENAME(name) QTPHOTO_STRCAT(QTPHOTO_BASENAME(),name)
EXTERN_API( ComponentResult ) ADD_QTPHOTO_BASENAME(SetSampling) (QTPHOTO_GLOBALS() ADD_QTPHOTO_COMMA short yH, short yV, short cbH, short cbV, short crH, short crV);
EXTERN_API( ComponentResult ) ADD_QTPHOTO_BASENAME(SetRestartInterval) (QTPHOTO_GLOBALS() ADD_QTPHOTO_COMMA unsigned short restartInterval);
EXTERN_API( ComponentResult ) ADD_QTPHOTO_BASENAME(DefineHuffmanTable) (QTPHOTO_GLOBALS() ADD_QTPHOTO_COMMA short componentNumber, Boolean isDC, unsigned char * lengthCounts, unsigned char * values);
EXTERN_API( ComponentResult ) ADD_QTPHOTO_BASENAME(DefineQuantizationTable) (QTPHOTO_GLOBALS() ADD_QTPHOTO_COMMA short componentNumber, unsigned char * table);
/* MixedMode ProcInfo constants for component calls */
enum {
uppQTPhotoSetSamplingProcInfo = 0x000AAAF0,
uppQTPhotoSetRestartIntervalProcInfo = 0x000002F0,
uppQTPhotoDefineHuffmanTableProcInfo = 0x0000F6F0,
uppQTPhotoDefineQuantizationTableProcInfo = 0x00000EF0
};
#endif /* QTPHOTO_BASENAME */
/*
Example usage:
#define IMAGECODEC_BASENAME() Fred
#define IMAGECODEC_GLOBALS() FredGlobalsHandle
#include <ImageCodec.k.h>
To specify that your component implementation does not use globals, do not #define IMAGECODEC_GLOBALS
*/
#ifdef IMAGECODEC_BASENAME
#ifndef IMAGECODEC_GLOBALS
#define IMAGECODEC_GLOBALS()
#define ADD_IMAGECODEC_COMMA
#else
#define ADD_IMAGECODEC_COMMA ,
#endif
#define IMAGECODEC_GLUE(a,b) a##b
#define IMAGECODEC_STRCAT(a,b) IMAGECODEC_GLUE(a,b)
#define ADD_IMAGECODEC_BASENAME(name) IMAGECODEC_STRCAT(IMAGECODEC_BASENAME(),name)
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectSetup) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA CodecDecompressParams * p);
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectBegin) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA CodecDecompressParams * p, EffectsFrameParamsPtr ePtr);
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectRenderFrame) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA EffectsFrameParamsPtr p);
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectConvertEffectSourceToFormat) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA EffectSourcePtr sourceToConvert, ImageDescriptionHandle requestedDesc);
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectCancel) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA EffectsFrameParamsPtr p);
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectGetSpeed) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA QTAtomContainer parameters, Fixed * pFPS);
#if defined(_CARBON) || defined(_MAC_UNIX)
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectPrepareSMPTEFrame) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA PixMapPtr destPixMap, SMPTEFrameReference * returnValue);
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectDisposeSMPTEFrame) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA SMPTEFrameReference frameRef);
EXTERN_API( ComponentResult ) ADD_IMAGECODEC_BASENAME(EffectRenderSMPTEFrame) (IMAGECODEC_GLOBALS() ADD_IMAGECODEC_COMMA PixMapPtr destPixMap, SMPTEFrameReference frameRef, Fixed effectPercentageEven, Fixed effectPercentageOdd, Rect * pSourceRect, MatrixRecord * pMatrix, SMPTEWipeType effectNumber, long xRepeat, long yRepeat, SMPTEFlags flags, Fixed penWidth, long strokeValue);
#endif
/* MixedMode ProcInfo constants for component calls */
enum {
uppImageCodecEffectSetupProcInfo = 0x000003F0,
uppImageCodecEffectBeginProcInfo = 0x00000FF0,
uppImageCodecEffectRenderFrameProcInfo = 0x000003F0,
uppImageCodecEffectConvertEffectSourceToFormatProcInfo = 0x00000FF0,
uppImageCodecEffectCancelProcInfo = 0x000003F0,
uppImageCodecEffectGetSpeedProcInfo = 0x00000FF0,
uppImageCodecEffectPrepareSMPTEFrameProcInfo = 0x00000FF0,
uppImageCodecEffectDisposeSMPTEFrameProcInfo = 0x000003F0,
uppImageCodecEffectRenderSMPTEFrameProcInfo = 0xFFFFFFF0
};
#endif /* IMAGECODEC_BASENAME */
// here's the contents of ComponentDispatchHelper.c
// **** BEGIN: Error Checking the Required Macros
// Make sure BASENAME is defined
#ifndef COMPONENT_BASENAME
#ifdef CALLCOMPONENT_BASENAME
#define COMPONENT_BASENAME() CALLCOMPONENT_BASENAME()
#else
#error "COMPONENT_BASENAME or CALLCOMPONENT_BASENAME must be defined for ComponentDispatchHelper.c"
#endif
#endif
// Make sure GLOBALS is defined
#ifndef COMPONENT_GLOBALS
#ifdef CALLCOMPONENT_GLOBALS
#define COMPONENT_GLOBALS() CALLCOMPONENT_GLOBALS()
#else
#error "COMPONENT_GLOBALS or CALLCOMPONENT_GLOBALS must be defined for ComponentDispatchHelper.c"
#endif
#endif
// Make sure DISPATCH_FILE is defined
#ifndef COMPONENT_DISPATCH_FILE
#error "COMPONENT_DISPATCH_FILE must be defined for ComponentDispatchHelper.c"
#endif
// Make sure UPP_PREFIX and SELECT_PREFIX are defined
#if !defined(COMPONENT_UPP_SELECT_ROOT) && !defined(COMPONENT_UPP_PREFIX) && !defined(COMPONENT_SELECT_PREFIX)
#error "COMPONENT_UPP_SELECT_ROOT or (COMPONENT_UPP_PREFIX and COMPONENT_SELECT_PREFIX) must be defined for ComponentDispatchHelper.c"
#endif
#ifdef COMPONENT_UPP_SELECT_ROOT
#if defined(COMPONENT_UPP_PREFIX) || defined(COMPONENT_SELECT_PREFIX)
#error "use only COMPONENT_UPP_SELECT_ROOT or (COMPONENT_UPP_PREFIX and COMPONENT_SELECT_PREFIX) for ComponentDispatchHelper.c"
#endif
#else
#if !defined(COMPONENT_UPP_PREFIX) || !defined(COMPONENT_SELECT_PREFIX)
#error "COMPONENT_UPP_SELECT_ROOT or (COMPONENT_UPP_PREFIX and COMPONENT_SELECT_PREFIX) must be defined for ComponentDispatchHelper.c"
#endif
#endif
#ifndef COMPONENT_UPP_PREFIX
#ifndef COMPONENT_UPP_SELECT_ROOT
#error "COMPONENT_UPP_SELECT_ROOT or (COMPONENT_UPP_PREFIX and COMPONENT_SELECT_PREFIX) must be defined for ComponentDispatchHelper.c"
#else
#define COMPONENT_UPP_PREFIX() cdh_GLUE2(upp,COMPONENT_UPP_SELECT_ROOT())
#endif
#endif
#ifndef COMPONENT_SELECT_PREFIX
#ifndef COMPONENT_UPP_SELECT_ROOT
#error "COMPONENT_UPP_SELECT_ROOT or (COMPONENT_UPP_PREFIX and COMPONENT_SELECT_PREFIX) must be defined for ComponentDispatchHelper.c"
#else
#define COMPONENT_SELECT_PREFIX() cdh_GLUE2(k,COMPONENT_UPP_SELECT_ROOT())
#endif
#endif
// Make sure SUBTYPE UPP_PREFIX and SELECT_PREFIX are defined correctly if they are used at all
#if defined(COMPONENT_SUBTYPE_UPP_SELECT_ROOT) || defined(COMPONENT_SUBTYPE_UPP_PREFIX) || defined(COMPONENT_SUBTYPE_SELECT_PREFIX)
#ifdef COMPONENT_SUBTYPE_UPP_SELECT_ROOT
#if defined(COMPONENT_SUBTYPE_UPP_PREFIX) || defined(COMPONENT_SUBTYPE_SELECT_PREFIX)
#error "use only COMPONENT_SUBTYPE_UPP_PREFIX and COMPONENT_SUBTYPE_SELECT_PREFIX OR COMPONENT_SUBTYPE_UPP_SELECT_ROOT for ComponentDispatchHelper.c"
#endif
#else
#if !defined(COMPONENT_SUBTYPE_UPP_PREFIX) || !defined(COMPONENT_SUBTYPE_SELECT_PREFIX)
#error "COMPONENT_SUBTYPE_UPP_PREFIX and COMPONENT_SUBTYPE_SELECT_PREFIX OR COMPONENT_SUBTYPE_UPP_SELECT_ROOT must be defined for ComponentDispatchHelper.c"
#endif
#endif
#ifndef COMPONENT_SUBTYPE_UPP_PREFIX
#ifndef COMPONENT_SUBTYPE_UPP_SELECT_ROOT
#error "COMPONENT_SUBTYPE_UPP_PREFIX or COMPONENT_SUBTYPE_UPP_SELECT_ROOT must be defined for ComponentDispatchHelper.c"
#else
#define COMPONENT_SUBTYPE_UPP_PREFIX() cdh_GLUE2(upp,COMPONENT_SUBTYPE_UPP_SELECT_ROOT())
#endif
#endif
#ifndef COMPONENT_SUBTYPE_SELECT_PREFIX
#ifndef COMPONENT_SUBTYPE_UPP_SELECT_ROOT
#error "COMPONENT_SUBTYPE_SELECT_PREFIX or COMPONENT_SUBTYPE_UPP_SELECT_ROOT must be defined for ComponentDispatchHelper.c"
#else
#define COMPONENT_SUBTYPE_SELECT_PREFIX() cdh_GLUE2(k,COMPONENT_SUBTYPE_UPP_SELECT_ROOT())
#endif
#endif
#endif
// **** END: Error Checking the Required Macros
#if TARGET_API_MAC_OSX
#define CDHCONST const
#else
#define CDHCONST
#endif
#if TARGET_OS_MAC
#define PASCAL_RTN pascal
#else
#define PASCAL_RTN
#endif
#if !TARGET_OS_MAC || TARGET_CPU_PPC
#define C_DISPATCH_WITH_GLOBALS 1
#define C_DISPATCH_WITH_SWITCH 0
#elif TARGET_CPU_68K
#ifdef COMPONENT_C_DISPATCHER
#define C_DISPATCH_WITH_GLOBALS 0
#define C_DISPATCH_WITH_SWITCH 1
#else
#define C_DISPATCH_WITH_GLOBALS 0
#define C_DISPATCH_WITH_SWITCH 0
#endif
#else
#error "I have no idea what kind of machine you are using"
#endif
/*
C_DISPATCH_WITH_GLOBALS implies global storage for dispatch information
and procinfos returned by COMPONENTSELECTORLOOKUP
C_DISPATCH_WITH_SWITCH implies no global storage, dispatch by switch
and no procinfos returned by COMPONENTSELECTORLOOKUP
*/
#define COMPONENTSELECTORLOOKUP ADD_BASENAME(FindRoutineUPP)
#ifdef COMPONENT_DISPATCH_MAIN
#define COMPONENT_DISPATCH_ENTRY main
#else
#define COMPONENT_DISPATCH_ENTRY ADD_BASENAME(ComponentDispatch)
#endif
#ifndef __COMPONENTS_K__
// #include "Components.k.h"
#endif
#define kCOMPONENT_NOERROR ((ComponentFunctionUPP)-2)
#define kCOMPONENT_ERROR ((ComponentFunctionUPP)-1)
#define kCOMPONENT_DELEGATE ((ComponentFunctionUPP)0)
#ifndef cdh_GLUE
#define cdh_GLUE(a,b) a##b
#endif
#ifndef cdh_GLUE2
#define cdh_GLUE2(a,b) cdh_GLUE(a,b)
#endif
#ifndef cdh_GLUE3
#define cdh_GLUE3(a,b,c) cdh_GLUE2(cdh_GLUE2(a,b),c)
#endif
#if TARGET_RT_LITTLE_ENDIAN
#define ComponentCallLittleEndian ComponentCall
#else
#define ComponentCallLittleEndian ComponentDelegate
#endif
#ifdef forPublicQTiRelease
#define ComponentQTiCall(procName) ComponentCall(procName)
#define QTIComponentCall(procName) ComponentCall(procName)
#endif
#define ADD_BASENAME(name) cdh_GLUE2(COMPONENT_BASENAME(),name)
#if C_DISPATCH_WITH_GLOBALS
PASCAL_RTN ComponentResult COMPONENT_DISPATCH_ENTRY(ComponentParameters *params, COMPONENT_GLOBALS());
static ComponentFunctionUPP COMPONENTSELECTORLOOKUP(short selector_num, ProcInfoType *procInfo);
#if TARGET_OS_MAC && TARGET_CPU_PPC && !TARGET_API_MAC_CARBON
// entry point for PowerPC native components
struct RoutineDescriptor ADD_BASENAME(ComponentDispatchRD) =
BUILD_ROUTINE_DESCRIPTOR((kPascalStackBased | RESULT_SIZE (kFourByteCode) |
STACK_ROUTINE_PARAMETER (1, kFourByteCode) |
STACK_ROUTINE_PARAMETER (2, kFourByteCode)),COMPONENT_DISPATCH_ENTRY);
#endif
PASCAL_RTN ComponentResult COMPONENT_DISPATCH_ENTRY(ComponentParameters *params,COMPONENT_GLOBALS())
{
ComponentFunctionUPP theProc;
ComponentResult result = badComponentSelector;
ProcInfoType theProcInfo;
theProc = COMPONENTSELECTORLOOKUP(params->what, &theProcInfo);
if (theProc) {
if ( (theProc != kCOMPONENT_ERROR) && (theProc != kCOMPONENT_NOERROR) ) {
if (theProcInfo != 0) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -