Commit graph

97 commits

Author SHA1 Message Date
JT Teh
6144fa5362 Revert "Improve thread-safety of MTL Renderer."
This reverts commit a8f13ccad4.

Reason for revert: It's causing no video to be shown after the 1st call.

Original change's description:
> Improve thread-safety of MTL Renderer.
> 
> Bug: b/77579859
> Change-Id: I427d0f41593155dc5cbf98a09d7ec826497b803c
> Reviewed-on: https://webrtc-review.googlesource.com/67040
> Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22795}

TBR=andersc@webrtc.org,kthelgason@webrtc.org

Change-Id: Ia8f33995e087178f1c3be7753f70be8ba18447f8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/77579859
Reviewed-on: https://webrtc-review.googlesource.com/68860
Reviewed-by: JT Teh <jtteh@webrtc.org>
Commit-Queue: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22800}
2018-04-10 00:27:11 +00:00
Kári Tristan Helgason
a8f13ccad4 Improve thread-safety of MTL Renderer.
Bug: b/77579859
Change-Id: I427d0f41593155dc5cbf98a09d7ec826497b803c
Reviewed-on: https://webrtc-review.googlesource.com/67040
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22795}
2018-04-09 13:30:18 +00:00
Anders Carlsson
498644e645 Quick Look in the Xcode Debugger for Obj-C frame buffer classes.
Implement debugQuickLookObject for RTCI420Buffers and RTCCVPixelBuffers.

Also draw gradients consistently regardless of endianness in the unit
tests for RTCCVPixelBuffers and ObjCVideoTrackSource.

Bug: webrtc:9007
Change-Id: Ia5a3d0905a763efc190165471983061fc07551f2
Reviewed-on: https://webrtc-review.googlesource.com/64987
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22746}
2018-04-05 12:25:23 +00:00
Kári Tristan Helgason
87c5463dfd Correctly set iOS VideoToolbox encoder start bitrate.
The settings struct specifies bitrate in kbps, but we are
treating it as bps.

Bug: webrtc:9113
Change-Id: I27745da93aaec68041ea4283b45eccb35d820793
Reviewed-on: https://webrtc-review.googlesource.com/66960
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22743}
2018-04-05 09:32:03 +00:00
Anders Carlsson
2a1bbc3422 ObjC: Deprecate codec settings parameter in startDecode method.
This parameter is being removed from the C++ API, remove it from the
ObjC API also. It was never used for anything by the H264 decoder.

Bug: webrtc:9107
Change-Id: I5222eac932a4e7d4129d803f8126b5e8d0b027b6
Reviewed-on: https://webrtc-review.googlesource.com/66740
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22730}
2018-04-04 12:29:30 +00:00
Anders Carlsson
fe9d8178df Reland "Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource."
This is a reland of 4ea50c2b42

Original change's description:
> Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource.
> 
> This CL also fixes a couple of bugs found in the toI420 method for
> RTCCVPixelBuffers backed by RGB CVPixelBuffers.
> 
> Bug: webrtc:9007
> Change-Id: I19ab8177f4b124a503cfda9f0166bd960f668982
> Reviewed-on: https://webrtc-review.googlesource.com/64940
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22656}

Bug: webrtc:9007
Change-Id: I2a787c64f8d23ffc4ef2419fc258d965f8a9480b
Reviewed-on: https://webrtc-review.googlesource.com/66341
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22706}
2018-04-03 11:35:40 +00:00
JT Teh
35d052c2a3 Revert "Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource."
This reverts commit 4ea50c2b42.

Reason for revert: This change is causing crashes in video calls.

RTCCVPixelBuffer.mm - line 120
Compare is asserting as 420f is not 420v

Original change's description:
> Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource.
>
> This CL also fixes a couple of bugs found in the toI420 method for
> RTCCVPixelBuffers backed by RGB CVPixelBuffers.
>
> Bug: webrtc:9007
> Change-Id: I19ab8177f4b124a503cfda9f0166bd960f668982
> Reviewed-on: https://webrtc-review.googlesource.com/64940
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22656}

TBR=andersc@webrtc.org,kthelgason@webrtc.org

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

Bug: webrtc:9007
Change-Id: I500514ce05dd0555f8c4a05010ad52bd67c2fed3
Reviewed-on: https://webrtc-review.googlesource.com/65561
Commit-Queue: JT Teh <jtteh@webrtc.org>
Reviewed-by: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22686}
2018-03-30 00:49:48 +00:00
Anders Carlsson
4ea50c2b42 Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource.
This CL also fixes a couple of bugs found in the toI420 method for
RTCCVPixelBuffers backed by RGB CVPixelBuffers.

Bug: webrtc:9007
Change-Id: I19ab8177f4b124a503cfda9f0166bd960f668982
Reviewed-on: https://webrtc-review.googlesource.com/64940
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22656}
2018-03-28 16:47:06 +00:00
Taylor Brandstetter
5e55fe845e Adding flag to enable/disable use of SRTP_AES128_CM_SHA1_32 crypto suite.
This flag (added to CryptoOptions) will allow applications to opt-in to
use of this suite, before it's disabled by default later. See bug for
more details.

TBR=magjed@webrtc.org

Bug: webrtc:7670
Change-Id: I800bedd4b26d807b6b7ac66b505d419c3323e454
Reviewed-on: https://webrtc-review.googlesource.com/64390
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22586}
2018-03-23 19:26:55 +00:00
Anders Carlsson
7311918269 Add an example app for iOS native API.
Demonstrates how to use the iOS native API to wrap components into
C++ classes.

This CL also introduces a native API wrapper for the capturer.

The C++ code is forked from the corresponding CL for Android at
https://webrtc-review.googlesource.com/c/src/+/60540

Bug: webrtc:8832
Change-Id: I12d9f30e701c0222628e329218f6d5bfca26e6e0
Reviewed-on: https://webrtc-review.googlesource.com/61422
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22484}
2018-03-19 09:31:06 +00:00
Alex Narest
3ab1d262bc Exposing WebRTC-Audio-SendSideBwe-For-Video field trial
Bug: webrtc:9019
Change-Id: I77f004ed3325b04e1b43510caedeb30c6daa8979
Reviewed-on: https://webrtc-review.googlesource.com/62060
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22455}
2018-03-15 14:19:47 +00:00
Anders Carlsson
9823ee47d3 Fix native api in preparation for native_api example.
Add native api conversions for video frames and video renderer. This
also requires some changes to sdk/BUILD to avoid cyclic dependencies.

Bug: webrtc:8832
Change-Id: Ibf21e63bdcae195dcb61d63f9262e6a8dc4fa790
Reviewed-on: https://webrtc-review.googlesource.com/57142
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22340}
2018-03-08 13:22:13 +00:00
Seth Hampson
513449eab9 Changes name of RtpTransceiverInit's stream_labels to stream_ids.
The naming convention according to the spec is stream id, not stream
labels.Changing things now to be spec compliant, before it is widely
used. This also includes changes to objective C wrapper code to be in
sync with the change.

Bug: webrtc:7932
Change-Id: I5705e6d8a647aaeed860316466a7320132f24b00
Reviewed-on: https://webrtc-review.googlesource.com/59301
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22316}
2018-03-06 23:42:01 +00:00
Sam Zackrisson
9e981f0e43 Clean up iOS API audio settings
This removes the routing for the deprecated audio control setting

Change-Id: Id83ff548625279d5b34c9e3cadc097c25a00ef05
Bug: none
Reviewed-on: https://webrtc-review.googlesource.com/58900
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22279}
2018-03-05 08:32:52 +00:00
Yura Yaroshevich
546d7f98a5 Added OnAddTrack to Objective C SDK.
Exposed native OnAddTrack event in Objective C SDK
peer connection delegate via
peerConnection:didAddReceiver:streams:

Bug: webrtc:6112
Change-Id: Iccf33ab7844c9a774a6b54e49de011d100998f03
Reviewed-on: https://webrtc-review.googlesource.com/56980
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22253}
2018-03-01 17:16:48 +00:00
Steve Anton
8cb344acfd Add new PeerConnection APIs to the ObjC SDK
This CL adds wrappers for the following PeerConnection native
APIs to the Objective C API:
- SdpSemantics enum added to the RTCConfiguration
- RTCRtpTransceiver
- RTCPeerConnection.addTrack
- RTCPeerConnection.removeTrack
- RTCPeerConnection.addTransceiver
- RTCPeerConnection.transceivers

Bug: webrtc:8870
Change-Id: I9449df9742a59e90894712dc7749ca30b569d94b
Reviewed-on: https://webrtc-review.googlesource.com/54780
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22214}
2018-02-28 01:28:57 +00:00
Guy Hershenbaum
2fcb834bb4 Search for SPS NALU rather than assuming its position
Summary:
The implementation of H264AnnexBBufferHasVideoFormatDescription was
assuming that the SPS NALU is either the first NALU in the stream, or
the second one, in case an AUD NALU is present in the first location.
This change removes this assumption and instead searches for the SPS
NALU, failing only if we can't find one.

In addition, it cleans up some binary buffer manipulation code, using the
the parsed NALU indices we already have in AnnexBBufferReader instead.

Test Plan: Unit tests

Change-Id: Id9715aa1d751f0ba1a1992def2b690607896df56

bug: webrtc:8922
Change-Id: Id9715aa1d751f0ba1a1992def2b690607896df56
Reviewed-on: https://webrtc-review.googlesource.com/49982
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22205}
2018-02-27 14:39:59 +00:00
Yura Yaroshevich
a5c735f5d9 Fixed observer unsubscribtion in RTCRtpReceiver.
Missing unsubscribtion caused accessing invalid pointer inside
AudioRtpReceiver::OnFirstPacketReceived on short-lived
RTCRtpReceiver objects.

Bug: webrtc:6112
Change-Id: I5df141628e1cfd69aff59177d395c3246e1bf367
Reviewed-on: https://webrtc-review.googlesource.com/54306
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22157}
2018-02-22 16:11:38 +00:00
Yura Yaroshevich
415920b053 Return correct subtype from RTCRtpSender/Receiver track.
Bug: webrtc:8915
Change-Id: Iaa004d5d3e055cdaa08daf57b662b6711ead681d
Reviewed-on: https://webrtc-review.googlesource.com/56661
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22155}
2018-02-22 15:43:58 +00:00
Anders Carlsson
0bc9c7d58a Fixes for building without SW codecs after GN changes.
After https://webrtc-review.googlesource.com/c/src/+/49060 changed the
gn check config for sdk/.

Add nogncheck for some conditionally imported headers.

Bug: webrtc:7925
Change-Id: I57499e990332636991563c6f550a7c9154e7c2ee
Reviewed-on: https://webrtc-review.googlesource.com/54820
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22083}
2018-02-19 14:52:44 +00:00
Kári Tristan Helgason
99bf77c851 Fix issues found by gn check.
It turns out that some headers were not owned by any targets.
These were:
RTCVideoCodec.h
RTCVideoCodecFactory.h
RTCVideoCodecH264.h
RTCVideoEncoderVP8.h
RTCVideoDecoderVP8.h
RTCVideoEncoderVP9.h
RTCVideoDecoderVP9.h

And some were owned by multiple targets, namely:
RTCPeerConnectionFactory+Native.h
RTCPeerConnectionFactory+Private.h
RTCVideoFrameBuffer.h

These have all been moved to their appropriate homes.

This CL also fixes a lot of cyclic interdependencies in the iOS sdk build files.

Bug: webrtc:8855
Change-Id: I1b7ddb6c2a93868d1510ccf0a64bd3dd169ec3e7
Reviewed-on: https://webrtc-review.googlesource.com/49060
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22052}
2018-02-16 12:36:08 +00:00
Kári Tristan Helgason
db6145f055 Fix bug in reporting decode errors in VideoToolbox
The reference back to the decoder class in the decode callback
was null. Due to the amazing properties of ObjC this led to the
setError call to silently fail.

Bug: webrtc:8600
Change-Id: I3f70fbe4c9d533c8612d0bc7bc40813252e492fd
Reviewed-on: https://webrtc-review.googlesource.com/52460
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22021}
2018-02-14 15:29:39 +00:00
JT Teh
4feb2044db Fix rendering on an iPhone X's tall screen.
Bug: webrtc:8884
Change-Id: I850e4ea1919837e15a78c90968a4879a1ccbd22c
Reviewed-on: https://webrtc-review.googlesource.com/52761
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22011}
2018-02-14 09:17:55 +00:00
Kári Tristan Helgason
0d3c9a3f2b Delete RTCAVFoundationVideoSource and related classes.
Bug: webrtc:8852
Change-Id: Ie073fe3f7bafc3d22fafef51f659e340d5a9250f
Reviewed-on: https://webrtc-review.googlesource.com/48620
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21985}
2018-02-12 14:41:25 +00:00
Tommi
8e545eee1e Revert "Use SRTP_AES128_CM_SHA1_80 by default instead of SRTP_AES128_CM_SHA1_32."
This reverts commit 6780c51b23.

Reason for revert:

More details in crbug.com/810292

Original change's description:
> Use SRTP_AES128_CM_SHA1_80 by default instead of SRTP_AES128_CM_SHA1_32.
> 
> A field has been added to "CryptoOptions" to enable SRTP_AES128_CM_SHA1_32
> from native apps if really necessary.
> 
> R=​deadbeef@webrtc.org
> 
> Bug: webrtc:7670
> Change-Id: I36b6ab3e302fbf3cda2611ff196757e43a56e704
> Reviewed-on: https://webrtc-review.googlesource.com/41420
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21952}

TBR=deadbeef@webrtc.org,magjed@webrtc.org,jbauch@webrtc.org

Change-Id: I643dbe023eca526f2cda4d97df045f2533741dd4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7670
Reviewed-on: https://webrtc-review.googlesource.com/49880
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21961}
2018-02-08 16:25:31 +00:00
Joachim Bauch
6780c51b23 Use SRTP_AES128_CM_SHA1_80 by default instead of SRTP_AES128_CM_SHA1_32.
A field has been added to "CryptoOptions" to enable SRTP_AES128_CM_SHA1_32
from native apps if really necessary.

R=deadbeef@webrtc.org

Bug: webrtc:7670
Change-Id: I36b6ab3e302fbf3cda2611ff196757e43a56e704
Reviewed-on: https://webrtc-review.googlesource.com/41420
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21952}
2018-02-07 21:56:01 +00:00
Daniel Lazarenko
2870b0a57e Expose a link-local network interfaces enumeration option
The bug 8432 is caused by trying to connect through a
"link-local" interface (IP address 169.254.0.x/16),
which is listed among the iPhone network interfaces.
The bug is not happening if the link-local network interfaces
are skipped in the ICE candidate gethering process.

To control this behaviour an option - disable_link_local_networks -
is added inside the RTCConfiguration.
It is used to set the new BasicPortAllocatorSession flag -
PORTALLOCATOR_DISABLE_LINK_LOCAL_NETWORKS.
The port allocator flag is added if the configuration option is set.

IPIsLinkLocal IPAddress function and its friends (IPIsLoopback, IPIsPrivate)
are refactored to work on both IPv4 and IPv6.
Unit test IPIsLinkLocal.

Bonus: fix a bug in IPIsLinkLocalV6:
take into account just 10 network mask bits instead of 16.

Bug: webrtc:8432
Change-Id: Ibe8f677a36098057b7fcad5c798380727b23359b
Reviewed-on: https://webrtc-review.googlesource.com/36380
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21922}
2018-02-06 19:12:04 +00:00
Anders Carlsson
c974b4bbc7 Remove corevideoframebuffer target.
This target is deprecated and downstream projects have been updated.

This CL replaces https://webrtc-review.googlesource.com/c/src/+/46521

Bug: webrtc:8470
Change-Id: Icf4696c946fd0a1aeeb687c4960586ba0cc52dc0
Reviewed-on: https://webrtc-review.googlesource.com/48362
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21908}
2018-02-06 11:03:39 +00:00
Anders Carlsson
824ef89757 Remove old copies of C++ codec factory wrappers.
These files were copied to Native/src but were kept around for
downstream projects that included them from their old locations.

Downstream projects have been updated so these can now be removed.

Bug: webrtc:8832
Change-Id: Ic28dc13e4b5bfced4b97ee872068683785d04bb3
Reviewed-on: https://webrtc-review.googlesource.com/47860
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21892}
2018-02-05 13:34:16 +00:00
Anders Carlsson
3ff50fba59 Create experimental Obj-C++ API.
This can be used to wrap Objective-C components in C++ classes, so users
can use the WebRTC C++ API directly together with the iOS specific
components provided by our SDK.

Bug: webrtc:8832
Change-Id: I6d34f7ec62d51df8d3a5340a2e17d30ae73e13e8
Reviewed-on: https://webrtc-review.googlesource.com/46162
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21850}
2018-02-01 16:36:24 +00:00
Peter Hanspers
28dbf97242 Fixing warnings in public iOS SDK headers.
Building with the newly published cocoapod generated a few warnings,
which looked a bit bad.

Bug: webrtc:8831
Change-Id: I70c06930603b328e4d11c599a5b5dd77b45150c6
Reviewed-on: https://webrtc-review.googlesource.com/46163
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21846}
2018-02-01 14:05:14 +00:00
Anders Carlsson
3b3364ed2e Add new Logger to iOS SDK to be able to intercept logs and report them to the appropriate system
Bug: webrtc:8695
Change-Id: I4f81529222dcaf3dded1a0ab93fabf5cda1fdef8
Reviewed-on: https://webrtc-review.googlesource.com/37001
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21821}
2018-01-31 09:35:29 +00:00
Anders Carlsson
dd8c16574e Enable building WebRTC without built-in software codecs
This CL adds a GN build flag to include builtin software codecs
(enabled by default).

When setting the flag to false, libvpx can also be excluded. The
benefit is that the resulting binary is smaller.

Replaces https://webrtc-review.googlesource.com/c/src/+/29203

Bug: webrtc:7925
Change-Id: Id330ea8a43169e449ee139eca18e4557cc932e10
Reviewed-on: https://webrtc-review.googlesource.com/36340
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21818}
2018-01-31 08:33:59 +00:00
Zach Stein
ba37b4b075 Change return type of RtpSenderInterface::SetParameters from bool to RTCError
Note that RTCErrorTypes are mapped to the following DOMException names:
INTERNAL_ERROR -> OperationError
UNSUPPORTED_PARAMETER -> OperationError
INVALID_STATE -> InvalidStateError
INVALID_MODIFICATION -> InvalidModificationError
INVALID_RANGE -> RangeError

Bug: webrtc:8772
Change-Id: I44e3fe2456b007b8fb227d37d74b07ba226a19e4
Reviewed-on: https://webrtc-review.googlesource.com/37141
Commit-Queue: Zach Stein <zstein@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21766}
2018-01-25 19:06:04 +00:00
Anders Carlsson
4418376d16 iOS: Move the fallback logic to the initWithNative… initializer.
This makes it possible to only inject 1 or 0 video codec factories when
consuming the API using the PeerConnectionFactory+Native header.

Bug: webrtc:7925
Change-Id: I671d8dcdbdf2198a31f3890ff6b416441bd32d48
Reviewed-on: https://webrtc-review.googlesource.com/42661
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21715}
2018-01-22 14:20:33 +00:00
Anders Carlsson
565e3e07d7 iOS: Fall back to legacy video codec factory if injecting nil.
This allows a user to only injecting the decoder or encoder factory.
This behavior also matches how it is implemented for Android.

Bug: webrtc:7925
Change-Id: I3dfca6ea2eaeea437b5b78da2373bd6f7cedc8fa
Reviewed-on: https://webrtc-review.googlesource.com/40860
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21695}
2018-01-19 14:47:05 +00:00
Anders Carlsson
e7dd83f2a7 Add tests for starting and stopping RTCCameraVideoCapturer.
Bug: webrtc:8755
Change-Id: I07d9a203276359069af7ba384c58612df7f2b467
Reviewed-on: https://webrtc-review.googlesource.com/40240
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21692}
2018-01-19 10:54:12 +00:00
Peter Hanspers
d9b64cdd32 Fixing some of the issues found by clang static analyzer.
Bug: webrtc:8737
Change-Id: Ib436449c493336e7c35a72a96dc88cccdbb5bbaf
Reviewed-on: https://webrtc-review.googlesource.com/39200
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21607}
2018-01-12 16:35:09 +00:00
Anders Carlsson
f707186185 Reland "Reland "Add completion callbacks to RTCCameraVideoCapturer start/stop operations""
This is a reland of 24e7a593d5
Original change's description:
> Reland "Add completion callbacks to RTCCameraVideoCapturer start/stop operations"
> 
> This is a reland of e23a9e8f41
> Original change's description:
> > Add completion callbacks to RTCCameraVideoCapturer start/stop operations
> > 
> > Bug: webrtc:8696
> > Change-Id: I327ce11632fd0c71e28411d260094e87ede6b6b6
> > Reviewed-on: https://webrtc-review.googlesource.com/37021
> > Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#21546}
> 
> Bug: webrtc:8696
> Change-Id: I48b4d140d870c9924ef0d76f4d282ff13951e083
> Reviewed-on: https://webrtc-review.googlesource.com/38800
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21592}

Bug: webrtc:8696
Change-Id: I281dee9b1df2efcb9c067da9dd9fea3c8fe35c3a
Reviewed-on: https://webrtc-review.googlesource.com/39281
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21602}
2018-01-12 15:17:09 +00:00
Erik Språng
0a52f1def6 Revert "Reland "Add completion callbacks to RTCCameraVideoCapturer start/stop operations""
This reverts commit 24e7a593d5.

Reason for revert: Speculative revert, to see if it causes obscure down-stream issues.

Original change's description:
> Reland "Add completion callbacks to RTCCameraVideoCapturer start/stop operations"
> 
> This is a reland of e23a9e8f41
> Original change's description:
> > Add completion callbacks to RTCCameraVideoCapturer start/stop operations
> > 
> > Bug: webrtc:8696
> > Change-Id: I327ce11632fd0c71e28411d260094e87ede6b6b6
> > Reviewed-on: https://webrtc-review.googlesource.com/37021
> > Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#21546}
> 
> Bug: webrtc:8696
> Change-Id: I48b4d140d870c9924ef0d76f4d282ff13951e083
> Reviewed-on: https://webrtc-review.googlesource.com/38800
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21592}

TBR=magjed@webrtc.org,andersc@webrtc.org,kthelgason@webrtc.org,gustavo@lifeonair.com

Change-Id: I11731b1ed7142175fc5b483f313f627556635ede
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8696
Reviewed-on: https://webrtc-review.googlesource.com/39280
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21597}
2018-01-12 11:54:03 +00:00
Anders Carlsson
24e7a593d5 Reland "Add completion callbacks to RTCCameraVideoCapturer start/stop operations"
This is a reland of e23a9e8f41
Original change's description:
> Add completion callbacks to RTCCameraVideoCapturer start/stop operations
> 
> Bug: webrtc:8696
> Change-Id: I327ce11632fd0c71e28411d260094e87ede6b6b6
> Reviewed-on: https://webrtc-review.googlesource.com/37021
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21546}

Bug: webrtc:8696
Change-Id: I48b4d140d870c9924ef0d76f4d282ff13951e083
Reviewed-on: https://webrtc-review.googlesource.com/38800
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21592}
2018-01-12 09:28:21 +00:00
Erik Språng
b84a90985b Revert "Add completion callbacks to RTCCameraVideoCapturer start/stop operations"
This reverts commit e23a9e8f41.

Reason for revert: Breaks some build bots

Original change's description:
> Add completion callbacks to RTCCameraVideoCapturer start/stop operations
> 
> Bug: webrtc:8696
> Change-Id: I327ce11632fd0c71e28411d260094e87ede6b6b6
> Reviewed-on: https://webrtc-review.googlesource.com/37021
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21546}

TBR=magjed@webrtc.org,andersc@webrtc.org,kthelgason@webrtc.org,gustavo@lifeonair.com

Change-Id: I2bbc4c8001d7b2262ca0bb6cd4d54100d892188a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8696
Reviewed-on: https://webrtc-review.googlesource.com/38720
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21553}
2018-01-10 15:09:43 +00:00
Gustavo Garcia
e23a9e8f41 Add completion callbacks to RTCCameraVideoCapturer start/stop operations
Bug: webrtc:8696
Change-Id: I327ce11632fd0c71e28411d260094e87ede6b6b6
Reviewed-on: https://webrtc-review.googlesource.com/37021
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21546}
2018-01-10 10:37:11 +00:00
Gustavo Garcia
730add8e2c Fix release shader resources in the right OpenGL context
Bug: webrtc:8705
Change-Id: I772d86b33fdc7903d874e6ba37e63dd53be6f08e
Reviewed-on: https://webrtc-review.googlesource.com/37082
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21519}
2018-01-08 14:22:52 +00:00
Yura Yaroshevich
276763201d Expose RTCDtmfSender API via RTCRtpSender in ObjC SDK.
Expose RTCDtmfSender API for ObcC SDK via exising RTCRtpSender
to provide ability to use DTMF tones in ObjC apps which uses WebRTC.
Android SDK has already exposed DTMF API via Java's DtmfSender
object, there changes provide similar functionaly to ObjC SDK.

Bug: webrtc:8713
Change-Id: Id68fddbbc362211dc8032fa31b38812d1cff8ed9
Reviewed-on: https://webrtc-review.googlesource.com/35800
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21505}
2018-01-05 18:21:29 +00:00
Yura Yaroshevich
bf567120bd Exposed setOptions via RTCPeerConnectionFactory
Exposed setOptions API for iOS SDK via RTCPeerConnectionFactory method
to provide ability to disable encryption and control which network
adapters are ignored.
Only subset of webrtc::PeerConnectionFactoryInterface::Options options
are exposed via iOS SDK, additional options can be exposed as requested.
Android SDK has already exposed setOption API via Java's PeerConnection
constructor, there changes provide similar functionaly to iOS SDK.

Bug: webrtc:8712
Change-Id: Ia2de38cf382afc1bad9bbec6c6eac21ad29aee89
Reviewed-on: https://webrtc-review.googlesource.com/34900
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21504}
2018-01-05 18:10:29 +00:00
Anders Carlsson
4df8e1ab94 iOS: H264 encoder crash on disabled stream
The H264 encoder defaults to using the kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
pixel format. If the frames coming into the encoder is RTCCVPixelBuffer frames,
we check the pixel format in the contained CVPixelBuffer and send the same format
to the encoder when possible, by switching the encoder's pixel format. When we
receive frames with buffers conforming to the RTCI420Buffer protocol, we copy
the frame contents to the target pixel buffer, hardcoded to be the default NV12.

This works except when switching incoming frames from RTCCVPixelBuffer frames to
I420 frames during runtime. If we received RTCCVPixelBuffers wrapping e.g. an
RGB CVPixelBuffer, the encoder's pixel format have been changed to RGB. If we
now get incoming frames in I420, we must convert these to RGB instead of NV12
to match the encoder's format.

This bug can be triggered by calling `[_localVideoTrack setIsEnabled:NO]` in
`ARDAppClient.m`. This will make the stream start sending black i420 frames to
the encoder.

This CL fixes this by resetting the compression session with the default NV12
format if the input frame type changes from native to I420.

Bug: webrtc:8638
Change-Id: I5d784d204b7b1d09313a0f4cea6302ea72e9ed94
Reviewed-on: https://webrtc-review.googlesource.com/33260
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21382}
2017-12-20 13:42:06 +00:00
Mirko Bonadei
654320666d Including libyuv headers using fully qualified paths.
Using fully qualified paths to include libyuv headers allows WebRTC to
avoid to rely on the //third_party/libyuv:libyuv_config target to
set the -I compiler flag.

Today some WebRTC targets depend on //third_party/libyuv only to
include //third_party/libyuv:libyuv_config but with fully qualified
paths this should not be needed anymore.

A follow-up CL will remove //third_party/libyuv from some targets that
don't need it because they are not including libyuv headers.

Bug: webrtc:8605
Change-Id: Icec707ca761aaf2ea8088e7f7a05ddde0de2619a
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/28220
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21209}
2017-12-11 15:51:26 +00:00
Kári Tristan Helgason
86de7e898a Add a way for RTCVideoDecoderH264 to signal decode errors.
This means we will properly request a new keyframe if decoding fails.

Bug: webrtc:8600
Change-Id: Id213686f016c5418bf04b2ee68bd19dbbe1ea954
Reviewed-on: https://webrtc-review.googlesource.com/28101
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21036}
2017-12-04 13:31:03 +00:00
Kári Tristan Helgason
9555e67db5 Don't create VP9 codec factories when building without VP9.
This fixes a bug where AppRTCMobile would crash at runtime when
built without VP9 support.

Bug: webrtc:8602
Change-Id: Id2db79c3ff8136f06dc049afcc5197e9356fd25b
Reviewed-on: https://webrtc-review.googlesource.com/27983
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20982}
2017-12-01 18:36:11 +00:00