Commit Graph

1412 Commits

Author SHA1 Message Date
Peter Boström
67c9df7982 Base NACK on send codecs.
Addressing discrepancy where NACK used to be set from send codecs in
WebRtcVideoEngine(1), and before this change, from recv codecs in
WebRtcVideoEngine2. This should address that NACK might be sent even if
the remote side does not support it.

BUG=4626
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/53409004

Cr-Commit-Position: refs/heads/master@{#9171}
2015-05-11 12:34:53 +00:00
Peter Boström
126c03ea02 Base decision to send REMB on send codecs.
Fixes bug where Chromium would send REMB even though the remote party
doesn't announce support for it (because it was based on local codec
settings instead of remote ones).

BUG=4626
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/54389004

Cr-Commit-Position: refs/heads/master@{#9170}
2015-05-11 10:48:08 +00:00
Henrik Lundin
64dad838e6 Reland r9159 "Adding a new constraint to set NetEq buffer capacity ..."
The original change was reverted due to a breakage in the chrome build.
This change includes a fix for this.

TBR=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49329004

Cr-Commit-Position: refs/heads/master@{#9169}
2015-05-11 10:44:20 +00:00
Henrik Lundin
1f629232d5 Revert r9164 "Adding a new constraint to set NetEq buffer capacity ..."
This reverts commit fd32f35aff.

TBR=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/55369004

Cr-Commit-Position: refs/heads/master@{#9165}
2015-05-10 09:06:20 +00:00
Henrik Lundin
fd32f35aff Reland r9159 "Adding a new constraint to set NetEq buffer capacity ..."
This reverts commit cdb47a4533.

Contains a tentative fix to the chrome build breakage caused by the
original change.

TBR=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/47139004

Cr-Commit-Position: refs/heads/master@{#9164}
2015-05-10 09:03:00 +00:00
Lally Singh
4c277bb938 Add basic SCTP packet logging.
Attempts to get wireshark to decode the DTLS were problematic (wireshark only does it for certain versions of some DTLS implementations), so just do what firefox does and dump a txt2pcap-compatible log when requested.

R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49159004

Cr-Commit-Position: refs/heads/master@{#9162}
2015-05-08 18:39:04 +00:00
Henrik Lundin
cdb47a4533 Revert r9159 "Adding a new constraint to set NetEq buffer capacity ..."
This reverts commit 208a2294cd.
Breaks the Chrome build.

TBR=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/53399004

Cr-Commit-Position: refs/heads/master@{#9161}
2015-05-08 12:03:46 +00:00
Henrik Lundin
208a2294cd Adding a new constraint to set NetEq buffer capacity from peerconnection
This change makes it possible to set a custom value for the maximum
capacity of the packet buffer in NetEq (the audio jitter buffer). The
default value is 50 packets, but any value can be set with the new
functionality.

R=jmarusic@webrtc.org, mflodman@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50869004

Cr-Commit-Position: refs/heads/master@{#9159}
2015-05-08 10:58:51 +00:00
Fredrik Solenberg
d3ddc1b69e Consistently use DCHECK, not ASSERT or assert in talk/media/webrtc/.
BUG=
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49929004

Cr-Commit-Position: refs/heads/master@{#9156}
2015-05-07 15:07:36 +00:00
Fredrik Solenberg
e444a3dcd3 WebRtcVoiceEngine: Get rid of unnecessary template base class.
BUG=
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46219004

Cr-Commit-Position: refs/heads/master@{#9155}
2015-05-07 14:42:12 +00:00
Fredrik Solenberg
aaf8ff2e45 WebRtcVoiceEngine: virtual to override + git cl format.
BUG=
R=kwiberg@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/54369004

Cr-Commit-Position: refs/heads/master@{#9154}
2015-05-07 14:05:57 +00:00
Fredrik Solenberg
6179b89e53 Remove unused API on WebRtcVoiceEngine.
BUG=1695
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46209004

Cr-Commit-Position: refs/heads/master@{#9153}
2015-05-07 14:01:30 +00:00
Fredrik Solenberg
4b60c73e74 Hook up libjingle WebRtcVoiceEngine to Call API for combined A/V BWE.
BUG=4574,3109
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49269004

Cr-Commit-Position: refs/heads/master@{#9150}
2015-05-07 12:07:46 +00:00
Peter Boström
81ea54eaac Remove WebRtcVideoEngine.
Leaves a stub file for talk/media/webrtc/webrtcvideoengine.cc until
build files in Chromium have been modified.

BUG=1695,4566
R=mflodman@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48339004

Cr-Commit-Position: refs/heads/master@{#9148}
2015-05-07 09:41:10 +00:00
Bjorn Volcker
ccfc93913c Reinterpret AudioOption delay_agnostic_aec to override HW-AEC
This CL will change the behavior when enabling Delay Agnostic AEC through the media constraint (and AudioOption delay_agnostic_aec)

FROM
 Use DA-AEC instead of AECM if there is no HW-AEC
TO
 Use DA-AEC even if there is a HW-AEC

Before this change the user will not really know if the Delay Agnostic AEC is running or not, so it is more intuitive if the option overrides the built-in one if the user has asked for it.

BUG=4472
TESTED=locally with a modified AppRTCDemo app
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49859004

Cr-Commit-Position: refs/heads/master@{#9147}
2015-05-07 05:43:23 +00:00
Zeke Chin
57cc74e32c iOS camera switching video capturer.
Introduces a new capture class derived from cricket::VideoCapturer that
provides the ability to switch cameras and updates AppRTCDemo to use it.
Some future work pending to clean up AppRTCDemo UI.

BUG=4070
R=magjed@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48279005

Cr-Commit-Position: refs/heads/master@{#9137}
2015-05-05 14:52:45 +00:00
Karl Wiberg
c56ac1ec29 rtc::Buffer: Remove backwards compatibility band-aids
This CL makes two changes to rtc::Buffer that have had to wait for
Chromium's use of it to be modernized:

  1. Change default return type of rtc::Buffer::data() from char* to
     uint8_t*. uint8_t is a more natural type for bytes, and won't
     accidentally convert to a string. (Chromium previously expected
     the default return type to be char, which is why
     rtc::Buffer::data() initially got char as default return type in
     9478437f, but that's been fixed now.)

  2. Stop accepting void* inputs in constructors and methods. While
     this is convenient, it's also dangerous since any pointer type
     will implicitly convert to void*.

(This was previously committed (9e1a6d7c) but had to be reverted
(cbf09274) because Chromium on Android wasn't quite ready for it).

TBR=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/47109004

Cr-Commit-Position: refs/heads/master@{#9132}
2015-05-04 12:54:56 +00:00
Alex Glaznev
e433c0ef31 Restore back verbosity logging for camera captured frame.
Helps to debug camera freezes.

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46179004

Cr-Commit-Position: refs/heads/master@{#9127}
2015-05-01 20:54:27 +00:00
Jiayang Liu
cac1b38135 Expose RTCConfiguration to java JNI and add an option to disable TCP
BUG=4585, 4589
R=glaznev@webrtc.org, juberti@google.com, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49809004

Cr-Commit-Position: refs/heads/master@{#9125}
2015-04-30 19:35:32 +00:00
Peter Thatcher
4eddf18b1c Don't crash if SetRemoteDescription is called first with BundlePolicy=max-bundle.
BUG=
R=decurtis@webrtc.org, juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/46149004

Cr-Commit-Position: refs/heads/master@{#9124}
2015-04-30 17:56:21 +00:00
Karl Wiberg
cbf0927473 Revert "rtc::Buffer: Remove backwards compatibility band-aids"
This reverts commit 9e1a6d7c23, because
Chromium for Android still isn't happy with it.

TBR=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49869004

Cr-Commit-Position: refs/heads/master@{#9122}
2015-04-30 14:01:01 +00:00
Karl Wiberg
9e1a6d7c23 rtc::Buffer: Remove backwards compatibility band-aids
This CL makes two changes to rtc::Buffer that have had to wait for
Chromium's use of it to be modernized:

  1. Change default return type of rtc::Buffer::data() from char* to
     uint8_t*. uint8_t is a more natural type for bytes, and won't
     accidentally convert to a string. (Chromium previously expected
     the default return type to be char, which is why
     rtc::Buffer::data() initially got char as default return type in
     9478437f, but that's been fixed now.)

  2. Stop accepting void* inputs in constructors and methods. While
     this is convenient, it's also dangerous since any pointer type
     will implicitly convert to void*.

R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44269004

Cr-Commit-Position: refs/heads/master@{#9121}
2015-04-30 12:25:06 +00:00
Peter Boström
f16fcbec73 Remove ViECapture usage in VideoSendStream.
Instead a ViECapturer object is allocated and directly operated on. This
additionally exposes ViESharedData to Call to access the module
ProcessThread, moving towards Call ownership of shared resources.

BUG=1695
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/45339004

Cr-Commit-Position: refs/heads/master@{#9119}
2015-04-30 10:16:11 +00:00
Erik Språng
efbde3775b Don't use CPU adaptation for screen content in the new API.
BUG=4605
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48309004

Cr-Commit-Position: refs/heads/master@{#9116}
2015-04-29 14:21:32 +00:00
Ivo Creusen
adf89b7e33 Added SetBitRate function to VoE API to allow changing the audio bitrate.
If the requested bitrate is not valid for the codec, the codec will decide on
an appropriate value.
Updated VoE command line tool to use new SetBitRate function.
Includes unittests for SetBitRate function.

BUG=
R=henrik.lundin@webrtc.org, henrika@webrtc.org, kwiberg@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50789004

Cr-Commit-Position: refs/heads/master@{#9115}
2015-04-29 14:03:45 +00:00
Fredrik Solenberg
23fba1ffa0 Add AudioReceiveStream to Call API.
BUG=4574
R=kwiberg@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51749004

Cr-Commit-Position: refs/heads/master@{#9114}
2015-04-29 13:24:10 +00:00
Henrik Kjellander
10ba3eec5a Roll chromium_revision a12e1e1..0cb2549 (326495:327252)
https://codereview.chromium.org/1051343002 adds a dependency
on Chromium's third_party/junit into base/ which affects our
Android tests that uses that code.

The precompiled JUnit 4.11 JAR file that is only by the
libjingle_peerconnection_java_unittest target on Linux has been
moved to third_party/junit-jar, since it collided with the expected
path for the JUnit dependency mentioned above.
It had to be kept since the Chromium JUnit is only possible to build
when OS==android.

This CL also brings in Mockito and Robolectric, which should be
useful for our Android tests.

Other relevant changes:
* src/buildtools: 3b302fe..15308f4
* src/third_party/libjpeg_turbo: 034e9a9..9e9058b
* src/third_party/libyuv: 32ad6e0..01db3d1
Details: a12e1e1..0cb2549/DEPS

Clang version was not updated in this roll.

BUG=4499
R=phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48239004

Cr-Commit-Position: refs/heads/master@{#9113}
2015-04-29 12:48:00 +00:00
Peter Boström
94cc1fe4af Remove ViEImageProcess usage in VideoSendStream.
Replaces interface usage with direct calls on ViEEncoder removing a
layer of indirection. Also removing some methods from ViEImageProcess
that were only added for Video{Send,Receive}Stream usage.

BUG=1695
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/45319004

Cr-Commit-Position: refs/heads/master@{#9111}
2015-04-29 12:08:49 +00:00
Bjorn Volcker
1ba344a070 Adds a MediaConstraint for the AudioOption aec_dump
Alson includes
- a test verifying that the option is set
- changed the test verifying delay_agnostic_aec option is set to use non-default value

BUG=4555
TESTED=locally through AppRTCDemo on N7 and Android One
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46059004

Cr-Commit-Position: refs/heads/master@{#9109}
2015-04-29 05:28:22 +00:00
Alex Glaznev
faa6d076b7 Remove a few verbose log messages from webrtcvideoengine2.
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49189004

Cr-Commit-Position: refs/heads/master@{#9105}
2015-04-28 16:40:51 +00:00
Peter Thatcher
019087f5bb Add safeguards against signalling peer-reflexive candidates.
BUG=4208
R=juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/50799004

Cr-Commit-Position: refs/heads/master@{#9104}
2015-04-28 16:06:34 +00:00
Erik Språng
143cec1cc6 Set correct encoder-specific settings for vpx in the new API.
Also, make VideoEncoderConfig::ContentType an enum class.

BUG=4569
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46069004

Cr-Commit-Position: refs/heads/master@{#9093}
2015-04-28 08:01:14 +00:00
Henrik Kjellander
e6cefb60f8 GYP variables for building expat, icu, libsrtp, usrsctp
This makes the build more flexible when linking against
prebuilt external libraries.

Use existing build_* variables for libyuv and json in talk/
(already in use in webrtc/).

Also make it possible to avoid building the GTK parts of the Linux build.

BUG=4242
R=andrew@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44179005

Cr-Commit-Position: refs/heads/master@{#9087}
2015-04-27 12:38:37 +00:00
Tommi
77d444a433 Handle the case when hoststring is empty.
BUG=chromium:480536
R=magjed@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46109004

Cr-Commit-Position: refs/heads/master@{#9081}
2015-04-24 13:38:17 +00:00
Peter Boström
c4188fd3c7 Use IncomingVideoStream in VideoReceiveStream.
Decouples VideoReceiveStream further from webrtc/video_engine/ as well
as most of webrtc/modules/video_render/ resulting in a simpler setup.

BUG=1695
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50749004

Cr-Commit-Position: refs/heads/master@{#9080}
2015-04-24 13:15:40 +00:00
Henrik Kjellander
24d4485614 Enable -Wunused-private-field warning for talk/
BUG=4242
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49139004

Cr-Commit-Position: refs/heads/master@{#9069}
2015-04-23 12:50:59 +00:00
Henrik Kjellander
352595459d Use short include paths for icu headers.
This makes it possible to build with icu located
in another absolute path.

BUG=4242
R=andresp@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46079004

Cr-Commit-Position: refs/heads/master@{#9063}
2015-04-23 06:58:02 +00:00
Peter Boström
ee0b00e8a9 Prevent recv-stream reconfig on identical codecs.
Receive streams seem to be reconfigured with identical codecs when
another stream is removed. Preventing this reconfiguration makes sure
that existing streams don't report stats during teardown when the stream
is still supposed to be running.

BUG=1788
R=asapersson@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44249004

Cr-Commit-Position: refs/heads/master@{#9059}
2015-04-22 16:40:58 +00:00
Alex Glaznev
908e77bd00 Allow Java code to detect if VP8 and H.264 HW decoding is supported.
R=wzh@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43269004

Cr-Commit-Position: refs/heads/master@{#9058}
2015-04-22 16:25:22 +00:00
Fredrik Solenberg
b67288283a Move cricket::FakeCall and associates to a separate file.
BUG=4574
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49129004

Cr-Commit-Position: refs/heads/master@{#9057}
2015-04-22 13:34:57 +00:00
Fredrik Solenberg
7fb711f683 Remove unused voice channel argument from cricket::VideoChannel ctor and corresponding field in class.
BUG=4574
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50769004

Cr-Commit-Position: refs/heads/master@{#9056}
2015-04-22 13:30:33 +00:00
Peter Boström
393347ff98 Report receive-side packet loss.
BUG=4558
R=asapersson@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48219004

Cr-Commit-Position: refs/heads/master@{#9054}
2015-04-22 12:52:31 +00:00
Henrik Kjellander
7c027b64ae Enable more Clang warnings for talk/
BUG=4242
R=andresp@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46999004

Cr-Commit-Position: refs/heads/master@{#9053}
2015-04-22 11:21:10 +00:00
jackychen
61b4d518af Dynamic resolution change for VP8 HW encode.
Off by default for now.

BUG=
R=glaznev@webrtc.org, stefan@webrtc.org
TBR=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/45849004

Cr-Commit-Position: refs/heads/master@{#9045}
2015-04-21 22:29:53 +00:00
Shao Changbin
e62202fedf Support handling multiple RTX but only generate SDP with RTX associated with VP8.
This implementation registers RTX-APT map inside RTP sender and receiver.
While it only generates SDP with RTX associated with VP8 to make it
compatible with previous Chrome versions.

Should add following changes after reaches stable,
* Use RTX-APT map for building and restoring RTP packets.
* Add RTX support for RED or VP9 in Video engine.
* Set RTX payload type for RED inside FecConfig in EndToEndTest.

BUG=4024
R=mflodman@webrtc.org, pbos@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36889004

Cr-Commit-Position: refs/heads/master@{#9040}
2015-04-21 12:25:42 +00:00
Alex Glaznev
c4905fb72a Fix race condition in Android camera JNI code.
AndroidVideoCapturerJni dtor is called on signaling thread
and may destroy JNI global refs while processing late camera
frame arrival in ReturnBuffer_w() in worker thread.

Fix this by waiting for all function invoked on worker thread
to complete in camera JNI dtor.

R=wzh@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49099004

Cr-Commit-Position: refs/heads/master@{#9037}
2015-04-20 23:54:25 +00:00
Zeke Chin
ac7d97fea6 Remove frame copy in RTCOpenGLVideoRenderer.
BUG=1128
R=magjed@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44039004

Cr-Commit-Position: refs/heads/master@{#9036}
2015-04-20 21:33:05 +00:00
Alex Glaznev
8c054154da Add extra logging for Android camera JNI layer.
Plus enabled checks for release version.

R=wzh@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46939004

Cr-Commit-Position: refs/heads/master@{#9034}
2015-04-20 20:00:35 +00:00
Karl Wiberg
9478437fde rtc::Buffer improvements
1. Constructors, SetData(), and AppendData() now accept uint8_t*,
     int8_t*, and char*. Previously, they accepted void*, meaning that
     any kind of pointer was accepted. I think requiring an explicit
     cast in cases where the input array isn't already of a byte-sized
     type is a better compromise between convenience and safety.

  2. data() can now return a uint8_t* instead of a char*, which seems
     more appropriate for a byte array, and is harder to mix up with
     zero-terminated C strings. data<int8_t>() is also available so
     that callers that want that type instead won't have to cast, as
     is data<char>() (which remains the default until all existing
     callers have been fixed).

  3. Constructors, SetData(), and AppendData() now accept arrays
     natively, not just decayed to pointers. The advantage of this is
     that callers don't have to pass the size separately.

  4. There are new constructors that allow setting size and capacity
     without initializing the array. Previously, this had to be done
     separately after construction.

  5. Instead of TransferTo(), Buffer now supports swap(), and move
     construction and assignment, and has a Pass() method that works
     just like std::move(). (The Pass method is modeled after
     scoped_ptr::Pass().)

R=jmarusic@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42989004

Cr-Commit-Position: refs/heads/master@{#9033}
2015-04-20 12:03:00 +00:00
Thiago Farina
91543731c3 Do not define POSIX.
It breaks integration with upstream re2 library on Chromium.

Without patching re2 library, with this define, it produces the
following error:

../../third_party/re2/re2/re2.h:254:5: error: expected identifier
    POSIX, // POSIX syntax, leftmost-longest match

As we define POSIX on the command line, the C preprocessor changes
RE2::POSIX to nothing and thus break the compilation. :(

See chromium-dev mailing list for this discussion in
https://groups.google.com/a/chromium.org/d/topic/chromium-dev/UXCHnX7pV44/discussion

BUG=None
TEST=ninja -C out/Debug, everything compiles as before
R=sergeyu@chromium.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46049004

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#9032}
2015-04-20 11:14:22 +00:00