230 Commits

Author SHA1 Message Date
Magnus Jedvert
522c1bc6bb Revert "Android: Generate JNI code for androidnetworkmonitor_jni"
This reverts commit 768e1c0ea1f2077675df31915132a0557aca400e.

Reason for revert: Breaks AppRTCMobile.

Original change's description:
> Android: Generate JNI code for androidnetworkmonitor_jni
> 
> Bug: webrtc:8278
> Change-Id: I8447b2de5ec2610760f7112b6f86e54d94325322
> Reviewed-on: https://webrtc-review.googlesource.com/24520
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20796}

TBR=magjed@webrtc.org,sakal@webrtc.org

Change-Id: I45f8d19abd81386872b7c095ac7eca21fa06077c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8278,webrtc:8556
Reviewed-on: https://webrtc-review.googlesource.com/24622
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20800}
2017-11-20 20:51:50 +00:00
Magnus Jedvert
768e1c0ea1 Android: Generate JNI code for androidnetworkmonitor_jni
Bug: webrtc:8278
Change-Id: I8447b2de5ec2610760f7112b6f86e54d94325322
Reviewed-on: https://webrtc-review.googlesource.com/24520
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20796}
2017-11-20 16:00:39 +00:00
Magnus Jedvert
202be3957d Android: Generate JNI code for androidvideotracksource
Bug: webrtc:8278
Change-Id: I43b53c68ebaf2c3f9c27ea7ef510d7b016c1df93
Reviewed-on: https://webrtc-review.googlesource.com/23243
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20795}
2017-11-20 15:25:59 +00:00
Magnus Jedvert
c6a003c192 Android: Simplify GetJavaEnumName
We can call name() on the base class java.lang.Enum instead of the
specific enum subclass.

Bug: webrtc:8278
Change-Id: I12f8354d99e48b4a5e3d3eaff74a85ac417df0b3
Reviewed-on: https://webrtc-review.googlesource.com/24440
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20790}
2017-11-20 13:20:30 +00:00
Magnus Jedvert
986a79cf3d Android: Annotate and generate JNI code for Metrics.java
Bug: webrtc:8278
Change-Id: I54caee1acb483d7554afd6c0958f1929a78d6a56
Reviewed-on: https://webrtc-review.googlesource.com/22720
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20753}
2017-11-18 17:06:29 +00:00
Magnus Jedvert
cdda0d99a3 Android: Add helper function for converting Integer -> rtc::Optional<int>
Bug: webrtc:8278
Change-Id: I1c499a35c5fd77304ed2906ea61ef2322ec98cea
No-Tree-Checks: true
Reviewed-on: https://webrtc-review.googlesource.com/20876
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20750}
2017-11-18 15:08:09 +00:00
Magnus Jedvert
df4883dbf0 Reland "Update internal encoder factory to new interface"
This is a reland of 2c8c8e26fc58a0f2789b7a5cd2646a8319c14d3e
Original change's description:
> Update internal encoder factory to new interface
>
> TBR=stefan@webrtc.org
>
> Bug: webrtc:7925
> Change-Id: I0bb97acdf0d58a9ce531ecdd672bb17ef96360df
> Reviewed-on: https://webrtc-review.googlesource.com/21162
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20717}

TBR=andersc@webrtc.org,brandt@webrtc.org,stefan@webrtc.org

Bug: webrtc:7925
Change-Id: I0d269b3edb029e372a36c3b461a577bca2b6d0cb
Reviewed-on: https://webrtc-review.googlesource.com/24000
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20747}
2017-11-18 10:48:28 +00:00
Zhi Huang
aea84f5519 Revert "Update internal encoder factory to new interface"
This reverts commit 2c8c8e26fc58a0f2789b7a5cd2646a8319c14d3e.

Reason for revert: Broke the internal projects.

Original change's description:
> Update internal encoder factory to new interface
> 
> TBR=stefan@webrtc.org
> 
> Bug: webrtc:7925
> Change-Id: I0bb97acdf0d58a9ce531ecdd672bb17ef96360df
> Reviewed-on: https://webrtc-review.googlesource.com/21162
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20717}

TBR=brandtr@webrtc.org,magjed@webrtc.org,andersc@webrtc.org,stefan@webrtc.org

Change-Id: I989070277885ee70fe6b38272d0001cff890f3ef
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7925
Reviewed-on: https://webrtc-review.googlesource.com/23780
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20720}
2017-11-16 18:46:35 +00:00
Magnus Jedvert
6062f372c7 Android: Fix warnings
TBR=sakal@webrtc.org

Bug: webrtc:6597,webrtc:8534
Change-Id: I39f96d9e0e6d604051b1cc13368dd44fc82b30b0
Reviewed-on: https://webrtc-review.googlesource.com/23622
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20719}
2017-11-16 18:25:33 +00:00
Magnus Jedvert
2c8c8e26fc Update internal encoder factory to new interface
TBR=stefan@webrtc.org

Bug: webrtc:7925
Change-Id: I0bb97acdf0d58a9ce531ecdd672bb17ef96360df
Reviewed-on: https://webrtc-review.googlesource.com/21162
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20717}
2017-11-16 17:55:24 +00:00
Anders Carlsson
1e1dd77604 Implement equals() and hashCode() for VideoCodecInfo.
To be able to compare VideoCodecInfos in a nice way in Java and still
use the correct criteria for comparing H264 codec infos.

A similar thing was done for Obj-C here:
https://webrtc-review.googlesource.com/c/src/+/4383

Bug: webrtc:7925
Change-Id: I43f532d4efa557fc8fe25a82eebc35072b91e6db
Reviewed-on: https://webrtc-review.googlesource.com/23240
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20716}
2017-11-16 16:52:24 +00:00
Magnus Jedvert
4d85e8a78c Android: Fix JavaLangClash warning
The warnings is this:
org.webrtc.ClassLoader clashes with java.lang.ClassLoader

This CL fixes that by renaming org.webrtc.ClassLoader to
org.webrtc.WebRtcClassLoader.

Bug: webrtc:6597,webrtc:8534
Change-Id: Ia392850cd2d0eb0683c03607d0cec06904de532f
Reviewed-on: https://webrtc-review.googlesource.com/23680
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20715}
2017-11-16 15:47:03 +00:00
Oskar Sundbom
9ced7e54e9 Optional: Use nullopt and implicit construction in /sdk/android
Changes places where we explicitly construct an Optional to instead use
nullopt or the requisite value type only.

This CL was uploaded by git cl split.

R=sakal@webrtc.org

Bug: None
Change-Id: I6185f088ae83c8864fd7efd05be628bbfe4ac5c1
Reviewed-on: https://webrtc-review.googlesource.com/23565
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20705}
2017-11-16 11:08:24 +00:00
Anders Carlsson
c3fedccf01 VideoEncoderFallback for Android.
Expose VideoEncoderSoftwareFallbackWrapper in Java.

Bug: webrtc:7925
Change-Id: I1e1f7bc0469527f6f6a3b7051535896c3f02611c
Reviewed-on: https://webrtc-review.googlesource.com/22960
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20698}
2017-11-16 08:34:28 +00:00
Sami Kalliomäki
4e3832124f Do not initialize internal tracer if it has already been initialized.
Bug: b/68989834
Change-Id: I7bb02d58cef5c14c6433d1fc7a95b46ff2b27f6f
Reviewed-on: https://webrtc-review.googlesource.com/23280
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20696}
2017-11-16 08:28:53 +00:00
Magnus Jedvert
c2ac3c663f Android: Annotate and generate JNI code for VideoFrame.java
This CL also merged native_handle_impl.cc and videoframe_jni.cc to keep
all JNI code for the same Java class in the same file, and also renames
this file to jni/videoframe.cc.

The classes AndroidVideoBufferFactory and JavaVideoFrameFactory are
now unnecessary since we cache everything and can be simplified to
global static functions instead.

Bug: webrtc:8278
Change-Id: I03d7b0bbde64cfb407cd6210478ddf9d5599cd8c
Reviewed-on: https://webrtc-review.googlesource.com/22923
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20677}
2017-11-14 18:44:47 +00:00
Magnus Jedvert
6199a3731d Android: Annotate and generate JNI code for SurfaceTextureHelper.java
Bug: webrtc:8278
Change-Id: I96966e3e7f589a1dde8d4c8079d3fdd1e32bc023
Reviewed-on: https://webrtc-review.googlesource.com/22721
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20673}
2017-11-14 13:41:06 +00:00
Anders Carlsson
6cb76506fe Android: Don't create VP9 encoder/decoder when not supported.
In the SoftwareVideoCodecFactories, don't try to create VP9 encoder or
decoder if WebRTC was built without support for it.

Bug: None
Change-Id: I09b87fdcf798c763310af4998dbea8011843010d
Reviewed-on: https://webrtc-review.googlesource.com/22924
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20672}
2017-11-14 13:18:16 +00:00
Magnus Jedvert
620d9c9195 Move InitClassLoader from JNI_OnLoad to LoadGlobalClassReferenceHolder
This fixes clients with custom JNI_OnLoad code. This is basically a
reland of https://webrtc-review.googlesource.com/21281, but called from
LoadGlobalClassReferenceHolder instead of InitGlobalJniVariables. The
problem it solves is that some clients call InitGlobalJniVariables
from a strange thread and without using the rest of our Java API.

TBR=lliuu@@webrtc.org,sakal@webrtc.org

Bug: webrtc:8278
Change-Id: I664e50920bcd7e087ec2d8bb5be13569e8ff3088
Reviewed-on: https://webrtc-review.googlesource.com/22801
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20663}
2017-11-13 22:18:51 +00:00
Lu Liu
edfa7d7131 Revert "Move InitClassLoader from JNI_OnLoad to InitGlobalJniVariables."
This reverts commit b3a8c980f7b33e7457f9a1ee3582ccbc28b7f70c.

Reason for revert: Breaking internal projects

Original change's description:
> Move InitClassLoader from JNI_OnLoad to InitGlobalJniVariables.
> 
> This fixes clients with custom JNI_OnLoad code.
> 
> Bug: webrtc:8278
> Change-Id: I67b45c2ca07b13b0bf968c5ac17ec6f1bcc58a86
> Reviewed-on: https://webrtc-review.googlesource.com/21281
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20629}

TBR=magjed@webrtc.org,sakal@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:8278
Change-Id: I6add8182172501cb93bed998f68ce848c7280a98
Reviewed-on: https://webrtc-review.googlesource.com/22780
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20660}
2017-11-13 20:31:51 +00:00
Magnus Jedvert
46a2765c56 Reland "Update internal SW codecs to return unique_ptrs"
This reverts commit 34c8e6bce8af0c31f2b0b31d691a6a931fa3cb7b.

Reason for revert: Fix Android compilation

Original change's description:
> Revert "Update internal SW codecs to return unique_ptrs"
>
> This reverts commit 4fe6adc06a8524ac25f85260bfe392eb31dae6b4.
>
> Reason for revert: Breaks android compile.
>
> Original change's description:
> > Update internal SW codecs to return unique_ptrs
> >
> > TBR=stefan@webrtc.org
> >
> > Bug: webrtc:7925
> > Change-Id: I84239b071a2608d928f09b06809090eec5eafb14
> > Reviewed-on: https://webrtc-review.googlesource.com/21165
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20650}
>
> TBR=magjed@webrtc.org,sprang@webrtc.org,stefan@webrtc.org
>
> Change-Id: If33c3a0ee0dfce63d105558a2897a472f0633306
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7925
> Reviewed-on: https://webrtc-review.googlesource.com/22540
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20652}

TBR=magjed@webrtc.org,sprang@webrtc.org,stefan@webrtc.org

Change-Id: Ic8551af4687e927c9b605060155abdd5bc6208b2
Bug: webrtc:7925
Reviewed-on: https://webrtc-review.googlesource.com/22541
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20655}
2017-11-13 14:23:58 +00:00
Anders Carlsson
dc1b9f179a Injectable software codecs for Android.
This is similar to https://webrtc-review.googlesource.com/c/src/+/3620
for iOS.

Using the new WebRtcMediaEngineFactory::Create API, the built-in
software video codecs are no longer appended to the injected codecs.

To be able to use the software codecs, they are exposed as Java
classes through SoftwareVideoEncoderFactory etc.

There is also a new DefaultVideoEncoderFactory used by AppRTCMobile.
This factory tries to use hardware implementations where available,
but falls back to using the injected software codecs.

The HardwareVideoEncoderFactory is temporarily also falling back on
the software codecs in its default configuration in order to
maintain backwards compatibility.

Bug: webrtc:7925
Change-Id: I3e8c5ed492ccd160aca968986ad217d7978a951c
Reviewed-on: https://webrtc-review.googlesource.com/17480
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20647}
2017-11-13 11:59:28 +00:00
Sami Kalliomäki
b3a8c980f7 Move InitClassLoader from JNI_OnLoad to InitGlobalJniVariables.
This fixes clients with custom JNI_OnLoad code.

Bug: webrtc:8278
Change-Id: I67b45c2ca07b13b0bf968c5ac17ec6f1bcc58a86
Reviewed-on: https://webrtc-review.googlesource.com/21281
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20629}
2017-11-10 12:59:55 +00:00
Sami Kalliomäki
ec6cf2a94f Cleanup old suppressions from suppressions.xml.
Limits CpuMonitor to supported Android versions.

Bug: webrtc:6597
Change-Id: I15fb4f5dff2511f578069dd70521728e9909bd15
Reviewed-on: https://webrtc-review.googlesource.com/21225
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20626}
2017-11-10 10:38:05 +00:00
Mirko Bonadei
675513b96a Stop using LOG macros in favor of RTC_ prefixed macros.
This CL has been generated with the following script:

for m in PLOG \
  LOG_TAG \
  LOG_GLEM \
  LOG_GLE_EX \
  LOG_GLE \
  LAST_SYSTEM_ERROR \
  LOG_ERRNO_EX \
  LOG_ERRNO \
  LOG_ERR_EX \
  LOG_ERR \
  LOG_V \
  LOG_F \
  LOG_T_F \
  LOG_E \
  LOG_T \
  LOG_CHECK_LEVEL_V \
  LOG_CHECK_LEVEL \
  LOG
do
  git grep -l $m | xargs sed -i "s,\b$m\b,RTC_$m,g"
done
git checkout rtc_base/logging.h
git cl format

Bug: webrtc:8452
Change-Id: I1a53ef3e0a5ef6e244e62b2e012b864914784600
Reviewed-on: https://webrtc-review.googlesource.com/21325
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20617}
2017-11-09 11:56:32 +00:00
Magnus Jedvert
18ce0f006d Android: Generate Java -> C++ JNI code for VideoEncoder
This is the first CL that tries generating Java -> C++ JNI code.

Bug: webrtc:8278
Change-Id: I1ff0df10db0f80a3c84a61a4e82be8f713690a69
Reviewed-on: https://webrtc-review.googlesource.com/20873
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20592}
2017-11-07 16:37:25 +00:00
Magnus Jedvert
0371e10584 Android: Generate all C++ -> Java JNI code for VideoEncoder
The first example CL for generating JNI code
(https://webrtc-review.googlesource.com/c/src/+/4500) seems to stick, so
this CL updates the rest of the VideoEncoder. The JNI code for
Java -> C++ is still done manually.

This CL puts the necessary helper Java methods in a class called
VideoEncoderWrapper.

Bug: webrtc:8278
Change-Id: Ic3a6defe59c094f67ffd8ea86d6c272c676980ae
Reviewed-on: https://webrtc-review.googlesource.com/20871
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20587}
2017-11-07 15:32:15 +00:00
Magnus Jedvert
3111e5fb48 Android: Replacement for JNIEnv::FindClass that works from any thread
This CL adds a replacement for JNIEnv::FindClass that works from any
thread, i.e. from native C++ threads as well. This function will be used
from the generated JNI code. Long term, we should stop using
classreferenceholder that relies on a hardcoded list of WebRTC classes.

Bug: webrtc:8278
Change-Id: I4f40c744325ac02b73bd8fa479ab50b684429dc2
Reviewed-on: https://webrtc-review.googlesource.com/20223
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20583}
2017-11-07 12:14:40 +00:00
Sami Kalliomäki
f6515cd0e3 Fix and optimize input buffer filling in HardwareVideoEncoder.
Previously input buffers would be filled incorrectly for sparsely
packed buffers where stride is not equal to the plane width.

Bug: webrtc:8478
Change-Id: I080fa3c354a27982bb996be8c1e41b103384e4bc
Reviewed-on: https://webrtc-review.googlesource.com/17321
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20550}
2017-11-02 12:22:07 +00:00
Magnus Jedvert
56231d07b3 Reland "Android: Generate JNI code for VideoSink and VideoEncoder"
This is a reland of ba78b5a905bffa05933a135673996df02328f2a4
Original change's description:
> Android: Generate JNI code for VideoSink and VideoEncoder
> 
> This is the first CL to start generating JNI code. It has updated two of
> the most recent classes to use JNI code generation.
> 
> Bug: webrtc:8278
> Change-Id: I1b19ee78c273346ceeaa0401dbdf8696803f16c7
> Reviewed-on: https://webrtc-review.googlesource.com/3820
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#19994}

Bug: webrtc:8278
Change-Id: Id3e6513736eb87d7c234be3b0d13c5d30435201c
Reviewed-on: https://webrtc-review.googlesource.com/4500
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20548}
2017-11-02 10:27:47 +00:00
henrika
5f6bf24506 Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API (II)
Second attempt to land https://webrtc-review.googlesource.com/c/src/+/16180

Now removes voice_engine dependency from peerconnection and fixes a minor
const issue in NullAudioPoller.

TBR=solenberg

Bug: webrtc:7313
Change-Id: Ibfddbdc76118581e4a4dc64575203f84c1659e5c
Reviewed-on: https://webrtc-review.googlesource.com/17784
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20526}
2017-11-01 11:04:26 +00:00
Mirko Bonadei
990d6b875e Revert "Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API"
This reverts commit 90bace095806a635411edd40fb8490a144e59e63.

Reason for revert: The original problem of this CL has been fixed in https://webrtc-review.googlesource.com/17540 but sounds like it is also adding voice_engine as a dependency of pc:peerconnection. We should investigate this because probably we can avoid it.

Original change's description:
> Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API
> 
> (this CL is based on the work by Taylor and Steve in https://webrtc-review.googlesource.com/c/src/+/10201)
> 
> This SetAudioPlayout method lets applications disable audio playout while
> still processing incoming audio data and generating statistics on the
> received audio.
> 
> This may be useful if the application wants to set up media flows as
> soon as possible, but isn't ready to play audio yet. Currently, native
> applications don't have any API point to control this, unless they
> completely implement their own AudioDeviceModule.
> 
> The SetAudioRecording works in a similar fashion but for the recorded
> audio. One difference is that calling SetAudioRecording(false) does not
> keep any audio processing alive.
> 
> TBR=solenberg
> 
> Bug: webrtc:7313
> Change-Id: I0aa075f6bfef9818f1080f85a8ff7842fb0750aa
> Reviewed-on: https://webrtc-review.googlesource.com/16180
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20499}

TBR=solenberg@webrtc.org,henrika@webrtc.org,kwiberg@webrtc.org

Change-Id: I8431227e21dbffcfed3dd0e6bd7ce26c4ce09394
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7313
Reviewed-on: https://webrtc-review.googlesource.com/17701
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20512}
2017-11-01 02:40:48 +00:00
henrika
90bace0958 Add SetAudioPlayout and SetAudioRecording methods to the PeerConnection API
(this CL is based on the work by Taylor and Steve in https://webrtc-review.googlesource.com/c/src/+/10201)

This SetAudioPlayout method lets applications disable audio playout while
still processing incoming audio data and generating statistics on the
received audio.

This may be useful if the application wants to set up media flows as
soon as possible, but isn't ready to play audio yet. Currently, native
applications don't have any API point to control this, unless they
completely implement their own AudioDeviceModule.

The SetAudioRecording works in a similar fashion but for the recorded
audio. One difference is that calling SetAudioRecording(false) does not
keep any audio processing alive.

TBR=solenberg

Bug: webrtc:7313
Change-Id: I0aa075f6bfef9818f1080f85a8ff7842fb0750aa
Reviewed-on: https://webrtc-review.googlesource.com/16180
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20499}
2017-10-31 12:35:42 +00:00
Sami Kalliomäki
bde473e4fa Fix/suppress new warnings introduced in Chromium roll.
TBR=henrika@webrtc.org

Bug: webrtc:6597
Change-Id: Id26945a7be05250673b58de8220f78bc62886688
Reviewed-on: https://webrtc-review.googlesource.com/16860
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20477}
2017-10-30 16:10:29 +00:00
Sami Kalliomäki
9828bebee6 Fix/suppress all javac warnings.
This is done in preparation to make all javac warnings into errors for
WebRTC targets.

Bug: webrtc:6597
Change-Id: I402043157bd75943adf0de52111e5a1bb179c6d1
Reviewed-on: https://webrtc-review.googlesource.com/15104
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20450}
2017-10-26 15:11:36 +00:00
Sami Kalliomäki
68e56a5951 Android: Update VideoDecoderFactoryWrapper to implement CreateVideoDecoderWithParams.
Old CreateVideoDecoder interface is deprecated. This allows
VideoDecoderFactoryWrapper to create codecs for types that WebRTC
doesn't know about.

Bug: webrtc:8140
Change-Id: I69aa1a0164642b4e4377daa1abeb9039c04fd884
Reviewed-on: https://webrtc-review.googlesource.com/15401
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20438}
2017-10-26 07:32:34 +00:00
Sam Zackrisson
6f38d25f11 Add Java support for AudioProcessing and PostProcessing injection
This allows injection of a user-defined post processing module from
the Android layer.

Bug: webrtc:8163
Change-Id: If3a6b4726c34c5f82d186b8cf95373c283cbd3f6
Reviewed-on: https://webrtc-review.googlesource.com/7610
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20367}
2017-10-20 08:37:23 +00:00
Niels Möller
6f72f56b6c Change return types of refcount methods.
AddRef() now returns void, and Release() returns an enum
RefCountReleaseStatus, to indicate whether or not this Release
call implied deletion.

Bug: webrtc:8270
Change-Id: If2fb77f26118b61751b51c856af187c72112c630
Reviewed-on: https://webrtc-review.googlesource.com/3320
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20366}
2017-10-20 07:46:03 +00:00
Sami Kalliomäki
5f5fc6845a Relax threading requirements in VideoEncoder.
Previous strict threading requirements we not always followed and this
causes crashes in some scenarios.

Bug: webrtc:7760
Change-Id: I4808edfff19c63a9c4a9585834d46f9c73bb1c4b
Reviewed-on: https://webrtc-review.googlesource.com/13660
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20353}
2017-10-19 12:44:11 +00:00
Taylor Brandstetter
157e76f8a1 Fix issue in AndroidNetworkMonitor for Wi-Fi Direct socket binding.
AndroidNetworkMonitor::BindSocketToNetwork incorrectly checks if the
socket_fd is NETWORK_UNSPECIFIED, when it should instead be checking
if the network_handle is that. This causes the PhysicalSocket to think
that it has succesfully bound to the port, when it really has not.
This stops IceCandidates from being created for these addresses
(although a socket is listening).

The net result of this is that webrtc connections don't work when both
peers are using Wifi-Direct to communicate, although we didn't notice
this previously since we were using Wifi-Direct only on one side.

TBR=pthatcher@webrtc.org

Bug: webrtc:8403
Change-Id: Ibe8f5424654ac9db1f79927ba7ac241fd40d9cba
Reviewed-on: https://webrtc-review.googlesource.com/12442
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20331}
2017-10-17 20:18:31 +00:00
Sami Kalliomäki
cb98b11b71 Expose functionality to convert TextureBuffer to I420.
Bug: webrtc:8392
Change-Id: I79682efbef3aecbba904aa5047b229833fae25e8
Reviewed-on: https://webrtc-review.googlesource.com/8940
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20313}
2017-10-16 14:55:37 +00:00
Sami Kalliomäki
cee3e53631 Android: Cache implementation name in VideoDecoderWrapper.
This fixes a crash caused by access to already freed memory returned
by VideoDecoderWrapper::ImplementationName method.

Bug: webrtc:7760
Change-Id: Ia4b020d1dd861e6a45637abde35f12951b7c43ea
Reviewed-on: https://webrtc-review.googlesource.com/9420
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20290}
2017-10-13 14:23:07 +00:00
Jonas Oreland
bdcee28ee9 TurnCustomizer - an interface for modifying stun messages sent by TurnPort
This patch adds an interface that allows modification of stun messages
sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
and the TurnCustomizer will be invoked by TurnPort before sending
message. This allows user to e.g add custom attributes as described
in rtf5389.

BUG=webrtc:8313

Change-Id: I6f4333e9f8ff7fd20f32677be19285f15e1180b6
Reviewed-on: https://webrtc-review.googlesource.com/7618
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20233}
2017-10-11 07:45:29 +00:00
Taylor Brandstetter
ebe36efad7 Update Java MediaStream when native stream's set of tracks changes.
This will handle the scenario where, for example, the initial
offer/answer only negotiates audio, and video is added later (to the
same stream). Previously, there was absolutely no way to get a handle to
the new track without hacking the SDP. Now, the stream will be updated
after setRemoteDescription finishes.

Bug: webrtc:5677
Change-Id: Iea31bb7744da6b82afdaf44c8f74d721298a9474
Reviewed-on: https://webrtc-review.googlesource.com/6261
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20228}
2017-10-10 17:07:28 +00:00
Guido Urdaneta
604427b875 Revert "TurnCustomizer - an interface for modifying stun messages sent by TurnPort"
This reverts commit b23ed7f1af467a228cbdc63e839cac8856e9df8d.

Reason for revert: Breaks Chromium FYI build

Sample error log:

../../remoting/test/fake_port_allocator.cc:52:7: error: no matching constructor for initialization of 'cricket::BasicPortAllocator'
    : BasicPortAllocator(network_manager, socket_factory),
      ^                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/webrtc/p2p/client/basicportallocator.h:32:12: note: candidate constructor not viable: requires single argument 'network_manager', but 2 arguments were provided
  explicit BasicPortAllocator(rtc::NetworkManager* network_manager);
           ^
../../third_party/webrtc/p2p/client/basicportallocator.h:27:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class BasicPortAllocator : public PortAllocator {
      ^
../../third_party/webrtc/p2p/client/basicportallocator.h:29:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:33:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:36:3: note: candidate constructor not viable: requires 5 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,

Original change's description:
> TurnCustomizer - an interface for modifying stun messages sent by TurnPort
> 
> This patch adds an interface that allows modification of stun messages
> sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
> and the TurnCustomizer will be invoked by TurnPort before sending
> message. This allows user to e.g add custom attributes as described
> in rtf5389.
> 
> BUG=webrtc:8313
> 
> Change-Id: Ibf5cc10af84c57288f1eb4c578ca064611a769f1
> Reviewed-on: https://webrtc-review.googlesource.com/4781
> Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20197}

TBR=deadbeef@webrtc.org,sakal@webrtc.org,jonaso@webrtc.org

Change-Id: I624efb22f6e3ceac1b2ff8af1ec47e4cfdde9140
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8313
Reviewed-on: https://webrtc-review.googlesource.com/7680
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20199}
2017-10-09 09:53:59 +00:00
Jonas Oreland
b23ed7f1af TurnCustomizer - an interface for modifying stun messages sent by TurnPort
This patch adds an interface that allows modification of stun messages
sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
and the TurnCustomizer will be invoked by TurnPort before sending
message. This allows user to e.g add custom attributes as described
in rtf5389.

BUG=webrtc:8313

Change-Id: Ibf5cc10af84c57288f1eb4c578ca064611a769f1
Reviewed-on: https://webrtc-review.googlesource.com/4781
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20197}
2017-10-09 06:35:40 +00:00
Sami Kalliomäki
602dc431b0 Fix some lint warnings on Android.
Bug: webrtc:6597
Change-Id: I215b319b3129949d12b74b11e6ec35eb123a1e5a
Reviewed-on: https://webrtc-review.googlesource.com/6781
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20182}
2017-10-06 11:20:14 +00:00
Sami Kalliomäki
07c5bfb4d6 Convert FileVideoCapturer to capture VideoFrames.
Bug: webrtc:7749
Change-Id: I0e102888bf3f9d413b9e9282354f7577c52bef59
Reviewed-on: https://webrtc-review.googlesource.com/6920
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20173}
2017-10-06 07:11:53 +00:00
Sami Kalliomäki
0ca8b53603 Always copy output byte buffers in HardwareVideoDecoder.
This simplifies the code and ensures we don't starve the decoder if
there are multiple output buffers queued.

Bug: webrtc:7760
Change-Id: I42c31f5045fca96847001260b8796d6756900d0f
Reviewed-on: https://webrtc-review.googlesource.com/5522
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20161}
2017-10-05 11:17:20 +00:00
Sami Kalliomäki
48b3c0272f Add JavaI420Buffer to the API.
This renames I420BufferImpl to JavaI420Buffer and moves it as part of
the API.

Bug: webrtc:7749
Change-Id: I70726f248ba4601b4922996712bdfdafbfa4a1e1
Reviewed-on: https://webrtc-review.googlesource.com/5381
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20145}
2017-10-04 15:27:14 +00:00