summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recipes/libxine/files/configure-1.0.patch177
-rw-r--r--recipes/libxine/files/cpu-1.0.patch112
-rw-r--r--recipes/libxine/files/libxine-cut-memusage.patch71
-rw-r--r--recipes/libxine/files/libxine-ffmpeg-enable-arm.patch20
-rw-r--r--recipes/libxine/files/libxine-gcc4.patch138
-rw-r--r--recipes/libxine/files/libxine-libavcodec.patch926
-rw-r--r--recipes/libxine/files/libxine-libvorbis.patch39
-rw-r--r--recipes/libxine/files/libxine-tremor-autoconf.patch16
-rw-r--r--recipes/libxine/files/mpegvideo-static-inlinine.patch16
-rw-r--r--recipes/libxine/libxine-1.1.0/configure.patch244
-rw-r--r--recipes/libxine/libxine-1.1.0/cpuid.patch16
-rw-r--r--recipes/libxine/libxine-1.1.0/dont-have-xv.patch16
-rw-r--r--recipes/libxine/libxine-1.1.0/fix-syntax-xine-vorbis-decoder.patch11
-rw-r--r--recipes/libxine/libxine-1.1.0/gcc41.patch13
-rw-r--r--recipes/libxine/libxine-1.1.0/libxine-arm-configure.patch18
-rw-r--r--recipes/libxine/libxine-1.1.0/libxine-cut-memusage.patch63
-rw-r--r--recipes/libxine/libxine-1.1.0/libxine-ffmpeg-enable-arm.patch20
-rw-r--r--recipes/libxine/libxine-1.1.0/libxine-tremor-autoconf.patch16
-rw-r--r--recipes/libxine/libxine-1.1.0/mpegvideo-static-inlinine.patch16
-rw-r--r--recipes/libxine/libxine-1.1.0/no-caca.patch19
-rw-r--r--recipes/libxine/libxine-1.1.0/tremor.patch63
-rw-r--r--recipes/libxine/libxine-1.1.16/iconv.patch12
-rw-r--r--recipes/libxine/libxine-1.1.16/libavcodec.patch26
-rw-r--r--recipes/libxine/libxine-1.1.16/libpostproc.patch34
-rw-r--r--recipes/libxine/libxine-1.1.16/libxine-arm-configure.patch18
-rw-r--r--recipes/libxine/libxine-fb/configure-1.0.patch187
-rw-r--r--recipes/libxine/libxine-fb/demuxogg.patch26
-rw-r--r--recipes/libxine/libxine-fb/fix-syntax.patch16
-rw-r--r--recipes/libxine/libxine-fb/libxine-arm-configure.patch18
-rw-r--r--recipes/libxine/libxine-fb/no-caca.patch16
-rw-r--r--recipes/libxine/libxine-fb_1.0.bb98
-rw-r--r--recipes/libxine/libxine-x11-1.0/dont-have-xv.patch16
-rw-r--r--recipes/libxine/libxine-x11-1.0/fix-syntax-xine-vorbis-decoder.patch11
-rw-r--r--recipes/libxine/libxine-x11-1.0/no-caca-no-aalib.patch24
-rw-r--r--recipes/libxine/libxine-x11-1.0/restore-esd.patch15
-rw-r--r--recipes/libxine/libxine-x11_1.0.bb100
-rw-r--r--recipes/libxine/libxine.inc65
-rw-r--r--recipes/libxine/libxine_1.1.0.bb107
-rw-r--r--recipes/libxine/libxine_1.1.16.bb39
39 files changed, 2664 insertions, 194 deletions
diff --git a/recipes/libxine/files/configure-1.0.patch b/recipes/libxine/files/configure-1.0.patch
new file mode 100644
index 0000000000..c25d41988d
--- /dev/null
+++ b/recipes/libxine/files/configure-1.0.patch
@@ -0,0 +1,177 @@
+--- xine-lib-1-rc6a/configure.ac.orig 2004-09-16 22:28:33.762843408 -0400
++++ xine-lib-1-rc6a/configure.ac 2004-09-16 22:29:00.969707336 -0400
+@@ -622,7 +622,7 @@
+ dnl ---------------------------------------------
+
+ AM_PATH_AALIB(1.4,, AC_MSG_RESULT([*** All of AALIB dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_AA, test x$no_aalib != "xyes")
++AM_CONDITIONAL(HAVE_AA, [test x"$enable_aalib" = "xyes" && test x$no_aalib != "xyes"])
+
+
+ dnl ---------------------------------------------
+@@ -735,10 +735,7 @@
+ dnl check for SDL
+ dnl ---------------------------------------------
+
+-AM_PATH_SDL(1.1.5,
+- AC_DEFINE(HAVE_SDL,1,[Define this if you have SDL library installed]),
+- [])
+-AM_CONDITIONAL(HAVE_SDL, [test x"$no_sdl" != x"yes"])
++AM_CONDITIONAL(HAVE_SDL, 0)
+
+
+ dnl ---------------------------------------------
+@@ -868,61 +865,29 @@
+ dnl Ogg/Theora libs.
+ dnl ---------------------------------------------
+
+-AM_PATH_OGG(
+- [ AM_PATH_THEORA(AC_DEFINE(HAVE_THEORA,1,[Define this if you have theora]),
+- AC_MSG_RESULT([*** All OGG/THEORA dependent parts will be disabled ***]))
+- ],
+- AC_MSG_RESULT([*** All of OGG/Theora dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_THEORA, [test x"$no_ogg" != "xyes" -a x"$no_theora" != "xyes"])
++AM_CONDITIONAL(HAVE_THEORA, 0)
+
+
+ dnl ---------------------------------------------
+ dnl Ogg/Speex libs.
+ dnl ---------------------------------------------
+
+-PKG_CHECK_MODULES(SPEEX, speex, no_speex="no", no_speex="yes")
+-
+-if test "x$no_speex" = "xyes" ; then
+- AM_PATH_OGG([ AM_PATH_SPEEX(no_speex="no")])
+-fi
+-
+-if test "x$no_speex" = "xyes" ; then
+- AC_MSG_RESULT([*** All OGG/SPEEX dependent parts will be disabled ***])
+-else
+- AC_DEFINE(HAVE_SPEEX,1,[Define this if you have speex])
+-
+- dnl Test whether Speex headers are eg. <speex.h> or <speex/speex.h>
+- dnl Speex headers were moved in mid-2004; 1.0.x has backwards compatible headers, 1.1.x does not
+- AC_CHECK_HEADER([speex/speex.h],
+- AC_DEFINE(HAVE_SPEEX_SUBDIR, [1], [Define to 1 if speex headers are eg. <speex/speex.h>])
+- )
+-
+- AC_SUBST(SPEEX_CFLAGS)
+- AC_SUBST(SPEEX_LIBS)
+-fi
+-AM_CONDITIONAL(HAVE_SPEEX, [test x"$no_ogg" != "xyes" -a x"$no_speex" != "xyes"])
++AM_CONDITIONAL(HAVE_SPEEX, 0)
+
+
+ dnl ---------------------------------------------
+ dnl check for libFLAC
+ dnl ---------------------------------------------
+
+-AM_PATH_LIBFLAC([],
+- AC_MSG_RESULT([*** All FLAC dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_FLAC, [test x"$no_libFLAC" != "xyes"])
++AM_CONDITIONAL(HAVE_FLAC, 0)
+
+
+ dnl ---------------------------------------------
+ dnl MNG libs.
+ dnl ---------------------------------------------
+
+-AC_CHECK_LIB(mng, mng_initialize,
+- [ AC_CHECK_HEADER(libmng.h,
+- [ have_libmng=yes
+- MNG_LIBS="-lmng" ],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))],
+- AC_MSG_RESULT([*** All libmng dependent parts will be disabled ***]))
+-AM_CONDITIONAL(HAVE_LIBMNG, test x"$have_libmng" = "xyes")
++MNG_LIBS=""
++AM_CONDITIONAL(HAVE_LIBMNG, 0)
+ AC_SUBST(MNG_LIBS)
+
+
+@@ -952,7 +917,7 @@
+ dnl freetype2 lib.
+ dnl ---------------------------------------------
+
+-AM_PATH_FREETYPE2()
++AM_CONDITIONAL(HAVE_FT2, 0)
+
+
+ dnl ---------------------------------------------
+@@ -995,37 +960,21 @@
+ dnl ESD support
+ dnl ---------------------------------------------
+
+-AM_PATH_ESD(0.2.8,
+- AC_DEFINE(HAVE_ESD,1,[Define this if you have ESD (libesd) installed]),
+- AC_MSG_RESULT(*** All of ESD dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ESD, test x"$no_esd" != "xyes")
++AM_CONDITIONAL(HAVE_ESD, 0)
+
+
+ dnl ---------------------------------------------
+ dnl ARTS support
+ dnl ---------------------------------------------
+
+-AM_PATH_ARTS(0.9.5,
+- AC_DEFINE(HAVE_ARTS,1,[Define this if you have ARTS (libartsc) installed]),
+- AC_MSG_RESULT(*** All of ARTS dependent parts will be disabled ***))
+-AM_CONDITIONAL(HAVE_ARTS, test x"$no_arts" != "xyes")
++AM_CONDITIONAL(HAVE_ARTS, 0)
+
+
+ dnl ---------------------------------------------
+ dnl gnome-vfs support
+ dnl ---------------------------------------------
+
+-PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0,
+- no_gnome_vfs=no,
+- no_gnome_vfs=yes)
+-AC_SUBST(GNOME_VFS_CFLAGS)
+-AC_SUBST(GNOME_VFS_LIBS)
+-if test x"$no_gnome_vfs" != "xyes"; then
+-AC_DEFINE(HAVE_GNOME_VFS,1,[Define this if you have gnome-vfs installed])
+-else
+-AC_MSG_RESULT(*** All of the gnome-vfs dependent parts will be disabled ***)
+-fi
+-AM_CONDITIONAL(HAVE_GNOME_VFS, test x"$no_gnome_vfs" != "xyes")
++AM_CONDITIONAL(HAVE_GNOME_VFS, 0)
+
+
+ dnl ---------------------------------------------
+@@ -1188,35 +1137,7 @@
+ ],ISOC99_PRAGMA=no)
+ AC_MSG_RESULT($ISOC99_PRAGMA)
+
+- dnl bitfield order
+- AC_MSG_CHECKING(bitfield ordering in structs)
+- AC_TRY_RUN([
+-int
+- main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0x4b; }
+-], bf_lsbf=1, AC_TRY_RUN([
+-int
+-main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0xa5; }
+-], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
+- if test "x$bf_lsbf" = "x1"; then
+- AC_MSG_RESULT(LSBF)
+- AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+- else
+- AC_MSG_RESULT(MSBF)
+- fi
++ AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+
+ AC_HAVE_HEADERS( errno.h fcntl.h \
+ stdbool.h stdlib.h stdint.h stdio.h string.h \
diff --git a/recipes/libxine/files/cpu-1.0.patch b/recipes/libxine/files/cpu-1.0.patch
new file mode 100644
index 0000000000..a7ccdbbfa9
--- /dev/null
+++ b/recipes/libxine/files/cpu-1.0.patch
@@ -0,0 +1,112 @@
+--- xine-lib-1-rc6a/src/post/goom/xmmx.c.orig 2004-09-16 21:53:34.040049792 -0400
++++ xine-lib-1-rc6a/src/post/goom/xmmx.c 2004-09-16 21:59:24.407785800 -0400
+@@ -112,23 +112,23 @@
+ * post : mm3 & mm4 : coefs for this position
+ * mm1 : X vector [0|X]
+ *
+- * modif : eax,ebx
++ * modif : eax,ecx
+ */
+ __asm__ __volatile__ (
+- "movd %%mm0,%%ebx\n"
++ "movd %%mm0,%%ecx\n"
+ "movq %%mm0,%%mm1\n"
+
+- "andl $15,%%ebx\n"
++ "andl $15,%%ecx\n"
+ "psrlq $32,%%mm1\n"
+
+- "shll $6,%%ebx\n"
++ "shll $6,%%ecx\n"
+ "movd %%mm1,%%eax\n"
+
+- "addl %0,%%ebx\n"
++ "addl %0,%%ecx\n"
+ "andl $15,%%eax\n"
+
+- "movd (%%ebx,%%eax,4),%%mm3\n"
+- ::"g"(precalCoef):"eax","ebx");
++ "movd (%%ecx,%%eax,4),%%mm3\n"
++ ::"g"(precalCoef):"eax","ecx");
+
+ /*
+ * extraction des coefficients...
+@@ -158,7 +158,7 @@
+ * post : mm0 : expix1[position]
+ * mm2 : expix1[position+largeur]
+ *
+- * modif : eax,ebx
++ * modif : eax,ecx
+ */
+ psrld_i2r (PERTEDEC,mm0);
+ psrld_i2r (PERTEDEC,mm1);
+@@ -167,23 +167,23 @@
+ /*^*/ "movq %%mm3,%%mm5\n" /*^*/
+
+ "mull %1\n"
+- "movd %%mm0,%%ebx\n"
++ "movd %%mm0,%%ecx\n"
+ /*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/
+
+- "addl %%ebx,%%eax\n"
++ "addl %%ecx,%%eax\n"
+ /*^*/ "movq %%mm3,%%mm4\n" /*^*/
+ /*^*/ "movq %%mm3,%%mm5\n" /*^*/
+
+- "movl %0,%%ebx\n"
++ "movl %0,%%ecx\n"
+ /*^*/ "punpcklbw %%mm5,%%mm3\n" /*^*/
+
+- "movq (%%ebx,%%eax,4),%%mm0\n"
++ "movq (%%ecx,%%eax,4),%%mm0\n"
+ /*^*/ "punpckhbw %%mm5,%%mm4\n" /*^*/
+
+ "addl %1,%%eax\n"
+- "movq (%%ebx,%%eax,4),%%mm2\n"
++ "movq (%%ecx,%%eax,4),%%mm2\n"
+
+- : : "X"(expix1), "X"(prevX):"eax","ebx"
++ : : "X"(expix1), "X"(prevX):"eax","ecx"
+ );
+
+ /*
+--- xine-lib-1-rc7/src/post/goom/mmx.h 2004-09-12 05:17:26.000000000 -0700
++++ xine-lib-1-rc7.new/src/post/goom/mmx.h 2004-11-09 16:08:17.777667856 -0700
+@@ -71,13 +71,15 @@
+ */
+ register int rval = 0;
+
++ /* Maybe if I yell it will help: DON'T CLOBBER EBX! */
++
+ __asm__ __volatile__ (
+ /* See if CPUID instruction is supported ... */
+ /* ... Get copies of EFLAGS into eax and ecx */
+ "pushf\n\t"
+ "popl %%eax\n\t"
+ "movl %%eax, %%ecx\n\t"
+-
++
+ /* ... Toggle the ID bit in one copy and store */
+ /* to the EFLAGS reg */
+ "xorl $0x200000, %%eax\n\t"
+@@ -97,6 +99,8 @@
+ /* Get standard CPUID information, and
+ go to a specific vendor section */
+ "movl $0, %%eax\n\t"
++
++ "pushl %%ebx\n\t"
+ "cpuid\n\t"
+
+ /* Check for Intel */
+@@ -214,9 +218,10 @@
+ "movl $0, %0\n\n\t"
+
+ "Return:\n\t"
++ "popl %%ebx\n\t"
+ : "=X" (rval)
+ : /* no input */
+- : "eax", "ebx", "ecx", "edx"
++ : "eax", "ecx", "edx"
+ );
+
+ /* Return */
diff --git a/recipes/libxine/files/libxine-cut-memusage.patch b/recipes/libxine/files/libxine-cut-memusage.patch
new file mode 100644
index 0000000000..696b479db2
--- /dev/null
+++ b/recipes/libxine/files/libxine-cut-memusage.patch
@@ -0,0 +1,71 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+Index: xine-lib-1.0/src/xine-engine/audio_out.c
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/audio_out.c 2004-12-19 21:24:30.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/audio_out.c 2005-02-16 22:19:25.836765770 +0100
+@@ -95,10 +95,10 @@
+ #include "metronom.h"
+
+
+-#define NUM_AUDIO_BUFFERS 32
+-#define AUDIO_BUF_SIZE 32768
++#define NUM_AUDIO_BUFFERS 16
++#define AUDIO_BUF_SIZE 8192
+
+-#define ZERO_BUF_SIZE 5000
++#define ZERO_BUF_SIZE 2048
+
+ /* By adding gap errors (difference between reported and expected
+ * sound card clock) into metronom's vpts_offset we can use its
+Index: xine-lib-1.0/src/xine-engine/video_decoder.c
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/video_decoder.c 2004-12-16 14:59:06.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/video_decoder.c 2005-02-16 22:20:47.104487350 +0100
+@@ -479,7 +479,7 @@
+
+ num_buffers = stream->xine->config->register_num (stream->xine->config,
+ "engine.buffers.video_num_buffers",
+- 500,
++ 250,
+ _("number of video buffers"),
+ _("The number of video buffers (each is 8k in size) "
+ "xine uses in its internal queue. Higher values "
+@@ -487,7 +487,7 @@
+ "also increased latency and memory consumption."),
+ 20, NULL, NULL);
+
+- stream->video_fifo = _x_fifo_buffer_new (num_buffers, 8192);
++ stream->video_fifo = _x_fifo_buffer_new (num_buffers, 4096);
+ stream->spu_track_map_entries = 0;
+
+ pthread_attr_init(&pth_attrs);
+Index: xine-lib-1.0/src/xine-engine/video_overlay.h
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/video_overlay.h 2004-12-08 19:18:24.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/video_overlay.h 2005-02-16 22:19:25.837765631 +0100
+@@ -36,7 +36,7 @@
+ #define CLUT_Y_CR_CB_INIT(_y,_cr,_cb) { (_cb), (_cr), (_y) }
+ #endif
+
+-#define MAX_OBJECTS 50
++#define MAX_OBJECTS 5
+ #define MAX_EVENTS 50
+ #define MAX_SHOWING 16
+
+Index: xine-lib-1.0/src/xine-engine/audio_decoder.c
+===================================================================
+--- xine-lib-1.0.orig/src/xine-engine/audio_decoder.c 2004-12-16 14:59:06.000000000 +0100
++++ xine-lib-1.0/src/xine-engine/audio_decoder.c 2005-02-16 22:21:42.846730591 +0100
+@@ -462,7 +462,7 @@
+
+ num_buffers = stream->xine->config->register_num (stream->xine->config,
+ "engine.buffers.audio_num_buffers",
+- 230,
++ 100,
+ _("number of audio buffers"),
+ _("The number of audio buffers (each is 8k in size) "
+ "xine uses in its internal queue. Higher values "
diff --git a/recipes/libxine/files/libxine-ffmpeg-enable-arm.patch b/recipes/libxine/files/libxine-ffmpeg-enable-arm.patch
new file mode 100644
index 0000000000..f89d2baa4e
--- /dev/null
+++ b/recipes/libxine/files/libxine-ffmpeg-enable-arm.patch
@@ -0,0 +1,20 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/Makefile.am~libxine-ffmpeg-enable-arm
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/Makefile.am
+@@ -9,9 +9,8 @@
+ libavcodec_armv4l_dummy = libavcodec_armv4l_dummy.c
+ EXTRA_DIST = $(libavcodec_armv4l_src) $(libavcodec_armv4l_dummy)
+
+-#if HAVE_ARMV4L
+-#armv4l_modules = $(libavcodec_armv4l_src)
+-#endif
+-armv4l_modules =
++if HAVE_ARMV4L
++armv4l_modules = $(libavcodec_armv4l_src)
++endif
+
+ libavcodec_armv4l_la_SOURCES = $(armv4l_modules) $(libavcodec_armv4l_dummy)
diff --git a/recipes/libxine/files/libxine-gcc4.patch b/recipes/libxine/files/libxine-gcc4.patch
new file mode 100644
index 0000000000..0a370b9579
--- /dev/null
+++ b/recipes/libxine/files/libxine-gcc4.patch
@@ -0,0 +1,138 @@
+--- xine-lib-1.0.orig/src/xine-engine/post.c 2004-10-17 22:14:30.000000000 +0300
++++ xine-lib-1.0/src/xine-engine/post.c 2006-02-09 22:15:08.000000000 +0200
+@@ -241,7 +241,7 @@
+ if (!*input) return port;
+ (*input)->xine_in.name = "video in";
+ (*input)->xine_in.type = XINE_POST_DATA_VIDEO;
+- (xine_video_port_t *)(*input)->xine_in.data = &port->new_port;
++ (*input)->xine_in.data = &port->new_port;
+ (*input)->post = post;
+ xine_list_append_content(post->input, *input);
+ }
+@@ -251,7 +251,7 @@
+ if (!*output) return port;
+ (*output)->xine_out.name = "video out";
+ (*output)->xine_out.type = XINE_POST_DATA_VIDEO;
+- (xine_video_port_t **)(*output)->xine_out.data = &port->original_port;
++ (*output)->xine_out.data = &port->original_port;
+ (*output)->xine_out.rewire = post_video_rewire;
+ (*output)->post = post;
+ (*output)->user_data = port;
+@@ -718,7 +718,7 @@
+ if (!*input) return port;
+ (*input)->xine_in.name = "audio in";
+ (*input)->xine_in.type = XINE_POST_DATA_AUDIO;
+- (xine_audio_port_t *)(*input)->xine_in.data = &port->new_port;
++ (*input)->xine_in.data = &port->new_port;
+ (*input)->post = post;
+ xine_list_append_content(post->input, *input);
+ }
+@@ -728,7 +728,7 @@
+ if (!*output) return port;
+ (*output)->xine_out.name = "audio out";
+ (*output)->xine_out.type = XINE_POST_DATA_AUDIO;
+- (xine_audio_port_t **)(*output)->xine_out.data = &port->original_port;
++ (*output)->xine_out.data = &port->original_port;
+ (*output)->xine_out.rewire = post_audio_rewire;
+ (*output)->post = post;
+ (*output)->user_data = port;
+--- xine-lib-1.0.orig/src/xine-utils/color.c 2003-12-09 02:02:38.000000000 +0200
++++ xine-lib-1.0/src/xine-utils/color.c 2006-02-09 22:13:36.000000000 +0200
+@@ -495,8 +495,10 @@
+
+ /* process blocks of 4 pixels */
+ for (x=0; x < (width / 4); x++) {
+- n1 = *(((unsigned int *) src1)++);
+- n2 = *(((unsigned int *) src2)++);
++ n1 = *((unsigned int *) src1);
++ src1+=sizeof(unsigned int);
++ n2 = *((unsigned int *) src2);
++ src2+=sizeof(unsigned int);
+ n3 = (n1 & 0xFF00FF00) >> 8;
+ n4 = (n2 & 0xFF00FF00) >> 8;
+ n1 &= 0x00FF00FF;
+--- xine-lib-1.0.orig/src/libffmpeg/libavcodec/avcodec.h 2004-05-30 22:24:19.000000000 +0300
++++ xine-lib-1.0/src/libffmpeg/libavcodec/avcodec.h 2006-02-09 22:33:27.000000000 +0200
+@@ -1639,6 +1639,13 @@
+ #define FF_OPT_MAX_DEPTH 10
+ } AVOption;
+
++#ifdef HAVE_MMX
++extern const struct AVOption avoptions_common[3 + 5];
++#else
++extern const struct AVOption avoptions_common[3];
++#endif
++extern const struct AVOption avoptions_workaround_bug[11];
++
+ /**
+ * Parse option(s) and sets fields in passed structure
+ * @param strct structure where the parsed results will be written
+--- xine-lib-1.0.orig/src/libffmpeg/libavcodec/common.h 2004-05-30 22:24:19.000000000 +0300
++++ xine-lib-1.0/src/libffmpeg/libavcodec/common.h 2006-02-09 22:32:56.000000000 +0200
+@@ -66,13 +66,13 @@
+ #define AVOPTION_SUB(ptr) { .name = NULL, .help = (const char*)ptr }
+ #define AVOPTION_END() AVOPTION_SUB(NULL)
+
+-struct AVOption;
++/*struct AVOption;
+ #ifdef HAVE_MMX
+ extern const struct AVOption avoptions_common[3 + 5];
+ #else
+ extern const struct AVOption avoptions_common[3];
+ #endif
+-extern const struct AVOption avoptions_workaround_bug[11];
++extern const struct AVOption avoptions_workaround_bug[11];*/
+
+ #endif /* HAVE_AV_CONFIG_H */
+
+--- xine-lib-1.0.orig/src/libffmpeg/libavcodec/mpegvideo.h 2004-05-30 22:24:22.000000000 +0300
++++ xine-lib-1.0/src/libffmpeg/libavcodec/mpegvideo.h 2006-02-09 22:35:54.000000000 +0200
+@@ -904,7 +904,7 @@
+ int ff_h263_resync(MpegEncContext *s);
+ int ff_h263_get_gob_height(MpegEncContext *s);
+ int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my);
+-int ff_h263_round_chroma(int x);
++/*int ff_h263_round_chroma(int x);*/
+ void ff_h263_encode_motion(MpegEncContext * s, int val, int f_code);
+ int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);
+
+--- xine-lib-1.0.orig/src/libxineadec/nosefart/nes_apu.c 2004-12-12 08:55:59.000000000 +0200
++++ xine-lib-1.0/src/libxineadec/nosefart/nes_apu.c 2006-02-11 22:42:29.000000000 +0200
+@@ -1012,9 +1012,15 @@
+
+ /* signed 16-bit output, unsigned 8-bit */
+ if (16 == apu->sample_bits)
+- *((int16 *) buffer)++ = (int16) accum;
++ {
++ *((int16 *) buffer) = (int16) accum;
++ buffer=((int16 *)buffer)+1;
++ }
+ else
+- *((uint8 *) buffer)++ = (accum >> 8) ^ 0x80;
++ {
++ *((uint8 *) buffer) = (accum >> 8) ^ 0x80;
++ buffer=((int8 *)buffer)+1;
++ }
+ }
+
+ /* resync cycle counter */
+--- xine-lib-1.0.orig/src/post/audio/stretch.c 2004-10-30 02:11:38.000000000 +0300
++++ xine-lib-1.0/src/post/audio/stretch.c 2006-02-11 22:45:14.000000000 +0200
+@@ -476,7 +476,7 @@
+ memcpy( outbuf->mem, data_out,
+ outbuf->num_frames * this->bytes_per_frame );
+ num_frames_out -= outbuf->num_frames;
+- (uint8_t *)data_out += outbuf->num_frames * this->bytes_per_frame;
++ data_out = (uint8_t *)data_out + outbuf->num_frames * this->bytes_per_frame;
+
+ outbuf->vpts = this->pts;
+ this->pts = 0;
+@@ -587,7 +587,7 @@
+ memcpy( (uint8_t *)this->audiofrag + this->num_frames * this->bytes_per_frame,
+ data_in, frames_to_copy * this->bytes_per_frame );
+
+- (uint8_t *)data_in += frames_to_copy * this->bytes_per_frame;
++ data_in = (uint8_t *)data_in + frames_to_copy * this->bytes_per_frame;
+ this->num_frames += frames_to_copy;
+ buf->num_frames -= frames_to_copy;
+
diff --git a/recipes/libxine/files/libxine-libavcodec.patch b/recipes/libxine/files/libxine-libavcodec.patch
new file mode 100644
index 0000000000..6dde9913c8
--- /dev/null
+++ b/recipes/libxine/files/libxine-libavcodec.patch
@@ -0,0 +1,926 @@
+TO be MERGED!!!
+
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/Makefile.am~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/Makefile.am
+@@ -9,9 +9,14 @@
+ # we need to compile everything in debug mode, including the encoders,
+ # otherwise we get unresolved symbols, because some unsatisfied function calls
+ # are not optimized away with debug optimization
+-AM_CFLAGS = $(LIBFFMPEG_CFLAGS) `test "$(CFLAGS)" = "$(DEBUG_CFLAGS)" && echo -DCONFIG_ENCODERS`
++#AM_CFLAGS = $(LIBFFMPEG_CFLAGS) `test "$(CFLAGS)" = "$(DEBUG_CFLAGS)" && echo -DCONFIG_ENCODERS`
+ ASFLAGS =
+
++if HAVE_ARMV4L
++AM_CFLAGS = -DARCH_ARMV4L $(LIBFFMPEG_CFLAGS)
++else
++AM_CFLAGS = $(LIBFFMPEG_CFLAGS)
++endif
+ noinst_LTLIBRARIES = libavcodec.la
+
+ libavcodec_la_SOURCES = \
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/dsputil.h~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/dsputil.h
+@@ -45,6 +45,7 @@
+ void ff_fdct248_islow (DCTELEM *data);
+
+ void j_rev_dct (DCTELEM *data);
++void j_rev_dct_ARM ( DCTELEM *data );
+
+ void ff_fdct_mmx(DCTELEM *block);
+ void ff_fdct_mmx2(DCTELEM *block);
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/mpegvideo.c~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/mpegvideo.c
+@@ -218,6 +218,25 @@
+ }
+ #endif //CONFIG_ENCODERS
+
++
++#ifdef ARCH_ARMV4L
++
++static void ff_jref_idct_put_armv4l(UINT8 *dest, int line_size, DCTELEM *block)
++{
++// fprintf(stderr, "src/libffmpeg/libavcodec/mpegvideo.c : ff_jref_idct_put_armv4l utilisant l'iDCT ARMv4l en ASM\n");
++ j_rev_dct_ARM (block);
++ ff_put_pixels_clamped(block, dest, line_size);
++}
++static void ff_jref_idct_add_armv4l(UINT8 *dest, int line_size, DCTELEM *block)
++{
++// fprintf(stderr, "src/libffmpeg/libavcodec/mpegvideo.c : ff_jref_idct_add_armv4l utilisant l'iDCT ARMv4l en ASM\n");
++ j_rev_dct_ARM (block);
++ ff_add_pixels_clamped(block, dest, line_size);
++}
++
++#endif
++
++
+ /* init common dct for both encoder and decoder */
+ int DCT_common_init(MpegEncContext *s)
+ {
+@@ -246,7 +265,11 @@
+ MPV_common_init_mmi(s);
+ #endif
+ #ifdef ARCH_ARMV4L
+- MPV_common_init_armv4l(s);
++/* MPV_common_init_armv4l(s); */
++/* Methode bourrine, mais bon, c'est pour pas trop se prendre la tete a tout changer ce soir, a ameliorer plus tard*/
++ s->idct_put= ff_jref_idct_put_armv4l;
++ s->idct_add= ff_jref_idct_add_armv4l;
++ s->idct_permutation_type= FF_NO_IDCT_PERM;
+ #endif
+ #ifdef ARCH_POWERPC
+ MPV_common_init_ppc(s);
+--- xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/jrevdct_arm.S~libxine-libavcodec
++++ xine-lib-1-rc7/src/libffmpeg/libavcodec/armv4l/jrevdct_arm.S
+@@ -1,386 +1,491 @@
+ /*
+- C-like prototype :
+- void j_rev_dct_ARM(DCTBLOCK data)
++ * jrevdct_arm.S
++ * Copyright (C) 2002 Frederic 'dilb' Boulay.
++ * All Rights Reserved.
++ *
++ * Author: Frederic Boulay <dilb@handhelds.org>
++ *
++ * you can redistribute this file and/or modify
++ * it under the terms of the GNU General Public License (version 2)
++ * as published by the Free Software Foundation.
++ *
++ * This file is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ *
++ * The function defined in this file, is derived from the simple_idct function from
++ * the libavcodec library part of the ffmpeg project.
++ */
+
+- With DCTBLOCK being a pointer to an array of 64 'signed shorts'
+
+- Copyright (c) 2001 Lionel Ulmer (lionel.ulmer@free.fr / bbrox@bbrox.org)
+
+- Permission is hereby granted, free of charge, to any person obtaining a copy
+- of this software and associated documentation files (the "Software"), to deal
+- in the Software without restriction, including without limitation the rights
+- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+- copies of the Software, and to permit persons to whom the Software is
+- furnished to do so, subject to the following conditions:
+
+- The above copyright notice and this permission notice shall be included in
+- all copies or substantial portions of the Software.
++/* useful constants for the algorithm, they are save in __constant_ptr__ at the end of the source code.*/
++#define W1 22725
++#define W2 21407
++#define W3 19266
++#define W4 16383
++#define W5 12873
++#define W6 8867
++#define W7 4520
++#define MASK_MSHW 0xFFFF0000
++
++/* offsets of the constants in the vector*/
++#define offW1 0
++#define offW2 4
++#define offW3 8
++#define offW4 12
++#define offW5 16
++#define offW6 20
++#define offW7 24
++#define offMASK_MSHW 28
++
++#define ROW_SHIFT 11
++#define ROW_SHIFT2MSHW (16-11)
++#define COL_SHIFT 20
++#define ROW_SHIFTED_1 1024 /* 1<< (ROW_SHIFT-1)*/
++#define COL_SHIFTED_1 524288 /* 1<< (COL_SHIFT-1)*/
++
+
+- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-
+-*/
+-#define FIX_0_298631336 2446
+-#define FIX_0_541196100 4433
+-#define FIX_0_765366865 6270
+-#define FIX_1_175875602 9633
+-#define FIX_1_501321110 12299
+-#define FIX_2_053119869 16819
+-#define FIX_3_072711026 25172
+-#define FIX_M_0_390180644 -3196
+-#define FIX_M_0_899976223 -7373
+-#define FIX_M_1_847759065 -15137
+-#define FIX_M_1_961570560 -16069
+-#define FIX_M_2_562915447 -20995
+-#define FIX_0xFFFF 0xFFFF
+-
+-#define FIX_0_29