Commit Graph

1388 Commits

Author SHA1 Message Date
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
Henrik Boström
09a9ea8886 Supporting formats of non-multiple of 16 widths on Android.
This is an updated version of perkj's issue (https://webrtc-codereview.appspot.com/44129004/) which was reverted due to libjingle_peerconnection_android_unittest crashing on Nexus 9. It crashed because there was old test code still assuming the width was multiple of 16 (which was only a problem on devices with non-16 widths).

BUG=4522
R=glaznev@webrtc.org, magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9029}
2015-04-17 15:31:45 +00:00
Alex Glaznev
f49dbfa5c3 Close all camera resources when camera error happens.
Also add more logs to better track still observed camera
open/close failures.

R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9020}
2015-04-16 16:11:22 +00:00
Alex Glaznev
9829af4bfc Disable VP8 encoder HW acceleration on NVidia devices.
NVidia HW encoder bitrate control is allowing too much
bitrate fluctuation. Plus average encoding time is not enough
for 720p 30 fps support.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9014}
2015-04-15 21:58:19 +00:00
Åsa Persson
352b2d7a19 Fix for sent/received RTCP packet counters returned by GetRtcpPacketTypeCounters. The returned counters are incorrect: sent_packets returns stats from a sent stream (and received_packets returns stats from a receive stream).
Add separate functions for returning stats from send/receive stream and updated how functions are used.

Add test implementation for histogram methods in system_wrappers/interface/metrics.h.

BUG=4519
R=pbos@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9009}
2015-04-15 16:00:37 +00:00
Magnus Jedvert
4b76c02362 Roll chromium_revision 8af41b3..dcb0929 (324854:325030)
This is a major libyuv update (almost 200 revisions):
d204db6..32ad6e0

Relevant changes:
* src/third_party/libyuv: d204db6..32ad6e0
* src/third_party/nss: d1edb68..9506806
Details: 8af41b3..dcb0929/DEPS

Since bayer and Q420 format support have been removed from libyuv, all tests related to those format are removed.

Clang version was not updated in this roll.

R=kjellander@webrtc.org
TBR=tommi

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

Cr-Commit-Position: refs/heads/master@{#9008}
2015-04-15 15:22:19 +00:00
Peter Boström
3c3f646064 Prevent null-stream reconfigs on RTP extensions.
If a codec fails to set (e.g. there's no codec configured), this
prevents a stream reconfigure with an invalid config. Reconfiguring a
stream without correct codec settings causes a CHECK failure.

BUG=chromium:475116
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9007}
2015-04-15 14:27:39 +00:00
Peter Boström
e432800aeb Enable CPU adaptation by default.
WebRtcVideoEngine2 doesn't support CPU-monitor-based adaptation and as
such requires encoder-time-based CPU adaptation to perform any
adaptation at all.

BUG=4536
R=asapersson@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9001}
2015-04-14 20:45:23 +00:00
Peter Thatcher
56d50288e0 Remove SignalCaptureStateChange from MediaEngine.
It's no longer used by anything.

R=juberti@google.com

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

Cr-Commit-Position: refs/heads/master@{#8994}
2015-04-14 00:17:36 +00:00
Alex Glaznev
575a8024bc Add an option to update mirror flag in Android video renderer.
Plus fixing incorrect mirror matrix for 90 and
270 degree rotations.

BUG=4398
R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8993}
2015-04-13 22:24:47 +00:00
Zeke Chin
1b67795dc2 Add i386 to ios fat library build script and use boringssl.
BUG=
R=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8992}
2015-04-13 21:16:19 +00:00
Peter Thatcher
77f0e3f7b6 Remove GetStartCaptureFormat and some related code.
It is no longer used by anything.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8990}
2015-04-13 17:44:56 +00:00
Peter Boström
e7b221f476 Remove deadlock in WebRtcVideoEngine2.
Acquiring stream_lock_ in WebRtcVideoChannel2 in a callback from Call
forms a lock-order inversion between process-thread locks and libjingle
locks, manifesting as CPU adaptation requests blocking on stream
creation that is blocked on the CPU adaptation request finishing.

R=asapersson@webrtc.org, mflodman@webrtc.org
BUG=4535,chromium:475065

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

Cr-Commit-Position: refs/heads/master@{#8985}
2015-04-13 13:34:32 +00:00
Bjorn Volcker
eba964f472 Revert "Support none multiple of 16 pixels width on android."
Buildbot Android Tests (L Nexus9)(dbg) consistently fails on Instrumentation test libjingle_peerconnection_android_unittest (VideoCapturerAndroidTest) after this CL was landed.

This reverts commit f4acf46c86.

BUG=
TBR=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8981}
2015-04-11 06:55:07 +00:00
Noah Richards
99c2fe5d2b Fix NullVideoEngine's CreateChannel implementation.
BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8980}
2015-04-10 21:32:42 +00:00
Alex Glaznev
e4ae8d8558 Changes in VideoCapturerAndroid.
- Do not handle more than one camera switch request at a time
to avoid blocking camera thread with multiple switch requests.
- Add a callback to notify when camera switch has been done.

R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8978}
2015-04-10 18:19:57 +00:00
Per
f4acf46c86 Support none multiple of 16 pixels width on android.
BUG=4522
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8977}
2015-04-10 14:45:27 +00:00
henrika
a125d7d7ad Changes default audio mode in AppRTCDemo to MODE_RINGTONE.
Also prevents that we try to restore audio mode when it has not been changed.

TBR=glaznev
BUG=NONE
TEST=AppRTCDemo and verify that volume control switches from "Ringtone to Phone" mode when call starts and switches back to Ringtone mode when call ends.

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

Cr-Commit-Position: refs/heads/master@{#8975}
2015-04-10 13:19:24 +00:00
Thiago Farina
9bfe3daf73 Cleanup: Remove i420_video_frame.h header.
It is just a pass through to webrtc/video_frame.h. Updated the callers
to include webrtc/video_frame.h instead and removed i420_video_frame.h.

This should fix pbos' TODO in i420_video_frame.h.

Tested on Linux with the following command lines:

$ rm -rf out/
$ ./webrtc/build/gyp_webrtc
$ ninja -C out/Debug

BUG=None
TEST=see above
R=magjed@webrtc.org, pbos@webrtc.org, tommi@webrtc.org
TBR=tommi@webrtc.org

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

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

Cr-Commit-Position: refs/heads/master@{#8973}
2015-04-10 10:52:15 +00:00
Magnus Jedvert
f6c003eda5 cricket::VideoFrameFactory: Handle if created frame is null
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8972}
2015-04-10 10:44:51 +00:00
Magnus Jedvert
0184057d54 VideoAdapterTest: Replace FileVideoCapturer with FakeVideoCapturer
The unittests are currently flaky due to the use of FileVideoCapturer.

BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8969}
2015-04-10 09:18:39 +00:00
Peter Boström
76c53d36bc Remove ViE interface usage from VideoReceiveStream.
References channels and underlying objects directly instead of using
interfaces referenced with channel id. Channel creation is still done as
before for now.

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

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

Cr-Commit-Position: refs/heads/master@{#8958}
2015-04-09 12:35:46 +00:00
Peter Boström
15cf019a00 Add field-trial flag to disable WebRtcVideoEngine2.
BUG=chromium:475164
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8957}
2015-04-09 11:55:47 +00:00
Per
9b3f56ea05 Reland "Remove usage of webrtc::NativeHandle since is just adds an extra level of indirection.""
This reverts commit e41d774c4d.

Original code review: https://webrtc-codereview.appspot.com/43999004/
Reason for reland: There was nothing wrong with this cl as is, but it breaks chrome compatibility. We will now reland this and fix Chrome during roll.

Patset 1: Original cl.
Patchset 2: Removed more code that is no longer needed.

R=magjed@webrtc.org, pbos@webrtc.org
TBR=mflodman@webrtc.org

BUG=1128

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

Cr-Commit-Position: refs/heads/master@{#8956}
2015-04-09 11:44:19 +00:00
Jiayang Liu
d61ebda941 Fix the sigslot type of DtlsIdentityStore::WorkerTask.
BUG=4516
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8954}
2015-04-08 19:34:54 +00:00