20098 Commits

Author SHA1 Message Date
Ilya Nikolaevskiy
bf35298996 Implement temporal layers checkers for vp8
All frames are checked against hard-coded dependency graph 
using new helper class. It's invoked in RTC_DCHECK(). Only 
DefaultTemporalLayers are fully implemented in this CL, checker 
for ScreenshareLayers is not doing anything for now.

Bug: none
Change-Id: I3ec017176d8c25f7572c8f161e52f2ebfac8220f
Reviewed-on: https://webrtc-review.googlesource.com/3740
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20066}
2017-10-02 09:14:59 +00:00
Patrik Höglund
581df618fe Revert "Reland "Clean up libjingle API dependencies.""
This reverts commit 5117b047875970cf61f2403b590c44c37bfa8272.

Reason for revert: Still breaks downstream projects that include too much stuff.

Original change's description:
> Reland "Clean up libjingle API dependencies."
> 
> This is a reland of 57fb3154b5411934b80051ad827db4e54d00f381
> Original change's description:
> > Clean up libjingle API dependencies.
> > 
> > This CL moves candidate.h into the public API, since it has
> > been implicitly included before.
> > 
> > This is a straightforward way of solving the circular
> > dependencies involving that file. For instance,
> > libjingle_peerconnection_api includes candidate.h from
> > jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> > depends on _api. In fact, _api can't depend on much at all
> > since it's a very high level abstraction; instead, things
> > should depend on it.
> > 
> > Furthermore, we have the case where deprecated headers
> > include headers in internal modules. I just have to turn
> > off include checking for those, but that's not a big deal.
> > 
> > This CL punts the problem of callfactoryinterface.h being
> > implicitly included, and pulling in most of the call
> > module with it. This should be addressed in a follow-up
> > CL.
> > 
> > Bug: webrtc:7504
> > Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> > Reviewed-on: https://webrtc-review.googlesource.com/2020
> > Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> > Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> > Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20034}
> 
> Bug: webrtc:7504
> Change-Id: I74aeeff678a4ce6482d2f402493ae13e698f1390
> Reviewed-on: https://webrtc-review.googlesource.com/4703
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20062}

TBR=phoglund@webrtc.org,deadbeef@webrtc.org,solenberg@webrtc.org

Change-Id: I19068df5f3ee8145c5ff13c86a42b6860e9cc834
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7504
Reviewed-on: https://webrtc-review.googlesource.com/5460
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20065}
2017-10-02 09:12:51 +00:00
Karl Wiberg
884e49f9d6 Convert PayloadUnion from a union to a class, step 3
Remove PayloadUnion's public member variables, so that the outside
world has to go through the accessors.

This is good code hygiene in general. For example, it makes it
possible to make the audio and video states Optional, so that exactly
one of them can be live at any one time.

BUG=webrtc:8159

Change-Id: Ie617b9038f961b329bd67b45478ff33d97148447
Reviewed-on: https://webrtc-review.googlesource.com/4428
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20064}
2017-10-02 08:53:30 +00:00
Bjorn Terelius
440216fcf3 Split LogRtpHeader and LogRtcpPacket into separate versions for incoming and outgoing packets.
Change LogIncomingRtcpPacket and LogOutgoingRtcpPacket to take ArrayView<uint8_t>.
Split LogSessionAndReadBack into three functions and create class to share state between them.
Split VerifyRtpEvent into one incoming and one outgoing version.

Originally uploaded as https://codereview.webrtc.org/2997973002/

Bug: webrtc:8111
Change-Id: I22bdc35163bef60bc8293679226b19e41e8f49b3
Reviewed-on: https://webrtc-review.googlesource.com/5020
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20063}
2017-10-02 08:44:20 +00:00
Patrik Höglund
5117b04787 Reland "Clean up libjingle API dependencies."
This is a reland of 57fb3154b5411934b80051ad827db4e54d00f381
Original change's description:
> Clean up libjingle API dependencies.
> 
> This CL moves candidate.h into the public API, since it has
> been implicitly included before.
> 
> This is a straightforward way of solving the circular
> dependencies involving that file. For instance,
> libjingle_peerconnection_api includes candidate.h from
> jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> depends on _api. In fact, _api can't depend on much at all
> since it's a very high level abstraction; instead, things
> should depend on it.
> 
> Furthermore, we have the case where deprecated headers
> include headers in internal modules. I just have to turn
> off include checking for those, but that's not a big deal.
> 
> This CL punts the problem of callfactoryinterface.h being
> implicitly included, and pulling in most of the call
> module with it. This should be addressed in a follow-up
> CL.
> 
> Bug: webrtc:7504
> Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> Reviewed-on: https://webrtc-review.googlesource.com/2020
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20034}

Bug: webrtc:7504
Change-Id: I74aeeff678a4ce6482d2f402493ae13e698f1390
Reviewed-on: https://webrtc-review.googlesource.com/4703
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20062}
2017-10-02 08:27:51 +00:00
Patrik Höglund
ac086af9d8 Make orphan check understand public headers.
Bug: webrtc:8277
Change-Id: Id3450185f1bf9e78e4dac10cf4df217f35e02514
Reviewed-on: https://webrtc-review.googlesource.com/4723
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20061}
2017-10-02 07:49:59 +00:00
Autoroller
cf0ffb8498 Roll chromium_revision 98a7b0bae9..100b0a8b63 (505535:505547)
Change log: 98a7b0bae9..100b0a8b63
Full diff: 98a7b0bae9..100b0a8b63

Changed dependencies:
* src/ios: 1aa14f3218..6f96696ac8
* src/third_party: 7d625e7c14..bd13e6479e
DEPS diff: 98a7b0bae9..100b0a8b63/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: Idb28aa9e6224149ecce35a69f48d4fabd792125e
Reviewed-on: https://webrtc-review.googlesource.com/5340
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20060}
2017-10-02 07:21:29 +00:00
Niels Möller
032f410ae0 Delete unneeded includes of pathutils.h
Bug: webrtc:6424
Change-Id: I73b2bc747c67d2fe2ad888dde9c2815a6d9aceaa
Reviewed-on: https://webrtc-review.googlesource.com/4760
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20059}
2017-10-02 07:05:19 +00:00
Autoroller
cb4be953a1 Roll chromium_revision b7ff6b516d..98a7b0bae9 (505526:505535)
Change log: b7ff6b516d..98a7b0bae9
Full diff: b7ff6b516d..98a7b0bae9

Changed dependencies:
* src/testing: 7ec7d5da93..855f7caaae
* src/third_party: 9c82790cdc..7d625e7c14
* src/tools: 28dae6c88a..ff9f82e6ff
DEPS diff: b7ff6b516d..98a7b0bae9/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: I0a7fd53121ef56e732d2e532ab081ffa0819c502
Reviewed-on: https://webrtc-review.googlesource.com/5320
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20058}
2017-10-02 04:23:29 +00:00
Autoroller
b0187de271 Roll chromium_revision bcc319e88f..b7ff6b516d (505524:505526)
Change log: bcc319e88f..b7ff6b516d
Full diff: bcc319e88f..b7ff6b516d

Changed dependencies:
* src/third_party: 17ff7229cb..9c82790cdc
DEPS diff: bcc319e88f..b7ff6b516d/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: I4558e4cefb2d3cc8c0abde45caf624d873723509
Reviewed-on: https://webrtc-review.googlesource.com/5300
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20057}
2017-10-02 01:20:00 +00:00
Autoroller
d0e9cb9ce4 Roll chromium_revision ef3118d711..bcc319e88f (505486:505524)
Change log: ef3118d711..bcc319e88f
Full diff: ef3118d711..bcc319e88f

Changed dependencies:
* src/base: d56f52a20c..e59a11932a
* src/build: b3765543a0..ce6d3d8868
* src/testing: 196090ad80..7ec7d5da93
* src/third_party: d054975229..17ff7229cb
* src/tools: f705d2e270..28dae6c88a
DEPS diff: ef3118d711..bcc319e88f/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: I39a39482ac3235f6f9eea031684c9917e4936f9a
Reviewed-on: https://webrtc-review.googlesource.com/5280
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20056}
2017-10-01 22:12:10 +00:00
Oleh Prypin
a009106d3a Drop tools/valgrind/browser_wrapper_win.py (unused and recently removed)
This unblocks Chromium roll after
https://chromium-review.googlesource.com/693158

Bug: chromium:655521
Change-Id: I15c8f66a4fe962b5e30a3197a57c7ffc8260d0e9
Reviewed-on: https://webrtc-review.googlesource.com/5002
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20055}
2017-10-01 19:30:01 +00:00
Autoroller
420d327146 Roll chromium_revision ea0e771c4b..ef3118d711 (505469:505486)
Change log: ea0e771c4b..ef3118d711
Full diff: ea0e771c4b..ef3118d711

Changed dependencies:
* src/base: 04ad12495d..d56f52a20c
* src/third_party: 5f054e7224..d054975229
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b6bab938e5..8ec7b14edf
DEPS diff: ea0e771c4b..ef3118d711/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: I7e6bacff42fedb1e6d978785fcd93613c29a2901
Reviewed-on: https://webrtc-review.googlesource.com/5140
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20054}
2017-10-01 01:15:01 +00:00
David Benjamin
dc24656e5e Only verify the certificate once.
WebRTC is currently using the SSL_CTX_set_verify callback. This
configures a callback for use with X509_STORE_CTX_set_verify_cb. See
https://www.openssl.org/docs/man1.0.2/crypto/X509_STORE_CTX_set_verify_cb.html

This callback does not override certificate verification. Rather, it
allows EACH failure in OpenSSL's built-in certificate verification, as
well as the final success, to be overridden (that's why there's an ok
parameter). It still runs the usual OpenSSL certificate verification
(which will never succeed).

The upshot is that the callback is called multiple times and
OpenSSLStreamAdapter does a ton of redundant work and checks the hash at
least twice, or more for certificates with other errors.

Instead, use SSL_CTX_set_cert_verify_callback. This short-circuits the
OpenSSL behavior entirely and uses a caller-supplied one.
https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#SSL_CTX_set_cert_verify_callback
https://wiki.openssl.org/index.php/Manual:SSL_CTX_set_cert_verify_callback(3)

(This also removes the SSL_CTX_set_verify_depth call which is ignored
with SSL_CTX_set_cert_verify_callback. It didn't do anything before
either---it tells OpenSSL to reject chains that are too short, but the
rejection was overwritten by the callback anyway.)

(Later on, we'll need to switch this to the BoringSSL-only
SSL_CTX_set_custom_verify and CRYPTO_BUFFER APIs to fix WebRTC's
contribution to Chrome's binary size, but I've left that alone for the
time being.)

Bug: none
Change-Id: I9320a367d0961935836df63dc6f0868b069f0af0
Reviewed-on: https://webrtc-review.googlesource.com/4581
Commit-Queue: David Benjamin <davidben@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20053}
2017-10-01 01:13:51 +00:00
Autoroller
5e0f1ceb8f Roll chromium_revision fca18931b5..ea0e771c4b (505467:505469)
Change log: fca18931b5..ea0e771c4b
Full diff: fca18931b5..ea0e771c4b

No dependencies changed.
No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: I93118929d832bb6c83b41991376facaac952ae7c
Reviewed-on: https://webrtc-review.googlesource.com/5120
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20052}
2017-09-30 19:20:11 +00:00
Autoroller
fb29196196 Roll chromium_revision 888713f663..fca18931b5 (504840:505467)
Change log: 888713f663..fca18931b5
Full diff: 888713f663..fca18931b5

Changed dependencies:
* src/base: 1bf577f419..04ad12495d
* src/build: eb6fd71512..b3765543a0
* src/ios: 1755e1ebcf..1aa14f3218
* src/testing: e511d36508..196090ad80
* src/third_party: 489638e97b..5f054e7224
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/42e93b6cf5..e9c7b1c8ae
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/d08152f8a5..b6bab938e5
* src/tools: 09b63b9f95..f705d2e270
DEPS diff: 888713f663..fca18931b5/DEPS

No update to Clang.

TBR=buildbot@webrtc.org,
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: Ie42b5b43fbda33377c272261e567c17e897495bf
Reviewed-on: https://webrtc-review.googlesource.com/5100
Reviewed-by: WebRTC Buildbot <buildbot@webrtc.org>
Commit-Queue: WebRTC Buildbot <buildbot@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20051}
2017-09-30 05:29:57 +00:00
Bjorn Mellem
d629314396 Return slices of ByteBuffers from getDataY/U/V() in I420Buffers.
I420Buffer implementations (I420BufferImpl and WrappedNativeI420Buffer) rely on
the 'position' of the underlying ByteBuffers to indicate the start of Y, U, and
V channels.  Returning slices prevents callers from altering the state of the
I420Buffer by changing the position.

ByteBuffers are especially prone to accidentally moving the position: relative
read operations (such as get()) increment the position by the size of data read.

BUG=webrtc:8303

Change-Id: I52edce8a3bf46a6c41980ff5110a9480f021f22f
Reviewed-on: https://webrtc-review.googlesource.com/4521
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20050}
2017-09-30 00:11:57 +00:00
Zhi Huang
b5261580bc Move the TransportController from p2p/base to pc/.
The TransportController was in p2p/base before and it cannot depend on
pc/ or media/ level targets because of the circular dependency. To make the 
TransportController be responsible for creating and managing
the RtpTransport related objects which are pc/ level targets, the
TransportController is moved from p2p/base to pc/.

The TransportController makes more sense in pc/ anyway, since its main 
responsibility is processing the "transport" parts of SDP which is
PeerConnection-specific.

This is also easier than moving RtpTransport related objects to p2p/base 
because those objects also depend on other media/ and pc/ level targets
such as srtpfilter, cryptoparams etc.

Bug: webrtc:7013
Change-Id: Ic48dd5c454046ff3c81331f4b459f96a3255f328
Reviewed-on: https://webrtc-review.googlesource.com/4560
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20049}
2017-09-29 18:20:07 +00:00
Magnus Jedvert
024d8970a7 Add conversion from webrtc::SdpVideoFormat to cricket::VideoCodec
We will have to convert from webrtc::SdpVideoFormat to
cricket::VideoCodec in a couple of places until
cricket::WebRtcVideoEncoderFactory is gone. It will be convenient to
have the conversion logic in a common place.

Bug: webrtc:7925
Change-Id: Ie5e88599f28aeea647e936300c04f9071daffd53
Reviewed-on: https://webrtc-review.googlesource.com/4840
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20048}
2017-09-29 14:45:57 +00:00
Henrik Lundin
d4a790fbea Remove AudioCodingModule::IncomingPayload
This method is no longer in use.

Bug: webrtc:3520
Change-Id: Ie1419fa95e6ef482e9adc1ed7af57af2c3510a65
Reviewed-on: https://webrtc-review.googlesource.com/4667
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20047}
2017-09-29 14:23:27 +00:00
henrika
a86ac6d198 Improves UMA stat for built-in AGC monitoring on iOS
Bug: b/33617347
Change-Id: I27674c1aec7bfe15c2ccaa4b0dd1a0387e7d168a
Reviewed-on: https://webrtc-review.googlesource.com/4063
Reviewed-by: Per Åhgren <peah@google.com>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20046}
2017-09-29 14:05:17 +00:00
Kári Tristan Helgason
a17ddcdecf Add new class to handle releasing CFTypeRefs.
The new class wraps any CoreFoundation Type ref and
automatically releases it when it goes out of scope.
Conceptually similar to std::unique_ptr.

Bug: webrtc:7825
Change-Id: Ie49572b9215fcb5b92b2c0c3e3d52b0b3cf01752
Reviewed-on: https://webrtc-review.googlesource.com/3380
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20045}
2017-09-29 14:01:07 +00:00
Rasmus Brandt
310273459d Revert "Reland of Add full stack tests for MediaCodec encoder (moved from Rietveld)."
This reverts commit 2666cf7eba4bdd697d59d0451a8f74a05d4d207e.

Reason for revert: On Lollipop Nexus 4, the 240p tests fail too.

Original change's description:
> Reland of Add full stack tests for MediaCodec encoder (moved from Rietveld).
> 
> * Add audio_ prefix to CallTest::{en,de}coder_factory_.
> * Let VideoQualityTest only instantiate encoders using encoder factories.
> * Add HW encoder factories to VideoQualityTest.
> * Add full stack tests:
>   - sqcif7 at  30 kbps: libvpx.
>   - 240p10 at 100 kbps: MediaCodec, libvpx, and MediaCodec+libvpx.
> 
> BUG=webrtc:8219
> TBR=asapersson@webrtc.org,kjellander@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
> 
> Change-Id: I464409ac0d5276defa78c1bf66034c6cca717d74
> Reviewed-on: https://webrtc-review.googlesource.com/4740
> Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20041}

TBR=kjellander@webrtc.org,brandtr@webrtc.org,asapersson@webrtc.org,sprang@webrtc.org,stefan@webrtc.org

Change-Id: If558b7fb86740658e50a6897d1eeeb72103a54ec
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8219
Reviewed-on: https://webrtc-review.googlesource.com/4900
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20044}
2017-09-29 13:48:29 +00:00
Daniela
f328282cbf Fix memory leak in video encoder.
Bug: webrtc:8306
Change-Id: Iadc7a584ccf70a4f1df3f7f7af29e66a3698d93a
Reviewed-on: https://webrtc-review.googlesource.com/4425
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20043}
2017-09-29 13:07:37 +00:00
solenberg
1c239d476e Remove voe::Statistics.
BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/3020473002
Cr-Commit-Position: refs/heads/master@{#20042}
2017-09-29 13:00:28 +00:00
Rasmus Brandt
2666cf7eba Reland of Add full stack tests for MediaCodec encoder (moved from Rietveld).
* Add audio_ prefix to CallTest::{en,de}coder_factory_.
* Let VideoQualityTest only instantiate encoders using encoder factories.
* Add HW encoder factories to VideoQualityTest.
* Add full stack tests:
  - sqcif7 at  30 kbps: libvpx.
  - 240p10 at 100 kbps: MediaCodec, libvpx, and MediaCodec+libvpx.

BUG=webrtc:8219
TBR=asapersson@webrtc.org,kjellander@webrtc.org,stefan@webrtc.org,sprang@webrtc.org

Change-Id: I464409ac0d5276defa78c1bf66034c6cca717d74
Reviewed-on: https://webrtc-review.googlesource.com/4740
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20041}
2017-09-29 12:54:17 +00:00
Niels Möller
d8970dbd42 Delete unneeded includes of fileutils.h
It is now used only by FileRotatingStream.

Bug: webrtc:6424
Change-Id: I216b20baadae836d24c39899efe4cb45c2935f41
Reviewed-on: https://webrtc-review.googlesource.com/4720
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20040}
2017-09-29 12:39:09 +00:00
Magnus Jedvert
244ad80444 Clean up some bad constructs in media/
We currently suppress warnings for bad constructs in media/. Still, the
warnings are causing problems when trying to include header files from
this directory. This CL cleans up some of the bad constructs.

Bug: None
Change-Id: I808ad39eb23870d20fa5bb05429b50c9078543ae
Reviewed-on: https://webrtc-review.googlesource.com/4541
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20039}
2017-09-29 12:22:57 +00:00
Sami Kalliomäki
cbc4b1dc41 Android: Optimize apply_rotation in case the rotation is 0.
Previously VideoFrame.Buffers would be converted to I420 if
apply_rotation() is true. With this change the operation is skipped if
the rotation is 0.

Bug: webrtc:7749
Change-Id: I24a1a8801e41d8f415b33fe57fec953b74df7459
Reviewed-on: https://webrtc-review.googlesource.com/4665
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20038}
2017-09-29 11:47:44 +00:00
Sami Kalliomäki
5cd1cfb7c4 Allow passing in a custom native library loader.
All previous initialize methods are deprecated and a new initialize
that uses a builder pattern is added. This gives us full control over
the order of initialization.

Bug: webrtc:7474
Change-Id: I006190e50f2e75c5015f0be75b86d367676db2cc
Reviewed-on: https://webrtc-review.googlesource.com/4160
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20037}
2017-09-29 11:46:38 +00:00
Patrik Höglund
7bcfc3b232 Revert "Clean up libjingle API dependencies."
This reverts commit 57fb3154b5411934b80051ad827db4e54d00f381.

Reason for revert: Breaks jingle_glue in chromium; need to leave candidate.h in place and include the new location until it's fixed.

Original change's description:
> Clean up libjingle API dependencies.
> 
> This CL moves candidate.h into the public API, since it has
> been implicitly included before.
> 
> This is a straightforward way of solving the circular
> dependencies involving that file. For instance,
> libjingle_peerconnection_api includes candidate.h from
> jsepicecandidate.h, but _api can't depend on rtc_p2p, which
> depends on _api. In fact, _api can't depend on much at all
> since it's a very high level abstraction; instead, things
> should depend on it.
> 
> Furthermore, we have the case where deprecated headers
> include headers in internal modules. I just have to turn
> off include checking for those, but that's not a big deal.
> 
> This CL punts the problem of callfactoryinterface.h being
> implicitly included, and pulling in most of the call
> module with it. This should be addressed in a follow-up
> CL.
> 
> Bug: webrtc:7504
> Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
> Reviewed-on: https://webrtc-review.googlesource.com/2020
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20034}

TBR=phoglund@webrtc.org,deadbeef@webrtc.org,solenberg@webrtc.org,perkj@webrtc.org

Change-Id: Ic5c3d0cf0b8c4d48ecbc49efdb76b373e3c950a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7504
Reviewed-on: https://webrtc-review.googlesource.com/4702
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20036}
2017-09-29 11:11:18 +00:00
Alex Loiko
bf66794c06 Revert "Move clients of WebRtcSession to use PeerConnection"
This reverts commit 3dc4d4a21f80cdf44c508412d784b254957696eb.

Reason for revert: breaks internal project

Original change's description:
> Move clients of WebRtcSession to use PeerConnection
> 
> This change is part of the work to merge WebRtcSession into
> PeerConnection. To make that work easier, this moves all clients
> of WebRtcSession to use shims added to PeerConnection. That way
> when the classes are merged they won't need to be modified.
> 
> Bug: webrtc:8183
> Change-Id: I43de7acf7e38c9fcf2dbf55d50eb05e73767c251
> Reviewed-on: https://webrtc-review.googlesource.com/4320
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20030}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org

Change-Id: I13f335b24c26753429cd08a4ca3e295eed5660ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8183
Reviewed-on: https://webrtc-review.googlesource.com/4700
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20035}
2017-09-29 10:44:38 +00:00
Patrik Höglund
57fb3154b5 Clean up libjingle API dependencies.
This CL moves candidate.h into the public API, since it has
been implicitly included before.

This is a straightforward way of solving the circular
dependencies involving that file. For instance,
libjingle_peerconnection_api includes candidate.h from
jsepicecandidate.h, but _api can't depend on rtc_p2p, which
depends on _api. In fact, _api can't depend on much at all
since it's a very high level abstraction; instead, things
should depend on it.

Furthermore, we have the case where deprecated headers
include headers in internal modules. I just have to turn
off include checking for those, but that's not a big deal.

This CL punts the problem of callfactoryinterface.h being
implicitly included, and pulling in most of the call
module with it. This should be addressed in a follow-up
CL.

Bug: webrtc:7504
Change-Id: I1b1729408158418333ccdf702bf529386090f0d7
Reviewed-on: https://webrtc-review.googlesource.com/2020
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20034}
2017-09-29 10:40:17 +00:00
Alessio Bazzica
5bc022929c Injectable APM simulator binary in APM-QA
Allow a custom version of audioproc_f in APM-QA.

Bug: webrtc:7494
Change-Id: Id9adffd63927202d868bc2fc8b6a54c8e6b07039
Reviewed-on: https://webrtc-review.googlesource.com/4060
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20033}
2017-09-29 09:31:16 +00:00
Edward Lemur
bbceb76f54 Add support for conditions on DEPS file.
See https://chromium-review.googlesource.com/687499 for the corresponding Chromium change.

Bug: None
Change-Id: I23330d161dc60fd4c8681e58ce5a8e20a2b4a3b8
Reviewed-on: https://webrtc-review.googlesource.com/4540
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20032}
2017-09-29 05:25:46 +00:00
Aaron Gable
3db4762327 Make Gerrit the default for WebRTC changes
Bug: chromium:672378
Change-Id: Idc6035b28daa916a15cceb64a79da06b1765a8ce
Reviewed-on: https://webrtc-review.googlesource.com/4600
Commit-Queue: Niklas Enbom <niklas.enbom@webrtc.org>
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20031}
2017-09-29 01:38:07 +00:00
Steve Anton
3dc4d4a21f Move clients of WebRtcSession to use PeerConnection
This change is part of the work to merge WebRtcSession into
PeerConnection. To make that work easier, this moves all clients
of WebRtcSession to use shims added to PeerConnection. That way
when the classes are merged they won't need to be modified.

Bug: webrtc:8183
Change-Id: I43de7acf7e38c9fcf2dbf55d50eb05e73767c251
Reviewed-on: https://webrtc-review.googlesource.com/4320
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20030}
2017-09-29 01:06:26 +00:00
David Benjamin
85aa0b62dd Mark methods_stream as const.
Function pointer tables require relocations, so this goes into
.data.rel.ro, not .rodata, but this will at least mark the pages
read-only after relocations are resolved.

Bug: None
Change-Id: I8625e7466b2dcadafc4e4e5f9c6eccbd87af7109
Reviewed-on: https://webrtc-review.googlesource.com/4580
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20029}
2017-09-29 00:58:07 +00:00
David Benjamin
a8f7376789 Switch from SSL_CIPHER_get_rfc_name to SSL_CIPHER_standard_name.
SSL_CIPHER_standard_name is a bit easier to use. BoringSSL has the
strings in the library statically these days. (Turns out that's more
size-efficient than the code to build it up anyway!)

Bug: None
Change-Id: I91ffa725fa716791cdf75d944cf8d9a3e2cb9021
Reviewed-on: https://webrtc-review.googlesource.com/4362
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20028}
2017-09-29 00:56:56 +00:00
Karl Wiberg
c856dc2b6b Convert PayloadUnion from a union to a class, step 2
Stop using PayloadUnion's public member variables, since a future CL
will make them private.

BUG=webrtc:8159

Change-Id: Ia3dada56be7ef00ed80f3733209b18c178a36561
Reviewed-on: https://webrtc-review.googlesource.com/4380
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20027}
2017-09-28 23:23:07 +00:00
JT Teh
a6368d17c5 Fix occassional hang in iOS 11 when calling VTDecompressionSessionInvalidate.
BUG=webrtc:8302

Change-Id: I426116c621c53a0300f87a2a5dc147578b559ed6
Reviewed-on: https://webrtc-review.googlesource.com/4520
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20026}
2017-09-28 19:41:06 +00:00
Karl Wiberg
83d3ec177c Convert PayloadUnion from a union to a class, step 1
I need to replace the audio part of PayloadUnion with SdpAudioFormat,
but that's a non-trivially-deletable class and those just don't work
well in unions, especially unions that don't have a discriminator that
says which member is currently active.

This CL converts the union to a class, adds a discriminator, and
provides accessor functions. CL #2 in the series will change all
outsiders to use the accessors instead of the public member variables
directly, and CL #3 will remove the public member variables. (It needs
to be done in separate steps like this because PayloadUnion is
unfortunately part of the API, and just changing it all in one go
would break users.)

BUG=webrtc:8159

Change-Id: I38c44bbb21a2d38600cff59bf37d8d47dfdbce21
Reviewed-on: https://webrtc-review.googlesource.com/4340
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20025}
2017-09-28 18:32:37 +00:00
Sami Kalliomäki
27bafec7c1 Revert "Use injectable hardware video decoder/encoder in AppRTCMobile."
This reverts commit 0cbaf1a6f6ad13a25993f6ea3be931894a196834.

Reason for revert: Makes a test flaky:
https://build.chromium.org/p/client.webrtc/builders/Android32%20%28M%20Nexus5X%29/builds/4603

Original change's description:
> Use injectable hardware video decoder/encoder in AppRTCMobile.
> 
> Also include a small fix for getting the encoder queue.
> 
> Bug: webrtc:7760
> Change-Id: I96dc8ffb363b90382276d88148f81d5f89dca5f2
> Reviewed-on: https://webrtc-review.googlesource.com/2683
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20022}

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

Change-Id: I6cb9a10eadb0eff2b85d5028d684746dc69bccfb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7760
Reviewed-on: https://webrtc-review.googlesource.com/4480
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20024}
2017-09-28 16:31:50 +00:00
ssilkin
612f858ba0 Adding test for SingleNalUnit mode
Test enables single-nalu mode, sets limit for nalu lenght and verifies
that encoder follows that limit.
I found that QP jumps significantly when the mode is enabled. In result
encoder might produce 4kbyte and 0.4kbyte frames back-to-back. But it
seems that happens only to couple of frames in the beginning. This
caused test to fail with default RC thresholds. To bypass this I
increased frame size mismatch threshold from 20 to 30%. This should be
Ok considering single-nalu mode is rare.

BUG=webrtc:8070

Review-Url: https://codereview.webrtc.org/3014623002
Cr-Commit-Position: refs/heads/master@{#20023}
2017-09-28 16:23:17 +00:00
Sami Kalliomäki
0cbaf1a6f6 Use injectable hardware video decoder/encoder in AppRTCMobile.
Also include a small fix for getting the encoder queue.

Bug: webrtc:7760
Change-Id: I96dc8ffb363b90382276d88148f81d5f89dca5f2
Reviewed-on: https://webrtc-review.googlesource.com/2683
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20022}
2017-09-28 15:32:49 +00:00
Daniela
cdd1f687cf Fix memory leak in nv12 metal renderer
Bug: webrtc:8308
Change-Id: If6823b2ba7a4a09800bc107985fc52124089277a
Reviewed-on: https://webrtc-review.googlesource.com/4440
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20021}
2017-09-28 15:25:28 +00:00
Rasmus Brandt
9cf9f758fc Detach SequencedTaskChecker in MediaCodecVideoEncoder::Release.
If this is not done, the RTC_DCHECK_CALLED_SEQUENTIALLY might fire
if the encoder is used on a new VideoStreamEncoder. This happens
after VideoSendStream recreations due to changes in the SDP.

BUG=b/66590444

Change-Id: I086370526afbbe2ba629805f97f89e512ba3f472
Reviewed-on: https://webrtc-review.googlesource.com/4360
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20020}
2017-09-28 15:15:21 +00:00
solenberg
c7b4a45594 Remove various IDs:
- AudioFrame
- AudioCodingModule

BUG=webrtc:4690
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/3019543002
Cr-Original-Commit-Position: refs/heads/master@{#20005}
Committed: https://webrtc.googlesource.com/src/+/2d0f77585d556d8b11d6269d35149ae9ca14c472
Review-Url: https://codereview.webrtc.org/3019543002
Cr-Commit-Position: refs/heads/master@{#20019}
2017-09-28 14:37:11 +00:00
Kári Tristan Helgason
3935c34cbc Add equality method for RTCVideoCodecInfo.
This is useful for various reasons.

Bug: None
Change-Id: I8658f8b19829cc8470789c13ff3af6466f200f00
Reviewed-on: https://webrtc-review.googlesource.com/4383
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20018}
2017-09-28 14:18:51 +00:00
philipel
a81403fd16 Calculate VP9 references to wrap at kPicIdLength instead of 16 bits.
Bug: webrtc:8293
Change-Id: Iedc09a10548c2112e99247a5845a02c1bd3e7b80
Reviewed-on: https://webrtc-review.googlesource.com/4200
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20017}
2017-09-28 13:53:38 +00:00