fix a few snafoo's in configure.ac
Add initial stuff for AAC support, now we just need to write the decoder git-svn-id: https://svn.musicpd.org/mpd/trunk@264 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
0f11ce855e
commit
f114fbd437
55
configure.ac
55
configure.ac
|
@ -28,6 +28,7 @@ AC_ARG_ENABLE(ipv6,[ --disable-ipv6 disable IPv6 support],,enable_ipv6=yes)
|
|||
AC_ARG_ENABLE(ogg,[ --disable-ogg disable ogg support],,enable_ogg=yes)
|
||||
AC_ARG_ENABLE(flac,[ --disable-flac disable flac support],,enable_flac=yes)
|
||||
AC_ARG_ENABLE(mp3,[ --disable-mp3 disable mp3 support],,enable_mp3=yes)
|
||||
AC_ARG_ENABLE(aac,[ --disable-aac disable AAC support],,enable_aac=yes)
|
||||
AC_ARG_ENABLE(audiofile,[ --disable-audiofile disable audiofile support, disables wave support],,enable_audiofile=yes)
|
||||
AC_ARG_ENABLE(mpd_mad,[ --enable-mpd-mad use mpd libmad],use_mpd_mad=yes,)
|
||||
AC_ARG_ENABLE(id3,[ --disable-id3 disable id3 support],,enable_id3=yes)
|
||||
|
@ -41,6 +42,10 @@ AC_ARG_WITH(mad,[ --with-mad=PFX Prefix where libmad is installed (optional)]
|
|||
AC_ARG_WITH(mad-libraries,[ --with-mad-libraries=DIR Directory where libmad library is installed (optional)], mad_libraries="$withval", mad_libraries="")
|
||||
AC_ARG_WITH(mad-includes,[ --with-mad-includes=DIR Directory where mad header files are installed (optional)], mad_includes="$withval", mad_includes="")
|
||||
|
||||
AC_ARG_WITH(faad,[ --with-faad=PFX Prefix where faad lib is installed (optional)], faad_prefix="$withval", faad_prefix="")
|
||||
AC_ARG_WITH(faad-libraries,[ --with-faad-libraries=DIR Directory where faad library is installed (optional)], faad_libraries="$withval", faad_libraries="")
|
||||
AC_ARG_WITH(faad-includes,[ --with-faad-includes=DIR Directory where faad header files are installed (optional)], faad_includes="$withval", faad_includes="")
|
||||
|
||||
AC_C_BIGENDIAN
|
||||
|
||||
AC_CHECK_SIZEOF(short)
|
||||
|
@ -120,20 +125,23 @@ if test x$enable_id3 = xyes; then
|
|||
if test "x$id3tag_includes" != "x" ; then
|
||||
ID3TAG_CFLAGS="-I$id3tag_includes"
|
||||
elif test "x$id3tag_prefix" != "x" ; then
|
||||
ID3TAG_CFLAGS="-I$id3tag_prefix/lib"
|
||||
ID3TAG_CFLAGS="-I$id3tag_prefix/include"
|
||||
elif test "x$prefix" != "xNONE"; then
|
||||
ID3TAG_CFLAGS="-I$libdir"
|
||||
ID3TAG_CFLAGS="-I$includedir"
|
||||
fi
|
||||
|
||||
ID3TAG_CFLAGS="$ID3TAG_CFLAGS"
|
||||
|
||||
oldcflags=$CFLAGS
|
||||
CFLAGS="$CFLAGS $ID3TAG_CFLAGS $ID3TAG_LIBS"
|
||||
oldlibs=$LIBS
|
||||
CFLAGS="$CFLAGS $MPD_CFLAGS $ID3TAG_CFLAGS"
|
||||
LIBS="$LIBS $MPD_LIBS $ID3TAG_LIBS"
|
||||
AC_CHECK_LIB(id3tag,id3_file_open,[ID3_LIB="$ID3TAG_LIBS";
|
||||
MPD_CFLAGS="$MPD_CFLAGS $ID3TAG_CFLAGS";
|
||||
use_libid3tag=yes],
|
||||
[use_libid3tag=no;use_mpd_id3tag=yes])
|
||||
CFLAGS=$oldcflags
|
||||
LIBS=$oldlibs
|
||||
fi
|
||||
if test x$use_mpd_id3tag = xyes; then
|
||||
MPD_CFLAGS="$MPD_CFLAGS -DUSE_MPD_ID3TAG"
|
||||
|
@ -163,14 +171,20 @@ if test x$enable_mp3 = xyes; then
|
|||
if test "x$mad_includes" != "x" ; then
|
||||
MAD_CFLAGS="-I$mad_includes"
|
||||
elif test "x$mad_prefix" != "x" ; then
|
||||
MAD_CFLAGS="-I$mad_prefix/lib"
|
||||
MAD_CFLAGS="-I$mad_prefix/include"
|
||||
elif test "x$prefix" != "xNONE"; then
|
||||
MAD_CFLAGS="-I$libdir"
|
||||
MAD_CFLAGS="-I$includedir"
|
||||
fi
|
||||
|
||||
oldcflags=$CFLAGS
|
||||
oldlibs=$LIBS
|
||||
CFLAGS="$CFLAGS $MPD_CFLAGS $MAD_CFLAGS"
|
||||
LIBS="$LIBS $MPD_LIBS $MAD_LIBS"
|
||||
AC_CHECK_LIB(mad,mad_stream_init,[MAD_LIB="$MAD_LIBS";
|
||||
MPD_CFLAGS="$MPD_CFLAGS $MAD_CFLAGS";use_libmad=yes],
|
||||
[use_libmad=no;use_mpd_mad=yes])
|
||||
CFLAGS=$oldcflags
|
||||
LIBS=$oldlibs
|
||||
fi
|
||||
if test x$use_mpd_mad = xyes; then
|
||||
MPD_CFLAGS="$MPD_CFLAGS -DUSE_MPD_MAD"
|
||||
|
@ -181,6 +195,37 @@ if test x$enable_mp3 = xyes; then
|
|||
MPD_CFLAGS="$MPD_CFLAGS -DHAVE_MAD"
|
||||
fi
|
||||
|
||||
if test x$enable_aac = xyes; then
|
||||
if test "x$faad_libraries" != "x" ; then
|
||||
FAAD_LIBS="-L$faad_libraries"
|
||||
elif test "x$faad_prefix" != "x" ; then
|
||||
FAAD_LIBS="-L$faad_prefix/lib"
|
||||
elif test "x$prefix" != "xNONE"; then
|
||||
FAAD_LIBS="-L$libdir"
|
||||
fi
|
||||
|
||||
FAAD_LIBS="$FAAD_LIBS -lfaad"
|
||||
|
||||
if test "x$faad_includes" != "x" ; then
|
||||
FAAD_CFLAGS="-I$faad_includes"
|
||||
elif test "x$faad_prefix" != "x" ; then
|
||||
FAAD_CFLAGS="-I$faad_prefix/include"
|
||||
elif test "x$prefix" != "xNONE"; then
|
||||
FAAD_CFLAGS="-I$includedir"
|
||||
fi
|
||||
|
||||
oldcflags=$CFLAGS
|
||||
oldlibs=$LIBS
|
||||
CFLAGS="$CFLAGS $MPD_CFLAGS $FAAD_CFLAGS"
|
||||
LIBS="$LIBS $MPD_LIBS $FAAD_LIBS"
|
||||
AC_CHECK_HEADER(faad.h,,enable_aac=no)
|
||||
if test x$enable_aac = xyes; then
|
||||
AC_CHECK_LIB(faad, faacDecDecode,[MPD_LIBS="$MPD_LIBS $FAAD_LIBS";MPD_CFLAGS="$MPD_CFLAGS $FAAD_CFLAGS -DHAVE_FAAD"],enable_aac=no)
|
||||
fi
|
||||
CFLAGS=$oldcflags
|
||||
LIBS=$oldlibs
|
||||
fi
|
||||
|
||||
if test x$enable_ogg = xyes; then
|
||||
XIPH_PATH_OGG(MPD_LIBS="$MPD_LIBS $OGG_LIBS" MPD_CFLAGS="$MPD_CFLAGS $OGG_CFLAGS",enable_ogg=no)
|
||||
fi
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#define DECODE_TYPE_OGG 1
|
||||
#define DECODE_TYPE_FLAC 2
|
||||
#define DECODE_TYPE_AUDIOFILE 3
|
||||
#define DECODE_TYPE_AAC 4
|
||||
|
||||
#define DECODE_STATE_STOP 0
|
||||
#define DECODE_STATE_DECODE 1
|
||||
|
|
32
src/ls.c
32
src/ls.c
|
@ -125,6 +125,9 @@ int isMusic(char * utf8file, time_t * mtime) {
|
|||
#ifdef HAVE_AUDIOFILE
|
||||
if((ret = isWave(utf8file,mtime))) return ret;
|
||||
#endif
|
||||
#ifdef HAVE_FAAD
|
||||
if((ret = isAac(utf8file,mtime))) return ret;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -246,6 +249,35 @@ int isOgg(char * utf8file, time_t * mtime) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int isAac(char * utf8file, time_t * mtime) {
|
||||
struct stat st;
|
||||
char * file = utf8ToFsCharset(utf8file);
|
||||
char * actualFile = file;
|
||||
|
||||
if(actualFile[0]!='/') actualFile = rmp2amp(file);
|
||||
|
||||
if(stat(actualFile,&st)==0) {
|
||||
if(S_ISREG(st.st_mode)) {
|
||||
char * dup;
|
||||
char * cLast;
|
||||
char * cNext;
|
||||
int ret = 0;
|
||||
dup = strdup(file);
|
||||
cNext = cLast = strtok(dup,".");
|
||||
while((cNext = strtok(NULL,"."))) cLast = cNext;
|
||||
if(cLast && 0==strcasecmp(cLast,"aac")) {
|
||||
if(mtime) *mtime = st.st_mtime;
|
||||
ret = 1;
|
||||
}
|
||||
free(dup);
|
||||
return ret;
|
||||
}
|
||||
else return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int isMp3(char * utf8file, time_t * mtime) {
|
||||
struct stat st;
|
||||
char * file = utf8ToFsCharset(utf8file);
|
||||
|
|
2
src/ls.h
2
src/ls.h
|
@ -26,6 +26,8 @@ int lsPlaylists(FILE * fp, char * utf8path);
|
|||
|
||||
int isMp3(char * utf8file, time_t * mtime);
|
||||
|
||||
int isAac(char * utf8file, time_t * mtime);
|
||||
|
||||
int isOgg(char * utf8file, time_t * mtime);
|
||||
|
||||
int isFlac(char * utf8file, time_t * mtime);
|
||||
|
|
|
@ -176,6 +176,9 @@ int playerPlay(FILE * fp, char * utf8file) {
|
|||
#endif
|
||||
#ifdef HAVE_AUDIOFILE
|
||||
else if(isWave(utf8file,NULL)) pc->decodeType = DECODE_TYPE_AUDIOFILE;
|
||||
#endif
|
||||
#ifdef HAVE_FAAD
|
||||
else if(isAac(utf8file,NULL)) pc->decodeType = DECODE_TYPE_AAC;
|
||||
#endif
|
||||
else {
|
||||
strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
|
||||
|
|
10
src/song.c
10
src/song.c
|
@ -78,6 +78,11 @@ Song * newSong(char * utf8file) {
|
|||
song->tag = audiofileTagDup(utf8file);
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_FAAD
|
||||
else if(isAac(utf8file,&(song->mtime))) {
|
||||
song->tag = aacTagDup(utf8file);
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!song->tag || song->tag->time<0) {
|
||||
freeSong(song);
|
||||
|
@ -240,6 +245,11 @@ int updateSongInfo(Song * song) {
|
|||
song->tag = audiofileTagDup(utf8file);
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_FAAD
|
||||
else if(isAac(utf8file,&(song->mtime))) {
|
||||
song->tag = aacTagDup(utf8file);
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!song->tag || song->tag->time<0) return -1;
|
||||
else addSongToTables(song);
|
||||
|
|
19
src/tag.c
19
src/tag.c
|
@ -167,6 +167,25 @@ MpdTag * mp3TagDup(char * utf8file) {
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_FAAD
|
||||
MpdTag * aacTagDup(char * utf8file) {
|
||||
MpdTag * ret = NULL;
|
||||
int time;
|
||||
|
||||
ret = id3Dup(utf8file);
|
||||
|
||||
#warning getAacTotalTime needs implementing
|
||||
//time = getAacTotalTime(rmp2amp(utf8ToFsCharset(utf8file)));
|
||||
|
||||
if(time>=0) {
|
||||
if(!ret) ret = newMpdTag();
|
||||
ret->time = time;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_OGG
|
||||
MpdTag * oggTagDup(char * utf8file) {
|
||||
MpdTag * ret = NULL;
|
||||
|
|
Loading…
Reference in New Issue