added mpeg2 support, thanks to Nicholas J Humfrey
This commit is contained in:
parent
f9eecd27b8
commit
9ba6d64d1f
|
@ -25,4 +25,5 @@ with contributions by:
|
|||
Nicholas J. Humfrey <njh@ecs.soton.ac.uk>
|
||||
Joel Ebel <jbebel@ncsu.edu>
|
||||
<jochen2@users.sourceforge.net>
|
||||
Nicholas J Humfrey <njh@ecs.soton.ac.uk>
|
||||
|
||||
|
|
|
@ -2,6 +2,9 @@ next release
|
|||
|
||||
o added check for bufferSecs set to 0
|
||||
thanks to Toph <fangiotophia@gmail.com>
|
||||
o added realtime parameter to the general section
|
||||
o added MPEG2 support through the TwoLame library.
|
||||
thanks to Nicholas J Humfrey <njh@ecs.soton.ac.uk>
|
||||
|
||||
22-10-2005 DarkIce 0.16 released
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
DarkIce live audio streamer, http://darkice.sourceforge.net
|
||||
Copyright (c) 2000-2005, Tyrell Hungary, http://tyrell.hu
|
||||
Copyright (c) 2000-2006, Tyrell Hungary, http://tyrell.hu
|
||||
|
||||
|
||||
Contents
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(darkice, 0.16)
|
||||
AC_INIT(darkice, 0.17)
|
||||
AC_CONFIG_SRCDIR(src/DarkIce.cpp)
|
||||
AM_CONFIG_HEADER(src/config.h)
|
||||
|
||||
|
@ -21,11 +21,11 @@ AC_TYPE_PID_T()
|
|||
AC_TYPE_SIZE_T()
|
||||
AC_C_BIGENDIAN()
|
||||
|
||||
AC_CHECK_LIB( socket, socket)
|
||||
AC_CHECK_LIB( nsl, gethostbyname)
|
||||
AC_CHECK_LIB( rt, sched_getscheduler)
|
||||
AC_CHECK_LIB(socket, socket)
|
||||
AC_CHECK_LIB(nsl, gethostbyname)
|
||||
AC_CHECK_LIB(rt, sched_getscheduler)
|
||||
|
||||
AC_CHECK_FUNC( getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO, 1, [Does function getaddrinfo exist?] ))
|
||||
AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO, 1, [Does function getaddrinfo exist?] ))
|
||||
|
||||
dnl-----------------------------------------------------------------------------
|
||||
dnl funky posix threads checking, thanks to
|
||||
|
@ -41,13 +41,13 @@ SYSTEM_INCLUDE=/usr/include
|
|||
dnl-----------------------------------------------------------------------------
|
||||
dnl link the lame library if requested
|
||||
dnl-----------------------------------------------------------------------------
|
||||
AC_SUBST( LAME_INCFLAGS)
|
||||
AC_SUBST( LAME_LDFLAGS)
|
||||
AC_SUBST(LAME_INCFLAGS)
|
||||
AC_SUBST(LAME_LDFLAGS)
|
||||
|
||||
AC_ARG_WITH( lame,
|
||||
AC_ARG_WITH(lame,
|
||||
[ --with-lame use lame for encoding mp3 streams [yes] ],
|
||||
USE_LAME=${withval}, USE_LAME="yes" )
|
||||
AC_ARG_WITH( lame-prefix,
|
||||
AC_ARG_WITH(lame-prefix,
|
||||
[ --with-lame-prefix=DIR alternate location for lame [/usr]
|
||||
look for libraries in LAME-PREFIX/lib,
|
||||
for headers in LAME-PREFIX/include],
|
||||
|
@ -75,13 +75,13 @@ fi
|
|||
dnl-----------------------------------------------------------------------------
|
||||
dnl link the ogg vorbis libraries if requested
|
||||
dnl-----------------------------------------------------------------------------
|
||||
AC_SUBST( VORBIS_INCFLAGS)
|
||||
AC_SUBST( VORBIS_LDFLAGS)
|
||||
AC_SUBST(VORBIS_INCFLAGS)
|
||||
AC_SUBST(VORBIS_LDFLAGS)
|
||||
|
||||
AC_ARG_WITH( vorbis,
|
||||
AC_ARG_WITH(vorbis,
|
||||
[ --with-vorbis use Ogg Vorbis for encoding vorbis streams [yes] ],
|
||||
USE_VORBIS=${withval}, USE_VORBIS="yes" )
|
||||
AC_ARG_WITH( vorbis-prefix,
|
||||
AC_ARG_WITH(vorbis-prefix,
|
||||
[ --with-vorbis-prefix=DIR alternate location for vorbis [/usr]
|
||||
look for libraries in VORBIS-PREFIX/lib,
|
||||
for headers in VORBIS-PREFIX/include],
|
||||
|
@ -118,13 +118,13 @@ fi
|
|||
dnl-----------------------------------------------------------------------------
|
||||
dnl link the faac library if requested
|
||||
dnl-----------------------------------------------------------------------------
|
||||
AC_SUBST( FAAC_INCFLAGS)
|
||||
AC_SUBST( FAAC_LDFLAGS)
|
||||
AC_SUBST(FAAC_INCFLAGS)
|
||||
AC_SUBST(FAAC_LDFLAGS)
|
||||
|
||||
AC_ARG_WITH( faac,
|
||||
AC_ARG_WITH(faac,
|
||||
[ --with-faac use faac for encoding AAC streams [yes] ],
|
||||
USE_FAAC=${withval}, USE_FAAC="yes" )
|
||||
AC_ARG_WITH( faac-prefix,
|
||||
AC_ARG_WITH(faac-prefix,
|
||||
[ --with-faac-prefix=DIR alternate location for faac [/usr]
|
||||
look for libraries in FAAC-PREFIX/lib,
|
||||
for headers in FAAC-PREFIX/include],
|
||||
|
@ -149,26 +149,61 @@ else
|
|||
fi
|
||||
|
||||
|
||||
dnl-----------------------------------------------------------------------------
|
||||
dnl link the twolame library if requested
|
||||
dnl-----------------------------------------------------------------------------
|
||||
AC_SUBST(TWOLAME_INCFLAGS)
|
||||
AC_SUBST(TWOLAME_LDFLAGS)
|
||||
|
||||
AC_ARG_WITH(twolame,
|
||||
[ --with-twolame use twolame for encoding MP2 streams [yes] ],
|
||||
USE_TWOLAME=${withval}, USE_TWOLAME="yes" )
|
||||
AC_ARG_WITH(twolame-prefix,
|
||||
[ --with-twolame-prefix=DIR alternate location for twolame [/usr]
|
||||
look for libraries in TWOLAME-PREFIX/lib,
|
||||
for headers in TWOLAME-PREFIX/include],
|
||||
CONFIG_TWOLAME_PREFIX="${withval}", CONFIG_TWOLAME_PREFIX="/usr")
|
||||
|
||||
if test "x${USE_TWOLAME}" = "xyes" ; then
|
||||
AC_MSG_CHECKING( [for twolame library at ${CONFIG_TWOLAME_PREFIX}] )
|
||||
LA_SEARCH_LIB( TWOLAME_LIB_LOC, TWOLAME_INC_LOC, libtwolame.a, twolame.h,
|
||||
${CONFIG_TWOLAME_PREFIX})
|
||||
if test "x${TWOLAME_LIB_LOC}" != "x" ; then
|
||||
AC_DEFINE( HAVE_TWOLAME_LIB, 1, [build with twolame library] )
|
||||
if test "x${TWOLAME_INC_LOC}" != "x${SYSTEM_INCLUDE}" ; then
|
||||
TWOLAME_INCFLAGS="-I${TWOLAME_INC_LOC}"
|
||||
fi
|
||||
TWOLAME_LDFLAGS="-L${TWOLAME_LIB_LOC} -ltwolame"
|
||||
AC_MSG_RESULT( [found at ${CONFIG_TWOLAME_PREFIX}] )
|
||||
else
|
||||
AC_MSG_WARN( [not found, building without twolame])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT( [building without twolame] )
|
||||
fi
|
||||
|
||||
|
||||
dnl-----------------------------------------------------------------------------
|
||||
dnl make sure at least one of lame and vorbis present
|
||||
dnl-----------------------------------------------------------------------------
|
||||
if test "x${LAME_LDFLAGS}" = "x"
|
||||
-a "x${VORBIS_LDFLAGS}" = "x"
|
||||
-a "x${FAAC_LDFLAGS}" = "x"; then
|
||||
AC_MSG_ERROR([neither lame, Ogg Vorbis nor faac configured])
|
||||
if test "x${LAME_LDFLAGS}" = "x" \
|
||||
-a "x${VORBIS_LDFLAGS}" = "x" \
|
||||
-a "x${FAAC_LDFLAGS}" = "x" \
|
||||
-a "x${TWOLAME_LDFLAGS}" = "x"; then
|
||||
AC_MSG_ERROR([neither lame, Ogg Vorbis, faac nor twolame configured])
|
||||
fi
|
||||
|
||||
|
||||
dnl-----------------------------------------------------------------------------
|
||||
dnl link ALSA sound system if requested
|
||||
dnl-----------------------------------------------------------------------------
|
||||
AC_SUBST( ALSA_INCFLAGS)
|
||||
AC_SUBST( ALSA_LDFLAGS)
|
||||
AC_SUBST(ALSA_INCFLAGS)
|
||||
AC_SUBST(ALSA_LDFLAGS)
|
||||
|
||||
AC_ARG_WITH( alsa,
|
||||
AC_ARG_WITH(alsa,
|
||||
[ --with-alsa use ALSA sound system [yes] ],
|
||||
USE_ALSA=${withval}, USE_ALSA="yes" )
|
||||
AC_ARG_WITH( alsa-prefix,
|
||||
AC_ARG_WITH(alsa-prefix,
|
||||
[ --with-alsa-prefix=DIR alternate location for ALSA [/usr]
|
||||
look for libraries in ALSA-PREFIX/lib,
|
||||
for headers in ALSA-PREFIX/include],
|
||||
|
@ -200,13 +235,15 @@ dnl link JACK sound server if requested
|
|||
dnl-----------------------------------------------------------------------------
|
||||
AC_SUBST(JACK_CFLAGS)
|
||||
AC_SUBST(JACK_LIBS)
|
||||
|
||||
AC_ARG_WITH( jack,
|
||||
[ --with-jack use JACK audio server [yes] ],
|
||||
USE_JACK=${withval}, USE_JACK="yes" )
|
||||
|
||||
if test "x${USE_JACK}" = "xyes" ; then
|
||||
PKG_CHECK_MODULES(JACK, jack,
|
||||
AC_DEFINE( HAVE_JACK_LIB, 1, [build with JACK audio server support] )
|
||||
[ AC_DEFINE( HAVE_JACK_LIB, 1, [build with JACK audio server support] ) ],
|
||||
[ HAVE_JACK_LIB=0 ]
|
||||
)
|
||||
else
|
||||
AC_MSG_RESULT( [building without JACK support] )
|
||||
|
@ -238,9 +275,9 @@ AC_CHECK_FUNCS( sched_getscheduler sched_getparam )
|
|||
dnl-----------------------------------------------------------------------------
|
||||
dnl enable compilation with debug flags
|
||||
dnl-----------------------------------------------------------------------------
|
||||
AC_SUBST( DEBUG_CXXFLAGS)
|
||||
AC_SUBST(DEBUG_CXXFLAGS)
|
||||
|
||||
AC_ARG_WITH( debug,
|
||||
AC_ARG_WITH(debug,
|
||||
[ --with-debug enable debug mode [no] ],
|
||||
USE_DEBUG=${withval}, USE_DEBUG="no" )
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.TH darkice 1 "April 17, 2005" "DarkIce" "DarkIce live audio streamer"
|
||||
.TH darkice 1 "January 25, 2006" "DarkIce" "DarkIce live audio streamer"
|
||||
.SH NAME
|
||||
darkice \- an icecast / shoutcast live audio streamer
|
||||
.SH SYNOPSIS
|
||||
|
@ -17,6 +17,7 @@ DarkIce can record from:
|
|||
DarkIce can encode in the following formats:
|
||||
|
||||
* mp3 - using the lame library
|
||||
* mp2 - using the twolame library
|
||||
* Ogg Vorbis
|
||||
* AAC - using the faac library
|
||||
|
||||
|
@ -97,6 +98,7 @@ Developed with contributions by
|
|||
Nicholas J. Humfrey <njh@ecs.soton.ac.uk>
|
||||
Joel Ebel <jbebel@ncsu.edu>
|
||||
<jochen2@users.sourceforge.net>
|
||||
Nicholas J Humfrey <njh@ecs.soton.ac.uk>
|
||||
|
||||
.SH LINKS
|
||||
Project homepage:
|
||||
|
@ -118,6 +120,10 @@ homepage:
|
|||
homepage:
|
||||
.I http://www.mp3dev.org/mp3/
|
||||
|
||||
.B TwoLame
|
||||
homepage:
|
||||
.I http://www.twolame.org/
|
||||
|
||||
.B Ogg Vorbis
|
||||
homepage:
|
||||
.I http://www.xiph.org/ogg/vorbis/
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.TH darkice.cfg 5 "October 22, 2005" "DarkIce" "DarkIce live audio streamer"
|
||||
.TH darkice.cfg 5 "January 25, 2006" "DarkIce" "DarkIce live audio streamer"
|
||||
.SH NAME
|
||||
darkice.cfg \- configuration file for darkice
|
||||
.SH DESCRIPTION
|
||||
|
@ -50,10 +50,19 @@ Time for DarkIce to run, in seconds. If 0, run forever.
|
|||
Data read from the sound card is buffered before sent to
|
||||
the encoder. Each buffer will be able to hold this
|
||||
many seconds of samples.
|
||||
|
||||
.PP
|
||||
Optional values:
|
||||
|
||||
.TP
|
||||
.I reconnect
|
||||
Try to reconnect to the server(s) if the connection is broken during
|
||||
streaming, "yes" or "no". (optional parameter, defaults to "yes")
|
||||
.TP
|
||||
.I realtime
|
||||
Use POSIX realtime scheduling, "yes" or "no".
|
||||
(optional parameter, defaults to "yes")
|
||||
|
||||
|
||||
.PP
|
||||
.B [input]
|
||||
|
@ -209,7 +218,7 @@ Required values:
|
|||
.I format
|
||||
Format of the stream sent to the
|
||||
.B IceCast2
|
||||
server. Supported formats are 'vorbis', 'mp3' and 'aac'.
|
||||
server. Supported formats are 'vorbis', 'mp3', 'mp2' and 'aac'.
|
||||
.TP
|
||||
.I bitrateMode
|
||||
The bit rate mode of the encoding, either "cbr", "abr" or "vbr",
|
||||
|
@ -225,7 +234,7 @@ abr bit rate modes are specified.
|
|||
The quality of encoding a value between 0.0 .. 1.0 (e.g. 0.8), with 1.0 being
|
||||
the highest quality. Use a value greater than 0.0. Only used when vbr
|
||||
bit rate mode is specified for Ogg Vorbis format, or in vbr and abr
|
||||
modes for mp3 format.
|
||||
modes for mp3 and mp2 format.
|
||||
.TP
|
||||
.I server
|
||||
The
|
||||
|
@ -248,11 +257,11 @@ Optional values:
|
|||
|
||||
.TP
|
||||
.I sampleRate
|
||||
The sample rate of the encoded mp3 output. If not specified, defaults
|
||||
The sample rate of the encoded output. If not specified, defaults
|
||||
to the value of the input sample rate.
|
||||
.TP
|
||||
.I channel
|
||||
Number of channels for the mp3 output (e.g. 1 for mono, 2 for stereo).
|
||||
Number of channels for the output (e.g. 1 for mono, 2 for stereo).
|
||||
If not specified, defaults to the value of the input sample rate.
|
||||
Different channels for input and output are only supported for mp3,
|
||||
but not for Ogg Vorbis.
|
||||
|
@ -291,14 +300,14 @@ Lowpass filter setting for the lame encoder, in Hz. Frequencies above
|
|||
the specified value will be cut.
|
||||
If not set or set to 0, the encoder's default behaviour is used.
|
||||
If set to -1, the filter is disabled.
|
||||
Only has effect if the mp3 format is used.
|
||||
Only has effect if the mp3 or mp2 format is used.
|
||||
.TP
|
||||
.I highpass
|
||||
Highpass filter setting for the lame encoder, in Hz. Frequencies below
|
||||
the specified value will be cut.
|
||||
If not set or set to 0, the encoder's default behaviour is used.
|
||||
If set to -1, the filter is disabled.
|
||||
Only has effect if the mp3 format is used.
|
||||
Only has effect if the mp3 or mp2 format is used.
|
||||
|
||||
.PP
|
||||
.B [shoutcast-x]
|
||||
|
|
|
@ -84,6 +84,10 @@
|
|||
#include "LameLibEncoder.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_TWOLAME_LIB
|
||||
#include "TwoLameLibEncoder.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VORBIS_LIB
|
||||
#include "VorbisLibEncoder.h"
|
||||
#endif
|
||||
|
@ -151,10 +155,14 @@ DarkIce :: init ( const Config & config ) throw ( Exception )
|
|||
str = cs->get( "reconnect");
|
||||
reconnect = str ? (Util::strEq( str, "yes") ? true : false) : true;
|
||||
|
||||
// real-time scheduling is enabled by default
|
||||
str = cs->get( "realtime" );
|
||||
enableRealTime = str ? (Util::strEq( str, "yes") ? true : false) : true;
|
||||
|
||||
|
||||
// the [input] section
|
||||
if ( !(cs = config.get( "input")) ) {
|
||||
throw Exception( __FILE__, __LINE__, "no section [general] in config");
|
||||
throw Exception( __FILE__, __LINE__, "no section [input] in config");
|
||||
}
|
||||
|
||||
str = cs->getForSure( "sampleRate", " missing in section [input]");
|
||||
|
@ -275,6 +283,8 @@ DarkIce :: configIceCast ( const Config & config,
|
|||
throw Exception( __FILE__, __LINE__,
|
||||
"invalid bitrate mode: ", str);
|
||||
}
|
||||
|
||||
|
||||
|
||||
server = cs->getForSure( "server", " missing in section ", stream);
|
||||
str = cs->getForSure( "port", " missing in section ", stream);
|
||||
|
@ -334,15 +344,31 @@ DarkIce :: configIceCast ( const Config & config,
|
|||
localDumpFile,
|
||||
bufferSecs );
|
||||
|
||||
audioOuts[u].encoder = new LameLibEncoder( audioOuts[u].server.get(),
|
||||
dsp.get(),
|
||||
bitrateMode,
|
||||
bitrate,
|
||||
quality,
|
||||
sampleRate,
|
||||
channel,
|
||||
lowpass,
|
||||
highpass );
|
||||
str = cs->getForSure( "format", " missing in section ", stream);
|
||||
if ( Util::strEq( str, "mp3") ) {
|
||||
audioOuts[u].encoder = new LameLibEncoder( audioOuts[u].server.get(),
|
||||
dsp.get(),
|
||||
bitrateMode,
|
||||
bitrate,
|
||||
quality,
|
||||
sampleRate,
|
||||
channel,
|
||||
lowpass,
|
||||
highpass );
|
||||
} else if ( Util::strEq( str, "mp2") ) {
|
||||
audioOuts[u].encoder = new TwoLameLibEncoder(
|
||||
audioOuts[u].server.get(),
|
||||
dsp.get(),
|
||||
bitrateMode,
|
||||
bitrate,
|
||||
sampleRate,
|
||||
channel );
|
||||
} else {
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"unsupported stream format: ", str);
|
||||
}
|
||||
|
||||
|
||||
|
||||
encConnector->attach( audioOuts[u].encoder.get());
|
||||
#endif // HAVE_LAME_LIB
|
||||
|
@ -405,6 +431,8 @@ DarkIce :: configIceCast2 ( const Config & config,
|
|||
format = IceCast2::oggVorbis;
|
||||
} else if ( Util::strEq( str, "mp3") ) {
|
||||
format = IceCast2::mp3;
|
||||
} else if ( Util::strEq( str, "mp2") ) {
|
||||
format = IceCast2::mp2;
|
||||
} else if ( Util::strEq( str, "aac") ) {
|
||||
format = IceCast2::aac;
|
||||
} else {
|
||||
|
@ -533,6 +561,7 @@ DarkIce :: configIceCast2 ( const Config & config,
|
|||
#endif // HAVE_LAME_LIB
|
||||
break;
|
||||
|
||||
|
||||
case IceCast2::oggVorbis:
|
||||
#ifndef HAVE_VORBIS_LIB
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
|
@ -552,6 +581,24 @@ DarkIce :: configIceCast2 ( const Config & config,
|
|||
#endif // HAVE_VORBIS_LIB
|
||||
break;
|
||||
|
||||
case IceCast2::mp2:
|
||||
#ifndef HAVE_TWOLAME_LIB
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"DarkIce not compiled with TwoLame support, "
|
||||
"thus can't create mp2 stream: ",
|
||||
stream);
|
||||
#else
|
||||
audioOuts[u].encoder = new TwoLameLibEncoder(
|
||||
audioOuts[u].server.get(),
|
||||
dsp.get(),
|
||||
bitrateMode,
|
||||
bitrate,
|
||||
sampleRate,
|
||||
channel );
|
||||
#endif // HAVE_TWOLAME_LIB
|
||||
break;
|
||||
|
||||
|
||||
case IceCast2::aac:
|
||||
#ifndef HAVE_FAAC_LIB
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
|
@ -791,6 +838,7 @@ DarkIce :: configFileCast ( const Config & config )
|
|||
format = cs->getForSure( "format", " missing in section ", stream);
|
||||
if ( !Util::strEq( format, "vorbis")
|
||||
&& !Util::strEq( format, "mp3")
|
||||
&& !Util::strEq( format, "mp2")
|
||||
&& !Util::strEq( format, "aac") ) {
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"unsupported stream format: ", format);
|
||||
|
@ -819,10 +867,6 @@ DarkIce :: configFileCast ( const Config & config )
|
|||
throw Exception( __FILE__, __LINE__,
|
||||
"bitrate not specified for CBR encoding");
|
||||
}
|
||||
if ( cs->get( "quality" ) == 0 ) {
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"quality not specified for CBR encoding");
|
||||
}
|
||||
} else if ( Util::strEq( str, "abr") ) {
|
||||
bitrateMode = AudioEncoder::abr;
|
||||
|
||||
|
@ -885,7 +929,22 @@ DarkIce :: configFileCast ( const Config & config )
|
|||
dsp->getChannel(),
|
||||
lowpass,
|
||||
highpass );
|
||||
#endif // HAVE_LAME_LIB
|
||||
#endif // HAVE_TWOLAME_LIB
|
||||
} else if ( Util::strEq( format, "mp2") ) {
|
||||
#ifndef HAVE_TWOLAME_LIB
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
"DarkIce not compiled with TwoLAME support, "
|
||||
"thus can't create MPEG Audio Layer 2 stream: ",
|
||||
stream);
|
||||
#else
|
||||
audioOuts[u].encoder = new TwoLameLibEncoder(
|
||||
audioOuts[u].server.get(),
|
||||
dsp.get(),
|
||||
bitrateMode,
|
||||
bitrate,
|
||||
sampleRate,
|
||||
dsp->getChannel() );
|
||||
#endif // HAVE_TWOLAME_LIB
|
||||
} else if ( Util::strEq( format, "vorbis") ) {
|
||||
#ifndef HAVE_VORBIS_LIB
|
||||
throw Exception( __FILE__, __LINE__,
|
||||
|
@ -898,7 +957,6 @@ DarkIce :: configFileCast ( const Config & config )
|
|||
dsp.get(),
|
||||
bitrateMode,
|
||||
bitrate,
|
||||
quality,
|
||||
dsp->getSampleRate(),
|
||||
dsp->getChannel() );
|
||||
#endif // HAVE_VORBIS_LIB
|
||||
|
@ -1057,9 +1115,14 @@ int
|
|||
DarkIce :: run ( void ) throw ( Exception )
|
||||
{
|
||||
reportEvent( 3, "encoding");
|
||||
setRealTimeScheduling();
|
||||
|
||||
if (enableRealTime) {
|
||||
setRealTimeScheduling();
|
||||
}
|
||||
encode();
|
||||
setOriginalScheduling();
|
||||
if (enableRealTime) {
|
||||
setOriginalScheduling();
|
||||
}
|
||||
reportEvent( 3, "encoding ends");
|
||||
|
||||
return 0;
|
||||
|
@ -1071,6 +1134,9 @@ DarkIce :: run ( void ) throw ( Exception )
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.47 2006/01/25 22:47:15 darkeye
|
||||
added mpeg2 support, thanks to Nicholas J Humfrey
|
||||
|
||||
Revision 1.46 2006/01/19 16:09:05 darkeye
|
||||
added check for bufferSecs setting not to be 0
|
||||
|
||||
|
|
|
@ -119,6 +119,11 @@ class DarkIce : public virtual Referable, public virtual Reporter
|
|||
*/
|
||||
Ref<Connector> encConnector;
|
||||
|
||||
/**
|
||||
* Should we turn real-time scheduling on ?
|
||||
*/
|
||||
int enableRealTime;
|
||||
|
||||
/**
|
||||
* Original scheduling policy
|
||||
*/
|
||||
|
@ -309,6 +314,9 @@ class DarkIce : public virtual Referable, public virtual Reporter
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.16 2006/01/25 22:47:15 darkeye
|
||||
added mpeg2 support, thanks to Nicholas J Humfrey
|
||||
|
||||
Revision 1.15 2005/04/04 08:36:17 darkeye
|
||||
commited changes to enable Jack support
|
||||
thanks to Nicholas J. Humfrey, njh@ecs.soton.ac.uk
|
||||
|
|
|
@ -149,6 +149,7 @@ IceCast2 :: sendLogin ( void ) throw ( Exception )
|
|||
sink->write( str, strlen( str));
|
||||
switch ( format ) {
|
||||
case mp3:
|
||||
case mp2:
|
||||
str = "audio/mpeg";
|
||||
break;
|
||||
|
||||
|
@ -259,6 +260,9 @@ IceCast2 :: sendLogin ( void ) throw ( Exception )
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.13 2006/01/25 22:47:15 darkeye
|
||||
added mpeg2 support, thanks to Nicholas J Humfrey
|
||||
|
||||
Revision 1.12 2005/04/16 21:57:34 darkeye
|
||||
added AAC support through the faac codec, http://www.audiocoding.com/
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ class IceCast2 : public CastSink
|
|||
/**
|
||||
* Type for specifying the format of the stream.
|
||||
*/
|
||||
enum StreamFormat { mp3, oggVorbis, aac };
|
||||
enum StreamFormat { mp3, mp2, oggVorbis, aac };
|
||||
|
||||
|
||||
private:
|
||||
|
@ -273,6 +273,9 @@ class IceCast2 : public CastSink
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.6 2006/01/25 22:47:15 darkeye
|
||||
added mpeg2 support, thanks to Nicholas J Humfrey
|
||||
|
||||
Revision 1.5 2005/04/16 21:57:34 darkeye
|
||||
added AAC support through the faac codec, http://www.audiocoding.com/
|
||||
|
||||
|
|
|
@ -260,8 +260,10 @@ LameLibEncoder :: open ( void )
|
|||
"lame lib initializing params error" );
|
||||
}
|
||||
|
||||
lame_print_config( lameGlobalFlags);
|
||||
|
||||
if (getReportVerbosity() >= 3) {
|
||||
lame_print_config( lameGlobalFlags);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -396,6 +398,9 @@ LameLibEncoder :: close ( void ) throw ( Exception )
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.20 2006/01/25 22:47:15 darkeye
|
||||
added mpeg2 support, thanks to Nicholas J Humfrey
|
||||
|
||||
Revision 1.19 2005/04/13 19:04:55 jbebel
|
||||
Distribute lame qualities better, and prevent values greater than 9 which are invalid.
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
bin_PROGRAMS = darkice
|
||||
AM_CXXFLAGS = -O2 -pedantic -Wall @DEBUG_CXXFLAGS@ @PTHREAD_CFLAGS@
|
||||
@JACK_CFLAGS@
|
||||
INCLUDES = @LAME_INCFLAGS@ @VORBIS_INCFLAGS@ @FAAC_INCFLAGS@ @ALSA_INCFLAGS@
|
||||
LDADD = @PTHREAD_LIBS@ @LAME_LDFLAGS@ @VORBIS_LDFLAGS@ @FAAC_LDFLAGS@ \
|
||||
@JACK_CFLAGS@
|
||||
INCLUDES = @LAME_INCFLAGS@ @VORBIS_INCFLAGS@ @FAAC_INCFLAGS@ @TWOLAME_INCFLAGS@ @ALSA_INCFLAGS@
|
||||
LDADD = @PTHREAD_LIBS@ @LAME_LDFLAGS@ @VORBIS_LDFLAGS@ @FAAC_LDFLAGS@ @TWOLAME_LDFLAGS@ \
|
||||
@ALSA_LDFLAGS@ @JACK_LIBS@
|
||||
|
||||
darkice_SOURCES = AudioEncoder.h\
|
||||
|
@ -32,6 +32,8 @@ darkice_SOURCES = AudioEncoder.h\
|
|||
FileCast.cpp\
|
||||
LameLibEncoder.cpp\
|
||||
LameLibEncoder.h\
|
||||
TwoLameLibEncoder.cpp\
|
||||
TwoLameLibEncoder.h\
|
||||
VorbisLibEncoder.cpp\
|
||||
VorbisLibEncoder.h\
|
||||
FaacEncoder.cpp\
|
||||
|
|
|
@ -87,7 +87,7 @@ main (
|
|||
std::cout << "DarkIce " << VERSION
|
||||
<< " live audio streamer, http://darkice.sourceforge.net"
|
||||
<< std::endl
|
||||
<< "Copyright (c) 2000-2005, Tyrell Hungary, http://tyrell.hu"
|
||||
<< "Copyright (c) 2000-2006, Tyrell Hungary, http://tyrell.hu"
|
||||
<< std::endl << std::endl;
|
||||
|
||||
try {
|
||||
|
@ -166,6 +166,9 @@ showUsage ( std::ostream & os )
|
|||
$Source$
|
||||
|
||||
$Log$
|
||||
Revision 1.16 2006/01/25 22:47:15 darkeye
|
||||
added mpeg2 support, thanks to Nicholas J Humfrey
|
||||
|
||||
Revision 1.15 2005/04/14 11:24:42 darkeye
|
||||
updated copyright notice to extend to 2005
|
||||
|
||||
|
|
Loading…
Reference in New Issue