summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Zanussi <tom.zanussi@intel.com>2012-05-17 22:41:47 -0500
committerTom Zanussi <tom.zanussi@intel.com>2012-05-30 14:22:51 -0500
commite2ca4f157d647f89e155ede81cbc5b1c7fecd719 (patch)
tree6ed4215392368782bb2662e4dc8bc44d205b3af6
parentef1c6ace4269172eb67fcc3c8243e4bae6415c32 (diff)
downloadmeta-intel-e2ca4f157d647f89e155ede81cbc5b1c7fecd719.tar.gz
ffmpeg: new recipe
This is a modified version of the ffmpeg recipe from oe-classic (git://git.openembedded.org/openembedded), updated to ffmpeg-0.7.12, along with some changes take from meta-demo (git://git.yoctoproject.org/meta-demo). The starting point ffmpeg recipe taken from oe-classic version was ffmpeg_0.6.1.bb: commit 5316c5b1416391f15277ce867489e525b7eccd6e Author: Andreas Oberritter <obi@opendreambox.org> Date: Wed Dec 8 22:08:40 2010 +0000 ffmpeg: add recipe for 0.6.1 (LGPLv2.1+) Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Khem Raj <raj.khem@gmail.com> The starting point ffmpeg.inc taken from oe-classic corresponds to the starting commit: commit 709c4d66e0b107ca606941b988bad717c0b45d9b Author: Denys Dmytriyenko <denis@denix.org> Date: Tue Mar 17 14:32:59 2009 -0400 rename packages/ to recipes/ per earlier agreement See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com> up to the following commit: commit 18d59f5fad41e4ea05b5d5a8c1588a0bdbdbf815 Author: Andreas Oberritter <obi@opendreambox.org> Date: Wed Dec 8 22:08:39 2010 +0000 ffmpeg: set default license to GPLv2+, because --enable-gpl is used. * See http://www.ffmpeg.org/legal.html Signed-off-by: Andreas Oberritter <obi@opendreambox.org> The following changes were taken from meta-demo for ffmpeg.inc: commit 33513db7658b9c72bb8c6d477c57b2ab62dab669 Author: Joshua Lock <josh@linux.intel.com> Date: Tue Jan 25 18:00:00 2011 +0000 ffmpeg: Fix some path references that broke with latest master of poky Signed-off-by: Joshua Lock <josh@linux.intel.com> commit ef61afc110ee4444a1c893290079f11c96e0d560 Author: Joshua Lock <josh@linux.intel.com> Date: Tue Mar 1 17:10:20 2011 +0000 ffmpeg: fix header installation Change merged from OpenEmbedded Signed-off-by: Joshua Lock <josh@linux.intel.com> commit cae78e5c49423e9ce967f05a5a7c46920ca0cd6b Author: Darren Hart <dvhart@linux.intel.com> Date: Wed Nov 10 14:41:24 2010 -0800 License audit for meta-demo layer Correct .bb and .inc files to include the proper LICENSE and LIC_FILES_CHKSUM variables. Note that in most cases the "(at your option) a later version" clause to the L?GPL is contained in a source file, not COPYING. In those case, add a more or less core source file to the LIC_FILES_CHKSUM list. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Acked-by: Saul Wold <sgw@linux.intel.com> To get the latest bug and security fixes: - updated to ffmpeg-0.7.12 Some additional changes were made to simplify and remove components that weren't strictly necessary for current needs: - removed shroedinger and libgsm dependencies - removed faac faad2 lame dependencies - removed --libgsm, --libmp3lame, --libschroedinger - removed RSUGGESTS mplayer Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
-rw-r--r--common/recipes-multimedia/ffmpeg/ffmpeg.inc108
-rw-r--r--common/recipes-multimedia/ffmpeg/ffmpeg_0.7.12.bb41
2 files changed, 149 insertions, 0 deletions
diff --git a/common/recipes-multimedia/ffmpeg/ffmpeg.inc b/common/recipes-multimedia/ffmpeg/ffmpeg.inc
new file mode 100644
index 00000000..fc8b8544
--- /dev/null
+++ b/common/recipes-multimedia/ffmpeg/ffmpeg.inc
@@ -0,0 +1,108 @@
1DESCRIPTION = "FFmpeg is a complete solution to record, convert and stream audio and video"
2HOMEPAGE = "http://ffmpeg.mplayerhq.hu/"
3AUTHOR = "Fabrice Bellard ffmpeg-devel@mplayerhq.hu"
4SECTION = "libs"
5PRIORITY = "optional"
6LICENSE = "GPLv2+ & LGPLv2.1+"
7
8ARM_INSTRUCTION_SET = "arm"
9
10DEPENDS = "zlib libogg libvorbis libtheora liba52"
11
12INC_PR = "r0"
13
14inherit autotools pkgconfig
15
16LEAD_SONAME = "libavcodec.so"
17
18EXTRA_OECONF = "\
19 \
20 --enable-pp \
21 --enable-shared \
22 --enable-pthreads \
23 --enable-gpl \
24 \
25 --cross-prefix=${TARGET_PREFIX} \
26 --disable-debug \
27 --disable-ffserver \
28 --disable-ffplay \
29 \
30"
31
32EXTRA_OECONF_append_powerpc += "--${@['disable-altivec','enable-altivec'][bb.data.getVar('BASE_PACKAGE_ARCH',d,1) in ['ppce600']]}"
33
34FFMPEG_LIBS = "libavcodec libavdevice libavformat \
35 libavutil libpostproc libswscale libavfilter"
36
37SYSROOT_PREPROCESS_FUNCS = " \
38 ffmpeg_stage_cleanup \
39 ffmpeg_create_compat_links"
40
41ffmpeg_create_compat_links() {
42 rm -rf ${SYSROOT_DESTDIR}${includedir}/ffmpeg
43 mkdir -m 0755 ${SYSROOT_DESTDIR}${includedir}/ffmpeg
44 cd ${SYSROOT_DESTDIR}${includedir}/ffmpeg
45
46 for lib in ${FFMPEG_LIBS}; do
47 ln -s ../$lib/*.h '.' || true
48 done
49}
50
51ffmpeg_stage_cleanup() {
52 rm -rf ${SYSROOT_DESTDIR}${libdir}/vhook \
53 ${SYSROOT_DESTDIR}${datadir}
54}
55
56PACKAGES += "${PN}-vhook-dbg ${PN}-vhook"
57
58FILES_${PN} = "${bindir}"
59FILES_${PN}-dev = "${includedir}/${PN}"
60
61FILES_${PN}-vhook = "${libdir}/vhook"
62FILES_${PN}-vhook-dbg += "${libdir}/vhook/.debug"
63
64PACKAGES += "ffmpeg-x264-presets \
65 libavcodec libavcodec-dev libavcodec-dbg \
66 libavdevice libavdevice-dev libavdevice-dbg \
67 libavformat libavformat-dev libavformat-dbg \
68 libavutil libavutil-dev libavutil-dbg \
69 libpostproc libpostproc-dev libpostproc-dbg \
70 libswscale libswscale-dev libswscale-dbg \
71 libavfilter libavfilter-dev libavfilter-dbg \
72 libavcore libavcore-dev libavcore-dbg \
73 "
74
75FILES_ffmpeg-x264-presets = "${datadir}/*.ffpreset"
76
77FILES_${PN}-dev = "${includedir}"
78FILES_libavcodec = "${libdir}/libavcodec*.so.*"
79FILES_libavcodec-dev = "${libdir}/libavcodec*.so ${libdir}/pkgconfig/libavcodec.pc ${libdir}/libavcodec*.a"
80FILES_libavcodec-dbg += "${libdir}/.debug/libavcodec*"
81
82FILES_libavdevice = "${libdir}/libavdevice*.so.*"
83FILES_libavdevice-dev = "${libdir}/libavdevice*.so ${libdir}/pkgconfig/libavdevice.pc ${libdir}/libavdevice*.a"
84FILES_libavdevice-dbg += "${libdir}/.debug/libavdevice*"
85
86FILES_libavformat = "${libdir}/libavformat*.so.*"
87FILES_libavformat-dev = "${libdir}/libavformat*.so ${libdir}/pkgconfig/libavformat.pc ${libdir}/libavformat*.a"
88FILES_libavformat-dbg += "${libdir}/.debug/libavformat*"
89
90FILES_libavutil = "${libdir}/libavutil*.so.*"
91FILES_libavutil-dev = "${libdir}/libavutil*.so ${libdir}/pkgconfig/libavutil.pc ${libdir}/libavutil*.a"
92FILES_libavutil-dbg += "${libdir}/.debug/libavutil*"
93
94FILES_libpostproc = "${libdir}/libpostproc*.so.*"
95FILES_libpostproc-dev = "${libdir}/libpostproc*.so ${libdir}/pkgconfig/libpostproc.pc ${libdir}/libpostproc*.a ${includedir}/postproc"
96FILES_libpostproc-dbg += "${libdir}/.debug/libpostproc*"
97
98FILES_libswscale = "${libdir}/libswscale*.so.*"
99FILES_libswscale-dev = "${libdir}/libswscale*.so ${libdir}/pkgconfig/libswscale.pc ${libdir}/libswscale*.a"
100FILES_libswscale-dbg += "${libdir}/.debug/libswscale*"
101
102FILES_libavfilter = "${libdir}/libavfilter*.so.*"
103FILES_libavfilter-dev = "${libdir}/libavfilter*.so ${libdir}/pkgconfig/libavfilter.pc ${libdir}/libavfilter*.a"
104FILES_libavfilter-dbg += "${libdir}/.debug/libavfilter*"
105
106FILES_libavcore = "${libdir}/libavcore*.so.*"
107FILES_libavcore-dev = "${libdir}/libavcore*.so ${libdir}/pkgconfig/libavcore.pc ${libdir}/libavcore*.a"
108FILES_libavcore-dbg += "${libdir}/.debug/libavcore*"
diff --git a/common/recipes-multimedia/ffmpeg/ffmpeg_0.7.12.bb b/common/recipes-multimedia/ffmpeg/ffmpeg_0.7.12.bb
new file mode 100644
index 00000000..023c25f3
--- /dev/null
+++ b/common/recipes-multimedia/ffmpeg/ffmpeg_0.7.12.bb
@@ -0,0 +1,41 @@
1require ffmpeg.inc
2
3LICENSE = "LGPLv2.1+ & GPLv2+"
4PR = "${INC_PR}.1"
5
6SRC_URI = "http://ffmpeg.org/releases/ffmpeg-${PV}.tar.bz2"
7SRC_URI[md5sum] = "e4d0c32c0a7cc763922ee8c34e688b5a"
8SRC_URI[sha256sum] = "4d383af2614fd55ab9e11ab3d5366b9a1453a4e4edf0ac2a1b1411927d577249"
9
10LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
11 file://libpostproc/postprocess.c;beginline=8;endline=21;md5=3163771dd725805aeda961a4e05173b5 \
12 file://COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
13 file://ffmpeg.c;beginline=7;endline=20;md5=9dee9cc51a9da6c3254d39ebf4d5aa03"
14
15EXTRA_FFCONF_armv7a = "--cpu=cortex-a8"
16EXTRA_FFCONF_mipsel = "--arch=mips"
17
18EXTRA_OECONF = " \
19 --arch=${TARGET_ARCH} \
20 --cross-prefix=${TARGET_PREFIX} \
21 --disable-stripping \
22 --enable-cross-compile \
23 --enable-libtheora \
24 --enable-libvorbis \
25 --enable-pthreads \
26 --enable-shared \
27 --enable-swscale \
28 --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
29 --extra-ldflags="${TARGET_LDFLAGS}" \
30 --sysroot="${STAGING_DIR_TARGET}" \
31 --prefix=${prefix}/ \
32 --target-os=linux \
33 ${EXTRA_FFCONF} \
34"
35
36do_configure() {
37 ./configure ${EXTRA_OECONF}
38}
39
40FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
41BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"