1# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2# 3# Use of this source code is governed by a BSD-style license 4# that can be found in the LICENSE file in the root of the source 5# tree. An additional intellectual property rights grant can be found 6# in the file PATENTS. All contributing project authors may 7# be found in the AUTHORS file in the root of the source tree. 8 9if (is_android) { 10 import("//build/config/android/config.gni") 11 import("//build/config/android/rules.gni") 12 import("../../webrtc.gni") 13 14 group("android") { 15 if (!build_with_chromium && is_android) { 16 public_deps = [ 17 ":libjingle_peerconnection_jni", 18 ":libjingle_peerconnection_so", 19 ":libwebrtc", 20 ":native_api", 21 ] 22 } 23 } 24 25 ##################### 26 # Aggregate targets # 27 ##################### 28 29 dist_jar("libwebrtc") { 30 _target_dir_name = get_label_info(":$target_name", "dir") 31 output = "${root_out_dir}/lib.java${_target_dir_name}/${target_name}.jar" 32 direct_deps_only = true 33 use_unprocessed_jars = true 34 requires_android = true 35 no_build_hooks = true 36 37 deps = [ 38 ":audio_api_java", 39 ":base_java", 40 ":builtin_audio_codecs_java", 41 ":camera_java", 42 ":default_video_codec_factory_java", 43 ":filevideo_java", 44 ":hwcodecs_java", 45 ":java_audio_device_module_java", 46 ":libjingle_peerconnection_java", 47 ":libjingle_peerconnection_metrics_default_java", 48 ":libvpx_vp8_java", 49 ":libvpx_vp9_java", 50 ":logging_java", 51 ":peerconnection_java", 52 ":screencapturer_java", 53 ":surfaceviewrenderer_java", 54 ":swcodecs_java", 55 ":video_api_java", 56 ":video_java", 57 "../../modules/audio_device:audio_device_java", 58 "../../rtc_base:base_java", 59 ] 60 } 61 62 # The native API is currently experimental and may change without notice. 63 group("native_api") { 64 deps = [ 65 ":native_api_audio_device_module", 66 ":native_api_base", 67 ":native_api_codecs", 68 ":native_api_jni", 69 ":native_api_peerconnection", 70 ":native_api_stacktrace", 71 ":native_api_video", 72 ] 73 } 74 75 # Old target that pulls in everything. This will be going away in the future, 76 # clients should depend on individual video_java etc. targets instead. 77 rtc_android_library("libjingle_peerconnection_java") { 78 sources = [ "src/java/org/webrtc/Empty.java" ] 79 80 deps = [ 81 ":audio_api_java", 82 ":base_java", 83 ":camera_java", 84 ":filevideo_java", 85 ":hwcodecs_java", 86 ":java_audio_device_module_java", 87 ":peerconnection_java", 88 ":screencapturer_java", 89 ":surfaceviewrenderer_java", 90 ":video_api_java", 91 ":video_java", 92 "//modules/audio_device:audio_device_java", 93 "//rtc_base:base_java", 94 ] 95 } 96 97 rtc_android_library("libjingle_peerconnection_metrics_default_java") { 98 sources = [ "api/org/webrtc/Metrics.java" ] 99 100 deps = [ 101 ":base_java", 102 ":libjingle_peerconnection_java", 103 "../../rtc_base:base_java", 104 ] 105 } 106 107 rtc_library("libjingle_peerconnection_jni") { 108 visibility = [ "*" ] 109 allow_poison = [ 110 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove. 111 "software_video_codecs", # TODO(bugs.webrtc.org/7925): Remove. 112 ] 113 public_deps = [ # no-presubmit-check TODO(webrtc:8603) 114 ":audio_jni", 115 ":base_jni", 116 ":builtin_audio_codecs_jni", 117 ":default_video_codec_factory_jni", 118 ":java_audio_device_module_jni", 119 ":peerconnection_jni", 120 ":video_jni", 121 "../../api:create_peerconnection_factory", 122 ] 123 } 124 125 rtc_library("libjingle_peerconnection_metrics_default_jni") { 126 visibility = [ "*" ] 127 sources = [ "src/jni/android_metrics.cc" ] 128 deps = [ 129 ":base_jni", 130 ":generated_metrics_jni", 131 ":native_api_jni", 132 ":peerconnection_jni", 133 "../../pc:peerconnection", 134 "../../system_wrappers:metrics", 135 ] 136 } 137 138 rtc_shared_library("libjingle_peerconnection_so") { 139 sources = [ "src/jni/jni_onload.cc" ] 140 141 suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ] 142 configs += [ "//build/config/android:hide_all_but_jni" ] 143 144 deps = [ 145 ":libjingle_peerconnection_jni", 146 ":libjingle_peerconnection_metrics_default_jni", 147 "../../pc:libjingle_peerconnection", 148 "../../rtc_base", 149 ] 150 output_extension = "so" 151 } 152 153 ####################### 154 # Public Java modules # 155 ####################### 156 157 # Core targets. 158 159 # TODO(sakal): Extract files from this target to releveant subtargets, video, audio etc. 160 rtc_android_library("base_java") { 161 sources = [ 162 "api/org/webrtc/Predicate.java", 163 "api/org/webrtc/RefCounted.java", 164 "src/java/org/webrtc/CalledByNative.java", 165 "src/java/org/webrtc/CalledByNativeUnchecked.java", 166 "src/java/org/webrtc/Histogram.java", 167 "src/java/org/webrtc/JniCommon.java", 168 "src/java/org/webrtc/JniHelper.java", 169 "src/java/org/webrtc/RefCountDelegate.java", 170 "src/java/org/webrtc/WebRtcClassLoader.java", 171 ] 172 173 deps = [ 174 "//third_party/android_deps:com_android_support_support_annotations_java", 175 ] 176 } 177 178 rtc_android_library("audio_api_java") { 179 visibility = [ "*" ] 180 sources = [ 181 "api/org/webrtc/AudioDecoderFactoryFactory.java", 182 "api/org/webrtc/AudioEncoderFactoryFactory.java", 183 "api/org/webrtc/audio/AudioDeviceModule.java", 184 ] 185 186 deps = [ 187 ":base_java", 188 "//rtc_base:base_java", 189 ] 190 } 191 192 rtc_android_library("video_api_java") { 193 visibility = [ "*" ] 194 sources = [ 195 "api/org/webrtc/CapturerObserver.java", 196 "api/org/webrtc/EncodedImage.java", 197 "api/org/webrtc/VideoCodecInfo.java", 198 "api/org/webrtc/VideoCodecStatus.java", 199 "api/org/webrtc/VideoDecoder.java", 200 "api/org/webrtc/VideoDecoderFactory.java", 201 "api/org/webrtc/VideoEncoder.java", 202 "api/org/webrtc/VideoEncoderFactory.java", 203 "api/org/webrtc/VideoFrame.java", 204 "api/org/webrtc/VideoSink.java", 205 ] 206 207 deps = [ 208 ":base_java", 209 "//rtc_base:base_java", 210 "//third_party/android_deps:com_android_support_support_annotations_java", 211 ] 212 } 213 214 rtc_android_library("video_java") { 215 visibility = [ "*" ] 216 sources = [ 217 "api/org/webrtc/EglBase.java", 218 "api/org/webrtc/EglBase10.java", 219 "api/org/webrtc/EglBase14.java", 220 "api/org/webrtc/EglRenderer.java", 221 "api/org/webrtc/GlRectDrawer.java", 222 "api/org/webrtc/GlShader.java", 223 "api/org/webrtc/GlTextureFrameBuffer.java", 224 "api/org/webrtc/GlUtil.java", 225 "api/org/webrtc/JavaI420Buffer.java", 226 "api/org/webrtc/RendererCommon.java", 227 "api/org/webrtc/SurfaceTextureHelper.java", 228 "api/org/webrtc/TextureBufferImpl.java", 229 "api/org/webrtc/TimestampAligner.java", 230 "api/org/webrtc/VideoCapturer.java", 231 "api/org/webrtc/VideoDecoderFallback.java", 232 "api/org/webrtc/VideoEncoderFallback.java", 233 "api/org/webrtc/VideoFrameDrawer.java", 234 "api/org/webrtc/WrappedNativeVideoDecoder.java", 235 "api/org/webrtc/WrappedNativeVideoEncoder.java", 236 "api/org/webrtc/YuvConverter.java", 237 "api/org/webrtc/YuvHelper.java", 238 "src/java/org/webrtc/EglBase10Impl.java", 239 "src/java/org/webrtc/EglBase14Impl.java", 240 "src/java/org/webrtc/GlGenericDrawer.java", 241 "src/java/org/webrtc/H264Utils.java", 242 "src/java/org/webrtc/NV21Buffer.java", 243 "src/java/org/webrtc/VideoDecoderWrapper.java", 244 "src/java/org/webrtc/VideoEncoderWrapper.java", 245 "src/java/org/webrtc/WrappedNativeI420Buffer.java", 246 ] 247 248 deps = [ 249 ":base_java", 250 ":video_api_java", 251 "//rtc_base:base_java", 252 "//third_party/android_deps:com_android_support_support_annotations_java", 253 ] 254 } 255 256 rtc_android_library("peerconnection_java") { 257 visibility = [ "*" ] 258 sources = [ 259 "api/org/webrtc/AudioProcessingFactory.java", 260 "api/org/webrtc/AudioSource.java", 261 "api/org/webrtc/AudioTrack.java", 262 "api/org/webrtc/CallSessionFileRotatingLogSink.java", 263 "api/org/webrtc/CandidatePairChangeEvent.java", 264 "api/org/webrtc/CryptoOptions.java", 265 "api/org/webrtc/DataChannel.java", 266 "api/org/webrtc/DtmfSender.java", 267 "api/org/webrtc/FecControllerFactoryFactoryInterface.java", 268 "api/org/webrtc/FrameDecryptor.java", 269 "api/org/webrtc/FrameEncryptor.java", 270 "api/org/webrtc/IceCandidate.java", 271 "api/org/webrtc/MediaConstraints.java", 272 "api/org/webrtc/MediaSource.java", 273 "api/org/webrtc/MediaStream.java", 274 "api/org/webrtc/MediaStreamTrack.java", 275 "api/org/webrtc/NativeLibraryLoader.java", 276 "api/org/webrtc/NativePeerConnectionFactory.java", 277 "api/org/webrtc/NetEqFactoryFactory.java", 278 "api/org/webrtc/NetworkControllerFactoryFactory.java", 279 "api/org/webrtc/NetworkMonitor.java", # TODO(sakal): Break dependencies 280 # and move to base_java. 281 "api/org/webrtc/NetworkMonitorAutoDetect.java", # TODO(sakal): Break 282 # dependencies and move 283 # to base_java. 284 "api/org/webrtc/NetworkStatePredictorFactoryFactory.java", 285 "api/org/webrtc/PeerConnection.java", 286 "api/org/webrtc/PeerConnectionDependencies.java", 287 "api/org/webrtc/PeerConnectionFactory.java", 288 "api/org/webrtc/RTCStats.java", 289 "api/org/webrtc/RTCStatsCollectorCallback.java", 290 "api/org/webrtc/RTCStatsReport.java", 291 "api/org/webrtc/RtcCertificatePem.java", 292 "api/org/webrtc/RtpParameters.java", 293 "api/org/webrtc/RtpReceiver.java", 294 "api/org/webrtc/RtpSender.java", 295 "api/org/webrtc/RtpTransceiver.java", 296 "api/org/webrtc/SSLCertificateVerifier.java", 297 "api/org/webrtc/SdpObserver.java", 298 "api/org/webrtc/SessionDescription.java", 299 "api/org/webrtc/StatsObserver.java", 300 "api/org/webrtc/StatsReport.java", 301 "api/org/webrtc/TurnCustomizer.java", 302 "api/org/webrtc/VideoProcessor.java", 303 "api/org/webrtc/VideoSource.java", 304 "api/org/webrtc/VideoTrack.java", 305 "src/java/org/webrtc/NativeAndroidVideoTrackSource.java", 306 "src/java/org/webrtc/NativeCapturerObserver.java", 307 "src/java/org/webrtc/NativeLibrary.java", 308 ] 309 310 deps = [ 311 ":audio_api_java", 312 ":base_java", 313 ":builtin_audio_codecs_java", 314 ":default_video_codec_factory_java", 315 316 #TODO(bugs.webrtc.org/7452): Make injection mandatory and remove this dep. 317 ":java_audio_device_module_java", 318 ":logging_java", 319 ":swcodecs_java", 320 ":video_api_java", 321 ":video_java", 322 "//modules/audio_device:audio_device_java", 323 "//rtc_base:base_java", 324 "//third_party/android_deps:androidx_annotation_annotation_java", 325 "//third_party/android_deps:com_android_support_support_annotations_java", 326 ] 327 srcjar_deps = [ 328 "//api:priority_enums", 329 "//api/video:video_frame_enums", 330 ] 331 } 332 333 # Modules, in alphabetical order. 334 335 rtc_android_library("camera_java") { 336 visibility = [ "*" ] 337 sources = [ 338 "api/org/webrtc/Camera1Capturer.java", 339 "api/org/webrtc/Camera1Enumerator.java", 340 "api/org/webrtc/Camera2Capturer.java", 341 "api/org/webrtc/Camera2Enumerator.java", 342 "api/org/webrtc/CameraEnumerationAndroid.java", 343 "api/org/webrtc/CameraEnumerator.java", 344 "api/org/webrtc/CameraVideoCapturer.java", 345 "src/java/org/webrtc/Camera1Session.java", 346 "src/java/org/webrtc/Camera2Session.java", 347 "src/java/org/webrtc/CameraCapturer.java", 348 "src/java/org/webrtc/CameraSession.java", 349 ] 350 351 deps = [ 352 ":base_java", 353 ":video_api_java", 354 ":video_java", 355 "//rtc_base:base_java", 356 "//third_party/android_deps:com_android_support_support_annotations_java", 357 ] 358 } 359 360 rtc_android_library("default_video_codec_factory_java") { 361 visibility = [ "*" ] 362 sources = [ 363 "api/org/webrtc/DefaultVideoDecoderFactory.java", 364 "api/org/webrtc/DefaultVideoEncoderFactory.java", 365 ] 366 367 deps = [ 368 ":hwcodecs_java", 369 ":swcodecs_java", 370 ":video_api_java", 371 ":video_java", 372 "//third_party/android_deps:com_android_support_support_annotations_java", 373 ] 374 } 375 376 rtc_android_library("filevideo_java") { 377 visibility = [ "*" ] 378 sources = [ 379 "api/org/webrtc/FileVideoCapturer.java", 380 "api/org/webrtc/VideoFileRenderer.java", 381 ] 382 383 deps = [ 384 ":base_java", 385 ":video_api_java", 386 ":video_java", 387 "//rtc_base:base_java", 388 ] 389 } 390 391 rtc_android_library("hwcodecs_java") { 392 visibility = [ "*" ] 393 sources = [ 394 "api/org/webrtc/HardwareVideoDecoderFactory.java", 395 "api/org/webrtc/HardwareVideoEncoderFactory.java", 396 "api/org/webrtc/PlatformSoftwareVideoDecoderFactory.java", 397 "src/java/org/webrtc/AndroidVideoDecoder.java", 398 "src/java/org/webrtc/BaseBitrateAdjuster.java", 399 "src/java/org/webrtc/BitrateAdjuster.java", 400 "src/java/org/webrtc/DynamicBitrateAdjuster.java", 401 "src/java/org/webrtc/FramerateBitrateAdjuster.java", 402 "src/java/org/webrtc/HardwareVideoEncoder.java", 403 "src/java/org/webrtc/MediaCodecUtils.java", 404 "src/java/org/webrtc/MediaCodecVideoDecoderFactory.java", 405 "src/java/org/webrtc/MediaCodecWrapper.java", 406 "src/java/org/webrtc/MediaCodecWrapperFactory.java", 407 "src/java/org/webrtc/MediaCodecWrapperFactoryImpl.java", 408 "src/java/org/webrtc/NV12Buffer.java", 409 "src/java/org/webrtc/VideoCodecMimeType.java", 410 ] 411 412 deps = [ 413 ":base_java", 414 ":video_api_java", 415 ":video_java", 416 "//rtc_base:base_java", 417 "//third_party/android_deps:com_android_support_support_annotations_java", 418 ] 419 } 420 421 rtc_android_library("java_audio_device_module_java") { 422 visibility = [ "*" ] 423 sources = [ 424 "api/org/webrtc/audio/JavaAudioDeviceModule.java", 425 "src/java/org/webrtc/audio/VolumeLogger.java", 426 "src/java/org/webrtc/audio/WebRtcAudioEffects.java", 427 "src/java/org/webrtc/audio/WebRtcAudioManager.java", 428 "src/java/org/webrtc/audio/WebRtcAudioRecord.java", 429 "src/java/org/webrtc/audio/WebRtcAudioTrack.java", 430 "src/java/org/webrtc/audio/WebRtcAudioUtils.java", 431 ] 432 433 deps = [ 434 ":audio_api_java", 435 ":base_java", 436 "//rtc_base:base_java", 437 "//third_party/android_deps:com_android_support_support_annotations_java", 438 ] 439 } 440 441 rtc_android_library("builtin_audio_codecs_java") { 442 visibility = [ "*" ] 443 sources = [ 444 "api/org/webrtc/BuiltinAudioDecoderFactoryFactory.java", 445 "api/org/webrtc/BuiltinAudioEncoderFactoryFactory.java", 446 ] 447 448 deps = [ ":audio_api_java" ] 449 } 450 451 rtc_android_library("screencapturer_java") { 452 visibility = [ "*" ] 453 sources = [ "api/org/webrtc/ScreenCapturerAndroid.java" ] 454 455 deps = [ 456 ":video_api_java", 457 ":video_java", 458 "//rtc_base:base_java", 459 "//third_party/android_deps:com_android_support_support_annotations_java", 460 ] 461 } 462 463 rtc_android_library("surfaceviewrenderer_java") { 464 visibility = [ "*" ] 465 sources = [ 466 "api/org/webrtc/SurfaceEglRenderer.java", 467 "api/org/webrtc/SurfaceViewRenderer.java", 468 ] 469 470 deps = [ 471 ":base_java", 472 ":video_api_java", 473 ":video_java", 474 "//rtc_base:base_java", 475 ] 476 } 477 478 rtc_android_library("libvpx_vp8_java") { 479 visibility = [ "*" ] 480 sources = [ 481 "api/org/webrtc/LibvpxVp8Decoder.java", 482 "api/org/webrtc/LibvpxVp8Encoder.java", 483 ] 484 deps = [ 485 ":base_java", 486 ":video_api_java", 487 ":video_java", 488 "//rtc_base:base_java", 489 ] 490 } 491 492 rtc_android_library("libvpx_vp9_java") { 493 visibility = [ "*" ] 494 sources = [ 495 "api/org/webrtc/LibvpxVp9Decoder.java", 496 "api/org/webrtc/LibvpxVp9Encoder.java", 497 ] 498 deps = [ 499 ":base_java", 500 ":video_api_java", 501 ":video_java", 502 "//rtc_base:base_java", 503 ] 504 } 505 506 rtc_android_library("swcodecs_java") { 507 visibility = [ "*" ] 508 sources = [ 509 "api/org/webrtc/SoftwareVideoDecoderFactory.java", 510 "api/org/webrtc/SoftwareVideoEncoderFactory.java", 511 ] 512 513 deps = [ 514 ":base_java", 515 ":libvpx_vp8_java", 516 ":libvpx_vp9_java", 517 ":video_api_java", 518 ":video_java", 519 "//rtc_base:base_java", 520 "//third_party/android_deps:com_android_support_support_annotations_java", 521 ] 522 } 523} 524 525if (current_os == "linux" || is_android) { 526 ################################ 527 # JNI targets for Java modules # 528 ################################ 529 530 # Mirrors the order of targets in the section above. 531 532 rtc_library("base_jni") { 533 visibility = [ "*" ] 534 sources = [ 535 "src/jni/android_histogram.cc", 536 "src/jni/android_network_monitor.cc", 537 "src/jni/android_network_monitor.h", 538 "src/jni/class_loader.h", 539 "src/jni/class_reference_holder.h", 540 "src/jni/jni_common.cc", 541 "src/jni/jni_helpers.cc", 542 "src/jni/jni_helpers.h", 543 "src/jni/pc/audio.h", 544 "src/jni/pc/logging.cc", 545 "src/jni/pc/video.h", 546 "src/jni/scoped_java_ref_counted.cc", 547 "src/jni/scoped_java_ref_counted.h", 548 ] 549 550 deps = [ 551 ":generated_base_jni", 552 ":internal_jni", 553 ":native_api_jni", 554 "../../api:libjingle_peerconnection_api", 555 "../../api:scoped_refptr", 556 "../../rtc_base", 557 "../../rtc_base:checks", 558 "../../rtc_base:rtc_base_approved", 559 "../../system_wrappers:field_trial", 560 "../../system_wrappers:metrics", 561 ] 562 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 563 } 564 565 rtc_library("audio_jni") { 566 visibility = [ "*" ] 567 allow_poison = [ "audio_codecs" ] 568 sources = [ "src/jni/pc/audio.cc" ] 569 570 deps = [ 571 ":base_jni", 572 ":builtin_audio_codecs_jni", 573 "../../api/audio_codecs:builtin_audio_decoder_factory", 574 "../../api/audio_codecs:builtin_audio_encoder_factory", 575 "../../modules/audio_processing", 576 "../../modules/audio_processing:api", 577 "../../rtc_base:rtc_base_approved", 578 ] 579 } 580 581 rtc_library("builtin_audio_codecs_jni") { 582 visibility = [ "*" ] 583 allow_poison = [ "audio_codecs" ] 584 sources = [ 585 "src/jni/builtin_audio_decoder_factory_factory.cc", 586 "src/jni/builtin_audio_encoder_factory_factory.cc", 587 ] 588 589 deps = [ 590 ":base_jni", 591 ":generated_builtin_audio_codecs_jni", 592 ":native_api_jni", 593 "../../api/audio_codecs:builtin_audio_decoder_factory", 594 "../../api/audio_codecs:builtin_audio_encoder_factory", 595 "../../rtc_base:rtc_base_approved", 596 ] 597 } 598 599 rtc_library("video_jni") { 600 visibility = [ "*" ] 601 sources = [ 602 "src/jni/android_video_track_source.cc", 603 "src/jni/android_video_track_source.h", 604 "src/jni/encoded_image.cc", 605 "src/jni/encoded_image.h", 606 "src/jni/h264_utils.cc", 607 "src/jni/java_i420_buffer.cc", 608 "src/jni/jni_generator_helper.h", 609 "src/jni/native_capturer_observer.cc", 610 "src/jni/native_capturer_observer.h", 611 "src/jni/nv12_buffer.cc", 612 "src/jni/nv21_buffer.cc", 613 "src/jni/pc/video.cc", 614 "src/jni/timestamp_aligner.cc", 615 "src/jni/video_codec_info.cc", 616 "src/jni/video_codec_info.h", 617 "src/jni/video_codec_status.cc", 618 "src/jni/video_codec_status.h", 619 "src/jni/video_decoder_factory_wrapper.cc", 620 "src/jni/video_decoder_factory_wrapper.h", 621 "src/jni/video_decoder_fallback.cc", 622 "src/jni/video_decoder_wrapper.cc", 623 "src/jni/video_decoder_wrapper.h", 624 "src/jni/video_encoder_factory_wrapper.cc", 625 "src/jni/video_encoder_factory_wrapper.h", 626 "src/jni/video_encoder_fallback.cc", 627 "src/jni/video_encoder_wrapper.cc", 628 "src/jni/video_encoder_wrapper.h", 629 "src/jni/video_sink.cc", 630 "src/jni/video_sink.h", 631 "src/jni/video_track.cc", 632 "src/jni/yuv_helper.cc", 633 ] 634 635 deps = [ 636 ":base_jni", 637 ":generated_video_jni", 638 ":native_api_jni", 639 ":videoframe_jni", 640 "../../api:libjingle_peerconnection_api", 641 "../../api:media_stream_interface", 642 "../../api/task_queue", 643 "../../api/video:encoded_image", 644 "../../api/video:video_frame", 645 "../../api/video:video_frame_type", 646 "../../api/video:video_rtp_headers", 647 "../../api/video_codecs:rtc_software_fallback_wrappers", 648 "../../api/video_codecs:video_codecs_api", 649 "../../common_video", 650 "../../media:rtc_media_base", 651 "../../modules/video_coding:codec_globals_headers", 652 "../../modules/video_coding:video_codec_interface", 653 "../../modules/video_coding:video_coding_utility", 654 "../../rtc_base", 655 "../../rtc_base:checks", 656 "../../rtc_base:rtc_task_queue", 657 "../../rtc_base/synchronization:mutex", 658 "../../rtc_base/task_utils:to_queued_task", 659 "//third_party/libyuv", 660 ] 661 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 662 } 663 664 rtc_library("peerconnection_jni") { 665 # Do not depend on this target externally unless you absolute have to. It is 666 # made public because we don't have a proper NDK yet. Header APIs here are not 667 # considered public and are subject to change. 668 visibility = [ "*" ] 669 670 sources = [ 671 "src/jni/pc/android_network_monitor.h", 672 "src/jni/pc/audio_track.cc", 673 "src/jni/pc/call_session_file_rotating_log_sink.cc", 674 "src/jni/pc/crypto_options.cc", 675 "src/jni/pc/crypto_options.h", 676 "src/jni/pc/data_channel.cc", 677 "src/jni/pc/data_channel.h", 678 "src/jni/pc/dtmf_sender.cc", 679 "src/jni/pc/ice_candidate.cc", 680 "src/jni/pc/ice_candidate.h", 681 "src/jni/pc/media_constraints.cc", 682 "src/jni/pc/media_constraints.h", 683 "src/jni/pc/media_source.cc", 684 "src/jni/pc/media_stream.cc", 685 "src/jni/pc/media_stream.h", 686 "src/jni/pc/media_stream_track.cc", 687 "src/jni/pc/media_stream_track.h", 688 "src/jni/pc/owned_factory_and_threads.cc", 689 "src/jni/pc/owned_factory_and_threads.h", 690 "src/jni/pc/peer_connection.cc", 691 "src/jni/pc/peer_connection.h", 692 "src/jni/pc/peer_connection_factory.cc", 693 "src/jni/pc/peer_connection_factory.h", 694 "src/jni/pc/rtc_certificate.cc", 695 "src/jni/pc/rtc_certificate.h", 696 "src/jni/pc/rtc_stats_collector_callback_wrapper.cc", 697 "src/jni/pc/rtc_stats_collector_callback_wrapper.h", 698 "src/jni/pc/rtp_parameters.cc", 699 "src/jni/pc/rtp_parameters.h", 700 "src/jni/pc/rtp_receiver.cc", 701 "src/jni/pc/rtp_receiver.h", 702 "src/jni/pc/rtp_sender.cc", 703 "src/jni/pc/rtp_sender.h", 704 "src/jni/pc/rtp_transceiver.cc", 705 "src/jni/pc/rtp_transceiver.h", 706 "src/jni/pc/sdp_observer.cc", 707 "src/jni/pc/sdp_observer.h", 708 "src/jni/pc/session_description.cc", 709 "src/jni/pc/session_description.h", 710 "src/jni/pc/ssl_certificate_verifier_wrapper.cc", 711 "src/jni/pc/ssl_certificate_verifier_wrapper.h", 712 "src/jni/pc/stats_observer.cc", 713 "src/jni/pc/stats_observer.h", 714 "src/jni/pc/turn_customizer.cc", 715 "src/jni/pc/turn_customizer.h", 716 ] 717 718 deps = [ 719 ":base_jni", 720 ":generated_external_classes_jni", 721 ":generated_peerconnection_jni", 722 ":logging_jni", 723 ":native_api_jni", 724 ":native_api_stacktrace", 725 "..:media_constraints", 726 "../../api:callfactory_api", 727 "../../api:libjingle_peerconnection_api", 728 "../../api:media_stream_interface", 729 "../../api:rtc_event_log_output_file", 730 "../../api:rtp_parameters", 731 "../../api/crypto:options", 732 "../../api/rtc_event_log:rtc_event_log_factory", 733 "../../api/task_queue:default_task_queue_factory", 734 "../../api/video_codecs:video_codecs_api", 735 "../../call:call_interfaces", 736 "../../media:rtc_audio_video", 737 "../../media:rtc_data", 738 "../../media:rtc_media_base", 739 "../../modules/audio_device", 740 "../../modules/audio_processing:api", 741 "../../modules/utility", 742 "../../pc:peerconnection", 743 "../../rtc_base", 744 "../../rtc_base:checks", 745 "../../rtc_base:rtc_base_approved", 746 "../../rtc_base:rtc_task_queue", 747 "../../rtc_base/system:thread_registry", 748 "../../system_wrappers:field_trial", 749 ] 750 absl_deps = [ 751 "//third_party/abseil-cpp/absl/memory", 752 "//third_party/abseil-cpp/absl/types:optional", 753 ] 754 } 755 756 # JNI target for java_audio_device_module_java 757 rtc_library("java_audio_device_module_jni") { 758 visibility = [ "*" ] 759 sources = [ "src/jni/audio_device/java_audio_device_module.cc" ] 760 761 deps = [ 762 ":base_jni", 763 ":generated_java_audio_jni", 764 ":java_audio_device_module", 765 ] 766 } 767 768 rtc_library("default_video_codec_factory_jni") { 769 visibility = [ "*" ] 770 allow_poison = [ "software_video_codecs" ] 771 deps = [ 772 ":swcodecs_jni", 773 ":video_jni", 774 ] 775 } 776 777 rtc_library("libvpx_vp8_jni") { 778 visibility = [ "*" ] 779 allow_poison = [ "software_video_codecs" ] 780 sources = [ "src/jni/vp8_codec.cc" ] 781 deps = [ 782 ":base_jni", 783 ":generated_libvpx_vp8_jni", 784 ":video_jni", 785 "../../modules/video_coding:webrtc_vp8", 786 ] 787 } 788 789 rtc_library("libvpx_vp9_jni") { 790 visibility = [ "*" ] 791 allow_poison = [ "software_video_codecs" ] 792 sources = [ "src/jni/vp9_codec.cc" ] 793 deps = [ 794 ":base_jni", 795 ":generated_libvpx_vp9_jni", 796 ":video_jni", 797 "../../modules/video_coding:webrtc_vp9", 798 ] 799 } 800 801 rtc_library("swcodecs_jni") { 802 visibility = [ "*" ] 803 allow_poison = [ "software_video_codecs" ] 804 deps = [ 805 ":libvpx_vp8_jni", 806 ":libvpx_vp9_jni", 807 ] 808 } 809 810 ###################### 811 # Native API targets # 812 ###################### 813 814 # Core targets. 815 816 # JNI helpers that are also needed from internal JNI code. Cannot depend on any 817 # other JNI targets than internal_jni. 818 rtc_library("native_api_jni") { 819 visibility = [ "*" ] 820 sources = [ 821 "native_api/jni/class_loader.cc", 822 "native_api/jni/java_types.cc", 823 "native_api/jni/jvm.cc", 824 "src/jni/jni_generator_helper.cc", 825 "src/jni/jni_generator_helper.h", 826 ] 827 828 public = [ 829 "native_api/jni/class_loader.h", 830 "native_api/jni/java_types.h", 831 "native_api/jni/jni_int_wrapper.h", 832 "native_api/jni/jvm.h", 833 "native_api/jni/scoped_java_ref.h", 834 ] 835 836 deps = [ 837 ":generated_external_classes_jni", 838 ":generated_native_api_jni", 839 ":internal_jni", 840 "//api:array_view", 841 "//rtc_base:checks", 842 "//rtc_base:rtc_base_approved", 843 ] 844 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 845 } 846 847 rtc_library("native_api_base") { 848 visibility = [ "*" ] 849 sources = [ 850 "native_api/base/init.cc", 851 "native_api/base/init.h", 852 "native_api/base/network_monitor.cc", 853 "native_api/base/network_monitor.h", 854 ] 855 856 deps = [ 857 ":base_jni", 858 ":native_api_jni", 859 "//rtc_base", 860 "//rtc_base:checks", 861 ] 862 } 863 864 # Modules, in alphabetical order. 865 866 rtc_library("native_api_audio_device_module") { 867 visibility = [ "*" ] 868 869 sources = [ 870 "native_api/audio_device_module/audio_device_android.cc", 871 "native_api/audio_device_module/audio_device_android.h", 872 ] 873 874 deps = [ 875 ":base_jni", 876 ":java_audio_device_module", 877 ":opensles_audio_device_module", 878 "../../api:scoped_refptr", 879 "../../modules/audio_device", 880 "../../rtc_base:checks", 881 "../../rtc_base:rtc_base_approved", 882 "../../system_wrappers", 883 "../../system_wrappers:metrics", 884 ] 885 if (rtc_enable_android_aaudio) { 886 deps += [ ":aaudio_audio_device_module" ] 887 } 888 } 889 890 # API for wrapping Java VideoDecoderFactory/VideoEncoderFactory classes to C++ 891 # objects. 892 rtc_library("native_api_codecs") { 893 visibility = [ "*" ] 894 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. 895 sources = [ 896 "native_api/codecs/wrapper.cc", 897 "native_api/codecs/wrapper.h", 898 ] 899 900 deps = [ 901 ":base_jni", 902 ":native_api_jni", 903 ":video_jni", 904 "//api/video_codecs:video_codecs_api", 905 "//rtc_base:checks", 906 "//rtc_base:rtc_base_approved", 907 ] 908 } 909 910 # API for creating Java PeerConnectionFactory from C++ equivalents. 911 rtc_library("native_api_peerconnection") { 912 visibility = [ "*" ] 913 sources = [ 914 "native_api/peerconnection/peer_connection_factory.cc", 915 "native_api/peerconnection/peer_connection_factory.h", 916 ] 917 deps = [ 918 ":base_jni", 919 ":peerconnection_jni", 920 "//api:libjingle_peerconnection_api", 921 "//api/video_codecs:video_codecs_api", 922 "//rtc_base", 923 ] 924 } 925 926 # API for capturing and printing native stacktraces. 927 rtc_library("native_api_stacktrace") { 928 visibility = [ "*" ] 929 sources = [ 930 "native_api/stacktrace/stacktrace.cc", 931 "native_api/stacktrace/stacktrace.h", 932 ] 933 934 deps = [ 935 "../../rtc_base:criticalsection", 936 "../../rtc_base:logging", 937 "../../rtc_base:stringutils", 938 "../../rtc_base/synchronization:mutex", 939 ] 940 absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ] 941 } 942 943 # API for creating C++ wrapper implementations of api/mediastreaminterface.h 944 # video interfaces from their Java equivalents. 945 rtc_library("native_api_video") { 946 visibility = [ "*" ] 947 allow_poison = [ "audio_codecs" ] # TODO(bugs.webrtc.org/8396): Remove. 948 sources = [ 949 "native_api/video/video_source.cc", 950 "native_api/video/video_source.h", 951 "native_api/video/wrapper.cc", 952 "native_api/video/wrapper.h", 953 ] 954 deps = [ 955 ":native_api_jni", 956 ":video_jni", 957 ":videoframe_jni", 958 "//api:libjingle_peerconnection_api", 959 "//api:media_stream_interface", 960 "//api/video:video_frame", 961 "//api/video:video_rtp_headers", 962 "//rtc_base", 963 "//rtc_base:rtc_base_approved", 964 ] 965 } 966 967 #################### 968 # Internal targets # 969 #################### 970 971 rtc_android_library("logging_java") { 972 sources = [ "src/java/org/webrtc/JNILogging.java" ] 973 974 deps = [ 975 ":base_java", 976 "//rtc_base:base_java", 977 ] 978 } 979 980 # Internal code that is needed by native_api_jni. The code cannot be placed in 981 # base_jni because native_api_jni depends on the code (and base_jni depends on 982 # native_api_jni). 983 rtc_library("internal_jni") { 984 sources = [ 985 "src/jni/jvm.cc", 986 "src/jni/jvm.h", 987 ] 988 989 deps = [ "../../rtc_base:checks" ] 990 } 991 992 rtc_library("videoframe_jni") { 993 sources = [ 994 "src/jni/video_frame.cc", 995 "src/jni/video_frame.h", 996 "src/jni/wrapped_native_i420_buffer.cc", 997 "src/jni/wrapped_native_i420_buffer.h", 998 ] 999 1000 deps = [ 1001 ":base_jni", 1002 ":generated_video_jni", 1003 ":native_api_jni", 1004 "../../api:scoped_refptr", 1005 "../../api/video:video_frame", 1006 "../../api/video:video_rtp_headers", 1007 "../../common_video", 1008 "../../rtc_base", 1009 "../../rtc_base:checks", 1010 "../../rtc_base:rtc_base_approved", 1011 ] 1012 } 1013 1014 rtc_library("logging_jni") { 1015 visibility = [ "*" ] 1016 sources = [ 1017 "src/jni/logging/log_sink.cc", 1018 "src/jni/logging/log_sink.h", 1019 ] 1020 1021 deps = [ 1022 ":base_jni", 1023 ":generated_logging_jni", 1024 ":native_api_jni", 1025 "../../rtc_base", 1026 ] 1027 } 1028 1029 rtc_library("audio_device_module_base") { 1030 visibility = [ "*" ] 1031 1032 sources = [ 1033 "src/jni/audio_device/audio_common.h", 1034 "src/jni/audio_device/audio_device_module.cc", 1035 "src/jni/audio_device/audio_device_module.h", 1036 ] 1037 1038 deps = [ 1039 ":base_jni", 1040 ":generated_audio_device_module_base_jni", 1041 ":native_api_jni", 1042 "../../api/task_queue", 1043 "../../api/task_queue:default_task_queue_factory", 1044 "../../modules/audio_device:audio_device_api", 1045 "../../modules/audio_device:audio_device_buffer", 1046 "../../rtc_base:checks", 1047 "../../rtc_base:rtc_base_approved", 1048 "../../system_wrappers:metrics", 1049 ] 1050 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 1051 } 1052 1053 rtc_library("java_audio_device_module") { 1054 visibility = [ "*" ] 1055 1056 sources = [ 1057 "src/jni/audio_device/audio_record_jni.cc", 1058 "src/jni/audio_device/audio_record_jni.h", 1059 "src/jni/audio_device/audio_track_jni.cc", 1060 "src/jni/audio_device/audio_track_jni.h", 1061 ] 1062 deps = [ 1063 ":audio_device_module_base", 1064 ":base_jni", 1065 ":generated_java_audio_device_module_native_jni", 1066 "../../modules/audio_device", 1067 "../../modules/audio_device:audio_device_buffer", 1068 "../../rtc_base:checks", 1069 "../../rtc_base:rtc_base_approved", 1070 "../../system_wrappers:field_trial", 1071 "../../system_wrappers:metrics", 1072 ] 1073 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 1074 } 1075 1076 if (rtc_enable_android_aaudio) { 1077 rtc_library("aaudio_audio_device_module") { 1078 visibility = [ "*" ] 1079 defines = [ "WEBRTC_AUDIO_DEVICE_INCLUDE_ANDROID_AAUDIO" ] 1080 sources = [ 1081 "src/jni/audio_device/aaudio_player.cc", 1082 "src/jni/audio_device/aaudio_player.h", 1083 "src/jni/audio_device/aaudio_recorder.cc", 1084 "src/jni/audio_device/aaudio_recorder.h", 1085 "src/jni/audio_device/aaudio_wrapper.cc", 1086 "src/jni/audio_device/aaudio_wrapper.h", 1087 ] 1088 libs = [ "aaudio" ] 1089 deps = [ 1090 ":audio_device_module_base", 1091 ":base_jni", 1092 "../../api:array_view", 1093 "../../modules/audio_device", 1094 "../../modules/audio_device:audio_device_buffer", 1095 "../../rtc_base", 1096 "../../rtc_base:checks", 1097 "../../rtc_base:rtc_base_approved", 1098 "../../system_wrappers", 1099 ] 1100 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 1101 } 1102 } 1103 1104 rtc_library("opensles_audio_device_module") { 1105 visibility = [ "*" ] 1106 sources = [ 1107 "src/jni/audio_device/opensles_common.cc", 1108 "src/jni/audio_device/opensles_common.h", 1109 "src/jni/audio_device/opensles_player.cc", 1110 "src/jni/audio_device/opensles_player.h", 1111 "src/jni/audio_device/opensles_recorder.cc", 1112 "src/jni/audio_device/opensles_recorder.h", 1113 ] 1114 libs = [ "OpenSLES" ] 1115 deps = [ 1116 ":audio_device_module_base", 1117 ":base_jni", 1118 "../../api:array_view", 1119 "../../api:refcountedbase", 1120 "../../api:scoped_refptr", 1121 "../../modules/audio_device", 1122 "../../modules/audio_device:audio_device_buffer", 1123 "../../rtc_base:checks", 1124 "../../rtc_base:rtc_base_approved", 1125 ] 1126 absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] 1127 } 1128 1129 ######################### 1130 # Generated JNI targets # 1131 ######################### 1132 1133 generate_jar_jni("generated_external_classes_jni") { 1134 classes = [ 1135 "java/lang/Integer.class", 1136 "java/lang/Double.class", 1137 "java/lang/Long.class", 1138 "java/lang/Iterable.class", 1139 "java/util/Iterator.class", 1140 "java/lang/Boolean.class", 1141 "java/math/BigInteger.class", 1142 "java/util/Map.class", 1143 "java/util/LinkedHashMap.class", 1144 "java/util/ArrayList.class", 1145 "java/lang/Enum.class", 1146 ] 1147 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1148 } 1149 1150 generate_jni("generated_metrics_jni") { 1151 sources = [ "api/org/webrtc/Metrics.java" ] 1152 namespace = "webrtc::jni" 1153 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1154 } 1155 1156 # Generated JNI for public JNI targets, matching order of targets 1157 1158 generate_jni("generated_base_jni") { 1159 sources = [ 1160 "api/org/webrtc/NetworkMonitor.java", 1161 "api/org/webrtc/NetworkMonitorAutoDetect.java", 1162 "api/org/webrtc/RefCounted.java", 1163 "src/java/org/webrtc/Histogram.java", 1164 "src/java/org/webrtc/JniCommon.java", 1165 ] 1166 namespace = "webrtc::jni" 1167 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1168 } 1169 1170 generate_jni("generated_video_jni") { 1171 sources = [ 1172 "api/org/webrtc/EncodedImage.java", 1173 "api/org/webrtc/JavaI420Buffer.java", 1174 "api/org/webrtc/TimestampAligner.java", 1175 "api/org/webrtc/VideoCodecInfo.java", 1176 "api/org/webrtc/VideoCodecStatus.java", 1177 "api/org/webrtc/VideoDecoder.java", 1178 "api/org/webrtc/VideoDecoderFactory.java", 1179 "api/org/webrtc/VideoDecoderFallback.java", 1180 "api/org/webrtc/VideoEncoder.java", 1181 "api/org/webrtc/VideoEncoderFactory.java", 1182 "api/org/webrtc/VideoEncoderFallback.java", 1183 "api/org/webrtc/VideoFrame.java", 1184 "api/org/webrtc/VideoSink.java", 1185 "api/org/webrtc/VideoTrack.java", 1186 "api/org/webrtc/YuvHelper.java", 1187 "src/java/org/webrtc/H264Utils.java", 1188 "src/java/org/webrtc/NV12Buffer.java", 1189 "src/java/org/webrtc/NV21Buffer.java", 1190 "src/java/org/webrtc/NativeAndroidVideoTrackSource.java", 1191 "src/java/org/webrtc/NativeCapturerObserver.java", 1192 "src/java/org/webrtc/VideoDecoderWrapper.java", 1193 "src/java/org/webrtc/VideoEncoderWrapper.java", 1194 "src/java/org/webrtc/WrappedNativeI420Buffer.java", 1195 ] 1196 namespace = "webrtc::jni" 1197 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1198 } 1199 1200 generate_jni("generated_libvpx_vp8_jni") { 1201 sources = [ 1202 "api/org/webrtc/LibvpxVp8Decoder.java", 1203 "api/org/webrtc/LibvpxVp8Encoder.java", 1204 ] 1205 1206 namespace = "webrtc::jni" 1207 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1208 } 1209 1210 generate_jni("generated_libvpx_vp9_jni") { 1211 sources = [ 1212 "api/org/webrtc/LibvpxVp9Decoder.java", 1213 "api/org/webrtc/LibvpxVp9Encoder.java", 1214 ] 1215 1216 namespace = "webrtc::jni" 1217 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1218 } 1219 1220 generate_jni("generated_peerconnection_jni") { 1221 sources = [ 1222 "api/org/webrtc/AudioTrack.java", 1223 "api/org/webrtc/CallSessionFileRotatingLogSink.java", 1224 "api/org/webrtc/CandidatePairChangeEvent.java", 1225 "api/org/webrtc/CryptoOptions.java", 1226 "api/org/webrtc/DataChannel.java", 1227 "api/org/webrtc/DtmfSender.java", 1228 "api/org/webrtc/IceCandidate.java", 1229 "api/org/webrtc/MediaConstraints.java", 1230 "api/org/webrtc/MediaSource.java", 1231 "api/org/webrtc/MediaStream.java", 1232 "api/org/webrtc/MediaStreamTrack.java", 1233 "api/org/webrtc/PeerConnection.java", 1234 "api/org/webrtc/PeerConnectionFactory.java", 1235 "api/org/webrtc/RTCStats.java", 1236 "api/org/webrtc/RTCStatsCollectorCallback.java", 1237 "api/org/webrtc/RTCStatsReport.java", 1238 "api/org/webrtc/RtcCertificatePem.java", 1239 "api/org/webrtc/RtpParameters.java", 1240 "api/org/webrtc/RtpReceiver.java", 1241 "api/org/webrtc/RtpSender.java", 1242 "api/org/webrtc/RtpTransceiver.java", 1243 "api/org/webrtc/SSLCertificateVerifier.java", 1244 "api/org/webrtc/SdpObserver.java", 1245 "api/org/webrtc/SessionDescription.java", 1246 "api/org/webrtc/StatsObserver.java", 1247 "api/org/webrtc/StatsReport.java", 1248 "api/org/webrtc/TurnCustomizer.java", 1249 ] 1250 namespace = "webrtc::jni" 1251 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1252 } 1253 1254 generate_jni("generated_java_audio_jni") { 1255 sources = [ "api/org/webrtc/audio/JavaAudioDeviceModule.java" ] 1256 namespace = "webrtc::jni" 1257 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1258 } 1259 1260 generate_jni("generated_builtin_audio_codecs_jni") { 1261 sources = [ 1262 "api/org/webrtc/BuiltinAudioDecoderFactoryFactory.java", 1263 "api/org/webrtc/BuiltinAudioEncoderFactoryFactory.java", 1264 ] 1265 namespace = "webrtc::jni" 1266 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1267 } 1268 1269 # Generated JNI for native API targets 1270 1271 generate_jni("generated_native_api_jni") { 1272 sources = [ 1273 "src/java/org/webrtc/JniHelper.java", 1274 "src/java/org/webrtc/WebRtcClassLoader.java", 1275 ] 1276 namespace = "webrtc::jni" 1277 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1278 } 1279 1280 # Generated JNI for internal targets. 1281 1282 generate_jni("generated_logging_jni") { 1283 sources = [ "src/java/org/webrtc/JNILogging.java" ] 1284 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1285 } 1286 1287 generate_jni("generated_audio_device_module_base_jni") { 1288 sources = [ "src/java/org/webrtc/audio/WebRtcAudioManager.java" ] 1289 namespace = "webrtc::jni" 1290 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1291 } 1292 1293 generate_jni("generated_java_audio_device_module_native_jni") { 1294 sources = [ 1295 "src/java/org/webrtc/audio/WebRtcAudioRecord.java", 1296 "src/java/org/webrtc/audio/WebRtcAudioTrack.java", 1297 ] 1298 namespace = "webrtc::jni" 1299 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1300 } 1301} 1302 1303if (is_android) { 1304 ################ 1305 # Test targets # 1306 ################ 1307 1308 if (rtc_include_tests) { 1309 rtc_instrumentation_test_apk("android_instrumentation_test_apk") { 1310 apk_name = "android_instrumentation_test_apk" 1311 android_manifest = "instrumentationtests/AndroidManifest.xml" 1312 min_sdk_version = 21 1313 target_sdk_version = 21 1314 1315 sources = [ 1316 "instrumentationtests/src/org/webrtc/AndroidVideoDecoderInstrumentationTest.java", 1317 "instrumentationtests/src/org/webrtc/BuiltinAudioCodecsFactoryFactoryTest.java", 1318 "instrumentationtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java", 1319 "instrumentationtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java", 1320 "instrumentationtests/src/org/webrtc/Camera2CapturerTest.java", 1321 "instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java", 1322 "instrumentationtests/src/org/webrtc/DefaultVideoEncoderFactoryTest.java", 1323 "instrumentationtests/src/org/webrtc/EglRendererTest.java", 1324 "instrumentationtests/src/org/webrtc/FileVideoCapturerTest.java", 1325 "instrumentationtests/src/org/webrtc/GlRectDrawerTest.java", 1326 "instrumentationtests/src/org/webrtc/HardwareVideoEncoderTest.java", 1327 "instrumentationtests/src/org/webrtc/LoggableTest.java", 1328 "instrumentationtests/src/org/webrtc/NetworkMonitorTest.java", 1329 "instrumentationtests/src/org/webrtc/PeerConnectionEndToEndTest.java", 1330 "instrumentationtests/src/org/webrtc/PeerConnectionFactoryTest.java", 1331 "instrumentationtests/src/org/webrtc/PeerConnectionTest.java", 1332 "instrumentationtests/src/org/webrtc/RendererCommonTest.java", 1333 "instrumentationtests/src/org/webrtc/RtcCertificatePemTest.java", 1334 "instrumentationtests/src/org/webrtc/RtpSenderTest.java", 1335 "instrumentationtests/src/org/webrtc/RtpTransceiverTest.java", 1336 "instrumentationtests/src/org/webrtc/SurfaceTextureHelperTest.java", 1337 "instrumentationtests/src/org/webrtc/SurfaceViewRendererOnMeasureTest.java", 1338 "instrumentationtests/src/org/webrtc/TestConstants.java", 1339 "instrumentationtests/src/org/webrtc/TimestampAlignerTest.java", 1340 "instrumentationtests/src/org/webrtc/VideoFileRendererTest.java", 1341 "instrumentationtests/src/org/webrtc/VideoFrameBufferTest.java", 1342 "instrumentationtests/src/org/webrtc/VideoTrackTest.java", 1343 "instrumentationtests/src/org/webrtc/WebRtcJniBootTest.java", 1344 "instrumentationtests/src/org/webrtc/YuvHelperTest.java", 1345 ] 1346 1347 data = [ "../../sdk/android/instrumentationtests/src/org/webrtc/capturetestvideo.y4m" ] 1348 1349 deps = [ 1350 ":audio_api_java", 1351 ":base_java", 1352 ":builtin_audio_codecs_java", 1353 ":camera_java", 1354 ":default_video_codec_factory_java", 1355 ":filevideo_java", 1356 ":hwcodecs_java", 1357 ":libjingle_peerconnection_java", 1358 ":libjingle_peerconnection_metrics_default_java", 1359 ":peerconnection_java", 1360 ":surfaceviewrenderer_java", 1361 ":swcodecs_java", 1362 ":video_api_java", 1363 ":video_java", 1364 "//base:base_java_test_support", 1365 "//rtc_base:base_java", 1366 "//third_party/android_deps:com_android_support_support_annotations_java", 1367 "//third_party/android_support_test_runner:rules_java", 1368 "//third_party/android_support_test_runner:runner_java", 1369 "//third_party/google-truth:google_truth_java", 1370 "//third_party/guava:guava_android_java", 1371 "//third_party/hamcrest:hamcrest_java", 1372 "//third_party/hamcrest:hamcrest_library_java", 1373 "//third_party/junit", 1374 "//third_party/mockito:mockito_java", 1375 ] 1376 1377 shared_libraries = [ 1378 "../../sdk/android:libjingle_peerconnection_instrumentationtests_so", 1379 ] 1380 } 1381 } 1382 1383 rtc_shared_library("libjingle_peerconnection_instrumentationtests_so") { 1384 testonly = true 1385 sources = [ "src/jni/jni_onload.cc" ] 1386 1387 suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ] 1388 configs += [ "//build/config/android:hide_all_but_jni" ] 1389 1390 deps = [ 1391 ":instrumentationtests_jni", 1392 ":libjingle_peerconnection_jni", 1393 ":libjingle_peerconnection_metrics_default_jni", 1394 "../../pc:libjingle_peerconnection", 1395 "../../rtc_base", 1396 ] 1397 output_extension = "so" 1398 } 1399 1400 rtc_library("instrumentationtests_jni") { 1401 testonly = true 1402 sources = [ "instrumentationtests/loggable_test.cc" ] 1403 1404 deps = [ 1405 ":base_jni", 1406 ":native_api_jni", 1407 "../../rtc_base:rtc_base_approved", 1408 ] 1409 } 1410 1411 rtc_library("native_unittests") { 1412 testonly = true 1413 1414 sources = [ 1415 "native_unittests/android_network_monitor_unittest.cc", 1416 "native_unittests/application_context_provider.cc", 1417 "native_unittests/application_context_provider.h", 1418 "native_unittests/audio_device/audio_device_unittest.cc", 1419 "native_unittests/codecs/wrapper_unittest.cc", 1420 "native_unittests/java_types_unittest.cc", 1421 "native_unittests/peerconnection/peer_connection_factory_unittest.cc", 1422 "native_unittests/stacktrace/stacktrace_unittest.cc", 1423 "native_unittests/test_jni_onload.cc", 1424 "native_unittests/video/video_source_unittest.cc", 1425 ] 1426 1427 data = [ 1428 "../../resources/audio_device/audio_short44.pcm", 1429 "../../resources/audio_device/audio_short48.pcm", 1430 ] 1431 1432 deps = [ 1433 ":audio_device_module_base", 1434 ":audio_jni", 1435 ":base_jni", 1436 ":generated_native_unittests_jni", 1437 ":native_api_audio_device_module", 1438 ":native_api_base", 1439 ":native_api_codecs", 1440 ":native_api_jni", 1441 ":native_api_peerconnection", 1442 ":native_api_stacktrace", 1443 ":native_api_video", 1444 ":opensles_audio_device_module", 1445 ":video_jni", 1446 "../../api:scoped_refptr", 1447 "../../api/rtc_event_log:rtc_event_log_factory", 1448 "../../api/task_queue:default_task_queue_factory", 1449 "../../api/video:video_frame", 1450 "../../api/video:video_rtp_headers", 1451 "../../media:rtc_audio_video", 1452 "../../media:rtc_internal_video_codecs", 1453 "../../media:rtc_media_base", 1454 "../../media:rtc_media_engine_defaults", 1455 "../../modules/audio_device", 1456 "../../modules/audio_device:mock_audio_device", 1457 "../../modules/audio_processing:api", 1458 "../../modules/utility", 1459 "../../pc:libjingle_peerconnection", 1460 "../../rtc_base:checks", 1461 "../../rtc_base:rtc_base", 1462 "../../rtc_base/synchronization:mutex", 1463 "../../rtc_base/system:inline", 1464 "../../system_wrappers", 1465 "../../system_wrappers:field_trial", 1466 "../../test:field_trial", 1467 "../../test:fileutils", 1468 "../../test:test_support", 1469 "../../testing/gtest", 1470 ] 1471 absl_deps = [ "//third_party/abseil-cpp/absl/memory" ] 1472 } 1473 1474 rtc_android_library("native_unittests_java") { 1475 testonly = true 1476 1477 sources = [ 1478 "native_unittests/org/webrtc/ApplicationContextProvider.java", 1479 "native_unittests/org/webrtc/BuildInfo.java", 1480 "native_unittests/org/webrtc/CodecsWrapperTestHelper.java", 1481 "native_unittests/org/webrtc/FakeVideoEncoder.java", 1482 "native_unittests/org/webrtc/JavaTypesTestHelper.java", 1483 "native_unittests/org/webrtc/JavaVideoSourceTestHelper.java", 1484 "native_unittests/org/webrtc/PeerConnectionFactoryInitializationHelper.java", 1485 ] 1486 1487 deps = [ 1488 ":base_java", 1489 ":java_audio_device_module_java", 1490 ":peerconnection_java", 1491 ":video_api_java", 1492 ":video_java", 1493 "../../rtc_base:base_java", 1494 "//third_party/android_support_test_runner:runner_java", 1495 ] 1496 } 1497 1498 generate_jni("generated_native_unittests_jni") { 1499 testonly = true 1500 1501 sources = [ 1502 "native_unittests/org/webrtc/ApplicationContextProvider.java", 1503 "native_unittests/org/webrtc/BuildInfo.java", 1504 "native_unittests/org/webrtc/CodecsWrapperTestHelper.java", 1505 "native_unittests/org/webrtc/JavaTypesTestHelper.java", 1506 "native_unittests/org/webrtc/JavaVideoSourceTestHelper.java", 1507 "native_unittests/org/webrtc/PeerConnectionFactoryInitializationHelper.java", 1508 ] 1509 namespace = "webrtc::jni" 1510 jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h" 1511 } 1512 1513 junit_binary("android_sdk_junit_tests") { 1514 sources = [ 1515 "tests/src/org/webrtc/AndroidVideoDecoderTest.java", 1516 "tests/src/org/webrtc/CameraEnumerationTest.java", 1517 "tests/src/org/webrtc/CodecTestHelper.java", 1518 "tests/src/org/webrtc/CryptoOptionsTest.java", 1519 "tests/src/org/webrtc/FakeMediaCodecWrapper.java", 1520 "tests/src/org/webrtc/GlGenericDrawerTest.java", 1521 "tests/src/org/webrtc/HardwareVideoEncoderTest.java", 1522 "tests/src/org/webrtc/IceCandidateTest.java", 1523 "tests/src/org/webrtc/RefCountDelegateTest.java", 1524 "tests/src/org/webrtc/ScalingSettingsTest.java", 1525 ] 1526 1527 deps = [ 1528 ":base_java", 1529 ":camera_java", 1530 ":hwcodecs_java", 1531 ":libjingle_peerconnection_java", 1532 ":peerconnection_java", 1533 ":video_api_java", 1534 ":video_java", 1535 "//base:base_java_test_support", 1536 "//third_party/android_deps:com_android_support_support_annotations_java", 1537 "//third_party/google-truth:google_truth_java", 1538 "//third_party/guava:guava_android_java", 1539 ] 1540 1541 additional_jar_files = [ [ 1542 "tests/resources/robolectric.properties", 1543 "robolectric.properties", 1544 ] ] 1545 } 1546} 1547