📄 av8api.h
字号:
/****************************************************************************
*
* 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 + -