Commit graph

172 commits

Author SHA1 Message Date
Yura Yaroshevich
0f77feae6d Init max supported H.264 profile at runtime on iOS
Bug: webrtc:9134, webrtc:7992
Change-Id: Id24c570bf3296298901f61ee817a3d7c3f8c6347
Reviewed-on: https://webrtc-review.googlesource.com/71560
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23034}
2018-04-26 15:01:07 +00:00
JT Teh
c1f083d143 Add notifiers for when the audio session will be activated/deactivated, did activate/deactivate and failed to activate/deactivate.
Bug: webrtc:9191
Change-Id: I68a71701dd4c3660331080495b5be4408493aa86
Reviewed-on: https://webrtc-review.googlesource.com/72262
Commit-Queue: JT Teh <jtteh@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23028}
2018-04-25 16:50:43 +00:00
JT Teh
e61125c4a1 Move setting videoFrameSize into the main dispatch queue.
Bug: webrtc:9179
Change-Id: I46b19b67c267013d600dc754ba2bcf1ca9c038e6
Reviewed-on: https://webrtc-review.googlesource.com/71996
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@{#23007}
2018-04-24 16:23:59 +00:00
Anders Carlsson
2efb665e27 Add some more test cases for RTCCVPixelBuffer.
Also fix rendering of certain i420 buffers in debug quicklook.

Bug: None
Change-Id: I793915c3a5a1fcb4cd7b24383d1579655e9a7c28
Reviewed-on: https://webrtc-review.googlesource.com/72080
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23005}
2018-04-24 14:43:26 +00:00
JT Teh
5c14725d53 Update the drawable size when changing the view's frame.
Change-Id: I2ef4930e880ff8d3409d766cad4b6d14746a49dc

Bug: webrtc:9179
Change-Id: I2ef4930e880ff8d3409d766cad4b6d14746a49dc
Reviewed-on: https://webrtc-review.googlesource.com/71638
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22985}
2018-04-23 15:28:46 +00:00
Kári Tristan Helgason
4049a25afd Make MTLView content mode settable.
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}
2018-04-20 15:37:23 +00:00
Piotr (Peter) Slatala
0b71c2973f Allow creation of 420 Buffer using YUV data.
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}
2018-04-19 17:26:59 +00:00
Kári Tristan Helgason
06d094f3e6 Add renderer-agnostic delegate protocol.
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}
2018-04-19 16:18:49 +00:00
Kári Tristan Helgason
4f7b6406c4 Add checks that we don't redraw the previous frame.
Bug: webrtc:9149
Change-Id: Ia1f61fd43ea9be6c341a111595e8a290a809c72f
Reviewed-on: https://webrtc-review.googlesource.com/69810
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22937}
2018-04-19 11:07:39 +00:00
Niels Möller
2cb7b5ebef Convert BitrateAdjuster from webrtc::Clock to rtc::TimeMillis.
We can then also drop the system_wrappers dependency from the common_video
build target.

Bug: webrtc:6733
Change-Id: I501113d100322d1ebc51b2286970697a24b70a43
Reviewed-on: https://webrtc-review.googlesource.com/70381
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22934}
2018-04-19 09:22:08 +00:00
Anders Carlsson
5b07c24056 iOS H264 encoder: Make initial compression session respect pixel format.
Bug: webrtc:9150
Change-Id: Ib331391f585c3d94190bb67c38e2d59b22834b25
Reviewed-on: https://webrtc-review.googlesource.com/69812
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22872}
2018-04-16 10:03:48 +00:00
Steve Anton
3acffc3b16 Remove SdpSemantics::kDefault
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}
2018-04-13 17:03:08 +00:00
Kári Tristan Helgason
c1161eb5e3 Add test case for renderer reconstruction.
Bug: b/77825904
Change-Id: I961ec5c2f7ea4bd85c40b716510ae38d261d0b57
Reviewed-on: https://webrtc-review.googlesource.com/69807
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22855}
2018-04-13 11:51:43 +00:00
JT Teh
d5601329aa Revert "Fix rendering on an iPhone X's tall screen."
This reverts commit 4feb2044db.

Reason for revert: Landscape video was not showing as aspect fit as before. .

Original change's description:
> 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}

TBR=magjed@webrtc.org,kthelgason@webrtc.org,jtteh@webrtc.org

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

Bug: webrtc:8884
Change-Id: I17bcdaf945d74540538162934cd3265240cc9302
Reviewed-on: https://webrtc-review.googlesource.com/68841
Commit-Queue: JT Teh <jtteh@webrtc.org>
Reviewed-by: JT Teh <jtteh@webrtc.org>
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22828}
2018-04-11 17:07:46 +00:00
Yura Yaroshevich
27af5db5e0 Log video toolbox error codes
Log OSStatus returned by VideoToolbox to simplify debugging.

Bug: webrtc:9134
Change-Id: Ib9e4f208a823d4be58324dd1f9dde833cba8afbe
Reviewed-on: https://webrtc-review.googlesource.com/69080
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22823}
2018-04-11 14:21:46 +00:00
Maxim Pavlov
a72b7fc30a ObjC: Add missing _lastDrawnFrame assignments
Currently there are several checks against _lastDrawnFrame in RTCEAGLVideoView.mm but this variable is not assigned anywhere. Seems like it was missed in 13941912b1 during work on injecting custom shaders.

Bug: webrtc:9133
Change-Id: Ie979a63de343e7253e4b4e70e3b98ffb0880af04
Reviewed-on: https://webrtc-review.googlesource.com/68720
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22819}
2018-04-11 12:51:06 +00:00
Kári Tristan Helgason
e49452de1f Reland "Improve thread-safety of MTL Renderer."
This is a reland of a8f13ccad4

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}

Bug: b/77579859
Change-Id: I9582cffaae5e241fdb4e41a2a5892738b7246e39
Reviewed-on: https://webrtc-review.googlesource.com/68960
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22806}
2018-04-10 13:24:25 +00:00
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
Qingsi Wang
dea6889ef6 Add sanity checks of IceConfig parameters.
IceConfig contains a set of parameters that affect the behavior of ICE.
Inconsistent or conflicting parameters lead to erroneous or
unpredicatble behavior in the network stack. Sanity checks are now added
to validate IceConfig.

TBR=magjed@webrtc.org

Bug: webrtc:8993
Change-Id: I708bc3f1ef970872754a82a47a509bda15061ca6
Reviewed-on: https://webrtc-review.googlesource.com/60847
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22664}
2018-03-28 22:09:57 +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
Kári Tristan Helgason
815f3b6b71 Fix podspec iOS version.
Bug: webrtc:9024
Change-Id: Ia5bf6c181a4f1b356ca156f9e8c8cadea8083b73
Reviewed-on: https://webrtc-review.googlesource.com/62340
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22466}
2018-03-16 09:30:27 +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
Niels Möller
225c787c6e Move default thresholds from QualityScaler to encoders.
Overriding implementations of VideoEncoder::GetScalingSettings that
want to enable quality scaling must now provide the thresholds.

Bug: webrtc:8830
Change-Id: I75c47cb56ac1b9cf77401684980b3167e485f51c
Reviewed-on: https://webrtc-review.googlesource.com/46622
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22172}
2018-02-23 13:12:36 +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
Anders Carlsson
dc6b477fb4 Generate iOS framework umbrella header.
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}
2018-01-15 13:43:59 +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
Peter Hanspers
8020ae82f5 Adding test to check for c++ in framework headers.
Bug: webrtc:8469
Change-Id: I336a2aa75638920901c2bddf07fb03cb00ccb83e
Reviewed-on: https://webrtc-review.googlesource.com/38020
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21536}
2018-01-09 15:17:30 +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
Kári Tristan Helgason
86f8047cb7 Remove all code for iOS 8 and below.
Bug: webrtc:8455
Change-Id: I59ae663cea3d734090baa21843e84b8e0ad04c59
Reviewed-on: https://webrtc-review.googlesource.com/16080
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20977}
2017-12-01 14:25:46 +00:00
Oskar Sundbom
d21bf131bd Optional: Use nullopt and implicit construction in /sdk/objc
Changes places where we explicitly construct an Optional to instead use
nullopt or the requisite value type only.

This CL was uploaded by git cl split.

R=magjed@webrtc.org

Bug: None
Change-Id: I78842b6bb8ae345bcb852feee3908fdaf955c664
Reviewed-on: https://webrtc-review.googlesource.com/23574
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20956}
2017-11-30 15:52:50 +00:00
VladimirTechMan
80adac053c Set video codec names in public API using existing cricket constants
For better consistency between the Objective-C API constant definitions
and the existing constants defined in the underlying core, re-use the
available video codec-name constants from cricket to define the peer
constants in the public API.

BUG=None

Change-Id: I8d5ddc2c1bd6670810fca1665aaf9a116620a34e
Reviewed-on: https://webrtc-review.googlesource.com/25360
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20883}
2017-11-27 09:01:42 +00:00
Daniela
012b56b5d4 Reland "Add file capturer to AppRTCMobile on simulator."
This is a reland of 5adcd19875
Original change's description:
> Add file capturer to AppRTCMobile on simulator.
> 
> 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}

Bug: webrtc:8406
Change-Id: I93be89b86e342a9a8195e19ebaf4aef1410d2c20
Reviewed-on: https://webrtc-review.googlesource.com/23200
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20870}
2017-11-24 15:06:39 +00:00
Karl Wiberg
e40468ba3d Move some numeric utility code from rtc_base/ to rtc_base/numerics/
Specifically, I'm moving

  safe_compare.h
  safe_conversions.h
  safe_minmax.h

They shouldn't be part of the API, and moving them to an appropriate
subdirectory of rtc_base/ is a good way to keep track of that.

BUG=webrtc:8445

Change-Id: I458531aeb30bcf4291c4bec3bf22a2fffbf054ff
Reviewed-on: https://webrtc-review.googlesource.com/20860
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20829}
2017-11-22 11:21:47 +00:00
Anders Carlsson
22d43f3352 iOS: Don’t change video rotation in FaceUp or FaceDown.
Previously, if using the device in landscape and then tilting the phone
into FaceUp orientation, the video rotation would reset to portrait.

Bug: webrtc:8492
Change-Id: I3e11e3adecabf99249ba3a8d5532291580a93f2e
Reviewed-on: https://webrtc-review.googlesource.com/24021
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20792}
2017-11-20 14:28:30 +00:00
Gustavo Garcia gustavo@lifeonair.com
19d77c1bbb Fix support orientation changes in Camera Preview
Bug: webrtc:8532
Change-Id: I2a3cc6974af711f1be6a55a6a1e04e7189175bd3
Reviewed-on: https://webrtc-review.googlesource.com/23220
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20702}
2017-11-16 08:56:23 +00:00
Anders Carlsson
7dad255ce1 Update output pixel format when starting video capture on iOS.
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}
2017-11-16 08:33:23 +00:00
Sam Zackrisson
6124aacd98 Add AudioProcessing parameter to RTCPeerConnectionFactory native constructor
This allows Objective C(++) users to supply their own implementations of the webrtc::AudioProcessing module.

Bug: webrtc:8163
Change-Id: I2302610c9b45b2f483146d6fe7d82be419b33ee2
Reviewed-on: https://webrtc-review.googlesource.com/18180
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20668}
2017-11-14 09:31:56 +00:00
Mirko Bonadei
675513b96a Stop using LOG macros in favor of RTC_ prefixed macros.
This CL has been generated with the following script:

for m in PLOG \
  LOG_TAG \
  LOG_GLEM \
  LOG_GLE_EX \
  LOG_GLE \
  LAST_SYSTEM_ERROR \
  LOG_ERRNO_EX \
  LOG_ERRNO \
  LOG_ERR_EX \
  LOG_ERR \
  LOG_V \
  LOG_F \
  LOG_T_F \
  LOG_E \
  LOG_T \
  LOG_CHECK_LEVEL_V \
  LOG_CHECK_LEVEL \
  LOG
do
  git grep -l $m | xargs sed -i "s,\b$m\b,RTC_$m,g"
done
git checkout rtc_base/logging.h
git cl format

Bug: webrtc:8452
Change-Id: I1a53ef3e0a5ef6e244e62b2e012b864914784600
Reviewed-on: https://webrtc-review.googlesource.com/21325
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20617}
2017-11-09 11:56:32 +00:00
Gustavo Garcia
7281f92e72 Fix do not initialize OpenGL if VideoView is creating with the app in background
Bug: webrtc:8498
Change-Id: I354caf9c2b4dc9e596e97cd9a80dac71b6c89289
Reviewed-on: https://webrtc-review.googlesource.com/20980
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20611}
2017-11-09 09:34:12 +00:00
Daniela Jovanoska Petrenko
b93baffb0a Revert "Add file capturer to AppRTCMobile on simulator."
This reverts commit 5adcd19875.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Add file capturer to AppRTCMobile on simulator.
> 
> 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}

TBR=magjed@webrtc.org,andersc@webrtc.org,denicija@webrtc.org

Change-Id: I73b35c67296c964f65d206454ac1329b4b979628
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8406
Reviewed-on: https://webrtc-review.googlesource.com/21240
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20599}
2017-11-08 14:13:11 +00:00
Daniela
5adcd19875 Add file capturer to AppRTCMobile on simulator.
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}
2017-11-08 13:27:49 +00:00
Anders Carlsson
ed2b1c954c Ignore output callbacks with null parameters in iOS H264 encode.
This can occur if there are callbacks in-flight when the compression
session is destroyed. Has been observed but is rare.

Bug: webrtc:8489
Change-Id: I5d4b35c555f6ff68af48edfcc7acf53395fa86fe
Reviewed-on: https://webrtc-review.googlesource.com/18220
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20561}
2017-11-06 13:40:27 +00:00
Magnus Jedvert
0af86d1c43 Reland ObjC API for BWE allocation strategy
Bug: webrtc:8243
Change-Id: Ib1b8349bffe98490ba5f1d12b18e848e89cdb9ce
Reviewed-on: https://webrtc-review.googlesource.com/16640
Reviewed-by: Alex Narest <alexnarest@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20534}
2017-11-01 15:21:06 +00:00
Daniela
c4a14324e2 Remove autolayout in RTCMTLVideoView.
Using layoutSubviews is a simpler solution to achieveing the desired
effect. Plus this will get rid of warrnings on iOS 11

Bug: webrtc:8467
Change-Id: Idaa041b7a0ed889905d97f645408fb3437154e73
Reviewed-on: https://webrtc-review.googlesource.com/17380
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20523}
2017-11-01 09:56:46 +00:00
Zeke Chin
ef1140eec0 Expose TurnCustomizer as a native ObjC property.
Bug: webrtc:8471
Change-Id: Ic0d904b0c3742e552f20fbebb26d55d2bdd76c72
Reviewed-on: https://webrtc-review.googlesource.com/16566
Commit-Queue: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20481}
2017-10-30 17:30:39 +00:00
Sean Rosenbaum
e5c4265619 Allow external audio device module to be passed in to the objc peer connection factory interface.
Bug: webrtc:8466
Change-Id: I87091cb32206f5f3bed310ec23963bcc053c59db
Reviewed-on: https://webrtc-review.googlesource.com/16734
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Sean Rosenbaum <srosenba@google.com>
Cr-Commit-Position: refs/heads/master@{#20479}
2017-10-30 16:46:19 +00:00
Anders Carlsson
1d4c152a38 Reland "Simple Default ObjC video codec factories."
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}
2017-10-30 14:48:39 +00:00
Magnus Jedvert
293158b707 Revert ObjC API changes for BWE allocation strategy
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}
2017-10-27 12:33:24 +00:00
Oskar Sundbom
4556f3c3f4 Revert "Simple Default ObjC video codec factories."
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}
2017-10-26 11:55:57 +00:00
Anders Carlsson
30915a742d 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}
2017-10-26 08:31:54 +00:00
Anders Carlsson
f3ee3b7478 Support RGB frames in RTCCVPixelBuffer
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}
2017-10-23 15:34:28 +00:00
Kári Tristan Helgason
fc313dcda6 Add prefix to codec name constants.
Bug: webrtc:8401
Change-Id: I8cd4685df3609e8b91a79b19789aadef484138d4
Reviewed-on: https://webrtc-review.googlesource.com/14140
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20390}
2017-10-23 12:49:17 +00:00
Peter Hanspers
47217364f5 Adding a KVO context to avoid issues with future super/sub-classing.
Bug: webrtc:8342
Change-Id: I457858056ffc7f33bbfb261153301ea2ccd71a51
Reviewed-on: https://webrtc-review.googlesource.com/6440
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20389}
2017-10-23 12:33:17 +00:00
Alex Narest
78609d5b6b Reland of BWE allocation strategy
TBR=stefan@webrtc.org,alexnarest@webrtc.org

Bug: webrtc:8243
Change-Id: Ie68e4f414b2ac32ba4e64877cb250fabcb089a07
Reviewed-on: https://webrtc-review.googlesource.com/13940
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Alex Narest <alexnarest@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20369}
2017-10-20 10:16:15 +00:00
Alex Narest
dc9ca9329b Revert "BWE allocation strategy"
This reverts commit a5fbc23379.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> BWE allocation strategy
> 
> This is reland of https://webrtc-review.googlesource.com/c/src/+/4860 with the fixed RampUpTest test
> 
> Bug: webrtc:8243
> Change-Id: I4b90a449b00dd05feee974001e08fb40710b59ac
> Reviewed-on: https://webrtc-review.googlesource.com/13124
> Commit-Queue: Alex Narest <alexnarest@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20345}

TBR=stefan@webrtc.org,alexnarest@webrtc.org

Change-Id: I8ed12cd2115ef63204e384cc93c9f4473daa54d1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8243
Reviewed-on: https://webrtc-review.googlesource.com/14020
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Alex Narest <alexnarest@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20361}
2017-10-19 15:34:52 +00:00
Alex Narest
a5fbc23379 BWE allocation strategy
This is reland of https://webrtc-review.googlesource.com/c/src/+/4860 with the fixed RampUpTest test

Bug: webrtc:8243
Change-Id: I4b90a449b00dd05feee974001e08fb40710b59ac
Reviewed-on: https://webrtc-review.googlesource.com/13124
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20345}
2017-10-19 09:30:00 +00:00