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

📄 av8api.h

📁 <VC++视频音频开发>一书的光盘资料。
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************
 *
 *   AV8API.h
 * 
 *   Main interface   
 *
 ***************************************************************************/
/**************************************************************************
 *
 *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
 *  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
 *  PURPOSE.
 *
 *  Copyright (c) 1998 TST International, Co.  All Rights Reserved.
 * 
 **************************************************************************/

#ifndef AV8API_H
#define AV8API_H

//
// Array VideoFlow API header file (an OM-1 API like interface)
//

#define VF_MAX_DEVICES	10
#define VF_DISPLAYNAME	"Device"
#define VF_ILLEGAL_POS	(-32000)

// separate capabilities to be defined
#define VF_CAP_ALL		(-1)

//
// API commands
//
#define VF_CMD_OPEN						0x01
#define VF_CMD_CLOSE					0x02
#define VF_CMD_PLAY						0x03
#define VF_CMD_PAUSE					0x04
#define VF_CMD_STOP						0x05
#define VF_CMD_SEEK						0x06
#define VF_CMD_STEP						0x07
#define VF_CMD_SET						0x09
#define VF_CMD_GET						0x0A
#define VF_CMD_TRANSCODE_SET			0x14

#define VF_CMD_RECORD					0xF0
#define VF_CMD_RESUME					0xF1

#define	VF_CMD_IS_OVERLAY				0x41
#define	VF_CMD_PAINT_OVERLAY			0x42
#define	VF_CMD_GET_OVERLAY_CAPS			0x43
#define	VF_CMD_USE_OVERLAY_CAPS			0x44
#define	VF_CMD_SET_OVERLAY_WND			0x45
#define	VF_CMD_SET_OVERLAY_POS			0x46
#define	VF_CMD_SET_OVERLAY_DST			0x47
#define	VF_CMD_SET_OVERLAY_SRC			0x48
#define	VF_CMD_UNLOAD_OVERLAY			0x49

// rke: these are optional commands for multidevice support
#define VF_CMD_ASSIGN					0x51
#define	VF_CMD_INFO						0x52
#define	VF_CMD_LOCK						0x53
#define	VF_CMD_UNLOCK					0x54

#define	VF_CMD_REFDATA					0x61
//
// driver errors/status
#define VF_ERR_NOERR					0x0000
#define VF_ERR_INVALID_FLAGS			0x0200	// invalid or incoherent flags
#define VF_ERR_INDEX					0x0700	// get/set index invalid
#define VF_ERR_VALUE					0x1200	// invalid value
#define VF_ERR_DISK_FULL				0xffffffff
		  
//
// callback messages
//
#define VF_MSG_BUF_WRITE				0x03
#define VF_MSG_BUF_CREATE				0x04
#define VF_MSG_BUF_CLOSE				0x05

#define VF_SUBMSG_OUTPUT				0x0002

#define VF_MSGUSER_BUF_WRITE			WM_USER + VF_MSG_BUF_WRITE
#define VF_MSGUSER_BUF_CREATE			WM_USER + VF_MSG_BUF_CREATE
#define VF_MSGUSER_BUF_CLOSE			WM_USER + VF_MSG_BUF_CLOSE

//
// callback structure
//

#pragma pack(4)
typedef struct tagVF_CALLBACK_STRUCT
{
	BYTE				hStream;		// stream handle
	WPARAM				wSubMsg;		// sub message
} VF_CALLBACK_STRUCT, *PVF_CALLBACK_STRUCT, *LPVF_CALLBACK_STRUCT;

#pragma pack(4)
typedef struct tagVF_BUFWRITE_STRUCT
{
	VF_CALLBACK_STRUCT	vfcallback;
	BYTE				*lpBuffer;		// pointer to the driver buffer
	DWORD				dwBufferSize;	// size of the buffer in bytes
	DWORD				dwBufferWrite;	// encoded data length in bytes
} VF_BUFWRITE_STRUCT, *PVF_BUFWRITE_STRUCT, *LPVF_BUFWRITE_STRUCT;

typedef struct tagVF_TRANSCODE
{
	WORD	wAlgorithm;			
	WORD	wChannel;
	DWORD	dwSampleRate;
	DWORD	dwBitRate;
	WORD	wMode;
} VF_TRANSCODE;

#pragma pack()

// rke: definition of VF_CALLBACK (prototype for callback functions)
typedef WORD (CALLBACK *VF_CALLBACK)(HANDLE hDriver, UINT msg, DWORD dwUser, 
									 DWORD dwParam1, DWORD dwParam2);

/*
// C sample callback function
WORD CALLBACK MyCallback(HANDLE hDriver, UINT msg, DWORD dwUser, 
						 DWORD dwParam1, DWORD dwParam2)
{
	// hDriver unused
	// dwUser unused
	//
	PVF_BUFWRITE_STRUCT pbw = (PVF_BUFWRITE_STRUCT)dwParam1;
	PVOID pvRefData = (PVOID)dwParam2;

	switch (msg) {
	case VF_MSG_BUF_CREATE + WM_USER:
		break;
	case VF_MSG_BUF_WRITE + WM_USER: 
		break;
	case VF_MSG_BUF_CLOSE + WM_USER:
		break;
	default:;
	}
	return 0;
}

// to test type compatibility
VF_CALLBACK pCallback = MyCallback;
*/
//
// flags
//

//
// open flags
//
#define VF_FLAG_UNKNOWN					0x0000
// algorithm
#define VF_FLAG_MPEG					0x0001
#define VF_FLAG_H261					0x0002
#define VF_FLAG_G711					0x0003
// session
#define VF_FLAG_ENCODE					0x0010
#define VF_FLAG_DECODE					0x0020
// source
#define VF_FLAG_FILE					0x0100
#define VF_FLAG_BUFFER					0x0400
// output
#define VF_FLAG_OUTFILE					0x2000
#define VF_FLAG_OUTBUF					0x3000

// stream type
#define VF_FLAG_MPGAUD					0x0001
#define VF_FLAG_MPGVID					0x0002
#define VF_FLAG_MPGSYS					0x0005
#define VF_FLAG_TYPE_H261				0x0007
#define VF_FLAG_TYPE_G711				0x0008

// state
#define VF_FLAG_STOPPED					0x0002
#define VF_FLAG_PLAYING					0x0004

//
// encoding flags
//
// Setup WMPG32 driver mode either VF_DRV_DIRECT or	VF_DRV_TRANSCODE 
// VF_DRV_DIRECT for Simapp. default mode
// VF_DRV_TRANSCODE for Video for Windows
#define VF_DRV_DIRECT					0x0001
#define VF_DRV_TRANSCODE				0x0002

// transcode set 
#define VF_FLAG_TRANSCODE_DRV_MODE			0x0001
#define VF_FLAG_TRANSCODE_AUDIO_ALGORITHM	0x0002
#define VF_FLAG_TRANSCODE_AUDIO_CHANNEL		0x0003
#define VF_FLAG_TRANSCODE_AUDIO_SAMPLERATE	0x0004
#define VF_FLAG_TRANSCODE_AUDIO_BITRATE		0x0005
#define VF_FLAG_TRANSCODE_AUDIO_MODE		0x0006

// system setting
// encode mode
#define VF_FLAG_STM_NORMAL				0x0000
#define VF_FLAG_STM_VCD					0x0001

// video setting
// picture rate
#define VF_FLAG_VID_23967				0x0001
#define VF_FLAG_VID_24					0x0002
#define VF_FLAG_VID_25					0x0003
#define VF_FLAG_VID_2997				0x0004
//#define VF_FLAG_VID_30					0x0005
//#define VF_FLAG_VID_50					0x0006
//#define VF_FLAG_VID_5994				0x0007
//#define VF_FLAG_VID_60					0x0008
//#define VF_FLAG_VID_14985				0x0009
//#define VF_FLAG_VID_999					0x000A
#define VF_FLAG_VID_7498				0x000B
// encode type
//#define VF_FLAG_VID_IPB					0x0000	// mpeg IPB
//#define VF_FLAG_VID_I					0x0001	// mpeg I only
// video input source
#define VF_FLAG_VID_COMPOSITE			0x0000
#define VF_FLAG_VID_SVHS				0x0001
//#define VF_FLAG_VID_EXTRA				0x0002
// mode (input format)
#define VF_FLAG_VID_AUTOFORMAT			0x0000 // used in VOne
#define VF_FLAG_VID_NTSC				0x0001 // used in VOne
#define VF_FLAG_VID_PAL					0x0003 // used in VOne
//#define VF_FLAG_VID_PAL_M				0x0004
//#define VF_FLAG_VID_PAL_N				0x0005
//#define VF_FLAG_VID_SECAM				0x0006

// Video Algorithm
#define VF_FLAG_VID_MPEG				0x0000
#define VF_FLAG_VID_H261				0x0001

// audio setting
// layer
#define VF_FLAG_AUD_LAYER1				0x0001

⌨️ 快捷键说明

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