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

📄 av8api.h

📁 <VC++视频音频开发>一书的光盘资料。
💻 H
📖 第 1 页 / 共 2 页
字号:
#define VF_FLAG_AUD_LAYER2				0x0002
#define VF_FLAG_AUD_LAYER3				0x0004
// bitrate
#define VF_FLAG_AUD_32K                 0x00000001
#define VF_FLAG_AUD_48K                 0x00000002
#define VF_FLAG_AUD_56K                 0x00000003
#define VF_FLAG_AUD_64K                 0x00000004
#define VF_FLAG_AUD_80K                 0x00000005
#define VF_FLAG_AUD_96K                 0x00000006
#define VF_FLAG_AUD_112K                0x00000007
#define VF_FLAG_AUD_128K                0x00000008
#define VF_FLAG_AUD_160K                0x00000009
#define VF_FLAG_AUD_192K                0x0000000A
#define VF_FLAG_AUD_224K                0x0000000B
#define VF_FLAG_AUD_256K                0x0000000C
#define VF_FLAG_AUD_320K                0x0000000D
#define VF_FLAG_AUD_384K                0x0000000E
//bitrate -- Video Conferencing application
//#define VF_FLAG_AUD_16K                 0x00000100
//#define VF_FLAG_AUD_64000               0x00000101
// sample
#define VF_FLAG_AUD_SMP_44K             0x00000000
#define VF_FLAG_AUD_SMP_48K             0x00000001
#define VF_FLAG_AUD_SMP_32K             0x00000002
// sample -- Video Conferencing application
//#define VF_FLAG_AUD_SMP_22K             0x00000100
//#define VF_FLAG_AUD_SMP_11K             0x00000101
//#define VF_FLAG_AUD_SMP_8000            0x00000102

// mode
#define VF_FLAG_AUD_STEREO				0x0000
#define VF_FLAG_AUD_JOINTSTEREO			0x0001
#define VF_FLAG_AUD_DUALCHANNEL			0x0002
#define VF_FLAG_AUD_SINGLECHANNEL		0x0003
// input
#define VF_FLAG_AUD_LINEIN				0x0000
//#define VF_FLAG_AUD_CD					0x0001
//#define VF_FLAG_AUD_MIC					0x0002
// Audio Algorithm
#define VF_FLAG_AUD_MPEG				0x0000
//#define VF_FLAG_AUD_PCM					0x0001
//#define VF_FLAG_AUD_G711ALAW			0x0002
//#define VF_FLAG_AUD_G711ULAW			0x0003
//#define VF_FLAG_AUD_G722				0x0004
//#define VF_FLAG_AUD_G723				0x0005
//#define VF_FLAG_AUD_G728				0x0006
//#define VF_FLAG_AUD_G729				0x0007
//#define VF_FLAG_AUD_PCMTOMPEG			0x0008
#define VF_FLAG_AUD_NONE				0xFFFF
// Audio Channel
//#define VF_FLAG_AUD_1CHANNEL			0x0000
//#define VF_FLAG_AUD_2CHANNEL			0x0001

//
// Index(set/get)
//
//#define VF_INDEX_DRV_PRODUCT			0x0101
//#define VF_INDEX_DRV_VERSION			0x0102
//#define VF_INDEX_DRV_AUD_SUP			0x0105
//#define VF_INDEX_DRV_HRD_STAT			0x0110
//#define VF_INDEX_DRV_CAPS				0x0111
//#define VF_INDEX_DRV_PARSE_PRIV			0x0112
//#define VF_INDEX_API_VERSION			0x0113
#define VF_INDEX_SYS_WINDOW_HANDLE		0x0114

#define VF_INDEX_STM_TYPE				0x0202
#define VF_INDEX_STM_SOURCE				0x0203
#define VF_INDEX_STM_MODE				0x0204
#define VF_INDEX_STM_TIME_FMT			0x0205
#define VF_INDEX_STM_POSITION			0x0206
#define VF_INDEX_STM_FILESIZE			0x0207
#define VF_INDEX_STM_USER				0x0208
#define VF_INDEX_STM_ENCODEMODE			0x0210
#define VF_INDEX_STM_PKTCTRL			0x0220
#define VF_INDEX_STM_CURRENTPLAYTIME	0x0221
#define VF_INDEX_STM_TOTALPLAYTIME		0x0222
#define VF_INDEX_STM_STATUS				0x0223
#define VF_INDEX_STM_BUFFERLEVEL		0x02F0	// private command


#define VF_INDEX_VID_RATE				0x0402	// frame rate
#define VF_INDEX_VID_SIZE				0x0403	// video size
#define VF_INDEX_VID_POSITION			0x0404	// current video position
#define VF_INDEX_VID_SRC_POS			0x0406	// overlay
#define VF_INDEX_VID_SRC_SIZE			0x0407	// overlay
#define VF_INDEX_VID_DEST_POS			0x0408	// overlay
#define VF_INDEX_VID_DEST_SIZE			0x0409	// overlay
#define VF_INDEX_VID_KEY_MIN			0x040A	// overlay
#define VF_INDEX_VID_KEY_MAX			0x040B	// overlay
#define VF_INDEX_VID_KEY_MASK			0x040C	// overlay
#define VF_INDEX_VID_KEY_COL			0x040D	// overlay
#define VF_INDEX_VID_KEY_MODE			0x040E	// overlay
#define VF_INDEX_VID_KEY_COLOR_SPACE	0x0410
#define VF_INDEX_VID_CAP_POS			0x0411
#define VF_INDEX_VID_CAP_SIZE			0x0412
#define VF_INDEX_VID_STOP_MODE			0x0413
#define VF_INDEX_VID_BITRATE			0x0414	// video bitrate
#define VF_INDEX_VID_ENCODETYPE			0x0415	// encode type (IPB, I)
#define VF_INDEX_VID_SOURCE				0x0416	// video input
#define VF_INDEX_VID_MODE				0x0417	// video mode (NTSC, PAL)

#define VF_INDEX_VID_INPUTSIZE			0x0420
#define VF_INDEX_VID_INPUTOFFSET		0x0421
#define VF_INDEX_VID_BRIGHTNESS			0x0422
#define VF_INDEX_VID_CONTRAST			0x0423
#define VF_INDEX_VID_HUE				0x0424
#define VF_INDEX_VID_SATURATION			0x0425

#define VF_INDEX_VID_CONSTRAIN			0x0430
#define VF_INDEX_VID_OUTPUTSIZE			0x0431
#define VF_INDEX_VID_OUTPUTOFFSET		0x0432
#define VF_INDEX_VID_VBVSIZE			0x0433
#define VF_INDEX_VID_VBVDELAY			0x0434
#define VF_INDEX_VID_INITIALSMPTE		0x0435
#define VF_INDEX_VID_INITIALDELAY		0x0436
#define VF_INDEX_VID_IINTERVAL			0x0437
#define VF_INDEX_VID_BINTERVAL			0x0438	// how many B frames between I, P frames
#define VF_INDEX_VID_GOPINTERVAL		0x0439
#define VF_INDEX_VID_SEQINTERVAL		0x043A

#define VF_INDEX_VID_QMATRIX			0x0440
#define VF_INDEX_VID_QMATRIXSCALE		0x0441

#define VF_INDEX_VID_IPERCENTBITS		0x0450
#define VF_INDEX_VID_PPERCENTBITS		0x0451
#define VF_INDEX_VID_BPERCENTBITS		0x0452
#define VF_INDEX_VID_LEAKPERCENT		0x0453
#define VF_INDEX_VID_IRATECTRL			0x0454
#define VF_INDEX_VID_PRATECTRL			0x0455
#define VF_INDEX_VID_BRATECTRL			0x0456
#define VF_INDEX_VID_IQGAIN				0x0457
#define VF_INDEX_VID_PQGAIN				0x0458
#define VF_INDEX_VID_BQGAIN				0x0459
#define VF_INDEX_VID_INITIALAVEACT		0x045A
#define VF_INDEX_VID_INITIALAGAIN		0x045B

#define VF_INDEX_VID_THRESHOLDLUMA		0x0460
#define VF_INDEX_VID_THRESHOLDCHROMA	0x0461
#define VF_INDEX_VID_SCENEADAPT			0x0462
#define VF_INDEX_VID_VARIABLEFRAMERATE	0x0463
#define VF_INDEX_VID_VARIABLEBITRATE	0x0464

#define VF_INDEX_VID_NUMBEROFFRAMES		0x0470
#define VF_INDEX_VID_ALGORITHM			0x0480

#define VF_INDEX_VID_LINECROP			0x0481
#define VF_INDEX_VID_YOFFSET			0x0482

#define VF_INDEX_VID_BUFFERLEVEL		0x04F0	// private command

#define VF_INDEX_AUD_POSITION			0x0502
#define VF_INDEX_AUD_VOLUME				0x0503
#define VF_INDEX_AUD_VOLUMEL			0x0504
#define VF_INDEX_AUD_VOLUMER			0x0505
#define VF_INDEX_AUD_GAINL				0x0506
#define VF_INDEX_AUD_GAINR				0x0507
#define VF_INDEX_AUD_LAYER				0x0508
#define VF_INDEX_AUD_BITRATE			0x0509
#define VF_INDEX_AUD_SAMPLE				0x050A
#define VF_INDEX_AUD_MODE				0x050B
#define VF_INDEX_AUD_INPUT				0x050C
#define VF_INDEX_AUD_ALGORITHM			0x050D
#define VF_INDEX_AUD_CHANNEL			0x050E
#define VF_INDEX_AUD_GAIN				0x050F

#define VF_INDEX_AUD_BUFFERLEVEL		0x05F0	// private command

#define VF_INDEX_OUTPUT					0xFFF0
#define VF_INDEX_OUTFILE				0xFFF1
#define VF_INDEX_OUTBUF					0xFFF2
#define VF_INDEX_OUTHARD				0xFFF3
#define VF_INDEX_OUTNULL				0xFFF4

#ifdef _INC_WINDOWS
// some macros for an easier writing of calls to the driver

#define DRV_CMD					DRV_USER + 100
//#define DRV_ERR					DRV_USER + 101  
//#define WM_POSTMESSAGECALLBACK 	WM_USER+5

#ifdef _DEBUG
// when debugging generate division by zero error if VFCmd is called with hVFDrv == 0
#define VFCmd(hVFDrv, a,b,c,d) (hVFDrv ? SendDriverMessage(hVFDrv, DRV_CMD, MAKELPARAM(MAKEWORD(a,b),c),d) : (1/((long)hVFDrv)))
#else
#define VFCmd(hVFDrv, a,b,c,d) SendDriverMessage(hVFDrv, DRV_CMD, MAKELPARAM(MAKEWORD(a,b),c),d)
#endif

#ifndef MAKEWORD
#define MAKEWORD(low,high)		((WORD)(((BYTE)(low)) | ((( WORD)((BYTE)(high))) <<  8)))
#endif

#define MAKEDWORD(a,b) MAKELPARAM(a,b)

#define HVFAssign(hVFDrv,iDeviceIndex)				VFCmd(hVFDrv,VF_CMD_ASSIGN,0,0,iDeviceIndex)
#define HVFLock(hVFDrv,dwCapabilities)				VFCmd(hVFDrv,VF_CMD_LOCK,0,0,dwCapabilities)
#define HVFUnlock(hVFDrv,dwCapabilities)			VFCmd(hVFDrv,VF_CMD_UNLOCK,0,0,dwCapabilities)

#define HVFOpen(hVFDrv,wFlags,pscFileORpCallback)	VFCmd(hVFDrv,VF_CMD_OPEN,0,wFlags,pscFileORpCallback)
#define HVFClose(hVFDrv,bStream)					VFCmd(hVFDrv,VF_CMD_CLOSE,bStream,0,0)
#define HVFRefData(hVFDrv,bStream,dwRefData)		VFCmd(hVFDrv,VF_CMD_REFDATA,bStream,0,(LONG)(dwRefData))
#define HVFRecord(hVFDrv,bStream,wFlags,lPosition)	VFCmd(hVFDrv,VF_CMD_RECORD,bStream,wFlags,lPosition)
#define HVFPause(hVFDrv,bStream)					VFCmd(hVFDrv,VF_CMD_PAUSE,bStream,0,0)
#define HVFResume(hVFDrv,bStream)					VFCmd(hVFDrv,VF_CMD_RESUME,bStream,0,0)
#define HVFStop(hVFDrv,bStream)						VFCmd(hVFDrv,VF_CMD_STOP,bStream,0,0)

#define HVFSet(hVFDrv,bStream,wIndex,lValue)		VFCmd(hVFDrv,VF_CMD_SET,bStream,wIndex,lValue)
#define HVFGet(hVFDrv,bStream,wIndex)				VFCmd(hVFDrv,VF_CMD_GET,bStream,wIndex,0)

#define HVFIsOverlay(hVFDrv)								VFCmd(hVFDrv,VF_CMD_IS_OVERLAY,0,0,0)
#define HVFGetOverlayCaps(hVFDrv)							VFCmd(hVFDrv,VF_CMD_GET_OVERLAY_CAPS,0,0,0)
#define HVFUseOverlayCaps(hVFDrv, dwOverlayCaps)			VFCmd(hVFDrv,VF_CMD_USE_OVERLAY_CAPS,0,0,(LONG)(dwOverlayCaps))
#define HVFPaintOverlay(hVFDrv, pPaintStruct)				VFCmd(hVFDrv,VF_CMD_PAINT_OVERLAY,0,0,(LONG)(pPaintStruct))
#define HVFSetOverlayWnd(hVFDrv,hWnd)						VFCmd(hVFDrv,VF_CMD_SET_OVERLAY_WND,0,0,(LONG)(hWnd))
#define HVFSetOverlayDst(hVFDrv,wDstWidth,wDstHeight)		VFCmd(hVFDrv,VF_CMD_SET_OVERLAY_DST,0,0,MAKELPARAM(wDstWidth,wDstHeight))
#define HVFSetOverlayPos(hVFDrv,iXPos,iYPos)				VFCmd(hVFDrv,VF_CMD_SET_OVERLAY_POS,0,0,MAKELPARAM(iXPos,iYPos))
#define HVFSetOverlaySrc(hVFDrv,wSrcWidth,wSrcHeight)		VFCmd(hVFDrv,VF_CMD_SET_OVERLAY_SRC,0,0,MAKELPARAM(wSrcWidth,wSrcHeight))
#define HVFUnloadOverlay(hVFDrv)							VFCmd(hVFDrv,VF_CMD_UNLOAD_OVERLAY,0,0,0)

#define HVFTranscodeSet(hVFDrv,wIndex,lValue)				VFCmd(hVFDrv,VF_CMD_TRANSCODE_SET,0,wIndex,lValue)

// for compatibility
// These macros have the effect that a variable or class member named 'hVFDrv' 
// has to be defined in the context where these macros are used
#define VFOpen(wFlags,pscFileORpCallback)	VFCmd(hVFDrv,VF_CMD_OPEN,0,wFlags,pscFileORpCallback)
#define VFClose(bStream)					VFCmd(hVFDrv,VF_CMD_CLOSE,bStream,0,0)
#define VFRecord(bStream,wFlags,lPosition)	VFCmd(hVFDrv,VF_CMD_RECORD,bStream,wFlags,lPosition)
#define VFPause(bStream)					VFCmd(hVFDrv,VF_CMD_PAUSE,bStream,0,0)
#define VFResume(bStream)					VFCmd(hVFDrv,VF_CMD_RESUME,bStream,0,0)
#define VFStop(bStream)						VFCmd(hVFDrv,VF_CMD_STOP,bStream,0,0)
#define VFSet(bStream,wIndex,lValue)		VFCmd(hVFDrv,VF_CMD_SET,bStream,wIndex,lValue)
#define VFGet(bStream,wIndex)				VFCmd(hVFDrv,VF_CMD_GET,bStream,wIndex,0)
#define VFTranscodeSet(wIndex,lValue)		VFCmd(hVFDrv,VF_CMD_TRANSCODE_SET,0,wIndex,lValue)

#endif // _INC_WINDOWS

#endif

⌨️ 快捷键说明

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