From 226e514675a10e583d2af123b2b6960043da1dca Mon Sep 17 00:00:00 2001 From: Francis Fan 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 (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