297 lines
7.7 KiB
Plaintext
Executable File
297 lines
7.7 KiB
Plaintext
Executable File
APP := lib$(PROJECT)_$(MARCH).$(EXT)
|
|
|
|
THIRDPARTIES_INC := ../thirdparties/android/include
|
|
THIRDPARTIES_INC_COMMON := ../thirdparties/common/include
|
|
THIRDPARTIES_LIB := ../thirdparties/android/lib
|
|
THIRDPARTIES_MARCH_LIB := ../thirdparties/android/lib/$(MARCH)
|
|
|
|
##########
|
|
# Before starting to set parmeters we will override those provided by the user
|
|
#
|
|
|
|
ifeq ($(LICENSE),lgpl)
|
|
H264 := no
|
|
endif
|
|
|
|
|
|
##########
|
|
# Set LD and CFLAGS according to the user parameters
|
|
#
|
|
|
|
# FFMPEG (Default: enabled)
|
|
ifeq ($(FFMPEG), no)
|
|
FFMPEG_CFLAGS := -DHAVE_FFMPEG=0
|
|
FFMPEG_LDFLAGS :=
|
|
else
|
|
FFMPEG_CFLAGS := -DHAVE_FFMPEG=1
|
|
FFMPEG_LDFLAGS := -lavutil-$(LICENSE) -lswscale-$(LICENSE) -lavcore-$(LICENSE) -lavcodec-$(LICENSE)
|
|
endif
|
|
# LibYUV (Default: enabled)
|
|
ifeq ($(LIBYUV), no)
|
|
LIBYUV_CFLAGS := -DHAVE_LIBYUV=0
|
|
LIBYUV_LDFLAGS :=
|
|
else
|
|
LIBYUV_CFLAGS := -DHAVE_LIBYUV=1 -I$(THIRDPARTIES_INC_COMMON)/libyuv
|
|
LIBYUV_LDFLAGS := -lyuv_$(MARCH)
|
|
endif
|
|
# H264 (Default: enabled)
|
|
ifeq ($(H264),no) # TODO: should depend on FFMPEG
|
|
FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_H264=0
|
|
else
|
|
FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_H264=1
|
|
FFMPEG_LDFLAGS := $(FFMPEG_LDFLAGS) -lx264
|
|
endif
|
|
# THEORA (Default: enabled)
|
|
ifeq ($(THEORA),no) # TODO: should depend on FFMPEG
|
|
FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_THEORA=0
|
|
else
|
|
FFMPEG_CFLAGS := $(FFMPEG_CFLAGS) -DHAVE_THEORA=1
|
|
FFMPEG_LDFLAGS := $(FFMPEG_LDFLAGS) -ltheora -logg
|
|
endif
|
|
# VP8 (Default: disabled because of NEON)
|
|
ifeq ($(VPX),yes)
|
|
VPX_CFLAGS := -DHAVE_LIBVPX=1
|
|
VPX_LDFLAGS := -lvpx_$(MARCH)
|
|
|
|
else
|
|
VPX_CFLAGS := -DHAVE_LIBVPX=0
|
|
endif
|
|
|
|
# OPUS (Default: enabled)
|
|
ifeq ($(OPUS), no)
|
|
OPUS_CFLAGS := -DHAVE_LIBOPUS=0
|
|
else
|
|
OPUS_CFLAGS := -DHAVE_LIBOPUS=1
|
|
OPUS_LDFLAGS := -lopus
|
|
endif
|
|
|
|
# AMR (Default: enabled)
|
|
ifeq ($(OPENCORE_AMR), no)
|
|
OPENCORE_AMR_CFLAGS := -DHAVE_OPENCORE_AMR=0
|
|
else
|
|
OPENCORE_AMR_CFLAGS := -DHAVE_OPENCORE_AMR=1
|
|
OPENCORE_AMR_LDFLAGS := -lopencore-amrnb
|
|
endif
|
|
|
|
# SPEEX_DSP (Default: disabled)
|
|
ifeq ($(SPEEX_DSP), yes)
|
|
SPEEX_DSP_CFLAGS := -DHAVE_SPEEX_DSP=1
|
|
SPEEX_DSP_LDFLAGS := -lspeexdsp
|
|
# Speex audio resampler (Default: enabled)
|
|
ifneq ($(SPEEX_RESAMPLER), no)
|
|
SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_RESAMPLER=1
|
|
else
|
|
SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_RESAMPLER=0
|
|
endif
|
|
# Speex audio/video jitterbuffer (Default: enabled)
|
|
ifneq ($(SPEEX_JB), no)
|
|
SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_JB=1
|
|
else
|
|
SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_JB=0
|
|
endif
|
|
# Speex audio denoiser (Default: disabled)
|
|
ifeq ($(SPEEX_DENOISE), yes)
|
|
SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_DENOISE=1
|
|
else
|
|
SPEEX_DSP_CFLAGS := $(SPEEX_DSP_CFLAGS) -DHAVE_SPEEX_DENOISE=0
|
|
endif
|
|
else
|
|
SPEEX_DSP_CFLAGS := -DHAVE_SPEEX_DSP=0
|
|
endif
|
|
|
|
# SPEEX (Default: disabled)
|
|
ifeq ($(SPEEX), yes)
|
|
SPEEX_CFLAGS := -DHAVE_LIB_SPEEX=1
|
|
SPEEX_LDFLAGS := -lspeex
|
|
else
|
|
SPEEX_CFLAGS := -DHAVE_LIB_SPEEX=0
|
|
endif
|
|
|
|
# Google WebRTC (Default: enabled)
|
|
ifeq ($(WEBRTC), yes)
|
|
WEBRTC_CFLAGS := -DHAVE_WEBRTC=1
|
|
WEBRTC_LDFLAGS := -lwebrtc_aec_$(MARCH) -lwebrtc_spl_$(MARCH) -lwebrtc_apm_utility_$(MARCH) -lwebrtc_nsx_$(MARCH) -lwebrtc_system_wrappers_$(MARCH)
|
|
else
|
|
WEBRTC_CFLAGS := -DHAVE_WEBRTC=0
|
|
endif
|
|
|
|
ifeq ($(WEBRTC_DENOISE), yes)
|
|
WEBRTC_CFLAGS += -DHAVE_WEBRTC_DENOISE=1
|
|
endif
|
|
|
|
|
|
# ILBC (Default: disabled)
|
|
ifeq ($(ILBC), yes)
|
|
ILBC_CFLAGS := -DHAVE_ILBC=1
|
|
ILBC_LDFLAGS := -liLBC
|
|
else
|
|
ILBC_CFLAGS := -DHAVE_ILBC=0
|
|
endif
|
|
|
|
# GSM (Default: enabled)
|
|
ifeq ($(LIBGSM),no)
|
|
LIBGSM_CFLAGS := -DHAVE_LIBGSM=0
|
|
else
|
|
LIBGSM_CFLAGS := -DHAVE_LIBGSM=1
|
|
LIBGSM_LDFLAGS := -lgsm
|
|
endif
|
|
|
|
# BV16 (Always disabled)
|
|
#BV16_CFLAGS := -DHAVE_BV16=0 -I$(THIRDPARTIES_INC)/BroadVoice16/bv16 -I$(THIRDPARTIES_INC)/BroadVoice16/bvcommon
|
|
#BV16_LDFLAGS := -lbv16
|
|
|
|
# G.729 (Default: Disabled)
|
|
ifeq ($(G729), yes)
|
|
G729_CFLAGS := -DHAVE_G729=1 -DG729_ENABLE_VAD=0 -D__unix__
|
|
G729_LDFLAGS := -lg729b_$(MARCH)
|
|
|
|
# Reset all other ITU CODECS
|
|
OPENCORE_AMR_CFLAGS := -DHAVE_OPENCORE_AMR=0
|
|
OPENCORE_AMR_LDFLAGS :=
|
|
BV16_CFLAGS := -DHAVE_BV16=0
|
|
BV16_LDFLAGS :=
|
|
else
|
|
G729_CFLAGS := -DHAVE_G729=0
|
|
G729_LDFLAGS :=
|
|
endif
|
|
|
|
# SRTP (Default: enabled)
|
|
ifeq ($(SRTP),no)
|
|
LIBSRTP_CFLAGS := -DHAVE_SRTP=0
|
|
else
|
|
LIBSRTP_CFLAGS := -DHAVE_SRTP=1
|
|
LIBSRTP_LDFLAGS := -lsrtp
|
|
endif
|
|
|
|
|
|
################################
|
|
|
|
CFLAGS := $(CFLAGS_LIB) -I$(THIRDPARTIES_INC) -I$(THIRDPARTIES_INC_COMMON) $(ILBC_CFLAGS) $(LIBGSM_CFLAGS) \
|
|
$(FFMPEG_CFLAGS) $(LIBYUV_CFLAGS) $(VPX_CFLAGS) $(SPEEX_CFLAGS) $(SPEEX_DSP_CFLAGS) $(WEBRTC_CFLAGS) $(OPUS_CFLAGS) $(OPENCORE_AMR_CFLAGS) $(BV16_CFLAGS) $(G729_CFLAGS) \
|
|
$(LIBSRTP_CFLAGS) \
|
|
-I../tinySAK/src -I../tinyNET/src -I../tinyIPSec/src -I../tinySDP/include -I../tinyRTP/include -I../tinyMEDIA/include -I../tinyMSRP/include -I./include \
|
|
-DJB_HISTORY_SIZE=500
|
|
|
|
LDFLAGS := $(LDFLAGS_LIB) -L$(THIRDPARTIES_LIB) -L$(THIRDPARTIES_MARCH_LIB) \
|
|
$(FFMPEG_LDFLAGS) $(LIBYUV_LDFLAGS) $(VPX_LDFLAGS) $(SPEEX_LDFLAGS) $(SPEEX_DSP_LDFLAGS) $(WEBRTC_LDFLAGS) $(OPUS_LDFLAGS) $(OPENCORE_AMR_LDFLAGS) $(ILBC_LDFLAGS) $(LIBGSM_LDFLAGS) $(BV16_LDFLAGS) $(G729_LDFLAGS) \
|
|
$(LIBSRTP_LDFLAGS) \
|
|
-ltinySAK_$(MARCH) -ltinyNET_$(MARCH) -ltinyIPSec_$(MARCH) -ltinySDP_$(MARCH) -ltinyRTP_$(MARCH) -ltinyMEDIA_$(MARCH) -ltinyMSRP_$(MARCH) -lm -lgcc
|
|
|
|
all: $(APP)
|
|
|
|
OBJS = \
|
|
src/tdav.o \
|
|
src/tdav_session_av.o
|
|
|
|
### audio
|
|
OBJS += src/audio/tdav_consumer_audio.o \
|
|
src/audio/tdav_speakup_jitterbuffer.o \
|
|
src/audio/tdav_jitterbuffer.o \
|
|
src/audio/tdav_producer_audio.o \
|
|
src/audio/tdav_session_audio.o \
|
|
src/audio/tdav_speex_denoise.o \
|
|
src/audio/tdav_speex_jitterbuffer.o \
|
|
src/audio/tdav_speex_resampler.o \
|
|
src/audio/tdav_webrtc_denoise.o
|
|
|
|
### video
|
|
OBJS += src/video/tdav_consumer_video.o \
|
|
src/video/tdav_converter_video.o \
|
|
src/video/tdav_runnable_video.o \
|
|
src/video/tdav_session_video.o \
|
|
src/video/jb/tdav_video_frame.o \
|
|
src/video/jb/tdav_video_jb.o
|
|
|
|
### T.140
|
|
OBJS += src/t140/tdav_consumer_t140.o \
|
|
src/t140/tdav_producer_t140.o \
|
|
src/t140/tdav_session_t140.o
|
|
|
|
### msrp
|
|
OBJS += src/msrp/tdav_consumer_msrp.o \
|
|
src/msrp/tdav_producer_msrp.o \
|
|
src/msrp/tdav_session_msrp.o
|
|
|
|
### codecs (OPUS)
|
|
OBJS += src/codecs/opus/tdav_codec_opus.o
|
|
|
|
### codecs (AMR)
|
|
OBJS += src/codecs/amr/tdav_codec_amr.o
|
|
|
|
### codecs (G.711)
|
|
OBJS += src/codecs/g711/g711.o \
|
|
src/codecs/g711/tdav_codec_g711.o
|
|
|
|
### codecs (G.722)
|
|
OBJS += src/codecs/g722/g722_decode.o \
|
|
src/codecs/g722/g722_encode.o \
|
|
src/codecs/g722/tdav_codec_g722.o
|
|
|
|
### codecs (G.729)
|
|
OBJS += src/codecs/g729/tdav_codec_g729.o
|
|
|
|
### codecs (GSM)
|
|
OBJS += src/codecs/gsm/tdav_codec_gsm.o
|
|
|
|
### codecs (BV16)
|
|
OBJS += src/codecs/bv/tdav_codec_bv16.o \
|
|
src/codecs/bv/tdav_codec_bv32.o
|
|
|
|
### codecs (iLBC)
|
|
OBJS += src/codecs/ilbc/tdav_codec_ilbc.o
|
|
|
|
### codecs (Speex)
|
|
OBJS += src/codecs/speex/tdav_codec_speex.o
|
|
|
|
### codecs (DTMF)
|
|
OBJS += src/codecs/dtmf/tdav_codec_dtmf.o
|
|
|
|
### codecs (FEC)
|
|
OBJS += src/codecs/fec/tdav_codec_red.o \
|
|
src/codecs/fec/tdav_codec_ulpfec.o
|
|
|
|
### codecs (H.261)
|
|
OBJS += src/codecs/h261/tdav_codec_h261.o
|
|
|
|
### codecs (H.263)
|
|
OBJS += src/codecs/h263/tdav_codec_h263.o
|
|
|
|
### codecs (H.264)
|
|
OBJS += src/codecs/h264/tdav_codec_h264.o \
|
|
src/codecs/h264/tdav_codec_h264_rtp.o
|
|
|
|
### codecs (Theora)
|
|
OBJS += src/codecs/theora/tdav_codec_theora.o
|
|
|
|
### codecs (VPX)
|
|
OBJS += src/codecs/vpx/tdav_codec_vp8.o
|
|
|
|
### codecs (MP4V-ES)
|
|
OBJS += src/codecs/mp4ves/tdav_codec_mp4ves.o
|
|
|
|
### codecs (MSRP)
|
|
OBJS += src/codecs/msrp/tdav_codec_msrp.o
|
|
|
|
### T.140
|
|
OBJS += src/codecs/t140/tdav_codec_t140.o
|
|
|
|
$(APP): $(OBJS)
|
|
ifeq ($(EXT), a)
|
|
$(AR) rcs $@ $^
|
|
else
|
|
$(CC) $(LDFLAGS) -o $@ $^
|
|
endif
|
|
|
|
%.o: %.c
|
|
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
|
|
|
|
%.o: %.cxx
|
|
$(CPP) -c $(INCLUDE) $(CFLAGS) $< -o $@
|
|
|
|
install: $(APP)
|
|
$(ANDROID_SDK_ROOT)/tools/adb remount
|
|
$(ANDROID_SDK_ROOT)/tools/adb push $(APP) $(LIB_DIR)/$(APP)
|
|
$(ANDROID_SDK_ROOT)/tools/adb shell chmod 777 $(LIB_DIR)/$(APP)
|
|
|
|
clean:
|
|
@rm -f $(OBJS) $(APP) |