aboutsummaryrefslogtreecommitdiff
path: root/libs/libmpeg2
diff options
context:
space:
mode:
Diffstat (limited to 'libs/libmpeg2')
-rw-r--r--libs/libmpeg2/Makefile60
-rw-r--r--libs/libmpeg2/patches/101-ppc_no_altivec.patch66
-rw-r--r--libs/libmpeg2/patches/102-arm_data_preload_check.patch19
3 files changed, 145 insertions, 0 deletions
diff --git a/libs/libmpeg2/Makefile b/libs/libmpeg2/Makefile
new file mode 100644
index 000000000..9d3c05223
--- /dev/null
+++ b/libs/libmpeg2/Makefile
@@ -0,0 +1,60 @@
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libmpeg2
+PKG_VERSION:=0.5.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=libmpeg2-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://libmpeg2.sourceforge.net/files/
+PKG_MD5SUM:=0f92c7454e58379b4a5a378485bbd8ef
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libmpeg2
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=MPEG-1 & -2 decoding library
+ URL:=http://libmpeg2.sourceforge.net/
+ MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+endef
+
+define Package/libmpeg2/decription
+ Libmpeg2 is a library for decoding MPEG-1 and MPEG-2 video streams
+endef
+
+CONFIGURE_ARGS += \
+ --disable-sdl \
+ --without-x \
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/include/mpeg2dec \
+ $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/libmpeg2{,convert}.{a,so*} \
+ $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(INSTALL_DATA) \
+ $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libmpeg2{,convert}.pc \
+ $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libmpeg2/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) \
+ $(PKG_INSTALL_DIR)/usr/lib/libmpeg2{,convert}.so.* \
+ $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libmpeg2))
diff --git a/libs/libmpeg2/patches/101-ppc_no_altivec.patch b/libs/libmpeg2/patches/101-ppc_no_altivec.patch
new file mode 100644
index 000000000..49251a098
--- /dev/null
+++ b/libs/libmpeg2/patches/101-ppc_no_altivec.patch
@@ -0,0 +1,66 @@
+--- a/libmpeg2/motion_comp_altivec.c
++++ b/libmpeg2/motion_comp_altivec.c
+@@ -25,6 +25,8 @@
+
+ #ifdef ARCH_PPC
+
++#ifdef __I_WANT_ALTIVEC__
++
+ #ifdef HAVE_ALTIVEC_H
+ #include <altivec.h>
+ #endif
+@@ -1007,4 +1009,6 @@ static void MC_avg_xy_8_altivec (uint8_t
+
+ MPEG2_MC_EXTERN (altivec)
+
++#endif /* __I_WANT_ALTIVEC__ */
++
+ #endif
+--- a/libmpeg2/idct_altivec.c
++++ b/libmpeg2/idct_altivec.c
+@@ -25,6 +25,8 @@
+
+ #ifdef ARCH_PPC
+
++#ifdef __I_WANT_ALTIVEC__
++
+ #ifdef HAVE_ALTIVEC_H
+ #include <altivec.h>
+ #endif
+@@ -283,4 +285,6 @@ void mpeg2_idct_altivec_init (void)
+ }
+ }
+
++#endif /* __I_WANT_ALTIVEC__ */
++
+ #endif
+--- a/libmpeg2/idct.c
++++ b/libmpeg2/idct.c
+@@ -251,11 +251,13 @@ void mpeg2_idct_init (uint32_t accel)
+ } else
+ #endif
+ #ifdef ARCH_PPC
++#ifdef __I_WANT_ALTIVEC__
+ if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
+ mpeg2_idct_copy = mpeg2_idct_copy_altivec;
+ mpeg2_idct_add = mpeg2_idct_add_altivec;
+ mpeg2_idct_altivec_init ();
+ } else
++#endif /* __I_WANT_ALTIVEC__ */
+ #endif
+ #ifdef ARCH_ALPHA
+ if (accel & MPEG2_ACCEL_ALPHA_MVI) {
+--- a/libmpeg2/motion_comp.c
++++ b/libmpeg2/motion_comp.c
+@@ -43,9 +43,11 @@ void mpeg2_mc_init (uint32_t accel)
+ else
+ #endif
+ #ifdef ARCH_PPC
++#ifdef __I_WANT_ALTIVEC__
+ if (accel & MPEG2_ACCEL_PPC_ALTIVEC)
+ mpeg2_mc = mpeg2_mc_altivec;
+ else
++#endif /* __I_WANT_ALTIVEC__ */
+ #endif
+ #ifdef ARCH_ALPHA
+ if (accel & MPEG2_ACCEL_ALPHA)
diff --git a/libs/libmpeg2/patches/102-arm_data_preload_check.patch b/libs/libmpeg2/patches/102-arm_data_preload_check.patch
new file mode 100644
index 000000000..86793fcd7
--- /dev/null
+++ b/libs/libmpeg2/patches/102-arm_data_preload_check.patch
@@ -0,0 +1,19 @@
+diff -urN libmpeg2-0.5.1/libmpeg2/motion_comp_arm_s.S libmpeg2-0.5.1.new/libmpeg2/motion_comp_arm_s.S
+--- libmpeg2-0.5.1/libmpeg2/motion_comp_arm_s.S 2008-07-09 21:16:05.000000000 +0200
++++ libmpeg2-0.5.1.new/libmpeg2/motion_comp_arm_s.S 2012-07-30 15:22:58.664964215 +0200
+@@ -19,6 +19,15 @@
+ @ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
++@ Data preload is supported only by ARM V5TE and above
++
++#if (defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
++ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
++ || defined (__ARM_ARCH_4T__) || defined (__ARM_ARCH_5__) \
++ || defined (__ARM_ARCH_5T__))
++.macro pld reg
++.endm
++#endif
+ .text
+
+ @ ----------------------------------------------------------------