debian/0000755000000000000000000000000012244230277007171 5ustar debian/source/0000755000000000000000000000000012161317220010461 5ustar debian/source/format0000644000000000000000000000001412161317220011667 0ustar 3.0 (quilt) debian/patches/0000755000000000000000000000000012161317220010610 5ustar debian/patches/series0000644000000000000000000000020512161317220012022 0ustar build-fix.patch symbol-visibility.patch format-security.patch exposed-API.patch external-libmp4v2.patch external-libmp4v2_r479.patch debian/patches/exposed-API.patch0000644000000000000000000003024612161317220013714 0ustar Description: Build faac against the public API exposed in instead of the private API defined in "libfaac/frame.h". Author: Fabian Greffrath Forwarded: http://sourceforge.net/tracker/?func=detail&aid=3485323&group_id=704&atid=100704 --- faac.orig/libfaac/aacquant.c +++ faac/libfaac/aacquant.c @@ -23,7 +23,7 @@ #include #include -#include "frame.h" +#include #include "aacquant.h" #include "coder.h" #include "huffman.h" --- faac.orig/libfaac/backpred.c +++ faac/libfaac/backpred.c @@ -34,7 +34,7 @@ Copyright (c) 1997. #include "backpred.h" -void PredInit(faacEncHandle hEncoder) +void PredInit(faacEncStruct* hEncoder) { unsigned int channel; --- faac.orig/libfaac/backpred.h +++ faac/libfaac/backpred.h @@ -43,7 +43,7 @@ void PredCalcPrediction(double *act_spec ChannelInfo *channelInfo, int chanNum); -void PredInit(faacEncHandle hEncoder); +void PredInit(faacEncStruct* hEncoder); void CopyPredInfo(CoderInfo *right, CoderInfo *left); --- faac.orig/libfaac/bitstream.c +++ faac/libfaac/bitstream.c @@ -37,12 +37,12 @@ Copyright (c) 1997. #include "ltp.h" #include "util.h" -static int CountBitstream(faacEncHandle hEncoder, +static int CountBitstream(faacEncStruct* hEncoder, CoderInfo *coderInfo, ChannelInfo *channelInfo, BitStream *bitStream, int numChannels); -static int WriteADTSHeader(faacEncHandle hEncoder, +static int WriteADTSHeader(faacEncStruct* hEncoder, BitStream *bitStream, int writeFlag); static int WriteCPE(CoderInfo *coderInfoL, @@ -152,7 +152,7 @@ static int WriteFAACStr(BitStream *bitSt } -int WriteBitstream(faacEncHandle hEncoder, +int WriteBitstream(faacEncStruct* hEncoder, CoderInfo *coderInfo, ChannelInfo *channelInfo, BitStream *bitStream, @@ -243,7 +243,7 @@ int WriteBitstream(faacEncHandle hEncode return bits; } -static int CountBitstream(faacEncHandle hEncoder, +static int CountBitstream(faacEncStruct* hEncoder, CoderInfo *coderInfo, ChannelInfo *channelInfo, BitStream *bitStream, @@ -329,7 +329,7 @@ static int CountBitstream(faacEncHandle return bits; } -static int WriteADTSHeader(faacEncHandle hEncoder, +static int WriteADTSHeader(faacEncStruct* hEncoder, BitStream *bitStream, int writeFlag) { --- faac.orig/libfaac/bitstream.h +++ faac/libfaac/bitstream.h @@ -149,7 +149,7 @@ typedef struct -int WriteBitstream(faacEncHandle hEncoder, +int WriteBitstream(faacEncStruct* hEncoder, CoderInfo *coderInfo, ChannelInfo *channelInfo, BitStream *bitStream, --- faac.orig/libfaac/filtbank.c +++ faac/libfaac/filtbank.c @@ -51,7 +51,7 @@ static void IMDCT ( FFT_Tables *fft_ -void FilterBankInit(faacEncHandle hEncoder) +void FilterBankInit(faacEncStruct* hEncoder) { unsigned int i, channel; @@ -75,7 +75,7 @@ void FilterBankInit(faacEncHandle hEncod CalculateKBDWindow(hEncoder->kbd_window_short, 6, BLOCK_LEN_SHORT*2); } -void FilterBankEnd(faacEncHandle hEncoder) +void FilterBankEnd(faacEncStruct* hEncoder) { unsigned int channel; @@ -90,7 +90,7 @@ void FilterBankEnd(faacEncHandle hEncode if (hEncoder->kbd_window_short) FreeMemory(hEncoder->kbd_window_short); } -void FilterBank(faacEncHandle hEncoder, +void FilterBank(faacEncStruct* hEncoder, CoderInfo *coderInfo, double *p_in_data, double *p_out_mdct, @@ -202,7 +202,7 @@ void FilterBank(faacEncHandle hEncoder, if (transf_buf) FreeMemory(transf_buf); } -void IFilterBank(faacEncHandle hEncoder, +void IFilterBank(faacEncStruct* hEncoder, CoderInfo *coderInfo, double *p_in_data, double *p_out_data, --- faac.orig/libfaac/filtbank.h +++ faac/libfaac/filtbank.h @@ -41,18 +41,18 @@ extern "C" { #define SINE_WINDOW 0 #define KBD_WINDOW 1 -void FilterBankInit ( faacEncHandle hEncoder ); +void FilterBankInit ( faacEncStruct* hEncoder ); -void FilterBankEnd ( faacEncHandle hEncoder ); +void FilterBankEnd ( faacEncStruct* hEncoder ); -void FilterBank( faacEncHandle hEncoder, +void FilterBank( faacEncStruct* hEncoder, CoderInfo *coderInfo, double *p_in_data, double *p_out_mdct, double *p_overlap, int overlap_select ); -void IFilterBank( faacEncHandle hEncoder, +void IFilterBank( faacEncStruct* hEncoder, CoderInfo *coderInfo, double *p_in_data, double *p_out_mdct, --- faac.orig/libfaac/frame.c +++ faac/libfaac/frame.c @@ -87,8 +87,9 @@ int FAACAPI faacEncGetVersion( char **fa } -int FAACAPI faacEncGetDecoderSpecificInfo(faacEncHandle hEncoder,unsigned char** ppBuffer,unsigned long* pSizeOfDecoderSpecificInfo) +int FAACAPI faacEncGetDecoderSpecificInfo(faacEncHandle hpEncoder,unsigned char** ppBuffer,unsigned long* pSizeOfDecoderSpecificInfo) { + faacEncStruct* hEncoder = (faacEncStruct*)hpEncoder; BitStream* pBitStream = NULL; if((hEncoder == NULL) || (ppBuffer == NULL) || (pSizeOfDecoderSpecificInfo == NULL)) { @@ -118,16 +119,18 @@ int FAACAPI faacEncGetDecoderSpecificInf } -faacEncConfigurationPtr FAACAPI faacEncGetCurrentConfiguration(faacEncHandle hEncoder) +faacEncConfigurationPtr FAACAPI faacEncGetCurrentConfiguration(faacEncHandle hpEncoder) { + faacEncStruct* hEncoder = (faacEncStruct*)hpEncoder; faacEncConfigurationPtr config = &(hEncoder->config); return config; } -int FAACAPI faacEncSetConfiguration(faacEncHandle hEncoder, +int FAACAPI faacEncSetConfiguration(faacEncHandle hpEncoder, faacEncConfigurationPtr config) { + faacEncStruct* hEncoder = (faacEncStruct*)hpEncoder; int i; hEncoder->config.allowMidside = config->allowMidside; @@ -277,7 +280,7 @@ int FAACAPI faacEncSetConfiguration(faac config->psymodelidx = (sizeof(psymodellist) / sizeof(psymodellist[0])) - 2; hEncoder->config.psymodelidx = config->psymodelidx; - hEncoder->psymodel = psymodellist[hEncoder->config.psymodelidx].model; + hEncoder->psymodel = (psymodel_t *)psymodellist[hEncoder->config.psymodelidx].ptr; hEncoder->psymodel->PsyInit(&hEncoder->gpsyInfo, hEncoder->psyInfo, hEncoder->numChannels, hEncoder->sampleRate, hEncoder->srInfo->cb_width_long, hEncoder->srInfo->num_cb_long, hEncoder->srInfo->cb_width_short, @@ -297,7 +300,7 @@ faacEncHandle FAACAPI faacEncOpen(unsign unsigned long *maxOutputBytes) { unsigned int channel; - faacEncHandle hEncoder; + faacEncStruct* hEncoder; *inputSamples = FRAME_LEN*numChannels; *maxOutputBytes = (6144/8)*numChannels; @@ -334,7 +337,7 @@ faacEncHandle FAACAPI faacEncOpen(unsign hEncoder->config.psymodellist = (psymodellist_t *)psymodellist; hEncoder->config.psymodelidx = 0; hEncoder->psymodel = - hEncoder->config.psymodellist[hEncoder->config.psymodelidx].model; + (psymodel_t *)hEncoder->config.psymodellist[hEncoder->config.psymodelidx].ptr; hEncoder->config.shortctl = SHORTCTL_NORMAL; /* default channel map is straight-through */ @@ -401,8 +404,9 @@ faacEncHandle FAACAPI faacEncOpen(unsign return hEncoder; } -int FAACAPI faacEncClose(faacEncHandle hEncoder) +int FAACAPI faacEncClose(faacEncHandle hpEncoder) { + faacEncStruct* hEncoder = (faacEncStruct*)hpEncoder; unsigned int channel; /* Deinitialize coder functions */ @@ -441,13 +445,14 @@ int FAACAPI faacEncClose(faacEncHandle h return 0; } -int FAACAPI faacEncEncode(faacEncHandle hEncoder, +int FAACAPI faacEncEncode(faacEncHandle hpEncoder, int32_t *inputBuffer, unsigned int samplesInput, unsigned char *outputBuffer, unsigned int bufferSize ) { + faacEncStruct* hEncoder = (faacEncStruct*)hpEncoder; unsigned int channel, i; int sb, frameBytes; unsigned int offset; --- faac.orig/libfaac/frame.h +++ faac/libfaac/frame.h @@ -36,6 +36,8 @@ # include #endif +#include + #ifndef HAVE_INT32_T typedef signed int int32_t; #endif @@ -50,23 +52,8 @@ extern "C" { #include "aacquant.h" #include "fft.h" -#if defined(_WIN32) && !defined(__MINGW32__) - #ifndef FAACAPI - #define FAACAPI __stdcall - #endif -#else - #ifndef FAACAPI - #define FAACAPI - #endif -#endif - #pragma pack(push, 1) -typedef struct { - psymodel_t *model; - char *name; -} psymodellist_t; - #include typedef struct { @@ -124,32 +111,7 @@ typedef struct { /* output bits difference in average bitrate mode */ int bitDiff; -} faacEncStruct, *faacEncHandle; - -int FAACAPI faacEncGetVersion(char **faac_id_string, - char **faac_copyright_string); - -int FAACAPI faacEncGetDecoderSpecificInfo(faacEncHandle hEncoder, - unsigned char** ppBuffer, - unsigned long* pSizeOfDecoderSpecificInfo); - -faacEncConfigurationPtr FAACAPI faacEncGetCurrentConfiguration(faacEncHandle hEncoder); -int FAACAPI faacEncSetConfiguration (faacEncHandle hEncoder, faacEncConfigurationPtr config); - -faacEncHandle FAACAPI faacEncOpen(unsigned long sampleRate, - unsigned int numChannels, - unsigned long *inputSamples, - unsigned long *maxOutputBytes); - -int FAACAPI faacEncEncode(faacEncHandle hEncoder, - int32_t *inputBuffer, - unsigned int samplesInput, - unsigned char *outputBuffer, - unsigned int bufferSize - ); - -int FAACAPI faacEncClose(faacEncHandle hEncoder); - +} faacEncStruct; #pragma pack(pop) --- faac.orig/libfaac/huffman.h +++ faac/libfaac/huffman.h @@ -47,7 +47,7 @@ extern "C" { #define ABS(A) ((A) < 0 ? (-A) : (A)) -#include "frame.h" +#include void HuffmanInit(CoderInfo *coderInfo, unsigned int numChannels); void HuffmanEnd(CoderInfo *coderInfo, unsigned int numChannels); --- faac.orig/libfaac/ltp.c +++ faac/libfaac/ltp.c @@ -275,7 +275,7 @@ static double ltp_enc_tf(faacEncHandle h return (bit_gain); } -void LtpInit(faacEncHandle hEncoder) +void LtpInit(faacEncStruct* hEncoder) { int i; unsigned int channel; @@ -306,7 +306,7 @@ void LtpInit(faacEncHandle hEncoder) } } -void LtpEnd(faacEncHandle hEncoder) +void LtpEnd(faacEncStruct* hEncoder) { unsigned int channel; --- faac.orig/libfaac/ltp.h +++ faac/libfaac/ltp.h @@ -26,8 +26,8 @@ -void LtpInit(faacEncHandle hEncoder); -void LtpEnd(faacEncHandle hEncoder); +void LtpInit(faacEncStruct* hEncoder); +void LtpEnd(faacEncStruct* hEncoder); int LtpEncode(faacEncHandle hEncoder, CoderInfo *coderInfo, LtpInfo *ltpInfo, --- faac.orig/libfaac/psychkni.c +++ faac/libfaac/psychkni.c @@ -26,7 +26,7 @@ #include "coder.h" #include "fft.h" #include "util.h" -#include "frame.h" +#include typedef float psyfloat; --- faac.orig/libfaac/tns.c +++ faac/libfaac/tns.c @@ -84,7 +84,7 @@ static void TnsInvFilter(int length,doub /*****************************************************/ /* InitTns: */ /*****************************************************/ -void TnsInit(faacEncHandle hEncoder) +void TnsInit(faacEncStruct* hEncoder) { unsigned int channel; int fsIndex = hEncoder->sampleRateIdx; --- faac.orig/libfaac/tns.h +++ faac/libfaac/tns.h @@ -35,7 +35,7 @@ extern "C" { #endif /* __cplusplus */ -void TnsInit(faacEncHandle hEncoder); +void TnsInit(faacEncStruct* hEncoder); void TnsEncode(TnsInfo* tnsInfo, int numberOfBands,int maxSfb,enum WINDOW_TYPE blockType, int* sfbOffsetTable,double* spec); void TnsEncodeFilterOnly(TnsInfo* tnsInfo, int numberOfBands, int maxSfb, debian/patches/format-security.patch0000644000000000000000000000064412161317220014772 0ustar Description: Fix format string security error. Author: Fabian Greffrath --- faac.orig/frontend/main.c +++ faac/frontend/main.c @@ -715,7 +715,7 @@ int main(int argc, char *argv[]) break; #endif case 'L': - fprintf(stderr, faac_copyright_string); + fprintf(stderr, "%s", faac_copyright_string); dieMessage = license; break; case 'X': debian/patches/symbol-visibility.patch0000644000000000000000000000163112161317220015324 0ustar Description: Set appropriate symbol visibility attributes. Author: Fabian Greffrath Forwarded: http://sourceforge.net/tracker/?func=detail&aid=3485333&group_id=704&atid=100704 --- faac.orig/include/faac.h +++ faac/include/faac.h @@ -30,6 +30,10 @@ extern "C" { # ifndef FAACAPI # define FAACAPI __stdcall # endif +#elif defined(__GNUC__) && __GNUC__ >= 4 +# ifndef FAACAPI +# define FAACAPI __attribute__((visibility("default"))) +# endif #else # ifndef FAACAPI # define FAACAPI --- faac.orig/libfaac/Makefile.am +++ faac/libfaac/Makefile.am @@ -7,6 +7,7 @@ endif libfaac_la_SOURCES = $(main_SOURCES) $(drm_SOURCES) libfaac_la_INCLUDES = aacquant.h channels.h filtbank.h hufftab.h psych.h backpred.h coder.h frame.h midside.h tns.h bitstream.h fft.h huffman.h ltp.h util.h libfaac_la_LIBADD = -lm +libfaac_la_CFLAGS = -fvisibility=hidden INCLUDES = -I$(top_srcdir)/include debian/patches/build-fix.patch0000644000000000000000000002376712161317220013533 0ustar Patch fixing build error and warnings. Error consisted of redefining strcasestr function from string.h. Warnings consisted of deprecated conversions of string constants to char*, using '%llu' for type uint64_t (which on 64 bit systems, is defined as unsigned long int by stdint.h), and using '==' for equality of two strings. ========================================================================== --- a/common/mp4v2/mpeg4ip.h +++ b/common/mp4v2/mpeg4ip.h @@ -120,14 +120,6 @@ #endif #include -#ifdef __cplusplus -extern "C" { -#endif -char *strcasestr(const char *haystack, const char *needle); -#ifdef __cplusplus -} -#endif - #define OPEN_RDWR O_RDWR #define OPEN_CREAT O_CREAT #define OPEN_RDONLY O_RDONLY @@ -135,7 +127,6 @@ #define closesocket close #define IOSBINARY ios::bin -#if SIZEOF_LONG == 8 #define MAX_UINT64 -1LU #define D64F "ld" #define U64F "lu" @@ -143,15 +134,6 @@ #define TO_D64(a) (a##L) #define TO_U64(a) (a##LU) -#else -#define MAX_UINT64 -1LLU -#define D64F "lld" -#define U64F "llu" -#define X64F "llx" - -#define TO_D64(a) (a##LL) -#define TO_U64(a) (a##LLU) -#endif #ifdef HAVE_FPOS_T___POS #define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)((fpos).__pos) --- a/configure.in +++ b/configure.in @@ -4,6 +4,9 @@ AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) +AH_TOP([#ifndef CONFIG_H +#define CONFIG_H]) +AH_BOTTOM([#endif /* CONFIG_H */]) AC_ARG_WITH( mp4v2, [ --with-mp4v2 compile libmp4v2],WITHMP4V2=$withval, WITHMP4V2=yes) AC_ARG_ENABLE( drm, [ --enable-drm Digital Radio Mondiale support], enable_drm=$enableval, enable_drm=no) --- a/common/mp4v2/atom_avcC.cpp +++ b/common/mp4v2/atom_avcC.cpp @@ -29,7 +29,7 @@ class SizeTableProperty : public MP4TableProperty { public: - SizeTableProperty(char *name, MP4IntegerProperty *pCountProperty) : + SizeTableProperty(const char *name, MP4IntegerProperty *pCountProperty) : MP4TableProperty(name, pCountProperty) {}; protected: void ReadEntry(MP4File *pFile, u_int32_t index) { --- a/common/mp4v2/atom_ohdr.cpp +++ b/common/mp4v2/atom_ohdr.cpp @@ -21,7 +21,7 @@ \param useCountedFormat counted format flag. \param useUnicode unicode flag. */ - OhdrMP4StringProperty(char* name, bool useCountedFormat = false, + OhdrMP4StringProperty(const char* name, bool useCountedFormat = false, bool useUnicode = false): MP4StringProperty(name, useCountedFormat, useUnicode) { } --- a/common/mp4v2/atom_stz2.cpp +++ b/common/mp4v2/atom_stz2.cpp @@ -30,7 +30,7 @@ class MP4HalfSizeTableProperty : public MP4TableProperty { public: - MP4HalfSizeTableProperty(char *name, MP4IntegerProperty *pCountProperty) : + MP4HalfSizeTableProperty(const char *name, MP4IntegerProperty *pCountProperty) : MP4TableProperty(name, pCountProperty) {}; // The count is half the actual size --- a/common/mp4v2/mp4atom.cpp +++ b/common/mp4v2/mp4atom.cpp @@ -806,7 +806,7 @@ AddProperty(new MP4Integer24Property("flags")); } -void MP4Atom::AddReserved(char* name, u_int32_t size) +void MP4Atom::AddReserved(const char* name, u_int32_t size) { MP4BytesProperty* pReserved = new MP4BytesProperty(name, size); pReserved->SetReadOnly(); --- a/common/mp4v2/mp4atom.h +++ b/common/mp4v2/mp4atom.h @@ -204,7 +204,7 @@ void AddVersionAndFlags(); - void AddReserved(char* name, u_int32_t size); + void AddReserved(const char* name, u_int32_t size); void ExpectChildAtom(const char* name, bool mandatory, bool onlyOne = true); --- a/common/mp4v2/mp4file.cpp +++ b/common/mp4v2/mp4file.cpp @@ -718,7 +718,7 @@ } } -void MP4File::ProtectWriteOperation(char* where) +void MP4File::ProtectWriteOperation(const char* where) { if (m_mode == 'r') { throw new MP4Error("operation not permitted in read mode", where); @@ -1274,7 +1274,7 @@ } // NULL terminated list of brands which require the IODS atom -char *brandsWithIods[] = { "mp42", +const char *brandsWithIods[] = { "mp42", "isom", NULL}; @@ -2211,11 +2211,11 @@ for (u_int32_t i = 0; i < m_pTracks.Size(); i++) { if (!strcmp(normType, m_pTracks[i]->GetType())) { if (subType) { - if (normType == MP4_AUDIO_TRACK_TYPE) { + if (!strcmp(normType,MP4_AUDIO_TRACK_TYPE)) { if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { continue; } - } else if (normType == MP4_VIDEO_TRACK_TYPE) { + } else if (!strcmp(normType,MP4_VIDEO_TRACK_TYPE)) { if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { continue; } @@ -2278,11 +2278,11 @@ for (u_int32_t i = 0; i < m_pTracks.Size(); i++) { if (!strcmp(normType, m_pTracks[i]->GetType())) { if (subType) { - if (normType == MP4_AUDIO_TRACK_TYPE) { + if (!strcmp(normType,MP4_AUDIO_TRACK_TYPE)) { if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { continue; } - } else if (normType == MP4_VIDEO_TRACK_TYPE) { + } else if (!strcmp(normType,MP4_VIDEO_TRACK_TYPE)) { if (subType != GetTrackEsdsObjectTypeId(m_pTracks[i]->GetId())) { continue; } --- a/common/mp4v2/mp4file.h +++ b/common/mp4v2/mp4file.h @@ -700,7 +700,7 @@ const char* TempFileName(); void Rename(const char* existingFileName, const char* newFileName); - void ProtectWriteOperation(char* where); + void ProtectWriteOperation(const char* where); void FindIntegerProperty(const char* name, MP4Property** ppProperty, u_int32_t* pIndex = NULL); --- a/common/mp4v2/mp4property.cpp +++ b/common/mp4v2/mp4property.cpp @@ -313,7 +313,7 @@ // MP4StringProperty -MP4StringProperty::MP4StringProperty(char* name, +MP4StringProperty::MP4StringProperty(const char* name, bool useCountedFormat, bool useUnicode) : MP4Property(name) { @@ -420,7 +420,7 @@ // MP4BytesProperty -MP4BytesProperty::MP4BytesProperty(char* name, u_int32_t valueSize, +MP4BytesProperty::MP4BytesProperty(const char* name, u_int32_t valueSize, u_int32_t defaultValueSize) : MP4Property(name) { @@ -549,7 +549,7 @@ // MP4TableProperty -MP4TableProperty::MP4TableProperty(char* name, MP4IntegerProperty* pCountProperty) +MP4TableProperty::MP4TableProperty(const char* name, MP4IntegerProperty* pCountProperty) : MP4Property(name) { m_pCountProperty = pCountProperty; @@ -725,7 +725,7 @@ // MP4DescriptorProperty -MP4DescriptorProperty::MP4DescriptorProperty(char* name, +MP4DescriptorProperty::MP4DescriptorProperty(const char* name, u_int8_t tagsStart, u_int8_t tagsEnd, bool mandatory, bool onlyOne) : MP4Property(name) { --- a/common/mp4v2/mp4property.h +++ b/common/mp4v2/mp4property.h @@ -100,7 +100,7 @@ class MP4IntegerProperty : public MP4Property { protected: - MP4IntegerProperty(char* name) + MP4IntegerProperty(const char* name) : MP4Property(name) { }; public: @@ -118,7 +118,7 @@ #define MP4INTEGER_PROPERTY_DECL2(isize, xsize) \ class MP4Integer##xsize##Property : public MP4IntegerProperty { \ public: \ - MP4Integer##xsize##Property(char* name) \ + MP4Integer##xsize##Property(const char* name) \ : MP4IntegerProperty(name) { \ SetCount(1); \ m_values[0] = 0; \ @@ -188,7 +188,7 @@ class MP4BitfieldProperty : public MP4Integer64Property { public: - MP4BitfieldProperty(char* name, u_int8_t numBits) + MP4BitfieldProperty(const char* name, u_int8_t numBits) : MP4Integer64Property(name) { ASSERT(numBits != 0); ASSERT(numBits <= 64); @@ -213,7 +213,7 @@ class MP4Float32Property : public MP4Property { public: - MP4Float32Property(char* name) + MP4Float32Property(const char* name) : MP4Property(name) { m_useFixed16Format = false; m_useFixed32Format = false; @@ -280,7 +280,7 @@ class MP4StringProperty : public MP4Property { public: - MP4StringProperty(char* name, + MP4StringProperty(const char* name, bool useCountedFormat = false, bool useUnicode = false); ~MP4StringProperty(); @@ -355,7 +355,7 @@ class MP4BytesProperty : public MP4Property { public: - MP4BytesProperty(char* name, u_int32_t valueSize = 0, + MP4BytesProperty(const char* name, u_int32_t valueSize = 0, u_int32_t defaultValueSize = 0); ~MP4BytesProperty(); @@ -419,7 +419,7 @@ class MP4TableProperty : public MP4Property { public: - MP4TableProperty(char* name, MP4IntegerProperty* pCountProperty); + MP4TableProperty(const char* name, MP4IntegerProperty* pCountProperty); ~MP4TableProperty(); @@ -469,7 +469,7 @@ class MP4DescriptorProperty : public MP4Property { public: - MP4DescriptorProperty(char* name = NULL, + MP4DescriptorProperty(const char* name = NULL, u_int8_t tagsStart = 0, u_int8_t tagsEnd = 0, bool mandatory = false, bool onlyOne = false); @@ -531,7 +531,7 @@ class MP4QosQualifierProperty : public MP4DescriptorProperty { public: - MP4QosQualifierProperty(char* name = NULL, + MP4QosQualifierProperty(const char* name = NULL, u_int8_t tagsStart = 0, u_int8_t tagsEnd = 0, bool mandatory = false, bool onlyOne = false) : MP4DescriptorProperty(name, tagsStart, tagsEnd, mandatory, onlyOne) { } --- a/common/mp4v2/mp4track.cpp +++ b/common/mp4v2/mp4track.cpp @@ -1360,7 +1360,7 @@ } } -MP4Atom* MP4Track::AddAtom(char* parentName, char* childName) +MP4Atom* MP4Track::AddAtom(const char* parentName, const char* childName) { MP4Atom* pChildAtom = MP4Atom::CreateAtom(childName); --- a/common/mp4v2/mp4track.h +++ b/common/mp4v2/mp4track.h @@ -168,7 +168,7 @@ void UpdateSyncSamples(MP4SampleId sampleId, bool isSyncSample); - MP4Atom* AddAtom(char* parentName, char* childName); + MP4Atom* AddAtom(const char* parentName, const char* childName); void UpdateDurations(MP4Duration duration); MP4Duration ToMovieDuration(MP4Duration trackDuration); --- a/common/mp4v2/ocidescriptors.cpp +++ b/common/mp4v2/ocidescriptors.cpp @@ -171,7 +171,7 @@ class MP4CreatorTableProperty : public MP4TableProperty { public: - MP4CreatorTableProperty(char* name, MP4Integer8Property* pCountProperty) : + MP4CreatorTableProperty(const char* name, MP4Integer8Property* pCountProperty) : MP4TableProperty(name, pCountProperty) { }; protected: debian/patches/external-libmp4v2.patch0000644000000000000000000000454312161317220015116 0ustar Description: FAAC now able to use external updated libmp4v2 Origin: http://faac.cvs.sourceforge.net/viewvc/faac/faac/configure.in?r1=1.25&r2=1.26&sortby=date, http://faac.cvs.sourceforge.net/viewvc/faac/faac/frontend/Makefile.am?r1=1.9&r2=1.10&sortby=date, http://faac.cvs.sourceforge.net/viewvc/faac/faac/frontend/main.c?r1=1.82&r2=1.83&sortby=date --- faac.orig/configure.in +++ faac/configure.in @@ -28,14 +28,17 @@ AC_CHECK_DECL(strcasecmp, MY_DEFINE(HAVE AC_CHECK_LIB(gnugetopt, getopt_long) AM_CONDITIONAL(WITH_MP4V2, false) +AM_CONDITIONAL(WITH_EXTERNAL_MP4V2, false) AC_CHECK_DECLS([MP4Create, MP4MetadataDelete], AC_CHECK_LIB(mp4v2, MP4MetadataDelete, external_mp4v2=yes, external_mp4v2=no, -lstdc++), - external_mp4v2=no, [#include ]) + external_mp4v2=no, [#include ]) if test x$external_mp4v2 = xyes; then AC_MSG_NOTICE([*** Building with external mp4v2 ***]) + MY_DEFINE(HAVE_EXTERNAL_LIBMP4V2) + AM_CONDITIONAL(WITH_EXTERNAL_MP4V2, true) else if test x$WITHMP4V2 = xyes; then AC_MSG_NOTICE([*** Building with internal mp4v2 ***]) --- faac.orig/frontend/Makefile.am +++ faac/frontend/Makefile.am @@ -8,5 +8,9 @@ INCLUDES = -I$(top_srcdir)/include -I$(t LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++ else INCLUDES = -I$(top_srcdir)/include +if WITH_EXTERNAL_MP4V2 +LDADD = $(top_builddir)/libfaac/libfaac.la -lm -lmp4v2 +else LDADD = $(top_builddir)/libfaac/libfaac.la -lm endif +endif --- faac.orig/frontend/main.c +++ faac/frontend/main.c @@ -18,7 +18,7 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: main.c,v 1.82 2009/01/24 01:10:20 menno Exp $ + * $Id: main.c,v 1.83 2009/07/27 18:12:38 menno Exp $ */ #ifdef _MSC_VER @@ -29,7 +29,10 @@ #include "config.h" #endif -#ifdef HAVE_LIBMP4V2 +#ifdef HAVE_EXTERNAL_LIBMP4V2 +# include +# define HAVE_LIBMP4V2 +#elif defined(HAVE_LIBMP4V2) # include #endif @@ -1167,6 +1170,9 @@ int main(int argc, char *argv[]) /* $Log: main.c,v $ +Revision 1.83 2009/07/27 18:12:38 menno +FAAC now able to use external updated libmp4v2 + Revision 1.82 2009/01/24 01:10:20 menno Made JPEG detection less restrictive debian/patches/external-libmp4v2_r479.patch0000644000000000000000000001224112161317220015675 0ustar Description: Port faac to the iTMF Generic and Tags API. Origin: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-libs/faac/files/faac-1.28-libmp4v2_r479_compat.patch, http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/2012-February/024601.html Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659856 Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=397575 Forwarded: http://sourceforge.net/tracker/?func=detail&aid=3476707&group_id=704&atid=100704 Author: Jaakko Perttilä Author: Sebastien NOEL Author: Fabian Greffrath --- faac.orig/configure.in +++ faac/configure.in @@ -33,8 +33,8 @@ AC_CHECK_LIB(gnugetopt, getopt_long) AM_CONDITIONAL(WITH_MP4V2, false) AM_CONDITIONAL(WITH_EXTERNAL_MP4V2, false) -AC_CHECK_DECLS([MP4Create, MP4MetadataDelete], - AC_CHECK_LIB(mp4v2, MP4MetadataDelete, external_mp4v2=yes, +AC_CHECK_DECLS([MP4Create], + AC_CHECK_LIB(mp4v2, MP4Create, external_mp4v2=yes, external_mp4v2=no, -lstdc++), external_mp4v2=no, [#include ]) @@ -42,6 +42,7 @@ if test x$external_mp4v2 = xyes; then AC_MSG_NOTICE([*** Building with external mp4v2 ***]) MY_DEFINE(HAVE_EXTERNAL_LIBMP4V2) AM_CONDITIONAL(WITH_EXTERNAL_MP4V2, true) + AC_CHECK_DECLS([MP4TagsAlloc], [], [], [#include ]) else if test x$WITHMP4V2 = xyes; then AC_MSG_NOTICE([*** Building with internal mp4v2 ***]) --- faac.orig/frontend/main.c +++ faac/frontend/main.c @@ -873,8 +873,12 @@ int main(int argc, char *argv[]) if (!faacEncSetConfiguration(hEncoder, myFormat)) { fprintf(stderr, "Unsupported output format!\n"); #ifdef HAVE_LIBMP4V2 +#ifdef MP4_CLOSE_DO_NOT_COMPUTE_BITRATE /* r479 fix */ + if (container == MP4_CONTAINER) MP4Close(MP4hFile, 0); +#else if (container == MP4_CONTAINER) MP4Close(MP4hFile); #endif +#endif return 1; } @@ -885,12 +889,10 @@ int main(int argc, char *argv[]) unsigned long ASCLength = 0; char *version_string; -#ifdef MP4_CREATE_EXTENSIBLE_FORMAT - /* hack to compile against libmp4v2 >= 1.0RC3 - * why is there no version identifier in mp4.h? */ +#ifdef MP4_DETAILS_ERROR /* r453 fix */ MP4hFile = MP4Create(aacFileName, MP4_DETAILS_ERROR, 0); #else - MP4hFile = MP4Create(aacFileName, MP4_DETAILS_ERROR, 0, 0); + MP4hFile = MP4Create(aacFileName, 0); #endif if (!MP4_IS_VALID_FILE_HANDLE(MP4hFile)) { fprintf(stderr, "Couldn't create output file %s\n", aacFileName); @@ -905,12 +907,22 @@ int main(int argc, char *argv[]) free(ASC); /* set metadata */ +#if HAVE_DECL_MP4TAGSALLOC + const MP4Tags* tags; + tags = MP4TagsAlloc(); + MP4TagsFetch( tags, MP4hFile ); +#endif version_string = malloc(strlen(faac_id_string) + 6); strcpy(version_string, "FAAC "); strcpy(version_string + 5, faac_id_string); +#if !HAVE_DECL_MP4TAGSALLOC MP4SetMetadataTool(MP4hFile, version_string); +#else + MP4TagsSetEncodingTool(tags, version_string); +#endif free(version_string); +#if !HAVE_DECL_MP4TAGSALLOC if (artist) MP4SetMetadataArtist(MP4hFile, artist); if (writer) MP4SetMetadataWriter(MP4hFile, writer); if (title) MP4SetMetadataName(MP4hFile, title); @@ -923,8 +935,40 @@ int main(int argc, char *argv[]) if (comment) MP4SetMetadataComment(MP4hFile, comment); if (artSize) { MP4SetMetadataCoverArt(MP4hFile, art, artSize); +#else + if (artist) MP4TagsSetArtist(tags, artist); + if (writer) MP4TagsSetComposer(tags, writer); + if (title) MP4TagsSetName(tags, title); + if (album) MP4TagsSetAlbum(tags, album); + if (trackno > 0) { + MP4TagTrack tt; + tt.index = trackno; + tt.total = ntracks; + MP4TagsSetTrack(tags, &tt); + } + if (discno > 0) { + MP4TagDisk td; + td.index = discno; + td.total = ndiscs; + MP4TagsSetDisk(tags, &td); + } + if (compilation) MP4TagsSetCompilation(tags, compilation); + if (year) MP4TagsSetReleaseDate(tags, year); + if (genre) MP4TagsSetGenre(tags, genre); + if (comment) MP4TagsSetComments(tags, comment); + if (artSize) { + MP4TagArtwork mp4art; + mp4art.data = art; + mp4art.size = artSize; + mp4art.type = MP4_ART_UNDEFINED; // delegate typing to libmp4v2 + MP4TagsAddArtwork( tags, &mp4art ); +#endif free(art); } +#if HAVE_DECL_MP4TAGSALLOC + MP4TagsStore( tags, MP4hFile ); + MP4TagsFree( tags ); +#endif } else { @@ -1141,11 +1185,19 @@ int main(int argc, char *argv[]) /* clean up */ if (container == MP4_CONTAINER) { +#ifdef MP4_CLOSE_DO_NOT_COMPUTE_BITRATE /* r479 fix */ + MP4Close(MP4hFile, 0); +#else MP4Close(MP4hFile); +#endif if (optimizeFlag == 1) { fprintf(stderr, "\n\nMP4 format optimization... "); +#ifdef MP4_DETAILS_ERROR /* r453 fix */ MP4Optimize(aacFileName, NULL, 0); +#else + MP4Optimize(aacFileName, NULL); +#endif fprintf(stderr, "Done!"); } } else debian/changelog0000644000000000000000000000656712244227701011057 0ustar faac (1.28-6) unstable; urgency=low * Add "XS-Autobuild: yes" to debian/control and clarify in debian/copyright that this package can legitimately and technically be auto-built (Closes: #729145). -- Fabian Greffrath Thu, 21 Nov 2013 10:03:07 +0100 faac (1.28-5) unstable; urgency=low [ Andres Mejia ] * Disable mp4v2 support. This only disables mp4v2 for the faac utility program. The faac utility is GPL-2 but the mp4v2 library is MPL-1.1. The two licenses are incompatible with each other. [ Reinhard Tartler ] * Revise debian/copyright * Bump standards version (no changes needed) -- Reinhard Tartler Sat, 22 Jun 2013 15:09:31 +0200 faac (1.28-4) unstable; urgency=low * Upload to Debian. (Closes: #665318) * Change my contact info to use my @debian.org email. * Bump to Standards-Version 3.9.3. * Make dev package multiarch installable. * Add Vcs-* entries. -- Andres Mejia Thu, 22 Mar 2012 21:45:48 -0400 faac (1.28-3) unstable; urgency=low * Use updated external libmp4v2 if available. * Port faac to the iTMF Generic and Tags API. * Add Build-Depends: libmp4v2-dev (>= 1.9.1). -- Fabian Greffrath Mon, 20 Feb 2012 15:06:05 +0100 faac (1.28-2) unstable; urgency=low * Build faac against the public API exposed in instead of the private API defined in "libfaac/frame.h". * Simplify symbol-visibility.patch accordingly. -- Fabian Greffrath Tue, 07 Feb 2012 14:28:52 +0100 faac (1.28-1) unstable; urgency=low * Update my e-mail address in Uploaders field. * Update debian/copyright. * Ship upstream manpage instead if our own one. * Fix dh invocation in debian/rules. * Set appropriate symbol visibility attributes. * Add debian/libfaac0.symbols file. * Fix format string security error. * Multi-Archify. * TODO: Port to libmp4v2-r479 API. -- Fabian Greffrath Mon, 06 Feb 2012 14:57:15 +0100 faac (1.28-0fab3) unstable; urgency=low [ Andres Mejia ] * Various fixes for getting faac working on current Debian sid. * Include myself in Uploaders field. * Clarify comment about build fixes in patch. * Change this package section to non-free due to its conflicting licensing terms. * Don't include libtool file. [ Maia Kozheva ] * Add .gitignore. * Remove explicit quilt dependency, migrate to 3.0 source format. * Remove autoreconf.patch, using dh_autoreconf. * debian/control: - Reword binary package descriptions to remove initial articles. - Bump Standards-Version to 3.9.2. - Update maintainer field. - Add myself to uploaders. * debian/control, debian/rules: - Remove quilt, add dh-autoreconf support. * debian/faac.manpages, debian/manpages/faac.1: - Add manpage from Ubuntu version 1.26-0.1ubuntu2, with manpage hyphen issues corrected. -- Maia Kozheva Thu, 09 Jun 2011 11:24:43 +0700 faac (1.28-0fab2) unstable; urgency=low * debian/control, debian/rules: Ported from debhelper (>= 7) to cdbs. * debian/control: Wrapped Build-Depends and Depends fields. -- Fabian Greffrath Mon, 29 Jun 2009 12:00:00 +0200 faac (1.28-0fab1) unstable; urgency=low * Initial release. -- Fabian Greffrath Mon, 01 Jun 2009 00:00:00 +0200 debian/libfaac0.install0000644000000000000000000000002112161317220012203 0ustar usr/lib/*/*.so.* debian/compat0000644000000000000000000000000212161317220010357 0ustar 9 debian/copyright0000644000000000000000000001656312244227445011142 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: FAAC Upstream-Contact: Menno Bakker Source: http://www.audiocoding.com/ Disclaimer: This package contains software that has been originally developed in the course of development of the MPEG-2 NBC/MPEG-4 Audio standard ISO/IEC 13818-7, 14496-1,2 and 3. This software module is an implementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio tools as specified by the MPEG-2 NBC/MPEG-4 Audio standard. While the resulting programs and binaries result in redistributable software, the effects on application packages derived from this library remain unclear. Therefore, the Debian 'non-free' section is an adequate place until the licenses for the problematic parts have been clarified by relicensing or reimplementation. . This package can legitimately and technically be auto-built, its license does not disapprove of automated building nor does it impose restrictions related to architecture or distribution. Files: * Copyright: © 1999-2001, Menno Bakker © 2002-2004, Krzysztof Nikiel © 2004, Dan Villiom P. Christiansen © 2004, Volker Fischer License: LGPL-2.1+ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. . This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. . You should have received a copy of the GNU Lesser General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . On Debian systems, the complete text of the GNU Lesser General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. Files: common/Cfaac/* plugins/* Copyright: © 2002-2004, Antonio Foranna License: GPL-1 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. . On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-1'. Files: common/mp4v2/* Copyright: © 2001, Cisco Systems Inc. © 2003-2004, Ximpo Group Ltd. License: MPL-1.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ . Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. Files: frontend/getopt.* Copyright: © 1987-1993, Free Software Foundation, Inc. License: GPL-2+ Files: libfaac/channels.c libfaac/filtbank.c libfaac/ltp.c libfaac/huffman.* libfaac/bitstream.* libfaac/tns.h libfaac/backpred.c libfaac/tns.c Copyright: © 1996-1997 License: other This software module was originally developed in the course of development of the MPEG-2 NBC/MPEG-4 Audio standard ISO/IEC 13818-7, 14496-1,2 and 3. This software module is an implementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio tools as specified by the MPEG-2 NBC/MPEG-4 Audio standard. ISO/IEC gives users of the MPEG-2 NBC/MPEG-4 Audio standards free license to this software module or modifications thereof for use in hardware or software products claiming conformance to the MPEG-2 NBC/ MPEG-4 Audio standards. Those intending to use this software module in hardware or software products are advised that this use may infringe existing patents. The original developer of this software module and his/her company, the subsequent editors and their companies, and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. Copyright is not released for non MPEG-2 NBC/MPEG-4 Audio conforming products. The original developer retains full right to use the code for his/her own purpose, assign or donate the code to a third party and to inhibit third party from using the code for non MPEG-2 NBC/MPEG-4 Audio conforming products. This copyright notice must be included in all copies or derivative works. Files: libfaac/kiss_fft/* Copyright: © 2003-2004, Mark Borgerding License: BSD-3-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Files: debian/* Copyright: © 2005-2012, Fabian Greffrath License: GPL-2+ License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". debian/libfaac0.symbols0000644000000000000000000000037212161317220012236 0ustar libfaac.so.0 libfaac0 #MINVER# faacEncClose@Base 1.28 faacEncEncode@Base 1.28 faacEncGetCurrentConfiguration@Base 1.28 faacEncGetDecoderSpecificInfo@Base 1.28 faacEncGetVersion@Base 1.28 faacEncOpen@Base 1.28 faacEncSetConfiguration@Base 1.28 debian/libfaac-dev.install0000644000000000000000000000005112161317220012702 0ustar usr/include usr/lib/*/*.a usr/lib/*/*.so debian/watch0000644000000000000000000000005712161317220010214 0ustar version=3 http://sf.net/faac/faac-(.*)\.tar.gz debian/gbp.conf0000644000000000000000000000003612161317220010577 0ustar [DEFAULT] pristine-tar = True debian/faac.install0000644000000000000000000000002212161317220011435 0ustar usr/bin usr/share debian/rules0000755000000000000000000000016312161317220010241 0ustar #!/usr/bin/make -f %: dh $@ --with autoreconf override_dh_auto_configure: dh_auto_configure -- --without-mp4v2 debian/control0000644000000000000000000000444012244227445010601 0ustar Source: faac Section: non-free/sound Priority: optional Maintainer: Debian Multimedia Maintainers Uploaders: Fabian Greffrath , Reinhard Tartler , Andres Mejia , Maia Kozheva Build-Depends: debhelper (>= 9), dh-autoreconf Standards-Version: 3.9.4 Homepage: http://www.audiocoding.com/ Vcs-Git: git://anonscm.debian.org/pkg-multimedia/faac.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/faac.git XS-Autobuild: yes Package: faac Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: AAC audio encoder (frontend) The FAAC project includes the AAC encoder FAAC and decoder FAAD2. It supports several MPEG-4 object types (LC, Main, LTP, HE AAC, PS) and file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless en/decoding as well as MP4 metadata tags. The codecs are compatible with standard-compliant audio applications using one or more of these profiles. . This package contains the frontend. Package: libfaac0 Section: non-free/libs Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: AAC audio encoder (library) The FAAC project includes the AAC encoder FAAC and decoder FAAD2. It supports several MPEG-4 object types (LC, Main, LTP, HE AAC, PS) and file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless en/decoding as well as MP4 metadata tags. The codecs are compatible with standard-compliant audio applications using one or more of these profiles. . This package contains the shared library. Package: libfaac-dev Section: non-free/libdevel Architecture: any Multi-Arch: same Depends: libfaac0 (= ${binary:Version}), ${misc:Depends} Description: AAC audio encoder (development) The FAAC project includes the AAC encoder FAAC and decoder FAAD2. It supports several MPEG-4 object types (LC, Main, LTP, HE AAC, PS) and file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless en/decoding as well as MP4 metadata tags. The codecs are compatible with standard-compliant audio applications using one or more of these profiles. . This package contains the development files.