| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  *  Copyright 2013 The WebRTC project authors. All Rights Reserved. | 2  *  Copyright 2013 The WebRTC project authors. All Rights Reserved. | 
| 3  * | 3  * | 
| 4  *  Use of this source code is governed by a BSD-style license | 4  *  Use of this source code is governed by a BSD-style license | 
| 5  *  that can be found in the LICENSE file in the root of the source | 5  *  that can be found in the LICENSE file in the root of the source | 
| 6  *  tree. An additional intellectual property rights grant can be found | 6  *  tree. An additional intellectual property rights grant can be found | 
| 7  *  in the file PATENTS.  All contributing project authors may | 7  *  in the file PATENTS.  All contributing project authors may | 
| 8  *  be found in the AUTHORS file in the root of the source tree. | 8  *  be found in the AUTHORS file in the root of the source tree. | 
| 9  */ | 9  */ | 
| 10 | 10 | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 54 #include "webrtc/base/checks.h" | 54 #include "webrtc/base/checks.h" | 
| 55 #include "webrtc/base/event_tracer.h" | 55 #include "webrtc/base/event_tracer.h" | 
| 56 #include "webrtc/base/logging.h" | 56 #include "webrtc/base/logging.h" | 
| 57 #include "webrtc/base/logsinks.h" | 57 #include "webrtc/base/logsinks.h" | 
| 58 #include "webrtc/base/messagequeue.h" | 58 #include "webrtc/base/messagequeue.h" | 
| 59 #include "webrtc/base/networkmonitor.h" | 59 #include "webrtc/base/networkmonitor.h" | 
| 60 #include "webrtc/base/rtccertificategenerator.h" | 60 #include "webrtc/base/rtccertificategenerator.h" | 
| 61 #include "webrtc/base/ssladapter.h" | 61 #include "webrtc/base/ssladapter.h" | 
| 62 #include "webrtc/base/stringutils.h" | 62 #include "webrtc/base/stringutils.h" | 
| 63 #include "webrtc/media/base/videocapturer.h" | 63 #include "webrtc/media/base/videocapturer.h" | 
| 64 #include "webrtc/media/engine/webrtcvideodecoderfactory.h" | 64 | 
| 65 #include "webrtc/media/engine/webrtcvideoencoderfactory.h" | 65 // Adding 'nogncheck' to disable the gn include header check. We don't want to | 
|  | 66 // depend on audio and video related targets when build the datachannel only | 
|  | 67 // targets. | 
|  | 68 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
|  | 69 #include "webrtc/media/engine/webrtcvideodecoderfactory.h"  // nogncheck | 
|  | 70 #include "webrtc/media/engine/webrtcvideoencoderfactory.h"  // nogncheck | 
|  | 71 #endif | 
|  | 72 | 
| 66 #include "webrtc/modules/utility/include/jvm_android.h" | 73 #include "webrtc/modules/utility/include/jvm_android.h" | 
| 67 #include "webrtc/system_wrappers/include/field_trial.h" | 74 #include "webrtc/system_wrappers/include/field_trial.h" | 
| 68 #include "webrtc/pc/webrtcsdp.h" | 75 #include "webrtc/pc/webrtcsdp.h" | 
| 69 #include "webrtc/sdk/android/src/jni/androidmediadecoder_jni.h" | 76 | 
| 70 #include "webrtc/sdk/android/src/jni/androidmediaencoder_jni.h" | 77 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
|  | 78 #include "webrtc/sdk/android/src/jni/androidmediadecoder_jni.h"  // nogncheck | 
|  | 79 #include "webrtc/sdk/android/src/jni/androidmediaencoder_jni.h"  // nogncheck | 
|  | 80 #endif | 
|  | 81 | 
| 71 #include "webrtc/sdk/android/src/jni/androidnetworkmonitor_jni.h" | 82 #include "webrtc/sdk/android/src/jni/androidnetworkmonitor_jni.h" | 
| 72 #include "webrtc/sdk/android/src/jni/androidvideotracksource.h" | 83 | 
|  | 84 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
|  | 85 #include "webrtc/sdk/android/src/jni/androidvideotracksource.h"  // nogncheck | 
|  | 86 #endif | 
|  | 87 | 
| 73 #include "webrtc/sdk/android/src/jni/classreferenceholder.h" | 88 #include "webrtc/sdk/android/src/jni/classreferenceholder.h" | 
| 74 #include "webrtc/sdk/android/src/jni/jni_helpers.h" | 89 #include "webrtc/sdk/android/src/jni/jni_helpers.h" | 
| 75 #include "webrtc/sdk/android/src/jni/native_handle_impl.h" | 90 | 
|  | 91 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
|  | 92 #include "webrtc/sdk/android/src/jni/native_handle_impl.h"  // nogncheck | 
|  | 93 #endif | 
|  | 94 | 
| 76 #include "webrtc/sdk/android/src/jni/rtcstatscollectorcallbackwrapper.h" | 95 #include "webrtc/sdk/android/src/jni/rtcstatscollectorcallbackwrapper.h" | 
| 77 // Adding 'nogncheck' to disable the gn include headers check. | 96 // Adding 'nogncheck' to disable the gn include headers check. | 
| 78 // We don't want to depend on 'system_wrappers:field_trial_default' because | 97 // We don't want to depend on 'system_wrappers:field_trial_default' because | 
| 79 // clients should be able to provide their own implementation. | 98 // clients should be able to provide their own implementation. | 
| 80 #include "webrtc/system_wrappers/include/field_trial_default.h" // nogncheck | 99 #include "webrtc/system_wrappers/include/field_trial_default.h" // nogncheck | 
| 81 #include "webrtc/system_wrappers/include/logcat_trace_context.h" | 100 #include "webrtc/system_wrappers/include/logcat_trace_context.h" | 
| 82 #include "webrtc/system_wrappers/include/trace.h" | 101 #include "webrtc/system_wrappers/include/trace.h" | 
| 83 #include "webrtc/voice_engine/include/voe_base.h" | 102 #include "webrtc/voice_engine/include/voe_base.h"  // nogncheck | 
| 84 | 103 | 
| 85 using cricket::WebRtcVideoDecoderFactory; | 104 using cricket::WebRtcVideoDecoderFactory; | 
| 86 using cricket::WebRtcVideoEncoderFactory; | 105 using cricket::WebRtcVideoEncoderFactory; | 
| 87 using rtc::Bind; | 106 using rtc::Bind; | 
| 88 using rtc::Thread; | 107 using rtc::Thread; | 
| 89 using rtc::ThreadManager; | 108 using rtc::ThreadManager; | 
| 90 using webrtc::AudioSourceInterface; | 109 using webrtc::AudioSourceInterface; | 
| 91 using webrtc::AudioTrackInterface; | 110 using webrtc::AudioTrackInterface; | 
| 92 using webrtc::AudioTrackVector; | 111 using webrtc::AudioTrackVector; | 
| 93 using webrtc::CreateSessionDescriptionObserver; | 112 using webrtc::CreateSessionDescriptionObserver; | 
| (...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 913     jni()->SetObjectArrayElement(planes, 2, v_buffer); | 932     jni()->SetObjectArrayElement(planes, 2, v_buffer); | 
| 914     return jni()->NewObject( | 933     return jni()->NewObject( | 
| 915         *j_frame_class_, j_i420_frame_ctor_id_, | 934         *j_frame_class_, j_i420_frame_ctor_id_, | 
| 916         frame->width(), frame->height(), | 935         frame->width(), frame->height(), | 
| 917         static_cast<int>(frame->rotation()), | 936         static_cast<int>(frame->rotation()), | 
| 918         strides, planes, javaShallowCopy(frame)); | 937         strides, planes, javaShallowCopy(frame)); | 
| 919   } | 938   } | 
| 920 | 939 | 
| 921   // Return a VideoRenderer.I420Frame referring texture object in |frame|. | 940   // Return a VideoRenderer.I420Frame referring texture object in |frame|. | 
| 922   jobject CricketToJavaTextureFrame(const webrtc::VideoFrame* frame) { | 941   jobject CricketToJavaTextureFrame(const webrtc::VideoFrame* frame) { | 
|  | 942     jfloatArray sampling_matrix; | 
|  | 943 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
| 923     NativeHandleImpl* handle = reinterpret_cast<NativeHandleImpl*>( | 944     NativeHandleImpl* handle = reinterpret_cast<NativeHandleImpl*>( | 
| 924         frame->video_frame_buffer()->native_handle()); | 945         frame->video_frame_buffer()->native_handle()); | 
| 925     jfloatArray sampling_matrix = handle->sampling_matrix.ToJava(jni()); | 946     sampling_matrix = handle->sampling_matrix.ToJava(jni()); | 
| 926 |  | 
| 927     return jni()->NewObject( | 947     return jni()->NewObject( | 
| 928         *j_frame_class_, j_texture_frame_ctor_id_, | 948         *j_frame_class_, j_texture_frame_ctor_id_, frame->width(), | 
| 929         frame->width(), frame->height(), | 949         frame->height(), static_cast<int>(frame->rotation()), | 
| 930         static_cast<int>(frame->rotation()), |  | 
| 931         handle->oes_texture_id, sampling_matrix, javaShallowCopy(frame)); | 950         handle->oes_texture_id, sampling_matrix, javaShallowCopy(frame)); | 
|  | 951 #else | 
|  | 952     jint texture_id = 0; | 
|  | 953     sampling_matrix = jni()->NewFloatArray(16); | 
|  | 954     return jni()->NewObject(*j_frame_class_, j_texture_frame_ctor_id_, | 
|  | 955                             frame->width(), frame->height(), | 
|  | 956                             static_cast<int>(frame->rotation()), texture_id, | 
|  | 957                             sampling_matrix, javaShallowCopy(frame)); | 
|  | 958 #endif | 
| 932   } | 959   } | 
| 933 | 960 | 
| 934   JNIEnv* jni() { | 961   JNIEnv* jni() { | 
| 935     return AttachCurrentThreadIfNeeded(); | 962     return AttachCurrentThreadIfNeeded(); | 
| 936   } | 963   } | 
| 937 | 964 | 
| 938   ScopedGlobalRef<jobject> j_callbacks_; | 965   ScopedGlobalRef<jobject> j_callbacks_; | 
| 939   jmethodID j_render_frame_id_; | 966   jmethodID j_render_frame_id_; | 
| 940   ScopedGlobalRef<jclass> j_frame_class_; | 967   ScopedGlobalRef<jclass> j_frame_class_; | 
| 941   jmethodID j_i420_frame_ctor_id_; | 968   jmethodID j_i420_frame_ctor_id_; | 
| (...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1346   WebRtcVideoEncoderFactory* encoder_factory = nullptr; | 1373   WebRtcVideoEncoderFactory* encoder_factory = nullptr; | 
| 1347   WebRtcVideoDecoderFactory* decoder_factory = nullptr; | 1374   WebRtcVideoDecoderFactory* decoder_factory = nullptr; | 
| 1348   rtc::NetworkMonitorFactory* network_monitor_factory = nullptr; | 1375   rtc::NetworkMonitorFactory* network_monitor_factory = nullptr; | 
| 1349 | 1376 | 
| 1350   PeerConnectionFactoryInterface::Options options; | 1377   PeerConnectionFactoryInterface::Options options; | 
| 1351   bool has_options = joptions != NULL; | 1378   bool has_options = joptions != NULL; | 
| 1352   if (has_options) { | 1379   if (has_options) { | 
| 1353     options = ParseOptionsFromJava(jni, joptions); | 1380     options = ParseOptionsFromJava(jni, joptions); | 
| 1354   } | 1381   } | 
| 1355 | 1382 | 
|  | 1383 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
| 1356   if (video_hw_acceleration_enabled) { | 1384   if (video_hw_acceleration_enabled) { | 
| 1357     encoder_factory = new MediaCodecVideoEncoderFactory(); | 1385     encoder_factory = new MediaCodecVideoEncoderFactory(); | 
| 1358     decoder_factory = new MediaCodecVideoDecoderFactory(); | 1386     decoder_factory = new MediaCodecVideoDecoderFactory(); | 
| 1359   } | 1387   } | 
|  | 1388 #endif | 
| 1360   // Do not create network_monitor_factory only if the options are | 1389   // Do not create network_monitor_factory only if the options are | 
| 1361   // provided and disable_network_monitor therein is set to true. | 1390   // provided and disable_network_monitor therein is set to true. | 
| 1362   if (!(has_options && options.disable_network_monitor)) { | 1391   if (!(has_options && options.disable_network_monitor)) { | 
| 1363     network_monitor_factory = new AndroidNetworkMonitorFactory(); | 1392     network_monitor_factory = new AndroidNetworkMonitorFactory(); | 
| 1364     rtc::NetworkMonitorFactory::SetFactory(network_monitor_factory); | 1393     rtc::NetworkMonitorFactory::SetFactory(network_monitor_factory); | 
| 1365   } | 1394   } | 
| 1366 | 1395 | 
| 1367   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 1396   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 
| 1368       webrtc::CreatePeerConnectionFactory( | 1397       webrtc::CreatePeerConnectionFactory( | 
| 1369           network_thread.get(), worker_thread.get(), signaling_thread.get(), | 1398           network_thread.get(), worker_thread.get(), signaling_thread.get(), | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1409   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 1438   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 
| 1410       factoryFromJava(native_factory)); | 1439       factoryFromJava(native_factory)); | 
| 1411   rtc::scoped_refptr<MediaStreamInterface> stream( | 1440   rtc::scoped_refptr<MediaStreamInterface> stream( | 
| 1412       factory->CreateLocalMediaStream(JavaToStdString(jni, label))); | 1441       factory->CreateLocalMediaStream(JavaToStdString(jni, label))); | 
| 1413   return (jlong)stream.release(); | 1442   return (jlong)stream.release(); | 
| 1414 } | 1443 } | 
| 1415 | 1444 | 
| 1416 JOW(jlong, PeerConnectionFactory_nativeCreateVideoSource) | 1445 JOW(jlong, PeerConnectionFactory_nativeCreateVideoSource) | 
| 1417 (JNIEnv* jni, jclass, jlong native_factory, jobject j_egl_context, | 1446 (JNIEnv* jni, jclass, jlong native_factory, jobject j_egl_context, | 
| 1418     jboolean is_screencast) { | 1447     jboolean is_screencast) { | 
|  | 1448 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
| 1419   OwnedFactoryAndThreads* factory = | 1449   OwnedFactoryAndThreads* factory = | 
| 1420       reinterpret_cast<OwnedFactoryAndThreads*>(native_factory); | 1450       reinterpret_cast<OwnedFactoryAndThreads*>(native_factory); | 
| 1421 | 1451 | 
| 1422   rtc::scoped_refptr<webrtc::AndroidVideoTrackSource> source( | 1452   rtc::scoped_refptr<webrtc::AndroidVideoTrackSource> source( | 
| 1423       new rtc::RefCountedObject<webrtc::AndroidVideoTrackSource>( | 1453       new rtc::RefCountedObject<webrtc::AndroidVideoTrackSource>( | 
| 1424           factory->signaling_thread(), jni, j_egl_context, is_screencast)); | 1454           factory->signaling_thread(), jni, j_egl_context, is_screencast)); | 
| 1425   rtc::scoped_refptr<webrtc::VideoTrackSourceProxy> proxy_source = | 1455   rtc::scoped_refptr<webrtc::VideoTrackSourceProxy> proxy_source = | 
| 1426       webrtc::VideoTrackSourceProxy::Create(factory->signaling_thread(), | 1456       webrtc::VideoTrackSourceProxy::Create(factory->signaling_thread(), | 
| 1427                                             factory->worker_thread(), source); | 1457                                             factory->worker_thread(), source); | 
| 1428 | 1458 | 
| 1429   return (jlong)proxy_source.release(); | 1459   return (jlong)proxy_source.release(); | 
|  | 1460 #else | 
|  | 1461   return (jlong)0; | 
|  | 1462 #endif | 
| 1430 } | 1463 } | 
| 1431 | 1464 | 
| 1432 JOW(void, PeerConnectionFactory_nativeInitializeVideoCapturer) | 1465 JOW(void, PeerConnectionFactory_nativeInitializeVideoCapturer) | 
| 1433 (JNIEnv* jni, | 1466 (JNIEnv* jni, | 
| 1434  jclass, | 1467  jclass, | 
| 1435  jlong native_factory, | 1468  jlong native_factory, | 
| 1436  jobject j_video_capturer, | 1469  jobject j_video_capturer, | 
| 1437  jlong native_source, | 1470  jlong native_source, | 
| 1438  jobject j_frame_observer) { | 1471  jobject j_frame_observer) { | 
|  | 1472 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
| 1439   LOG(LS_INFO) << "PeerConnectionFactory_nativeInitializeVideoCapturer"; | 1473   LOG(LS_INFO) << "PeerConnectionFactory_nativeInitializeVideoCapturer"; | 
| 1440   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 1474   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 
| 1441       factoryFromJava(native_factory)); | 1475       factoryFromJava(native_factory)); | 
| 1442   auto proxy_source = | 1476   auto proxy_source = | 
| 1443       reinterpret_cast<webrtc::VideoTrackSourceProxy*>(native_source); | 1477       reinterpret_cast<webrtc::VideoTrackSourceProxy*>(native_source); | 
| 1444   auto source = reinterpret_cast<webrtc::AndroidVideoTrackSource*>( | 1478   auto source = reinterpret_cast<webrtc::AndroidVideoTrackSource*>( | 
| 1445       proxy_source->internal()); | 1479       proxy_source->internal()); | 
| 1446   rtc::scoped_refptr<SurfaceTextureHelper> surface_texture_helper = | 1480   rtc::scoped_refptr<SurfaceTextureHelper> surface_texture_helper = | 
| 1447       source->surface_texture_helper(); | 1481       source->surface_texture_helper(); | 
| 1448   jni->CallVoidMethod( | 1482   jni->CallVoidMethod( | 
| 1449       j_video_capturer, | 1483       j_video_capturer, | 
| 1450       GetMethodID(jni, FindClass(jni, "org/webrtc/VideoCapturer"), "initialize", | 1484       GetMethodID(jni, FindClass(jni, "org/webrtc/VideoCapturer"), "initialize", | 
| 1451                   "(Lorg/webrtc/SurfaceTextureHelper;Landroid/content/" | 1485                   "(Lorg/webrtc/SurfaceTextureHelper;Landroid/content/" | 
| 1452                   "Context;Lorg/webrtc/VideoCapturer$CapturerObserver;)V"), | 1486                   "Context;Lorg/webrtc/VideoCapturer$CapturerObserver;)V"), | 
| 1453       surface_texture_helper | 1487       surface_texture_helper | 
| 1454           ? surface_texture_helper->GetJavaSurfaceTextureHelper() | 1488           ? surface_texture_helper->GetJavaSurfaceTextureHelper() | 
| 1455           : nullptr, | 1489           : nullptr, | 
| 1456       j_application_context, j_frame_observer); | 1490       j_application_context, j_frame_observer); | 
| 1457   CHECK_EXCEPTION(jni) << "error during VideoCapturer.initialize()"; | 1491   CHECK_EXCEPTION(jni) << "error during VideoCapturer.initialize()"; | 
|  | 1492 #endif | 
| 1458 } | 1493 } | 
| 1459 | 1494 | 
| 1460 JOW(jlong, PeerConnectionFactory_nativeCreateVideoTrack)( | 1495 JOW(jlong, PeerConnectionFactory_nativeCreateVideoTrack)( | 
| 1461     JNIEnv* jni, jclass, jlong native_factory, jstring id, | 1496     JNIEnv* jni, jclass, jlong native_factory, jstring id, | 
| 1462     jlong native_source) { | 1497     jlong native_source) { | 
| 1463   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 1498   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( | 
| 1464       factoryFromJava(native_factory)); | 1499       factoryFromJava(native_factory)); | 
| 1465   rtc::scoped_refptr<VideoTrackInterface> track(factory->CreateVideoTrack( | 1500   rtc::scoped_refptr<VideoTrackInterface> track(factory->CreateVideoTrack( | 
| 1466       JavaToStdString(jni, id), | 1501       JavaToStdString(jni, id), | 
| 1467       reinterpret_cast<VideoTrackSourceInterface*>(native_source))); | 1502       reinterpret_cast<VideoTrackSourceInterface*>(native_source))); | 
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1522       rtc::NetworkMonitorFactory::ReleaseFactory( | 1557       rtc::NetworkMonitorFactory::ReleaseFactory( | 
| 1523           owner->network_monitor_factory()); | 1558           owner->network_monitor_factory()); | 
| 1524       owner->clear_network_monitor_factory(); | 1559       owner->clear_network_monitor_factory(); | 
| 1525     } | 1560     } | 
| 1526   } | 1561   } | 
| 1527 } | 1562 } | 
| 1528 | 1563 | 
| 1529 JOW(void, PeerConnectionFactory_nativeSetVideoHwAccelerationOptions)( | 1564 JOW(void, PeerConnectionFactory_nativeSetVideoHwAccelerationOptions)( | 
| 1530     JNIEnv* jni, jclass, jlong native_factory, jobject local_egl_context, | 1565     JNIEnv* jni, jclass, jlong native_factory, jobject local_egl_context, | 
| 1531     jobject remote_egl_context) { | 1566     jobject remote_egl_context) { | 
|  | 1567 #if defined(HAVE_WEBRTC_VOICE) && defined(HAVE_WEBRTC_VIDEO) | 
| 1532   OwnedFactoryAndThreads* owned_factory = | 1568   OwnedFactoryAndThreads* owned_factory = | 
| 1533       reinterpret_cast<OwnedFactoryAndThreads*>(native_factory); | 1569       reinterpret_cast<OwnedFactoryAndThreads*>(native_factory); | 
| 1534 | 1570 | 
| 1535   jclass j_eglbase14_context_class = | 1571   jclass j_eglbase14_context_class = | 
| 1536       FindClass(jni, "org/webrtc/EglBase14$Context"); | 1572       FindClass(jni, "org/webrtc/EglBase14$Context"); | 
| 1537 | 1573 | 
| 1538   MediaCodecVideoEncoderFactory* encoder_factory = | 1574   MediaCodecVideoEncoderFactory* encoder_factory = | 
| 1539       static_cast<MediaCodecVideoEncoderFactory*> | 1575       static_cast<MediaCodecVideoEncoderFactory*> | 
| 1540           (owned_factory->encoder_factory()); | 1576           (owned_factory->encoder_factory()); | 
| 1541   if (encoder_factory && | 1577   if (encoder_factory && | 
| 1542       jni->IsInstanceOf(local_egl_context, j_eglbase14_context_class)) { | 1578       jni->IsInstanceOf(local_egl_context, j_eglbase14_context_class)) { | 
| 1543     LOG(LS_INFO) << "Set EGL context for HW encoding."; | 1579     LOG(LS_INFO) << "Set EGL context for HW encoding."; | 
| 1544     encoder_factory->SetEGLContext(jni, local_egl_context); | 1580     encoder_factory->SetEGLContext(jni, local_egl_context); | 
| 1545   } | 1581   } | 
| 1546 | 1582 | 
| 1547   MediaCodecVideoDecoderFactory* decoder_factory = | 1583   MediaCodecVideoDecoderFactory* decoder_factory = | 
| 1548       static_cast<MediaCodecVideoDecoderFactory*> | 1584       static_cast<MediaCodecVideoDecoderFactory*> | 
| 1549           (owned_factory->decoder_factory()); | 1585           (owned_factory->decoder_factory()); | 
| 1550   if (decoder_factory) { | 1586   if (decoder_factory) { | 
| 1551     LOG(LS_INFO) << "Set EGL context for HW decoding."; | 1587     LOG(LS_INFO) << "Set EGL context for HW decoding."; | 
| 1552     decoder_factory->SetEGLContext(jni, remote_egl_context); | 1588     decoder_factory->SetEGLContext(jni, remote_egl_context); | 
| 1553   } | 1589   } | 
|  | 1590 #endif | 
| 1554 } | 1591 } | 
| 1555 | 1592 | 
| 1556 static PeerConnectionInterface::IceTransportsType | 1593 static PeerConnectionInterface::IceTransportsType | 
| 1557 JavaIceTransportsTypeToNativeType(JNIEnv* jni, jobject j_ice_transports_type) { | 1594 JavaIceTransportsTypeToNativeType(JNIEnv* jni, jobject j_ice_transports_type) { | 
| 1558   std::string enum_name = GetJavaEnumName( | 1595   std::string enum_name = GetJavaEnumName( | 
| 1559       jni, "org/webrtc/PeerConnection$IceTransportsType", | 1596       jni, "org/webrtc/PeerConnection$IceTransportsType", | 
| 1560       j_ice_transports_type); | 1597       j_ice_transports_type); | 
| 1561 | 1598 | 
| 1562   if (enum_name == "ALL") | 1599   if (enum_name == "ALL") | 
| 1563     return PeerConnectionInterface::kAll; | 1600     return PeerConnectionInterface::kAll; | 
| (...skipping 1177 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2741   return reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer) | 2778   return reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer) | 
| 2742       ->inter_tone_gap(); | 2779       ->inter_tone_gap(); | 
| 2743 } | 2780 } | 
| 2744 | 2781 | 
| 2745 JOW(void, DtmfSender_free) | 2782 JOW(void, DtmfSender_free) | 
| 2746 (JNIEnv* jni, jclass, jlong j_dtmf_sender_pointer) { | 2783 (JNIEnv* jni, jclass, jlong j_dtmf_sender_pointer) { | 
| 2747   reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer)->Release(); | 2784   reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer)->Release(); | 
| 2748 } | 2785 } | 
| 2749 | 2786 | 
| 2750 }  // namespace webrtc_jni | 2787 }  // namespace webrtc_jni | 
| OLD | NEW | 
|---|