├── TODO ├── common ├── Makefile.am ├── mp4ff │ ├── mp4tagupdate.c │ ├── Makefile.am │ └── mp4ff_int_types.h └── faad │ ├── aacinfo.sln │ ├── aacinfo.h │ ├── id3v2tag.h │ ├── filestream.h │ └── getopt.h ├── plugins ├── xmms │ ├── Makefile.am │ ├── AUTHORS │ ├── INSTALL │ ├── TODO │ ├── src │ │ ├── Makefile.am │ │ └── aac_utils.c │ ├── NEWS │ ├── README │ └── ChangeLog ├── QCD │ ├── logo.bmp │ ├── ReadMe.txt │ ├── resource.h │ ├── QCDFAAD.sln │ ├── QCDInputDLL.h │ └── plugin_dlg.rc ├── QCDMp4 │ ├── QCDMp4.c │ ├── QCDMp4.rc │ ├── QCDMp4Tag.cpp │ ├── QCDTagsDLL.h │ ├── aac2mp4.h │ ├── config.h │ ├── utils.h │ ├── QCDInputDLL.h │ ├── aacinfo.h │ ├── config.c │ ├── mbs.h │ ├── QCDMp4.sln │ ├── QCDModTagEditor.h │ ├── resource.h │ └── utils.c ├── Makefile.am └── mpeg4ip │ ├── Makefile.am │ ├── README_WIN32.txt │ ├── aa_file.h │ ├── faad2.h │ └── aa_file.cpp ├── libfaad ├── mdct.c ├── syntax.c ├── libfaad2.def ├── libfaad.sln ├── libfaad2_dll.sln ├── Makefile.am ├── error.h ├── pulse.h ├── ms.h ├── sbr_huff.h ├── sbr_tf_grid.h ├── drc.h ├── ssr_ipqf.h ├── mdct.h ├── huffman.h ├── analysis.h ├── sbr_hfgen.h ├── output.h ├── sbr_e_nf.h ├── rvlc.h ├── cfft.h ├── tns.h ├── sbr_dct.h ├── sbr_hfadj.h ├── specrec.h ├── ssr_fb.h ├── mp4.h ├── pns.h ├── pulse.c ├── sbr_syntax.h ├── sbr_qmf.h ├── is.h ├── sbr_fbt.h ├── filtbank.h ├── lt_predict.h ├── ssr.h ├── ms.c ├── error.c ├── drm_dec.h ├── syntax.h ├── codebook │ └── hcb.h ├── is.c └── ps_dec.h ├── aacDECdrop ├── resource │ ├── AAC01.bmp │ ├── AAC01.ico │ ├── AAC02.bmp │ ├── AAC03.bmp │ ├── AAC04.bmp │ ├── AAC05.bmp │ ├── AAC06.bmp │ ├── AAC07.bmp │ └── AAC08.bmp ├── decthread.h ├── misc.h ├── decode.h ├── wave_out.h ├── aacDECdrop │ └── aacDECdrop.sln ├── resource.h ├── audio.h ├── misc.c └── decthread.c ├── NEWS ├── docs ├── Ahead AAC Decoder library documentation.doc └── Ahead AAC Decoder library documentation.pdf ├── Makefile.am ├── test.c ├── ChangeLog ├── AUTHORS ├── bootstrap ├── frontend ├── Makefile.am ├── faad.sln ├── faad.man └── audio.h ├── README.linux ├── in_mpeg4aac.nsi ├── include └── faad.h ├── README ├── decode_example.c ├── libfaad2.gyp ├── config.h.in ├── config └── mac │ ├── ia32 │ └── config.h │ └── x64 │ └── config.h └── compile /TODO: -------------------------------------------------------------------------------- 1 | 2 | - Not much... 3 | -------------------------------------------------------------------------------- /common/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = mp4ff 2 | -------------------------------------------------------------------------------- /plugins/xmms/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = src 2 | 3 | -------------------------------------------------------------------------------- /libfaad/mdct.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/libfaad/mdct.c -------------------------------------------------------------------------------- /libfaad/syntax.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/libfaad/syntax.c -------------------------------------------------------------------------------- /plugins/QCD/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/plugins/QCD/logo.bmp -------------------------------------------------------------------------------- /plugins/QCDMp4/QCDMp4.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/plugins/QCDMp4/QCDMp4.c -------------------------------------------------------------------------------- /plugins/QCDMp4/QCDMp4.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/plugins/QCDMp4/QCDMp4.rc -------------------------------------------------------------------------------- /plugins/xmms/AUTHORS: -------------------------------------------------------------------------------- 1 | xmms-mp4 plugin for xmms-1.2.x 2 | 3 | re-coded by ciberfred from scratch 4 | -------------------------------------------------------------------------------- /common/mp4ff/mp4tagupdate.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/common/mp4ff/mp4tagupdate.c -------------------------------------------------------------------------------- /plugins/QCDMp4/QCDMp4Tag.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/plugins/QCDMp4/QCDMp4Tag.cpp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC01.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC01.bmp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC01.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC01.ico -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC02.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC02.bmp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC03.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC03.bmp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC04.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC04.bmp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC05.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC05.bmp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC06.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC06.bmp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC07.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC07.bmp -------------------------------------------------------------------------------- /aacDECdrop/resource/AAC08.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/aacDECdrop/resource/AAC08.bmp -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- 1 | 2 | 6 February 2004 3 | - FAAD2 version 2.0 released 4 | 5 | 25 July 2003 6 | - Release version with SBR decoding 7 | 8 | -------------------------------------------------------------------------------- /docs/Ahead AAC Decoder library documentation.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/docs/Ahead AAC Decoder library documentation.doc -------------------------------------------------------------------------------- /docs/Ahead AAC Decoder library documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gypified/libfaad/HEAD/docs/Ahead AAC Decoder library documentation.pdf -------------------------------------------------------------------------------- /plugins/xmms/INSTALL: -------------------------------------------------------------------------------- 1 | the installation of this plugin is provide by the faad2 package. 2 | add to configure time the option '--with-xmms' and the plugin will be build -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = libfaad common frontend plugins 2 | 3 | EXTRA_DIST = faad2.spec 4 | 5 | rpm: Makefile 6 | make dist 7 | $(RPMBUILD) -ta $(PACKAGE)-$(VERSION).tar.gz 8 | rm $(PACKAGE)-$(VERSION).tar.gz 9 | -------------------------------------------------------------------------------- /plugins/xmms/TODO: -------------------------------------------------------------------------------- 1 | TODO: 2 | 3 | * handle AAC info such as MPEG-AAC type, header (ADTS/ADIF),... 4 | * seeking... but it will certainly an option because it need 5 | a reading of whole file.... 6 | * any suggestions ... send me somes messages about it :) 7 | -------------------------------------------------------------------------------- /plugins/Makefile.am: -------------------------------------------------------------------------------- 1 | if HAVE_MPEG4IP_PLUG 2 | if HAVE_XMMS 3 | SUBDIRS = xmms mpeg4ip 4 | else 5 | SUBDIRS = mpeg4ip 6 | endif #HAVE_XMMS 7 | else 8 | if HAVE_XMMS 9 | SUBDIRS = xmms 10 | else 11 | SUBDIRS = 12 | endif #HAVE_XMMS 13 | endif #HAVE_MPEG4IP_PLUG 14 | -------------------------------------------------------------------------------- /test.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | 5 | int main () { 6 | printf("libfaad2 version: %s\n", FAAD2_VERSION); 7 | 8 | unsigned long c = NeAACDecGetCapabilities(); 9 | printf("NeAACDecGetCapabilities() - %lu\n", c); 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /common/mp4ff/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LIBRARIES = libmp4ff.a 2 | include_HEADERS = mp4ff.h mp4ffint.h 3 | 4 | libmp4ff_a_CFLAGS = -DUSE_TAGGING=1 5 | 6 | libmp4ff_a_SOURCES = mp4ff.c mp4atom.c mp4meta.c mp4sample.c mp4util.c \ 7 | mp4tagupdate.c mp4ff.h mp4ffint.h mp4ff_int_types.h 8 | -------------------------------------------------------------------------------- /ChangeLog: -------------------------------------------------------------------------------- 1 | 2009-02-02 - Version 2.7 2 | * DAB+ support 3 | * Use public headers internally to prevent duplicate declarations 4 | * Explicitly typedef all types as signed 5 | * Made sure MAIN prediction can't be started after the first frame 6 | * Lot's of compilation issues solved 7 | * Bugfix in SBR envelope border calculation 8 | -------------------------------------------------------------------------------- /plugins/QCDMp4/QCDTagsDLL.h: -------------------------------------------------------------------------------- 1 | #ifndef QCDTAGS_H 2 | #define QCDTAGS_H 3 | 4 | #include "QCDModTagEditor.h" 5 | 6 | extern HINSTANCE hInstance; 7 | 8 | void ShutDown_Tag(int flags); 9 | bool Read_Tag(LPCSTR filename, void* tagData); 10 | bool Write_Tag(LPCSTR filename, void* tagData); 11 | bool Strip_Tag(LPCSTR filename); 12 | 13 | 14 | #endif -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | 2 | M. Bakker (mbakker(at)nero.com) 3 | - complete library 4 | 5 | Alexander Kurpiers (a.kurpiers(at)nt.tu-darmstadt.de) 6 | - HCR code 7 | - DRM stuff 8 | - lot's of bug fixes 9 | 10 | Volker Fischer (v.fischer(at)nt.tu-darmstadt.de) 11 | - DRM code 12 | - lot's of bug fixes 13 | 14 | Gian-Carlo Pascutto (gpascutto(at)nero.com) 15 | - DRM PS code 16 | - bugfixes 17 | -------------------------------------------------------------------------------- /bootstrap: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | case $OSTYPE in 4 | darwin*) 5 | LIBTOOLIZE=glibtoolize 6 | ;; 7 | *) 8 | LIBTOOLIZE=libtoolize 9 | ;; 10 | esac 11 | 12 | aclocal -I . && \ 13 | autoheader && \ 14 | $LIBTOOLIZE --automake --copy && \ 15 | automake --add-missing --copy && \ 16 | autoconf && \ 17 | echo "Ready to run ./configure" 18 | -------------------------------------------------------------------------------- /frontend/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = faad 2 | man_MANS = faad.man 3 | 4 | INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/common/faad \ 5 | -I$(top_srcdir)/common/mp4ff 6 | 7 | faad_LDADD = $(top_builddir)/libfaad/libfaad.la \ 8 | $(top_builddir)/common/mp4ff/libmp4ff.a 9 | 10 | faad_SOURCES = main.c \ 11 | audio.c audio.h \ 12 | $(top_srcdir)/common/faad/getopt.c 13 | -------------------------------------------------------------------------------- /libfaad/libfaad2.def: -------------------------------------------------------------------------------- 1 | LIBRARY libfaad2.dll 2 | EXPORTS 3 | ; 4 | ; libfaad2 exports 5 | ; 6 | NeAACDecOpen @1 7 | NeAACDecGetCurrentConfiguration @2 8 | NeAACDecSetConfiguration @3 9 | NeAACDecInit @4 10 | NeAACDecInit2 @5 11 | NeAACDecDecode @6 12 | NeAACDecClose @7 13 | NeAACDecGetErrorMessage @8 14 | NeAACDecAudioSpecificConfig @9 15 | -------------------------------------------------------------------------------- /plugins/QCD/ReadMe.txt: -------------------------------------------------------------------------------- 1 | QCDFAAD.dll input Plugin for Quintessential Player (QCD) 2 | Please goto http://www.quinnware.com to download the latest version of QCD. 3 | 4 | About Tagging music file: 5 | 6 | Because QCD support ID3v1 & ID3v2 functions. So you can add a string -- ":AAC" 7 | in the configuration dialog box of QCDcddb.dll Libarary Plugin. 8 | (I think you will find it and will know how to do it, 9 | otherwise you can visite the message forum on the web site.) 10 | 11 | Have a good time:) -------------------------------------------------------------------------------- /README.linux: -------------------------------------------------------------------------------- 1 | To compile under Linux. 2 | ---------------------- 3 | just run : 4 | 5 | ./configure --with-mp4v2 6 | make 7 | sudo make install 8 | 9 | 10 | about the xmms plugin. 11 | --------------------- 12 | The xmms plugin need to be build after the install of the faad project. 13 | so after you have installed correctly faad (--with-xmms options) you need 14 | to configure and build the xmms plugin part in the plugins/xmms directory. 15 | Read the README and INSTALL files into the xmms directory. 16 | -------------------------------------------------------------------------------- /plugins/mpeg4ip/Makefile.am: -------------------------------------------------------------------------------- 1 | libdir = @MPEG4IP_PLAYER_PLUGIN_DIR@ 2 | 3 | lib_LTLIBRARIES = faad2_plugin.la 4 | faad2_plugin_la_LDFLAGS = -module 5 | faad2_plugin_la_SOURCES = \ 6 | faad2.cpp \ 7 | faad2.h \ 8 | aa_file.cpp \ 9 | aa_file.h 10 | 11 | faad2_plugin_la_LIBADD = \ 12 | $(top_builddir)/libfaad/libfaad.la \ 13 | -lm 14 | 15 | 16 | INCLUDES = -I$(top_srcdir)/include 17 | 18 | AM_CFLAGS = -D_REENTRANT -fexceptions 19 | 20 | AM_CXXFLAGS = -D_REENTRANT -DNOCONTROLS -fexceptions 21 | 22 | 23 | -------------------------------------------------------------------------------- /plugins/xmms/src/Makefile.am: -------------------------------------------------------------------------------- 1 | local_CFLAGS=`$(XMMS_CONFIG) --cflags` -Wall 2 | local_LDFLAGS=`$(XMMS_CONFIG) --libs` 3 | libdir = `$(XMMS_CONFIG) --input-plugin-dir` 4 | lib_LTLIBRARIES = libmp4.la 5 | 6 | libmp4_la_CFLAGS = $(local_CFLAGS) -Wall \ 7 | -I$(top_srcdir)/include -I$(top_srcdir)/common/mp4ff 8 | 9 | libmp4_la_LIBADD = $(top_builddir)/libfaad/libfaad.la \ 10 | $(top_builddir)/common/mp4ff/libmp4ff.a 11 | 12 | libmp4_la_LDFLAGS = -module -avoid-version $(local_LDFLAGS) -lpthread 13 | 14 | libmp4_la_SOURCES = libmp4.c mp4_utils.c aac_utils.c 15 | -------------------------------------------------------------------------------- /common/mp4ff/mp4ff_int_types.h: -------------------------------------------------------------------------------- 1 | #ifndef _MP4FF_INT_TYPES_H_ 2 | #define _MP4FF_INT_TYPES_H_ 3 | 4 | #if defined (_WIN32) 5 | 6 | #ifdef __MINGW32__ 7 | #include 8 | #endif /* #ifdef __MINGW32__ */ 9 | 10 | typedef signed char int8_t; 11 | typedef unsigned char uint8_t; 12 | typedef signed short int16_t; 13 | typedef unsigned short uint16_t; 14 | typedef signed long int32_t; 15 | typedef unsigned long uint32_t; 16 | 17 | typedef signed __int64 int64_t; 18 | typedef unsigned __int64 uint64_t; 19 | 20 | #else 21 | 22 | #include 23 | 24 | #endif 25 | 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /plugins/xmms/NEWS: -------------------------------------------------------------------------------- 1 | 22 Aout 2004 2 | ------------ 3 | modification du system de compilation, passage de libmp4v2 a libmp4ff 4 | en static, libfaad en dynamique. 5 | 6 | 1 Decembre 2003 7 | --------------- 8 | merge du plugin aac et du plugin mp4. modification des script du projet faad 9 | le plugin ne doit pas etre construit en meme temps que le projet 10 | 11 | 4 Juillet 2003 12 | -------------- 13 | integration du plugin xmms-aac dans le projet faad2 version 2.x 14 | 15 | 15 aout 2002 16 | ------------ 17 | 18 | Recodage en entier du plugin aac 19 | me contacter par mail a : 20 | 21 | frederic.fondriest@laposte.net 22 | -------------------------------------------------------------------------------- /aacDECdrop/decthread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * function: Header file for decthread.c 3 | * 4 | * This program is distributed under the GNU General Public License, version 2. 5 | * A copy of this license is included with this source. 6 | * 7 | * Copyright (C) 2002 John Edwards 8 | */ 9 | #ifndef __DECTHREAD_H__ 10 | #define __DECTHREAD_H__ 11 | 12 | void decthread_init(void); 13 | void decthread_addfile(char *file); 14 | void decthread_set_decode_mode(int decode_mode); 15 | void decthread_set_outputFormat(int output_format); 16 | void decthread_set_fileType(int file_type); 17 | void decthread_set_object_type(int object_type); 18 | 19 | #endif /* __DECTHREAD_H__ */ 20 | -------------------------------------------------------------------------------- /aacDECdrop/misc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * function: Header file for misc.c 3 | * 4 | * This program is distributed under the GNU General Public License, version 2. 5 | * A copy of this license is included with this source. 6 | * 7 | * Copyright (C) 2002 John Edwards 8 | */ 9 | 10 | #ifndef __MISC_H__ 11 | #define __MISC_H__ 12 | 13 | #include "decode.h" 14 | #include 15 | 16 | void set_filename(char *filename); 17 | 18 | extern void error_dialog(const char *fmt, ...); 19 | extern void log_error(const char *fmt, ...); 20 | extern void set_use_dialogs(int use_dialogs); 21 | extern void (*error_handler)(const char *fmt, ...); 22 | 23 | 24 | #endif /* __MISC_H__ */ 25 | 26 | -------------------------------------------------------------------------------- /plugins/mpeg4ip/README_WIN32.txt: -------------------------------------------------------------------------------- 1 | Creating mpeg4ip plugin for Windows. 2 | 3 | You will need to have mpeg4ip installed. If you install it on the same drive, with the top level directory 4 | name of /mpeg4ip, you will have to do nothing other than move the faad2_plugin.dll from the Release or 5 | Debug directory to the same directory as the other mpeg4ip plugins. 6 | 7 | If you install it somewhere else, you will have to change the include paths and link paths in the project 8 | settings for faad2_plugin to the proper directory. Look for /mpeg4ip (or \mpeg4ip) and change all occurances 9 | of these in the file. 10 | 11 | It might be best to hand-edit the faad_plugin.sdp file with wordpad and use the search and replace function. -------------------------------------------------------------------------------- /in_mpeg4aac.nsi: -------------------------------------------------------------------------------- 1 | Name "AudioCoding.com MP4 Winamp plugin" 2 | OutFile in_mp4.exe 3 | CRCCheck on 4 | LicenseText "You must read the following license before installing." 5 | LicenseData COPYING 6 | ComponentText "This will install the AudioCoding.com MP4 Winamp plugin on your computer." 7 | InstType Normal 8 | AutoCloseWindow true 9 | SetOverwrite on 10 | SetDateSave on 11 | 12 | InstallDir $PROGRAMFILES\Winamp 13 | InstallDirRegKey HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Winamp" "UninstallString" 14 | ;DirShow 15 | DirText "The installer has detected the path to Winamp. If it is not correct, please change." 16 | 17 | Section "AudioCoding.com MP4 Winamp plugin" 18 | SectionIn 1 19 | SetOutPath $INSTDIR\Plugins 20 | File plugins\in_mp4\Release\in_mp4.dll 21 | SectionEnd 22 | -------------------------------------------------------------------------------- /plugins/xmms/README: -------------------------------------------------------------------------------- 1 | xmms-mp4 plugin v0.5 2 | (dynamic version) 3 | "a mp4/aac audio player for xmms" 4 | coded by ciberfred from france 5 | ------------- 6 | 7 | This source code allow to xmms to read .mp4/.m4a/.aac files 8 | 9 | About. 10 | This plugin is a merge between aac and mp4 plugin. so now you could read 11 | all new and old files encoded with different encoder and different format 12 | (for the aac part). This is possible since the libfaad2 allow to read 13 | old aac ADTS format. 14 | 15 | For any informations about this plugin contact me at : 16 | 17 | mail : frederic.fondriest@laposte.net 18 | ICQ : 17293220 19 | aac plugin homepage (and more) : http://fondriest.frederic.free.fr/realisations/ 20 | IRC : irc.eu.freenode.net (#lamip) 21 | 22 | -- 23 | Frederic Fondriest 24 | -------------------------------------------------------------------------------- /libfaad/libfaad.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual C++ Express 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "libfaad.vcproj", "{BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.ActiveCfg = Release|Win32 13 | EndGlobalSection 14 | GlobalSection(SolutionProperties) = preSolution 15 | HideSolutionNode = FALSE 16 | EndGlobalSection 17 | GlobalSection(DPCodeReviewSolutionGUID) = preSolution 18 | DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /common/faad/aacinfo.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual Studio 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aacinfo", "aacinfo.vcproj", "{FE985E4D-79DB-4DD3-BFED-824B4677A161}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Debug|Win32.Build.0 = Debug|Win32 13 | {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Release|Win32.ActiveCfg = Release|Win32 14 | {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Release|Win32.Build.0 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | EndGlobal 20 | -------------------------------------------------------------------------------- /libfaad/libfaad2_dll.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual C++ Express 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad2_dll", "libfaad2_dll.vcproj", "{482DA264-EE88-4575-B208-87C4CB80CD08}" 4 | EndProject 5 | Global 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 7 | Debug|Win32 = Debug|Win32 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug|Win32.ActiveCfg = Debug|Win32 12 | {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug|Win32.Build.0 = Debug|Win32 13 | {482DA264-EE88-4575-B208-87C4CB80CD08}.Release|Win32.ActiveCfg = Release|Win32 14 | {482DA264-EE88-4575-B208-87C4CB80CD08}.Release|Win32.Build.0 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | EndGlobal 20 | -------------------------------------------------------------------------------- /plugins/mpeg4ip/aa_file.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** MPEG4IP plugin for FAAD2 3 | ** Copyright (C) 2003 Bill May wmay@cisco.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** $Id: aa_file.h,v 1.1 2003/08/07 17:21:21 menno Exp $ 20 | **/ 21 | /* 22 | * aa_file.h - prototypes for aac files 23 | */ 24 | int create_media_for_aac_file (CPlayerSession *pspstr, 25 | const char *name, 26 | const char **errmsg); 27 | -------------------------------------------------------------------------------- /aacDECdrop/decode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * function: Header file for aacDECdrop 3 | * 4 | * This program is distributed under the GNU General Public License, version 2. 5 | * A copy of this license is included with this source. 6 | * 7 | * Copyright (C) 2002 John Edwards 8 | */ 9 | 10 | #ifndef __DECODE_H__ 11 | #define __DECODE_H__ 12 | 13 | #include 14 | 15 | typedef void (*progress_func)(long totalsamples, long samples); 16 | typedef void (*error_func)(char *errormessage); 17 | 18 | typedef struct 19 | { 20 | progress_func progress_update; 21 | error_func error; 22 | int decode_mode; 23 | int output_format; 24 | int file_type; 25 | int object_type; 26 | char *filename; 27 | } aac_dec_opt; 28 | 29 | 30 | int aac_decode(aac_dec_opt *opt); 31 | 32 | /* 33 | * Put this here for convenience 34 | */ 35 | 36 | typedef struct { 37 | char TitleFormat[32]; 38 | int window_x; 39 | int window_y; 40 | int always_on_top; 41 | int logerr; 42 | int decode_mode; 43 | int outputFormat; 44 | int fileType; 45 | int object_type; 46 | } SettingsAAC; 47 | 48 | /* 49 | * GLOBALS 50 | */ 51 | 52 | extern SettingsAAC iniSettings; 53 | 54 | 55 | #endif /* __DECODE_H__ */ 56 | -------------------------------------------------------------------------------- /plugins/xmms/ChangeLog: -------------------------------------------------------------------------------- 1 | 22 August 2004: 2 | * move from libmp4v2 to libmp4ff 3 | 4 | 1 December 2003: 5 | * remove aac plug and merge the aac part with the mp4 part 6 | so now 2 plugins in one :) 7 | 8 | 4 juillet 2003: 9 | * package the plugin for faad2 10 | * upgrade code to libfaad2-2.0 API 11 | * version 0.5 12 | 13 | 15 juin 2003: 14 | * better configuration code 15 | (choose automaticaly at compile time) 16 | * installation must be set by root 17 | * version 0.4 18 | 19 | 15 mai 2003: 20 | * update configure script to be better 21 | * version 0.3 22 | 23 | 01 Novembre 2002: 24 | * check automake/autoconf/libtool for plugin, now 'make install' work 25 | * handle seeking 26 | * configuration box created (thanks glade !) 27 | * handle aac informations 28 | * modification to a better infobox (thanks angain glade !) 29 | * version 0.2 ready to public :) 30 | 31 | 25 Aout 2002: 32 | * gtk-1.2.x info file with some 'static' useful ID3 info 33 | * title show in xmms correctly 34 | * version 0.1 ready to public :) 35 | 36 | 20 Aout 2002: 37 | * everything... 38 | * work with faad2lib-1.1, id3lib-3.8.0 (glibc-2.2.5, gcc-2.95.3) 39 | i think the minimum required but need testing... 40 | * playlist working 41 | * handle id3tag, the plugin work :) 42 | * new maintener : ciberfred 43 | 44 | -------------------------------------------------------------------------------- /plugins/QCD/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Developer Studio generated include file. 3 | // Used by plugin_dlg.rc 4 | // 5 | #define IDD_CONFIG 101 6 | #define IDD_ABOUT 106 7 | #define IDB_LOGO 107 8 | #define VARBITRATE_CHK 1004 9 | #define THREAD_PRIORITY_SLIDER 1007 10 | #define IDC_STATIC2 1034 11 | #define LOCAL_BUFFER_TXT 1035 12 | #define STREAM_BUFFER_TXT 1036 13 | #define IDC_MEMMAP 1037 14 | #define OK_BTN 1038 15 | #define CANCEL_BTN 1039 16 | #define RESET_BTN 1047 17 | #define IDC_LOGO 1048 18 | #define IDC_PLUGINVER 1050 19 | #define IDC_FAADVER 1051 20 | #define IDC_MAIL1 1052 21 | #define IDC_MAIL2 1053 22 | #define IDC_MAIL3 1054 23 | 24 | // Next default values for new objects 25 | // 26 | #ifdef APSTUDIO_INVOKED 27 | #ifndef APSTUDIO_READONLY_SYMBOLS 28 | #define _APS_NEXT_RESOURCE_VALUE 109 29 | #define _APS_NEXT_COMMAND_VALUE 40001 30 | #define _APS_NEXT_CONTROL_VALUE 1055 31 | #define _APS_NEXT_SYMED_VALUE 101 32 | #endif 33 | #endif 34 | -------------------------------------------------------------------------------- /aacDECdrop/wave_out.h: -------------------------------------------------------------------------------- 1 | /* 2 | * function: Header file for wave_out.c 3 | * 4 | * This program is distributed under the GNU General Public License, version 2. 5 | * A copy of this license is included with this source. 6 | * 7 | * Copyright (C) 2002 John Edwards 8 | */ 9 | 10 | #ifndef __WAVE_OUT_H__ 11 | #define __WAVE_OUT_H__ 12 | 13 | 14 | #include 15 | #include 16 | 17 | #define Cdecl __cdecl 18 | #define __attribute__(x) 19 | #define sleep(__sec) Sleep ((__sec) * 1000) 20 | #define inline __inline 21 | #define restrict 22 | 23 | /* 24 | * constants 25 | */ 26 | 27 | #define CD_SAMPLE_FREQ 44.1e3 28 | #define SAMPLE_SIZE 16 29 | #define SAMPLE_SIZE_STRING "" 30 | #define WINAUDIO_FD ((FILE_T)-128) 31 | #define FILE_T FILE* 32 | #define INVALID_FILEDESC NULL 33 | 34 | /* 35 | * Simple types 36 | */ 37 | 38 | typedef signed int Int; // at least -32767...+32767, fast type 39 | typedef unsigned int Uint; // at least 0...65535, fast type 40 | typedef long double Ldouble; // most exact floating point format 41 | 42 | /* 43 | * functions for wave_out.c 44 | */ 45 | 46 | Int Set_WIN_Params ( FILE_T dummyFile , Ldouble SampleFreq, Uint BitsPerSample, Uint Channels ); 47 | int WIN_Play_Samples ( const void* buff, size_t len ); 48 | int WIN_Audio_close ( void ); 49 | 50 | #endif /* __WAVE_OUT_H__ */ 51 | -------------------------------------------------------------------------------- /libfaad/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libfaad.la 2 | 3 | AM_CFLAGS = -iquote $(top_srcdir)/include 4 | include_HEADERS = $(top_srcdir)/include/faad.h \ 5 | $(top_srcdir)/include/neaacdec.h 6 | 7 | libfaad_la_LDFLAGS = -version-info 2:0:0 8 | libfaad_la_LIBADD = -lm 9 | 10 | libfaad_la_SOURCES = bits.c cfft.c decoder.c drc.c \ 11 | drm_dec.c error.c filtbank.c \ 12 | ic_predict.c is.c lt_predict.c mdct.c mp4.c ms.c output.c pns.c \ 13 | ps_dec.c ps_syntax.c \ 14 | pulse.c specrec.c syntax.c tns.c hcr.c huffman.c \ 15 | rvlc.c ssr.c ssr_fb.c ssr_ipqf.c common.c \ 16 | sbr_dct.c sbr_e_nf.c sbr_fbt.c sbr_hfadj.c sbr_hfgen.c \ 17 | sbr_huff.c sbr_qmf.c sbr_syntax.c sbr_tf_grid.c sbr_dec.c \ 18 | analysis.h bits.h cfft.h cfft_tab.h common.h \ 19 | decoder.h drc.h drm_dec.h error.h fixed.h filtbank.h \ 20 | huffman.h ic_predict.h iq_table.h is.h kbd_win.h lt_predict.h \ 21 | mdct.h mdct_tab.h mp4.h ms.h output.h pns.h ps_dec.h ps_tables.h \ 22 | pulse.h rvlc.h \ 23 | sbr_dct.h sbr_dec.h sbr_e_nf.h sbr_fbt.h sbr_hfadj.h sbr_hfgen.h \ 24 | sbr_huff.h sbr_noise.h sbr_qmf.h sbr_syntax.h sbr_tf_grid.h \ 25 | sine_win.h specrec.h ssr.h ssr_fb.h ssr_ipqf.h \ 26 | ssr_win.h syntax.h structs.h tns.h \ 27 | sbr_qmf_c.h codebook/hcb.h \ 28 | codebook/hcb_1.h codebook/hcb_2.h codebook/hcb_3.h codebook/hcb_4.h \ 29 | codebook/hcb_5.h codebook/hcb_6.h codebook/hcb_7.h codebook/hcb_8.h \ 30 | codebook/hcb_9.h codebook/hcb_10.h codebook/hcb_11.h codebook/hcb_sf.h 31 | -------------------------------------------------------------------------------- /plugins/QCD/QCDFAAD.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QCDFAAD", "QCDFAAD.vcproj", "{71955EB0-4F77-462B-A844-2BA56E74B87E}" 5 | ProjectSection(ProjectDependencies) = postProject 6 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114} = {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114} 7 | EndProjectSection 8 | EndProject 9 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "..\..\libfaad\libfaad.vcproj", "{BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}" 10 | EndProject 11 | Global 12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 13 | Debug|Win32 = Debug|Win32 14 | Release|Win32 = Release|Win32 15 | EndGlobalSection 16 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 17 | {71955EB0-4F77-462B-A844-2BA56E74B87E}.Debug|Win32.ActiveCfg = Debug|Win32 18 | {71955EB0-4F77-462B-A844-2BA56E74B87E}.Debug|Win32.Build.0 = Debug|Win32 19 | {71955EB0-4F77-462B-A844-2BA56E74B87E}.Release|Win32.ActiveCfg = Release|Win32 20 | {71955EB0-4F77-462B-A844-2BA56E74B87E}.Release|Win32.Build.0 = Release|Win32 21 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.ActiveCfg = Debug|Win32 22 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.Build.0 = Debug|Win32 23 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.ActiveCfg = Release|Win32 24 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.Build.0 = Release|Win32 25 | EndGlobalSection 26 | GlobalSection(SolutionProperties) = preSolution 27 | HideSolutionNode = FALSE 28 | EndGlobalSection 29 | EndGlobal 30 | -------------------------------------------------------------------------------- /include/faad.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: faad.h,v 1.51 2007/11/01 12:33:29 menno Exp $ 29 | **/ 30 | 31 | /* warn people for update */ 32 | #pragma message("please update faad2 include filename and function names!") 33 | 34 | /* Backwards compatible link */ 35 | #include "neaacdec.h" 36 | -------------------------------------------------------------------------------- /plugins/QCDMp4/aac2mp4.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: aac2mp4.h,v 1.3 2003/12/06 04:24:17 rjamorim Exp $ 26 | **/ 27 | 28 | #ifndef AAC2MP4_H__ 29 | #define AAC2MP4_H__ 30 | 31 | #ifdef __cplusplus 32 | extern "C" { 33 | #endif /* __cplusplus */ 34 | 35 | int covert_aac_to_mp4(char *inputFileName, char *mp4FileName); 36 | MP4TrackId AacCreator(MP4FileHandle mp4File, FILE* inFile); 37 | 38 | #ifdef __cplusplus 39 | } 40 | #endif /* __cplusplus */ 41 | 42 | #endif -------------------------------------------------------------------------------- /libfaad/error.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: error.h,v 1.27 2008/09/19 23:31:40 menno Exp $ 29 | **/ 30 | 31 | #ifndef __ERROR_H__ 32 | #define __ERROR_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #define NUM_ERROR_MESSAGES 34 39 | extern char *err_msg[]; 40 | 41 | #ifdef __cplusplus 42 | } 43 | #endif 44 | #endif 45 | -------------------------------------------------------------------------------- /plugins/QCDMp4/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: config.h,v 1.3 2003/12/06 04:24:17 rjamorim Exp $ 26 | **/ 27 | 28 | char app_name[]; 29 | char INI_FILE[]; 30 | int m_priority; 31 | int m_resolution; 32 | int m_show_errors; 33 | int m_use_for_aac; 34 | int m_downmix; 35 | int m_vbr_display; 36 | char titleformat[MAX_PATH]; 37 | 38 | #define RS(x) (_r_s(#x,x,sizeof(x))) 39 | #define WS(x) (WritePrivateProfileString(app_name,#x,x,INI_FILE)) 40 | 41 | void _r_s(char *name,char *data, int mlen); 42 | 43 | -------------------------------------------------------------------------------- /libfaad/pulse.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: pulse.h,v 1.20 2007/11/01 12:33:34 menno Exp $ 29 | **/ 30 | 31 | #ifndef __PULSE_H__ 32 | #define __PULSE_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | uint8_t pulse_decode(ic_stream *ics, int16_t *spec_coef, uint16_t framelen); 39 | 40 | #ifdef __cplusplus 41 | } 42 | #endif 43 | #endif 44 | -------------------------------------------------------------------------------- /plugins/QCDMp4/utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: utils.h,v 1.3 2003/12/06 04:24:17 rjamorim Exp $ 26 | **/ 27 | 28 | #ifndef UTILS_INCLUDED 29 | #define UTILS_INCLUDED 30 | 31 | #include 32 | 33 | LPTSTR PathFindFileName(LPCTSTR pPath); 34 | int GetVideoTrack(MP4FileHandle infile); 35 | int GetAudioTrack(MP4FileHandle infile); 36 | int GetAACTrack(MP4FileHandle infile); 37 | int StringComp(char const *str1, char const *str2, unsigned long len); 38 | char *convert3in4to3in3(void *sample_buffer, int samples); 39 | 40 | #endif -------------------------------------------------------------------------------- /libfaad/ms.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: ms.h,v 1.19 2007/11/01 12:33:32 menno Exp $ 29 | **/ 30 | 31 | #ifndef __MS_H__ 32 | #define __MS_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | void ms_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec, 39 | uint16_t frame_len); 40 | 41 | #ifdef __cplusplus 42 | } 43 | #endif 44 | #endif 45 | -------------------------------------------------------------------------------- /plugins/QCDMp4/QCDInputDLL.h: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // File: QCDInputDLL.h 4 | // 5 | // About: QCD Player Input module DLL interface. For more documentation, see 6 | // QCDModInput.h. 7 | // 8 | // Authors: Written by Paul Quinn and Richard Carlson. 9 | // 10 | // QCD multimedia player application Software Development Kit Release 1.0. 11 | // 12 | // Copyright (C) 1997-2002 Quinnware 13 | // 14 | // This code is free. If you redistribute it in any form, leave this notice 15 | // here. 16 | // 17 | // This program is distributed in the hope that it will be useful, 18 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20 | // 21 | //----------------------------------------------------------------------------- 22 | 23 | #ifndef QCDInputDLL_H 24 | #define QCDInputDLL_H 25 | 26 | #include "QCDModInput.h" 27 | 28 | // Calls from the Player 29 | int GetMediaSupported(const char* medianame, MediaInfo *mediaInfo); 30 | int GetTrackExtents(const char* medianame, TrackExtents *ext, int flags); 31 | int GetCurrentPosition(const char* medianame, long *track, long *offset); 32 | 33 | void SetEQ(EQInfo*); 34 | void SetVolume(int levelleft, int levelright, int flags); 35 | 36 | int Play(const char* medianame, int framefrom, int frameto, int flags); 37 | int Pause(const char* medianame, int flags); 38 | int Stop(const char* medianame, int flags); 39 | int Eject(const char* medianame, int flags); 40 | 41 | int Initialize(QCDModInfo *ModInfo, int flags); 42 | void ShutDown(int flags); 43 | void Configure(int flags); 44 | void About(int flags); 45 | 46 | #endif //QCDInputDLL_H -------------------------------------------------------------------------------- /libfaad/sbr_huff.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_huff.h,v 1.21 2007/11/01 12:33:35 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_HUFF_H__ 32 | #define __SBR_HUFF_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | 39 | void sbr_envelope(bitfile *ld, sbr_info *sbr, uint8_t ch); 40 | void sbr_noise(bitfile *ld, sbr_info *sbr, uint8_t ch); 41 | 42 | #ifdef __cplusplus 43 | } 44 | #endif 45 | #endif 46 | 47 | -------------------------------------------------------------------------------- /plugins/QCDMp4/aacinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: aacinfo.h,v 1.3 2003/12/06 04:24:17 rjamorim Exp $ 26 | **/ 27 | 28 | #ifndef AACINFO_INCLUDED 29 | #define AACINFO_INCLUDED 30 | 31 | typedef struct { 32 | int version; 33 | int channels; 34 | int sampling_rate; 35 | int bitrate; 36 | int length; 37 | int object_type; 38 | int headertype; 39 | } faadAACInfo; 40 | 41 | int get_AAC_format(char *filename, faadAACInfo *info); 42 | 43 | static int read_ADIF_header(FILE *file, faadAACInfo *info); 44 | static int read_ADTS_header(FILE *file, faadAACInfo *info); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /libfaad/sbr_tf_grid.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_tf_grid.h,v 1.17 2007/11/01 12:33:36 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_TF_GRID_H__ 32 | #define __SBR_TF_GRID_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | 39 | uint8_t envelope_time_border_vector(sbr_info *sbr, uint8_t ch); 40 | void noise_floor_time_border_vector(sbr_info *sbr, uint8_t ch); 41 | 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | #endif 47 | 48 | -------------------------------------------------------------------------------- /libfaad/drc.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: drc.h,v 1.22 2007/11/01 12:33:30 menno Exp $ 29 | **/ 30 | 31 | #ifndef __DRC_H__ 32 | #define __DRC_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #define DRC_REF_LEVEL 20*4 /* -20 dB */ 39 | 40 | 41 | drc_info *drc_init(real_t cut, real_t boost); 42 | void drc_end(drc_info *drc); 43 | void drc_decode(drc_info *drc, real_t *spec); 44 | 45 | 46 | #ifdef __cplusplus 47 | } 48 | #endif 49 | #endif 50 | -------------------------------------------------------------------------------- /libfaad/ssr_ipqf.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: ssr_ipqf.h,v 1.17 2007/11/01 12:33:39 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SSR_IPQF_H__ 32 | #define __SSR_IPQF_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | void ssr_ipqf(ssr_info *ssr, real_t *in_data, real_t *out_data, 39 | real_t buffer[SSR_BANDS][96/4], 40 | uint16_t frame_len, uint8_t bands); 41 | 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | #endif 47 | -------------------------------------------------------------------------------- /libfaad/mdct.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: mdct.h,v 1.30 2007/11/01 12:33:31 menno Exp $ 29 | **/ 30 | 31 | #ifndef __MDCT_H__ 32 | #define __MDCT_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | 39 | mdct_info *faad_mdct_init(uint16_t N); 40 | void faad_mdct_end(mdct_info *mdct); 41 | void faad_imdct(mdct_info *mdct, real_t *X_in, real_t *X_out); 42 | void faad_mdct(mdct_info *mdct, real_t *X_in, real_t *X_out); 43 | 44 | 45 | #ifdef __cplusplus 46 | } 47 | #endif 48 | #endif 49 | -------------------------------------------------------------------------------- /plugins/QCD/QCDInputDLL.h: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // File: QCDInputDLL.h 4 | // 5 | // About: QCD Player Input module DLL interface. For more documentation, see 6 | // QCDModInput.h. 7 | // 8 | // Authors: Written by Paul Quinn and Richard Carlson. 9 | // 10 | // QCD multimedia player application Software Development Kit Release 1.0. 11 | // 12 | // Copyright (C) 1997-2002 Quinnware 13 | // 14 | // This code is free. If you redistribute it in any form, leave this notice 15 | // here. 16 | // 17 | // This program is distributed in the hope that it will be useful, 18 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20 | // 21 | //----------------------------------------------------------------------------- 22 | 23 | #ifndef QCDInputDLL_H 24 | #define QCDInputDLL_H 25 | 26 | #include "QCDModInput.h" 27 | 28 | extern HINSTANCE hInstance; 29 | extern HWND hwndPlayer; 30 | extern QCDModInitIn sQCDCallbacks, *QCDCallbacks; 31 | 32 | // Calls from the Player 33 | int GetMediaSupported(const char* medianame, MediaInfo *mediaInfo); 34 | int GetTrackExtents(const char* medianame, TrackExtents *ext, int flags); 35 | int GetCurrentPosition(const char* medianame, long *track, long *offset); 36 | 37 | void SetEQ(EQInfo*); 38 | void SetVolume(int levelleft, int levelright, int flags); 39 | 40 | int Play(const char* medianame, int framefrom, int frameto, int flags); 41 | int Pause(const char* medianame, int flags); 42 | int Stop(const char* medianame, int flags); 43 | int Eject(const char* medianame, int flags); 44 | 45 | int Initialize(QCDModInfo *ModInfo, int flags); 46 | void ShutDown(int flags); 47 | void Configure(int flags); 48 | void About(int flags); 49 | 50 | #endif //QCDInputDLL_H -------------------------------------------------------------------------------- /libfaad/huffman.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: huffman.h,v 1.28 2007/11/01 12:33:30 menno Exp $ 29 | **/ 30 | 31 | #ifndef __HUFFMAN_H__ 32 | #define __HUFFMAN_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | int8_t huffman_scale_factor(bitfile *ld); 39 | uint8_t huffman_spectral_data(uint8_t cb, bitfile *ld, int16_t *sp); 40 | #ifdef ERROR_RESILIENCE 41 | int8_t huffman_spectral_data_2(uint8_t cb, bits_t *ld, int16_t *sp); 42 | #endif 43 | 44 | #ifdef __cplusplus 45 | } 46 | #endif 47 | #endif 48 | -------------------------------------------------------------------------------- /plugins/QCDMp4/config.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: config.c,v 1.3 2003/12/06 04:24:17 rjamorim Exp $ 26 | **/ 27 | 28 | #define WIN32_LEAN_AND_MEAN 29 | #include 30 | #include "config.h" 31 | 32 | char app_name[] = "AudioCoding.com MPEG-4 General Audio player"; 33 | char INI_FILE[MAX_PATH]; 34 | int m_priority = 3; 35 | int m_resolution = 0; 36 | int m_show_errors = 1; 37 | int m_use_for_aac = 1; 38 | int m_downmix = 0; 39 | int m_vbr_display = 0; 40 | char titleformat[MAX_PATH]; 41 | 42 | void _r_s(char *name,char *data, int mlen) 43 | { 44 | char buf[10]; 45 | strcpy(buf,data); 46 | GetPrivateProfileString(app_name,name,buf,data,mlen,INI_FILE); 47 | } 48 | 49 | -------------------------------------------------------------------------------- /libfaad/analysis.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: analysis.h,v 1.18 2007/11/01 12:33:29 menno Exp $ 29 | **/ 30 | 31 | #ifndef __ANALYSIS_H__ 32 | #define __ANALYSIS_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | 39 | #ifdef ANALYSIS 40 | #define DEBUGDEC ,uint8_t print,uint16_t var,uint8_t *dbg 41 | #define DEBUGVAR(A,B,C) ,A,B,C 42 | extern uint16_t dbg_count; 43 | #else 44 | #define DEBUGDEC 45 | #define DEBUGVAR(A,B,C) 46 | #endif 47 | 48 | 49 | #ifdef __cplusplus 50 | } 51 | #endif 52 | #endif 53 | -------------------------------------------------------------------------------- /libfaad/sbr_hfgen.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_hfgen.h,v 1.20 2007/11/01 12:33:35 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_HFGEN_H__ 32 | #define __SBR_HFGEN_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | void hf_generation(sbr_info *sbr, qmf_t Xlow[MAX_NTSRHFG][64], 39 | qmf_t Xhigh[MAX_NTSRHFG][64] 40 | #ifdef SBR_LOW_POWER 41 | ,real_t *deg 42 | #endif 43 | ,uint8_t ch); 44 | 45 | #ifdef __cplusplus 46 | } 47 | #endif 48 | #endif 49 | 50 | -------------------------------------------------------------------------------- /libfaad/output.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: output.h,v 1.26 2009/01/26 23:51:15 menno Exp $ 29 | **/ 30 | 31 | #ifndef __OUTPUT_H__ 32 | #define __OUTPUT_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | void* output_to_PCM(NeAACDecStruct *hDecoder, 39 | real_t **input, 40 | void *samplebuffer, 41 | uint8_t channels, 42 | uint16_t frame_len, 43 | uint8_t format); 44 | 45 | #ifdef __cplusplus 46 | } 47 | #endif 48 | #endif 49 | -------------------------------------------------------------------------------- /libfaad/sbr_e_nf.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_e_nf.h,v 1.18 2007/11/01 12:33:35 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_E_NF_H__ 32 | #define __SBR_E_NF_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | 39 | void extract_envelope_data(sbr_info *sbr, uint8_t ch); 40 | void extract_noise_floor_data(sbr_info *sbr, uint8_t ch); 41 | #ifndef FIXED_POINT 42 | void envelope_noise_dequantisation(sbr_info *sbr, uint8_t ch); 43 | void unmap_envelope_noise(sbr_info *sbr); 44 | #endif 45 | 46 | #ifdef __cplusplus 47 | } 48 | #endif 49 | #endif 50 | 51 | -------------------------------------------------------------------------------- /libfaad/rvlc.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: rvlc.h,v 1.17 2007/11/01 12:33:34 menno Exp $ 29 | **/ 30 | 31 | #ifndef __RVLC_SCF_H__ 32 | #define __RVLC_SCF_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | typedef struct 39 | { 40 | int8_t index; 41 | uint8_t len; 42 | uint32_t cw; 43 | } rvlc_huff_table; 44 | 45 | 46 | #define ESC_VAL 7 47 | 48 | 49 | uint8_t rvlc_scale_factor_data(ic_stream *ics, bitfile *ld); 50 | uint8_t rvlc_decode_scale_factors(ic_stream *ics, bitfile *ld); 51 | 52 | 53 | #ifdef __cplusplus 54 | } 55 | #endif 56 | #endif 57 | -------------------------------------------------------------------------------- /libfaad/cfft.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: cfft.h,v 1.24 2007/11/01 12:33:29 menno Exp $ 29 | **/ 30 | 31 | #ifndef __CFFT_H__ 32 | #define __CFFT_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | typedef struct 39 | { 40 | uint16_t n; 41 | uint16_t ifac[15]; 42 | complex_t *work; 43 | complex_t *tab; 44 | } cfft_info; 45 | 46 | 47 | void cfftf(cfft_info *cfft, complex_t *c); 48 | void cfftb(cfft_info *cfft, complex_t *c); 49 | cfft_info *cffti(uint16_t n); 50 | void cfftu(cfft_info *cfft); 51 | 52 | 53 | #ifdef __cplusplus 54 | } 55 | #endif 56 | #endif 57 | -------------------------------------------------------------------------------- /libfaad/tns.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: tns.h,v 1.23 2007/11/01 12:33:41 menno Exp $ 29 | **/ 30 | 31 | #ifndef __TNS_H__ 32 | #define __TNS_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | 39 | #define TNS_MAX_ORDER 20 40 | 41 | 42 | void tns_decode_frame(ic_stream *ics, tns_info *tns, uint8_t sr_index, 43 | uint8_t object_type, real_t *spec, uint16_t frame_len); 44 | void tns_encode_frame(ic_stream *ics, tns_info *tns, uint8_t sr_index, 45 | uint8_t object_type, real_t *spec, uint16_t frame_len); 46 | 47 | 48 | #ifdef __cplusplus 49 | } 50 | #endif 51 | #endif 52 | -------------------------------------------------------------------------------- /libfaad/sbr_dct.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_dct.h,v 1.19 2007/11/01 12:33:34 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_DCT_H__ 32 | #define __SBR_DCT_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | void dct4_kernel(real_t * in_real, real_t * in_imag, real_t * out_real, real_t * out_imag); 39 | 40 | void DCT3_32_unscaled(real_t *y, real_t *x); 41 | void DCT4_32(real_t *y, real_t *x); 42 | void DST4_32(real_t *y, real_t *x); 43 | void DCT2_32_unscaled(real_t *y, real_t *x); 44 | void DCT4_16(real_t *y, real_t *x); 45 | void DCT2_16_unscaled(real_t *y, real_t *x); 46 | 47 | 48 | #ifdef __cplusplus 49 | } 50 | #endif 51 | #endif 52 | 53 | -------------------------------------------------------------------------------- /libfaad/sbr_hfadj.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_hfadj.h,v 1.19 2007/11/01 12:33:35 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_HFADJ_H__ 32 | #define __SBR_HFADJ_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | typedef struct 39 | { 40 | real_t G_lim_boost[MAX_L_E][MAX_M]; 41 | real_t Q_M_lim_boost[MAX_L_E][MAX_M]; 42 | real_t S_M_boost[MAX_L_E][MAX_M]; 43 | } sbr_hfadj_info; 44 | 45 | 46 | uint8_t hf_adjustment(sbr_info *sbr, qmf_t Xsbr[MAX_NTSRHFG][64] 47 | #ifdef SBR_LOW_POWER 48 | ,real_t *deg 49 | #endif 50 | ,uint8_t ch); 51 | 52 | 53 | #ifdef __cplusplus 54 | } 55 | #endif 56 | #endif 57 | 58 | -------------------------------------------------------------------------------- /aacDECdrop/aacDECdrop/aacDECdrop.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual C++ Express 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aacDECdrop", "aacDECdrop.vcproj", "{C23A88D7-4997-4026-BBDB-5B0B2B22FDFF}" 4 | ProjectSection(ProjectDependencies) = postProject 5 | {F470BB4A-7675-4D6A-B310-41F33AC6F987} = {F470BB4A-7675-4D6A-B310-41F33AC6F987} 6 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114} = {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114} 7 | EndProjectSection 8 | EndProject 9 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "..\..\libfaad\libfaad.vcproj", "{BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}" 10 | EndProject 11 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mp4ff", "..\..\common\mp4ff\mp4ff.vcproj", "{F470BB4A-7675-4D6A-B310-41F33AC6F987}" 12 | EndProject 13 | Global 14 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 15 | Debug|Win32 = Debug|Win32 16 | Release|Win32 = Release|Win32 17 | EndGlobalSection 18 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 19 | {C23A88D7-4997-4026-BBDB-5B0B2B22FDFF}.Debug|Win32.ActiveCfg = Debug|Win32 20 | {C23A88D7-4997-4026-BBDB-5B0B2B22FDFF}.Debug|Win32.Build.0 = Debug|Win32 21 | {C23A88D7-4997-4026-BBDB-5B0B2B22FDFF}.Release|Win32.ActiveCfg = Release|Win32 22 | {C23A88D7-4997-4026-BBDB-5B0B2B22FDFF}.Release|Win32.Build.0 = Release|Win32 23 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.ActiveCfg = Debug|Win32 24 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.ActiveCfg = Release|Win32 25 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Debug|Win32.ActiveCfg = Debug|Win32 26 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Debug|Win32.Build.0 = Debug|Win32 27 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Release|Win32.ActiveCfg = Release|Win32 28 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Release|Win32.Build.0 = Release|Win32 29 | EndGlobalSection 30 | GlobalSection(SolutionProperties) = preSolution 31 | HideSolutionNode = FALSE 32 | EndGlobalSection 33 | EndGlobal 34 | -------------------------------------------------------------------------------- /libfaad/specrec.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: specrec.h,v 1.33 2009/01/26 23:51:15 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SPECREC_H__ 32 | #define __SPECREC_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "syntax.h" 39 | 40 | uint8_t window_grouping_info(NeAACDecStruct *hDecoder, ic_stream *ics); 41 | uint8_t reconstruct_channel_pair(NeAACDecStruct *hDecoder, ic_stream *ics1, ic_stream *ics2, 42 | element *cpe, int16_t *spec_data1, int16_t *spec_data2); 43 | uint8_t reconstruct_single_channel(NeAACDecStruct *hDecoder, ic_stream *ics, element *sce, 44 | int16_t *spec_data); 45 | 46 | #ifdef __cplusplus 47 | } 48 | #endif 49 | #endif 50 | -------------------------------------------------------------------------------- /libfaad/ssr_fb.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: ssr_fb.h,v 1.16 2007/11/01 12:33:36 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SSR_FB_H__ 32 | #define __SSR_FB_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | fb_info *ssr_filter_bank_init(uint16_t frame_len); 39 | void ssr_filter_bank_end(fb_info *fb); 40 | 41 | /*non overlapping inverse filterbank */ 42 | void ssr_ifilter_bank(fb_info *fb, 43 | uint8_t window_sequence, 44 | uint8_t window_shape, 45 | uint8_t window_shape_prev, 46 | real_t *freq_in, 47 | real_t *time_out, 48 | uint16_t frame_len); 49 | 50 | #ifdef __cplusplus 51 | } 52 | #endif 53 | #endif 54 | -------------------------------------------------------------------------------- /libfaad/mp4.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: mp4.h,v 1.28 2009/02/05 00:51:03 menno Exp $ 29 | **/ 30 | 31 | #ifndef __MP4_H__ 32 | #define __MP4_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "neaacdec.h" 39 | 40 | int8_t AudioSpecificConfig2(uint8_t *pBuffer, 41 | uint32_t buffer_size, 42 | mp4AudioSpecificConfig *mp4ASC, 43 | program_config *pce, uint8_t short_form); 44 | 45 | int8_t AudioSpecificConfigFromBitfile(bitfile *ld, 46 | mp4AudioSpecificConfig *mp4ASC, 47 | program_config *pce, uint32_t bsize, uint8_t short_form); 48 | 49 | #ifdef __cplusplus 50 | } 51 | #endif 52 | #endif 53 | -------------------------------------------------------------------------------- /libfaad/pns.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: pns.h,v 1.27 2007/11/01 12:33:33 menno Exp $ 29 | **/ 30 | 31 | #ifndef __PNS_H__ 32 | #define __PNS_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "syntax.h" 39 | 40 | #define NOISE_OFFSET 90 41 | 42 | void pns_decode(ic_stream *ics_left, ic_stream *ics_right, 43 | real_t *spec_left, real_t *spec_right, uint16_t frame_len, 44 | uint8_t channel_pair, uint8_t object_type, 45 | /* RNG states */ uint32_t *__r1, uint32_t *__r2); 46 | 47 | static INLINE uint8_t is_noise(ic_stream *ics, uint8_t group, uint8_t sfb) 48 | { 49 | if (ics->sfb_cb[group][sfb] == NOISE_HCB) 50 | return 1; 51 | return 0; 52 | } 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | #endif 58 | -------------------------------------------------------------------------------- /common/faad/aacinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: aacinfo.h,v 1.3 2003/07/29 08:20:11 menno Exp $ 26 | **/ 27 | 28 | #ifndef AACINFO_H__ 29 | #define AACINFO_H__ 30 | 31 | #include "filestream.h" 32 | 33 | typedef struct { 34 | int version; 35 | int channels; 36 | int sampling_rate; 37 | int bitrate; 38 | int length; 39 | int object_type; 40 | int headertype; 41 | } faadAACInfo; 42 | 43 | int get_AAC_format(char *filename, faadAACInfo *info, 44 | unsigned long **seek_table, int *seek_table_len, 45 | int no_seek_table); 46 | 47 | static int read_ADIF_header(FILE_STREAM *file, faadAACInfo *info); 48 | static int read_ADTS_header(FILE_STREAM *file, faadAACInfo *info, 49 | unsigned long **seek_table, int *seek_table_len, 50 | int tagsize, int no_seek_table); 51 | int StringComp(char const *str1, char const *str2, unsigned long len); 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /frontend/faad.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 9.00 3 | # Visual Studio 2005 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "faad", "faad.vcproj", "{2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}" 5 | ProjectSection(ProjectDependencies) = postProject 6 | {F470BB4A-7675-4D6A-B310-41F33AC6F987} = {F470BB4A-7675-4D6A-B310-41F33AC6F987} 7 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114} = {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114} 8 | EndProjectSection 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "..\libfaad\libfaad.vcproj", "{BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}" 11 | EndProject 12 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mp4ff", "..\common\mp4ff\mp4ff.vcproj", "{F470BB4A-7675-4D6A-B310-41F33AC6F987}" 13 | EndProject 14 | Global 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 16 | Debug|Win32 = Debug|Win32 17 | Release|Win32 = Release|Win32 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Debug|Win32.ActiveCfg = Debug|Win32 21 | {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Debug|Win32.Build.0 = Debug|Win32 22 | {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Release|Win32.ActiveCfg = Release|Win32 23 | {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Release|Win32.Build.0 = Release|Win32 24 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.ActiveCfg = Debug|Win32 25 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.Build.0 = Debug|Win32 26 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.ActiveCfg = Release|Win32 27 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.Build.0 = Release|Win32 28 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Debug|Win32.ActiveCfg = Debug|Win32 29 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Debug|Win32.Build.0 = Debug|Win32 30 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Release|Win32.ActiveCfg = Release|Win32 31 | {F470BB4A-7675-4D6A-B310-41F33AC6F987}.Release|Win32.Build.0 = Release|Win32 32 | EndGlobalSection 33 | GlobalSection(SolutionProperties) = preSolution 34 | HideSolutionNode = FALSE 35 | EndGlobalSection 36 | EndGlobal 37 | -------------------------------------------------------------------------------- /plugins/QCDMp4/mbs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * The contents of this file are subject to the Mozilla Public 3 | * License Version 1.1 (the "License"); you may not use this file 4 | * except in compliance with the License. You may obtain a copy of 5 | * the License at http://www.mozilla.org/MPL/ 6 | * 7 | * Software distributed under the License is distributed on an "AS 8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 | * implied. See the License for the specific language governing 10 | * rights and limitations under the License. 11 | * 12 | * The Original Code is MPEG4IP. 13 | * 14 | * The Initial Developer of the Original Code is Cisco Systems Inc. 15 | * Portions created by Cisco Systems Inc. are 16 | * Copyright (C) Cisco Systems Inc. 2001-2002. All Rights Reserved. 17 | * 18 | * Contributor(s): 19 | * Dave Mackie dmackie@cisco.com 20 | */ 21 | 22 | #ifndef __MBS_INCLUDED__ 23 | #define __MBS_INCLUDED__ 24 | 25 | class CMemoryBitstream { 26 | public: 27 | CMemoryBitstream() { 28 | m_pBuf = NULL; 29 | m_bitPos = 0; 30 | m_numBits = 0; 31 | } 32 | 33 | void AllocBytes(u_int32_t numBytes); 34 | 35 | void SetBytes(u_int8_t* pBytes, u_int32_t numBytes); 36 | 37 | void PutBytes(u_int8_t* pBytes, u_int32_t numBytes); 38 | 39 | void PutBits(u_int32_t bits, u_int32_t numBits); 40 | 41 | u_int32_t GetBits(u_int32_t numBits); 42 | 43 | void SkipBytes(u_int32_t numBytes) { 44 | SkipBits(numBytes << 3); 45 | } 46 | 47 | void SkipBits(u_int32_t numBits) { 48 | SetBitPosition(GetBitPosition() + numBits); 49 | } 50 | 51 | u_int32_t GetBitPosition() { 52 | return m_bitPos; 53 | } 54 | 55 | void SetBitPosition(u_int32_t bitPos) { 56 | if (bitPos > m_numBits) { 57 | throw; 58 | } 59 | m_bitPos = bitPos; 60 | } 61 | 62 | u_int8_t* GetBuffer() { 63 | return m_pBuf; 64 | } 65 | 66 | u_int32_t GetNumberOfBytes() { 67 | return (GetNumberOfBits() + 7) / 8; 68 | } 69 | 70 | u_int32_t GetNumberOfBits() { 71 | return m_numBits; 72 | } 73 | 74 | protected: 75 | u_int8_t* m_pBuf; 76 | u_int32_t m_bitPos; 77 | u_int32_t m_numBits; 78 | }; 79 | 80 | #endif /* __MBS_INCLUDED__ */ 81 | 82 | -------------------------------------------------------------------------------- /common/faad/id3v2tag.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: id3v2tag.h,v 1.3 2003/07/29 08:20:11 menno Exp $ 26 | **/ 27 | 28 | #ifndef __ID3V2TAG_H__ 29 | #define __ID3V2TAG_H__ 30 | 31 | void GetID3FileTitle(char *filename, char *title, char *format); 32 | void FillID3List(HWND hwndDlg, HWND hwndList, char *filename); 33 | void List_OnGetDispInfo(LV_DISPINFO *pnmv); 34 | BOOL List_EditData(HWND hwndApp, HWND hwndList); 35 | void List_SaveID3(HWND hwndApp, HWND hwndList, char *filename); 36 | BOOL List_DeleteSelected(HWND hwndApp, HWND hwndList); 37 | BOOL List_AddFrame(HWND hwndApp, HWND hwndList); 38 | BOOL List_AddStandardFrames(HWND hwndApp, HWND hwndList); 39 | void AddFrameFromRAWData(HWND hwndList, int frameId, LPSTR data1, LPSTR data2); 40 | 41 | HINSTANCE hInstance_for_id3editor; 42 | 43 | typedef struct ID3GENRES_TAG 44 | { 45 | BYTE id; 46 | char name[30]; 47 | } ID3GENRES; 48 | 49 | typedef struct id3item_tag { 50 | int frameId; 51 | LPSTR aCols[2]; 52 | } ID3ITEM; 53 | 54 | #endif -------------------------------------------------------------------------------- /plugins/QCDMp4/QCDMp4.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 9.00 2 | # Visual Studio 2005 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QCDMp4", "QCDMp4.vcproj", "{2D8F479D-A591-4502-9456-398425D5F834}" 4 | ProjectSection(ProjectDependencies) = postProject 5 | {2398BB2F-FFF9-490B-B4CC-863F2D21AE46} = {2398BB2F-FFF9-490B-B4CC-863F2D21AE46} 6 | {8CAC9E26-BAA5-45A4-8721-E3170B3F8F49} = {8CAC9E26-BAA5-45A4-8721-E3170B3F8F49} 7 | EndProjectSection 8 | EndProject 9 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "..\..\libfaad\libfaad.vcproj", "{BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}" 10 | EndProject 11 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp4v2_st", "..\..\common\mp4v2\libmp4v2_st60.vcproj", "{2398BB2F-FFF9-490B-B4CC-863F2D21AE46}" 12 | EndProject 13 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp4av_st", "..\..\common\mp4av\libmp4av_st.vcproj", "{8CAC9E26-BAA5-45A4-8721-E3170B3F8F49}" 14 | EndProject 15 | Global 16 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 17 | Debug|Win32 = Debug|Win32 18 | Release|Win32 = Release|Win32 19 | EndGlobalSection 20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 21 | {2D8F479D-A591-4502-9456-398425D5F834}.Debug|Win32.ActiveCfg = Debug|Win32 22 | {2D8F479D-A591-4502-9456-398425D5F834}.Debug|Win32.Build.0 = Debug|Win32 23 | {2D8F479D-A591-4502-9456-398425D5F834}.Release|Win32.ActiveCfg = Release|Win32 24 | {2D8F479D-A591-4502-9456-398425D5F834}.Release|Win32.Build.0 = Release|Win32 25 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.ActiveCfg = Debug|Win32 26 | {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.ActiveCfg = Release|Win32 27 | {2398BB2F-FFF9-490B-B4CC-863F2D21AE46}.Debug|Win32.ActiveCfg = Debug|Win32 28 | {2398BB2F-FFF9-490B-B4CC-863F2D21AE46}.Release|Win32.ActiveCfg = Release|Win32 29 | {8CAC9E26-BAA5-45A4-8721-E3170B3F8F49}.Debug|Win32.ActiveCfg = Debug|Win32 30 | {8CAC9E26-BAA5-45A4-8721-E3170B3F8F49}.Release|Win32.ActiveCfg = Release|Win32 31 | EndGlobalSection 32 | GlobalSection(SolutionProperties) = preSolution 33 | HideSolutionNode = FALSE 34 | EndGlobalSection 35 | EndGlobal 36 | -------------------------------------------------------------------------------- /libfaad/pulse.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: pulse.c,v 1.21 2007/11/01 12:33:34 menno Exp $ 29 | **/ 30 | #include "common.h" 31 | #include "structs.h" 32 | 33 | #include "syntax.h" 34 | #include "pulse.h" 35 | 36 | uint8_t pulse_decode(ic_stream *ics, int16_t *spec_data, uint16_t framelen) 37 | { 38 | uint8_t i; 39 | uint16_t k; 40 | pulse_info *pul = &(ics->pul); 41 | 42 | k = min(ics->swb_offset[pul->pulse_start_sfb], ics->swb_offset_max); 43 | 44 | for (i = 0; i <= pul->number_pulse; i++) 45 | { 46 | k += pul->pulse_offset[i]; 47 | 48 | if (k >= framelen) 49 | return 15; /* should not be possible */ 50 | 51 | if (spec_data[k] > 0) 52 | spec_data[k] += pul->pulse_amp[i]; 53 | else 54 | spec_data[k] -= pul->pulse_amp[i]; 55 | } 56 | 57 | return 0; 58 | } 59 | -------------------------------------------------------------------------------- /libfaad/sbr_syntax.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_syntax.h,v 1.23 2007/11/01 12:33:36 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_SYNTAX_H__ 32 | #define __SBR_SYNTAX_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "bits.h" 39 | 40 | #define T_HFGEN 8 41 | #define T_HFADJ 2 42 | 43 | #define EXT_SBR_DATA 13 44 | #define EXT_SBR_DATA_CRC 14 45 | 46 | #define FIXFIX 0 47 | #define FIXVAR 1 48 | #define VARFIX 2 49 | #define VARVAR 3 50 | 51 | #define LO_RES 0 52 | #define HI_RES 1 53 | 54 | #define NO_TIME_SLOTS_960 15 55 | #define NO_TIME_SLOTS 16 56 | #define RATE 2 57 | 58 | #define NOISE_FLOOR_OFFSET 6 59 | 60 | 61 | uint8_t sbr_extension_data(bitfile *ld, sbr_info *sbr, uint16_t cnt, 62 | uint8_t resetFlag); 63 | 64 | #ifdef __cplusplus 65 | } 66 | #endif 67 | #endif /* __SBR_SYNTAX_H__ */ 68 | 69 | -------------------------------------------------------------------------------- /libfaad/sbr_qmf.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_qmf.h,v 1.25 2007/11/01 12:33:36 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_QMF_H__ 32 | #define __SBR_QMF_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | qmfa_info *qmfa_init(uint8_t channels); 39 | void qmfa_end(qmfa_info *qmfa); 40 | qmfs_info *qmfs_init(uint8_t channels); 41 | void qmfs_end(qmfs_info *qmfs); 42 | 43 | void sbr_qmf_analysis_32(sbr_info *sbr, qmfa_info *qmfa, const real_t *input, 44 | qmf_t X[MAX_NTSRHFG][64], uint8_t offset, uint8_t kx); 45 | void sbr_qmf_synthesis_32(sbr_info *sbr, qmfs_info *qmfs, qmf_t X[MAX_NTSRHFG][64], 46 | real_t *output); 47 | void sbr_qmf_synthesis_64(sbr_info *sbr, qmfs_info *qmfs, qmf_t X[MAX_NTSRHFG][64], 48 | real_t *output); 49 | 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | #endif 55 | 56 | -------------------------------------------------------------------------------- /common/faad/filestream.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: filestream.h,v 1.3 2003/07/29 08:20:11 menno Exp $ 26 | **/ 27 | 28 | #ifndef FILESTREAM_H 29 | #define FILESTREAM_H 30 | 31 | typedef struct { 32 | HANDLE stream; 33 | unsigned short inetStream; 34 | unsigned char *data; 35 | int http; 36 | int buffer_offset; 37 | int buffer_length; 38 | int file_offset; 39 | int http_file_length; 40 | } FILE_STREAM; 41 | 42 | extern long m_local_buffer_size; 43 | extern long m_stream_buffer_size; 44 | 45 | FILE_STREAM *open_filestream(char *filename); 46 | int read_byte_filestream(FILE_STREAM *fs); 47 | int read_buffer_filestream(FILE_STREAM *fs, void *data, int length); 48 | unsigned long filelength_filestream(FILE_STREAM *fs); 49 | void close_filestream(FILE_STREAM *fs); 50 | void seek_filestream(FILE_STREAM *fs, unsigned long offset, int mode); 51 | unsigned long tell_filestream(FILE_STREAM *fs); 52 | int http_file_open(char *url, FILE_STREAM *fs); 53 | 54 | int WinsockInit(); 55 | void WinsockDeInit(); 56 | void CloseTCP(int s); 57 | #endif -------------------------------------------------------------------------------- /libfaad/is.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: is.h,v 1.20 2007/11/01 12:33:31 menno Exp $ 29 | **/ 30 | 31 | #ifndef __IS_H__ 32 | #define __IS_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "syntax.h" 39 | 40 | void is_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec, 41 | uint16_t frame_len); 42 | 43 | static INLINE int8_t is_intensity(ic_stream *ics, uint8_t group, uint8_t sfb) 44 | { 45 | switch (ics->sfb_cb[group][sfb]) 46 | { 47 | case INTENSITY_HCB: 48 | return 1; 49 | case INTENSITY_HCB2: 50 | return -1; 51 | default: 52 | return 0; 53 | } 54 | } 55 | 56 | static INLINE int8_t invert_intensity(ic_stream *ics, uint8_t group, uint8_t sfb) 57 | { 58 | if (ics->ms_mask_present == 1) 59 | return (1-2*ics->ms_used[group][sfb]); 60 | return 1; 61 | } 62 | 63 | 64 | #ifdef __cplusplus 65 | } 66 | #endif 67 | #endif 68 | -------------------------------------------------------------------------------- /libfaad/sbr_fbt.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: sbr_fbt.h,v 1.18 2007/11/01 12:33:35 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SBR_FBT_H__ 32 | #define __SBR_FBT_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | uint8_t qmf_start_channel(uint8_t bs_start_freq, uint8_t bs_samplerate_mode, 39 | uint32_t sample_rate); 40 | uint8_t qmf_stop_channel(uint8_t bs_stop_freq, uint32_t sample_rate, 41 | uint8_t k0); 42 | uint8_t master_frequency_table_fs0(sbr_info *sbr, uint8_t k0, uint8_t k2, 43 | uint8_t bs_alter_scale); 44 | uint8_t master_frequency_table(sbr_info *sbr, uint8_t k0, uint8_t k2, 45 | uint8_t bs_freq_scale, uint8_t bs_alter_scale); 46 | uint8_t derived_frequency_table(sbr_info *sbr, uint8_t bs_xover_band, 47 | uint8_t k2); 48 | void limiter_frequency_table(sbr_info *sbr); 49 | 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | #endif 55 | 56 | -------------------------------------------------------------------------------- /aacDECdrop/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Script.rc 4 | // 5 | #define IDD_VOLUME 101 6 | #define IDD_ABOUT 102 7 | #define IDB_TF01 112 8 | #define IDB_TF02 113 9 | #define IDB_TF03 114 10 | #define IDB_TF04 115 11 | #define IDB_TF05 116 12 | #define IDB_TF06 117 13 | #define IDB_TF07 118 14 | #define IDB_TF08 119 15 | #define IDR_MENU1 124 16 | #define IDI_ICON1 130 17 | #define IDC_BUTTON1 1001 18 | #define IDC_PLAYBACK 1005 19 | #define IDC_DECODE 1008 20 | #define IDC_WAV 1014 21 | #define IDC_AIFF 1015 22 | #define IDC_SUNAU 1016 23 | #define IDC_DECAU 1017 24 | #define IDC_16BIT 1018 25 | #define IDC_24BIT 1020 26 | #define IDC_32BIT 1021 27 | #define IDC_FLOATS 1022 28 | #define IDC_MAIN 1023 29 | #define IDC_LC 1024 30 | #define IDC_LTP 1025 31 | #define IDC_LD 1026 32 | #define IDC_16BIT_DITHER 1027 33 | #define IDC_16BIT_L_SHAPE 1028 34 | #define IDC_16BIT_M_SHAPE 1029 35 | #define IDC_16BIT_H_SHAPE 1030 36 | #define IDC_BUTTON6 1033 37 | #define IDM_VOLUME 40005 38 | #define IDM_STOP_DEC 40006 39 | #define IDM_ABOUT 40007 40 | #define IDM_LOGERR 40008 41 | #define IDM_ONTOP 40015 42 | #define IDM_QUIT 40019 43 | 44 | // Next default values for new objects 45 | // 46 | #ifdef APSTUDIO_INVOKED 47 | #ifndef APSTUDIO_READONLY_SYMBOLS 48 | #define _APS_NO_MFC 1 49 | #define _APS_NEXT_RESOURCE_VALUE 134 50 | #define _APS_NEXT_COMMAND_VALUE 40018 51 | #define _APS_NEXT_CONTROL_VALUE 1031 52 | #define _APS_NEXT_SYMED_VALUE 101 53 | #endif 54 | #endif 55 | -------------------------------------------------------------------------------- /libfaad/filtbank.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: filtbank.h,v 1.27 2007/11/01 12:33:30 menno Exp $ 29 | **/ 30 | 31 | #ifndef __FILTBANK_H__ 32 | #define __FILTBANK_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | 39 | fb_info *filter_bank_init(uint16_t frame_len); 40 | void filter_bank_end(fb_info *fb); 41 | 42 | #ifdef LTP_DEC 43 | void filter_bank_ltp(fb_info *fb, 44 | uint8_t window_sequence, 45 | uint8_t window_shape, 46 | uint8_t window_shape_prev, 47 | real_t *in_data, 48 | real_t *out_mdct, 49 | uint8_t object_type, 50 | uint16_t frame_len); 51 | #endif 52 | 53 | void ifilter_bank(fb_info *fb, uint8_t window_sequence, uint8_t window_shape, 54 | uint8_t window_shape_prev, real_t *freq_in, 55 | real_t *time_out, real_t *overlap, 56 | uint8_t object_type, uint16_t frame_len); 57 | 58 | #ifdef __cplusplus 59 | } 60 | #endif 61 | #endif 62 | -------------------------------------------------------------------------------- /libfaad/lt_predict.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: lt_predict.h,v 1.20 2007/11/01 12:33:31 menno Exp $ 29 | **/ 30 | 31 | #ifdef LTP_DEC 32 | 33 | #ifndef __LT_PREDICT_H__ 34 | #define __LT_PREDICT_H__ 35 | 36 | #ifdef __cplusplus 37 | extern "C" { 38 | #endif 39 | 40 | #include "filtbank.h" 41 | 42 | uint8_t is_ltp_ot(uint8_t object_type); 43 | 44 | void lt_prediction(ic_stream *ics, 45 | ltp_info *ltp, 46 | real_t *spec, 47 | int16_t *lt_pred_stat, 48 | fb_info *fb, 49 | uint8_t win_shape, 50 | uint8_t win_shape_prev, 51 | uint8_t sr_index, 52 | uint8_t object_type, 53 | uint16_t frame_len); 54 | 55 | void lt_update_state(int16_t *lt_pred_stat, 56 | real_t *time, 57 | real_t *overlap, 58 | uint16_t frame_len, 59 | uint8_t object_type); 60 | 61 | #ifdef __cplusplus 62 | } 63 | #endif 64 | #endif 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /plugins/QCDMp4/QCDModTagEditor.h: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // 3 | // File: QCDModTagEditor 4 | // 5 | // About: Tag Editing plugin module interface. This file is published with the 6 | // QCD plugin SDK. 7 | // 8 | // Authors: Written by Paul Quinn 9 | // 10 | // Copyright: 11 | // 12 | // QCD multimedia player application Software Development Kit Release 1.0. 13 | // 14 | // Copyright (C) 2002 Quinnware 15 | // 16 | // This code is free. If you redistribute it in any form, leave this notice 17 | // here. 18 | // 19 | // This program is distributed in the hope that it will be useful, 20 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22 | // 23 | //----------------------------------------------------------------------------- 24 | 25 | #ifndef QCDMODTAGEDITOR_H 26 | #define QCDMODTAGEDITOR_H 27 | 28 | #include "QCDModDefs.h" 29 | 30 | // name of the DLL export for output plugins 31 | #define TAGEDITORDLL_ENTRY_POINT QTagEditorModule 32 | 33 | // Tag field ids 34 | typedef enum 35 | { 36 | TAGFIELD_FIRSTFIELD = 0, 37 | 38 | TAGFIELD_TITLE = 0, 39 | TAGFIELD_ARTIST, 40 | TAGFIELD_ALBUM, 41 | TAGFIELD_GENRE, 42 | TAGFIELD_YEAR, 43 | TAGFIELD_TRACK, 44 | TAGFIELD_COMMENT, 45 | 46 | TAGFIELD_COMPOSER, 47 | TAGFIELD_CONDUCTOR, 48 | TAGFIELD_ORCHESTRA, 49 | TAGFIELD_YEARCOMPOSED, 50 | 51 | TAGFIELD_ORIGARTIST, 52 | TAGFIELD_LABEL, 53 | TAGFIELD_COPYRIGHT, 54 | TAGFIELD_ENCODER, 55 | TAGFIELD_CDDBTAGID, 56 | 57 | TAGFIELD_FIELDCOUNT 58 | }; 59 | 60 | //----------------------------------------------------------------------------- 61 | 62 | typedef struct 63 | { 64 | UINT size; // size of init structure 65 | UINT version; // plugin structure version (set to PLUGIN_API_VERSION) 66 | 67 | LPCSTR description; 68 | LPCSTR defaultexts; 69 | 70 | bool (*Read)(LPCSTR filename, void* tagHandle); 71 | bool (*Write)(LPCSTR filename, void* tagHandle); 72 | bool (*Strip)(LPCSTR filename); 73 | 74 | void (*ShutDown)(int flags); 75 | 76 | void (*SetFieldA)(void* tagHandle, int fieldId, LPCSTR szNewText); 77 | void (*SetFieldW)(void* tagHandle, int fieldId, LPCWSTR szNewText); 78 | 79 | LPCSTR (*GetFieldA)(void* tagHandle, int fieldId); 80 | LPCWSTR (*GetFieldW)(void* tagHandle, int fieldId); 81 | 82 | } QCDModInitTag; 83 | 84 | #endif //QCDMODTAGEDITOR_H -------------------------------------------------------------------------------- /libfaad/ssr.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: ssr.h,v 1.19 2007/11/01 12:33:36 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SSR_H__ 32 | #define __SSR_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #define SSR_BANDS 4 39 | #define PQFTAPS 96 40 | 41 | void ssr_decode(ssr_info *ssr, fb_info *fb, uint8_t window_sequence, 42 | uint8_t window_shape, uint8_t window_shape_prev, 43 | real_t *freq_in, real_t *time_out, real_t *overlap, 44 | real_t ipqf_buffer[SSR_BANDS][96/4], 45 | real_t *prev_fmd, uint16_t frame_len); 46 | 47 | 48 | static void ssr_gain_control(ssr_info *ssr, real_t *data, real_t *output, 49 | real_t *overlap, real_t *prev_fmd, uint8_t band, 50 | uint8_t window_sequence, uint16_t frame_len); 51 | static void ssr_gc_function(ssr_info *ssr, real_t *prev_fmd, 52 | real_t *gc_function, uint8_t window_sequence, 53 | uint16_t frame_len); 54 | 55 | 56 | #ifdef __cplusplus 57 | } 58 | #endif 59 | #endif 60 | -------------------------------------------------------------------------------- /frontend/faad.man: -------------------------------------------------------------------------------- 1 | .TH FAAD "1" "October 2006" "faad 2.5" "" 2 | .SH NAME 3 | faad \(em Process an Advanced Audio Codec stream 4 | 5 | .SH "SYNOPSIS" 6 | .B faad 7 | [options] [\-w | \-o | \-a ] input_filename 8 | 9 | .SH "DESCRIPTION" 10 | This utility provides a command line interface to libfaad2. This program reads in MPEG\(hy4 AAC files, processes, and outputs them in either Microsoft WAV, MPEG\(hy4 AAC ADTS, or standard PCM formats. 11 | 12 | .SH "OPTIONS" 13 | .TP 14 | .BI \-a " " ", \-\^\-adtsout" " " 15 | Sets the processing to output to the specified file in MPEG\(hy4 AAC ADTS format 16 | .TP 17 | .BI \-b " " ", \-\^\-bits" " " 18 | Set the output (individual) sample format. The number takes one of the following values: 19 | .RS 20 | .RS 21 | 1: 16\(hybit PCM data (default). 22 | .br 23 | 2: 24\(hybit PCM data. 24 | .br 25 | 3: 32\(hybit PCM data. 26 | .br 27 | 4: 32\(hybit floating\hy(point data. 28 | .br 29 | 5: 64\(hybit floating\hy(point data. 30 | .RE 31 | .RE 32 | .TP 33 | .B \-d ", \-\^\-downmix" 34 | Set the processing to downsample from 5.1 (surround sound and bass) channels to 2 channels (stereo). 35 | .TP 36 | .BI \-f " " ", \-\^\-format" " " 37 | Set the output file format. The number takes one of the following values: 38 | .RS 39 | .RS 40 | 1: Microsoft WAV format (default). 41 | .br 42 | 2: Raw PCM data. 43 | .RE 44 | .RE 45 | .TP 46 | .BI \-g 47 | Set the processing to not perform gapless decoding. 48 | .TP 49 | .B \-h ", \-\^\-help" 50 | Shows a usage summary. 51 | .TP 52 | .B \-i ", \-\^\-info" 53 | Shows information about the about the input file. 54 | .TP 55 | .BI \-l " " ", \-\^\-objecttype" " " 56 | Sets the MPEG\hy(4 profile and object type for the processing to use. The number takes one of the following values: 57 | .RS 58 | .RS 59 | 1: Main object type. 60 | .br 61 | 2: Low Complexity (LC) object type (default). 62 | .br 63 | 4: Long Term Prediction (LTP) object type. 64 | .br 65 | 23: Low Delay (LD) object type. 66 | .RE 67 | .RE 68 | .TP 69 | .BI \-o " " ", \-\^\-outfile" " " 70 | Sets the filename for processing output. 71 | .TP 72 | .B \-q ", \-\^\-quiet" 73 | Quiet \- Suppresses status messages during processing. 74 | .TP 75 | .B \-t ", \-\^\-oldformat" 76 | Sets the processing to use the old MPEG\(hy4 AAC ADTS format when outputting in said format. 77 | .TP 78 | .B \-w ", \-\^\-stdio" 79 | Sets the processing output to be sent to the standard out. 80 | 81 | .SH "AUTHOR" 82 | Matthew W. S. Bell 83 | 84 | .SH "SEE ALSO" 85 | \fBfaac\fP(1) -------------------------------------------------------------------------------- /aacDECdrop/audio.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: audio.h,v 1.9 2004/02/06 10:23:27 menno Exp $ 26 | **/ 27 | 28 | #ifndef AUDIO_H_INCLUDED 29 | #define AUDIO_H_INCLUDED 30 | 31 | #ifdef __cplusplus 32 | extern "C" { 33 | #endif 34 | 35 | #define MAXWAVESIZE 4294967040LU 36 | 37 | #define OUTPUT_WAV 1 38 | #define OUTPUT_RAW 2 39 | 40 | typedef struct 41 | { 42 | int outputFormat; 43 | FILE *sndfile; 44 | unsigned int fileType; 45 | unsigned long samplerate; 46 | unsigned int bits_per_sample; 47 | unsigned int channels; 48 | unsigned long total_samples; 49 | long channelMask; 50 | } audio_file; 51 | 52 | audio_file *open_audio_file(char *infile, int samplerate, int channels, 53 | int outputFormat, int fileType, long channelMask); 54 | int write_audio_file(audio_file *aufile, void *sample_buffer, int samples, int offset); 55 | void close_audio_file(audio_file *aufile); 56 | static int write_wav_header(audio_file *aufile); 57 | static int write_wav_extensible_header(audio_file *aufile, long channelMask); 58 | static int write_audio_16bit(audio_file *aufile, void *sample_buffer, 59 | unsigned int samples); 60 | static int write_audio_24bit(audio_file *aufile, void *sample_buffer, 61 | unsigned int samples); 62 | static int write_audio_32bit(audio_file *aufile, void *sample_buffer, 63 | unsigned int samples); 64 | static int write_audio_float(audio_file *aufile, void *sample_buffer, 65 | unsigned int samples); 66 | 67 | 68 | #ifdef __cplusplus 69 | } 70 | #endif 71 | #endif 72 | -------------------------------------------------------------------------------- /plugins/mpeg4ip/faad2.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** MPEG4IP plugin for FAAD2 3 | ** Copyright (C) 2003 Bill May wmay@cisco.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** $Id: faad2.h,v 1.2 2004/01/05 14:05:12 menno Exp $ 20 | **/ 21 | /* 22 | * aa.h - class definition for AAC codec. 23 | */ 24 | 25 | #ifndef __AA_H__ 26 | #define __AA_H__ 1 27 | #include "faad.h" 28 | #include "codec_plugin.h" 29 | 30 | #ifndef M_LLU 31 | #define M_LLU M_64 32 | #define LLU U64 33 | #endif 34 | 35 | typedef struct aac_codec_t { 36 | codec_data_t c; 37 | audio_vft_t *m_vft; 38 | void *m_ifptr; 39 | faacDecHandle m_info; 40 | int m_object_type; 41 | int m_resync_with_header; 42 | int m_record_sync_time; 43 | uint64_t m_current_time; 44 | uint64_t m_last_rtp_ts; 45 | uint64_t m_msec_per_frame; 46 | uint32_t m_current_frame; 47 | int m_audio_inited; 48 | int m_faad_inited; 49 | int m_freq; // frequency 50 | int m_chans; // channels 51 | int m_output_frame_size; 52 | #if DUMP_OUTPUT_TO_FILE 53 | FILE *m_outfile; 54 | #endif 55 | FILE *m_ifile; 56 | uint8_t *m_buffer; 57 | uint32_t m_buffer_size_max; 58 | uint32_t m_buffer_size; 59 | uint32_t m_buffer_on; 60 | uint64_t m_framecount; 61 | int m_ignore_first_sample; 62 | uint64_t m_last_ts; 63 | } aac_codec_t; 64 | 65 | #define m_vft c.v.audio_vft 66 | #define m_ifptr c.ifptr 67 | #define MAX_READ_BUFFER (768 * 8) 68 | 69 | #define aa_message aac->m_vft->log_msg 70 | void aac_close(codec_data_t *ptr); 71 | extern const char *aaclib; 72 | 73 | codec_data_t *aac_file_check(lib_message_func_t message, 74 | const char *name, 75 | double *max, 76 | char *desc[4] 77 | #ifdef HAVE_PLUGIN_VERSION_0_8 78 | , CConfigSet *pConfig 79 | #endif 80 | ); 81 | 82 | int aac_file_next_frame(codec_data_t *ifptr, 83 | uint8_t **buffer, 84 | uint64_t *ts); 85 | int aac_file_eof(codec_data_t *ifptr); 86 | 87 | void aac_file_used_for_frame(codec_data_t *ifptr, 88 | uint32_t bytes); 89 | 90 | int aac_raw_file_seek_to(codec_data_t *ifptr, 91 | uint64_t ts); 92 | #endif 93 | -------------------------------------------------------------------------------- /aacDECdrop/misc.c: -------------------------------------------------------------------------------- 1 | /* 2 | * function: Miscellaneous functions for aacDECdrop 3 | * 4 | * This program is distributed under the GNU General Public License, version 2. 5 | * A copy of this license is included with this source. 6 | * 7 | * Copyright (C) 2002 John Edwards 8 | */ 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include "misc.h" 15 | 16 | static char *_filename; 17 | void (*error_handler)(const char *fmt, ...) = error_dialog; 18 | 19 | /* 20 | * Set the current input file name. 21 | */ 22 | 23 | void set_filename(char *filename) 24 | { 25 | _filename = filename; 26 | } 27 | 28 | /* 29 | * Display an error dialog, possibly adding system error information. 30 | */ 31 | 32 | void error_dialog(const char *fmt, ...) 33 | { 34 | va_list ap; 35 | char msgbuf[1024]; 36 | char *bufp = msgbuf; 37 | 38 | /* A really rough sanity check to protect against blatant buffer overrun */ 39 | if (strlen(fmt) > 750) 40 | { 41 | sprintf(msgbuf, "%s %s", " ", fmt); 42 | } 43 | else 44 | { 45 | if (_filename != NULL && strlen(_filename) < 255) 46 | { 47 | sprintf(msgbuf, "%s: ", _filename); 48 | bufp += strlen(msgbuf); 49 | } 50 | 51 | va_start(ap, fmt); 52 | 53 | vsprintf(bufp, fmt, ap); 54 | 55 | va_end(ap); 56 | 57 | if (errno != 0) 58 | { 59 | bufp = msgbuf + strlen(msgbuf); 60 | sprintf(bufp, " error is %s (%d)", strerror(errno), errno); 61 | errno = 0; 62 | } 63 | } 64 | 65 | MessageBox(NULL, msgbuf, "Error", 0); 66 | } 67 | 68 | void log_error(const char *fmt, ...) 69 | { 70 | va_list ap; 71 | FILE *fp; 72 | char msgbuf[1024]; 73 | char *bufp = msgbuf; 74 | 75 | /* A really rough sanity check to protect against blatant buffer overrun */ 76 | if (strlen(fmt) > 750) 77 | { 78 | sprintf(msgbuf, "%s %s", " ", fmt); 79 | } 80 | else 81 | { 82 | if (_filename != NULL && strlen(_filename) < 255) 83 | { 84 | sprintf(msgbuf, "%s : ", _filename); 85 | bufp += strlen(msgbuf); 86 | } 87 | 88 | va_start(ap, fmt); 89 | 90 | vsprintf(bufp, fmt, ap); 91 | 92 | va_end(ap); 93 | 94 | if (errno != 0) 95 | { 96 | bufp = msgbuf + strlen(msgbuf); 97 | sprintf(bufp, " error is: %s (%d)", strerror(errno), errno); 98 | errno = 0; 99 | } 100 | } 101 | 102 | va_start(ap, fmt); 103 | 104 | if ((fp = fopen("oggdrop.log", "a")) == (FILE *)NULL) 105 | return; 106 | 107 | fprintf(fp, "%s\n", msgbuf); 108 | fflush(fp); 109 | fclose(fp); 110 | 111 | va_end(ap); 112 | } 113 | 114 | void set_use_dialogs(int use_dialogs) 115 | { 116 | if (!use_dialogs) 117 | error_handler = error_dialog; 118 | else 119 | error_handler = log_error; 120 | } 121 | 122 | 123 | /******************************** end of misc.c ********************************/ 124 | 125 | -------------------------------------------------------------------------------- /frontend/audio.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: audio.h,v 1.19 2007/11/01 12:33:29 menno Exp $ 29 | **/ 30 | 31 | #ifndef AUDIO_H_INCLUDED 32 | #define AUDIO_H_INCLUDED 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #define MAXWAVESIZE 4294967040LU 39 | 40 | #define OUTPUT_WAV 1 41 | #define OUTPUT_RAW 2 42 | 43 | typedef struct 44 | { 45 | int toStdio; 46 | int outputFormat; 47 | FILE *sndfile; 48 | unsigned int fileType; 49 | unsigned long samplerate; 50 | unsigned int bits_per_sample; 51 | unsigned int channels; 52 | unsigned long total_samples; 53 | long channelMask; 54 | } audio_file; 55 | 56 | audio_file *open_audio_file(char *infile, int samplerate, int channels, 57 | int outputFormat, int fileType, long channelMask); 58 | int write_audio_file(audio_file *aufile, void *sample_buffer, int samples, int offset); 59 | void close_audio_file(audio_file *aufile); 60 | static int write_wav_header(audio_file *aufile); 61 | static int write_wav_extensible_header(audio_file *aufile, long channelMask); 62 | static int write_audio_16bit(audio_file *aufile, void *sample_buffer, 63 | unsigned int samples); 64 | static int write_audio_24bit(audio_file *aufile, void *sample_buffer, 65 | unsigned int samples); 66 | static int write_audio_32bit(audio_file *aufile, void *sample_buffer, 67 | unsigned int samples); 68 | static int write_audio_float(audio_file *aufile, void *sample_buffer, 69 | unsigned int samples); 70 | 71 | 72 | #ifdef __cplusplus 73 | } 74 | #endif 75 | #endif 76 | -------------------------------------------------------------------------------- /plugins/QCDMp4/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by QCDMp4.rc 4 | // 5 | #define IDD_CONFIG 102 6 | #define IDC_TYPE 1000 7 | #define IDC_INFOTEXT 1000 8 | #define IDC_DURATION 1001 9 | #define IDC_BITRATE 1002 10 | #define IDC_SAMPLERATE 1003 11 | #define IDC_VTYPE 1004 12 | #define IDC_PRIORITY 1004 13 | #define IDC_VBITRATE 1005 14 | #define IDC_ERROR 1005 15 | #define IDC_VDURATION 1006 16 | #define IDC_16BITS 1006 17 | #define IDC_VSIZE 1007 18 | #define IDC_24BITS 1007 19 | #define IDC_CONVERT 1007 20 | #define IDC_VFPS 1008 21 | #define IDC_32BITS 1008 22 | #define IDC_CONVERT2 1008 23 | #define IDC_CHANNELS 1009 24 | #define IDC_24BITS2 1009 25 | #define IDC_16BITS_DITHERED 1009 26 | #define IDC_CONVERT1 1009 27 | #define IDC_USERDATA 1010 28 | #define IDC_USEFORAAC 1011 29 | #define IDC_METACOMPILATION 1012 30 | #define IDC_METANAME 1013 31 | #define IDC_METAARTIST 1014 32 | #define IDC_METAWRITER 1015 33 | #define IDC_METAALBUM 1016 34 | #define IDC_METACOMMENTS 1017 35 | #define IDC_METAGENRE 1018 36 | #define IDC_METAYEAR 1019 37 | #define IDC_METATRACK1 1020 38 | #define IDC_METADISK1 1021 39 | #define IDC_METATEMPO 1022 40 | #define IDC_METATRACK2 1023 41 | #define IDC_METADISK2 1024 42 | #define IDC_STATIC1 1025 43 | #define IDC_STATIC2 1026 44 | #define IDC_STATIC3 1027 45 | #define IDC_STATIC4 1028 46 | #define IDC_STATIC5 1029 47 | #define IDC_STATIC6 1030 48 | #define IDC_STATIC7 1031 49 | #define IDC_STATIC8 1032 50 | #define IDC_STATIC9 1033 51 | #define IDC_STATIC10 1034 52 | #define IDC_STATIC11 1035 53 | #define IDC_STATIC12 1036 54 | #define IDC_DOWNMIX 1038 55 | #define IDC_VBR 1039 56 | #define IDC_TITLEFORMAT 1040 57 | 58 | // Next default values for new objects 59 | // 60 | #ifdef APSTUDIO_INVOKED 61 | #ifndef APSTUDIO_READONLY_SYMBOLS 62 | #define _APS_NEXT_RESOURCE_VALUE 103 63 | #define _APS_NEXT_COMMAND_VALUE 40001 64 | #define _APS_NEXT_CONTROL_VALUE 1041 65 | #define _APS_NEXT_SYMED_VALUE 101 66 | #endif 67 | #endif 68 | -------------------------------------------------------------------------------- /libfaad/ms.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: ms.c,v 1.21 2007/11/01 12:33:32 menno Exp $ 29 | **/ 30 | 31 | #include "common.h" 32 | #include "structs.h" 33 | 34 | #include "syntax.h" 35 | #include "ms.h" 36 | #include "is.h" 37 | #include "pns.h" 38 | 39 | void ms_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec, 40 | uint16_t frame_len) 41 | { 42 | uint8_t g, b, sfb; 43 | uint8_t group = 0; 44 | uint16_t nshort = frame_len/8; 45 | 46 | uint16_t i, k; 47 | real_t tmp; 48 | 49 | if (ics->ms_mask_present >= 1) 50 | { 51 | for (g = 0; g < ics->num_window_groups; g++) 52 | { 53 | for (b = 0; b < ics->window_group_length[g]; b++) 54 | { 55 | for (sfb = 0; sfb < ics->max_sfb; sfb++) 56 | { 57 | /* If intensity stereo coding or noise substitution is on 58 | for a particular scalefactor band, no M/S stereo decoding 59 | is carried out. 60 | */ 61 | if ((ics->ms_used[g][sfb] || ics->ms_mask_present == 2) && 62 | !is_intensity(icsr, g, sfb) && !is_noise(ics, g, sfb)) 63 | { 64 | for (i = ics->swb_offset[sfb]; i < min(ics->swb_offset[sfb+1], ics->swb_offset_max); i++) 65 | { 66 | k = (group*nshort) + i; 67 | tmp = l_spec[k] - r_spec[k]; 68 | l_spec[k] = l_spec[k] + r_spec[k]; 69 | r_spec[k] = tmp; 70 | } 71 | } 72 | } 73 | group++; 74 | } 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /libfaad/error.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: error.c,v 1.33 2008/09/19 23:31:39 menno Exp $ 29 | **/ 30 | 31 | #include "common.h" 32 | #include "error.h" 33 | 34 | char *err_msg[] = { 35 | "No error", 36 | "Gain control not yet implemented", 37 | "Pulse coding not allowed in short blocks", 38 | "Invalid huffman codebook", 39 | "Scalefactor out of range", 40 | "Unable to find ADTS syncword", 41 | "Channel coupling not yet implemented", 42 | "Channel configuration not allowed in error resilient frame", 43 | "Bit error in error resilient scalefactor decoding", 44 | "Error decoding huffman scalefactor (bitstream error)", 45 | "Error decoding huffman codeword (bitstream error)", 46 | "Non existent huffman codebook number found", 47 | "Invalid number of channels", 48 | "Maximum number of bitstream elements exceeded", 49 | "Input data buffer too small", 50 | "Array index out of range", 51 | "Maximum number of scalefactor bands exceeded", 52 | "Quantised value out of range", 53 | "LTP lag out of range", 54 | "Invalid SBR parameter decoded", 55 | "SBR called without being initialised", 56 | "Unexpected channel configuration change", 57 | "Error in program_config_element", 58 | "First SBR frame is not the same as first AAC frame", 59 | "Unexpected fill element with SBR data", 60 | "Not all elements were provided with SBR data", 61 | "LTP decoding not available", 62 | "Output data buffer too small", 63 | "CRC error in DRM data", 64 | "PNS not allowed in DRM data stream", 65 | "No standard extension payload allowed in DRM", 66 | "PCE shall be the first element in a frame", 67 | "Bitstream value not allowed by specification", 68 | "MAIN prediction not initialised" 69 | }; 70 | 71 | -------------------------------------------------------------------------------- /plugins/xmms/src/aac_utils.c: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * utils for AAC informations 4 | */ 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | 11 | #define ADTS_HEADER_SIZE 8 12 | #define SEEK_TABLE_CHUNK 60 13 | #define MPEG4_TYPE 0 14 | #define MPEG2_TYPE 1 15 | 16 | // Read ADTS header, the file descriptor must be at 17 | // the begining of the aac frame not at the id3tag 18 | 19 | int getAacInfo(FILE *fd) 20 | { 21 | unsigned char header[ADTS_HEADER_SIZE]; 22 | unsigned int id; 23 | unsigned long originPosition; 24 | 25 | originPosition = ftell(fd); 26 | if(fread(header, 1, ADTS_HEADER_SIZE, fd) != ADTS_HEADER_SIZE){ 27 | fseek(fd, originPosition, SEEK_SET); 28 | return(-1); 29 | } 30 | if(!((header[0]==0xFF)&&((header[1]& 0xF6)==0xF0))){ 31 | printf("Bad header\n"); 32 | return(-1); 33 | } 34 | id = header[1]&0x08; 35 | if(id==0){//MPEG-4 AAC 36 | fseek(fd, originPosition, SEEK_SET); 37 | return(MPEG4_TYPE); 38 | }else{ 39 | fseek(fd, originPosition, SEEK_SET); 40 | return(MPEG2_TYPE); 41 | } 42 | fseek(fd, originPosition, SEEK_SET); 43 | return(-1); 44 | } 45 | 46 | // as AAC is VBR we need to check all ADTS header 47 | // to enable seeking... 48 | // there is no other solution 49 | void checkADTSForSeeking(FILE *fd, 50 | unsigned long **seekTable, 51 | unsigned long *seekTableLength) 52 | { 53 | unsigned long originPosition; 54 | unsigned long position; 55 | unsigned char header[ADTS_HEADER_SIZE]; 56 | unsigned int frameCount, frameLength, frameInsec; 57 | unsigned int id=0, seconds=0; 58 | 59 | originPosition = ftell(fd); 60 | 61 | for(frameCount=0,frameInsec=0;; frameCount++,frameInsec++){ 62 | position = ftell(fd); 63 | if(fread(header, 1, ADTS_HEADER_SIZE, fd)!=ADTS_HEADER_SIZE){ 64 | break; 65 | } 66 | if(!strncmp(header, "ID3", 3)){ 67 | break; 68 | } 69 | if(!((header[0]==0xFF)&&((header[1]& 0xF6)==0xF0))){ 70 | printf("error : Bad 1st header, file may be corrupt !\n"); 71 | break; 72 | } 73 | if(!frameCount){ 74 | id=header[1]&0x08; 75 | if(((*seekTable) = malloc(SEEK_TABLE_CHUNK * sizeof(unsigned long)))==0){ 76 | printf("malloc error\n"); 77 | return; 78 | } 79 | (*seekTableLength) = SEEK_TABLE_CHUNK; 80 | } 81 | 82 | //if(id==0){//MPEG-4 83 | //frameLength = ((unsigned int)header[4]<<5)|((unsigned int)header[5]>>3); 84 | //}else{//MPEG-2 85 | frameLength = (((unsigned int)header[3]&0x3)<<11)|((unsigned int)header[4]<<3)|(header[5]>>5); 86 | //} 87 | if(frameInsec==43){//??? 88 | frameInsec=0; 89 | } 90 | if(frameInsec==0){ 91 | if(seconds == (*seekTableLength)){ 92 | (*seekTable) = realloc((*seekTable), (seconds+SEEK_TABLE_CHUNK)*sizeof(unsigned long)); 93 | (*seekTableLength) = seconds+SEEK_TABLE_CHUNK; 94 | } 95 | (*seekTable)[seconds] = position; 96 | seconds++; 97 | } 98 | if(fseek(fd, frameLength-ADTS_HEADER_SIZE, SEEK_CUR)==-1){ 99 | break; 100 | } 101 | } 102 | (*seekTableLength) = seconds; 103 | fseek(fd, originPosition, SEEK_SET); 104 | } 105 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | 2 | Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | http://www.audiocoding.com/ 4 | 5 | FAAD2 is a HE, LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC decoder. 6 | FAAD2 includes code for SBR (HE AAC) decoding. 7 | FAAD2 is licensed under the GPL. 8 | 9 | 10 | __________ 11 | COPYRIGHTS 12 | 13 | For FAAD2 the following license applies: 14 | 15 | ****************************************************************************** 16 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 17 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 18 | ** 19 | ** This program is free software; you can redistribute it and/or modify 20 | ** it under the terms of the GNU General Public License as published by 21 | ** the Free Software Foundation; either version 2 of the License, or 22 | ** (at your option) any later version. 23 | ** 24 | ** This program is distributed in the hope that it will be useful, 25 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | ** GNU General Public License for more details. 28 | ** 29 | ** You should have received a copy of the GNU General Public License 30 | ** along with this program; if not, write to the Free Software 31 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 32 | ** 33 | ** Any non-GPL usage of this software or parts of this software is strictly 34 | ** forbidden. 35 | ** 36 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 37 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 38 | ** 39 | ** Commercial non-GPL licensing of this software is possible. 40 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 41 | ****************************************************************************** 42 | 43 | 44 | Please note that the use of this software may require the payment of 45 | patent royalties. You need to consider this issue before you start 46 | building derivative works. We are not warranting or indemnifying you in 47 | any way for patent royalities! YOU ARE SOLELY RESPONSIBLE FOR YOUR OWN 48 | ACTIONS! 49 | 50 | 51 | ______ 52 | PEOPLE 53 | 54 | FAAD2 is written by: 55 | - M. Bakker (mbakker(at)nero.com). 56 | 57 | 58 | _______________ 59 | VERSION HISTORY 60 | 61 | Sorry, try building a ChangeLog from CVS. 62 | 63 | ___________________ 64 | DIRECTORY STRUCTURE 65 | 66 | faad2 - top level directory. 67 | 68 | aacDECdrop - windows decoder/player with drag'n'drop functionality 69 | 70 | common - generally used libraries and code. 71 | 72 | faad - general common functions like filereading and streaming 73 | as well as getting info from aac files. 74 | 75 | mp4ff - Small MP4 file format library (includes tagging abilities). 76 | 77 | frontend - command line frontend to the FAAD2 library, also supports 78 | MPEG-4 file decoding. 79 | 80 | include - inlude file for the FAAD2 library. 81 | 82 | libfaad - the FAAD2 AAC decoder library including SBR. 83 | 84 | codebook - Huffman codebooks 85 | 86 | plugins - plugins for all kinds of pograms. 87 | 88 | in_mp4 - winamp MPEG-4 AAC file input plugin. 89 | 90 | QCD - Quintessential player AAC plugin. 91 | 92 | QCDMp4 - Quintessential player MP4 plugin. 93 | 94 | xmms - xmms AAC plugin 95 | 96 | mpeg4ip - plugin for the mpeg4ip player 97 | 98 | -------------------------------------------------------------------------------- /decode_example.c: -------------------------------------------------------------------------------- 1 | /** 2 | * Example file that decodes raw AAC data from stdin, 3 | * and outputs the PCM audio data to stdout. 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | int main () { 12 | unsigned char input[1024]; 13 | void *output; 14 | 15 | size_t input_size = 0; 16 | 17 | NeAACDecFrameInfo hInfo; 18 | memset(&hInfo, 0, sizeof hInfo); 19 | 20 | // create decoder handle 21 | NeAACDecHandle hAac = NeAACDecOpen(); 22 | 23 | // Get the current config 24 | NeAACDecConfigurationPtr conf = NeAACDecGetCurrentConfiguration(hAac); 25 | 26 | // XXX: If needed change some of the values in conf 27 | 28 | // Set the new configuration 29 | NeAACDecSetConfiguration(hAac, conf); 30 | 31 | // read the first buffer... will be used in `NeAACDecInit()` call... 32 | input_size = fread(input, 1, sizeof input, stdin); 33 | fprintf(stderr, "read %d bytes\n", (int)input_size); 34 | 35 | // Initialize the library using one of the initialization functions 36 | int done = 0; 37 | unsigned long samplerate; 38 | unsigned char channels; 39 | char err = NeAACDecInit(hAac, input, input_size, &samplerate, &channels); 40 | if (err != 0) { 41 | // Handle error 42 | fprintf(stderr, "NeAACDecInit error: %d\n", err); 43 | abort(); 44 | } 45 | fprintf(stderr, "{ samplerate: %lu, channels: %u, bytesRead: %d }\n", samplerate, channels, err); 46 | 47 | // Loop until decoding finished 48 | unsigned char *cur = input + err; 49 | input_size -= err; 50 | 51 | do { 52 | do { 53 | fprintf(stderr, "decoding data\n"); 54 | 55 | // Decode the frame in buffer 56 | output = NeAACDecDecode(hAac, &hInfo, cur, input_size); 57 | 58 | if ((hInfo.error == 0) && (hInfo.samples > 0)) { 59 | // do what you need to do with the decoded samples 60 | fprintf(stderr, "decoded %lu samples\n", hInfo.samples); 61 | fprintf(stderr, " bytesconsumed: %lu\n", hInfo.bytesconsumed); 62 | fprintf(stderr, " channels: %d\n", hInfo.channels); 63 | fprintf(stderr, " samplerate: %lu\n", hInfo.samplerate); 64 | fprintf(stderr, " sbr: %u\n", hInfo.sbr); 65 | fprintf(stderr, " object_type: %u\n", hInfo.object_type); 66 | fprintf(stderr, " header_type: %u\n", hInfo.header_type); 67 | fprintf(stderr, " num_front_channels: %u\n", hInfo.num_front_channels); 68 | fprintf(stderr, " num_side_channels: %u\n", hInfo.num_side_channels); 69 | fprintf(stderr, " num_back_channels: %u\n", hInfo.num_back_channels); 70 | fprintf(stderr, " num_lfe_channels: %u\n", hInfo.num_lfe_channels); 71 | fprintf(stderr, " ps: %u\n", hInfo.ps); 72 | fprintf(stderr, "\n"); 73 | 74 | } else if (hInfo.error != 0) { 75 | // Some error occurred while decoding this frame 76 | fprintf(stderr, "NeAACDecode error: %d\n", hInfo.error); 77 | fprintf(stderr, "%s\n", NeAACDecGetErrorMessage(hInfo.error)); 78 | abort(); 79 | } else { 80 | fprintf(stderr, "got nothing...\n"); 81 | } 82 | 83 | cur += hInfo.bytesconsumed; 84 | input_size -= hInfo.bytesconsumed; 85 | fprintf(stderr, "%p %zd\n", cur, input_size); 86 | } while (!done); 87 | 88 | // Put next frame in buffer 89 | fprintf(stderr, "reading from stdin\n"); 90 | input_size = fread(input, 1, sizeof input, stdin); 91 | cur = input; 92 | } while (!done); 93 | 94 | NeAACDecClose(hAac); 95 | } 96 | -------------------------------------------------------------------------------- /libfaad/drm_dec.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: drm_dec.h,v 1.8 2007/11/01 12:33:30 menno Exp $ 29 | **/ 30 | 31 | #ifndef __DRM_DEC_H__ 32 | #define __DRM_DEC_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "bits.h" 39 | 40 | #define DRM_PARAMETRIC_STEREO 0 41 | #define DRM_NUM_SA_BANDS 8 42 | #define DRM_NUM_PAN_BANDS 20 43 | #define NUM_OF_LINKS 3 44 | #define NUM_OF_QMF_CHANNELS 64 45 | #define NUM_OF_SUBSAMPLES 30 46 | #define MAX_SA_BAND 46 47 | #define MAX_PAN_BAND 64 48 | #define MAX_DELAY 5 49 | 50 | typedef struct 51 | { 52 | uint8_t drm_ps_data_available; 53 | uint8_t bs_enable_sa; 54 | uint8_t bs_enable_pan; 55 | 56 | uint8_t bs_sa_dt_flag; 57 | uint8_t bs_pan_dt_flag; 58 | 59 | uint8_t g_last_had_sa; 60 | uint8_t g_last_had_pan; 61 | 62 | int8_t bs_sa_data[DRM_NUM_SA_BANDS]; 63 | int8_t bs_pan_data[DRM_NUM_PAN_BANDS]; 64 | 65 | int8_t g_sa_index[DRM_NUM_SA_BANDS]; 66 | int8_t g_pan_index[DRM_NUM_PAN_BANDS]; 67 | int8_t g_prev_sa_index[DRM_NUM_SA_BANDS]; 68 | int8_t g_prev_pan_index[DRM_NUM_PAN_BANDS]; 69 | 70 | int8_t sa_decode_error; 71 | int8_t pan_decode_error; 72 | 73 | int8_t g_last_good_sa_index[DRM_NUM_SA_BANDS]; 74 | int8_t g_last_good_pan_index[DRM_NUM_PAN_BANDS]; 75 | 76 | qmf_t SA[NUM_OF_SUBSAMPLES][MAX_SA_BAND]; 77 | 78 | complex_t d_buff[2][MAX_SA_BAND]; 79 | complex_t d2_buff[NUM_OF_LINKS][MAX_DELAY][MAX_SA_BAND]; 80 | 81 | uint8_t delay_buf_index_ser[NUM_OF_LINKS]; 82 | 83 | real_t prev_nrg[MAX_SA_BAND]; 84 | real_t prev_peakdiff[MAX_SA_BAND]; 85 | real_t peakdecay_fast[MAX_SA_BAND]; 86 | } drm_ps_info; 87 | 88 | 89 | uint16_t drm_ps_data(drm_ps_info *ps, bitfile *ld); 90 | 91 | drm_ps_info *drm_ps_init(void); 92 | void drm_ps_free(drm_ps_info *ps); 93 | 94 | uint8_t drm_ps_decode(drm_ps_info *ps, uint8_t guess, qmf_t X_left[38][64], qmf_t X_right[38][64]); 95 | 96 | #ifdef __cplusplus 97 | } 98 | #endif 99 | #endif 100 | 101 | -------------------------------------------------------------------------------- /libfaad2.gyp: -------------------------------------------------------------------------------- 1 | # This file is used with the GYP meta build system. 2 | # http://code.google.com/p/gyp 3 | # To build try this: 4 | # svn co http://gyp.googlecode.com/svn/trunk gyp 5 | # ./gyp/gyp -f make --depth=. libfaad2.gyp 6 | # make 7 | # ./out/Debug/test 8 | 9 | { 10 | 'variables': { 11 | 'target_arch%': 'ia32', # built for a 32-bit CPU by default 12 | }, 13 | 'target_defaults': { 14 | 'default_configuration': 'Debug', 15 | 'configurations': { 16 | 'Debug': { 17 | 'defines': [ 'DEBUG', '_DEBUG' ], 18 | 'msvs_settings': { 19 | 'VCCLCompilerTool': { 20 | 'RuntimeLibrary': 1, # static debug 21 | }, 22 | }, 23 | }, 24 | 'Release': { 25 | 'defines': [ 'NDEBUG' ], 26 | 'msvs_settings': { 27 | 'VCCLCompilerTool': { 28 | 'RuntimeLibrary': 0, # static release 29 | }, 30 | }, 31 | } 32 | }, 33 | 'msvs_settings': { 34 | 'VCLinkerTool': { 35 | 'GenerateDebugInformation': 'true', 36 | }, 37 | }, 38 | 'conditions': [ 39 | ['OS=="mac"', { 40 | 'conditions': [ 41 | ['target_arch=="ia32"', { 'xcode_settings': { 'ARCHS': [ 'i386' ] } }], 42 | ['target_arch=="x64"', { 'xcode_settings': { 'ARCHS': [ 'x86_64' ] } }] 43 | ], 44 | }], 45 | ] 46 | }, 47 | 48 | 'targets': [ 49 | { 50 | 'target_name': 'faad2', 51 | 'product_prefix': 'lib', 52 | 'type': 'static_library', 53 | 'sources': [ 54 | 'libfaad/bits.c', 55 | 'libfaad/cfft.c', 56 | 'libfaad/decoder.c', 57 | 'libfaad/drc.c', 58 | 'libfaad/drm_dec.c', 59 | 'libfaad/error.c', 60 | 'libfaad/filtbank.c', 61 | 'libfaad/ic_predict.c', 62 | 'libfaad/is.c', 63 | 'libfaad/lt_predict.c', 64 | 'libfaad/mdct.c', 65 | 'libfaad/mp4.c', 66 | 'libfaad/ms.c', 67 | 'libfaad/output.c', 68 | 'libfaad/pns.c', 69 | 'libfaad/ps_dec.c', 70 | 'libfaad/ps_syntax.c', 71 | 'libfaad/pulse.c', 72 | 'libfaad/specrec.c', 73 | 'libfaad/syntax.c', 74 | 'libfaad/tns.c', 75 | 'libfaad/hcr.c', 76 | 'libfaad/huffman.c', 77 | 'libfaad/rvlc.c', 78 | 'libfaad/ssr.c', 79 | 'libfaad/ssr_fb.c', 80 | 'libfaad/ssr_ipqf.c', 81 | 'libfaad/common.c', 82 | 'libfaad/sbr_dct.c', 83 | 'libfaad/sbr_e_nf.c', 84 | 'libfaad/sbr_fbt.c', 85 | 'libfaad/sbr_hfadj.c', 86 | 'libfaad/sbr_hfgen.c', 87 | 'libfaad/sbr_huff.c', 88 | 'libfaad/sbr_qmf.c', 89 | 'libfaad/sbr_syntax.c', 90 | 'libfaad/sbr_tf_grid.c', 91 | 'libfaad/sbr_dec.c' 92 | ], 93 | 'defines': [ 94 | 'PIC', 95 | 'HAVE_CONFIG_H', 96 | ], 97 | 'include_dirs': [ 98 | # platform and arch-specific headers 99 | 'config/<(OS)/<(target_arch)', 100 | 'include', 101 | 'libfaad', 102 | ], 103 | 'direct_dependent_settings': { 104 | 'include_dirs': [ 105 | # platform and arch-specific headers 106 | 'config/<(OS)/<(target_arch)', 107 | 'include', 108 | ], 109 | }, 110 | }, 111 | 112 | { 113 | 'target_name': 'test', 114 | 'type': 'executable', 115 | 'dependencies': [ 'faad2' ], 116 | 'sources': [ 'test.c' ] 117 | }, 118 | 119 | { 120 | 'target_name': 'decode_example', 121 | 'type': 'executable', 122 | 'dependencies': [ 'faad2' ], 123 | 'sources': [ 'decode_example.c' ] 124 | }, 125 | ] 126 | } 127 | -------------------------------------------------------------------------------- /config.h.in: -------------------------------------------------------------------------------- 1 | /* config.h.in. Generated from configure.in by autoheader. */ 2 | 3 | /* Define if you want to use libfaad together with Digital Radio Mondiale 4 | (DRM) */ 5 | #undef DRM 6 | 7 | /* Define if you want support for Digital Radio Mondiale (DRM) parametric 8 | stereo */ 9 | #undef DRM_PS 10 | 11 | /* Define to 1 if you have the header file. */ 12 | #undef HAVE_DLFCN_H 13 | 14 | /* Define to 1 if you have the header file. */ 15 | #undef HAVE_ERRNO_H 16 | 17 | /* Define if needed */ 18 | #undef HAVE_FLOAT32_T 19 | 20 | /* Define to 1 if you have the header file. */ 21 | #undef HAVE_FLOAT_H 22 | 23 | /* Define to 1 if you have the `getpwuid' function. */ 24 | #undef HAVE_GETPWUID 25 | 26 | /* Define to 1 if you have the header file. */ 27 | #undef HAVE_INTTYPES_H 28 | 29 | /* Define if you have the IOKit API */ 30 | #undef HAVE_IOKIT_IOKITLIB_H 31 | 32 | /* Define to 1 if you have the header file. */ 33 | #undef HAVE_LIMITS_H 34 | 35 | /* Define if you have C99's lrintf function. */ 36 | #undef HAVE_LRINTF 37 | 38 | /* Define to 1 if you have the header file. */ 39 | #undef HAVE_MATHF_H 40 | 41 | /* Define to 1 if you have the `memcpy' function. */ 42 | #undef HAVE_MEMCPY 43 | 44 | /* Define to 1 if you have the header file. */ 45 | #undef HAVE_MEMORY_H 46 | 47 | /* Define to 1 if you have the header file. */ 48 | #undef HAVE_STDINT_H 49 | 50 | /* Define to 1 if you have the header file. */ 51 | #undef HAVE_STDLIB_H 52 | 53 | /* Define to 1 if you have the `strchr' function. */ 54 | #undef HAVE_STRCHR 55 | 56 | /* Define to 1 if you have the header file. */ 57 | #undef HAVE_STRINGS_H 58 | 59 | /* Define to 1 if you have the header file. */ 60 | #undef HAVE_STRING_H 61 | 62 | /* Define to 1 if you have the `strsep' function. */ 63 | #undef HAVE_STRSEP 64 | 65 | /* Define to 1 if you have the header file. */ 66 | #undef HAVE_SYSFS_LIBSYSFS_H 67 | 68 | /* Define to 1 if you have the header file. */ 69 | #undef HAVE_SYS_STAT_H 70 | 71 | /* Define to 1 if you have the header file. */ 72 | #undef HAVE_SYS_TIME_H 73 | 74 | /* Define to 1 if you have the header file. */ 75 | #undef HAVE_SYS_TYPES_H 76 | 77 | /* Define to 1 if you have the header file. */ 78 | #undef HAVE_UNISTD_H 79 | 80 | /* Define to 1 if your C compiler doesn't accept -c and -o together. */ 81 | #undef NO_MINUS_C_MINUS_O 82 | 83 | /* Name of package */ 84 | #undef PACKAGE 85 | 86 | /* Define to the address where bug reports for this package should be sent. */ 87 | #undef PACKAGE_BUGREPORT 88 | 89 | /* Define to the full name of this package. */ 90 | #undef PACKAGE_NAME 91 | 92 | /* Define to the full name and version of this package. */ 93 | #undef PACKAGE_STRING 94 | 95 | /* Define to the one symbol short name of this package. */ 96 | #undef PACKAGE_TARNAME 97 | 98 | /* Define to the version of this package. */ 99 | #undef PACKAGE_VERSION 100 | 101 | /* Define to 1 if you have the ANSI C header files. */ 102 | #undef STDC_HEADERS 103 | 104 | /* Define to 1 if you can safely include both and . */ 105 | #undef TIME_WITH_SYS_TIME 106 | 107 | /* Version number of package */ 108 | #undef VERSION 109 | 110 | /* Define to 1 if your processor stores words with the most significant byte 111 | first (like Motorola and SPARC, unlike Intel and VAX). */ 112 | #undef WORDS_BIGENDIAN 113 | 114 | /* Define to `__inline__' or `__inline' if that's what the C compiler 115 | calls it, or to nothing if 'inline' is not supported under any name. */ 116 | #ifndef __cplusplus 117 | #undef inline 118 | #endif 119 | 120 | /* Define to `long int' if does not define. */ 121 | #undef off_t 122 | -------------------------------------------------------------------------------- /config/mac/ia32/config.h: -------------------------------------------------------------------------------- 1 | /* config.h. Generated from config.h.in by configure. */ 2 | /* config.h.in. Generated from configure.in by autoheader. */ 3 | 4 | /* Define if you want to use libfaad together with Digital Radio Mondiale 5 | (DRM) */ 6 | /* #undef DRM */ 7 | 8 | /* Define if you want support for Digital Radio Mondiale (DRM) parametric 9 | stereo */ 10 | /* #undef DRM_PS */ 11 | 12 | /* Define to 1 if you have the header file. */ 13 | #define HAVE_DLFCN_H 1 14 | 15 | /* Define to 1 if you have the header file. */ 16 | #define HAVE_ERRNO_H 1 17 | 18 | /* Define if needed */ 19 | /* #undef HAVE_FLOAT32_T */ 20 | 21 | /* Define to 1 if you have the header file. */ 22 | #define HAVE_FLOAT_H 1 23 | 24 | /* Define to 1 if you have the `getpwuid' function. */ 25 | #define HAVE_GETPWUID 1 26 | 27 | /* Define to 1 if you have the header file. */ 28 | #define HAVE_INTTYPES_H 1 29 | 30 | /* Define if you have the IOKit API */ 31 | #define HAVE_IOKIT_IOKITLIB_H 1 32 | 33 | /* Define to 1 if you have the header file. */ 34 | #define HAVE_LIMITS_H 1 35 | 36 | /* Define if you have C99's lrintf function. */ 37 | #define HAVE_LRINTF 1 38 | 39 | /* Define to 1 if you have the header file. */ 40 | /* #undef HAVE_MATHF_H */ 41 | 42 | /* Define to 1 if you have the `memcpy' function. */ 43 | #define HAVE_MEMCPY 1 44 | 45 | /* Define to 1 if you have the header file. */ 46 | #define HAVE_MEMORY_H 1 47 | 48 | /* Define to 1 if you have the header file. */ 49 | #define HAVE_STDINT_H 1 50 | 51 | /* Define to 1 if you have the header file. */ 52 | #define HAVE_STDLIB_H 1 53 | 54 | /* Define to 1 if you have the `strchr' function. */ 55 | #define HAVE_STRCHR 1 56 | 57 | /* Define to 1 if you have the header file. */ 58 | #define HAVE_STRINGS_H 1 59 | 60 | /* Define to 1 if you have the header file. */ 61 | #define HAVE_STRING_H 1 62 | 63 | /* Define to 1 if you have the `strsep' function. */ 64 | #define HAVE_STRSEP 1 65 | 66 | /* Define to 1 if you have the header file. */ 67 | /* #undef HAVE_SYSFS_LIBSYSFS_H */ 68 | 69 | /* Define to 1 if you have the header file. */ 70 | #define HAVE_SYS_STAT_H 1 71 | 72 | /* Define to 1 if you have the header file. */ 73 | #define HAVE_SYS_TIME_H 1 74 | 75 | /* Define to 1 if you have the header file. */ 76 | #define HAVE_SYS_TYPES_H 1 77 | 78 | /* Define to 1 if you have the header file. */ 79 | #define HAVE_UNISTD_H 1 80 | 81 | /* Define to 1 if your C compiler doesn't accept -c and -o together. */ 82 | /* #undef NO_MINUS_C_MINUS_O */ 83 | 84 | /* Name of package */ 85 | #define PACKAGE "faad2" 86 | 87 | /* Define to the address where bug reports for this package should be sent. */ 88 | #define PACKAGE_BUGREPORT "" 89 | 90 | /* Define to the full name of this package. */ 91 | #define PACKAGE_NAME "" 92 | 93 | /* Define to the full name and version of this package. */ 94 | #define PACKAGE_STRING "" 95 | 96 | /* Define to the one symbol short name of this package. */ 97 | #define PACKAGE_TARNAME "" 98 | 99 | /* Define to the version of this package. */ 100 | #define PACKAGE_VERSION "" 101 | 102 | /* Define to 1 if you have the ANSI C header files. */ 103 | #define STDC_HEADERS 1 104 | 105 | /* Define to 1 if you can safely include both and . */ 106 | #define TIME_WITH_SYS_TIME 1 107 | 108 | /* Version number of package */ 109 | #define VERSION "2.7.0" 110 | 111 | /* Define to 1 if your processor stores words with the most significant byte 112 | first (like Motorola and SPARC, unlike Intel and VAX). */ 113 | /* #undef WORDS_BIGENDIAN */ 114 | 115 | /* Define to `__inline__' or `__inline' if that's what the C compiler 116 | calls it, or to nothing if 'inline' is not supported under any name. */ 117 | #ifndef __cplusplus 118 | /* #undef inline */ 119 | #endif 120 | 121 | /* Define to `long int' if does not define. */ 122 | /* #undef off_t */ 123 | -------------------------------------------------------------------------------- /config/mac/x64/config.h: -------------------------------------------------------------------------------- 1 | /* config.h. Generated from config.h.in by configure. */ 2 | /* config.h.in. Generated from configure.in by autoheader. */ 3 | 4 | /* Define if you want to use libfaad together with Digital Radio Mondiale 5 | (DRM) */ 6 | /* #undef DRM */ 7 | 8 | /* Define if you want support for Digital Radio Mondiale (DRM) parametric 9 | stereo */ 10 | /* #undef DRM_PS */ 11 | 12 | /* Define to 1 if you have the header file. */ 13 | #define HAVE_DLFCN_H 1 14 | 15 | /* Define to 1 if you have the header file. */ 16 | #define HAVE_ERRNO_H 1 17 | 18 | /* Define if needed */ 19 | /* #undef HAVE_FLOAT32_T */ 20 | 21 | /* Define to 1 if you have the header file. */ 22 | #define HAVE_FLOAT_H 1 23 | 24 | /* Define to 1 if you have the `getpwuid' function. */ 25 | #define HAVE_GETPWUID 1 26 | 27 | /* Define to 1 if you have the header file. */ 28 | #define HAVE_INTTYPES_H 1 29 | 30 | /* Define if you have the IOKit API */ 31 | #define HAVE_IOKIT_IOKITLIB_H 1 32 | 33 | /* Define to 1 if you have the header file. */ 34 | #define HAVE_LIMITS_H 1 35 | 36 | /* Define if you have C99's lrintf function. */ 37 | #define HAVE_LRINTF 1 38 | 39 | /* Define to 1 if you have the header file. */ 40 | /* #undef HAVE_MATHF_H */ 41 | 42 | /* Define to 1 if you have the `memcpy' function. */ 43 | #define HAVE_MEMCPY 1 44 | 45 | /* Define to 1 if you have the header file. */ 46 | #define HAVE_MEMORY_H 1 47 | 48 | /* Define to 1 if you have the header file. */ 49 | #define HAVE_STDINT_H 1 50 | 51 | /* Define to 1 if you have the header file. */ 52 | #define HAVE_STDLIB_H 1 53 | 54 | /* Define to 1 if you have the `strchr' function. */ 55 | #define HAVE_STRCHR 1 56 | 57 | /* Define to 1 if you have the header file. */ 58 | #define HAVE_STRINGS_H 1 59 | 60 | /* Define to 1 if you have the header file. */ 61 | #define HAVE_STRING_H 1 62 | 63 | /* Define to 1 if you have the `strsep' function. */ 64 | #define HAVE_STRSEP 1 65 | 66 | /* Define to 1 if you have the header file. */ 67 | /* #undef HAVE_SYSFS_LIBSYSFS_H */ 68 | 69 | /* Define to 1 if you have the header file. */ 70 | #define HAVE_SYS_STAT_H 1 71 | 72 | /* Define to 1 if you have the header file. */ 73 | #define HAVE_SYS_TIME_H 1 74 | 75 | /* Define to 1 if you have the header file. */ 76 | #define HAVE_SYS_TYPES_H 1 77 | 78 | /* Define to 1 if you have the header file. */ 79 | #define HAVE_UNISTD_H 1 80 | 81 | /* Define to 1 if your C compiler doesn't accept -c and -o together. */ 82 | /* #undef NO_MINUS_C_MINUS_O */ 83 | 84 | /* Name of package */ 85 | #define PACKAGE "faad2" 86 | 87 | /* Define to the address where bug reports for this package should be sent. */ 88 | #define PACKAGE_BUGREPORT "" 89 | 90 | /* Define to the full name of this package. */ 91 | #define PACKAGE_NAME "" 92 | 93 | /* Define to the full name and version of this package. */ 94 | #define PACKAGE_STRING "" 95 | 96 | /* Define to the one symbol short name of this package. */ 97 | #define PACKAGE_TARNAME "" 98 | 99 | /* Define to the version of this package. */ 100 | #define PACKAGE_VERSION "" 101 | 102 | /* Define to 1 if you have the ANSI C header files. */ 103 | #define STDC_HEADERS 1 104 | 105 | /* Define to 1 if you can safely include both and . */ 106 | #define TIME_WITH_SYS_TIME 1 107 | 108 | /* Version number of package */ 109 | #define VERSION "2.7.0" 110 | 111 | /* Define to 1 if your processor stores words with the most significant byte 112 | first (like Motorola and SPARC, unlike Intel and VAX). */ 113 | /* #undef WORDS_BIGENDIAN */ 114 | 115 | /* Define to `__inline__' or `__inline' if that's what the C compiler 116 | calls it, or to nothing if 'inline' is not supported under any name. */ 117 | #ifndef __cplusplus 118 | /* #undef inline */ 119 | #endif 120 | 121 | /* Define to `long int' if does not define. */ 122 | /* #undef off_t */ 123 | -------------------------------------------------------------------------------- /aacDECdrop/decthread.c: -------------------------------------------------------------------------------- 1 | /* 2 | * function: Decoding thread for aacDECdrop 3 | * 4 | * This program is distributed under the GNU General Public License, version 2. 5 | * A copy of this license is included with this source. 6 | * 7 | * Copyright (C) 2002 John Edwards 8 | * 9 | * last mod: aacDecdrop decoder last updated 2002-03-14 10 | */ 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | #include "wave_out.h" 17 | #include "decode.h" 18 | #include "misc.h" 19 | 20 | extern int decoding_done; 21 | extern int animate; 22 | extern double file_complete; 23 | extern int totalfiles; 24 | extern int numfiles; 25 | int dec_mode; 26 | int outputFormat; 27 | int fileType; 28 | int object_type; 29 | extern char* fileName; 30 | int stop_decoding; 31 | 32 | typedef struct enclist_tag { 33 | char *filename; 34 | struct enclist_tag *next; 35 | } enclist_t; 36 | 37 | enclist_t *head = NULL; 38 | 39 | CRITICAL_SECTION mutex; 40 | 41 | DWORD WINAPI decode_thread(LPVOID arg); 42 | 43 | void decthread_init(void) 44 | { 45 | int thread_id; 46 | HANDLE thand; 47 | 48 | numfiles = 0; 49 | totalfiles = 0; 50 | file_complete = 0.0; 51 | 52 | InitializeCriticalSection(&mutex); 53 | 54 | thand = CreateThread(NULL, 0, decode_thread, NULL, 0, &thread_id); 55 | if (thand == NULL) { 56 | // something bad happened, might want to deal with that, maybe... 57 | } 58 | } 59 | 60 | void decthread_addfile(char *file) 61 | { 62 | char *filename; 63 | enclist_t *entry, *node; 64 | 65 | if (file == NULL) return; 66 | 67 | // create entry 68 | filename = strdup(file); 69 | entry = (enclist_t *)malloc(sizeof(enclist_t)); 70 | 71 | entry->filename = filename; 72 | entry->next = NULL; 73 | 74 | EnterCriticalSection(&mutex); 75 | 76 | // insert entry 77 | if (head == NULL) { 78 | head = entry; 79 | } else { 80 | node = head; 81 | while (node->next != NULL) 82 | node = node->next; 83 | 84 | node->next = entry; 85 | } 86 | numfiles++; 87 | totalfiles++; 88 | 89 | LeaveCriticalSection(&mutex); 90 | } 91 | 92 | /* 93 | * the caller is responsible for deleting the pointer 94 | */ 95 | 96 | char *_getfile() 97 | { 98 | char *filename; 99 | enclist_t *entry; 100 | 101 | EnterCriticalSection(&mutex); 102 | 103 | if (head == NULL) { 104 | LeaveCriticalSection(&mutex); 105 | return NULL; 106 | } 107 | 108 | // pop entry 109 | entry = head; 110 | head = head->next; 111 | 112 | filename = entry->filename; 113 | free(entry); 114 | 115 | LeaveCriticalSection(&mutex); 116 | 117 | return filename; 118 | } 119 | 120 | void decthread_set_decode_mode(int decode_mode) 121 | { 122 | dec_mode = decode_mode; 123 | } 124 | 125 | void decthread_set_outputFormat(int output_format) 126 | { 127 | outputFormat = output_format; 128 | } 129 | 130 | void decthread_set_fileType(int file_type) 131 | { 132 | fileType = file_type; 133 | } 134 | 135 | void decthread_set_object_type(int object_type) 136 | { 137 | object_type = object_type; 138 | } 139 | 140 | void _error(char *errormessage) 141 | { 142 | // do nothing 143 | } 144 | 145 | void _update(long total, long done) 146 | { 147 | file_complete = (double)done / (double)total; 148 | } 149 | 150 | DWORD WINAPI decode_thread(LPVOID arg) 151 | { 152 | char *in_file; 153 | 154 | while (!decoding_done) 155 | { 156 | while (in_file = _getfile()) 157 | { 158 | aac_dec_opt dec_opts; 159 | animate = 1; 160 | 161 | if(stop_decoding){ 162 | numfiles--; 163 | break; 164 | } 165 | set_filename(in_file); 166 | 167 | dec_opts.progress_update = _update; 168 | dec_opts.filename = in_file; 169 | dec_opts.decode_mode = dec_mode; 170 | dec_opts.output_format = outputFormat; 171 | dec_opts.file_type = fileType; 172 | dec_opts.object_type = object_type; 173 | fileName = in_file; 174 | 175 | aac_decode(&dec_opts); 176 | 177 | numfiles--; 178 | } /* Finished this file, loop around to next... */ 179 | 180 | file_complete = 0.0; 181 | animate = 0; 182 | totalfiles = 0; 183 | numfiles = 0; 184 | 185 | Sleep(500); 186 | } 187 | 188 | DeleteCriticalSection(&mutex); 189 | 190 | return 0; 191 | } 192 | 193 | /******************************** end of decthread.c ********************************/ 194 | 195 | -------------------------------------------------------------------------------- /libfaad/syntax.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: syntax.h,v 1.60 2009/01/26 23:51:17 menno Exp $ 29 | **/ 30 | 31 | #ifndef __SYNTAX_H__ 32 | #define __SYNTAX_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "bits.h" 39 | 40 | #define MAIN 1 41 | #define LC 2 42 | #define SSR 3 43 | #define LTP 4 44 | #define HE_AAC 5 45 | #define LD 23 46 | #define ER_LC 17 47 | #define ER_LTP 19 48 | #define DRM_ER_LC 27 /* special object type for DRM */ 49 | 50 | /* header types */ 51 | #define RAW 0 52 | #define ADIF 1 53 | #define ADTS 2 54 | #define LATM 3 55 | 56 | /* SBR signalling */ 57 | #define NO_SBR 0 58 | #define SBR_UPSAMPLED 1 59 | #define SBR_DOWNSAMPLED 2 60 | #define NO_SBR_UPSAMPLED 3 61 | 62 | /* DRM channel definitions */ 63 | #define DRMCH_MONO 1 64 | #define DRMCH_STEREO 2 65 | #define DRMCH_SBR_MONO 3 66 | #define DRMCH_SBR_STEREO 4 67 | #define DRMCH_SBR_PS_STEREO 5 68 | 69 | 70 | /* First object type that has ER */ 71 | #define ER_OBJECT_START 17 72 | 73 | 74 | /* Bitstream */ 75 | #define LEN_SE_ID 3 76 | #define LEN_TAG 4 77 | #define LEN_BYTE 8 78 | 79 | #define EXT_FIL 0 80 | #define EXT_FILL_DATA 1 81 | #define EXT_DATA_ELEMENT 2 82 | #define EXT_DYNAMIC_RANGE 11 83 | #define ANC_DATA 0 84 | 85 | /* Syntax elements */ 86 | #define ID_SCE 0x0 87 | #define ID_CPE 0x1 88 | #define ID_CCE 0x2 89 | #define ID_LFE 0x3 90 | #define ID_DSE 0x4 91 | #define ID_PCE 0x5 92 | #define ID_FIL 0x6 93 | #define ID_END 0x7 94 | 95 | #define ONLY_LONG_SEQUENCE 0x0 96 | #define LONG_START_SEQUENCE 0x1 97 | #define EIGHT_SHORT_SEQUENCE 0x2 98 | #define LONG_STOP_SEQUENCE 0x3 99 | 100 | #define ZERO_HCB 0 101 | #define FIRST_PAIR_HCB 5 102 | #define ESC_HCB 11 103 | #define QUAD_LEN 4 104 | #define PAIR_LEN 2 105 | #define NOISE_HCB 13 106 | #define INTENSITY_HCB2 14 107 | #define INTENSITY_HCB 15 108 | 109 | #define INVALID_SBR_ELEMENT 255 110 | 111 | int8_t GASpecificConfig(bitfile *ld, mp4AudioSpecificConfig *mp4ASC, 112 | program_config *pce); 113 | 114 | uint8_t adts_frame(adts_header *adts, bitfile *ld); 115 | void get_adif_header(adif_header *adif, bitfile *ld); 116 | void raw_data_block(NeAACDecStruct *hDecoder, NeAACDecFrameInfo *hInfo, 117 | bitfile *ld, program_config *pce, drc_info *drc); 118 | uint8_t reordered_spectral_data(NeAACDecStruct *hDecoder, ic_stream *ics, bitfile *ld, 119 | int16_t *spectral_data); 120 | #ifdef DRM 121 | void DRM_aac_scalable_main_element(NeAACDecStruct *hDecoder, NeAACDecFrameInfo *hInfo, 122 | bitfile *ld, program_config *pce, drc_info *drc); 123 | #endif 124 | uint32_t faad_latm_frame(latm_header *latm, bitfile *ld); 125 | 126 | #ifdef __cplusplus 127 | } 128 | #endif 129 | #endif 130 | -------------------------------------------------------------------------------- /plugins/mpeg4ip/aa_file.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ** MPEG4IP plugin for FAAD2 3 | ** Copyright (C) 2003 Bill May wmay@cisco.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** $Id: aa_file.cpp,v 1.2 2004/01/05 14:05:12 menno Exp $ 20 | **/ 21 | /* 22 | * aa_file.cpp - create media structure for aac files 23 | */ 24 | 25 | #include "faad2.h" 26 | codec_data_t *aac_file_check (lib_message_func_t message, 27 | const char *name, 28 | double *max, 29 | char *desc[4] 30 | #ifdef HAVE_PLUGIN_VERSION_0_8 31 | , CConfigSet *pConfig 32 | #endif 33 | ) 34 | { 35 | aac_codec_t *aac; 36 | int len = strlen(name); 37 | if (strcasecmp(name + len - 4, ".aac") != 0) { 38 | return (NULL); 39 | } 40 | 41 | aac = MALLOC_STRUCTURE(aac_codec_t); 42 | memset(aac, 0, sizeof(*aac)); 43 | *max = 0; 44 | 45 | aac->m_buffer = (uint8_t *)malloc(MAX_READ_BUFFER); 46 | aac->m_buffer_size_max = MAX_READ_BUFFER; 47 | aac->m_ifile = fopen(name, FOPEN_READ_BINARY); 48 | if (aac->m_ifile == NULL) { 49 | free(aac); 50 | return NULL; 51 | } 52 | aac->m_output_frame_size = 1024; 53 | aac->m_info = faacDecOpen(); // use defaults here... 54 | aac->m_buffer_size = fread(aac->m_buffer, 55 | 1, 56 | aac->m_buffer_size_max, 57 | aac->m_ifile); 58 | 59 | unsigned long freq; 60 | unsigned char chans; 61 | 62 | faacDecInit(aac->m_info, (unsigned char *)aac->m_buffer, 63 | aac->m_buffer_size, &freq, &chans); 64 | // may want to actually decode the first frame... 65 | if (freq == 0) { 66 | message(LOG_ERR, aaclib, "Couldn't determine AAC frame rate"); 67 | aac_close((codec_data_t *)aac); 68 | return (NULL); 69 | } 70 | aac->m_freq = freq; 71 | aac->m_chans = chans; 72 | aac->m_faad_inited = 1; 73 | aac->m_framecount = 0; 74 | return ((codec_data_t *)aac); 75 | } 76 | 77 | 78 | int aac_file_next_frame (codec_data_t *your, 79 | uint8_t **buffer, 80 | uint64_t *ts) 81 | { 82 | aac_codec_t *aac = (aac_codec_t *)your; 83 | 84 | if (aac->m_buffer_on > 0) { 85 | memmove(aac->m_buffer, 86 | &aac->m_buffer[aac->m_buffer_on], 87 | aac->m_buffer_size - aac->m_buffer_on); 88 | } 89 | aac->m_buffer_size -= aac->m_buffer_on; 90 | aac->m_buffer_size += fread(aac->m_buffer + aac->m_buffer_size, 91 | 1, 92 | aac->m_buffer_size_max - aac->m_buffer_size, 93 | aac->m_ifile); 94 | aac->m_buffer_on = 0; 95 | if (aac->m_buffer_size == 0) return 0; 96 | 97 | 98 | uint64_t calc; 99 | calc = aac->m_framecount * 1024 * M_LLU; 100 | calc /= aac->m_freq; 101 | *ts = calc; 102 | *buffer = aac->m_buffer; 103 | aac->m_framecount++; 104 | return (aac->m_buffer_size); 105 | } 106 | 107 | void aac_file_used_for_frame (codec_data_t *ifptr, 108 | uint32_t bytes) 109 | { 110 | aac_codec_t *aac = (aac_codec_t *)ifptr; 111 | aac->m_buffer_on += bytes; 112 | if (aac->m_buffer_on > aac->m_buffer_size) aac->m_buffer_on = aac->m_buffer_size; 113 | } 114 | 115 | int aac_file_eof (codec_data_t *ifptr) 116 | { 117 | aac_codec_t *aac = (aac_codec_t *)ifptr; 118 | return aac->m_buffer_on == aac->m_buffer_size && feof(aac->m_ifile); 119 | } 120 | 121 | int aac_raw_file_seek_to (codec_data_t *ifptr, uint64_t ts) 122 | { 123 | if (ts != 0) return -1; 124 | 125 | aac_codec_t *aac = (aac_codec_t *)ifptr; 126 | rewind(aac->m_ifile); 127 | aac->m_buffer_size = aac->m_buffer_on = 0; 128 | aac->m_framecount = 0; 129 | return 0; 130 | } 131 | -------------------------------------------------------------------------------- /compile: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Wrapper for compilers which do not understand `-c -o'. 3 | 4 | scriptversion=2005-05-14.22 5 | 6 | # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. 7 | # Written by Tom Tromey . 8 | # 9 | # This program is free software; you can redistribute it and/or modify 10 | # it under the terms of the GNU General Public License as published by 11 | # the Free Software Foundation; either version 2, or (at your option) 12 | # any later version. 13 | # 14 | # This program is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | # GNU General Public License for more details. 18 | # 19 | # You should have received a copy of the GNU General Public License 20 | # along with this program; if not, write to the Free Software 21 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 22 | 23 | # As a special exception to the GNU General Public License, if you 24 | # distribute this file as part of a program that contains a 25 | # configuration script generated by Autoconf, you may include it under 26 | # the same distribution terms that you use for the rest of that program. 27 | 28 | # This file is maintained in Automake, please report 29 | # bugs to or send patches to 30 | # . 31 | 32 | case $1 in 33 | '') 34 | echo "$0: No command. Try \`$0 --help' for more information." 1>&2 35 | exit 1; 36 | ;; 37 | -h | --h*) 38 | cat <<\EOF 39 | Usage: compile [--help] [--version] PROGRAM [ARGS] 40 | 41 | Wrapper for compilers which do not understand `-c -o'. 42 | Remove `-o dest.o' from ARGS, run PROGRAM with the remaining 43 | arguments, and rename the output as expected. 44 | 45 | If you are trying to build a whole package this is not the 46 | right script to run: please start by reading the file `INSTALL'. 47 | 48 | Report bugs to . 49 | EOF 50 | exit $? 51 | ;; 52 | -v | --v*) 53 | echo "compile $scriptversion" 54 | exit $? 55 | ;; 56 | esac 57 | 58 | ofile= 59 | cfile= 60 | eat= 61 | 62 | for arg 63 | do 64 | if test -n "$eat"; then 65 | eat= 66 | else 67 | case $1 in 68 | -o) 69 | # configure might choose to run compile as `compile cc -o foo foo.c'. 70 | # So we strip `-o arg' only if arg is an object. 71 | eat=1 72 | case $2 in 73 | *.o | *.obj) 74 | ofile=$2 75 | ;; 76 | *) 77 | set x "$@" -o "$2" 78 | shift 79 | ;; 80 | esac 81 | ;; 82 | *.c) 83 | cfile=$1 84 | set x "$@" "$1" 85 | shift 86 | ;; 87 | *) 88 | set x "$@" "$1" 89 | shift 90 | ;; 91 | esac 92 | fi 93 | shift 94 | done 95 | 96 | if test -z "$ofile" || test -z "$cfile"; then 97 | # If no `-o' option was seen then we might have been invoked from a 98 | # pattern rule where we don't need one. That is ok -- this is a 99 | # normal compilation that the losing compiler can handle. If no 100 | # `.c' file was seen then we are probably linking. That is also 101 | # ok. 102 | exec "$@" 103 | fi 104 | 105 | # Name of file we expect compiler to create. 106 | cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` 107 | 108 | # Create the lock directory. 109 | # Note: use `[/.-]' here to ensure that we don't use the same name 110 | # that we are using for the .o file. Also, base the name on the expected 111 | # object file name, since that is what matters with a parallel build. 112 | lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d 113 | while true; do 114 | if mkdir "$lockdir" >/dev/null 2>&1; then 115 | break 116 | fi 117 | sleep 1 118 | done 119 | # FIXME: race condition here if user kills between mkdir and trap. 120 | trap "rmdir '$lockdir'; exit 1" 1 2 15 121 | 122 | # Run the compile. 123 | "$@" 124 | ret=$? 125 | 126 | if test -f "$cofile"; then 127 | mv "$cofile" "$ofile" 128 | elif test -f "${cofile}bj"; then 129 | mv "${cofile}bj" "$ofile" 130 | fi 131 | 132 | rmdir "$lockdir" 133 | exit $ret 134 | 135 | # Local Variables: 136 | # mode: shell-script 137 | # sh-indentation: 2 138 | # eval: (add-hook 'write-file-hooks 'time-stamp) 139 | # time-stamp-start: "scriptversion=" 140 | # time-stamp-format: "%:y-%02m-%02d.%02H" 141 | # time-stamp-end: "$" 142 | # End: 143 | -------------------------------------------------------------------------------- /libfaad/codebook/hcb.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: hcb.h,v 1.8 2007/11/01 12:34:10 menno Exp $ 29 | **/ 30 | 31 | #ifndef __HCB_H__ 32 | #define __HCB_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | /* 39 | * Optimal huffman decoding for AAC taken from: 40 | * "SELECTING AN OPTIMAL HUFFMAN DECODER FOR AAC" by 41 | * VLADIMIR Z. MESAROVIC , RAGHUNATH RAO, MIROSLAV V. DOKIC, and SACHIN DEO 42 | * AES paper 5436 43 | * 44 | * 2 methods are used for huffman decoding: 45 | * - binary search 46 | * - 2-step table lookup 47 | * 48 | * The choice of the "optimal" method is based on the fact that if the 49 | * memory size for the Two-step is exorbitantly high then the decision 50 | * is Binary search for that codebook. However, for marginally more memory 51 | * size, if Twostep outperforms even the best case of Binary then the 52 | * decision is Two-step for that codebook. 53 | * 54 | * The following methods are used for the different tables. 55 | * codebook "optimal" method 56 | * HCB_1 2-Step 57 | * HCB_2 2-Step 58 | * HCB_3 Binary 59 | * HCB_4 2-Step 60 | * HCB_5 Binary 61 | * HCB_6 2-Step 62 | * HCB_7 Binary 63 | * HCB_8 2-Step 64 | * HCB_9 Binary 65 | * HCB_10 2-Step 66 | * HCB_11 2-Step 67 | * HCB_SF Binary 68 | * 69 | */ 70 | 71 | 72 | #define ZERO_HCB 0 73 | #define FIRST_PAIR_HCB 5 74 | #define ESC_HCB 11 75 | #define QUAD_LEN 4 76 | #define PAIR_LEN 2 77 | #define NOISE_HCB 13 78 | #define INTENSITY_HCB2 14 79 | #define INTENSITY_HCB 15 80 | 81 | /* 1st step table */ 82 | typedef struct 83 | { 84 | uint8_t offset; 85 | uint8_t extra_bits; 86 | } hcb; 87 | 88 | /* 2nd step table with quadruple data */ 89 | typedef struct 90 | { 91 | uint8_t bits; 92 | int8_t x; 93 | int8_t y; 94 | } hcb_2_pair; 95 | 96 | typedef struct 97 | { 98 | uint8_t bits; 99 | int8_t x; 100 | int8_t y; 101 | int8_t v; 102 | int8_t w; 103 | } hcb_2_quad; 104 | 105 | /* binary search table */ 106 | typedef struct 107 | { 108 | uint8_t is_leaf; 109 | int8_t data[4]; 110 | } hcb_bin_quad; 111 | 112 | typedef struct 113 | { 114 | uint8_t is_leaf; 115 | int8_t data[2]; 116 | } hcb_bin_pair; 117 | 118 | hcb *hcb_table[]; 119 | hcb_2_quad *hcb_2_quad_table[]; 120 | hcb_2_pair *hcb_2_pair_table[]; 121 | hcb_bin_pair *hcb_bin_table[]; 122 | uint8_t hcbN[]; 123 | uint8_t unsigned_cb[]; 124 | int hcb_2_quad_table_size[]; 125 | int hcb_2_pair_table_size[]; 126 | int hcb_bin_table_size[]; 127 | 128 | #include "codebook/hcb_1.h" 129 | #include "codebook/hcb_2.h" 130 | #include "codebook/hcb_3.h" 131 | #include "codebook/hcb_4.h" 132 | #include "codebook/hcb_5.h" 133 | #include "codebook/hcb_6.h" 134 | #include "codebook/hcb_7.h" 135 | #include "codebook/hcb_8.h" 136 | #include "codebook/hcb_9.h" 137 | #include "codebook/hcb_10.h" 138 | #include "codebook/hcb_11.h" 139 | #include "codebook/hcb_sf.h" 140 | 141 | 142 | #ifdef __cplusplus 143 | } 144 | #endif 145 | #endif 146 | -------------------------------------------------------------------------------- /libfaad/is.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: is.c,v 1.28 2007/11/01 12:33:31 menno Exp $ 29 | **/ 30 | 31 | #include "common.h" 32 | #include "structs.h" 33 | 34 | #include "syntax.h" 35 | #include "is.h" 36 | 37 | #ifdef FIXED_POINT 38 | static real_t pow05_table[] = { 39 | COEF_CONST(1.68179283050743), /* 0.5^(-3/4) */ 40 | COEF_CONST(1.41421356237310), /* 0.5^(-2/4) */ 41 | COEF_CONST(1.18920711500272), /* 0.5^(-1/4) */ 42 | COEF_CONST(1.0), /* 0.5^( 0/4) */ 43 | COEF_CONST(0.84089641525371), /* 0.5^(+1/4) */ 44 | COEF_CONST(0.70710678118655), /* 0.5^(+2/4) */ 45 | COEF_CONST(0.59460355750136) /* 0.5^(+3/4) */ 46 | }; 47 | #endif 48 | 49 | void is_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec, 50 | uint16_t frame_len) 51 | { 52 | uint8_t g, sfb, b; 53 | uint16_t i; 54 | #ifndef FIXED_POINT 55 | real_t scale; 56 | #else 57 | int32_t exp, frac; 58 | #endif 59 | 60 | uint16_t nshort = frame_len/8; 61 | uint8_t group = 0; 62 | 63 | for (g = 0; g < icsr->num_window_groups; g++) 64 | { 65 | /* Do intensity stereo decoding */ 66 | for (b = 0; b < icsr->window_group_length[g]; b++) 67 | { 68 | for (sfb = 0; sfb < icsr->max_sfb; sfb++) 69 | { 70 | if (is_intensity(icsr, g, sfb)) 71 | { 72 | #ifdef MAIN_DEC 73 | /* For scalefactor bands coded in intensity stereo the 74 | corresponding predictors in the right channel are 75 | switched to "off". 76 | */ 77 | ics->pred.prediction_used[sfb] = 0; 78 | icsr->pred.prediction_used[sfb] = 0; 79 | #endif 80 | 81 | #ifndef FIXED_POINT 82 | scale = (real_t)pow(0.5, (0.25*icsr->scale_factors[g][sfb])); 83 | #else 84 | exp = icsr->scale_factors[g][sfb] >> 2; 85 | frac = icsr->scale_factors[g][sfb] & 3; 86 | #endif 87 | 88 | /* Scale from left to right channel, 89 | do not touch left channel */ 90 | for (i = icsr->swb_offset[sfb]; i < min(icsr->swb_offset[sfb+1], ics->swb_offset_max); i++) 91 | { 92 | #ifndef FIXED_POINT 93 | r_spec[(group*nshort)+i] = MUL_R(l_spec[(group*nshort)+i], scale); 94 | #else 95 | if (exp < 0) 96 | r_spec[(group*nshort)+i] = l_spec[(group*nshort)+i] << -exp; 97 | else 98 | r_spec[(group*nshort)+i] = l_spec[(group*nshort)+i] >> exp; 99 | r_spec[(group*nshort)+i] = MUL_C(r_spec[(group*nshort)+i], pow05_table[frac + 3]); 100 | #endif 101 | if (is_intensity(icsr, g, sfb) != invert_intensity(ics, g, sfb)) 102 | r_spec[(group*nshort)+i] = -r_spec[(group*nshort)+i]; 103 | } 104 | } 105 | } 106 | group++; 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /plugins/QCD/plugin_dlg.rc: -------------------------------------------------------------------------------- 1 | //Microsoft Developer Studio generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Generated from the TEXTINCLUDE 2 resource. 9 | // 10 | #include "afxres.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | #undef APSTUDIO_READONLY_SYMBOLS 14 | 15 | ///////////////////////////////////////////////////////////////////////////// 16 | // English (U.S.) resources 17 | 18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 19 | #ifdef _WIN32 20 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 21 | #pragma code_page(1252) 22 | #endif //_WIN32 23 | 24 | #ifdef APSTUDIO_INVOKED 25 | ///////////////////////////////////////////////////////////////////////////// 26 | // 27 | // TEXTINCLUDE 28 | // 29 | 30 | 1 TEXTINCLUDE DISCARDABLE 31 | BEGIN 32 | "resource.h\0" 33 | END 34 | 35 | 2 TEXTINCLUDE DISCARDABLE 36 | BEGIN 37 | "#include ""afxres.h""\r\n" 38 | "\0" 39 | END 40 | 41 | 3 TEXTINCLUDE DISCARDABLE 42 | BEGIN 43 | "\r\n" 44 | "\0" 45 | END 46 | 47 | #endif // APSTUDIO_INVOKED 48 | 49 | 50 | ///////////////////////////////////////////////////////////////////////////// 51 | // 52 | // Dialog 53 | // 54 | 55 | IDD_CONFIG DIALOGEX 0, 0, 179, 133 56 | STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU 57 | CAPTION "FAAC Decoder Configuration" 58 | FONT 8, "MS Sans Serif", 0, 0, 0x1 59 | BEGIN 60 | CONTROL "Enable variable bitrate display",VARBITRATE_CHK,"Button", 61 | BS_AUTOCHECKBOX | WS_TABSTOP,7,7,140,10 62 | EDITTEXT STREAM_BUFFER_TXT,87,21,21,12,ES_AUTOHSCROLL | ES_NUMBER 63 | EDITTEXT LOCAL_BUFFER_TXT,87,38,21,12,ES_AUTOHSCROLL | ES_NUMBER 64 | CONTROL "Buffer entire files into memory",IDC_MEMMAP,"Button", 65 | BS_AUTOCHECKBOX | WS_TABSTOP,7,60,140,10 66 | CONTROL "Slider1",THREAD_PRIORITY_SLIDER,"msctls_trackbar32", 67 | TBS_AUTOTICKS | WS_TABSTOP,7,89,165,11,WS_EX_TRANSPARENT 68 | PUSHBUTTON "OK",OK_BTN,64,112,50,14 69 | PUSHBUTTON "Cancel",CANCEL_BTN,121,112,50,14 70 | LTEXT "HTTP stream buffer:",IDC_STATIC,7,22,77,8 71 | LTEXT "Decode Thread Priority: Highest (default)",IDC_STATIC2, 72 | 7,78,165,8 73 | LTEXT "Local file buffer: ",IDC_STATIC,7,40,77,8 74 | PUSHBUTTON "Reset",RESET_BTN,7,112,50,14 75 | END 76 | 77 | IDD_ABOUT DIALOG DISCARDABLE 0, 0, 191, 168 78 | STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU 79 | CAPTION "About FAAD Plug-in" 80 | FONT 8, "MS Sans Serif" 81 | BEGIN 82 | DEFPUSHBUTTON "OK",IDOK,70,147,50,14 83 | CTEXT "",IDC_PLUGINVER,29,73,133,16 84 | CTEXT "",IDC_FAADVER,40,123,111,8 85 | LTEXT "QCD Input Plug-in by",IDC_STATIC,62,97,67,8 86 | CONTROL 107,IDC_LOGO,"Static",SS_BITMAP | SS_CENTERIMAGE | 87 | SS_REALSIZEIMAGE,7,0,177,68 88 | LTEXT "Shao Hao",IDC_MAIL1,79,111,33,8 89 | LTEXT "M. Bakker",IDC_MAIL3,59,134,34,8 90 | LTEXT "menno",IDC_MAIL2,109,134,22,8 91 | LTEXT "&&",IDC_STATIC,97,134,8,8 92 | END 93 | 94 | 95 | ///////////////////////////////////////////////////////////////////////////// 96 | // 97 | // DESIGNINFO 98 | // 99 | 100 | #ifdef APSTUDIO_INVOKED 101 | GUIDELINES DESIGNINFO DISCARDABLE 102 | BEGIN 103 | IDD_CONFIG, DIALOG 104 | BEGIN 105 | LEFTMARGIN, 7 106 | RIGHTMARGIN, 172 107 | TOPMARGIN, 7 108 | BOTTOMMARGIN, 126 109 | END 110 | 111 | IDD_ABOUT, DIALOG 112 | BEGIN 113 | LEFTMARGIN, 7 114 | RIGHTMARGIN, 184 115 | BOTTOMMARGIN, 161 116 | END 117 | END 118 | #endif // APSTUDIO_INVOKED 119 | 120 | 121 | ///////////////////////////////////////////////////////////////////////////// 122 | // 123 | // Bitmap 124 | // 125 | 126 | IDB_LOGO BITMAP DISCARDABLE "logo.bmp" 127 | #endif // English (U.S.) resources 128 | ///////////////////////////////////////////////////////////////////////////// 129 | 130 | 131 | 132 | #ifndef APSTUDIO_INVOKED 133 | ///////////////////////////////////////////////////////////////////////////// 134 | // 135 | // Generated from the TEXTINCLUDE 3 resource. 136 | // 137 | 138 | 139 | ///////////////////////////////////////////////////////////////////////////// 140 | #endif // not APSTUDIO_INVOKED 141 | 142 | -------------------------------------------------------------------------------- /plugins/QCDMp4/utils.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** Commercial non-GPL licensing of this software is possible. 23 | ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24 | ** 25 | ** $Id: utils.c,v 1.3 2003/12/06 04:24:17 rjamorim Exp $ 26 | **/ 27 | 28 | #define WIN32_LEAN_AND_MEAN 29 | #include 30 | #include 31 | #include 32 | #include "utils.h" 33 | 34 | int StringComp(char const *str1, char const *str2, unsigned long len) 35 | { 36 | signed int c1 = 0, c2 = 0; 37 | 38 | while (len--) 39 | { 40 | c1 = tolower(*str1++); 41 | c2 = tolower(*str2++); 42 | 43 | if (c1 == 0 || c1 != c2) 44 | break; 45 | } 46 | 47 | return c1 - c2; 48 | } 49 | 50 | int GetAACTrack(MP4FileHandle infile) 51 | { 52 | /* find AAC track */ 53 | int i, rc; 54 | int numTracks = MP4GetNumberOfTracks(infile, NULL, 0); 55 | 56 | for (i = 0; i < numTracks; i++) 57 | { 58 | MP4TrackId trackId = MP4FindTrackId(infile, i, NULL, 0); 59 | const char* trackType = MP4GetTrackType(infile, trackId); 60 | 61 | if (!strcmp(trackType, MP4_AUDIO_TRACK_TYPE)) 62 | { 63 | unsigned char *buff = NULL; 64 | int buff_size = 0; 65 | mp4AudioSpecificConfig mp4ASC; 66 | 67 | MP4GetTrackESConfiguration(infile, trackId, &buff, &buff_size); 68 | 69 | if (buff) 70 | { 71 | rc = AudioSpecificConfig(buff, buff_size, &mp4ASC); 72 | free(buff); 73 | 74 | if (rc < 0) 75 | return -1; 76 | return trackId; 77 | } 78 | } 79 | } 80 | 81 | /* can't decode this */ 82 | return -1; 83 | } 84 | 85 | int GetAudioTrack(MP4FileHandle infile) 86 | { 87 | /* find AAC track */ 88 | int i; 89 | int numTracks = MP4GetNumberOfTracks(infile, NULL, 0); 90 | 91 | for (i = 0; i < numTracks; i++) 92 | { 93 | MP4TrackId trackId = MP4FindTrackId(infile, i, NULL, 0); 94 | const char* trackType = MP4GetTrackType(infile, trackId); 95 | 96 | if (!strcmp(trackType, MP4_AUDIO_TRACK_TYPE)) 97 | { 98 | return trackId; 99 | } 100 | } 101 | 102 | /* can't decode this */ 103 | return -1; 104 | } 105 | 106 | int GetVideoTrack(MP4FileHandle infile) 107 | { 108 | /* find AAC track */ 109 | int i; 110 | int numTracks = MP4GetNumberOfTracks(infile, NULL, 0); 111 | 112 | for (i = 0; i < numTracks; i++) 113 | { 114 | MP4TrackId trackId = MP4FindTrackId(infile, i, NULL, 0); 115 | const char* trackType = MP4GetTrackType(infile, trackId); 116 | 117 | if (!strcmp(trackType, MP4_VIDEO_TRACK_TYPE)) 118 | { 119 | return trackId; 120 | } 121 | } 122 | 123 | /* can't decode this */ 124 | return -1; 125 | } 126 | 127 | LPTSTR PathFindFileName(LPCTSTR pPath) 128 | { 129 | LPCTSTR pT; 130 | 131 | for (pT = pPath; *pPath; pPath = CharNext(pPath)) { 132 | if ((pPath[0] == TEXT('\\') || pPath[0] == TEXT(':')) && pPath[1] && (pPath[1] != TEXT('\\'))) 133 | pT = pPath + 1; 134 | } 135 | 136 | return (LPTSTR)pT; // const -> non const 137 | } 138 | 139 | char *convert3in4to3in3(void *sample_buffer, int samples) 140 | { 141 | int i; 142 | long *sample_buffer24 = (long*)sample_buffer; 143 | char *data = malloc(samples*3*sizeof(char)); 144 | 145 | for (i = 0; i < samples; i++) 146 | { 147 | data[i*3] = sample_buffer24[i] & 0xFF; 148 | data[i*3+1] = (sample_buffer24[i] >> 8) & 0xFF; 149 | data[i*3+2] = (sample_buffer24[i] >> 16) & 0xFF; 150 | } 151 | 152 | return data; 153 | } 154 | -------------------------------------------------------------------------------- /libfaad/ps_dec.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3 | ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com 4 | ** 5 | ** This program is free software; you can redistribute it and/or modify 6 | ** it under the terms of the GNU General Public License as published by 7 | ** the Free Software Foundation; either version 2 of the License, or 8 | ** (at your option) any later version. 9 | ** 10 | ** This program is distributed in the hope that it will be useful, 11 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ** GNU General Public License for more details. 14 | ** 15 | ** You should have received a copy of the GNU General Public License 16 | ** along with this program; if not, write to the Free Software 17 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | ** 19 | ** Any non-GPL usage of this software or parts of this software is strictly 20 | ** forbidden. 21 | ** 22 | ** The "appropriate copyright message" mentioned in section 2c of the GPLv2 23 | ** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com" 24 | ** 25 | ** Commercial non-GPL licensing of this software is possible. 26 | ** For more info contact Nero AG through Mpeg4AAClicense@nero.com. 27 | ** 28 | ** $Id: ps_dec.h,v 1.13 2009/01/26 22:32:31 menno Exp $ 29 | **/ 30 | 31 | #ifndef __PS_DEC_H__ 32 | #define __PS_DEC_H__ 33 | 34 | #ifdef __cplusplus 35 | extern "C" { 36 | #endif 37 | 38 | #include "bits.h" 39 | 40 | #define EXTENSION_ID_PS 2 41 | 42 | #define MAX_PS_ENVELOPES 5 43 | #define NO_ALLPASS_LINKS 3 44 | 45 | typedef struct 46 | { 47 | /* bitstream parameters */ 48 | uint8_t enable_iid; 49 | uint8_t enable_icc; 50 | uint8_t enable_ext; 51 | 52 | uint8_t iid_mode; 53 | uint8_t icc_mode; 54 | uint8_t nr_iid_par; 55 | uint8_t nr_ipdopd_par; 56 | uint8_t nr_icc_par; 57 | 58 | uint8_t frame_class; 59 | uint8_t num_env; 60 | 61 | uint8_t border_position[MAX_PS_ENVELOPES+1]; 62 | 63 | uint8_t iid_dt[MAX_PS_ENVELOPES]; 64 | uint8_t icc_dt[MAX_PS_ENVELOPES]; 65 | 66 | uint8_t enable_ipdopd; 67 | uint8_t ipd_mode; 68 | uint8_t ipd_dt[MAX_PS_ENVELOPES]; 69 | uint8_t opd_dt[MAX_PS_ENVELOPES]; 70 | 71 | /* indices */ 72 | int8_t iid_index_prev[34]; 73 | int8_t icc_index_prev[34]; 74 | int8_t ipd_index_prev[17]; 75 | int8_t opd_index_prev[17]; 76 | int8_t iid_index[MAX_PS_ENVELOPES][34]; 77 | int8_t icc_index[MAX_PS_ENVELOPES][34]; 78 | int8_t ipd_index[MAX_PS_ENVELOPES][17]; 79 | int8_t opd_index[MAX_PS_ENVELOPES][17]; 80 | 81 | int8_t ipd_index_1[17]; 82 | int8_t opd_index_1[17]; 83 | int8_t ipd_index_2[17]; 84 | int8_t opd_index_2[17]; 85 | 86 | /* ps data was correctly read */ 87 | uint8_t ps_data_available; 88 | 89 | /* a header has been read */ 90 | uint8_t header_read; 91 | 92 | /* hybrid filterbank parameters */ 93 | void *hyb; 94 | uint8_t use34hybrid_bands; 95 | uint8_t numTimeSlotsRate; 96 | 97 | /**/ 98 | uint8_t num_groups; 99 | uint8_t num_hybrid_groups; 100 | uint8_t nr_par_bands; 101 | uint8_t nr_allpass_bands; 102 | uint8_t decay_cutoff; 103 | 104 | uint8_t *group_border; 105 | uint16_t *map_group2bk; 106 | 107 | /* filter delay handling */ 108 | uint8_t saved_delay; 109 | uint8_t delay_buf_index_ser[NO_ALLPASS_LINKS]; 110 | uint8_t num_sample_delay_ser[NO_ALLPASS_LINKS]; 111 | uint8_t delay_D[64]; 112 | uint8_t delay_buf_index_delay[64]; 113 | 114 | complex_t delay_Qmf[14][64]; /* 14 samples delay max, 64 QMF channels */ 115 | complex_t delay_SubQmf[2][32]; /* 2 samples delay max (SubQmf is always allpass filtered) */ 116 | complex_t delay_Qmf_ser[NO_ALLPASS_LINKS][5][64]; /* 5 samples delay max (table 8.34), 64 QMF channels */ 117 | complex_t delay_SubQmf_ser[NO_ALLPASS_LINKS][5][32]; /* 5 samples delay max (table 8.34) */ 118 | 119 | /* transients */ 120 | real_t alpha_decay; 121 | real_t alpha_smooth; 122 | 123 | real_t P_PeakDecayNrg[34]; 124 | real_t P_prev[34]; 125 | real_t P_SmoothPeakDecayDiffNrg_prev[34]; 126 | 127 | /* mixing and phase */ 128 | complex_t h11_prev[50]; 129 | complex_t h12_prev[50]; 130 | complex_t h21_prev[50]; 131 | complex_t h22_prev[50]; 132 | uint8_t phase_hist; 133 | complex_t ipd_prev[20][2]; 134 | complex_t opd_prev[20][2]; 135 | 136 | } ps_info; 137 | 138 | /* ps_syntax.c */ 139 | uint16_t ps_data(ps_info *ps, bitfile *ld, uint8_t *header); 140 | 141 | /* ps_dec.c */ 142 | ps_info *ps_init(uint8_t sr_index, uint8_t numTimeSlotsRate); 143 | void ps_free(ps_info *ps); 144 | 145 | uint8_t ps_decode(ps_info *ps, qmf_t X_left[38][64], qmf_t X_right[38][64]); 146 | 147 | 148 | #ifdef __cplusplus 149 | } 150 | #endif 151 | #endif 152 | 153 | -------------------------------------------------------------------------------- /common/faad/getopt.h: -------------------------------------------------------------------------------- 1 | /* Declarations for getopt. 2 | Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU General Public License as published by the 6 | Free Software Foundation; either version 2, or (at your option) any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program; if not, write to the Free Software 16 | Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ 17 | 18 | #ifndef _GETOPT_H 19 | #define _GETOPT_H 1 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | #ifndef __MacOSX__ 26 | 27 | /* For communication from `getopt' to the caller. 28 | When `getopt' finds an option that takes an argument, 29 | the argument value is returned here. 30 | Also, when `ordering' is RETURN_IN_ORDER, 31 | each non-option ARGV-element is returned here. */ 32 | 33 | extern char *optarg; 34 | 35 | /* Index in ARGV of the next element to be scanned. 36 | This is used for communication to and from the caller 37 | and for communication between successive calls to `getopt'. 38 | 39 | On entry to `getopt', zero means this is the first call; initialize. 40 | 41 | When `getopt' returns EOF, this is the index of the first of the 42 | non-option elements that the caller should itself scan. 43 | 44 | Otherwise, `optind' communicates from one call to the next 45 | how much of ARGV has been scanned so far. */ 46 | 47 | extern int optind; 48 | 49 | /* Callers store zero here to inhibit the error message `getopt' prints 50 | for unrecognized options. */ 51 | 52 | extern int opterr; 53 | 54 | /* Set to an option character which was unrecognized. */ 55 | 56 | extern int optopt; 57 | #endif 58 | 59 | /* Describe the long-named options requested by the application. 60 | The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector 61 | of `struct option' terminated by an element containing a name which is 62 | zero. 63 | 64 | The field `has_arg' is: 65 | no_argument (or 0) if the option does not take an argument, 66 | required_argument (or 1) if the option requires an argument, 67 | optional_argument (or 2) if the option takes an optional argument. 68 | 69 | If the field `flag' is not NULL, it points to a variable that is set 70 | to the value given in the field `val' when the option is found, but 71 | left unchanged if the option is not found. 72 | 73 | To have a long-named option do something other than set an `int' to 74 | a compiled-in constant, such as set a value from `optarg', set the 75 | option's `flag' field to zero and its `val' field to a nonzero 76 | value (the equivalent single-letter option character, if there is 77 | one). For long options that have a zero `flag' field, `getopt' 78 | returns the contents of the `val' field. */ 79 | 80 | struct option 81 | { 82 | #if __STDC__ 83 | const char *name; 84 | #else 85 | char *name; 86 | #endif 87 | /* has_arg can't be an enum because some compilers complain about 88 | type mismatches in all the code that assumes it is an int. */ 89 | int has_arg; 90 | int *flag; 91 | int val; 92 | }; 93 | 94 | /* Names for the values of the `has_arg' field of `struct option'. */ 95 | 96 | #define no_argument 0 97 | #define required_argument 1 98 | #define optional_argument 2 99 | 100 | //#if __STDC__ || defined(PROTO) 101 | #if defined(__GNU_LIBRARY__) 102 | /* Many other libraries have conflicting prototypes for getopt, with 103 | differences in the consts, in stdlib.h. To avoid compilation 104 | errors, only prototype getopt for the GNU C library. */ 105 | extern int getopt (int argc, char *const *argv, const char *shortopts); 106 | #endif /* not __GNU_LIBRARY__ */ 107 | extern int getopt_long (int argc, char *const *argv, const char *shortopts, 108 | const struct option *longopts, int *longind); 109 | extern int getopt_long_only (int argc, char *const *argv, 110 | const char *shortopts, 111 | const struct option *longopts, int *longind); 112 | 113 | /* Internal only. Users should not call this directly. */ 114 | extern int _getopt_internal (int argc, char *const *argv, 115 | const char *shortopts, 116 | const struct option *longopts, int *longind, 117 | int long_only); 118 | //#else /* not __STDC__ */ 119 | extern int getopt (int argc, char *const *argv, const char *shortopts); 120 | //extern int getopt_long (); 121 | //extern int getopt_long_only (); 122 | 123 | //extern int _getopt_internal (); 124 | //#endif /* not __STDC__ */ 125 | 126 | #ifdef __cplusplus 127 | } 128 | #endif 129 | 130 | #endif /* _GETOPT_H */ 131 | --------------------------------------------------------------------------------