Alexandre Lision | 17b60c3 | 2014-02-03 14:37:59 -0500 | [diff] [blame] | 1 | TOOLCHAIN_PATH:=$(call my-dir) |
| 2 | LOCAL_PATH := $(TOOLCHAIN_PATH)/../../sources/pjmedia |
| 3 | |
| 4 | ifeq ($(MY_USE_VIDEO),1) |
| 5 | # Video capture/render implementation |
| 6 | include $(CLEAR_VARS) |
| 7 | |
| 8 | LOCAL_MODULE := pj_video_android |
| 9 | |
| 10 | PJ_ANDROID_SRC_DIR := ../../android_sources/pjmedia/src |
| 11 | PJLIB_SRC_DIR := src/pjmedia |
| 12 | PJMEDIADEV_SRC_DIR := src/pjmedia-audiodev |
| 13 | PJMEDIADEV_VIDEO_SRC_DIR := src/pjmedia-videodev |
| 14 | PJMEDIACODEC_SRC_DIR := src/pjmedia-codec |
| 15 | |
| 16 | LOCAL_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 |
| 27 | LOCAL_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 |
| 32 | LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../ffmpeg/ffmpeg_src |
| 33 | |
| 34 | # Pj implementation for renderer |
| 35 | LOCAL_SRC_FILES += $(PJ_ANDROID_SRC_DIR)/pjmedia-videodev/webrtc_android_render_dev.cpp |
| 36 | # Pj implementation for capture |
| 37 | LOCAL_SRC_FILES += $(PJ_ANDROID_SRC_DIR)/pjmedia-videodev/webrtc_android_capture_dev.cpp |
| 38 | |
| 39 | # Ffmpeg codec |
| 40 | LOCAL_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 |
| 50 | LOCAL_STATIC_LIBRARIES += libwebrtc_video_render libwebrtc_video_capture |
| 51 | |
| 52 | # Common webrtc utility |
| 53 | LOCAL_STATIC_LIBRARIES += libwebrtc_yuv libyuv libwebrtc_apm_utility \ |
| 54 | libwebrtc_system_wrappers libwebrtc_spl |
| 55 | |
| 56 | |
| 57 | # Ffmpeg codec |
| 58 | BASE_FFMPEG_BUILD_DIR := $(LOCAL_PATH)/../../../ffmpeg/build/ffmpeg/$(TARGET_ARCH_ABI)/lib |
| 59 | LOCAL_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 |
| 65 | BASE_X264_BUILD_DIR := $(LOCAL_PATH)/../../../ffmpeg/build/x264/$(TARGET_ARCH_ABI)/lib |
| 66 | LOCAL_LDLIBS += $(BASE_X264_BUILD_DIR)/libx264.a |
| 67 | |
| 68 | # Add ffmpeg to flags for pj part build |
| 69 | LOCAL_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 | |
| 75 | LOCAL_SHARED_LIBRARIES += libpjsipjni |
| 76 | LOCAL_LDLIBS += -lGLESv2 -llog |
| 77 | LOCAL_STATIC_LIBRARIES += libgcc cpufeatures |
| 78 | |
| 79 | USE_STAGEFRIGHT_H264:=0 |
| 80 | ANDROID_LIBS := ./jni/ffmpeg/ffmpeg_src/android-libs |
| 81 | ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) |
| 82 | ifeq ($(USE_STAGEFRIGHT_H264),1) |
| 83 | LOCAL_LDLIBS += -L$(ANDROID_LIBS) -Wl,-rpath-link,$(ANDROID_LIBS) -lstagefright -lutils -lbinder |
| 84 | endif |
| 85 | endif |
| 86 | |
| 87 | include $(BUILD_SHARED_LIBRARY) |
| 88 | |
| 89 | endif |