codec.h

来自「dsp上用c语言实现的aac音频算法的编解码器代码」· C头文件 代码 · 共 72 行

H
72
字号
#ifndef _CODEC_H#define _CODEC_H#include "msacmdrv.h"#include "faac.h"#include "faad.h"class codec{    static const int m_iCompressedFormatTag;    static const int m_iManufacturerID;    static const int m_iProductID;	    static void fill_pcm_format(WAVEFORMATEX* pwfx, int rate, int bits, int channels);    static void fill_compressed_format(WAVEFORMATEX* pwfx, int rate, int bits, int channels, int bitrate);    int something;    class stream    {    public:		virtual ~stream() {}		virtual HRESULT reset() =0;		virtual HRESULT size(ACMDRVSTREAMSIZE*) =0;		virtual HRESULT convert(ACMDRVSTREAMHEADER*) =0;    };    class encoder: public stream    {		WAVEFORMATEX m_sFormat;		unsigned long m_iInputSamples;		unsigned long m_iMaxOutputBytes;		unsigned long m_iOutputBytesPerSec;		faacEncHandle m_pHandle;    public:		encoder(WAVEFORMATEX* pF, WAVEFORMATEX* pFDest);		~encoder() {}		virtual HRESULT reset();		virtual HRESULT size(ACMDRVSTREAMSIZE*);		virtual HRESULT convert(ACMDRVSTREAMHEADER*);    };    class decoder: public stream    {		WAVEFORMATEX m_sFormat;		faacDecHandle m_pHandle;		bool m_bInitialized;		unsigned char* m_pCache;		int m_iCacheSize;    public:		decoder(WAVEFORMATEX* pF);		~decoder() { delete[] m_pCache; }		virtual HRESULT reset();		virtual HRESULT size(ACMDRVSTREAMSIZE*);		virtual HRESULT convert(ACMDRVSTREAMHEADER*);    };	public:		codec();		~codec();		HRESULT formattag_details(ACMFORMATTAGDETAILSW* lParam1, DWORD lParam2);		HRESULT format_details(ACMFORMATDETAILSW* lParam1, DWORD lParam2);		HRESULT format_suggest(ACMDRVFORMATSUGGEST*);		HRESULT details(ACMDRIVERDETAILSW*);		HRESULT about(DWORD);		HRESULT open(ACMDRVSTREAMINSTANCE*);		HRESULT prepare(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMHEADER*);		HRESULT reset(ACMDRVSTREAMINSTANCE*);		HRESULT size(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMSIZE*);		HRESULT unprepare(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMHEADER*);		HRESULT convert(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMHEADER*);		HRESULT close(ACMDRVSTREAMINSTANCE*);};#endif

⌨️ 快捷键说明

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