linuxOS_AP05/buildroot/package/ffmpeg/0009-add-ffmpeg-compilation-support.patch

805 lines
23 KiB
Diff
Raw Normal View History

2025-06-02 05:59:07 +00:00
From 226e514675a10e583d2af123b2b6960043da1dca Mon Sep 17 00:00:00 2001
From: Francis Fan <francis.fan@rock-chips.com>
Date: Wed, 12 Jun 2019 22:01:10 +0800
Subject: [PATCH 09/11] add ffmpeg compilation support
Change-Id: I74eac5a367904091fc7b30509dd7b21c2a1250e8
Signed-off-by: Francis Fan <francis.fan@rock-chips.com>
(cherry picked from commit 38986885a51a08b89b40419cb1c2263b82314155)
---
Config.in | 299 ++++++++++++++++++++++++++++++++++++++
ffmpeg.rvmk | 475 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 774 insertions(+)
create mode 100644 Config.in
create mode 100644 ffmpeg.rvmk
diff --git a/Config.in b/Config.in
new file mode 100644
index 0000000..fa5d564
--- /dev/null
+++ b/Config.in
@@ -0,0 +1,299 @@
+menuconfig RV_TARGET_FFMPEG
+ bool "FFMPEG"
+ default n
+ help
+ FFMPEG in rv is used as muxer/demuxer, audio codecs and hardware h264 codecs.
+
+if RV_TARGET_FFMPEG
+config RV_TARGET_FFMPEG_STATIC_LIB
+ bool "Build static lib"
+ default n
+
+config RV_TARGET_FFMPEG_FS_MANAGE
+ bool "Use fs manage interface"
+ default n
+ help
+ file interface use libfs_manage
+
+config RV_TARGET_MPP_DECODER_LIMIT_BUFFER_NUM
+ string "the num of mpp decoder limited buffer"
+ default 0
+ help
+ if 0, mpp decoder suppose that ion buffer can be used without concern.
+ Set equal or greater than 4 if you need the mpp decoder limit buffer usage.
+
+config RV_TARGET_FFMPEG_GPL
+ bool "Enable GPL code"
+ default n
+ help
+ allow use of GPL code, the resulting libs and binaries will be under GPL
+
+config RV_TARGET_FFMPEG_NONFREE
+ bool "Enable nonfree code"
+ default n
+ help
+ allow use of nonfree code, the resulting libs and binaries
+ will be unredistributable
+
+config RV_TARGET_FFMPEG_DISABLE_FFPLAY
+ bool "Disable ffplay"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_FFPORBE
+ bool "Disable ffprobe"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_COREIMAGE
+ bool "Disable core image"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_VALGRINDBACKTRACE
+ bool "Disable valgrind-backtrace"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_LOGGING
+ bool "Disable logging"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_BSFS
+ bool "Disable bsfs"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_MUXERS
+ bool "Disable all muxers"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_DEMUXERS
+ bool "Disable all demuxers"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_FILTERS
+ bool "Disable all filters"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_ENCODERS
+ bool "Disable all encoders"
+ default n
+
+config RV_TARGET_FFMPEG_DISABLE_DECODERS
+ bool "Disable all decoders"
+ default n
+
+config RV_TARGET_FFMPEG_DEMUXER_H264
+ bool "Enable demuxer h264"
+ default n
+
+config RV_TARGET_FFMPEG_MUXER_AVI
+ bool "Enable muxer avi"
+ default y if RV_TARGET_MAIN_APP_RECORD_FORMAT = "avi"
+
+config RV_TARGET_FFMPEG_DEMUXER_AVI
+ bool "Enable demuxer avi"
+ default y if RV_TARGET_MAIN_APP_RECORD_FORMAT = "avi"
+
+config RV_TARGET_FFMPEG_MUXER_MPEGTS
+ bool "Enable muxer mpegts"
+ default y if RV_TARGET_MAIN_APP_RECORD_FORMAT = "ts"
+
+config RV_TARGET_FFMPEG_DEMUXER_MPEGTS
+ bool "Enable demuxer mpegts"
+ default y if RV_TARGET_MAIN_APP_RECORD_FORMAT = "ts"
+
+config RV_TARGET_FFMPEG_DEMUXER_MPEGPS
+ bool "Enable demuxer mpegps"
+ default n
+
+config RV_TARGET_FFMPEG_MUXER_RTP
+ bool "Enable muxer rtp"
+ default n
+
+config RV_TARGET_FFMPEG_MUXER_MP4
+ bool "Enable muxer mp4"
+ default y if RV_TARGET_MAIN_APP_RECORD_FORMAT = "mp4"
+
+config RV_TARGET_FFMPEG_MUXER_MOV
+ bool "Enable muxer mov"
+ default y if RV_TARGET_MAIN_APP_RECORD_FORMAT = "mov"
+
+config RV_TARGET_FFMPEG_DEMUXER_MOV_MP4
+ bool "Enable demuxer mov/mp4"
+ default y if RV_TARGET_MAIN_APP_RECORD_FORMAT = "mp4" || RV_TARGET_MAIN_APP_RECORD_FORMAT = "mov"
+
+config RV_TARGET_FFMPEG_MUXER_ADTS
+ bool "Enable muxer adts"
+ default n
+
+config RV_TARGET_FFMPEG_DEMUXER_AAC
+ bool "Enable demuxer aac"
+ default n
+
+config RV_TARGET_FFMPEG_MUXER_RTP_MPEGTS
+ bool "Enable muxer rtp_mpegts"
+ default n
+ select RV_TARGET_FFMPEG_MUXER_RTP
+ select RV_TARGET_FFMPEG_MUXER_MPEGTS
+
+config RV_TARGET_FFMPEG_MUXER_FLV
+ bool "Enable muxer flv"
+ default y if RV_TARGET_MAIN_APP_TS_PROTOCOL = "rtmp"
+ default n
+
+config RV_TARGET_FFMPEG_DEMUXER_RTSP
+ bool "Enable demuxer rtsp"
+ default n
+
+config RV_TARGET_FFMPEG_PROTOCOL_FILE
+ bool "Enable protocol file"
+ default y
+
+config RV_TARGET_FFMPEG_PROTOCOL_UDP
+ bool "Enable protocol udp"
+ default n
+
+config RV_TARGET_FFMPEG_PROTOCOL_TCP
+ bool "Enable protocol tcp"
+ default n
+
+config RV_TARGET_FFMPEG_PROTOCOL_RTP
+ bool "Enable protocol rtp"
+ default n
+
+config RV_TARGET_FFMPEG_LIBRTMP
+ bool "Enable protocol librtmp"
+ default y if RV_TARGET_LIBRTMP
+
+
+config RV_TARGET_FFMPEG_ENABLE_SMALL
+ bool "Enable small"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DECODER_FDKAAC
+ bool "Enable decoder:fdk_aac"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DECODER_AAC
+ bool "Enable decoder:aac"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DECODER_AACAT
+ bool "Enable decoder:aac_at"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DECODER_AACFIXED
+ bool "Enable decoder:aac_fixed"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DECODER_AACLATM
+ bool "Enable decoder:aac_latm"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DECODER_RKMPP
+ bool "Enable decoder:rk_mpp"
+ default n
+
+
+config RV_TARGET_FFMPEG_ENABLE_ENCODER_PCM16
+ bool "Enable encoder:16 bit PCM"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_ENCODER_PCM32
+ bool "Enable encoder:32 bit PCM"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_ENCODER_RKMPP
+ bool "Enable encoder:rk_mpp"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_MUXER_PCM32
+ bool "Enable muxer:32 bit PCM"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_MUXER_PCM16
+ bool "Enable muxer:16 bit PCM"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_MUXER_PCMALAW
+ bool "Enable muxer:pcm_alaw"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_MUXER_H264
+ bool "Enable muxer:h264"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCM32
+ bool "Enable demuxer:32 bit PCM"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCM16
+ bool "Enable demuxer:16 bit PCM"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCMALAW
+ bool "Enable demuxer:pcm_alaw"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MJPEG
+ bool "Enable demuxer:mjpeg"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MJPEG2000
+ bool "Enable demuxer:mjpeg2000"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPEGTSRAW
+ bool "Enable demuxer:mjpegtsraw"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPJPEG
+ bool "Enable demuxer:mpjpeg"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPL2
+ bool "Enable demuxer:mpl2"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_IPMOVIE
+ bool "Enable demuxer:ipmovie"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MLP
+ bool "Enable demuxer:mlp"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MLV
+ bool "Enable demuxer:mlv"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MM
+ bool "Enable demuxer:mm"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MMF
+ bool "Enable demuxer:mmf"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MOV
+ bool "Enable demuxer:mov"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MP3
+ bool "Enable demuxer:mp3"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPC
+ bool "Enable demuxer:mpc"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPC8
+ bool "Enable demuxer:mpc8"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_DEMUXER_WAV
+ bool "Enable demuxer:wav"
+ default n
+
+config RV_TARGET_FFMPEG_ENABLE_PARSER_H264
+ bool "Enable parser:h264"
+ default n
+
+endif
diff --git a/ffmpeg.rvmk b/ffmpeg.rvmk
new file mode 100644
index 0000000..9ffe027
--- /dev/null
+++ b/ffmpeg.rvmk
@@ -0,0 +1,475 @@
+################################################################################
+#
+# ffmpeg
+#
+################################################################################
+
+FFMPEG_DEPENDENCIES = host-pkgconf mpp
+
+FFMPEG_CONF_ENV = PKG_CONFIG_LIBDIR="$(TARGET_DIR)/lib/pkgconfig"
+
+FFMPEG_TARGET_FILES = $(FFMPEG_PKGDIR)libavformat/libavformat.$(FFMPEG_TARGET_TYPE) \
+ $(FFMPEG_PKGDIR)libswresample/libswresample.$(FFMPEG_TARGET_TYPE) \
+ $(FFMPEG_PKGDIR)libavutil/libavutil.$(FFMPEG_TARGET_TYPE) \
+ $(FFMPEG_PKGDIR)libavcodec/libavcodec.$(FFMPEG_TARGET_TYPE)
+
+FFMPEG_CONF_OPTS = \
+ --prefix=$(TARGET_DIR) \
+ --pkg-config=$(PKG_CONFIG_HOST_BINARY) \
+ --pkgconfigdir=$(TARGET_DIR)/lib/pkgconfig \
+ --enable-cross-compile \
+ --disable-programs \
+ --disable-doc \
+ --disable-avdevice \
+ --disable-postproc \
+ --disable-swscale \
+ --disable-avfilter \
+ --disable-w32threads --disable-os2threads \
+ --disable-pixelutils \
+ --disable-everything \
+ --disable-hwaccels \
+ --disable-audiotoolbox \
+ --disable-iconv \
+ --disable-libxcb \
+ --disable-libxcb-shm \
+ --disable-libxcb-xfixes \
+ --disable-libxcb-shape \
+ --disable-schannel \
+ --disable-securetransport \
+ --disable-videotoolbox \
+ --disable-xlib \
+ --disable-asm \
+ --disable-zlib \
+ --cross-prefix=$(TARGET_CROSS) \
+ --target-os=linux \
+ --arch=armv7-a \
+ --disable-runtime-cpudetect \
+ --disable-htmlpages \
+ --disable-podpages \
+ --disable-txtpages
+
+FFMPEG_CONFIGURE_DEP_CONFIGS =
+
+FFMPEG_EXTRA_CFLAGS = -Wno-multichar
+
+ifneq ($(RV_ENABLE_DEBUG),n)
+FFMPEG_CONF_OPTS += --disable-debug
+endif
+
+ifeq ($(RV_OPTIMIZE_0),y)
+FFMPEG_CONF_OPTS += --disable-optimizations
+endif
+
+#ifeq ($(RV_STRIP_none),y)
+FFMPEG_CONF_OPTS += --disable-stripping
+#endif
+#FFMPEG_CONFIGURE_DEP_CONFIGS += RV_STRIP_none
+
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_FFPLAY),y)
+FFMPEG_CONF_OPTS += --disable-ffplay
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_FFPLAY
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_FFPORBE),y)
+FFMPEG_CONF_OPTS += --disable-ffprobe
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_FFPORBE
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_COREIMAGE),y)
+FFMPEG_CONF_OPTS += --disable-coreimage
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_COREIMAGE
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_VALGRINDBACKTRACE),y)
+FFMPEG_CONF_OPTS += --disable-valgrind-backtrace
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_VALGRINDBACKTRACE
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_LOGGING),y)
+FFMPEG_CONF_OPTS += --disable-logging
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_LOGGING
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_BSFS),y)
+FFMPEG_CONF_OPTS += --disable-bsfs
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_BSFS
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_MUXERS),y)
+FFMPEG_CONF_OPTS += --disable-muxers
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_MUXERS
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_DEMUXERS),y)
+FFMPEG_CONF_OPTS += --disable-demuxers
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_DEMUXERS
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_FILTERS),y)
+FFMPEG_CONF_OPTS += --disable-filters
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_FILTERS
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_ENCODERS),y)
+FFMPEG_CONF_OPTS += --disable-encoders
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_ENCODERS
+
+ifeq ($(RV_TARGET_FFMPEG_DISABLE_DECODERS),y)
+FFMPEG_CONF_OPTS += --disable-decoders
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DISABLE_DECODERS
+
+ifeq ($(BR2_ARM_CPU_HAS_VFPV2),y)
+FFMPEG_CONF_OPTS += --enable-vfp
+else
+FFMPEG_CONF_OPTS += --disable-vfp
+endif
+ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
+FFMPEG_CONF_OPTS += --enable-neon
+FFMPEG_EXTRA_CFLAGS += -mfpu=neon
+endif
+
+ifeq ($(RV_TARGET_FFMPEG_STATIC_LIB),y)
+FFMPEG_CONF_OPTS += --enable-static --disable-shared
+FFMPEG_TARGET_TYPE=a
+else
+FFMPEG_CONF_OPTS += --enable-shared --disable-static --enable-pic
+FFMPEG_TARGET_TYPE=so
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_STATIC_LIB
+
+ifeq ($(RV_TARGET_FFMPEG_FS_MANAGE),y)
+FFMPEG_EXTRA_CFLAGS += -DFS_CACHE=1
+FFMPEG_DEPENDENCIES += libfs_manage
+else
+FFMPEG_EXTRA_CFLAGS += -DFS_CACHE=0
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_FS_MANAGE
+
+FFMPEG_EXTRA_CFLAGS += -DMPP_DECODER_LIMIT_BUFFER_NUM=$(call qstrip,$(RV_TARGET_MPP_DECODER_LIMIT_BUFFER_NUM))
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_MPP_DECODER_LIMIT_BUFFER_NUM
+
+ifeq ($(RV_TARGET_FFMPEG_GPL),y)
+FFMPEG_CONF_OPTS += --enable-gpl
+else
+FFMPEG_CONF_OPTS += --disable-gpl
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_GPL
+
+ifeq ($(RV_TARGET_FFMPEG_NONFREE),y)
+FFMPEG_CONF_OPTS += --enable-nonfree
+else
+FFMPEG_CONF_OPTS += --disable-nonfree
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_NONFREE
+
+ifeq ($(RV_TARGET_FFMPEG_DEMUXER_H264),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=h264
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DEMUXER_H264
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_AVI),y)
+FFMPEG_CONF_OPTS += --enable-muxer=avi
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_AVI
+
+ifeq ($(RV_TARGET_FFMPEG_DEMUXER_AVI),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=avi
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DEMUXER_AVI
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_MPEGTS),y)
+FFMPEG_CONF_OPTS += --enable-muxer=mpegts
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_MPEGTS
+
+ifeq ($(RV_TARGET_FFMPEG_DEMUXER_MPEGTS),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mpegts
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DEMUXER_MPEGTS
+
+ifeq ($(RV_TARGET_FFMPEG_DEMUXER_MPEGPS),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mpegps
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DEMUXER_MPEGPS
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_RTP),y)
+FFMPEG_CONF_OPTS += --enable-muxer=rtp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_RTP
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_MP4),y)
+FFMPEG_CONF_OPTS += --enable-muxer=mp4
+ifeq ($(RV_TARGET_GPS_MOVTEXT),y)
+FFMPEG_CONF_OPTS += --enable-encoder=movtext
+endif
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_MP4
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_MOV),y)
+FFMPEG_CONF_OPTS += --enable-muxer=mov
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_MOV
+
+ifeq ($(RV_TARGET_FFMPEG_DEMUXER_MOV_MP4),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mov
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DEMUXER_MOV_MP4
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_RTP_MPEGTS),y)
+FFMPEG_CONF_OPTS += --enable-muxer=rtp_mpegts
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_RTP_MPEGTS
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_FLV),y)
+FFMPEG_CONF_OPTS += --enable-muxer=flv
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_FLV
+
+ifeq ($(RV_TARGET_FFMPEG_MUXER_ADTS),y)
+FFMPEG_CONF_OPTS += --enable-muxer=adts
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_MUXER_ADTS
+
+ifeq ($(RV_TARGET_FFMPEG_DEMUXER_AAC),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=aac
+FFMPEG_CONF_OPTS += --enable-parser=aac --enable-parser=aac_latm
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DEMUXER_AAC
+
+ifeq ($(RV_TARGET_FFMPEG_DEMUXER_RTSP),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=rtsp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_DEMUXER_RTSP
+
+ifeq ($(RV_TARGET_FFMPEG_PROTOCOL_FILE),y)
+FFMPEG_CONF_OPTS += --enable-protocol=file
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_PROTOCOL_FILE
+
+ifeq ($(RV_TARGET_FFMPEG_PROTOCOL_UDP),y)
+FFMPEG_CONF_OPTS += --enable-protocol=udp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_PROTOCOL_UDP
+
+ifeq ($(RV_TARGET_FFMPEG_PROTOCOL_TCP),y)
+FFMPEG_CONF_OPTS += --enable-protocol=tcp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_PROTOCOL_TCP
+
+ifeq ($(RV_TARGET_FFMPEG_PROTOCOL_RTP),y)
+FFMPEG_CONF_OPTS += --enable-protocol=rtp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_PROTOCOL_RTP
+
+ifeq ($(RV_TARGET_FFMPEG_LIBRTMP),y)
+FFMPEG_CONF_OPTS += --enable-protocol=librtmp --enable-librtmp
+FFMPEG_DEPENDENCIES += librtmp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_LIBRTMP
+
+################################################################
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_SMALL),y)
+FFMPEG_CONF_OPTS += --enable-small
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_SMALL
+
+####################### DECODER ################################
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DECODER_FDKAAC),y)
+FFMPEG_CONF_OPTS += --enable-decoder=libfdk_aac
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DECODER_FDKAAC
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DECODER_AAC),y)
+FFMPEG_CONF_OPTS += --enable-decoder=aac
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DECODER_AAC
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DECODER_AACAT),y)
+FFMPEG_CONF_OPTS += --enable-decoder=aac_at
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DECODER_AACAT
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DECODER_AACFIXED),y)
+FFMPEG_CONF_OPTS += --enable-decoder=aac_fixed
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DECODER_AACFIXED
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DECODER_AACLATM),y)
+FFMPEG_CONF_OPTS += --enable-decoder=aac_latm
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DECODER_AACLATM
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DECODER_RKMPP),y)
+FFMPEG_CONF_OPTS += --enable-decoder=h264_rkmpp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DECODER_RKMPP
+
+
+##################### ENCODER #######################
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_ENCODER_PCM16),y)
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_s16be
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_s16le
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_u16be
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_u16le
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_ENCODER_PCM16
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_ENCODER_PCM32),y)
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_s32be
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_s32le
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_u32be
+FFMPEG_CONF_OPTS += --enable-encoder=pcm_u32le
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_ENCODER_PCM32
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_ENCODER_RKMPP),y)
+FFMPEG_CONF_OPTS += --enable-encoder=h264_rkmpp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_ENCODER_RKMPP
+
+################# MUXER ##########################
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_MUXER_PCM32),y)
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_f32be
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_s32be
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_s32le
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_u32be
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_u32le
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_MUXER_PCM32
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_MUXER_PCM16),y)
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_s16be
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_s16le
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_u16be
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_u16le
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_MUXER_PCM16
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_MUXER_PCMALAW),y)
+FFMPEG_CONF_OPTS += --enable-muxer=pcm_alaw
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_MUXER_PCMALAW
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_MUXER_H264),y)
+FFMPEG_CONF_OPTS += --enable-muxer=h264
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_MUXER_H264
+
+########## DEMUXER ###############################
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCM32),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_f32be
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_f32le
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_s32be
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_s32le
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_u32be
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_u32le
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCM32
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCM16),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_s16be
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_s16le
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_u16be
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_u16le
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCM16
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCMALAW),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=pcm_alaw
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_PCMALAW
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MJPEG),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mjpeg
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MJPEG
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MJPEG2000),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mjpeg_2000
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MJPEG2000
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPEGTSRAW),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mpegtsraw
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPEGTSRAW
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPJPEG),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mpjpeg
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPJPEG
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPL2),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mpl2
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPL2
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_IPMOVIE),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=ipmovie
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_IPMOVIE
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MLP),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mlp
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MLP
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MLV),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mlv
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MLV
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MM),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mm
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MM
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MMF),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mmf
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MMF
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MOV),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mov
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MOV
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MP3),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mp3
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MP3
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPC),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mpc
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPC
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPC8),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=mpc8
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_MPC8
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_DEMUXER_WAV),y)
+FFMPEG_CONF_OPTS += --enable-demuxer=wav
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_DEMUXER_WAV
+
+############# PARSER #######################
+
+ifeq ($(RV_TARGET_FFMPEG_ENABLE_PARSER_H264),y)
+FFMPEG_CONF_OPTS += --enable-parser=h264
+endif
+FFMPEG_CONFIGURE_DEP_CONFIGS += RV_TARGET_FFMPEG_ENABLE_PARSER_H264
+
+FFMPEG_CONF_OPTS += --extra-cflags="$(FFMPEG_EXTRA_CFLAGS)"
+
+$(eval $(rv-generic-configure))
+
--
2.7.4