From 5c3261d6e3781d0a3946a5ccdb752122167c09d2 Mon Sep 17 00:00:00 2001
From: Thierry N <thierryn1 at hispeed dot ch>
Date: Mon, 10 Aug 2009 21:22:23 +0200
Subject: Ajout de faad2#2.6.1-1

---
 extra/faad2/.footprint                        |  15 +
 extra/faad2/.md5sum                           |   5 +
 extra/faad2/Pkgfile                           |  33 +++
 extra/faad2/faad2-2.0-gcc4.patch              | 387 ++++++++++++++++++++++++++
 extra/faad2/faad2-2.6.1-abi_has_changed.patch |  15 +
 extra/faad2/faad2-2.6.1-broken-pipe.patch     |  23 ++
 extra/faad2/faad2-2.6.1-implicitdeclar.patch  |  12 +
 extra/faad2/faad2-2.6.1-libtool22.patch       |  14 +
 8 files changed, 504 insertions(+)
 create mode 100644 extra/faad2/.footprint
 create mode 100644 extra/faad2/.md5sum
 create mode 100755 extra/faad2/Pkgfile
 create mode 100644 extra/faad2/faad2-2.0-gcc4.patch
 create mode 100644 extra/faad2/faad2-2.6.1-abi_has_changed.patch
 create mode 100644 extra/faad2/faad2-2.6.1-broken-pipe.patch
 create mode 100644 extra/faad2/faad2-2.6.1-implicitdeclar.patch
 create mode 100644 extra/faad2/faad2-2.6.1-libtool22.patch

(limited to 'extra/faad2')

diff --git a/extra/faad2/.footprint b/extra/faad2/.footprint
new file mode 100644
index 000000000..243de49cd
--- /dev/null
+++ b/extra/faad2/.footprint
@@ -0,0 +1,15 @@
+drwxr-xr-x	root/root	usr/
+drwxr-xr-x	root/root	usr/bin/
+-rwxr-xr-x	root/root	usr/bin/faad
+drwxr-xr-x	root/root	usr/include/
+-rw-r--r--	root/root	usr/include/faad.h
+-rw-r--r--	root/root	usr/include/mp4ff.h
+-rw-r--r--	root/root	usr/include/mp4ff_int_types.h
+-rw-r--r--	root/root	usr/include/neaacdec.h
+drwxr-xr-x	root/root	usr/lib/
+-rw-r--r--	root/root	usr/lib/libfaad.a
+-rwxr-xr-x	root/root	usr/lib/libfaad.la
+lrwxrwxrwx	root/root	usr/lib/libfaad.so -> libfaad.so.1.0.0
+lrwxrwxrwx	root/root	usr/lib/libfaad.so.1 -> libfaad.so.1.0.0
+-rwxr-xr-x	root/root	usr/lib/libfaad.so.1.0.0
+-rw-r--r--	root/root	usr/lib/libmp4ff.a
diff --git a/extra/faad2/.md5sum b/extra/faad2/.md5sum
new file mode 100644
index 000000000..d45027f1f
--- /dev/null
+++ b/extra/faad2/.md5sum
@@ -0,0 +1,5 @@
+f4427ece45c87ac63102f891dc9208e1  faad2-2.6.1-abi_has_changed.patch
+6eb87d8c75da12d166ae460997bdbde2  faad2-2.6.1-broken-pipe.patch
+97a34cb3cd468ba868d9393241ef7391  faad2-2.6.1-implicitdeclar.patch
+fa91c19ea617b3ac8e7e198fb0a97b62  faad2-2.6.1-libtool22.patch
+74e92df40c270f216a8305fc87603c8a  faad2-2.6.1.tar.gz
diff --git a/extra/faad2/Pkgfile b/extra/faad2/Pkgfile
new file mode 100755
index 000000000..120ecf24f
--- /dev/null
+++ b/extra/faad2/Pkgfile
@@ -0,0 +1,33 @@
+# Description: Profiles pour le decoder ACC MPEG4 
+# URL: http://www.audiocoding.com
+# Maintainer: NuTyX core team
+# Packager: thierryn1 at hispeed dot ch
+# Depends on:
+
+name=faad2
+version=2.6.1
+release=1
+source=(http://downloads.sourceforge.net/sourceforge/faac/$name-$version.tar.gz\
+	faad2-2.6.1-libtool22.patch \
+	faad2-2.6.1-broken-pipe.patch \
+	faad2-2.6.1-implicitdeclar.patch
+	faad2-2.6.1-abi_has_changed.patch \
+
+	)
+
+
+build() {
+	cd $name
+#	patch -p1 -i $SRC/$name-2.0-gcc4.patch
+	patch -p1 < ../faad2-2.6.1-libtool22.patch
+	patch -p1 < ../faad2-2.6.1-broken-pipe.patch
+	patch -p1 < ../faad2-2.6.1-implicitdeclar.patch
+	patch -p1 < ../faad2-2.6.1-abi_has_changed.patch
+	autoreconf -vif
+	./configure --prefix=/usr 
+	make
+	make DESTDIR=$PKG install
+	install -m644 common/mp4ff/mp4ff.h $PKG/usr/include/
+	install -m644 common/mp4ff/.libs/*.a $PKG/usr/lib
+	install -m644 common/mp4ff/mp4ff_int_types.h $PKG/usr/include
+}
diff --git a/extra/faad2/faad2-2.0-gcc4.patch b/extra/faad2/faad2-2.0-gcc4.patch
new file mode 100644
index 000000000..8e4c9a0bc
--- /dev/null
+++ b/extra/faad2/faad2-2.0-gcc4.patch
@@ -0,0 +1,387 @@
+# Looks a lot like Gentoo's 021_all_gcc4.patch, imho --Sten
+diff -ru faad2.orig/common/mp4ff/mp4atom.c faad2/common/mp4ff/mp4atom.c
+--- faad2.orig/common/mp4ff/mp4atom.c	2004-01-11 16:52:18.000000000 +0100
++++ faad2/common/mp4ff/mp4atom.c	2006-03-05 11:48:17.000000000 +0100
+@@ -31,15 +31,15 @@
+ #include "drms.h"
+ 
+ /* parse atom header size */
+-static int32_t mp4ff_atom_get_size(const int8_t *data)
++static int32_t mp4ff_atom_get_size(const uint8_t *data)
+ {
+     uint32_t result;
+     uint32_t a, b, c, d;
+ 
+-    a = (uint8_t)data[0];
+-    b = (uint8_t)data[1];
+-    c = (uint8_t)data[2];
+-    d = (uint8_t)data[3];
++    a = data[0];
++    b = data[1];
++    c = data[2];
++    d = data[3];
+ 
+     result = (a<<24) | (b<<16) | (c<<8) | d;
+     //if (result > 0 && result < 8) result = 8;
+@@ -182,7 +182,7 @@
+ {
+     uint64_t size;
+     int32_t ret;
+-    int8_t atom_header[8];
++    uint8_t atom_header[8];
+ 
+     ret = mp4ff_read_data(f, atom_header, 8);
+     if (ret != 8)
+diff -ru faad2.orig/common/mp4ff/mp4ff.h faad2/common/mp4ff/mp4ff.h
+--- faad2.orig/common/mp4ff/mp4ff.h	2004-01-11 16:52:18.000000000 +0100
++++ faad2/common/mp4ff/mp4ff.h	2006-03-05 11:48:17.000000000 +0100
+@@ -125,4 +125,4 @@
+ }
+ #endif /* __cplusplus */
+ 
+-#endif
+\ No newline at end of file
++#endif
+diff -ru faad2.orig/common/mp4ff/mp4ff_int_types.h faad2/common/mp4ff/mp4ff_int_types.h
+--- faad2.orig/common/mp4ff/mp4ff_int_types.h	2003-12-13 23:26:56.000000000 +0100
++++ faad2/common/mp4ff/mp4ff_int_types.h	2006-03-05 11:48:18.000000000 +0100
+@@ -20,4 +20,4 @@
+ #endif
+ 
+ 
+-#endif
+\ No newline at end of file
++#endif
+diff -ru faad2.orig/common/mp4ff/mp4ffint.h faad2/common/mp4ff/mp4ffint.h
+--- faad2.orig/common/mp4ff/mp4ffint.h	2004-01-14 21:50:22.000000000 +0100
++++ faad2/common/mp4ff/mp4ffint.h	2006-03-05 11:48:18.000000000 +0100
+@@ -226,8 +226,8 @@
+ 
+ 
+ /* mp4util.c */
+-int32_t mp4ff_read_data(mp4ff_t *f, int8_t *data, uint32_t size);
+-int32_t mp4ff_write_data(mp4ff_t *f, int8_t *data, uint32_t size);
++int32_t mp4ff_read_data(mp4ff_t *f, uint8_t *data, uint32_t size);
++int32_t mp4ff_write_data(mp4ff_t *f, uint8_t *data, uint32_t size);
+ uint64_t mp4ff_read_int64(mp4ff_t *f);
+ uint32_t mp4ff_read_int32(mp4ff_t *f);
+ uint32_t mp4ff_read_int24(mp4ff_t *f);
+@@ -241,7 +241,7 @@
+ char * mp4ff_read_string(mp4ff_t * f,uint32_t length);
+ 
+ /* mp4atom.c */
+-static int32_t mp4ff_atom_get_size(const int8_t *data);
++static int32_t mp4ff_atom_get_size(const uint8_t *data);
+ static int32_t mp4ff_atom_compare(const int8_t a1, const int8_t b1, const int8_t c1, const int8_t d1,
+                                   const int8_t a2, const int8_t b2, const int8_t c2, const int8_t d2);
+ static uint8_t mp4ff_atom_name_to_type(const int8_t a, const int8_t b, const int8_t c, const int8_t d);
+@@ -301,7 +301,6 @@
+ mp4ff_t *mp4ff_open_edit(mp4ff_callback_t *f);
+ #endif
+ void mp4ff_close(mp4ff_t *ff);
+-void mp4ff_track_add(mp4ff_t *f);
+ int32_t parse_sub_atoms(mp4ff_t *f, const uint64_t total_size);
+ int32_t parse_atoms(mp4ff_t *f);
+ 
+@@ -326,4 +325,4 @@
+ }
+ #endif /* __cplusplus */
+ 
+-#endif
+\ No newline at end of file
++#endif
+diff -ru faad2.orig/common/mp4ff/mp4meta.c faad2/common/mp4ff/mp4meta.c
+--- faad2.orig/common/mp4ff/mp4meta.c	2004-01-11 16:52:18.000000000 +0100
++++ faad2/common/mp4ff/mp4meta.c	2006-03-05 11:48:18.000000000 +0100
+@@ -411,4 +411,4 @@
+     return mp4ff_meta_find_by_name(f, "cover", value);
+ }
+ 
+-#endif
+\ No newline at end of file
++#endif
+diff -ru faad2.orig/common/mp4ff/mp4tagupdate.c faad2/common/mp4ff/mp4tagupdate.c
+--- faad2.orig/common/mp4ff/mp4tagupdate.c	2004-01-06 12:59:47.000000000 +0100
++++ faad2/common/mp4ff/mp4tagupdate.c	2006-03-05 11:48:18.000000000 +0100
+@@ -143,7 +143,7 @@
+ 	bufptr = membuffer_get_ptr(buf);
+ 	if (bufptr==0) return 0;
+ 	
+-	if ((unsigned)mp4ff_read_data(src,(char*)bufptr + oldsize,bytes)!=bytes)
++	if ((unsigned)mp4ff_read_data(src,(uint8_t*)bufptr + oldsize,bytes)!=bytes)
+ 	{
+ 		membuffer_set_error(buf);
+ 		return 0;
+@@ -398,7 +398,7 @@
+ 	uint64_t atom_offset = base;
+ 	for(;;)
+ 	{
+-		char atom_name[4];
++		uint8_t atom_name[4];
+ 		uint32_t atom_size;
+ 
+ 		mp4ff_set_position(f,atom_offset);
+@@ -618,7 +618,7 @@
+     /* copy moov atom to end of the file */
+     if (ff->last_atom != ATOM_MOOV)
+     {
+-        char *free_data = "free";
++        uint8_t *free_data = (uint8_t*)"free";
+ 
+         /* rename old moov to free */
+         mp4ff_set_position(ff, ff->moov_offset + 4);
+@@ -626,14 +626,14 @@
+ 	
+         mp4ff_set_position(ff, ff->file_size);
+ 		mp4ff_write_int32(ff,new_moov_size + 8);
+-		mp4ff_write_data(ff,"moov",4);
++		mp4ff_write_data(ff,(uint8_t*)"moov",4);
+ 		mp4ff_write_data(ff, new_moov_data, new_moov_size);
+     }
+ 	else
+ 	{
+         mp4ff_set_position(ff, ff->moov_offset);
+ 		mp4ff_write_int32(ff,new_moov_size + 8);
+-		mp4ff_write_data(ff,"moov",4);
++		mp4ff_write_data(ff,(uint8_t*)"moov",4);
+ 		mp4ff_write_data(ff, new_moov_data, new_moov_size);
+ 	}
+ 
+diff -ru faad2.orig/common/mp4ff/mp4util.c faad2/common/mp4ff/mp4util.c
+--- faad2.orig/common/mp4ff/mp4util.c	2004-01-11 16:52:19.000000000 +0100
++++ faad2/common/mp4ff/mp4util.c	2006-03-05 11:48:18.000000000 +0100
+@@ -28,7 +28,7 @@
+ #include "mp4ffint.h"
+ #include <stdlib.h>
+ 
+-int32_t mp4ff_read_data(mp4ff_t *f, int8_t *data, uint32_t size)
++int32_t mp4ff_read_data(mp4ff_t *f, uint8_t *data, uint32_t size)
+ {
+     int32_t result = 1;
+ 
+@@ -44,7 +44,7 @@
+ 	return f->stream->truncate(f->stream->user_data);
+ }
+ 
+-int32_t mp4ff_write_data(mp4ff_t *f, int8_t *data, uint32_t size)
++int32_t mp4ff_write_data(mp4ff_t *f, uint8_t *data, uint32_t size)
+ {
+     int32_t result = 1;
+ 
+@@ -105,13 +105,13 @@
+ {
+     uint32_t result;
+     uint32_t a, b, c, d;
+-    int8_t data[4];
++    uint8_t data[4];
+     
+     mp4ff_read_data(f, data, 4);
+-    a = (uint8_t)data[0];
+-    b = (uint8_t)data[1];
+-    c = (uint8_t)data[2];
+-    d = (uint8_t)data[3];
++    a = data[0];
++    b = data[1];
++    c = data[2];
++    d = data[3];
+ 
+     result = (a<<24) | (b<<16) | (c<<8) | d;
+     return (uint32_t)result;
+@@ -121,12 +121,12 @@
+ {
+     uint32_t result;
+     uint32_t a, b, c;
+-    int8_t data[4];
++    uint8_t data[4];
+     
+     mp4ff_read_data(f, data, 3);
+-    a = (uint8_t)data[0];
+-    b = (uint8_t)data[1];
+-    c = (uint8_t)data[2];
++    a = data[0];
++    b = data[1];
++    c = data[2];
+ 
+     result = (a<<16) | (b<<8) | c;
+     return (uint32_t)result;
+@@ -136,11 +136,11 @@
+ {
+     uint32_t result;
+     uint32_t a, b;
+-    int8_t data[2];
++    uint8_t data[2];
+     
+     mp4ff_read_data(f, data, 2);
+-    a = (uint8_t)data[0];
+-    b = (uint8_t)data[1];
++    a = data[0];
++    b = data[1];
+ 
+     result = (a<<8) | b;
+     return (uint16_t)result;
+@@ -151,7 +151,7 @@
+ 	char * str = (char*)malloc(length + 1);
+ 	if (str!=0)
+ 	{
+-		if ((uint32_t)mp4ff_read_data(f,str,length)!=length)
++		if ((uint32_t)mp4ff_read_data(f,(uint8_t*)str,length)!=length)
+ 		{
+ 			free(str);
+ 			str = 0;
+diff -ru faad2.orig/common/mp4v2/mp4meta.cpp faad2/common/mp4v2/mp4meta.cpp
+--- faad2.orig/common/mp4v2/mp4meta.cpp	2003-08-03 14:17:20.000000000 +0200
++++ faad2/common/mp4v2/mp4meta.cpp	2006-03-05 11:48:18.000000000 +0100
+@@ -830,7 +830,6 @@
+     MP4BytesProperty *pMetadataProperty = NULL;
+     char s[256];
+     int i = 0;
+-    bool nameExists = false;
+ 
+     while (1)
+     {
+diff -ru faad2.orig/common/mp4v2/rtphint.h faad2/common/mp4v2/rtphint.h
+--- faad2.orig/common/mp4v2/rtphint.h	2003-06-29 23:41:00.000000000 +0200
++++ faad2/common/mp4v2/rtphint.h	2006-03-05 11:48:18.000000000 +0100
+@@ -35,8 +35,8 @@
+ 		return m_pPacket;
+ 	}
+ 
+-	virtual u_int16_t GetDataSize() = NULL;
+-	virtual void GetData(u_int8_t* pDest) = NULL;
++	virtual u_int16_t GetDataSize() = 0;
++	virtual void GetData(u_int8_t* pDest) = 0;
+ 
+ 	MP4Track* FindTrackFromRefIndex(u_int8_t refIndex);
+ 
+@@ -210,7 +210,7 @@
+ 
+ 	MP4RtpPacket* GetCurrentPacket() {
+ 		if (m_rtpPackets.Size() == 0) {
+-			return NULL;
++			return 0;
+ 		}
+ 		return m_rtpPackets[m_rtpPackets.Size() - 1];
+ 	}
+@@ -250,10 +250,10 @@
+ 	}
+ 
+ 	void GetPayload(
+-		char** ppPayloadName = NULL,
+-		u_int8_t* pPayloadNumber = NULL,
+-		u_int16_t* pMaxPayloadSize = NULL,
+-		char **ppEncodingParams = NULL);
++		char** ppPayloadName = 0,
++		u_int8_t* pPayloadNumber = 0,
++		u_int16_t* pMaxPayloadSize = 0,
++		char **ppEncodingParams = 0);
+ 
+ 	void SetPayload(
+ 		const char* payloadName,
+@@ -265,7 +265,7 @@
+ 
+ 	void ReadHint(
+ 		MP4SampleId hintSampleId,
+-		u_int16_t* pNumPackets = NULL);
++		u_int16_t* pNumPackets = 0);
+ 
+ 	u_int16_t GetHintNumberOfPackets();
+ 
+diff -ru faad2.orig/frontend/main.c faad2/frontend/main.c
+--- faad2.orig/frontend/main.c	2004-01-06 12:59:47.000000000 +0100
++++ faad2/frontend/main.c	2006-03-05 11:48:18.000000000 +0100
+@@ -36,6 +36,7 @@
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <getopt.h>
+ 
+ #include <faad.h>
+@@ -377,8 +378,8 @@
+                   float *song_length)
+ {
+     int tagsize;
+-    unsigned long samplerate;
+-    unsigned char channels;
++    uint32_t samplerate;
++    uint8_t channels;
+     void *sample_buffer;
+ 
+     audio_file *aufile;
+@@ -656,7 +657,7 @@
+     for (i = 0; i < numTracks; i++)
+     {
+         unsigned char *buff = NULL;
+-        int buff_size = 0;
++        uint32_t buff_size = 0;
+         mp4AudioSpecificConfig mp4ASC;
+ 
+         mp4ff_get_decoder_config(infile, i, &buff, &buff_size);
+@@ -687,8 +688,8 @@
+                   int infoOnly, int adts_out, float *song_length)
+ {
+     int track;
+-    unsigned long samplerate;
+-    unsigned char channels;
++    uint32_t samplerate;
++    uint8_t channels;
+     void *sample_buffer;
+ 
+     mp4ff_t *infile;
+@@ -707,7 +708,7 @@
+     mp4AudioSpecificConfig mp4ASC;
+ 
+     unsigned char *buffer;
+-    int buffer_size;
++    uint32_t buffer_size;
+ 
+     char percents[200];
+     int percent, old_percent = -1;
+diff -ru faad2.orig/libfaad/decoder.c faad2/libfaad/decoder.c
+--- faad2.orig/libfaad/decoder.c	2004-02-04 21:07:24.000000000 +0100
++++ faad2/libfaad/decoder.c	2006-03-05 11:48:18.000000000 +0100
+@@ -50,7 +50,7 @@
+ uint16_t dbg_count;
+ #endif
+ 
+-int8_t* FAADAPI faacDecGetErrorMessage(uint8_t errcode)
++char* FAADAPI faacDecGetErrorMessage(uint8_t errcode)
+ {
+     if (errcode >= NUM_ERROR_MESSAGES)
+         return NULL;
+diff -ru faad2.orig/libfaad/decoder.h faad2/libfaad/decoder.h
+--- faad2.orig/libfaad/decoder.h	2004-01-05 15:05:11.000000000 +0100
++++ faad2/libfaad/decoder.h	2006-03-05 11:48:18.000000000 +0100
+@@ -76,7 +76,7 @@
+ #define LFE_CHANNEL          (9)
+ #define UNKNOWN_CHANNEL      (0)
+ 
+-int8_t* FAADAPI faacDecGetErrorMessage(uint8_t errcode);
++char* FAADAPI faacDecGetErrorMessage(uint8_t errcode);
+ 
+ uint32_t FAADAPI faacDecGetCapabilities(void);
+ 
+diff -ru faad2.orig/libfaad/error.c faad2/libfaad/error.c
+--- faad2.orig/libfaad/error.c	2004-01-28 20:17:25.000000000 +0100
++++ faad2/libfaad/error.c	2006-03-05 11:48:18.000000000 +0100
+@@ -28,7 +28,7 @@
+ #include "common.h"
+ #include "error.h"
+ 
+-int8_t *err_msg[] = {
++char *err_msg[] = {
+     "No error",
+     "Gain control not yet implemented",
+     "Pulse coding not allowed in short blocks",
+diff -ru faad2.orig/libfaad/error.h faad2/libfaad/error.h
+--- faad2.orig/libfaad/error.h	2004-01-28 20:17:25.000000000 +0100
++++ faad2/libfaad/error.h	2006-03-05 11:48:18.000000000 +0100
+@@ -33,7 +33,7 @@
+ #endif
+ 
+ #define NUM_ERROR_MESSAGES 26
+-extern int8_t *err_msg[];
++extern char *err_msg[];
+ 
+ #ifdef __cplusplus
+ }
diff --git a/extra/faad2/faad2-2.6.1-abi_has_changed.patch b/extra/faad2/faad2-2.6.1-abi_has_changed.patch
new file mode 100644
index 000000000..654d61355
--- /dev/null
+++ b/extra/faad2/faad2-2.6.1-abi_has_changed.patch
@@ -0,0 +1,15 @@
+Index: faad2/libfaad/Makefile.am
+===================================================================
+--- faad2.orig/libfaad/Makefile.am
++++ faad2/libfaad/Makefile.am
+@@ -3,7 +3,8 @@ lib_LTLIBRARIES = libfaad.la
+ include_HEADERS = $(top_srcdir)/include/faad.h \
+                   $(top_srcdir)/include/neaacdec.h
+ 
+-libfaad_la_LDFLAGS = -lm
++libfaad_la_LDFLAGS = -version-info 1:0:0
++libfaad_la_LIBADD = -lm
+ 
+ libfaad_la_SOURCES = bits.c cfft.c decoder.c drc.c \
+ drm_dec.c error.c filtbank.c \
+
diff --git a/extra/faad2/faad2-2.6.1-broken-pipe.patch b/extra/faad2/faad2-2.6.1-broken-pipe.patch
new file mode 100644
index 000000000..0b356c92d
--- /dev/null
+++ b/extra/faad2/faad2-2.6.1-broken-pipe.patch
@@ -0,0 +1,23 @@
+--- faad2/frontend/main.c~	2007-11-01 06:33:29.000000000 -0600
++++ faad2/frontend/main.c	2008-01-03 18:05:10.000000000 -0700
+@@ -640,7 +640,8 @@
+ 
+         if ((frameInfo.error == 0) && (frameInfo.samples > 0) && (!adts_out))
+         {
+-            write_audio_file(aufile, sample_buffer, frameInfo.samples, 0);
++            if (write_audio_file(aufile, sample_buffer, frameInfo.samples, 0) == 0)
++                break;
+         }
+ 
+         /* fill buffer */
+@@ -976,7 +977,8 @@
+ 
+         if ((frameInfo.error == 0) && (sample_count > 0) && (!adts_out))
+         {
+-            write_audio_file(aufile, sample_buffer, sample_count, delay);
++            if (write_audio_file(aufile, sample_buffer, sample_count, delay) == 0)
++                break;
+         }
+ 
+         if (frameInfo.error > 0)
+
diff --git a/extra/faad2/faad2-2.6.1-implicitdeclar.patch b/extra/faad2/faad2-2.6.1-implicitdeclar.patch
new file mode 100644
index 000000000..bb3abf1a6
--- /dev/null
+++ b/extra/faad2/faad2-2.6.1-implicitdeclar.patch
@@ -0,0 +1,12 @@
+diff -aur faad2-orig/frontend/main.c faad2/frontend/main.c
+--- faad2-orig/frontend/main.c	2007-11-01 08:33:29.000000000 -0400
++++ faad2/frontend/main.c	2008-06-21 19:33:08.000000000 -0400
+@@ -41,6 +41,7 @@
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <getopt.h>
++#include <string.h>
+ 
+ #include <neaacdec.h>
+ #include <mp4ff.h>
+
diff --git a/extra/faad2/faad2-2.6.1-libtool22.patch b/extra/faad2/faad2-2.6.1-libtool22.patch
new file mode 100644
index 000000000..79bbce0c0
--- /dev/null
+++ b/extra/faad2/faad2-2.6.1-libtool22.patch
@@ -0,0 +1,14 @@
+Index: faad2/configure.in
+===================================================================
+--- faad2.orig/configure.in
++++ faad2/configure.in
+@@ -18,7 +18,7 @@ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_CPP
+ dnl disable for mpeg4ip plugin
+-dnl AC_PROG_CXX
++AC_PROG_CXX
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+
-- 
cgit v1.2.3-70-g09d2