blademp3encdll.h

来自「基于sip协议的网络电话源码」· C头文件 代码 · 共 284 行

H
284
字号
/* * Blade Type of DLL Interface for Lame encoder * * Copyright (c) 1999-2002 A.L. Faber * Based on bladedll.h version 1.0 written by Jukka Poikolainen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA  02111-1307, USA. *///#define _BLADEDLL 1#ifndef ___BLADEDLL_H_INCLUDED___#define ___BLADEDLL_H_INCLUDED___#ifdef __GNUC__//#define ATTRIBUTE_PACKED	__attribute__((packed))#define ATTRIBUTE_PACKED#else#define ATTRIBUTE_PACKED#pragma pack(push)#pragma pack(1)#endif#ifdef	__cplusplusextern "C" {#endif/* encoding formats */#define		BE_CONFIG_MP3			0										#define		BE_CONFIG_LAME			256		/* type definitions */typedef		unsigned long			HBE_STREAM;typedef		HBE_STREAM				*PHBE_STREAM;typedef		unsigned long			BE_ERR;/* error codes */#define		BE_ERR_SUCCESSFUL					0x00000000#define		BE_ERR_INVALID_FORMAT				0x00000001#define		BE_ERR_INVALID_FORMAT_PARAMETERS	0x00000002#define		BE_ERR_NO_MORE_HANDLES				0x00000003#define		BE_ERR_INVALID_HANDLE				0x00000004#define		BE_ERR_BUFFER_TOO_SMALL				0x00000005/* other constants */#define		BE_MAX_HOMEPAGE			128/* format specific variables */#define		BE_MP3_MODE_STEREO		0#define		BE_MP3_MODE_JSTEREO		1#define		BE_MP3_MODE_DUALCHANNEL	2#define		BE_MP3_MODE_MONO		3#define		MPEG1	1#define		MPEG2	0#ifdef _BLADEDLL#undef FLOAT	#include <Windows.h>#endif#define CURRENT_STRUCT_VERSION 1#define CURRENT_STRUCT_SIZE sizeof(BE_CONFIG)	// is currently 331 bytestypedef enum{	VBR_METHOD_NONE			= -1,	VBR_METHOD_DEFAULT		=  0,	VBR_METHOD_OLD			=  1,	VBR_METHOD_NEW			=  2,	VBR_METHOD_MTRH			=  3,	VBR_METHOD_ABR			=  4} VBRMETHOD;typedef enum {	LQP_NOPRESET			=-1,	// QUALITY PRESETS	LQP_NORMAL_QUALITY		= 0,	LQP_LOW_QUALITY			= 1,	LQP_HIGH_QUALITY		= 2,	LQP_VOICE_QUALITY		= 3,	LQP_R3MIX				= 4,	LQP_VERYHIGH_QUALITY	= 5,	LQP_STANDARD			= 6,	LQP_FAST_STANDARD		= 7,	LQP_EXTREME				= 8,	LQP_FAST_EXTREME		= 9,	LQP_INSANE				= 10,	LQP_ABR					= 11,	LQP_CBR					= 12,	LQP_MEDIUM				= 13,	LQP_FAST_MEDIUM			= 14,	// NEW PRESET VALUES	LQP_PHONE	=1000,	LQP_SW		=2000,	LQP_AM		=3000,	LQP_FM		=4000,	LQP_VOICE	=5000,	LQP_RADIO	=6000,	LQP_TAPE	=7000,	LQP_HIFI	=8000,	LQP_CD		=9000,	LQP_STUDIO	=10000} LAME_QUALITY_PRESET;typedef struct	{	unsigned long	dwConfig;			// BE_CONFIG_XXXXX								// Currently only BE_CONFIG_MP3 is supported	union	{		struct	{			unsigned long	dwSampleRate;		// 48000, 44100 and 32000 allowed			unsigned char	byMode;			// BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO			unsigned short	wBitrate;		// 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 allowed			int	bPrivate;					int	bCRC;			int	bCopyright;			int	bOriginal;			} mp3;					// BE_CONFIG_MP3			struct			{			// STRUCTURE INFORMATION			unsigned long			dwStructVersion;				unsigned long			dwStructSize;			// BASIC ENCODER SETTINGS			unsigned long			dwSampleRate;		// SAMPLERATE OF INPUT FILE			unsigned long			dwReSampleRate;		// DOWNSAMPLERATE, 0=ENCODER DECIDES  			long			nMode;				// BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO			unsigned long			dwBitrate;			// CBR bitrate, VBR min bitrate			unsigned long			dwMaxBitrate;		// CBR ignored, VBR Max bitrate			long			nPreset;			// Quality preset, use one of the settings of the LAME_QUALITY_PRESET enum			unsigned long			dwMpegVersion;		// FUTURE USE, MPEG-1 OR MPEG-2			unsigned long			dwPsyModel;			// FUTURE USE, SET TO 0			unsigned long			dwEmphasis;			// FUTURE USE, SET TO 0			// BIT STREAM SETTINGS			int			bPrivate;			// Set Private Bit (TRUE/FALSE)			int			bCRC;				// Insert CRC (TRUE/FALSE)			int			bCopyright;			// Set Copyright Bit (TRUE/FALSE)			int			bOriginal;			// Set Original Bit (TRUE/FALSE)						// VBR STUFF			int			bWriteVBRHeader;	// WRITE XING VBR HEADER (TRUE/FALSE)			int			bEnableVBR;			// USE VBR ENCODING (TRUE/FALSE)			int				nVBRQuality;		// VBR QUALITY 0..9			unsigned long			dwVbrAbr_bps;		// Use ABR in stead of nVBRQuality			VBRMETHOD		nVbrMethod;			int			bNoRes;				// Disable Bit resorvoir (TRUE/FALSE)			// MISC SETTINGS			int			bStrictIso;			// Use strict ISO encoding rules (TRUE/FALSE)			unsigned short			nQuality;			// Quality Setting, HIGH unsigned char should be NOT LOW byte, otherwhise quality=5			// FUTURE USE, SET TO 0, align strucutre to 331 bytes			unsigned char			btReserved[255-4*sizeof(unsigned long) - sizeof( unsigned short )];			} LHV1;					// LAME header version 1		struct	{			unsigned long	dwSampleRate;			unsigned char	byMode;			unsigned short	wBitrate;			unsigned char	byEncodingMethod;		} aac;	} format;		} BE_CONFIG, *PBE_CONFIG ATTRIBUTE_PACKED;typedef struct	{	// BladeEnc DLL Version number	unsigned char	byDLLMajorVersion;	unsigned char	byDLLMinorVersion;	// BladeEnc Engine Version Number	unsigned char	byMajorVersion;	unsigned char	byMinorVersion;	// DLL Release date	unsigned char	byDay;	unsigned char	byMonth;	unsigned short	wYear;	// BladeEnc	Homepage URL	char	zHomepage[BE_MAX_HOMEPAGE + 1];		unsigned char	byAlphaLevel;	unsigned char	byBetaLevel;	unsigned char	byMMXEnabled;	unsigned char	btReserved[125];} BE_VERSION, *PBE_VERSION ATTRIBUTE_PACKED;#ifndef _BLADEDLLtypedef unsigned long	(*BEINITSTREAM)			(PBE_CONFIG, unsigned long *, unsigned long *, PHBE_STREAM);typedef unsigned long	(*BEENCODECHUNK)		(HBE_STREAM, unsigned long, short *, unsigned char *, unsigned long *);// added for floating point audio  -- DSPguru, jdtypedef unsigned long	(*BEENCODECHUNKFLOATS16NI)	(HBE_STREAM, unsigned long, float *, float *, unsigned char *, unsigned long *);typedef unsigned long	(*BEDEINITSTREAM)			(HBE_STREAM, unsigned char *, unsigned long *);typedef unsigned long	(*BECLOSESTREAM)			(HBE_STREAM);typedef void	(*BEVERSION)				(PBE_VERSION);typedef unsigned long	(*BEWRITEVBRHEADER)			(const char*);typedef unsigned long	(*BEWRITEINFOTAG)			(HBE_STREAM, const char * );#define	TEXT_BEINITSTREAM				"beInitStream"#define	TEXT_BEENCODECHUNK				"beEncodeChunk"#define	TEXT_BEENCODECHUNKFLOATS16NI	"beEncodeChunkFloatS16NI"#define	TEXT_BEDEINITSTREAM				"beDeinitStream"#define	TEXT_BECLOSESTREAM				"beCloseStream"#define	TEXT_BEVERSION					"beVersion"#define	TEXT_BEWRITEVBRHEADER			"beWriteVBRHeader"#define	TEXT_BEFLUSHNOGAP				"beFlushNoGap"#define	TEXT_BEWRITEINFOTAG				"beWriteInfoTag"#else__declspec(dllexport) unsigned long	beInitStream(PBE_CONFIG pbeConfig, Punsigned long dwSamples, Punsigned long dwBufferSize, PHBE_STREAM phbeStream);__declspec(dllexport) unsigned long	beEncodeChunk(HBE_STREAM hbeStream, unsigned long nSamples, PSHORT pSamples, Punsigned char pOutput, Punsigned long pdwOutput);// added for floating point audio  -- DSPguru, jd__declspec(dllexport) unsigned long	beEncodeChunkFloatS16NI(HBE_STREAM hbeStream, unsigned long nSamples, PFLOAT buffer_l, PFLOAT buffer_r, Punsigned char pOutput, Punsigned long pdwOutput);__declspec(dllexport) unsigned long	beDeinitStream(HBE_STREAM hbeStream, Punsigned char pOutput, Punsigned long pdwOutput);__declspec(dllexport) unsigned long	beCloseStream(HBE_STREAM hbeStream);__declspec(dllexport) VOID		beVersion(PBE_VERSION pbeVersion);__declspec(dllexport) unsigned long	beWriteVBRHeader(LPCSTR lpszFileName);__declspec(dllexport) unsigned long	beFlushNoGap(HBE_STREAM hbeStream, Punsigned char pOutput, Punsigned long pdwOutput);__declspec(dllexport) unsigned long	beWriteInfoTag( HBE_STREAM hbeStream, LPCSTR lpszFileName );#endif#ifndef __GNUC__#pragma pack(pop)#endif#ifdef	__cplusplus}#endif#endif

⌨️ 快捷键说明

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