added support for resampling mp3 streams
This commit is contained in:
parent
e3fca60927
commit
9d5c687bbd
|
@ -2,6 +2,7 @@ DarkIce 0.7
|
|||
|
||||
o added support for FreeBSD
|
||||
thanks to Robin P. Blanchard, <Robin_Blanchard@gactr.uga.edu>
|
||||
o added support for resampling mp3 streams
|
||||
|
||||
|
||||
18-09-2001: DarkIce 0.6 released
|
||||
|
|
|
@ -8,4 +8,3 @@ o revisit real-time scheduling and one-thread-per-connection
|
|||
o look into performance
|
||||
o create proper error-reporting module
|
||||
o enable TABs in the config file
|
||||
o add support for downsampling the input for a given output
|
||||
|
|
|
@ -108,6 +108,10 @@ Mount point for the stream on the server
|
|||
.PP
|
||||
Optional values:
|
||||
|
||||
.TP
|
||||
.I sampleRate
|
||||
The sample rate of the encoded mp3 output. If not specified, defaults
|
||||
to the value of the input sample rate.
|
||||
.TP
|
||||
.I name
|
||||
Name of the stream
|
||||
|
@ -225,6 +229,10 @@ server
|
|||
.PP
|
||||
Optional values:
|
||||
|
||||
.TP
|
||||
.I sampleRate
|
||||
The sample rate of the encoded mp3 output. If not specified, defaults
|
||||
to the value of the input sample rate.
|
||||
.TP
|
||||
.I name
|
||||
Name of the stream
|
||||
|
@ -260,7 +268,7 @@ A sample configuration file follows. This file makes
|
|||
.B DarkIce
|
||||
stream for 1 minute (60 seconds) from the audio device
|
||||
.I /dev/dsp
|
||||
at 22kHz, 16 bit stereo.
|
||||
at 22.05kHz, 16 bit stereo.
|
||||
It will build up a connection to the
|
||||
.B IceCast
|
||||
server yp.yourserver.com on port 8000 with the password "hackme".
|
||||
|
@ -304,13 +312,14 @@ A bit more complicated sample follows. This one makes
|
|||
.B DarkIce
|
||||
stream for 1 hour (3600 seconds) from the audio device
|
||||
.I /dev/dsp
|
||||
at 22kHz, 16 bit stereo.
|
||||
at 44.1kHz, 16 bit stereo.
|
||||
|
||||
It will build up a connection to an
|
||||
.B IceCast
|
||||
server yp.your-ice-server.com on port 8000 with the password "ice-hackme".
|
||||
The sound for this stream will be cut at 10500 Hz from above.
|
||||
The stream will be encoded to 96 kb/s mp3, and will be reachable at
|
||||
The stream will be encoded to 96 kb/s mp3 and resampled to 22.05kHz.
|
||||
The stream will be reachable at
|
||||
.I http://yp.your-ice-server.com:8000/live96
|
||||
to mp3 players.
|
||||
The encoding session will be stored by
|
||||
|
@ -338,6 +347,7 @@ bitsPerSample = 16
|
|||
channel = 2
|
||||
|
||||
[icecast-0]
|
||||
sampleRate = 22050
|
||||
bitrate = 96
|
||||
lowpass = 10500
|
||||
server = yp.your-ice-server.com
|
||||
|
|
|
@ -183,6 +183,7 @@ DarkIce :: configIceCast ( const Config & config,
|
|||
break;
|
||||
}
|
||||
|
||||
unsigned int sampleRate = 0;
|
||||
unsigned int bitrate = 0;
|
||||
const char * server = 0;
|
||||
unsigned int port = 0;
|
||||
|
@ -197,6 +198,8 @@ DarkIce :: configIceCast ( const Config & config,
|
|||
unsigned int lowpass = 0;
|
||||
unsigned int highpass = 0;
|
||||
|
||||
str = cs->get( "sampleRate");
|
||||
sampleRate = str ? Util::strToL( str) : dsp->getSampleRate();
|
||||
str = cs->getForSure("bitrate", " missing in section ", stream);
|
||||
bitrate = Util::strToL( str);
|
||||
server = cs->getForSure( "server", " missing in section ", stream);
|
||||
|
@ -243,7 +246,7 @@ DarkIce :: configIceCast ( const Config & config,
|
|||
audioOuts[u].encoder = new LameLibEncoder( audioOuts[u].server.get(),
|
||||
dsp.get(),
|
||||
bitrate,
|
||||
dsp->getSampleRate(),
|
||||
sampleRate,
|
||||
dsp->getChannel(),
|
||||
lowpass,
|
||||
highpass );
|
||||
|
@ -366,6 +369,7 @@ DarkIce :: configShoutCast ( const Config & config,
|
|||
break;
|
||||
}
|
||||
|
||||
unsigned int sampleRate = 0;
|
||||
unsigned int bitrate = 0;
|
||||
const char * server = 0;
|
||||
unsigned int port = 0;
|
||||
|
@ -380,6 +384,8 @@ DarkIce :: configShoutCast ( const Config & config,
|
|||
const char * aim = 0;
|
||||
const char * icq = 0;
|
||||
|
||||
str = cs->get( "sampleRate");
|
||||
sampleRate = str ? Util::strToL( str) : dsp->getSampleRate();
|
||||
str = cs->getForSure("bitrate", " missing in section ", stream);
|
||||
bitrate = Util::strToL( str);
|
||||
server = cs->getForSure( "server", " missing in section ", stream);
|
||||
|
@ -424,7 +430,7 @@ DarkIce :: configShoutCast ( const Config & config,
|
|||
audioOuts[u].encoder = new LameLibEncoder( audioOuts[u].server.get(),
|
||||
dsp.get(),
|
||||
bitrate,
|
||||
dsp->getSampleRate(),
|
||||
sampleRate,
|
||||
dsp->getChannel(),
|
||||
lowpass,
|
||||
highpass );
|
||||
|
@ -568,6 +574,9 @@ DarkIce :: run ( void ) throw ( Exception )
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.20 2001/10/19 09:03:39 darkeye
|
||||
added support for resampling mp3 streams
|
||||
|
||||
Revision 1.19 2001/09/14 19:31:06 darkeye
|
||||
added IceCast2 / vorbis support
|
||||
|
||||
|
|
|
@ -124,11 +124,6 @@ class LameLibEncoder : public AudioEncoder, public virtual Reporter
|
|||
getInBitsPerSample() );
|
||||
}
|
||||
|
||||
if ( getOutSampleRate() != getInSampleRate() ) {
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"different in and out sample rate not supported");
|
||||
}
|
||||
|
||||
if ( getInChannel() != getOutChannel() ) {
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"different in and out channels not supported");
|
||||
|
@ -462,6 +457,9 @@ class LameLibEncoder : public AudioEncoder, public virtual Reporter
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.8 2001/10/19 09:03:39 darkeye
|
||||
added support for resampling mp3 streams
|
||||
|
||||
Revision 1.7 2001/09/15 11:35:08 darkeye
|
||||
minor fixes
|
||||
|
||||
|
|
Loading…
Reference in New Issue