merge of '6516a85d1d78f28686ffc271f1b433d8bc839bd1'
[vuplus_openembedded] / packages / ffmpeg / ffmpeg_git.bb
1 require ffmpeg.inc
2
3 DEPENDS += "libgsm"
4
5 PV = "0.4.9+${PR}+gitr${SRCREV}" 
6 PR = "r23"
7
8 DEFAULT_PREFERENCE = "-1"
9 DEFAULT_PREFERENCE_armv5te = "1"
10 DEFAULT_PREFERENCE_armv6 = "1"
11 DEFAULT_PREFERENCE_armv7a = "1"
12
13 FFBRANCH_arm = "arm-neon"
14 FFBRANCH ?= "master"
15
16 SRCREV = "3692b8de9fae73860be636606cb6344f26e28b1a"
17 SRCREV_arm = "3c4b8ba71b922be6559fcfea3cb990ea3ded234d"
18 SRC_URI = "git://git.mansr.com/ffmpeg.mru;protocol=git;branch=${FFBRANCH} \
19 "
20
21 S = "${WORKDIR}/git"
22 B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
23
24 FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations  -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math"
25 BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
26
27 EXTRA_FFCONF_armv7a = "--cpu=cortex-a8"
28 EXTRA_FFCONF ?= ""
29
30 EXTRA_OECONF = " \
31         --enable-shared \
32         --enable-pthreads \
33         --disable-stripping \
34         --enable-gpl \
35         --enable-nonfree \
36         --enable-postproc \
37         \
38         --cross-prefix=${TARGET_PREFIX} \
39         --prefix=${prefix} \
40         \
41         --enable-x11grab \
42         --enable-libfaac \
43         --enable-libfaad \
44         --enable-libfaadbin \
45         --enable-libgsm \
46         --enable-libmp3lame \
47         --enable-swscale \
48         --arch=${TARGET_ARCH} \
49         --enable-cross-compile \
50         --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
51         --extra-ldflags="${TARGET_LDFLAGS}" \
52         --enable-hardcoded-tables \
53         ${EXTRA_FFCONF} \
54 "
55
56 do_configure() {
57         cd ${S} ; git clone git://git.mplayerhq.hu/libswscale || true  
58         mkdir -p ${B}
59         cd ${B}
60         ${S}/configure ${EXTRA_OECONF}
61                 sed -i -e s:Os:O4:g ${B}/config.h
62 }
63
64 do_stage() {
65         for lib in libavcodec libavdevice libavformat \
66                    libavutil libpostproc libswscale
67         do
68             oe_libinstall -a -so -C $lib $lib ${STAGING_LIBDIR} || true
69             install -d ${STAGING_INCDIR}/$lib 
70         done 
71
72         install -d ${STAGING_INCDIR}/ffmpeg
73
74         install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/ffmpeg/avcodec.h
75         install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/ffmpeg/opt.h
76         install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/libavcodec/avcodec.h
77         install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/libavcodec/opt.h
78
79         install -m 0644 ${S}/libavdevice/avdevice.h  ${STAGING_INCDIR}/ffmpeg/avdevice.h
80         
81         for h in avformat.h avio.h rtp.h rtsp.h rtspcodes.h
82         do
83            install -m 0644 ${S}/libavformat/$h  ${STAGING_INCDIR}/ffmpeg/$h
84            install -m 0644 ${S}/libavformat/$h  ${STAGING_INCDIR}/libavformat/$h        
85         done
86
87                 for h in adler32.h avstring.h avutil.h base64.h bswap.h \
88                  common.h crc.h fifo.h integer.h intfloat_readwrite.h \
89                  log.h lzo.h mathematics.h md5.h mem.h random.h \
90                  rational.h sha1.h
91                 do
92            install -m 0644 ${S}/libavutil/$h        ${STAGING_INCDIR}/ffmpeg/$h
93            install -m 0644 ${S}/libavutil/$h        ${STAGING_INCDIR}/libavutil/$h 
94         done
95
96         install -d ${STAGING_INCDIR}/libswscale/ 
97         install -m 0644 ${S}/libswscale/*.h ${STAGING_INCDIR}/ffmpeg/
98         install -m 0644 ${S}/libswscale/*.h ${STAGING_INCDIR}/libswscale/
99
100         install -d ${STAGING_INCDIR}/libpostproc
101         install -d ${STAGING_INCDIR}/postproc 
102         install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/libpostproc/postprocess.h
103         install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/postproc/postprocess.h
104 }
105
106 PACKAGES += "libavcodec  libavcodec-dev  libavcodec-dbg \
107              libavdevice libavdevice-dev libavdevice-dbg \
108              libavformat libavformat-dev libavformat-dbg \
109              libavutil   libavutil-dev   libavutil-dbg \
110              libpostproc libpostproc-dev libpostproc-dbg \
111              libswscale  libswscale-dev  libswscale-dbg"
112
113 FILES_${PN}-dev = "${includedir}"
114 FILES_libavcodec = "${libdir}/libavcodec*.so.*"
115 FILES_libavcodec-dev = "${libdir}/libavcodec*.so ${libdir}/pkgconfig/libavcodec.pc ${libdir}/libavcodec*.a"
116 FILES_libavcodec-dbg += "${libdir}/.debug/libavcodec*"
117
118 FILES_libavdevice = "${libdir}/libavdevice*.so.*"
119 FILES_libavdevice-dev = "${libdir}/libavdevice*.so ${libdir}/pkgconfig/libavdevice.pc ${libdir}/libavdevice*.a"
120 FILES_libavdevice-dbg += "${libdir}/.debug/libavdevice*"
121
122 FILES_libavformat = "${libdir}/libavformat*.so.*"
123 FILES_libavformat-dev = "${libdir}/libavformat*.so ${libdir}/pkgconfig/libavformat.pc ${libdir}/libavformat*.a"
124 FILES_libavformat-dbg += "${libdir}/.debug/libavformat*"
125
126 FILES_libavutil = "${libdir}/libavutil*.so.*"
127 FILES_libavutil-dev = "${libdir}/libavutil*.so ${libdir}/pkgconfig/libavutil.pc ${libdir}/libavutil*.a"
128 FILES_libavutil-dbg += "${libdir}/.debug/libavutil*"
129
130 FILES_libpostproc = "${libdir}/libpostproc*.so.*"
131 FILES_libpostproc-dev = "${libdir}/libpostproc*.so  ${libdir}/pkgconfig/libpostproc.pc ${libdir}/libpostproc*.a ${includedir}/postproc"
132 FILES_libpostproc-dbg += "${libdir}/.debug/libpostproc*"
133
134 FILES_libswscale = "${libdir}/libswscale*.so.*"
135 FILES_libswscale-dev = "${libdir}/libswscale*.so ${libdir}/pkgconfig/libswscale.pc ${libdir}/libswscale*.a"
136 FILES_libswscale-dbg += "${libdir}/.debug/libswscale*"