Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Side by Side Diff: talk/app/webrtc/java/jni/peerconnection_jni.cc

Issue 1335923002: Add RTC_ prefix to (D)CHECKs and related macros. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « talk/app/webrtc/java/jni/native_handle_impl.h ('k') | talk/app/webrtc/mediacontroller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2013 Google Inc. 3 * Copyright 2013 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // Set in PeerConnectionFactory_initializeAndroidGlobals(). 133 // Set in PeerConnectionFactory_initializeAndroidGlobals().
134 static bool factory_static_initialized = false; 134 static bool factory_static_initialized = false;
135 static bool video_hw_acceleration_enabled = true; 135 static bool video_hw_acceleration_enabled = true;
136 #endif 136 #endif
137 137
138 extern "C" jint JNIEXPORT JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { 138 extern "C" jint JNIEXPORT JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) {
139 jint ret = InitGlobalJniVariables(jvm); 139 jint ret = InitGlobalJniVariables(jvm);
140 if (ret < 0) 140 if (ret < 0)
141 return -1; 141 return -1;
142 142
143 CHECK(rtc::InitializeSSL()) << "Failed to InitializeSSL()"; 143 RTC_CHECK(rtc::InitializeSSL()) << "Failed to InitializeSSL()";
144 LoadGlobalClassReferenceHolder(); 144 LoadGlobalClassReferenceHolder();
145 145
146 return ret; 146 return ret;
147 } 147 }
148 148
149 extern "C" void JNIEXPORT JNICALL JNI_OnUnLoad(JavaVM *jvm, void *reserved) { 149 extern "C" void JNIEXPORT JNICALL JNI_OnUnLoad(JavaVM *jvm, void *reserved) {
150 FreeGlobalClassReferenceHolder(); 150 FreeGlobalClassReferenceHolder();
151 CHECK(rtc::CleanupSSL()) << "Failed to CleanupSSL()"; 151 RTC_CHECK(rtc::CleanupSSL()) << "Failed to CleanupSSL()";
152 } 152 }
153 153
154 // Return the (singleton) Java Enum object corresponding to |index|; 154 // Return the (singleton) Java Enum object corresponding to |index|;
155 // |state_class_fragment| is something like "MediaSource$State". 155 // |state_class_fragment| is something like "MediaSource$State".
156 static jobject JavaEnumFromIndex( 156 static jobject JavaEnumFromIndex(
157 JNIEnv* jni, const std::string& state_class_fragment, int index) { 157 JNIEnv* jni, const std::string& state_class_fragment, int index) {
158 const std::string state_class = "org/webrtc/" + state_class_fragment; 158 const std::string state_class = "org/webrtc/" + state_class_fragment;
159 return JavaEnumFromIndex(jni, FindClass(jni, state_class.c_str()), 159 return JavaEnumFromIndex(jni, FindClass(jni, state_class.c_str()),
160 state_class, index); 160 state_class, index);
161 } 161 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 212
213 virtual ~PCOJava() { 213 virtual ~PCOJava() {
214 ScopedLocalRefFrame local_ref_frame(jni()); 214 ScopedLocalRefFrame local_ref_frame(jni());
215 while (!remote_streams_.empty()) 215 while (!remote_streams_.empty())
216 DisposeRemoteStream(remote_streams_.begin()); 216 DisposeRemoteStream(remote_streams_.begin());
217 } 217 }
218 218
219 void OnIceCandidate(const IceCandidateInterface* candidate) override { 219 void OnIceCandidate(const IceCandidateInterface* candidate) override {
220 ScopedLocalRefFrame local_ref_frame(jni()); 220 ScopedLocalRefFrame local_ref_frame(jni());
221 std::string sdp; 221 std::string sdp;
222 CHECK(candidate->ToString(&sdp)) << "got so far: " << sdp; 222 RTC_CHECK(candidate->ToString(&sdp)) << "got so far: " << sdp;
223 jclass candidate_class = FindClass(jni(), "org/webrtc/IceCandidate"); 223 jclass candidate_class = FindClass(jni(), "org/webrtc/IceCandidate");
224 jmethodID ctor = GetMethodID(jni(), candidate_class, 224 jmethodID ctor = GetMethodID(jni(), candidate_class,
225 "<init>", "(Ljava/lang/String;ILjava/lang/String;)V"); 225 "<init>", "(Ljava/lang/String;ILjava/lang/String;)V");
226 jstring j_mid = JavaStringFromStdString(jni(), candidate->sdp_mid()); 226 jstring j_mid = JavaStringFromStdString(jni(), candidate->sdp_mid());
227 jstring j_sdp = JavaStringFromStdString(jni(), sdp); 227 jstring j_sdp = JavaStringFromStdString(jni(), sdp);
228 jobject j_candidate = jni()->NewObject( 228 jobject j_candidate = jni()->NewObject(
229 candidate_class, ctor, j_mid, candidate->sdp_mline_index(), j_sdp); 229 candidate_class, ctor, j_mid, candidate->sdp_mline_index(), j_sdp);
230 CHECK_EXCEPTION(jni()) << "error during NewObject"; 230 CHECK_EXCEPTION(jni()) << "error during NewObject";
231 jmethodID m = GetMethodID(jni(), *j_observer_class_, 231 jmethodID m = GetMethodID(jni(), *j_observer_class_,
232 "onIceCandidate", "(Lorg/webrtc/IceCandidate;)V"); 232 "onIceCandidate", "(Lorg/webrtc/IceCandidate;)V");
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 *j_media_stream_class_, 301 *j_media_stream_class_,
302 "audioTracks", 302 "audioTracks",
303 "Ljava/util/LinkedList;"); 303 "Ljava/util/LinkedList;");
304 jobject audio_tracks = GetObjectField(jni(), j_stream, audio_tracks_id); 304 jobject audio_tracks = GetObjectField(jni(), j_stream, audio_tracks_id);
305 jmethodID add = GetMethodID(jni(), 305 jmethodID add = GetMethodID(jni(),
306 GetObjectClass(jni(), audio_tracks), 306 GetObjectClass(jni(), audio_tracks),
307 "add", 307 "add",
308 "(Ljava/lang/Object;)Z"); 308 "(Ljava/lang/Object;)Z");
309 jboolean added = jni()->CallBooleanMethod(audio_tracks, add, j_track); 309 jboolean added = jni()->CallBooleanMethod(audio_tracks, add, j_track);
310 CHECK_EXCEPTION(jni()) << "error during CallBooleanMethod"; 310 CHECK_EXCEPTION(jni()) << "error during CallBooleanMethod";
311 CHECK(added); 311 RTC_CHECK(added);
312 } 312 }
313 313
314 for (const auto& track : stream->GetVideoTracks()) { 314 for (const auto& track : stream->GetVideoTracks()) {
315 jstring id = JavaStringFromStdString(jni(), track->id()); 315 jstring id = JavaStringFromStdString(jni(), track->id());
316 // Java VideoTrack holds one reference. Corresponding Release() is in 316 // Java VideoTrack holds one reference. Corresponding Release() is in
317 // MediaStreamTrack_free, triggered by VideoTrack.dispose(). 317 // MediaStreamTrack_free, triggered by VideoTrack.dispose().
318 track->AddRef(); 318 track->AddRef();
319 jobject j_track = 319 jobject j_track =
320 jni()->NewObject(*j_video_track_class_, j_video_track_ctor_, 320 jni()->NewObject(*j_video_track_class_, j_video_track_ctor_,
321 reinterpret_cast<jlong>(track.get()), id); 321 reinterpret_cast<jlong>(track.get()), id);
322 CHECK_EXCEPTION(jni()) << "error during NewObject"; 322 CHECK_EXCEPTION(jni()) << "error during NewObject";
323 jfieldID video_tracks_id = GetFieldID(jni(), 323 jfieldID video_tracks_id = GetFieldID(jni(),
324 *j_media_stream_class_, 324 *j_media_stream_class_,
325 "videoTracks", 325 "videoTracks",
326 "Ljava/util/LinkedList;"); 326 "Ljava/util/LinkedList;");
327 jobject video_tracks = GetObjectField(jni(), j_stream, video_tracks_id); 327 jobject video_tracks = GetObjectField(jni(), j_stream, video_tracks_id);
328 jmethodID add = GetMethodID(jni(), 328 jmethodID add = GetMethodID(jni(),
329 GetObjectClass(jni(), video_tracks), 329 GetObjectClass(jni(), video_tracks),
330 "add", 330 "add",
331 "(Ljava/lang/Object;)Z"); 331 "(Ljava/lang/Object;)Z");
332 jboolean added = jni()->CallBooleanMethod(video_tracks, add, j_track); 332 jboolean added = jni()->CallBooleanMethod(video_tracks, add, j_track);
333 CHECK_EXCEPTION(jni()) << "error during CallBooleanMethod"; 333 CHECK_EXCEPTION(jni()) << "error during CallBooleanMethod";
334 CHECK(added); 334 RTC_CHECK(added);
335 } 335 }
336 remote_streams_[stream] = NewGlobalRef(jni(), j_stream); 336 remote_streams_[stream] = NewGlobalRef(jni(), j_stream);
337 337
338 jmethodID m = GetMethodID(jni(), *j_observer_class_, "onAddStream", 338 jmethodID m = GetMethodID(jni(), *j_observer_class_, "onAddStream",
339 "(Lorg/webrtc/MediaStream;)V"); 339 "(Lorg/webrtc/MediaStream;)V");
340 jni()->CallVoidMethod(*j_observer_global_, m, j_stream); 340 jni()->CallVoidMethod(*j_observer_global_, m, j_stream);
341 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 341 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
342 } 342 }
343 343
344 void OnRemoveStream(MediaStreamInterface* stream) override { 344 void OnRemoveStream(MediaStreamInterface* stream) override {
345 ScopedLocalRefFrame local_ref_frame(jni()); 345 ScopedLocalRefFrame local_ref_frame(jni());
346 NativeToJavaStreamsMap::iterator it = remote_streams_.find(stream); 346 NativeToJavaStreamsMap::iterator it = remote_streams_.find(stream);
347 CHECK(it != remote_streams_.end()) << "unexpected stream: " << std::hex 347 RTC_CHECK(it != remote_streams_.end()) << "unexpected stream: " << std::hex
348 << stream; 348 << stream;
349 jobject j_stream = it->second; 349 jobject j_stream = it->second;
350 jmethodID m = GetMethodID(jni(), *j_observer_class_, "onRemoveStream", 350 jmethodID m = GetMethodID(jni(), *j_observer_class_, "onRemoveStream",
351 "(Lorg/webrtc/MediaStream;)V"); 351 "(Lorg/webrtc/MediaStream;)V");
352 jni()->CallVoidMethod(*j_observer_global_, m, j_stream); 352 jni()->CallVoidMethod(*j_observer_global_, m, j_stream);
353 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 353 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
354 DisposeRemoteStream(it); 354 DisposeRemoteStream(it);
355 } 355 }
356 356
357 void OnDataChannel(DataChannelInterface* channel) override { 357 void OnDataChannel(DataChannelInterface* channel) override {
358 ScopedLocalRefFrame local_ref_frame(jni()); 358 ScopedLocalRefFrame local_ref_frame(jni());
359 jobject j_channel = jni()->NewObject( 359 jobject j_channel = jni()->NewObject(
360 *j_data_channel_class_, j_data_channel_ctor_, (jlong)channel); 360 *j_data_channel_class_, j_data_channel_ctor_, (jlong)channel);
361 CHECK_EXCEPTION(jni()) << "error during NewObject"; 361 CHECK_EXCEPTION(jni()) << "error during NewObject";
362 362
363 jmethodID m = GetMethodID(jni(), *j_observer_class_, "onDataChannel", 363 jmethodID m = GetMethodID(jni(), *j_observer_class_, "onDataChannel",
364 "(Lorg/webrtc/DataChannel;)V"); 364 "(Lorg/webrtc/DataChannel;)V");
365 jni()->CallVoidMethod(*j_observer_global_, m, j_channel); 365 jni()->CallVoidMethod(*j_observer_global_, m, j_channel);
366 366
367 // Channel is now owned by Java object, and will be freed from 367 // Channel is now owned by Java object, and will be freed from
368 // DataChannel.dispose(). Important that this be done _after_ the 368 // DataChannel.dispose(). Important that this be done _after_ the
369 // CallVoidMethod above as Java code might call back into native code and be 369 // CallVoidMethod above as Java code might call back into native code and be
370 // surprised to see a refcount of 2. 370 // surprised to see a refcount of 2.
371 int bumped_count = channel->AddRef(); 371 int bumped_count = channel->AddRef();
372 CHECK(bumped_count == 2) << "Unexpected refcount OnDataChannel"; 372 RTC_CHECK(bumped_count == 2) << "Unexpected refcount OnDataChannel";
373 373
374 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 374 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
375 } 375 }
376 376
377 void OnRenegotiationNeeded() override { 377 void OnRenegotiationNeeded() override {
378 ScopedLocalRefFrame local_ref_frame(jni()); 378 ScopedLocalRefFrame local_ref_frame(jni());
379 jmethodID m = 379 jmethodID m =
380 GetMethodID(jni(), *j_observer_class_, "onRenegotiationNeeded", "()V"); 380 GetMethodID(jni(), *j_observer_class_, "onRenegotiationNeeded", "()V");
381 jni()->CallVoidMethod(*j_observer_global_, m); 381 jni()->CallVoidMethod(*j_observer_global_, m);
382 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod"; 382 CHECK_EXCEPTION(jni()) << "error during CallVoidMethod";
383 } 383 }
384 384
385 void SetConstraints(ConstraintsWrapper* constraints) { 385 void SetConstraints(ConstraintsWrapper* constraints) {
386 CHECK(!constraints_.get()) << "constraints already set!"; 386 RTC_CHECK(!constraints_.get()) << "constraints already set!";
387 constraints_.reset(constraints); 387 constraints_.reset(constraints);
388 } 388 }
389 389
390 const ConstraintsWrapper* constraints() { return constraints_.get(); } 390 const ConstraintsWrapper* constraints() { return constraints_.get(); }
391 391
392 private: 392 private:
393 typedef std::map<MediaStreamInterface*, jobject> NativeToJavaStreamsMap; 393 typedef std::map<MediaStreamInterface*, jobject> NativeToJavaStreamsMap;
394 394
395 void DisposeRemoteStream(const NativeToJavaStreamsMap::iterator& it) { 395 void DisposeRemoteStream(const NativeToJavaStreamsMap::iterator& it) {
396 jobject j_stream = it->second; 396 jobject j_stream = it->second;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 CHECK_EXCEPTION(jni) << "error during CallBooleanMethod"; 475 CHECK_EXCEPTION(jni) << "error during CallBooleanMethod";
476 } 476 }
477 477
478 Constraints mandatory_; 478 Constraints mandatory_;
479 Constraints optional_; 479 Constraints optional_;
480 }; 480 };
481 481
482 static jobject JavaSdpFromNativeSdp( 482 static jobject JavaSdpFromNativeSdp(
483 JNIEnv* jni, const SessionDescriptionInterface* desc) { 483 JNIEnv* jni, const SessionDescriptionInterface* desc) {
484 std::string sdp; 484 std::string sdp;
485 CHECK(desc->ToString(&sdp)) << "got so far: " << sdp; 485 RTC_CHECK(desc->ToString(&sdp)) << "got so far: " << sdp;
486 jstring j_description = JavaStringFromStdString(jni, sdp); 486 jstring j_description = JavaStringFromStdString(jni, sdp);
487 487
488 jclass j_type_class = FindClass( 488 jclass j_type_class = FindClass(
489 jni, "org/webrtc/SessionDescription$Type"); 489 jni, "org/webrtc/SessionDescription$Type");
490 jmethodID j_type_from_canonical = GetStaticMethodID( 490 jmethodID j_type_from_canonical = GetStaticMethodID(
491 jni, j_type_class, "fromCanonicalForm", 491 jni, j_type_class, "fromCanonicalForm",
492 "(Ljava/lang/String;)Lorg/webrtc/SessionDescription$Type;"); 492 "(Ljava/lang/String;)Lorg/webrtc/SessionDescription$Type;");
493 jstring j_type_string = JavaStringFromStdString(jni, desc->type()); 493 jstring j_type_string = JavaStringFromStdString(jni, desc->type());
494 jobject j_type = jni->CallStaticObjectMethod( 494 jobject j_type = jni->CallStaticObjectMethod(
495 j_type_class, j_type_from_canonical, j_type_string); 495 j_type_class, j_type_from_canonical, j_type_string);
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 return JavaStringFromStdString(jni, ExtractNativeDC(jni, j_dc)->label()); 864 return JavaStringFromStdString(jni, ExtractNativeDC(jni, j_dc)->label());
865 } 865 }
866 866
867 JOW(jobject, DataChannel_state)(JNIEnv* jni, jobject j_dc) { 867 JOW(jobject, DataChannel_state)(JNIEnv* jni, jobject j_dc) {
868 return JavaEnumFromIndex( 868 return JavaEnumFromIndex(
869 jni, "DataChannel$State", ExtractNativeDC(jni, j_dc)->state()); 869 jni, "DataChannel$State", ExtractNativeDC(jni, j_dc)->state());
870 } 870 }
871 871
872 JOW(jlong, DataChannel_bufferedAmount)(JNIEnv* jni, jobject j_dc) { 872 JOW(jlong, DataChannel_bufferedAmount)(JNIEnv* jni, jobject j_dc) {
873 uint64 buffered_amount = ExtractNativeDC(jni, j_dc)->buffered_amount(); 873 uint64 buffered_amount = ExtractNativeDC(jni, j_dc)->buffered_amount();
874 CHECK_LE(buffered_amount, std::numeric_limits<int64>::max()) 874 RTC_CHECK_LE(buffered_amount, std::numeric_limits<int64>::max())
875 << "buffered_amount overflowed jlong!"; 875 << "buffered_amount overflowed jlong!";
876 return static_cast<jlong>(buffered_amount); 876 return static_cast<jlong>(buffered_amount);
877 } 877 }
878 878
879 JOW(void, DataChannel_close)(JNIEnv* jni, jobject j_dc) { 879 JOW(void, DataChannel_close)(JNIEnv* jni, jobject j_dc) {
880 ExtractNativeDC(jni, j_dc)->Close(); 880 ExtractNativeDC(jni, j_dc)->Close();
881 } 881 }
882 882
883 JOW(jboolean, DataChannel_sendNative)(JNIEnv* jni, jobject j_dc, 883 JOW(jboolean, DataChannel_sendNative)(JNIEnv* jni, jobject j_dc,
884 jbyteArray data, jboolean binary) { 884 jbyteArray data, jboolean binary) {
(...skipping 11 matching lines...) Expand all
896 896
897 JOW(void, Logging_nativeEnableTracing)( 897 JOW(void, Logging_nativeEnableTracing)(
898 JNIEnv* jni, jclass, jstring j_path, jint nativeLevels, 898 JNIEnv* jni, jclass, jstring j_path, jint nativeLevels,
899 jint nativeSeverity) { 899 jint nativeSeverity) {
900 std::string path = JavaToStdString(jni, j_path); 900 std::string path = JavaToStdString(jni, j_path);
901 if (nativeLevels != webrtc::kTraceNone) { 901 if (nativeLevels != webrtc::kTraceNone) {
902 webrtc::Trace::set_level_filter(nativeLevels); 902 webrtc::Trace::set_level_filter(nativeLevels);
903 #if defined(ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) 903 #if defined(ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD)
904 if (path != "logcat:") { 904 if (path != "logcat:") {
905 #endif 905 #endif
906 CHECK_EQ(0, webrtc::Trace::SetTraceFile(path.c_str(), false)) 906 RTC_CHECK_EQ(0, webrtc::Trace::SetTraceFile(path.c_str(), false))
907 << "SetTraceFile failed"; 907 << "SetTraceFile failed";
908 #if defined(ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) 908 #if defined(ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD)
909 } else { 909 } else {
910 // Intentionally leak this to avoid needing to reason about its lifecycle. 910 // Intentionally leak this to avoid needing to reason about its lifecycle.
911 // It keeps no state and functions only as a dispatch point. 911 // It keeps no state and functions only as a dispatch point.
912 static LogcatTraceContext* g_trace_callback = new LogcatTraceContext(); 912 static LogcatTraceContext* g_trace_callback = new LogcatTraceContext();
913 } 913 }
914 #endif 914 #endif
915 } 915 }
916 if (nativeSeverity >= rtc::LS_SENSITIVE && nativeSeverity <= rtc::LS_ERROR) { 916 if (nativeSeverity >= rtc::LS_SENSITIVE && nativeSeverity <= rtc::LS_ERROR) {
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1080 // ThreadManager only WrapCurrentThread()s the thread where it is first 1080 // ThreadManager only WrapCurrentThread()s the thread where it is first
1081 // created. Since the semantics around when auto-wrapping happens in 1081 // created. Since the semantics around when auto-wrapping happens in
1082 // webrtc/base/ are convoluted, we simply wrap here to avoid having to think 1082 // webrtc/base/ are convoluted, we simply wrap here to avoid having to think
1083 // about ramifications of auto-wrapping there. 1083 // about ramifications of auto-wrapping there.
1084 rtc::ThreadManager::Instance()->WrapCurrentThread(); 1084 rtc::ThreadManager::Instance()->WrapCurrentThread();
1085 webrtc::Trace::CreateTrace(); 1085 webrtc::Trace::CreateTrace();
1086 Thread* worker_thread = new Thread(); 1086 Thread* worker_thread = new Thread();
1087 worker_thread->SetName("worker_thread", NULL); 1087 worker_thread->SetName("worker_thread", NULL);
1088 Thread* signaling_thread = new Thread(); 1088 Thread* signaling_thread = new Thread();
1089 signaling_thread->SetName("signaling_thread", NULL); 1089 signaling_thread->SetName("signaling_thread", NULL);
1090 CHECK(worker_thread->Start() && signaling_thread->Start()) 1090 RTC_CHECK(worker_thread->Start() && signaling_thread->Start())
1091 << "Failed to start threads"; 1091 << "Failed to start threads";
1092 WebRtcVideoEncoderFactory* encoder_factory = nullptr; 1092 WebRtcVideoEncoderFactory* encoder_factory = nullptr;
1093 WebRtcVideoDecoderFactory* decoder_factory = nullptr; 1093 WebRtcVideoDecoderFactory* decoder_factory = nullptr;
1094 #if defined(ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) 1094 #if defined(ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD)
1095 if (video_hw_acceleration_enabled) { 1095 if (video_hw_acceleration_enabled) {
1096 encoder_factory = new MediaCodecVideoEncoderFactory(); 1096 encoder_factory = new MediaCodecVideoEncoderFactory();
1097 decoder_factory = new MediaCodecVideoDecoderFactory(); 1097 decoder_factory = new MediaCodecVideoDecoderFactory();
1098 } 1098 }
1099 #endif 1099 #endif
1100 rtc::scoped_refptr<PeerConnectionFactoryInterface> factory( 1100 rtc::scoped_refptr<PeerConnectionFactoryInterface> factory(
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1244 1244
1245 if (enum_name == "RELAY") 1245 if (enum_name == "RELAY")
1246 return PeerConnectionInterface::kRelay; 1246 return PeerConnectionInterface::kRelay;
1247 1247
1248 if (enum_name == "NOHOST") 1248 if (enum_name == "NOHOST")
1249 return PeerConnectionInterface::kNoHost; 1249 return PeerConnectionInterface::kNoHost;
1250 1250
1251 if (enum_name == "NONE") 1251 if (enum_name == "NONE")
1252 return PeerConnectionInterface::kNone; 1252 return PeerConnectionInterface::kNone;
1253 1253
1254 CHECK(false) << "Unexpected IceTransportsType enum_name " << enum_name; 1254 RTC_CHECK(false) << "Unexpected IceTransportsType enum_name " << enum_name;
1255 return PeerConnectionInterface::kAll; 1255 return PeerConnectionInterface::kAll;
1256 } 1256 }
1257 1257
1258 static PeerConnectionInterface::BundlePolicy 1258 static PeerConnectionInterface::BundlePolicy
1259 JavaBundlePolicyToNativeType(JNIEnv* jni, jobject j_bundle_policy) { 1259 JavaBundlePolicyToNativeType(JNIEnv* jni, jobject j_bundle_policy) {
1260 std::string enum_name = GetJavaEnumName( 1260 std::string enum_name = GetJavaEnumName(
1261 jni, "org/webrtc/PeerConnection$BundlePolicy", 1261 jni, "org/webrtc/PeerConnection$BundlePolicy",
1262 j_bundle_policy); 1262 j_bundle_policy);
1263 1263
1264 if (enum_name == "BALANCED") 1264 if (enum_name == "BALANCED")
1265 return PeerConnectionInterface::kBundlePolicyBalanced; 1265 return PeerConnectionInterface::kBundlePolicyBalanced;
1266 1266
1267 if (enum_name == "MAXBUNDLE") 1267 if (enum_name == "MAXBUNDLE")
1268 return PeerConnectionInterface::kBundlePolicyMaxBundle; 1268 return PeerConnectionInterface::kBundlePolicyMaxBundle;
1269 1269
1270 if (enum_name == "MAXCOMPAT") 1270 if (enum_name == "MAXCOMPAT")
1271 return PeerConnectionInterface::kBundlePolicyMaxCompat; 1271 return PeerConnectionInterface::kBundlePolicyMaxCompat;
1272 1272
1273 CHECK(false) << "Unexpected BundlePolicy enum_name " << enum_name; 1273 RTC_CHECK(false) << "Unexpected BundlePolicy enum_name " << enum_name;
1274 return PeerConnectionInterface::kBundlePolicyBalanced; 1274 return PeerConnectionInterface::kBundlePolicyBalanced;
1275 } 1275 }
1276 1276
1277 static PeerConnectionInterface::RtcpMuxPolicy 1277 static PeerConnectionInterface::RtcpMuxPolicy
1278 JavaRtcpMuxPolicyToNativeType(JNIEnv* jni, jobject j_rtcp_mux_policy) { 1278 JavaRtcpMuxPolicyToNativeType(JNIEnv* jni, jobject j_rtcp_mux_policy) {
1279 std::string enum_name = GetJavaEnumName( 1279 std::string enum_name = GetJavaEnumName(
1280 jni, "org/webrtc/PeerConnection$RtcpMuxPolicy", 1280 jni, "org/webrtc/PeerConnection$RtcpMuxPolicy",
1281 j_rtcp_mux_policy); 1281 j_rtcp_mux_policy);
1282 1282
1283 if (enum_name == "NEGOTIATE") 1283 if (enum_name == "NEGOTIATE")
1284 return PeerConnectionInterface::kRtcpMuxPolicyNegotiate; 1284 return PeerConnectionInterface::kRtcpMuxPolicyNegotiate;
1285 1285
1286 if (enum_name == "REQUIRE") 1286 if (enum_name == "REQUIRE")
1287 return PeerConnectionInterface::kRtcpMuxPolicyRequire; 1287 return PeerConnectionInterface::kRtcpMuxPolicyRequire;
1288 1288
1289 CHECK(false) << "Unexpected RtcpMuxPolicy enum_name " << enum_name; 1289 RTC_CHECK(false) << "Unexpected RtcpMuxPolicy enum_name " << enum_name;
1290 return PeerConnectionInterface::kRtcpMuxPolicyNegotiate; 1290 return PeerConnectionInterface::kRtcpMuxPolicyNegotiate;
1291 } 1291 }
1292 1292
1293 static PeerConnectionInterface::TcpCandidatePolicy 1293 static PeerConnectionInterface::TcpCandidatePolicy
1294 JavaTcpCandidatePolicyToNativeType( 1294 JavaTcpCandidatePolicyToNativeType(
1295 JNIEnv* jni, jobject j_tcp_candidate_policy) { 1295 JNIEnv* jni, jobject j_tcp_candidate_policy) {
1296 std::string enum_name = GetJavaEnumName( 1296 std::string enum_name = GetJavaEnumName(
1297 jni, "org/webrtc/PeerConnection$TcpCandidatePolicy", 1297 jni, "org/webrtc/PeerConnection$TcpCandidatePolicy",
1298 j_tcp_candidate_policy); 1298 j_tcp_candidate_policy);
1299 1299
1300 if (enum_name == "ENABLED") 1300 if (enum_name == "ENABLED")
1301 return PeerConnectionInterface::kTcpCandidatePolicyEnabled; 1301 return PeerConnectionInterface::kTcpCandidatePolicyEnabled;
1302 1302
1303 if (enum_name == "DISABLED") 1303 if (enum_name == "DISABLED")
1304 return PeerConnectionInterface::kTcpCandidatePolicyDisabled; 1304 return PeerConnectionInterface::kTcpCandidatePolicyDisabled;
1305 1305
1306 CHECK(false) << "Unexpected TcpCandidatePolicy enum_name " << enum_name; 1306 RTC_CHECK(false) << "Unexpected TcpCandidatePolicy enum_name " << enum_name;
1307 return PeerConnectionInterface::kTcpCandidatePolicyEnabled; 1307 return PeerConnectionInterface::kTcpCandidatePolicyEnabled;
1308 } 1308 }
1309 1309
1310 static rtc::KeyType JavaKeyTypeToNativeType(JNIEnv* jni, jobject j_key_type) { 1310 static rtc::KeyType JavaKeyTypeToNativeType(JNIEnv* jni, jobject j_key_type) {
1311 std::string enum_name = GetJavaEnumName( 1311 std::string enum_name = GetJavaEnumName(
1312 jni, "org/webrtc/PeerConnection$KeyType", j_key_type); 1312 jni, "org/webrtc/PeerConnection$KeyType", j_key_type);
1313 1313
1314 if (enum_name == "RSA") 1314 if (enum_name == "RSA")
1315 return rtc::KT_RSA; 1315 return rtc::KT_RSA;
1316 if (enum_name == "ECDSA") 1316 if (enum_name == "ECDSA")
1317 return rtc::KT_ECDSA; 1317 return rtc::KT_ECDSA;
1318 1318
1319 CHECK(false) << "Unexpected KeyType enum_name " << enum_name; 1319 RTC_CHECK(false) << "Unexpected KeyType enum_name " << enum_name;
1320 return rtc::KT_ECDSA; 1320 return rtc::KT_ECDSA;
1321 } 1321 }
1322 1322
1323 static void JavaIceServersToJsepIceServers( 1323 static void JavaIceServersToJsepIceServers(
1324 JNIEnv* jni, jobject j_ice_servers, 1324 JNIEnv* jni, jobject j_ice_servers,
1325 PeerConnectionInterface::IceServers* ice_servers) { 1325 PeerConnectionInterface::IceServers* ice_servers) {
1326 jclass list_class = GetObjectClass(jni, j_ice_servers); 1326 jclass list_class = GetObjectClass(jni, j_ice_servers);
1327 jmethodID iterator_id = GetMethodID( 1327 jmethodID iterator_id = GetMethodID(
1328 jni, list_class, "iterator", "()Ljava/util/Iterator;"); 1328 jni, list_class, "iterator", "()Ljava/util/Iterator;");
1329 jobject iterator = jni->CallObjectMethod(j_ice_servers, iterator_id); 1329 jobject iterator = jni->CallObjectMethod(j_ice_servers, iterator_id);
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1470 JOW(jobject, PeerConnection_createDataChannel)( 1470 JOW(jobject, PeerConnection_createDataChannel)(
1471 JNIEnv* jni, jobject j_pc, jstring j_label, jobject j_init) { 1471 JNIEnv* jni, jobject j_pc, jstring j_label, jobject j_init) {
1472 DataChannelInit init = JavaDataChannelInitToNative(jni, j_init); 1472 DataChannelInit init = JavaDataChannelInitToNative(jni, j_init);
1473 rtc::scoped_refptr<DataChannelInterface> channel( 1473 rtc::scoped_refptr<DataChannelInterface> channel(
1474 ExtractNativePC(jni, j_pc)->CreateDataChannel( 1474 ExtractNativePC(jni, j_pc)->CreateDataChannel(
1475 JavaToStdString(jni, j_label), &init)); 1475 JavaToStdString(jni, j_label), &init));
1476 // Mustn't pass channel.get() directly through NewObject to avoid reading its 1476 // Mustn't pass channel.get() directly through NewObject to avoid reading its
1477 // vararg parameter as 64-bit and reading memory that doesn't belong to the 1477 // vararg parameter as 64-bit and reading memory that doesn't belong to the
1478 // 32-bit parameter. 1478 // 32-bit parameter.
1479 jlong nativeChannelPtr = jlongFromPointer(channel.get()); 1479 jlong nativeChannelPtr = jlongFromPointer(channel.get());
1480 CHECK(nativeChannelPtr) << "Failed to create DataChannel"; 1480 RTC_CHECK(nativeChannelPtr) << "Failed to create DataChannel";
1481 jclass j_data_channel_class = FindClass(jni, "org/webrtc/DataChannel"); 1481 jclass j_data_channel_class = FindClass(jni, "org/webrtc/DataChannel");
1482 jmethodID j_data_channel_ctor = GetMethodID( 1482 jmethodID j_data_channel_ctor = GetMethodID(
1483 jni, j_data_channel_class, "<init>", "(J)V"); 1483 jni, j_data_channel_class, "<init>", "(J)V");
1484 jobject j_channel = jni->NewObject( 1484 jobject j_channel = jni->NewObject(
1485 j_data_channel_class, j_data_channel_ctor, nativeChannelPtr); 1485 j_data_channel_class, j_data_channel_ctor, nativeChannelPtr);
1486 CHECK_EXCEPTION(jni) << "error during NewObject"; 1486 CHECK_EXCEPTION(jni) << "error during NewObject";
1487 // Channel is now owned by Java object, and will be freed from there. 1487 // Channel is now owned by Java object, and will be freed from there.
1488 int bumped_count = channel->AddRef(); 1488 int bumped_count = channel->AddRef();
1489 CHECK(bumped_count == 2) << "Unexpected refcount"; 1489 RTC_CHECK(bumped_count == 2) << "Unexpected refcount";
1490 return j_channel; 1490 return j_channel;
1491 } 1491 }
1492 1492
1493 JOW(void, PeerConnection_createOffer)( 1493 JOW(void, PeerConnection_createOffer)(
1494 JNIEnv* jni, jobject j_pc, jobject j_observer, jobject j_constraints) { 1494 JNIEnv* jni, jobject j_pc, jobject j_observer, jobject j_constraints) {
1495 ConstraintsWrapper* constraints = 1495 ConstraintsWrapper* constraints =
1496 new ConstraintsWrapper(jni, j_constraints); 1496 new ConstraintsWrapper(jni, j_constraints);
1497 rtc::scoped_refptr<CreateSdpObserverWrapper> observer( 1497 rtc::scoped_refptr<CreateSdpObserverWrapper> observer(
1498 new rtc::RefCountedObject<CreateSdpObserverWrapper>( 1498 new rtc::RefCountedObject<CreateSdpObserverWrapper>(
1499 jni, j_observer, constraints)); 1499 jni, j_observer, constraints));
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 AndroidVideoCapturerJni::Create(jni, j_video_capturer, j_device_name); 1641 AndroidVideoCapturerJni::Create(jni, j_video_capturer, j_device_name);
1642 if (!delegate.get()) 1642 if (!delegate.get())
1643 return nullptr; 1643 return nullptr;
1644 rtc::scoped_ptr<webrtc::AndroidVideoCapturer> capturer( 1644 rtc::scoped_ptr<webrtc::AndroidVideoCapturer> capturer(
1645 new webrtc::AndroidVideoCapturer(delegate)); 1645 new webrtc::AndroidVideoCapturer(delegate));
1646 1646
1647 #else 1647 #else
1648 std::string device_name = JavaToStdString(jni, j_device_name); 1648 std::string device_name = JavaToStdString(jni, j_device_name);
1649 scoped_ptr<cricket::DeviceManagerInterface> device_manager( 1649 scoped_ptr<cricket::DeviceManagerInterface> device_manager(
1650 cricket::DeviceManagerFactory::Create()); 1650 cricket::DeviceManagerFactory::Create());
1651 CHECK(device_manager->Init()) << "DeviceManager::Init() failed"; 1651 RTC_CHECK(device_manager->Init()) << "DeviceManager::Init() failed";
1652 cricket::Device device; 1652 cricket::Device device;
1653 if (!device_manager->GetVideoCaptureDevice(device_name, &device)) { 1653 if (!device_manager->GetVideoCaptureDevice(device_name, &device)) {
1654 LOG(LS_ERROR) << "GetVideoCaptureDevice failed for " << device_name; 1654 LOG(LS_ERROR) << "GetVideoCaptureDevice failed for " << device_name;
1655 return 0; 1655 return 0;
1656 } 1656 }
1657 scoped_ptr<cricket::VideoCapturer> capturer( 1657 scoped_ptr<cricket::VideoCapturer> capturer(
1658 device_manager->CreateVideoCapturer(device)); 1658 device_manager->CreateVideoCapturer(device));
1659 1659
1660 jclass j_video_capturer_class( 1660 jclass j_video_capturer_class(
1661 FindClass(jni, "org/webrtc/VideoCapturer")); 1661 FindClass(jni, "org/webrtc/VideoCapturer"));
(...skipping 26 matching lines...) Expand all
1688 scoped_ptr<JavaVideoRendererWrapper> renderer( 1688 scoped_ptr<JavaVideoRendererWrapper> renderer(
1689 new JavaVideoRendererWrapper(jni, j_callbacks)); 1689 new JavaVideoRendererWrapper(jni, j_callbacks));
1690 return (jlong)renderer.release(); 1690 return (jlong)renderer.release();
1691 } 1691 }
1692 1692
1693 JOW(void, VideoRenderer_nativeCopyPlane)( 1693 JOW(void, VideoRenderer_nativeCopyPlane)(
1694 JNIEnv *jni, jclass, jobject j_src_buffer, jint width, jint height, 1694 JNIEnv *jni, jclass, jobject j_src_buffer, jint width, jint height,
1695 jint src_stride, jobject j_dst_buffer, jint dst_stride) { 1695 jint src_stride, jobject j_dst_buffer, jint dst_stride) {
1696 size_t src_size = jni->GetDirectBufferCapacity(j_src_buffer); 1696 size_t src_size = jni->GetDirectBufferCapacity(j_src_buffer);
1697 size_t dst_size = jni->GetDirectBufferCapacity(j_dst_buffer); 1697 size_t dst_size = jni->GetDirectBufferCapacity(j_dst_buffer);
1698 CHECK(src_stride >= width) << "Wrong source stride " << src_stride; 1698 RTC_CHECK(src_stride >= width) << "Wrong source stride " << src_stride;
1699 CHECK(dst_stride >= width) << "Wrong destination stride " << dst_stride; 1699 RTC_CHECK(dst_stride >= width) << "Wrong destination stride " << dst_stride;
1700 CHECK(src_size >= src_stride * height) 1700 RTC_CHECK(src_size >= src_stride * height)
1701 << "Insufficient source buffer capacity " << src_size; 1701 << "Insufficient source buffer capacity " << src_size;
1702 CHECK(dst_size >= dst_stride * height) 1702 RTC_CHECK(dst_size >= dst_stride * height)
1703 << "Isufficient destination buffer capacity " << dst_size; 1703 << "Isufficient destination buffer capacity " << dst_size;
1704 uint8_t *src = 1704 uint8_t *src =
1705 reinterpret_cast<uint8_t*>(jni->GetDirectBufferAddress(j_src_buffer)); 1705 reinterpret_cast<uint8_t*>(jni->GetDirectBufferAddress(j_src_buffer));
1706 uint8_t *dst = 1706 uint8_t *dst =
1707 reinterpret_cast<uint8_t*>(jni->GetDirectBufferAddress(j_dst_buffer)); 1707 reinterpret_cast<uint8_t*>(jni->GetDirectBufferAddress(j_dst_buffer));
1708 if (src_stride == dst_stride) { 1708 if (src_stride == dst_stride) {
1709 memcpy(dst, src, src_stride * height); 1709 memcpy(dst, src, src_stride * height);
1710 } else { 1710 } else {
1711 for (int i = 0; i < height; i++) { 1711 for (int i = 0; i < height; i++) {
1712 memcpy(dst, src, width); 1712 memcpy(dst, src, width);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
1820 rtc::scoped_ptr<jbyte> buffer(static_cast<jbyte*>(malloc(log_size))); 1820 rtc::scoped_ptr<jbyte> buffer(static_cast<jbyte*>(malloc(log_size)));
1821 stream->ReadAll(buffer.get(), log_size, &read, nullptr); 1821 stream->ReadAll(buffer.get(), log_size, &read, nullptr);
1822 1822
1823 jbyteArray result = jni->NewByteArray(read); 1823 jbyteArray result = jni->NewByteArray(read);
1824 jni->SetByteArrayRegion(result, 0, read, buffer.get()); 1824 jni->SetByteArrayRegion(result, 0, read, buffer.get());
1825 1825
1826 return result; 1826 return result;
1827 } 1827 }
1828 1828
1829 } // namespace webrtc_jni 1829 } // namespace webrtc_jni
OLDNEW
« no previous file with comments | « talk/app/webrtc/java/jni/native_handle_impl.h ('k') | talk/app/webrtc/mediacontroller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698