|
本帖最后由 ancientcc 于 2018-10-21 11:52 编辑
<webrtc>/common_audio/signal_processing/dot_product_with_scale.cc改名为dot_product_with_scale1.cc。——在NDK编译时,用dot_product_with_scale.cc总是被认为dot_product_with_scale.c,然后出了找不到源文件错。
- <webrtc>/base/signalthread.cc
要让在Release时也进行验证。
- SignalThread::~SignalThread()中的内容
- ASSERT(refcount_ == 0);
- 改为
- RTC_CHECK(refcount_ == 0);
复制代码
SignalThread实现双线程协作的后台任务时有个特殊地方:删除时不能直接调用析构函数,而是调用SignalThread: estroy。此个修改避免app还是调用析构函数。
- <webrtc>/modules/video_capture/android
支持了Andorid采集视频,增加此目录。
- <webrtc>/modules/utility/source/jvm_android.cc
loaded_classes[]增加
- struct {
- const char* name;
- jclass clazz;
- } loaded_classes[] = {
- ......
- {"org/webrtc/videoengine/WebRtcVideoCapturer", nullptr},
- }
复制代码
- <webrtc>/modules/video_capture/video_capture_factory.cc
VideoCaptureFactory::Create、VideoCaptureFactory::CreateDeviceInfo,所有平台一样处理。
- rtc::scoped_refptr<VideoCaptureModule> VideoCaptureFactory::Create(
- const char* deviceUniqueIdUTF8) {
- return videocapturemodule::VideoCaptureImpl::Create(deviceUniqueIdUTF8);
- }
- VideoCaptureModule::DeviceInfo* VideoCaptureFactory::CreateDeviceInfo() {
- return videocapturemodule::VideoCaptureImpl::CreateDeviceInfo();
- }
复制代码
- <webrtc>/modules/utility/include/jvm_android.h
class GlobalRef增加两个方法。- JNIEnv* const jni() { return jni_; }
- const jobject j_object() { return j_object_; }
复制代码
Android项目中需要复制的java文件
- android_library("libjingle_peerconnection_java")
- {
- ......
- deps = [
- "../../modules/audio_device:audio_device_java",
- "../../rtc_base:base_java",
- ]
- }
复制代码
- 对于jin_generator.py生成的*.h
- #include <jni.h>
- 改为
- #include "sdk/android/src/jni/jni_generator_helper.h"
复制代码
- android不要忘了編译jni_onload.cc,否则SDL得到的JavaVM会传不到webrtc模块
- 为让MediaCodec解码h264流需进行些修改,详见MediaCodec解码h264流,floor#2
|
|