mirror of
https://git.yoctoproject.org/poky
synced 2026-07-16 03:47:03 +00:00
2e1e41041b
Changelogs: http://alsa-project.org/main/index.php/Changes_v1.1.6_v1.1.7 http://alsa-project.org/main/index.php/Changes_v1.1.7_v1.1.8 The --enable-avcodec configure option was renamed to --enable-libav, and I renamed the respective packageconfig item too. There's a new pcm plugin: aaf (AVTP Audio Format). I added a packageconfig item for it, but I didn't test it, because libavtp doesn't seem to be currently packaged for OpenEmbedded. There are now configuration files for most of the plugins. I removed the symlink creation for 50-pulseaudio.conf, because upstream now creates the symlinks for us. 99-pulseaudio-default.conf is an exception, because upstream ships it only as an example, and upstream doesn't install a symlink for it (upstream actually installs it directly under /etc, but I moved it back to /usr/share), so for that file we still have to create the symlink ourselves. The lavcrate plugin was converted to use libavresample (and renamed to lavrate). Libavresample is provided by ffmpeg, but ffmpeg was by default built with libavresample disabled. This patch now enables libavresample by default in the ffmpeg recipe in order to not cause a regression in alsa-plugins. SRC_URI was changed to a more reliable source (at least currently the ftp server is flaky). (From OE-Core rev: ddf5421331180bc45697511b44cdd4a4e6dda6ff) Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
158 lines
6.9 KiB
BlitzBasic
158 lines
6.9 KiB
BlitzBasic
SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video."
|
|
DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \
|
|
mux, demux, stream, filter and play pretty much anything that humans and machines \
|
|
have created. It supports the most obscure ancient formats up to the cutting edge."
|
|
HOMEPAGE = "https://www.ffmpeg.org/"
|
|
SECTION = "libs"
|
|
|
|
LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT"
|
|
LICENSE_${PN} = "GPLv2+"
|
|
LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_libpostproc = "GPLv2+"
|
|
LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}"
|
|
LICENSE_FLAGS = "commercial"
|
|
|
|
LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
|
file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
|
|
file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
|
|
file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
|
|
|
|
SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
|
|
file://mips64_cpu_detection.patch \
|
|
"
|
|
SRC_URI[md5sum] = "720fc84617a2c38aeae79aff3689a567"
|
|
SRC_URI[sha256sum] = "373749824dfd334d84e55dff406729edfd1606575ee44dd485d97d45ea4d2d86"
|
|
|
|
# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
|
|
ARM_INSTRUCTION_SET_armv4 = "arm"
|
|
ARM_INSTRUCTION_SET_armv5 = "arm"
|
|
ARM_INSTRUCTION_SET_armv6 = "arm"
|
|
|
|
# Should be API compatible with libav (which was a fork of ffmpeg)
|
|
# libpostproc was previously packaged from a separate recipe
|
|
PROVIDES = "libav libpostproc"
|
|
|
|
DEPENDS = "alsa-lib zlib libogg nasm-native"
|
|
|
|
inherit autotools pkgconfig
|
|
|
|
PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \
|
|
bzlib gpl lzma theora x264 \
|
|
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv', '', d)}"
|
|
|
|
# libraries to build in addition to avutil
|
|
PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
|
|
PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
|
|
PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec"
|
|
PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
|
|
PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
|
|
PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
|
|
PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
|
|
PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
|
|
|
|
# features to support
|
|
PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
|
|
PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
|
|
PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
|
|
PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
|
|
PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
|
|
PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
|
|
PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
|
|
PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
|
|
PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2"
|
|
PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex"
|
|
PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora"
|
|
PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
|
|
PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
|
|
PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
|
|
PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
|
|
PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
|
|
|
|
# Check codecs that require --enable-nonfree
|
|
USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}"
|
|
|
|
def cpu(d):
|
|
for arg in (d.getVar('TUNE_CCARGS') or '').split():
|
|
if arg.startswith('-mcpu='):
|
|
return arg[6:]
|
|
return 'generic'
|
|
|
|
EXTRA_OECONF = " \
|
|
--disable-stripping \
|
|
--enable-pic \
|
|
--enable-shared \
|
|
--enable-pthreads \
|
|
--disable-libxcb \
|
|
--disable-libxcb-shm \
|
|
--disable-libxcb-xfixes \
|
|
--disable-libxcb-shape \
|
|
${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
|
|
\
|
|
--cross-prefix=${TARGET_PREFIX} \
|
|
\
|
|
--ld="${CCLD}" \
|
|
--cc="${CC}" \
|
|
--cxx="${CXX}" \
|
|
--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} \
|
|
--libdir=${libdir} \
|
|
--shlibdir=${libdir} \
|
|
--datadir=${datadir}/ffmpeg \
|
|
${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \
|
|
--cpu=${@cpu(d)} \
|
|
--pkg-config=pkg-config \
|
|
"
|
|
|
|
EXTRA_OECONF_append_linux-gnux32 = " --disable-asm"
|
|
# gold crashes on x86, another solution is to --disable-asm but thats more hacky
|
|
# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684
|
|
|
|
LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
|
|
|
|
do_configure() {
|
|
${S}/configure ${EXTRA_OECONF}
|
|
}
|
|
|
|
PACKAGES =+ "libavcodec \
|
|
libavdevice \
|
|
libavfilter \
|
|
libavformat \
|
|
libavresample \
|
|
libavutil \
|
|
libpostproc \
|
|
libswresample \
|
|
libswscale"
|
|
|
|
FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}"
|
|
FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}"
|
|
FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}"
|
|
FILES_libavformat = "${libdir}/libavformat${SOLIBS}"
|
|
FILES_libavresample = "${libdir}/libavresample${SOLIBS}"
|
|
FILES_libavutil = "${libdir}/libavutil${SOLIBS}"
|
|
FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}"
|
|
FILES_libswresample = "${libdir}/libswresample${SOLIBS}"
|
|
FILES_libswscale = "${libdir}/libswscale${SOLIBS}"
|
|
|
|
# ffmpeg disables PIC on some platforms (e.g. x86-32)
|
|
INSANE_SKIP_${MLPREFIX}libavcodec = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libavdevice = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libavfilter = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libavformat = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libavutil = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libavresample = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libswscale = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libswresample = "textrel"
|
|
INSANE_SKIP_${MLPREFIX}libpostproc = "textrel"
|