From: Koen Kooi Date: Mon, 28 Mar 2011 13:47:23 +0000 (+0200) Subject: libav: add proper recipe for git version X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=692d43eeb6596df52b5984ae1bd14739f9ec9e0f;p=openembedded.git libav: add proper recipe for git version omapfbplay: switch to libav Signed-off-by: Koen Kooi --- diff --git a/recipes/libav/libav.inc b/recipes/libav/libav.inc new file mode 100644 index 0000000000..fa7b93447d --- /dev/null +++ b/recipes/libav/libav.inc @@ -0,0 +1,120 @@ +DESCRIPTION = "Libav is a complete, cross-platform solution to record, convert and stream audio and video." +HOMEPAGE = "http://libav.org/" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPLv2+" + +# Provides ffmpeg compat, see http://libav.org/about.html +PROVIDES = "ffmpeg" + +ARM_INSTRUCTION_SET = "arm" + +PE = "2" + +DEPENDS = "zlib libogg libvorbis libtheora faac faad2 ${@base_conditional('ENTERPRISE_DISTRO', '1', '', 'lame liba52', d)}" +RSUGGESTS_${PN} = "mplayer" + +INC_PR = "r0" + +inherit autotools pkgconfig + +LEAD_SONAME = "libavcodec.so" + +EXTRA_OECONF = "\ + \ + --enable-pp \ + --enable-shared \ + --enable-pthreads \ + --enable-gpl \ + \ + --cross-prefix=${TARGET_PREFIX} \ + --disable-debug \ + --disable-ffserver \ + --disable-ffplay \ + \ +" + +EXTRA_OECONF_append_powerpc += "--${@['disable-altivec','enable-altivec'][bb.data.getVar('BASE_PACKAGE_ARCH',d,1) in ['ppce600']]}" + +do_configure_prepend() { + # We don't have TARGET_PREFIX-pkgconfig + sed -i '/pkg_config_default="${cross_prefix}${pkg_config_default}"/d' ${S}/configure +} + +FFMPEG_LIBS = "libavcodec libavdevice libavformat \ + libavutil libpostproc libswscale libavfilter" + +SYSROOT_PREPROCESS_FUNCS = " \ + ffmpeg_stage_cleanup \ + ffmpeg_create_compat_links" + +ffmpeg_create_compat_links() { + rm -rf ${SYSROOT_DESTDIR}${STAGING_INCDIR}/ffmpeg + mkdir -m 0755 ${SYSROOT_DESTDIR}${STAGING_INCDIR}/ffmpeg + cd ${SYSROOT_DESTDIR}${STAGING_INCDIR}/ffmpeg + + for lib in ${FFMPEG_LIBS}; do + ln -s ../$lib/*.h '.' || true + done +} + +ffmpeg_stage_cleanup() { + rm -rf ${SYSROOT_DESTDIR}${STAGING_LIBDIR}/vhook \ + ${SYSROOT_DESTDIR}${STAGING_DATADIR} +} + + +PACKAGES += "${PN}-vhook-dbg ${PN}-vhook" + +FILES_${PN} = "${bindir}" +FILES_${PN}-dev = "${includedir}/${PN}" + +FILES_${PN}-vhook = "${libdir}/vhook" +FILES_${PN}-vhook-dbg += "${libdir}/vhook/.debug" + + +PACKAGES += "ffmpeg-x264-presets \ + libavcodec libavcodec-dev libavcodec-dbg \ + libavdevice libavdevice-dev libavdevice-dbg \ + libavformat libavformat-dev libavformat-dbg \ + libavutil libavutil-dev libavutil-dbg \ + libpostproc libpostproc-dev libpostproc-dbg \ + libswscale libswscale-dev libswscale-dbg \ + libavfilter libavfilter-dev libavfilter-dbg \ + libavcore libavcore-dev libavcore-dbg \ + " + +FILES_ffmpeg-x264-presets = "${datadir}/*.ffpreset" + +FILES_${PN}-dev = "${includedir}" +FILES_libavcodec = "${libdir}/libavcodec*.so.*" +FILES_libavcodec-dev = "${libdir}/libavcodec*.so ${libdir}/pkgconfig/libavcodec.pc ${libdir}/libavcodec*.a" +FILES_libavcodec-dbg += "${libdir}/.debug/libavcodec*" + +FILES_libavdevice = "${libdir}/libavdevice*.so.*" +FILES_libavdevice-dev = "${libdir}/libavdevice*.so ${libdir}/pkgconfig/libavdevice.pc ${libdir}/libavdevice*.a" +FILES_libavdevice-dbg += "${libdir}/.debug/libavdevice*" + +FILES_libavformat = "${libdir}/libavformat*.so.*" +FILES_libavformat-dev = "${libdir}/libavformat*.so ${libdir}/pkgconfig/libavformat.pc ${libdir}/libavformat*.a" +FILES_libavformat-dbg += "${libdir}/.debug/libavformat*" + +FILES_libavutil = "${libdir}/libavutil*.so.*" +FILES_libavutil-dev = "${libdir}/libavutil*.so ${libdir}/pkgconfig/libavutil.pc ${libdir}/libavutil*.a" +FILES_libavutil-dbg += "${libdir}/.debug/libavutil*" + +FILES_libpostproc = "${libdir}/libpostproc*.so.*" +FILES_libpostproc-dev = "${libdir}/libpostproc*.so ${libdir}/pkgconfig/libpostproc.pc ${libdir}/libpostproc*.a ${includedir}/postproc" +FILES_libpostproc-dbg += "${libdir}/.debug/libpostproc*" + +FILES_libswscale = "${libdir}/libswscale*.so.*" +FILES_libswscale-dev = "${libdir}/libswscale*.so ${libdir}/pkgconfig/libswscale.pc ${libdir}/libswscale*.a" +FILES_libswscale-dbg += "${libdir}/.debug/libswscale*" + +FILES_libavfilter = "${libdir}/libavfilter*.so.*" +FILES_libavfilter-dev = "${libdir}/libavfilter*.so ${libdir}/pkgconfig/libavfilter.pc ${libdir}/libavfilter*.a" +FILES_libavfilter-dbg += "${libdir}/.debug/libavfilter*" + +FILES_libavcore = "${libdir}/libavcore*.so.*" +FILES_libavcore-dev = "${libdir}/libavcore*.so ${libdir}/pkgconfig/libavcore.pc ${libdir}/libavcore*.a" +FILES_libavcore-dbg += "${libdir}/.debug/libavcore*" diff --git a/recipes/libav/libav_git.bb b/recipes/libav/libav_git.bb new file mode 100644 index 0000000000..217f0b568d --- /dev/null +++ b/recipes/libav/libav_git.bb @@ -0,0 +1,57 @@ +require libav.inc + +DEPENDS += "virtual/libsdl schroedinger libgsm libvpx" + +# When bumping SRCREV make sure you bump PR here and in dependant recipes (gst-ffmpeg, gnash, omxil, etc) to account for SOVERSION changes +SRCREV = "c6c2dfcf15c1d93b2189adff6f71c5c4b6b05338" + +PV = "0.6.2+${PR}+gitr${SRCPV}" +PR = "${INC_PR}.2" + +SRC_URI = "git://git.libav.org/libav.git;protocol=git" + +S = "${WORKDIR}/git" +B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" + +FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fno-tree-vectorize -fomit-frame-pointer -O4 -ffast-math" +BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" + +EXTRA_FFCONF_armv7a = "--cpu=cortex-a8" +EXTRA_FFCONF ?= "" + +EXTRA_OECONF = " \ + --enable-shared \ + --enable-pthreads \ + --disable-stripping \ + --enable-gpl \ + --enable-postproc \ + \ + --cross-prefix=${TARGET_PREFIX} \ + --prefix=${prefix} \ + \ + --enable-ffserver \ + --enable-ffplay \ + --enable-x11grab \ + --enable-libgsm \ + --enable-libmp3lame \ + --enable-libschroedinger \ + --enable-libtheora \ + --enable-libvorbis \ + --enable-libvpx \ + --arch=${TARGET_ARCH} \ + --target-os="linux" \ + --enable-cross-compile \ + --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ + --extra-ldflags="${TARGET_LDFLAGS}" \ + --sysroot="${STAGING_DIR_TARGET}" \ + --enable-hardcoded-tables \ + ${EXTRA_FFCONF} \ +" + +do_configure() { + mkdir -p ${B} + cd ${B} + ${S}/configure ${EXTRA_OECONF} + sed -i -e s:Os:O4:g ${B}/config.h +} + diff --git a/recipes/ffmpeg/omapfbplay-cmem_git.bb b/recipes/libav/omapfbplay-cmem_git.bb similarity index 100% rename from recipes/ffmpeg/omapfbplay-cmem_git.bb rename to recipes/libav/omapfbplay-cmem_git.bb diff --git a/recipes/ffmpeg/omapfbplay-dce_git.bb b/recipes/libav/omapfbplay-dce_git.bb similarity index 100% rename from recipes/ffmpeg/omapfbplay-dce_git.bb rename to recipes/libav/omapfbplay-dce_git.bb diff --git a/recipes/ffmpeg/omapfbplay-xv_git.bb b/recipes/libav/omapfbplay-xv_git.bb similarity index 100% rename from recipes/ffmpeg/omapfbplay-xv_git.bb rename to recipes/libav/omapfbplay-xv_git.bb diff --git a/recipes/ffmpeg/omapfbplay.inc b/recipes/libav/omapfbplay.inc similarity index 89% rename from recipes/ffmpeg/omapfbplay.inc rename to recipes/libav/omapfbplay.inc index de5b2a893e..4f855ae256 100644 --- a/recipes/ffmpeg/omapfbplay.inc +++ b/recipes/libav/omapfbplay.inc @@ -1,5 +1,5 @@ -DESCRIPTION = "Simple ffmpeg-based player that uses the omapfb overlays" -DEPENDS = "bzip2 lame ffmpeg virtual/kernel" +DESCRIPTION = "Simple libav-based player that uses the omapfb overlays" +DEPENDS = "bzip2 lame libav virtual/kernel" LICENSE = "MIT" PR = "r30" diff --git a/recipes/ffmpeg/omapfbplay_git.bb b/recipes/libav/omapfbplay_git.bb similarity index 100% rename from recipes/ffmpeg/omapfbplay_git.bb rename to recipes/libav/omapfbplay_git.bb