firmware/general/package/ffmpeg-openipc/ffmpeg-openipc.mk

85 lines
3.1 KiB
Makefile

################################################################################
#
# ffmpeg-openipc | updated 2022.08.10
#
################################################################################
FFMPEG_OPENIPC_VERSION = 4.4.2
FFMPEG_OPENIPC_SOURCE = ffmpeg-$(FFMPEG_OPENIPC_VERSION).tar.xz
FFMPEG_OPENIPC_SITE = http://ffmpeg.org/releases
FFMPEG_OPENIPC_INSTALL_STAGING = NO
FFMPEG_OPENIPC_LICENSE = LGPL-2.1+, libjpeg license
FFMPEG_OPENIPC_LICENSE_FILES = LICENSE.md COPYING.LGPLv2.1
FFMPEG_OPENIPC_CONF_OPTS = \
--prefix=/usr \
--disable-everything \
--disable-x86asm --disable-w32threads --disable-os2threads --disable-alsa --disable-appkit \
--disable-avfoundation --disable-bzlib --disable-coreimage --disable-iconv --disable-libxcb \
--disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape --disable-lzma \
--disable-asm --disable-sndio --disable-sdl2 --disable-xlib --disable-zlib --disable-amf \
--disable-audiotoolbox --disable-cuda --disable-cuvid --disable-d3d11va --disable-dxva2 \
--disable-nvdec --disable-nvenc --disable-v4l2-m2m --disable-vaapi --disable-vdpau --disable-videotoolbox \
--disable-avdevice --disable-swscale --disable-postproc --disable-doc --disable-runtime-cpudetect \
--disable-bsfs --disable-iconv --disable-ffprobe --enable-gpl --enable-version3 --enable-pthreads \
\
--disable-swresample \
--disable-avdevice \
--disable-filters \
--disable-encoders \
--disable-decoders --enable-decoder=h264,hevc \
--disable-muxers --enable-muxer=flv,rtsp \
--disable-demuxers --enable-demuxer=h264,rtsp \
--disable-parsers --enable-parser=h264,hevc \
--disable-protocols --enable-protocol=file,rtmp,tcp \
--disable-programs --enable-ffmpeg --enable-small
FFMPEG_OPENIPC_DEPENDENCIES += host-pkgconf
# Default to --cpu=generic for MIPS architecture, in order to avoid a
# warning from ffmpeg's configure script.
ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y)
FFMPEG_OPENIPC_CONF_OPTS += --cpu=generic
else ifneq ($(GCC_TARGET_CPU),)
FFMPEG_OPENIPC_CONF_OPTS += --cpu="$(GCC_TARGET_CPU)"
else ifneq ($(GCC_TARGET_ARCH),)
FFMPEG_OPENIPC_CONF_OPTS += --cpu="$(GCC_TARGET_ARCH)"
endif
FFMPEG_OPENIPC_CFLAGS = $(TARGET_CFLAGS)
ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
FFMPEG_OPENIPC_CONF_OPTS += --disable-optimizations
FFMPEG_OPENIPC_CFLAGS += -O0
endif
FFMPEG_OPENIPC_CONF_ENV += CFLAGS="$(FFMPEG_OPENIPC_CFLAGS)"
# Override FFMPEG_OPENIPC_CONFIGURE_CMDS: FFmpeg does not support --target and others
define FFMPEG_OPENIPC_CONFIGURE_CMDS
(cd $(FFMPEG_OPENIPC_SRCDIR) && rm -rf config.cache && \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
$(FFMPEG_OPENIPC_CONF_ENV) \
./configure \
--enable-cross-compile \
--cross-prefix=$(TARGET_CROSS) \
--sysroot=$(STAGING_DIR) \
--host-cc="$(HOSTCC)" \
--arch=$(BR2_ARCH) \
--target-os="linux" \
--pkg-config="$(PKG_CONFIG_HOST_BINARY)" \
$(FFMPEG_OPENIPC_CONF_OPTS) \
)
endef
define FFMPEG_OPENIPC_REMOVE_EXAMPLE_SRC_FILES
rm -rf $(TARGET_DIR)/usr/share/ffmpeg/examples
endef
FFMPEG_OPENIPC_POST_INSTALL_TARGET_HOOKS += FFMPEG_OPENIPC_REMOVE_EXAMPLE_SRC_FILES
$(eval $(autotools-package))