📄 faadwa3.h
字号:
/*cnv_FAAD - MP4-AAC decoder plugin for Winamp3Copyright (C) 2002 Antonio ForannaThis program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.The author can be contacted at:kreel@tiscali.it*/#ifndef _AACPCM_H#define _AACPCM_H#include <studio/services/svc_mediaconverter.h>#include <studio/services/servicei.h>#include <studio/corecb.h>#include <studio/wac.h>#include <attribs/cfgitemi.h>#include <attribs/attrint.h>#include <mp4.h>#include "..\..\..\faac\include\faac.h"#include <faad.h>extern "C" {#include <aacinfo.h> // get_AAC_format()}#include "Defines.h"// -----------------------------------------------------------------------------------------------class AacPcm : public svc_mediaConverterI{public: AacPcm(); virtual ~AacPcm(); // service static const char *getServiceName() { return FILES_SUPPORT " to PCM converter"; } virtual int canConvertFrom(svc_fileReader *reader, const char *name, const char *chunktype) { if(name && (!STRICMP(Std::extension(name),"aac")|| !STRICMP(Std::extension(name),"mp4"))) return 1; // only accepts *.aac and *.mp4 files return 0; } virtual const char *getConverterTo() { return "PCM"; } virtual int getInfos(MediaInfo *infos); virtual int processData(MediaInfo *infos, ChunkList *chunk_list, bool *killswitch); virtual int getLatency(void) { return 0; } // callbacks virtual int corecb_onSeeked(int newpos) {/* if(!IsSeekable) { newpos_ms=-1; return 0; }*/ newpos_ms=newpos; return 0; }// Raw AAC BOOL FindBitrate;private://MP4 MP4FileHandle mp4File; MP4SampleId sampleId, numSamples; int track; BYTE type;// AAC FILE *aacFile; DWORD Samplerate; BYTE Channels; DWORD bps; DWORD src_size; // aac filesize BYTE *buffer; long tagsize; DWORD *seek_table; int seek_table_length; bool BlockSeeking;// GLOBAL faacDecHandle hDecoder; faadAACInfo file_info; faacDecFrameInfo frameInfo; DWORD len_ms; // length of file in milliseconds DWORD bytes_read; // from file DWORD bytes_consumed; // by faadDecDecode long bytes_into_buffer;// DWORD dst_size; long newpos_ms; BOOL IsSeekable; bool IsAAC;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -