blob: c2d10f2661a3afe3399616c57ccc18761b6ea021 [file] [log] [blame]
TOOLCHAIN_PATH:=$(call my-dir)
LOCAL_PATH := $(TOOLCHAIN_PATH)/../../sources/pjmedia
ifeq ($(MY_USE_VIDEO),1)
# Video capture/render implementation
include $(CLEAR_VARS)
LOCAL_MODULE := pj_video_android
PJ_ANDROID_SRC_DIR := ../../android_sources/pjmedia/src
PJLIB_SRC_DIR := src/pjmedia
PJMEDIADEV_SRC_DIR := src/pjmedia-audiodev
PJMEDIADEV_VIDEO_SRC_DIR := src/pjmedia-videodev
PJMEDIACODEC_SRC_DIR := src/pjmedia-codec
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../webrtc/sources/modules/video_render/main/interface \
$(LOCAL_PATH)/../../../webrtc/sources/modules/video_capture/main/interface \
$(LOCAL_PATH)/../../../webrtc/sources/modules/interface \
$(LOCAL_PATH)/../../../webrtc/sources/system_wrappers/interface \
$(LOCAL_PATH)/../../../webrtc/sources/modules \
$(LOCAL_PATH)/../../../webrtc/sources \
$(LOCAL_PATH)/../pjlib/include $(LOCAL_PATH)/../pjlib-util/include \
$(LOCAL_PATH)/../pjsip/include \
$(LOCAL_PATH)/../pjnath/include $(LOCAL_PATH)/include $(LOCAL_PATH)/..
# We depends on csipsimple at this point because we need service to be stored somewhere
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../android_sources/pjmedia/include/pjmedia-videodev \
$(LOCAL_PATH)/../../../swig-glue \
$(LOCAL_PATH)/../../../csipsimple-wrapper/include
# Ffmpeg codec depend on ffmpeg
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../ffmpeg/ffmpeg_src
# Pj implementation for renderer
LOCAL_SRC_FILES += $(PJ_ANDROID_SRC_DIR)/pjmedia-videodev/webrtc_android_render_dev.cpp
# Pj implementation for capture
LOCAL_SRC_FILES += $(PJ_ANDROID_SRC_DIR)/pjmedia-videodev/webrtc_android_capture_dev.cpp
# Ffmpeg codec
LOCAL_SRC_FILES += $(PJMEDIACODEC_SRC_DIR)/ffmpeg_vid_codecs.c \
$(PJLIB_SRC_DIR)/converter_libswscale.c \
$(PJLIB_SRC_DIR)/ffmpeg_util.c \
$(PJMEDIACODEC_SRC_DIR)/h263_packetizer.c \
$(PJMEDIACODEC_SRC_DIR)/h264_packetizer.c \
$(PJLIB_SRC_DIR)/vid_codec_util.c
# For render and capture
LOCAL_STATIC_LIBRARIES += libwebrtc_video_render libwebrtc_video_capture
# Common webrtc utility
LOCAL_STATIC_LIBRARIES += libwebrtc_yuv libyuv libwebrtc_apm_utility \
libwebrtc_system_wrappers libwebrtc_spl
# Ffmpeg codec
BASE_FFMPEG_BUILD_DIR := $(LOCAL_PATH)/../../../ffmpeg/build/ffmpeg/$(TARGET_ARCH_ABI)/lib
LOCAL_LDLIBS += $(BASE_FFMPEG_BUILD_DIR)/libavcodec.a \
$(BASE_FFMPEG_BUILD_DIR)/libavformat.a \
$(BASE_FFMPEG_BUILD_DIR)/libswscale.a \
$(BASE_FFMPEG_BUILD_DIR)/libavutil.a
# Add X264
BASE_X264_BUILD_DIR := $(LOCAL_PATH)/../../../ffmpeg/build/x264/$(TARGET_ARCH_ABI)/lib
LOCAL_LDLIBS += $(BASE_X264_BUILD_DIR)/libx264.a
# Add ffmpeg to flags for pj part build
LOCAL_CFLAGS := $(MY_PJSIP_FLAGS) -DWEBRTC_ANDROID \
-DPJMEDIA_HAS_FFMPEG=1 \
-DPJMEDIA_HAS_FFMPEG_CODEC=1 \
-DPJMEDIA_HAS_FFMPEG_CODEC_H264=1
LOCAL_SHARED_LIBRARIES += libpjsipjni
LOCAL_LDLIBS += -lGLESv2 -llog
LOCAL_STATIC_LIBRARIES += libgcc cpufeatures
USE_STAGEFRIGHT_H264:=0
ANDROID_LIBS := ./jni/ffmpeg/ffmpeg_src/android-libs
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
ifeq ($(USE_STAGEFRIGHT_H264),1)
LOCAL_LDLIBS += -L$(ANDROID_LIBS) -Wl,-rpath-link,$(ANDROID_LIBS) -lstagefright -lutils -lbinder
endif
endif
include $(BUILD_SHARED_LIBRARY)
endif