This CL removes the use of default built-in SW in the ObjC layer. If a
client want to depend on the video SW codecs, they must inject them
explicitly.
Bug: webrtc:7925
Change-Id: If752e7f02109ff768dc5ec38d935203de85987c2
Reviewed-on: https://webrtc-review.googlesource.com/69800
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23073}
We want to allow the application to set it's own content mode.
Bug: b/73147161
Change-Id: I60fab454353a4c39731e49b7b6066e51d8e9a94d
Reviewed-on: https://webrtc-review.googlesource.com/70501
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22962}
There currently are no Objective-C API's to create a buffer with that data.
This change allows us to create a buffer with yuv data.
Bug: webrtc:9167
Change-Id: I00f1b91b04bbaa013a88137d0f54bef44287c5aa
Reviewed-on: https://webrtc-review.googlesource.com/70563
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Commit-Queue: Peter Slatala <psla@google.com>
Cr-Commit-Position: refs/heads/master@{#22945}
The MTL renderer should also have a way to notify it's delegate
that it's content size changed.
The plan is to introduce this new protocol, move existing clients over
to implementing it in favour of RTCEAGLVideoViewDelegate, and then finally
removing the old protocol.
Bug: b/73147161
Change-Id: I908d7b2667e44e02a58066d701a48efec0e98d14
Reviewed-on: https://webrtc-review.googlesource.com/70243
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22944}
This adds confusion to the native API and is only needed for
Chromium UMA metrics, so the appropriate metrics have been moved
upstream and kDefault option removed.
Bug: chromium:811683
Change-Id: I666d7f7793765b8d6edcd99416c8b6c957766f00
Reviewed-on: https://webrtc-review.googlesource.com/59261
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22864}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
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}
Instead of keeping the umbrella header in sync manually and needing
ifdefs to make it include the correct headers depending on platform,
generate it based on the headers we include in the framework target.
Can also be used to only include internal software codec headers when
compiling with support for them.
Bug: webrtc:7925
Change-Id: I63f97af1efc8710cfd62d527fcb343fed05daae2
Reviewed-on: https://webrtc-review.googlesource.com/38702
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21613}
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}
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}
Update the output pixel format to the client supplied format when
starting camera capture.
Also add a new API method to get the preferred output pixel format
according to the
AVCaptureVideoDataOutput#availableVideoCVPixelFormatTypes method and
use it in AppRTCMobile.
Bug: webrtc:8505
Change-Id: Ia24eaf91d70d0703a34d38b06bb6eea28fb922b8
Reviewed-on: https://webrtc-review.googlesource.com/22680
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20697}
To achieve this, the CL does the following
- Adds sample mp4 video
- Refactors the existing RTCFileVideoCapturer to achieve continious
capture and adds tests.
Bug: webrtc:8406
Change-Id: Ibc0891176c58ec9053b42e340d2113036e7199ec
Reviewed-on: https://webrtc-review.googlesource.com/12180
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20598}
This is a reland of 30915a742d
Original change's description:
> Simple Default ObjC video codec factories.
>
> Move the simple video encoder/decoder factory from AppRTCMobile into the
> public API so users who don't have special requirements for video codecs
> can easily get started.
>
> Also clean up the API a little.
>
> This CL replaces the more flexible default factories in
> https://webrtc-review.googlesource.com/c/src/+/7741 and clients that
> want to implement their own codecs will have to supply their own
> encoder/decoder factories as well. The benefits of the approach in
> this CL are a simpler API and less effects on the rest of the code.
>
> Bug: None
> Change-Id: I4ed94090d778b4fc38b49864de1d4de4ff125d6a
> Reviewed-on: https://webrtc-review.googlesource.com/15141
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20441}
Bug: None
Change-Id: If0910cc540dc835dfec4eeb5bea527d88482d110
Reviewed-on: https://webrtc-review.googlesource.com/16780
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20476}
The ObjC API (the files in sdk/objc/Framework/Headers/WebRTC/) needs to
be pure ObjC. The changes that are reverted here introduced C++ which
turns it into ObjC++.
We don't have a test protectcing this right now, but it's probably
something we should add to catch changes like this in the future.
TBR=alexnarest@webrtc.org,deadbeef@webrtc.org
Bug: webrtc:8243
Change-Id: Idea688f4014cd44c27cf2cb2a5ec8a9ea7da3c00
Reviewed-on: https://webrtc-review.googlesource.com/16429
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20463}
This reverts commit 30915a742d.
Reason for revert: Breaks downstream.
Original change's description:
> Simple Default ObjC video codec factories.
>
> Move the simple video encoder/decoder factory from AppRTCMobile into the
> public API so users who don't have special requirements for video codecs
> can easily get started.
>
> Also clean up the API a little.
>
> This CL replaces the more flexible default factories in
> https://webrtc-review.googlesource.com/c/src/+/7741 and clients that
> want to implement their own codecs will have to supply their own
> encoder/decoder factories as well. The benefits of the approach in
> this CL are a simpler API and less effects on the rest of the code.
>
> Bug: None
> Change-Id: I4ed94090d778b4fc38b49864de1d4de4ff125d6a
> Reviewed-on: https://webrtc-review.googlesource.com/15141
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20441}
TBR=magjed@webrtc.org,andersc@webrtc.org,kthelgason@webrtc.org
Change-Id: I3d4395cc9667e6c6cdb33a3b0f5c5fb5bfde9028
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/15182
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20446}
Move the simple video encoder/decoder factory from AppRTCMobile into the
public API so users who don't have special requirements for video codecs
can easily get started.
Also clean up the API a little.
This CL replaces the more flexible default factories in
https://webrtc-review.googlesource.com/c/src/+/7741 and clients that
want to implement their own codecs will have to supply their own
encoder/decoder factories as well. The benefits of the approach in
this CL are a simpler API and less effects on the rest of the code.
Bug: None
Change-Id: I4ed94090d778b4fc38b49864de1d4de4ff125d6a
Reviewed-on: https://webrtc-review.googlesource.com/15141
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20441}
In addition to NV12 frames, also support cropping/scaling RGB frames and
converting RGB frames to i420.
This CL also removes the hardcoding of pixel format in
RTCCameraVideoCapturer. Instead, use the first available format for the
output device that our pipeline supports.
Bug: webrtc:8351
Change-Id: If479b4934c47cd2994936913f55e60fbbee3893b
Reviewed-on: https://webrtc-review.googlesource.com/8920
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20396}