1
This commit is contained in:
154
common/quicktime_win32/CVPixelFormatDescription.h
Normal file
154
common/quicktime_win32/CVPixelFormatDescription.h
Normal file
@ -0,0 +1,154 @@
|
||||
/*
|
||||
* CVPixelFormatDescription.h
|
||||
* CoreVideo
|
||||
*
|
||||
* Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#if !defined(__COREVIDEO_CVPIXELFORMATDESCRIPTION_H__)
|
||||
#define __COREVIDEO_CVPIXELFORMATDESCRIPTION_H__
|
||||
|
||||
#include <TargetConditionals.h>
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
#include <QuartzCore/CoreVideo.h>
|
||||
#include <CoreFoundation/CFDictionary.h>
|
||||
#include <CoreFoundation/CFArray.h>
|
||||
#else
|
||||
#include <CoreVideo.h>
|
||||
#include <CFDictionary.h>
|
||||
#include <CFArray.h>
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* This document is influenced by Ice Floe #19: http://developer.apple.com/quicktime/icefloe/dispatch019.html */
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
/* The canonical name for the format. This should bethe same as the codec name you'd use in QT */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatName AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* QuickTime/QuickDraw Pixel Format Type constant (OSType) */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatConstant AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* This is the codec type constant, i.e. '2vuy' or k422YpCbCr8CodecType */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatCodecType AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* This is the equivalent Microsoft FourCC code for this pixel format */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatFourCC AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* All buffers have one or more image planes. Each plane may contain a single or an interleaved set of components */
|
||||
/* For simplicity sake, pixel formats that are not planar may place the required format keys at the top
|
||||
level dictionary. */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatPlanes AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* The following keys describe the requirements/layout of a a single image plane. */
|
||||
|
||||
/* Used to assist with allocating memory for pixel formats that don't have an integer value for
|
||||
bytes per pixel */
|
||||
/* Block width is essentially the width in pixels of the smallest "byte addressable" group of pixels */
|
||||
/* This works in close conjunction with BitsPerBlock */
|
||||
/* Examples:
|
||||
8-bit luminance only, BlockWidth would be 1, BitsPerBlock would be 8
|
||||
16-bit 1555 RGB, BlockWidth would be 1, BitsPerBlock would be 16
|
||||
32-bit 8888 ARGB, BlockWidth would be 1, BitsPerBlock would be 32
|
||||
2vuy (CbYCrY), BlockWidth would be 2, BitsPerBlock would be 32
|
||||
1-bit bitmap, BlockWidth would be 8, BitsPerBlock would be 8
|
||||
v210, BlockWidth would be 6, BitsPerBlock would be 128 */
|
||||
/* Values assumed to 1 be one if not present */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatBlockWidth AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatBlockHeight AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* This value must be present. For simple pixel formats this will be equivalent to the traditional
|
||||
bitsPerPixel value. */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatBitsPerBlock AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* Used to state requirements on block multiples. v210 would be '8' here for the horizontal case,
|
||||
to match the standard v210 row alignment value of 48.
|
||||
These may be assumed as 1 if not present. */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatBlockHorizontalAlignment AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatBlockVerticalAlignment AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* Subsampling information for this plane. Assumed to be '1' if not present. */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatHorizontalSubsampling AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatVerticalSubsampling AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* If present, these two keys describe the OpenGL format and type enums you would use to describe this
|
||||
image plane to OpenGL */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatOpenGLFormat AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatOpenGLType AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatOpenGLInternalFormat AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* CGBitmapInfo value, if required */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatCGBitmapInfo AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* Pixel format compatibility flags */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatQDCompatibility AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatCGBitmapContextCompatibility AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatCGImageCompatibility AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatOpenGLCompatibility AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
#endif
|
||||
|
||||
/* This callback routine implements code to handle the functionality of CVPixelBufferFillExtendedPixels.
|
||||
For custom pixel formats where you will never need to use that call, this is not required. */
|
||||
typedef Boolean (*CVFillExtendedPixelsCallBack)( CVPixelBufferRef pixelBuffer, void *refCon);
|
||||
typedef struct {
|
||||
CFIndex version;
|
||||
CVFillExtendedPixelsCallBack fillCallBack;
|
||||
void *refCon;
|
||||
} CVFillExtendedPixelsCallBackData;
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
/* The value for this key is a CFData containing a CVFillExtendedPixelsCallBackData struct */
|
||||
CV_EXPORT const CFStringRef kCVPixelFormatFillExtendedPixelsCallback AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
#endif
|
||||
|
||||
/* Create a description of a pixel format from a provided OSType */
|
||||
CV_EXPORT CFDictionaryRef CVPixelFormatDescriptionCreateWithPixelFormatType(CFAllocatorRef allocator, OSType pixelFormat) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* Get an array containing all known pixel format description dictionaries */
|
||||
CV_EXPORT CFArrayRef CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes(CFAllocatorRef allocator) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
/* Register a new pixel format with CoreVideo */
|
||||
CV_EXPORT void CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType(CFDictionaryRef description, OSType pixelFormat) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
|
||||
|
||||
#if TARGET_OS_WIN32
|
||||
#define kCVPixelFormatName CFSTR("Name")
|
||||
#define kCVPixelFormatName422YpCbCr8 CFSTR("Component Y'CbCr 8-bit 4:2:2")
|
||||
#define kCVPixelFormatName422YpCbCr10 CFSTR("Component Y'CbCr 10-bit 4:2:2")
|
||||
#define kCVPixelFormatConstant CFSTR("PixelFormat")
|
||||
#define kCVPixelFormatCodecType CFSTR("CodecType")
|
||||
#define kCVPixelFormatFourCC CFSTR("FourCC")
|
||||
#define kCVPixelFormatPlanes CFSTR("Planes")
|
||||
#define kCVPixelFormatComponents CFSTR("ComponentLayout")
|
||||
#define kCVPixelFormatBlockWidth CFSTR("BlockWidth")
|
||||
#define kCVPixelFormatBlockHeight CFSTR("BlockHeight")
|
||||
#define kCVPixelFormatBlockHorizontalAlignment CFSTR("BlockHorizontalAlignment")
|
||||
#define kCVPixelFormatBlockVerticalAlignment CFSTR("BlockVerticalAlignment")
|
||||
#define kCVPixelFormatBitsPerBlock CFSTR("BitsPerBlock")
|
||||
#define kCVPixelFormatHorizontalSubsampling CFSTR("HorizontalSubsampling")
|
||||
#define kCVPixelFormatVerticalSubsampling CFSTR("VerticalSubsampling")
|
||||
#define kCVPixelFormatOpenGLFormat CFSTR("OpenGLFormat")
|
||||
#define kCVPixelFormatOpenGLType CFSTR("OpenGLType")
|
||||
#define kCVPixelFormatOpenGLInternalFormat CFSTR("OpenGLInternalFormat")
|
||||
#define kCVPixelFormatDirect3DFormat CFSTR("D3DFormat")
|
||||
#define kCVPixelFormatDirect3DType CFSTR("D3DType")
|
||||
#define kCVPixelFormatDirect3DInternalFormat CFSTR("D3DInternalFormat")
|
||||
#define kCVPixelFormatQDCompatibility CFSTR("QDCompatibility")
|
||||
#define kCVPixelFormatCGBitmapContextCompatibility CFSTR("CGBitmapContextCompatibility")
|
||||
#define kCVPixelFormatCGImageCompatibility CFSTR("CGImageCompatibility")
|
||||
#define kCVPixelFormatOpenGLCompatibility CFSTR("OpenGLCompatibility")
|
||||
#define kCVPixelFormatDirect3DCompatibility CFSTR("Direct3DCompatibility")
|
||||
#define kCVPixelFormatCGBitmapInfo CFSTR("CGBitmapInfo")
|
||||
#define kCVPixelFormatFillExtendedPixelsCallback CFSTR("FillExtendedPixelsCallback")
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user