From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Dec 29 10:30:11 2010 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C8961065672 for ; Wed, 29 Dec 2010 10:30:11 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id E27308FC17 for ; Wed, 29 Dec 2010 10:30:10 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id oBTAUAoF026814 for ; Wed, 29 Dec 2010 10:30:10 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id oBTAUAft026809; Wed, 29 Dec 2010 10:30:10 GMT (envelope-from gnats) Resent-Date: Wed, 29 Dec 2010 10:30:10 GMT Resent-Message-Id: <201012291030.oBTAUAft026809@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Takefu Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F0DF41065670 for ; Wed, 29 Dec 2010 10:29:26 +0000 (UTC) (envelope-from takefu@airport.fm) Received: from ae-osaka.co.jp (unknown [IPv6:2001:3e0:4ec:a000::1]) by mx1.freebsd.org (Postfix) with ESMTP id 67A728FC14 for ; Wed, 29 Dec 2010 10:29:26 +0000 (UTC) Received: from ae-osaka.co.jp (localhost.ae-osaka.co.jp [127.0.0.1]) by ae-osaka.co.jp (Postfix) with ESMTP id E1CDB11473 for ; Wed, 29 Dec 2010 19:29:25 +0900 (JST) Received: from ae-osaka.co.jp ([127.0.0.1]) by ae-osaka.co.jp (ae-osaka.co.jp [127.0.0.1]) (amavisd-new, port 10024) with LMTP id yuq0mzpWDDnp for ; Wed, 29 Dec 2010 19:29:25 +0900 (JST) Received: from [IPv6:2001:3e0:4ec:a011:8c35:29b7:770e:bcea] (unknown [IPv6:2001:3e0:4ec:a011:8c35:29b7:770e:bcea]) by ae-osaka.co.jp (Postfix) with ESMTPSA id A0F7411470 for ; Wed, 29 Dec 2010 19:29:25 +0900 (JST) Message-Id: <4D1B0D85.5070409@airport.fm> Date: Wed, 29 Dec 2010 19:29:25 +0900 From: Takefu To: freebsd-gnats-submit@FreeBSD.org Cc: Subject: ports/153519: [PATCH] audio/darkice: fix libaacplus2 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Dec 2010 10:30:11 -0000 >Number: 153519 >Category: ports >Synopsis: [PATCH] audio/darkice: fix libaacplus2 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Wed Dec 29 10:30:10 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Takefu >Release: FreeBSD 8.2-RC1 amd64 >Organization: FOX Amateur Radio Club >Environment: >Description: >How-To-Repeat: >Fix: --- darkice-1.0.3.patch begins here --- diff -ruN /usr/ports/audio/darkice/Makefile audio/darkice/Makefile --- /usr/ports/audio/darkice/Makefile 2010-11-01 08:27:03.000000000 +0900 +++ audio/darkice/Makefile 2010-12-29 19:03:11.000000000 +0900 @@ -8,21 +8,25 @@ PORTNAME= darkice PORTVERSION= 1.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= audio net MASTER_SITES= GOOGLE_CODE MAINTAINER= ports@FreeBSD.org COMMENT= An IceCast, IceCast2 and ShoutCast live audio streamer +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + OPTIONS= VORBIS "Ogg Vorbis support" on \ LAME "LAME support for MP3" off \ TWOLAME "TwoLAME support for MP2" off \ FAAC "FAAC support for AAC" off \ JACK "Jack support" off \ - AACPLUS "AAC HEv2 support" off \ + AACPLUS "AAC HEv2 support (required for use SAMPLERATE)" off \ SAMPLERATE "Libsamplerate support" off +USE_AUTOTOOLS= aclocal autoconf GNU_CONFIGURE= yes CONFIGURE_ENV= CPPFLAGS="${PTHREAD_CFLAGS}" LDFLAGS="${PTHREAD_LIBS}" \ ac_cv_prog_acx_pthread_config=no @@ -73,7 +77,7 @@ .endif .if defined(WITH_AACPLUS) -LIB_DEPENDS+= aacplus.1:${PORTSDIR}/audio/libaacplus +LIB_DEPENDS+= aacplus.2:${PORTSDIR}/audio/libaacplus CONFIGURE_ARGS+= --with-aacplus-prefix=${LOCALBASE} .else CONFIGURE_ARGS+= --without-aacplus diff -ruN /usr/ports/audio/darkice/distinfo audio/darkice/distinfo --- /usr/ports/audio/darkice/distinfo 2010-07-21 16:52:35.000000000 +0900 +++ audio/darkice/distinfo 2010-12-29 14:20:11.000000000 +0900 @@ -1,3 +1,2 @@ -MD5 (darkice-1.0.tar.gz) = 1804e63d42a9703d01fe378c9a77c473 SHA256 (darkice-1.0.tar.gz) = 61a05c4dab206c22c3e3d5570ee4841f9c8875241098adf687717e7dcc6df332 SIZE (darkice-1.0.tar.gz) = 311567 diff -ruN /usr/ports/audio/darkice/files/patch-configure.in audio/darkice/files/patch-configure.in --- /usr/ports/audio/darkice/files/patch-configure.in 1970-01-01 09:00:00.000000000 +0900 +++ audio/darkice/files/patch-configure.in 2010-12-29 19:12:09.000000000 +0900 @@ -0,0 +1,11 @@ +--- configure.in.orig 2010-05-10 06:38:57.000000000 +0900 ++++ configure.in 2010-12-29 19:11:40.000000000 +0900 +@@ -166,7 +166,7 @@ + + if test "x${USE_AACPLUS}" = "xyes" ; then + AC_MSG_CHECKING( [for aacplus library at ${CONFIG_AACPLUS_PREFIX}] ) +- LA_SEARCH_LIB( AACPLUS_LIB_LOC, AACPLUS_INC_LOC, libaacplus.a libaacplus.so, sbr_main.h, ++ LA_SEARCH_LIB( AACPLUS_LIB_LOC, AACPLUS_INC_LOC, libaacplus.a libaacplus.so, aacplus.h, + ${CONFIG_AACPLUS_PREFIX}) + if test "x${AACPLUS_LIB_LOC}" != "x" ; then + AC_DEFINE( HAVE_AACPLUS_LIB, 1, [build with aacplus library] ) diff -ruN /usr/ports/audio/darkice/files/patch-darkice.cfg audio/darkice/files/patch-darkice.cfg --- /usr/ports/audio/darkice/files/patch-darkice.cfg 1970-01-01 09:00:00.000000000 +0900 +++ audio/darkice/files/patch-darkice.cfg 2010-12-29 19:18:01.000000000 +0900 @@ -0,0 +1,10 @@ +--- darkice.cfg.orig 2010-05-10 05:26:19.000000000 +0900 ++++ darkice.cfg 2010-12-29 19:17:57.000000000 +0900 +@@ -6,6 +6,7 @@ + duration = 60 # duration of encoding, in seconds. 0 means forever + bufferSecs = 5 # size of internal slip buffer, in seconds + reconnect = yes # reconnect to the server(s) if disconnected ++realtime = yes # run the encoder with POSIX realtime priority + + # this section describes the audio input that will be streamed + [input] diff -ruN /usr/ports/audio/darkice/files/patch-src_aacPlusEncoder.cpp audio/darkice/files/patch-src_aacPlusEncoder.cpp --- /usr/ports/audio/darkice/files/patch-src_aacPlusEncoder.cpp 1970-01-01 09:00:00.000000000 +0900 +++ audio/darkice/files/patch-src_aacPlusEncoder.cpp 2010-12-29 13:40:33.000000000 +0900 @@ -0,0 +1,328 @@ +--- src/aacPlusEncoder.cpp.orig 2010-05-10 07:18:48.000000000 +0900 ++++ src/aacPlusEncoder.cpp 2010-10-13 07:42:25.000000000 +0900 +@@ -5,8 +5,8 @@ + Tyrell DarkIce + + File : aacPlusEncoder.cpp +- Version : $Revision: 474 $ +- Author : $Author: rafael@riseup.net $ ++ Version : $Revision$ ++ Author : $Author$ + Location : $HeadURL$ + + Copyright notice: +@@ -51,7 +51,7 @@ + /*------------------------------------------------------------------------------ + * File identity + *----------------------------------------------------------------------------*/ +-static const char fileid[] = "$Id: aacPlusEncoder.cpp 474 2010-05-10 01:18:15Z rafael@riseup.net $"; ++static const char fileid[] = "$Id$"; + + + /* =============================================== local function prototypes */ +@@ -76,82 +76,27 @@ + "aacplus lib opening underlying sink error"); + } + +- reportEvent(1, "Using aacplus codec version", "720 3gpp"); ++ reportEvent(1, "Using aacplus codec"); + +- bitrate = getOutBitrate() * 1000; +- bandwidth = 0; +- useParametricStereo = 0; +- numAncDataBytes=0; +- coreWriteOffset = 0; +- envReadOffset = 0; +- writeOffset = INPUT_DELAY*MAX_CHANNELS; +- writtenSamples = 0; +- aacEnc = NULL; +- hEnvEnc=NULL; +- +- /* set up basic parameters for aacPlus codec */ +- AacInitDefaultConfig(&config); +- nChannelsAAC = nChannelsSBR = getOutChannel(); +- +- if ( (getInChannel() == 2) && (bitrate >= 16000) && (bitrate < 44001) ) { +- useParametricStereo = 1; +- nChannelsAAC = 1; +- nChannelsSBR = 2; +- +- reportEvent(10, "use Parametric Stereo"); +- +- envReadOffset = (MAX_DS_FILTER_DELAY + INPUT_DELAY)*MAX_CHANNELS; +- coreWriteOffset = CORE_INPUT_OFFSET_PS; +- writeOffset = envReadOffset; +- } else { +- /* set up 2:1 downsampling */ +- InitIIR21_Resampler(&(IIR21_reSampler[0])); +- InitIIR21_Resampler(&(IIR21_reSampler[1])); +- +- if(IIR21_reSampler[0].delay > MAX_DS_FILTER_DELAY) +- throw Exception(__FILE__, __LINE__, "IIR21 resampler delay is bigger then MAX_DS_FILTER_DELAY"); +- writeOffset += IIR21_reSampler[0].delay*MAX_CHANNELS; ++ encoderHandle = aacplusEncOpen(getOutSampleRate(), ++ getInChannel(), ++ &inputSamples, ++ &maxOutputBytes); ++ ++ aacplusEncConfiguration * aacplusConfig; ++ ++ aacplusConfig = aacplusEncGetCurrentConfiguration(encoderHandle); ++ ++ aacplusConfig->bitRate = getOutBitrate() * 1000; ++ aacplusConfig->bandWidth = lowpass; ++ aacplusConfig->outputFormat = 1; ++ aacplusConfig->inputFormat = AACPLUS_INPUT_16BIT; ++ aacplusConfig->nChannelsOut = getOutChannel(); ++ ++ if (!aacplusEncSetConfiguration(encoderHandle, aacplusConfig)) { ++ throw Exception(__FILE__, __LINE__, ++ "error configuring libaacplus library"); + } +- +- sampleRateAAC = getOutSampleRate(); +- config.bitRate = bitrate; +- config.nChannelsIn=getInChannel(); +- config.nChannelsOut=nChannelsAAC; +- config.bandWidth=bandwidth; +- +- /* set up SBR configuration */ +- if(!IsSbrSettingAvail(bitrate, nChannelsAAC, sampleRateAAC, &sampleRateAAC)) +- throw Exception(__FILE__, __LINE__, "No valid SBR configuration found"); +- +- InitializeSbrDefaults (&sbrConfig); +- sbrConfig.usePs = useParametricStereo; +- +- AdjustSbrSettings( &sbrConfig, +- bitrate, +- nChannelsAAC, +- sampleRateAAC, +- AACENC_TRANS_FAC, +- 24000); +- +- EnvOpen( &hEnvEnc, +- inBuf + coreWriteOffset, +- &sbrConfig, +- &config.bandWidth); +- +- /* set up AAC encoder, now that samling rate is known */ +- config.sampleRate = sampleRateAAC; +- if (AacEncOpen(&aacEnc, config) != 0){ +- AacEncClose(aacEnc); +- throw Exception(__FILE__, __LINE__, "Initialisation of AAC failed !"); +- } +- +- init_plans(); +- +- /* create the ADTS header */ +- adts_hdr(outBuf, &config); +- +- inSamples = AACENC_BLOCKSIZE * getInChannel() * 2; +- + + // initialize the resampling coverter if needed + if ( converter ) { +@@ -159,8 +104,8 @@ + converterData.input_frames = 4096/((getInBitsPerSample() / 8) * getInChannel()); + converterData.data_in = new float[converterData.input_frames*getInChannel()]; + converterData.output_frames = (int) (converterData.input_frames * resampleRatio + 1); +- if ((int) inSamples > getInChannel() * converterData.output_frames) { +- resampledOffset = new float[2 * inSamples]; ++ if ((int) inputSamples > getInChannel() * converterData.output_frames) { ++ resampledOffset = new float[2 * inputSamples]; + } else { + resampledOffset = new float[2 * getInChannel() * converterData.input_frames]; + } +@@ -178,13 +123,9 @@ + } + + aacplusOpen = true; +- reportEvent(10, "bitrate=", bitrate); +- reportEvent(10, "nChannelsIn", getInChannel()); +- reportEvent(10, "nChannelsOut", getOutChannel()); +- reportEvent(10, "nChannelsSBR", nChannelsSBR); +- reportEvent(10, "nChannelsAAC", nChannelsAAC); +- reportEvent(10, "sampleRateAAC", sampleRateAAC); +- reportEvent(10, "inSamples", inSamples); ++ reportEvent(10, "nChannelsAAC", aacplusConfig->nChannelsOut); ++ reportEvent(10, "sampleRateAAC", aacplusConfig->sampleRate); ++ reportEvent(10, "inSamples", inputSamples); + return true; + } + +@@ -199,21 +140,23 @@ + if ( !isOpen() || len == 0) { + return 0; + } +- ++ + unsigned int channels = getInChannel(); + unsigned int bitsPerSample = getInBitsPerSample(); + unsigned int sampleSize = (bitsPerSample / 8) * channels; ++ unsigned char * b = (unsigned char*) buf; + unsigned int processed = len - (len % sampleSize); + unsigned int nSamples = processed / sampleSize; +- unsigned int samples = (unsigned int) nSamples * channels; +- int processedSamples = 0; +- +- ++ unsigned char * aacplusBuf = new unsigned char[maxOutputBytes]; ++ int samples = (int) nSamples * channels; ++ int processedSamples = 0; ++ ++ + + if ( converter ) { + unsigned int converted; + #ifdef HAVE_SRC_LIB +- src_short_to_float_array ((short *) buf, converterData.data_in, samples); ++ src_short_to_float_array ((short *) b, converterData.data_in, samples); + converterData.input_frames = nSamples; + converterData.data_out = resampledOffset + (resampledOffsetSize * channels); + int srcError = src_process (converter, &converterData); +@@ -224,7 +167,6 @@ + int inCount = nSamples; + short int * shortBuffer = new short int[samples]; + int outCount = (int) (inCount * resampleRatio); +- unsigned char * b = (unsigned char*) buf; + Util::conv( bitsPerSample, b, processed, shortBuffer, isInBigEndian()); + converted = converter->resample( inCount, + outCount+1, +@@ -235,18 +177,27 @@ + resampledOffsetSize += converted; + + // encode samples (if enough) +- while(resampledOffsetSize - processedSamples >= inSamples/channels) { ++ while(resampledOffsetSize - processedSamples >= inputSamples/channels) { ++ int outputBytes; + #ifdef HAVE_SRC_LIB +- short *shortData = new short[inSamples]; ++ short *shortData = new short[inputSamples]; + src_float_to_short_array(resampledOffset + (processedSamples * channels), +- shortData, inSamples) ; +- +- encodeAacSamples (shortData, inSamples, channels); ++ shortData, inputSamples) ; ++ outputBytes = aacplusEncEncode(encoderHandle, ++ (int32_t*) shortData, ++ inputSamples, ++ aacplusBuf, ++ maxOutputBytes); + delete [] shortData; + #else +- encodeAacSamples (&resampledOffset[processedSamples*channels], inSamples, channels); ++ outputBytes = aacplusEncEncode(encoderHandle, ++ (int32_t*) &resampledOffset[processedSamples*channels], ++ inputSamples, ++ aacplusBuf, ++ maxOutputBytes); + #endif +- processedSamples+=inSamples/channels; ++ getSink()->write(aacplusBuf, outputBytes); ++ processedSamples+=inputSamples/channels; + } + + if (processedSamples && (int) resampledOffsetSize >= processedSamples) { +@@ -262,70 +213,27 @@ + #endif + } + } else { +- encodeAacSamples ((short *) buf, samples, channels); +- } ++ while (processedSamples < samples) { ++ int outputBytes; ++ int inSamples = samples - processedSamples < (int) inputSamples ++ ? samples - processedSamples ++ : inputSamples; ++ ++ outputBytes = aacplusEncEncode(encoderHandle, ++ (int32_t*) (b + processedSamples/sampleSize), ++ inSamples, ++ aacplusBuf, ++ maxOutputBytes); ++ getSink()->write(aacplusBuf, outputBytes); + +- return samples; +-} +- +-void +-aacPlusEncoder :: encodeAacSamples (short *TimeDataPcm, unsigned int samples, int channels) +- throw ( Exception ) +-{ +- unsigned int i; +- int ch, outSamples, numOutBytes; +- +- for (i=0; iwrite(outBuf, numOutBytes+ADTS_HEADER_SIZE); ++ processedSamples += inSamples; ++ } + } +- +- writtenSamples=0; + +- return; ++ delete[] aacplusBuf; ++ ++// return processedSamples; ++ return samples; + } + + /*------------------------------------------------------------------------------ +@@ -352,12 +260,7 @@ + if ( isOpen() ) { + flush(); + +- destroy_plans(); +- AacEncClose(aacEnc); +- if (hEnvEnc) { +- EnvClose(hEnvEnc); +- } +- ++ aacplusEncClose(encoderHandle); + aacplusOpen = false; + + sink->close(); diff -ruN /usr/ports/audio/darkice/files/patch-src_aacPlusEncoder.h audio/darkice/files/patch-src_aacPlusEncoder.h --- /usr/ports/audio/darkice/files/patch-src_aacPlusEncoder.h 1970-01-01 09:00:00.000000000 +0900 +++ audio/darkice/files/patch-src_aacPlusEncoder.h 2010-12-29 13:42:17.000000000 +0900 @@ -0,0 +1,194 @@ +--- src/aacPlusEncoder.h.orig 2010-05-10 07:18:48.000000000 +0900 ++++ src/aacPlusEncoder.h 2010-10-13 07:42:25.000000000 +0900 +@@ -5,8 +5,8 @@ + Tyrell DarkIce + + File : aacPlusEncoder.h +- Version : $Revision: 474 $ +- Author : $Author: rafael@riseup.net $ ++ Version : $Revision$ ++ Author : $Author$ + Location : $HeadURL$ + + Copyright notice: +@@ -41,18 +41,7 @@ + #endif + + #ifdef HAVE_AACPLUS_LIB +-extern "C" { +-#include +-#include +-#include +-#include +- +-#include +- +-#include +-#include +-#include +-} ++#include + #else + #error configure with aacplus + #endif +@@ -83,16 +72,10 @@ + /** + * A class representing aacplus AAC+ encoder. + * +- * @author $Author: rafael@riseup.net $ +- * @version $Revision: 474 $ ++ * @author $Author$ ++ * @version $Revision$ + */ + +-#define CORE_DELAY (1600) +-#define INPUT_DELAY ((CORE_DELAY)*2 +6*64-2048+1) /* ((1600 (core codec)*2 (multi rate) + 6*64 (sbr dec delay) - 2048 (sbr enc delay) + magic*/ +-#define MAX_DS_FILTER_DELAY 16 /* the additional max resampler filter delay (source fs)*/ +- +-#define CORE_INPUT_OFFSET_PS (0) /* (96-64) makes AAC still some 64 core samples too early wrt SBR ... maybe -32 would be even more correct, but 1024-32 would need additional SBR bitstream delay by one frame */ +- + class aacPlusEncoder : public AudioEncoder, public virtual Reporter + { + private: +@@ -124,31 +107,26 @@ + */ + Ref sink; + +- float inBuf[(AACENC_BLOCKSIZE*2 + MAX_DS_FILTER_DELAY + INPUT_DELAY)*MAX_CHANNELS]; +- char outBuf[(6144/8)*MAX_CHANNELS+ADTS_HEADER_SIZE]; +- IIR21_RESAMPLER IIR21_reSampler[MAX_CHANNELS]; +- +- AACENC_CONFIG config; +- +- int nChannelsAAC, nChannelsSBR; +- unsigned int sampleRateAAC; +- +- int bitrate; +- int bandwidth; +- +- unsigned int numAncDataBytes; +- unsigned char ancDataBytes[MAX_PAYLOAD_SIZE]; +- +- bool useParametricStereo; +- int coreWriteOffset; +- int envReadOffset; +- int writeOffset; +- struct AAC_ENCODER *aacEnc; +- unsigned int inSamples; +- unsigned int writtenSamples; +- +- HANDLE_SBR_ENCODER hEnvEnc; +- sbrConfiguration sbrConfig; ++ /** ++ * The handle to the AAC+ encoder instance. ++ */ ++ aacplusEncHandle encoderHandle; ++ ++ /** ++ * The maximum number of input samples to supply to the encoder. ++ */ ++ unsigned long inputSamples; ++ ++ /** ++ * The maximum number of output bytes the encoder returns in one call. ++ */ ++ unsigned long maxOutputBytes; ++ ++ /** ++ * Lowpass filter. Sound frequency in Hz, from where up the ++ * input is cut. ++ */ ++ int lowpass; + + /** + * Initialize the object. +@@ -157,10 +135,11 @@ + * @exception Exception + */ + inline void +- init ( Sink * sink) throw (Exception) ++ init ( Sink * sink, int lowpass) throw (Exception) + { + this->aacplusOpen = false; + this->sink = sink; ++ this->lowpass = lowpass; + + /* TODO: if we have float as input, we don't need conversion */ + if ( getInBitsPerSample() != 16 && getInBitsPerSample() != 32 ) { +@@ -179,11 +158,6 @@ + "unsupported number of output channels for the encoder", + getOutChannel() ); + } +- /* TODO: this will be neede when we implement mono aac+ encoding */ +- if ( getInChannel() != getOutChannel() ) { +- throw Exception( __FILE__, __LINE__, +- "input channels and output channels do not match"); +- } + + if ( getOutSampleRate() == getInSampleRate() ) { + resampleRatio = 1; +@@ -237,17 +211,6 @@ + "specified bits per sample with samplerate conversion not supported", + getInBitsPerSample() ); + } +- +- bitrate = getOutBitrate() * 1000; +- bandwidth = 0; +- useParametricStereo = 0; +- numAncDataBytes=0; +- coreWriteOffset = 0; +- envReadOffset = 0; +- writeOffset = INPUT_DELAY*MAX_CHANNELS; +- writtenSamples = 0; +- aacEnc = NULL; +- hEnvEnc=NULL; + } + + /** +@@ -269,10 +232,6 @@ + } + } + +- void +- encodeAacSamples (short *TimeDataPcm, unsigned int samples, int channels) +- throw ( Exception ); +- + protected: + + /** +@@ -335,7 +294,7 @@ + outSampleRate, + outChannel ) + { +- init( sink); ++ init( sink, lowpass); + } + + /** +@@ -376,7 +335,7 @@ + outSampleRate, + outChannel ) + { +- init( sink); ++ init( sink, lowpass ); + } + + /** +@@ -389,7 +348,7 @@ + throw ( Exception ) + : AudioEncoder( encoder ) + { +- init( encoder.sink.get()); ++ init( encoder.sink.get(), encoder.lowpass); + } + + +@@ -420,7 +379,7 @@ + if ( this != &encoder ) { + strip(); + AudioEncoder::operator=( encoder); +- init( encoder.sink.get()); ++ init( encoder.sink.get(), encoder.lowpass); + } + + return *this; --- darkice-1.0.3.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: