⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v2u_defs.h

📁 vga(or dvi )to usb video4linux api sample
💻 H
字号:
/**************************************************************************** * * $Id: v2u_defs.h,v 1.6 2008/05/28 20:30:17 zhilin Exp $ * * Copyright (C) 2003-2008 Epiphan Systems, Inc. All rights reserved. * * VGA2USB common defines and types * ****************************************************************************/#ifndef _VGA2USB_DEFS_H_#define _VGA2USB_DEFS_H_ 1/* Required system headers */#ifndef __KERNEL__#  ifdef _WIN32#    include <windows.h>#    include <winioctl.h>#  else  /* Unix */#    include <stdint.h>#    include <sys/ioctl.h>#  endif /* Unix */#endif /* __KERNEL__ *//* Structure packing */#ifdef _WIN32#  include <pshpack1.h>#endif#ifndef V2U_PACKED#  ifdef _WIN32#    define V2U_PACKED#  else#    define V2U_PACKED __attribute__((packed))#  endif#endif/* Basic data types */#ifdef _WIN32typedef __int8 V2U_INT8;typedef unsigned __int8 V2U_UINT8;typedef __int16 V2U_INT16;typedef unsigned __int16 V2U_UINT16;typedef __int32 V2U_INT32;typedef unsigned __int32 V2U_UINT32;typedef __int64 V2U_INT64;typedef unsigned __int64 V2U_UINT64;#elsetypedef int8_t V2U_INT8;typedef uint8_t V2U_UINT8;typedef int16_t V2U_INT16;typedef uint16_t V2U_UINT16;typedef int32_t V2U_INT32;typedef uint32_t V2U_UINT32;typedef int64_t V2U_INT64;typedef uint64_t V2U_UINT64;#endiftypedef V2U_UINT16 V2U_UCS2;typedef V2U_UINT64 V2U_TIME;typedef V2U_INT32  V2U_BOOL;#define V2U_TRUE  1#define V2U_FALSE 0typedef struct v2u_size {    V2U_INT32 width;    V2U_INT32 height;} V2U_PACKED V2USize;typedef struct v2u_rect {    V2U_INT32 x;    V2U_INT32 y;    V2U_INT32 width;    V2U_INT32 height;} V2U_PACKED V2URect;typedef struct v2u_str_ucs2 {    V2U_UCS2* buffer;           /* not necessarily NULL-terminated */    V2U_UINT32 len;             /* string length, in characters */    V2U_UINT32 maxlen;          /* buffer size, in characters */} V2U_PACKED V2UStrUcs2;/* * V2U_VideoMode * * Used as parameter of IOCTL_VGA2USB_VIDEOMODE or comes in captured * video frame header. * * Note that the vertical refresh rate is measured in milliHertz.  * That is, the number 59900 represents 59.9 Hz. */typedef struct ioctl_videomode {    V2U_INT32  width;       /* screen width, pixels */    V2U_INT32  height;      /* screen height, pixels */    V2U_INT32  vfreq;       /* vertical refresh rate, mHz */} V2U_PACKED V2U_VideoMode;/* * The following flag can be OR'ed with the bpp field to request the * bitmap data to be sent in bottom-up format. By default, the bitmap * data are stored in the top-down order. The flags are preserved on * return. */#define V2U_GRABFRAME_FLAGS_MASK        0xffff0000 /* Bits reserved for flags */#define V2U_GRABFRAME_BOTTOM_UP_FLAG    0x80000000/* If a valid algoruthm code is set, the image will be scaled image to * width/height in V2U_GrabFrame or crop.width/crop.height in V2U_GrabFrame2. * If no bits in V2U_GRABFRAME_SCALE_MASK are set, no scaling is performed. * If an unknown algorithm code is specified, a default one will be used. * Scaling works for the following capture formats: * *   V2U_GRABFRAME_FORMAT_Y8 *   V2U_GRABFRAME_FORMAT_RGB4 *   V2U_GRABFRAME_FORMAT_RGB8 *   V2U_GRABFRAME_FORMAT_RGB16 *   V2U_GRABFRAME_FORMAT_BGR16 *   V2U_GRABFRAME_FORMAT_RGB24 *   V2U_GRABFRAME_FORMAT_YUY2 *   V2U_GRABFRAME_FORMAT_2VUY * * Scaling is available since version 3.10.9 */#define V2U_GRABFRAME_SCALE_MASK        0x00070000 /* Scale algorithm mask */#define V2U_GRABFRAME_SCALE_NEAREST     0x00010000 /* Nearest-neighbour *//* Bits that define image format */#define V2U_GRABFRAME_FORMAT_MASK       0x0000ffff /* Image format mask */#define V2U_GRABFRAME_FORMAT_RGB_MASK   0x0000001f /* Mask for RGB formats */#define V2U_GRABFRAME_FORMAT_RGB4       0x00000004#define V2U_GRABFRAME_FORMAT_RGB8       0x00000008 /* R2:G3:B3 */#define V2U_GRABFRAME_FORMAT_RGB16      0x00000010#define V2U_GRABFRAME_FORMAT_RGB24      0x00000018#define V2U_GRABFRAME_FORMAT_YUY2       0x00000100 /* same as YUV422 */#define V2U_GRABFRAME_FORMAT_YV12       0x00000200 /* same as YUV420P */#define V2U_GRABFRAME_FORMAT_2VUY       0x00000300#define V2U_GRABFRAME_FORMAT_BGR16      0x00000400#define V2U_GRABFRAME_FORMAT_Y8         0x00000500#define V2U_GRABFRAME_FORMAT_CRGB24     0x00000600#define V2U_GRABFRAME_FORMAT_CYUY2      0x00000700#define V2U_GRABFRAME_FORMAT_BGR24      0x00000800#define V2U_GRABFRAME_FORMAT_CBGR24     0x00000900/* Old flag names, defined here for backward compatibility */ #define V2U_GRABFRAME_PALETTE_MASK      V2U_GRABFRAME_FORMAT_MASK#define V2U_GRABFRAME_PALETTE_RGB_MASK  V2U_GRABFRAME_FORMAT_RGB_MASK#define V2U_GRABFRAME_PALETTE_RGB4      V2U_GRABFRAME_FORMAT_RGB4#define V2U_GRABFRAME_PALETTE_RGB8      V2U_GRABFRAME_FORMAT_RGB8#define V2U_GRABFRAME_PALETTE_RGB16     V2U_GRABFRAME_FORMAT_RGB16#define V2U_GRABFRAME_PALETTE_RGB24     V2U_GRABFRAME_FORMAT_RGB24#define V2U_GRABFRAME_PALETTE_YUY2      V2U_GRABFRAME_FORMAT_YUY2#define V2U_GRABFRAME_PALETTE_YV12      V2U_GRABFRAME_FORMAT_YV12#define V2U_GRABFRAME_PALETTE_2VUY      V2U_GRABFRAME_FORMAT_2VUY#define V2U_GRABFRAME_PALETTE_BGR16     V2U_GRABFRAME_FORMAT_BGR16#define V2U_GRABFRAME_PALETTE_Y8        V2U_GRABFRAME_FORMAT_Y8#define V2U_GRABFRAME_PALETTE_BGR24     V2U_GRABFRAME_FORMAT_BGR24/* Macro to determine bpp (bits per pixel) for partifular grab format */#define V2UPALETTE_2_BPP(p) \ (((p) & V2U_GRABFRAME_FORMAT_RGB_MASK) ? \  ((p) & V2U_GRABFRAME_FORMAT_RGB_MASK) : \(((((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_BGR16) || \  (((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_YUY2) || \  (((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_2VUY)) ? 16 : \((((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_YV12) ? 12 : \ ((((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_Y8) ? 8 : \  (((((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_CRGB24) || \    (((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_CBGR24)) ? 24 : \  ((((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_CYUY2) ? 16 : \   ((((p) & V2U_GRABFRAME_FORMAT_MASK) == V2U_GRABFRAME_FORMAT_BGR24) ? 24 : 0 )))))))/**  * Restore previous packing  */#ifdef _WIN32#  include <poppack.h>#endif#endif /* _VGA2USB_DEFS_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -