00001 #ifndef PRIVATEDECODER_VDA_DEFS_H
00002 #define PRIVATEDECODER_VDA_DEFS_H
00003
00004 #define VDA_DECODER_PATH "/System/Library/Frameworks/VideoDecodeAcceleration.framework/Versions/Current/VideoDecodeAcceleration"
00005
00006 enum
00007 {
00008 kVDADecodeInfo_Asynchronous = 1UL << 0,
00009 kVDADecodeInfo_FrameDropped = 1UL << 1
00010 };
00011
00012 enum
00013 {
00014 kVDADecoderDecodeFlags_DontEmitFrame = 1 << 0
00015 };
00016
00017 enum
00018 {
00019 kVDADecoderFlush_EmitFrames = 1 << 0
00020 };
00021
00022 enum
00023 {
00024 kVDADecoderNoErr = 0,
00025 kVDADecoderHardwareNotSupportedErr = -12470,
00026 kVDADecoderFormatNotSupportedErr = -12471,
00027 kVDADecoderConfigurationError = -12472,
00028 kVDADecoderDecoderFailedErr = -12473,
00029 };
00030
00031 typedef struct OpaqueVDADecoder* VDADecoder;
00032
00033 typedef void (*VDADecoderOutputCallback)
00034 (void *decompressionOutputRefCon,
00035 CFDictionaryRef frameInfo,
00036 OSStatus status,
00037 uint32_t infoFlags,
00038 CVImageBufferRef imageBuffer);
00039
00040 typedef OSStatus (*MYTH_VDADECODERCREATE)
00041 (CFDictionaryRef decoderConfiguration,
00042 CFDictionaryRef destinationImageBufferAttributes,
00043 VDADecoderOutputCallback *outputCallback,
00044 void *decoderOutputCallbackRefcon,
00045 VDADecoder *decoderOut);
00046 typedef OSStatus (*MYTH_VDADECODERDECODE)
00047 (VDADecoder decoder,
00048 uint32_t decodeFlags,
00049 CFTypeRef compressedBuffer,
00050 CFDictionaryRef frameInfo);
00051 typedef OSStatus (*MYTH_VDADECODERFLUSH)
00052 (VDADecoder decoder, uint32_t flushFlags);
00053 typedef OSStatus (*MYTH_VDADECODERDESTROY)
00054 (VDADecoder decoder);
00055
00056 #endif // PRIVATEDECODER_VDA_DEFS_H