~ft/aacdec

9c136163859aeccbfaff07e0553eefbf73cca7f6 — menno 17 years ago 0647406
Linux compilation fixes
mp4ff should compile now
xmmsmp4 should compile now
spec file added for Red Hat (make dist should now work)
M Makefile.am => Makefile.am +2 -0
@@ 1,1 1,3 @@
SUBDIRS = libfaad common frontend plugins

EXTRA_DIST = faad2.spec

M common/Makefile.am => common/Makefile.am +5 -1
@@ 1,1 1,5 @@
SUBDIRS = mp4v2
if WITH_MP4V2
SUBDIRS = mp4v2 mp4ff
else
SUBDIRS = mp4ff
endif

A common/mp4ff/Makefile.am => common/mp4ff/Makefile.am +15 -0
@@ 0,0 1,15 @@
lib_LTLIBRARIES = libmp4ff.la

include_HEADERS = mp4ff.h

libmp4ff_la_SOURCES = atom.c ctts.c dinf.c dref.c edts.c \
	elst.c esds.c hdlr.c iods.c matrix.c mdat.c mdhd.c \
	mdia.c minf.c moov.c mp4ff.c mvhd.c smhd.c stbl.c \
	stco.c stsc.c stsd.c stsdtable.c stss.c stsz.c stts.c \
	tkhd.c trak.c udta.c util.c vmhd.c \
	funcprotos.h mp4ff.h private.h

AM_CFLAGS = -O2 -g
LIBTOOL_DEPS =
LIBS =


M common/mp4ff/mp4ff.h => common/mp4ff/mp4ff.h +80 -1
@@ 5,8 5,87 @@
extern "C" {
#endif

#ifdef _WIN32

 #include <stdio.h>
 #include <stdlib.h>

#else
#ifdef HAVE_CONFIG_H
#  include "../../config.h"
#endif

#include <stdio.h>
#include <stdlib.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
#  include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
#  include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
#  include <stdint.h>
# else
/* we need these... */
typedef unsigned long long uint64_t;
typedef unsigned long uint32_t;
typedef unsigned short uint16_t;
typedef unsigned char uint8_t;
typedef long long int64_t;
typedef long int32_t;
typedef short int16_t;
typedef char int8_t;
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif

#ifndef HAVE_FLOAT32_T
typedef float float32_t;
#endif

#if STDC_HEADERS
# include <string.h>
#else
# if !HAVE_STRCHR
#  define strchr index
#  define strrchr rindex
# endif
char *strchr(), *strrchr();
# if !HAVE_MEMCPY
#  define memcpy(d, s, n) bcopy((s), (d), (n))
#  define memmove(d, s, n) bcopy((s), (d), (n))
# endif
#endif

#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif

#endif


#include "private.h"

M configure.in => configure.in +33 -19
@@ 14,12 14,12 @@ AC_PROG_MAKE_SET

AM_CONFIG_HEADER(config.h)

AC_ARG_WITH( xmms,   [  --with-xmms             compile XMMS plugin],WITHXMMS=$withval, WITHXMMS=no)

AC_ARG_WITH( xmmsmp4,[  --with-xmmsmp4          compile XMMS MP4 plugin],WITHXMMSMP4=$withval, WITHXMMSMP4=no)
AC_ARG_WITH( xmms,   [  --with-xmms             compile XMMS plugins],WITHXMMS=$withval, WITHXMMS=no)

AC_ARG_WITH( drm,    [  --with-drm              compile libfaad with DRM support],WITHDRM=$withval, WITHDRM=no)

AC_ARG_WITH( mp4v2,  [  --with-mp4v2            compile libmp4v2],WITHMP4V2=$withval, WITHMP4V2=no)

dnl Checks for header files required for mp4.h
AC_HEADER_STDC
AC_CHECK_HEADERS(stdint.h inttypes.h)


@@ 32,6 32,8 @@ AC_HEADER_TIME
AC_C_INLINE
AC_C_BIGENDIAN

AC_TYPE_OFF_T

AC_DEFUN(MY_CHECK_TYPEDEF_FROM_INCLUDE,
[
   AC_MSG_CHECKING([for $1])


@@ 69,39 71,51 @@ AC_CHECK_LIB(mp4v2, MP4Create, , external_mp4v2=no, -lstdc++)
AC_CHECK_LIB(mp4v2, MP4MetadataDelete, external_mp4v2=no, , -lstdc++)
AC_CHECK_HEADER(mp4.h, , external_mp4v2=no)

AM_CONDITIONAL(WITH_MP4V2, false)

if test x$external_mp4v2 = xyes; then
  AM_CONDITIONAL(HAVE_MPEG4IP, true)
  MPEG4IP_PLAYER_PLUGIN_DIR=`mpeg4ip-config --player-plugin-dir`  
  AC_SUBST(MPEG4IP_PLAYER_PLUGIN_DIR)
  AC_CONFIG_FILES(plugins/mpeg4ip/Makefile)
  AC_MSG_NOTICE([*** Building with external mp4v2 ***])
else
  AM_CONDITIONAL(HAVE_MPEG4IP, false)
  AC_CONFIG_FILES(common/mp4v2/Makefile)
  if test x$WITHMP4V2 = xyes; then
     AM_CONDITIONAL(WITH_MP4V2, true)
  fi
fi

if test x$WITHXMMS = xyes; then
  xmmsplugin=yes
  AC_CHECK_PROGS(XMMS_CONFIG, xmms-config,"no_found")
  if test "$XMMS_CONFIG" = "no_found"; then
   AC_MSG_ERROR("*** xmms-config not found - omitting xmms plugin build")
   xmmsplugin=no
   AM_CONDITIONAL(HAVE_XMMS, false)
  else
   AM_CONDITIONAL(HAVE_XMMS, true)
   AC_CONFIG_SUBDIRS(plugins/xmms)
  AC_CHECK_PROGS(XMMS_CONFIG, xmms-config,"not_found")
  if test "$XMMS_CONFIG" = "not_found"; then
    AC_MSG_ERROR("*** xmms-config not found - xmms plugin can't be build")
  fi
  AC_CHECK_HEADER(pthread.h,,
           AC_MSG_ERROR(*** pthread headers support not installed or not found))
  AC_CHECK_HEADER(id3.h,,
       AC_MSG_ERROR(*** id3lib headers support not installed or not found))
  AC_CHECK_PROGS(GTK_CONFIG, gtk-config, "not_found")
  
  if test x$GTK_CONFIG = xnot_found; then
    AC_MSG_ERROR("*** gtk-config not found - xmms plugin can't be build")
  fi
  
  AM_CONDITIONAL(HAVE_XMMS, true)  
  AC_MSG_NOTICE("xmms plugin requires libmp4v2 to be build")
  AM_CONDITIONAL(WITH_MP4V2, true)
else
 AM_CONDITIONAL(HAVE_XMMS, false)
 xmmsplugin=no
fi

if test x$WITHDRM = xyes; then
  AC_DEFINE(DRM, 1, [Define if you want to use libfaad together with Digital Radio Mondiale (DRM)])
fi

AC_CONFIG_FILES(libfaad/Makefile frontend/Makefile common/Makefile Makefile plugins/Makefile)
AC_OUTPUT
AC_CONFIG_FILES(libfaad/Makefile frontend/Makefile common/Makefile plugins/Makefile Makefile )

dnl AC_CONFIG_SUBDIRS(plugins/xmmsmp4/src)
dnl AC_OUTPUT(plugins/xmmsmp4/Makefile plugins/xmmsmp4/src/Makefile)
AC_CONFIG_FILES(plugins/mpeg4ip/Makefile)
AC_CONFIG_FILES(plugins/xmms/Makefile plugins/xmms/src/Makefile)
AC_CONFIG_FILES(plugins/xmmsmp4/Makefile plugins/xmmsmp4/src/Makefile)

AC_CONFIG_FILES(common/mp4ff/Makefile common/mp4v2/Makefile)
AC_OUTPUT

A faad2.spec => faad2.spec +128 -0
@@ 0,0 1,128 @@
Summary:	C library and frontend for decoding MPEG2/4 AAC
Name:		faad2
Version:	2.0.031105
Release:	1
License:	GPL
Group:		Applications/Multimedia
Source0:	http://download.sourceforge.net/faad/%{name}-%{version}.tar.gz
BuildRequires: autoconf, automake, libtool, gcc-c++
BuildRequires: xmms-devel, id3lib-devel, gtk+-devel
URL:		http://www.audiocoding.com/
BuildRoot: 	%{_tmppath}/%{name}-%{version}-%{release}-root
Packager:	a.kurpiers@nt.tu-darmstadt.de

%description
FAAD 2 is a LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC decoder, completely
written from scratch. FAAD 2 is licensed under the GPL.

%package devel
Summary: Development libraries the FAAD 2 AAC decoder.
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}

%description devel
Header files and development documentation for libfaad.

%package xmms
Group: Applications/Multimedia
Summary: AAC and MP4 input plugin for xmms
Requires: %{name} = %{version}-%{release}, %{version}-%{release}-libmp4ff, xmms, id3lib


%description xmms
The AAC xmms input plugin for xmms recognizes AAC files by an
.aac extension.
This MP4 xmms plugin reads AAC files with and without ID3 tags (version 2.x).
AAC files are MPEG2 or MPEG4 files that can be found in MPEG4 audio files
(.mp4). MPEG4 files with AAC inside can be read by RealPlayer or Quicktime.


%package libmp4v2
Summary: C++ library to handle MP4 (Quicktime) content
Group: Development/Libraries

%description libmp4v2
C++ library to handle MP4 (Quicktime) content


%package libmp4ff
Summary: Library to handle MP4 (Quicktime)
Group: Development/Libraries

%description libmp4ff
This is a Quicktime library for UNIX in a freely redistributable,
statically linkable library.

%prep
%setup -n faad2
%patch -p0

%build
sh bootstrap
./configure --with-drm --with-xmms --prefix=/usr
make

%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%clean
rm -rf %{buildroot}

%files
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog NEWS README TODO
%{_bindir}/*
%{_libdir}/libfaad.so*

%files devel
%defattr(-, root, root)
%{_libdir}/libfaad.a
%{_libdir}/libfaad.la
%{_includedir}/faad.h

%files xmms
%defattr(-,root,root)
%doc plugins/xmms/README
%_libdir/xmms/Input/*

%files libmp4v2
%defattr(-, root, root)
%{_libdir}/libmp4v2.*
%{_includedir}/mp4.h
%{_includedir}/mpeg4ip.h

%files libmp4ff
%defattr(-, root, root)
%{_libdir}/libmp4ff.*
%{_includedir}/mp4ff.h

%changelog
* Wed Nov 05 2003 Alexander Kurpiers <a.kurpiers@nt.tu-darmstadt.de>
- include xmms plugins/libmp4v2/libmp4ff into RPM

* Tue Aug 12 2003 Matthias Saou <matthias.saou@est.une.marmotte.net>
- Update to 2.0rc1.
- Introduced LD_LIBRARY_PATH workaround.
- Removed optional xmms plugin build, it seems mandatory now.
- Added gtk+ build dep for the xmms plugin.

* Wed May 14 2003 Matthias Saou <matthias.saou@est.une.marmotte.net>
- Added xmms plugin build.

* Wed Apr  9 2003 Matthias Saou <matthias.saou@est.une.marmotte.net>
- Spec file cleanup.
- Now exclude .la file.
- Update to latest CVS checkout to fix compile problem.


* Fri Aug 10 2002 Alexander Kurpiers <a.kurpiers@nt.tu-darmstadt.de>
- changes to compile v1.1 release

* Tue Jun 18 2002 Alexander Kurpiers <a.kurpiers@nt.tu-darmstadt.de>
- First RPM.


M frontend/Makefile.am => frontend/Makefile.am +4 -9
@@ 4,15 4,10 @@ faad_SOURCES = main.c audio.c $(top_srcdir)/common/faad/getopt.c \
   audio.h

AM_CFLAGS = -O2
if HAVE_MPEG4IP
einc=
elib=-lmp4v2
else
einc=-I$(top_srcdir)/common/mp4v2
elib=$(top_builddir)/common/mp4v2/libmp4v2.la
endif
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/common/faad \
   -I$(top_srcdir)/common/mp4ff
LDADD = $(top_builddir)/libfaad/libfaad.la \
   $(top_builddir)/common/mp4ff/libmp4ff.la

INCLUDES = -I$(top_srcdir)/include $(einc) -I$(top_srcdir)/common/faad
LDADD = $(top_builddir)/libfaad/libfaad.la $(elib) -lm

CCLD = $(CXX)

M frontend/main.c => frontend/main.c +6 -5
@@ 22,12 22,13 @@
** Commercial non-GPL licensing of this software is possible.
** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
**
** $Id: main.c,v 1.57 2003/11/02 20:24:03 menno Exp $
** $Id: main.c,v 1.58 2003/11/06 11:04:13 menno Exp $
**/

#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
typedef __int64 off_t
#else
#include <time.h>
#endif


@@ 176,14 177,14 @@ size_t write_callback(void *buffer, size_t length)
    return 0;
}

__int64 get_position_callback()
off_t get_position_callback()
{
    return ftell(g_mp4File);
}

__int64 get_length_callback()
off_t get_length_callback()
{
    __int64 oldpos, size = 0;
    off_t oldpos, size = 0;
    oldpos = ftell(g_mp4File);
    fseek(g_mp4File, 0, SEEK_END);
    size = ftell(g_mp4File);


@@ 191,7 192,7 @@ __int64 get_length_callback()
    return size;
}

int seek_callback(__int64 position)
int seek_callback(off_t position)
{
    return fseek(g_mp4File, position, SEEK_SET);
}

M libfaad/Makefile.am => libfaad/Makefile.am +1 -1
@@ 15,7 15,7 @@ ms.h output.h pns.h pulse.h rvlc.h sine_win.h ssr.h ssr_fb.h ssr_ipqf.h \
ssr_win.h specrec.h syntax.h structs.h tns.h \
sbr_dct.h sbr_dec.h sbr_e_nf.h sbr_fbt.h sbr_hfadj.h sbr_hfgen.h \
sbr_huff.h sbr_noise.h sbr_qmf.h sbr_syntax.h sbr_tf_grid.h \
codebook/hcb.h \
sbr_qmf_c.h codebook/hcb.h \
codebook/hcb_1.h codebook/hcb_2.h codebook/hcb_3.h codebook/hcb_4.h \
codebook/hcb_5.h codebook/hcb_6.h codebook/hcb_7.h codebook/hcb_8.h \
codebook/hcb_9.h codebook/hcb_10.h codebook/hcb_11.h codebook/hcb_sf.h

M plugins/Makefile.am => plugins/Makefile.am +2 -2
@@ 1,12 1,12 @@
if HAVE_MPEG4IP
if HAVE_XMMS
SUBDIRS = mpeg4ip xmms
SUBDIRS = mpeg4ip xmms xmmsmp4
else
SUBDIRS = mpeg4ip
endif
else
if HAVE_XMMS
SUBDIRS = xmms
SUBDIRS = xmms xmmsmp4
else
SUBDIRS = 
endif

M plugins/xmms/src/Makefile.am => plugins/xmms/src/Makefile.am +11 -8
@@ 1,10 1,13 @@
libdir = `xmms-config --input-plugin-dir`
lib_LTLIBRARIES = libaac.la

if USE_STATIC_FAAD2
  INCLUDES = -I../../../include
  libaac_la_LDFLAGS = -module -avoid-version `xmms-config --libs` -lpthread -lid3 -lstdc++ -lz
  libaac_la_LIBADD = ../../../libfaad/libfaad.la
else
  libaac_la_LDFLAGS = -module -avoid-version `xmms-config --libs` -lpthread -lfaad -lz -lid3 -lstdc++
endif
libaac_la_SOURCES = libaac.c id3.cpp dialog_gtk1.c aac_utils.c
libaac_la_CFLAGS = `xmms-config --cflags` `$GTK_CONFIG --cflags` -Wall \
	-I$(top_builddir)/include 
	
libaac_la_LIBADD = $(top_builddir)/libfaad/libfaad.la

libaac_la_LDFLAGS = -module -avoid-version `xmms-config --libs` \
	`$GTK_CONFIG --libs` -lpthread -lz -lid3 -lstdc++
libaac_la_SOURCES = libaac.c id3.cpp dialog_gtk1.c aac_utils.c \
	aac_utils.h


A plugins/xmmsmp4/Makefile.am => plugins/xmmsmp4/Makefile.am +2 -0
@@ 0,0 1,2 @@
SUBDIRS = src


M plugins/xmmsmp4/src/Makefile.am => plugins/xmmsmp4/src/Makefile.am +4 -2
@@ 1,10 1,12 @@
libdir = `xmms-config --input-plugin-dir`

lib_LTLIBRARIES = libmp4.la
libmp4_la_CFLAGS = -I../mp4v2 -I../libmp4v2-include -I../libfaad-include `xmms-config --cflags` -DHAVE_GLIB_H=1
libmp4_la_CFLAGS = -I$(top_builddir)/common/mp4v2 \
	-I$(top_builddir)/include \
	`xmms-config --cflags` -DHAVE_GLIB_H=1

libmp4_la_LDFLAGS = -module -avoid-version `xmms-config --libs` -lpthread -lstdc++ 

libmp4_la_LIBADD = $(top_builddir)/libfaad/libfaad.la $(top_builddir)/mp4v2/libmp4v2.la
libmp4_la_LIBADD = $(top_builddir)/libfaad/libfaad.la $(top_builddir)/common/mp4v2/libmp4v2.la

libmp4_la_SOURCES = libmp4.c libmp4_utils.c libmp4_utils.h