blob: c2d10f2661a3afe3399616c57ccc18761b6ea021 [file] [log] [blame]
Alexandre Lision17b60c32014-02-03 14:37:59 -05001TOOLCHAIN_PATH:=$(call my-dir)
2LOCAL_PATH := $(TOOLCHAIN_PATH)/../../sources/pjmedia
3
4ifeq ($(MY_USE_VIDEO),1)
5# Video capture/render implementation
6include $(CLEAR_VARS)
7
8LOCAL_MODULE := pj_video_android
9
10PJ_ANDROID_SRC_DIR := ../../android_sources/pjmedia/src
11PJLIB_SRC_DIR := src/pjmedia
12PJMEDIADEV_SRC_DIR := src/pjmedia-audiodev
13PJMEDIADEV_VIDEO_SRC_DIR := src/pjmedia-videodev
14PJMEDIACODEC_SRC_DIR := src/pjmedia-codec
15
16LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../webrtc/sources/modules/video_render/main/interface \
17 $(LOCAL_PATH)/../../../webrtc/sources/modules/video_capture/main/interface \
18 $(LOCAL_PATH)/../../../webrtc/sources/modules/interface \
19 $(LOCAL_PATH)/../../../webrtc/sources/system_wrappers/interface \
20 $(LOCAL_PATH)/../../../webrtc/sources/modules \
21 $(LOCAL_PATH)/../../../webrtc/sources \
22 $(LOCAL_PATH)/../pjlib/include $(LOCAL_PATH)/../pjlib-util/include \
23 $(LOCAL_PATH)/../pjsip/include \
24 $(LOCAL_PATH)/../pjnath/include $(LOCAL_PATH)/include $(LOCAL_PATH)/..
25
26# We depends on csipsimple at this point because we need service to be stored somewhere
27LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../android_sources/pjmedia/include/pjmedia-videodev \
28 $(LOCAL_PATH)/../../../swig-glue \
29 $(LOCAL_PATH)/../../../csipsimple-wrapper/include
30
31# Ffmpeg codec depend on ffmpeg
32LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../ffmpeg/ffmpeg_src
33
34# Pj implementation for renderer
35LOCAL_SRC_FILES += $(PJ_ANDROID_SRC_DIR)/pjmedia-videodev/webrtc_android_render_dev.cpp
36# Pj implementation for capture
37LOCAL_SRC_FILES += $(PJ_ANDROID_SRC_DIR)/pjmedia-videodev/webrtc_android_capture_dev.cpp
38
39# Ffmpeg codec
40LOCAL_SRC_FILES += $(PJMEDIACODEC_SRC_DIR)/ffmpeg_vid_codecs.c \
41 $(PJLIB_SRC_DIR)/converter_libswscale.c \
42 $(PJLIB_SRC_DIR)/ffmpeg_util.c \
43 $(PJMEDIACODEC_SRC_DIR)/h263_packetizer.c \
44 $(PJMEDIACODEC_SRC_DIR)/h264_packetizer.c \
45 $(PJLIB_SRC_DIR)/vid_codec_util.c
46
47
48
49# For render and capture
50LOCAL_STATIC_LIBRARIES += libwebrtc_video_render libwebrtc_video_capture
51
52# Common webrtc utility
53LOCAL_STATIC_LIBRARIES += libwebrtc_yuv libyuv libwebrtc_apm_utility \
54 libwebrtc_system_wrappers libwebrtc_spl
55
56
57# Ffmpeg codec
58BASE_FFMPEG_BUILD_DIR := $(LOCAL_PATH)/../../../ffmpeg/build/ffmpeg/$(TARGET_ARCH_ABI)/lib
59LOCAL_LDLIBS += $(BASE_FFMPEG_BUILD_DIR)/libavcodec.a \
60 $(BASE_FFMPEG_BUILD_DIR)/libavformat.a \
61 $(BASE_FFMPEG_BUILD_DIR)/libswscale.a \
62 $(BASE_FFMPEG_BUILD_DIR)/libavutil.a
63
64# Add X264
65BASE_X264_BUILD_DIR := $(LOCAL_PATH)/../../../ffmpeg/build/x264/$(TARGET_ARCH_ABI)/lib
66LOCAL_LDLIBS += $(BASE_X264_BUILD_DIR)/libx264.a
67
68# Add ffmpeg to flags for pj part build
69LOCAL_CFLAGS := $(MY_PJSIP_FLAGS) -DWEBRTC_ANDROID \
70 -DPJMEDIA_HAS_FFMPEG=1 \
71 -DPJMEDIA_HAS_FFMPEG_CODEC=1 \
72 -DPJMEDIA_HAS_FFMPEG_CODEC_H264=1
73
74
75LOCAL_SHARED_LIBRARIES += libpjsipjni
76LOCAL_LDLIBS += -lGLESv2 -llog
77LOCAL_STATIC_LIBRARIES += libgcc cpufeatures
78
79USE_STAGEFRIGHT_H264:=0
80ANDROID_LIBS := ./jni/ffmpeg/ffmpeg_src/android-libs
81ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
82ifeq ($(USE_STAGEFRIGHT_H264),1)
83 LOCAL_LDLIBS += -L$(ANDROID_LIBS) -Wl,-rpath-link,$(ANDROID_LIBS) -lstagefright -lutils -lbinder
84endif
85endif
86
87include $(BUILD_SHARED_LIBRARY)
88
89endif