/******************************************************** Audio decoder interface Copyright 2000 Eugene Kuznetsov (divx@euro.ru) *********************************************************/ #ifndef AUDIODEC_IMPL #define AUDIODEC_IMPL #include #ifndef _WAVEFORMATEX_ #define _WAVEFORMATEX_ typedef struct _WAVEFORMATEX { short wFormatTag; short nChannels; long nSamplesPerSec; long nAvgBytesPerSec; short nBlockAlign; short wBitsPerSample; short cbSize; } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; #endif class IAudioDecoder { protected: WAVEFORMATEX in_fmt; int m_status; public: static IAudioDecoder* Create(WAVEFORMATEX* format, void* extension); int GetOutputFormat(WAVEFORMATEX* destfmt); virtual int GetMinSize() =0; virtual int Convert(unsigned char* in_data, Unsigned in_size, unsigned char* out_data, Unsigned out_size, Unsigned* size_read, Unsigned* size_written) =0; virtual int Close() =0; }; #endif