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

📄 audiocap.h

📁 jpeg and mpeg 编解码技术源代码
💻 H
字号:
#ifndef __AUDIOCAP_H__
#define __AUDIOCAP_H__

#include "GUM.H"
#include "GCommDef.H"

#define MIN_BUFFER_SIZE		4096	// 4K


#define PWM_AUDIO_INIT					(WM_USER + 1)
#define PWM_AUDIO_START_WAIT_EVENT		(WM_USER + 2)
#define PWM_AUDIO_STOP_CAPTURE			(WM_USER + 3)
#define PWM_AUDIO_CLOSE_THREAD			(WM_USER + 4)
#define PWM_AUDIO_PROCESS_DATA_EVENT	(WM_USER + 5)

#ifdef __cplusplus
extern "C" {
#endif	// __cplusplus

typedef struct _AUDIOCAP_BufferConfig
{
	ULONG					ulSize;
	HGLOBAL					hBufferHandle;
	LPBYTE					lpBuffer;
	OVERLAPPED				OverlappedEvent;
} AUDIOCAP_BufferConfig, *AUDIOCAP_PBufferConfig;

#ifndef MxHandle
typedef unsigned char MxHandle;
#endif	// MxHandle

typedef struct _AUDIOCAP_UpdataConfig
{
	DWORD dwSlotNum;
#ifdef	GENERAL_SYSTEM_MUXER
	MxHandle SysMuxHandle;
#endif	// GENERAL_SYSTEM_MUXER
} AUDIOCAP_UpdataConfig, *AUDIOCAP_PUpdataConfig;

typedef struct _AUDIOCAP_INIT_CONFIG
{
	DWORD							dwSlotNumber;
	COMMON_PHandleBufferFunction	pBufferFunction;
	DWORD							*pdwError;
	DWORD							*pdwAudioThreadID;
	MPJ_SessionID					*pSessionID;
	LPBYTE							lpRegistryPath;

#ifdef	GENERAL_SYSTEM_MUXER
	MxHandle						SysMuxHandle;
#endif	// GENERAL_SYSTEM_MUXER
} AUDIOCAP_INIT_CONFIG, *PAUDIOCAP_INIT_CONFIG;

typedef struct _AUDIOCAP_CAPTURE_CONFIG
{
	COMMON_OperationMode	dwOperationMode;
	DWORD					dwAudioBitRate;
	DWORD					dwAudioSampleRate;
	int						iDelayTicks;
	int						iAdjustAudioSample;
	BOOL					fNeedMux;
	LPBYTE					lpOutputFilename;
} AUDIOCAP_CAPTURE_CONFIG, *PAUDIOCAP_CAPTURE_CONFIG;

int WINAPI AUDIOCAP_Open( PAUDIOCAP_INIT_CONFIG pAudioInitConfig );
void WINAPI AUDIOCAP_DyUpdataConfig(AUDIOCAP_PUpdataConfig);
int WINAPI AUDIOCAP_Close();
int WINAPI AUDIOCAP_AllocateBuffers();
int WINAPI AUDIOCAP_FreeBuffers();
int WINAPI AUDIOCAP_AddBuffers();
int WINAPI AUDIOCAP_HandleBufferEvents( HANDLE hEvent );
int WINAPI AUDIOCAP_StartWaitEvent(HANDLE hVideoCaptureFinishEvent);
int WINAPI AUDIOCAP_WaitEvent();
int WINAPI AUDIOCAP_SetVideoDecoder(BYTE bAddress, LPBYTE lpBuffer, DWORD dwSize);
int WINAPI AUDIOCAP_GetVideoDecoder(BYTE bAddress, LPBYTE lpBuffer, DWORD dwSize);
int WINAPI AUDIOCAP_StartCapture( PAUDIOCAP_CAPTURE_CONFIG pAudioCaptureConfig );

int WINAPI AUDIOCAP_ErrorStopWaitEvent();
int WINAPI AUDIOCAP_UserStopWaitEvent();

char* WINAPI AV_GetRegisterName( MPJ_VideoRegisterName reg );
int WINAPI AUDIOCAP_CreateBuffer(AUDIOCAP_PBufferConfig pBufferConfig );
int WINAPI AUDIOCAP_FreeBuffer(AUDIOCAP_PBufferConfig pBufferConfig );
int WINAPI AUDIOCAP_IncreaseSampleCount(DWORD number);
int WINAPI AUDIOCAP_DecreaseSampleCount(DWORD number);
int WINAPI AUDIOCAP_DecreaseSpeed(int iSpeed);
int WINAPI AUDIOCAP_IncreaseSpeed(int iSpeed);
int WINAPI AUDIOCAP_AudioLostData(DWORD *dwCount);
void WINAPI AUDIOCAP_InitPlayPCM(void); // 12/24 for play audio
void WINAPI AUDIOCAP_ClosePlayPCM(void);
void WINAPI AUDIOCAP_StartPlayPCM(void);
void WINAPI AUDIOCAP_PausePlayPCM(void);
void WINAPI AUDIOCAP_RestartPlayPCM(void);
void WINAPI AUDIOCAP_StartPlayBack(void);
void WINAPI AUDIOCAP_StopPlayBack(void);

BOOL AllocateMemory(HGLOBAL *hData, LPBYTE *lpData, DWORD size);
BOOL FreeMemory (HGLOBAL *hData);
void CreateAudioThread();
void GetAppPath( char pathName1[]);
void ReadFromRegistry( LPBYTE lpRegistryPath );
void MessageLog_AudioCap( char *str255, BOOL showTime=TRUE );

#ifdef __cplusplus
}
#endif	// __cplusplus

#endif	// __AUDIOCAP_H__

⌨️ 快捷键说明

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