add libFLAC for use with audioplayer (enable with --enable-flac)

git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@1540 e54a6e83-5905-42d5-8d5c-058d10e6a962


Origin commit data
------------------
Branch: ni/coolstream
Commit: bfb705ef5c
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2011-06-13 (Mon, 13 Jun 2011)



------------------
This commit was generated by Migit
This commit is contained in:
Stefan Seyfried
2011-06-13 15:25:42 +00:00
parent 5a5c3b458f
commit 8698350f9e
5 changed files with 52 additions and 4 deletions

View File

@@ -80,6 +80,17 @@ AC_ARG_ENABLE(freesatepg,
[ --enable-freesatepg enable Freesat EPG code (experimental)], [ --enable-freesatepg enable Freesat EPG code (experimental)],
[AC_DEFINE(ENABLE_FREESATEPG,1,[enable Freesat EPG code])]) [AC_DEFINE(ENABLE_FREESATEPG,1,[enable Freesat EPG code])])
# FLAC - Free Lossless Audio Codec
AC_ARG_ENABLE(flac,
AS_HELP_STRING(--enable-flac,include FLAC support),
,[enable_flac=no])
AM_CONDITIONAL(ENABLE_FLAC,test "$enable_flac" = "yes")
if test "$enable_flac" = "yes"; then
AC_DEFINE(ENABLE_FLAC,1,[include FLAC support])
fi
# #
# Check for libtdservicedb - the new one - for testing only # Check for libtdservicedb - the new one - for testing only
# #

View File

@@ -41,6 +41,16 @@ bin_PROGRAMS = neutrino
neutrino_SOURCES = neutrino_menue.cpp neutrino.cpp neutrino_SOURCES = neutrino_menue.cpp neutrino.cpp
AM_CPPFLAGS =
if ENABLE_FLAC
#FLACLIBS = -lFLAC
FLACLIBS = $(DESTDIR)/lib/libFLAC.a
AM_CPPFLAGS += -DENABLE_FLAC
else
FLACLIBS =
endif
neutrino_LDADD = \ neutrino_LDADD = \
daemonc/libneutrino_daemonc.a \ daemonc/libneutrino_daemonc.a \
gui/bedit/libneutrino_gui_bedit.a \ gui/bedit/libneutrino_gui_bedit.a \
@@ -82,6 +92,7 @@ neutrino_LDADD = \
@LIBCS_LIBS@ \ @LIBCS_LIBS@ \
@AVFORMAT_LIBS@ \ @AVFORMAT_LIBS@ \
@AVUTIL_LIBS@ \ @AVUTIL_LIBS@ \
$(FLACLIBS) \
$(VORBISLIBS) \ $(VORBISLIBS) \
-lungif \ -lungif \
-ljpeg \ -ljpeg \

View File

@@ -17,12 +17,17 @@ endif
noinst_LIBRARIES = libneutrino_driver_audiodec.a noinst_LIBRARIES = libneutrino_driver_audiodec.a
if ENABLE_FLAC
FLACdec= flacdec.cpp
endif
libneutrino_driver_audiodec_a_SOURCES = \ libneutrino_driver_audiodec_a_SOURCES = \
basedec.cpp \ basedec.cpp \
cdrdec.cpp \ cdrdec.cpp \
mp3dec.cpp \ mp3dec.cpp \
oggdec.cpp \ oggdec.cpp \
wavdec.cpp \ wavdec.cpp \
$(FLACdec) \
tag.c \ tag.c \
crc.c \ crc.c \
vis.cpp vis.cpp

View File

@@ -33,6 +33,9 @@
#include <mp3dec.h> #include <mp3dec.h>
#include <oggdec.h> #include <oggdec.h>
#include <wavdec.h> #include <wavdec.h>
#ifdef ENABLE_FLAC
#include <flacdec.h>
#endif
#include <linux/soundcard.h> #include <linux/soundcard.h>
#include <fcntl.h> #include <fcntl.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
@@ -120,6 +123,14 @@ CBaseDec::RetCode CBaseDec::DecoderBase(CAudiofile* const in,
&in->MetaData, t, &in->MetaData, t,
secondsToSkip ); secondsToSkip );
} }
#ifdef ENABLE_FLAC
else if (in->FileType == CFile::FILE_FLAC)
{
Status = CFlacDec::getInstance()->Decoder(fp, OutputFd, state,
&in->MetaData, t,
secondsToSkip );
}
#endif
else else
{ {
fprintf( stderr, "DecoderBase: Supplied filetype is not " ); fprintf( stderr, "DecoderBase: Supplied filetype is not " );
@@ -141,8 +152,12 @@ bool CBaseDec::GetMetaDataBase(CAudiofile* const in, const bool nice)
{ {
bool Status = true; bool Status = true;
if ( in->FileType == CFile::FILE_MP3 || in->FileType == CFile::FILE_OGG || if (in->FileType == CFile::FILE_MP3 || in->FileType == CFile::FILE_OGG
in->FileType == CFile::FILE_WAV || in->FileType == CFile::FILE_CDR ) || in->FileType == CFile::FILE_WAV || in->FileType == CFile::FILE_CDR
#ifdef ENABLE_FLAC
|| in->FileType == CFile::FILE_FLAC
#endif
)
{ {
FILE* fp = fopen( in->Filename.c_str(), "r" ); FILE* fp = fopen( in->Filename.c_str(), "r" );
if ( fp == NULL ) if ( fp == NULL )
@@ -173,7 +188,12 @@ bool CBaseDec::GetMetaDataBase(CAudiofile* const in, const bool nice)
Status = CCdrDec::getInstance()->GetMetaData(fp, nice, Status = CCdrDec::getInstance()->GetMetaData(fp, nice,
&in->MetaData); &in->MetaData);
} }
#ifdef ENABLE_FLAC
else if (in->FileType == CFile::FILE_FLAC)
{
Status = CFlacDec::getInstance()->GetMetaData(fp, nice, &in->MetaData);
}
#endif
if ( fclose( fp ) == EOF ) if ( fclose( fp ) == EOF )
{ {
fprintf( stderr, "Could not close file %s.\n", fprintf( stderr, "Could not close file %s.\n",

View File

@@ -56,7 +56,8 @@ public:
CDR, CDR,
MP3, MP3,
OGG, OGG,
WAV WAV,
FLAC
}; };
AudioType type; AudioType type;
std::string type_info; std::string type_info;