Pārlūkot izejas kodu

add support for VP8 codec

Waldemar Brodkorb 12 gadi atpakaļ
vecāks
revīzija
3d6df54736

+ 19 - 7
package/ffmpeg/Makefile

@@ -21,19 +21,21 @@ PKGSC_FFPLAY:=		multimedia
 PKGSS_FFPLAY:=		libsdl libpthread libffmpeg
 PKGSB_FFPLAY:=		sdl
 PKGSD_FFMPEG:=		ffmpeg video converter
-PKGSD_FFMPEG:=		multimedia
+PKGSC_FFMPEG:=		multimedia
 PKGSD_FFSERVER:=	streaming server
-PKGSD_FFSERVER:=	multimedia
+PKGSC_FFSERVER:=	multimedia
 PKGSD_FFPROBE:=		simple multimedia stream analyzer
-PKGSD_FFPROBE:=		multimedia
+PKGSC_FFPROBE:=		multimedia
+
+PKG_FLAVOURS_LIBFFMPEG:=	WITH_AAC WITH_MP3 WITH_VP8
 
-PKG_FLAVOURS_LIBFFMPEG:=	WITH_AAC WITH_MP3
 PKGFD_WITH_AAC:=	with AAC encoding support
 PKGFS_WITH_AAC:=	libfaac
 PKGFB_WITH_AAC:=	faac
 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_AAC),y)
 PKG_FDEPENDS+=		libfaac
 endif
+
 PKGFD_WITH_MP3:=	with MP3 encoding support
 PKGFS_WITH_MP3:=	libmp3lame
 PKGFB_WITH_MP3:=	lame
@@ -41,14 +43,21 @@ ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
 PKG_FDEPENDS+=		libmp3lame
 endif
 
+PKGFD_WITH_VP8:=	with VP8 encoding support
+PKGFS_WITH_VP8:=	libvpx
+PKGFB_WITH_VP8:=	libvpx
+ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_VP8),y)
+PKG_FDEPENDS+=		libvpx
+endif
+
 DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.bz2
 
 include ${TOPDIR}/mk/package.mk
 
 $(eval $(call PKG_template,LIBFFMPEG,libffmpeg,${PKG_VERSION}-${PKG_RELEASE},${PKG_FDEPENDS},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,FFMPEG,ffmpeg,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFMPEG},${PKGSD_FFMPEG}))
-$(eval $(call PKG_template,FFSERVER,ffserver,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFSERVER},${PKGSD_FFSERVER}))
-$(eval $(call PKG_template,FFPROBE,ffprobe,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFPROBE},${PKGSD_FFPROBE}))
+$(eval $(call PKG_template,FFMPEG,ffmpeg,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFMPEG},${PKGSC_FFMPEG}))
+$(eval $(call PKG_template,FFSERVER,ffserver,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFSERVER},${PKGSC_FFSERVER}))
+$(eval $(call PKG_template,FFPROBE,ffprobe,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_FFPROBE},${PKGSC_FFPROBE}))
 $(eval $(call PKG_template,FFPLAY,ffplay,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_FFPLAY},${PKGSD_FFPLAY},${PKGSC_FFPLAY}))
 
 TARGET_CFLAGS:=         $(filter-out -flto,$(TARGET_CFLAGS))
@@ -96,6 +105,9 @@ endif
 ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
 CONFIGURE_ARGS+=	--enable-libmp3lame
 endif
+ifeq ($(ADK_PACKAGE_LIBFFMPEG_WITH_MP3),y)
+CONFIGURE_ARGS+=	--enable-libvpx
+endif
 
 libffmpeg-install:
 	${INSTALL_DIR} ${IDIR_LIBFFMPEG}/usr/lib

+ 41 - 0
package/libvpx/Makefile

@@ -0,0 +1,41 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=		libvpx
+PKG_VERSION:=		0.9.7
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		bd888cffde8d9c3061c7fd719b0cd4ce
+PKG_DESCR:=		VP8 codec library
+PKG_SECTION:=		libs
+PKG_URL:=		http://www.webmproject.org/about/
+PKG_SITES:=		http://webm.googlecode.com/files/
+
+PKG_SYSTEM_DEPENDS:=	sharp-zaurus
+
+DISTFILES:=             ${PKG_NAME}-v${PKG_VERSION}-p1.tar.bz2
+WRKDIST=		$(WRKDIR)/${PKG_NAME}-v${PKG_VERSION}-p1
+
+include $(TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBVPX,libvpx,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:=		minimal
+ifeq ($(ADK_TARGET_SYSTEM_SHARP_ZAURUS),y)
+CONFIGURE_ARGS+=	--target=armv5te-linux-gcc
+endif
+CONFIGURE_ARGS+=	--prefix=/usr \
+			--disable-install-docs \
+			--disable-install-bins \
+			--enable-install-libs \
+			--disable-examples \
+			--enable-shared
+ALL_TARGET:=
+
+libvpx-install:
+	$(INSTALL_DIR) $(IDIR_LIBVPX)/usr/lib
+	$(CP) $(WRKINST)/usr/lib/libvpx.so* \
+		$(IDIR_LIBVPX)/usr/lib
+
+include ${TOPDIR}/mk/pkg-bottom.mk

+ 24 - 0
package/libvpx/patches/patch-build_make_Makefile

@@ -0,0 +1,24 @@
+--- libvpx-v0.9.7-p1.orig/build/make/Makefile	2011-08-15 23:02:45.000000000 +0200
++++ libvpx-v0.9.7-p1/build/make/Makefile	2011-09-17 18:03:25.467990966 +0200
+@@ -193,8 +193,8 @@ endif
+ define linker_template
+ $(1): $(filter-out -%,$(2))
+ $(1):
+-	$(if $(quiet),@echo    "    [LD] $$@")
+-	$(qexec)$$(LD) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs))
++	$(if $(quiet),@echo    "    [CC] $$@")
++	$(qexec)$$(CC) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs))
+ endef
+ # make-3.80 has a bug with expanding large input strings to the eval function,
+ # which was triggered in some cases by the following component of
+@@ -227,8 +227,8 @@ define so_template
+ #
+ # This needs further abstraction for dealing with non-GNU linkers.
+ $(1):
+-	$(if $(quiet),@echo "    [LD] $$@")
+-	$(qexec)$$(LD) -shared $$(LDFLAGS) \
++	$(if $(quiet),@echo "    [CC] $$@")
++	$(qexec)$$(CC) -shared $$(LDFLAGS) \
+             -Wl,--no-undefined -Wl,-soname,$$(SONAME) \
+             -Wl,--version-script,$$(SO_VERSION_SCRIPT) -o $$@ \
+             $$(filter %.o,$$?) $$(extralibs)

+ 11 - 0
package/libvpx/patches/patch-build_make_configure_sh

@@ -0,0 +1,11 @@
+--- libvpx-v0.9.7-p1.orig/build/make/configure.sh	2011-08-15 23:02:45.000000000 +0200
++++ libvpx-v0.9.7-p1/build/make/configure.sh	2011-09-17 17:48:07.667986440 +0200
+@@ -287,7 +287,7 @@ check_cpp() {
+ check_ld() {
+     log check_ld "$@"
+     check_cc $@ \
+-        && check_cmd ${LD} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs}
++        && check_cmd ${CC} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs}
+ }
+ 
+ check_header(){

+ 15 - 0
package/libvpx/patches/patch-vp8_common_arm_bilinearfilter_arm_c

@@ -0,0 +1,15 @@
+--- libvpx-v0.9.7-p1.orig/vp8/common/arm/bilinearfilter_arm.c	2011-08-15 23:02:45.000000000 +0200
++++ libvpx-v0.9.7-p1/vp8/common/arm/bilinearfilter_arm.c	2011-09-17 18:14:27.977994106 +0200
+@@ -29,10 +29,10 @@ void vp8_filter_block2d_bil_armv6
+     unsigned short FData[36*16]; /* Temp data buffer used in filtering */
+ 
+     /* First filter 1-D horizontally... */
+-    vp8_filter_block2d_bil_first_pass_armv6(src_ptr, FData, src_pitch, Height + 1, Width, HFilter);
++    //vp8_filter_block2d_bil_first_pass_armv6(src_ptr, FData, src_pitch, Height + 1, Width, HFilter);
+ 
+     /* then 1-D vertically... */
+-    vp8_filter_block2d_bil_second_pass_armv6(FData, dst_ptr, dst_pitch, Height, Width, VFilter);
++    //vp8_filter_block2d_bil_second_pass_armv6(FData, dst_ptr, dst_pitch, Height, Width, VFilter);
+ }
+ 
+ 

+ 11 - 0
package/libvpx/patches/patch-vp8_vp8cx_arm_mk

@@ -0,0 +1,11 @@
+--- libvpx-v0.9.7-p1.orig/vp8/vp8cx_arm.mk	2011-08-15 23:02:45.000000000 +0200
++++ libvpx-v0.9.7-p1/vp8/vp8cx_arm.mk	2011-09-17 18:09:12.317990227 +0200
+@@ -18,7 +18,7 @@ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/
+ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/dct_arm.c
+ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/dct_arm.h
+ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/encodemb_arm.h
+-VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/picklpf_arm.c
++VP8_CX_SRCS-$(HAVE_ARMV7)  += encoder/arm/picklpf_arm.c
+ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/quantize_arm.c
+ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/quantize_arm.h
+ VP8_CX_SRCS-$(ARCH_ARM)  += encoder/arm/variance_arm.c