281 Commits

Author SHA1 Message Date
Diogo Real
1dca9d513a Support a user-provided string for the TLS ALPN extension.
Fix source formatting
Add TLS ALPN extension.

Bug: webrtc:8086
Change-Id: I1f28ccd78760d3415e465f734744d2c2f93845e2
Reviewed-on: https://chromium-review.googlesource.com/611150
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Diogo Real <diogor@google.com>
Cr-Commit-Position: refs/heads/master@{#19588}
2017-08-29 20:11:16 +00:00
andersc
cfab6c7c04 Increase timeout in RTCUIApplicationStatusObserver
Increase timeout since the wait function timed out in certain debugging
circumstances. Also change the check to a DCHECK since it is not really
a critical error if it would time out.

BUG=None

Review-Url: https://codereview.webrtc.org/3007773002
Cr-Commit-Position: refs/heads/master@{#19582}
2017-08-29 13:52:04 +00:00
magjed
b8853ca8d3 ObjC: Add support for injectable native audio and video codecs
The native interface is added in the private file
webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h.

BUG=webrtc:8093

Review-Url: https://codereview.webrtc.org/3012443002
Cr-Commit-Position: refs/heads/master@{#19576}
2017-08-29 10:57:22 +00:00
Magnus Jedvert
f83dc8bbe5 Revert "Adding injectable audio decoder and encoder factory support to the RTCPeerConnection obj-c layer."
This reverts commit 96de428fd1f301c3ad1355183b45e44db5ef3f7f.

Reason for revert: Gives compile errors because the new ObjC++ headers are included in some targets that use ObjC.

Original change's description:
> Adding injectable audio decoder and encoder factory support to the RTCPeerConnection obj-c layer.
> 
> Bug: webrtc:8093
> Change-Id: I868ce5f75a72c6deb065dec60784289d045ae22a
> Reviewed-on: https://chromium-review.googlesource.com/608981
> Commit-Queue: Jeremy Newton-Smith <jeremyns@webrtc.org>
> Reviewed-by: Zeke Chin <tkchin@webrtc.org>
> Reviewed-by: Kári Tristan Helgason <kthelgason@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#19477}

TBR=kjellander@webrtc.org,tkchin@webrtc.org,kthelgason@webrtc.org,jeremyns@webrtc.org

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

Bug: webrtc:8093
Change-Id: I3ade9dd979c9f13990a2972b15b786b8e78e1cd4
Reviewed-on: https://chromium-review.googlesource.com/640810
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19573}
2017-08-29 10:16:31 +00:00
andersc
151aa6b3f7 Adjust for initial cropping when adapting frame.
When adapting a frame, any initial cropping coordinate was replaced
by the coordinate calculated for adapting. Offset initial coordinate
instead.

BUG=webrtc:7880

Review-Url: https://codereview.webrtc.org/2975613002
Cr-Commit-Position: refs/heads/master@{#19509}
2017-08-25 08:33:18 +00:00
jtteh
837adc0871 Fix video slow to appear on first launch.
BUG=webrtc:7777

Review-Url: https://codereview.webrtc.org/3006453002
Cr-Commit-Position: refs/heads/master@{#19497}
2017-08-24 14:14:35 +00:00
kthelgason
a4955b4d9a Enable the HW VideoToolbox encoder on mac.
This CL was originally submitted by an external contributor in
https://chromium-review.googlesource.com/c/external/webrtc/+/582051.

I have rebased it to the new ObjC encoder class.

BUG=webrtc:8022

Review-Url: https://codereview.webrtc.org/3003653002
Cr-Commit-Position: refs/heads/master@{#19486}
2017-08-24 11:22:58 +00:00
kthelgason
1cdddc96fa Make CodecType conversion functions non-optional.
We can't handle no value here anyway and end up setting a default
at each call site. The defaults aren't even the same in each place.

BUG=None

Review-Url: https://codereview.webrtc.org/2998293002
Cr-Commit-Position: refs/heads/master@{#19485}
2017-08-24 10:52:48 +00:00
Jeremy Newton-Smith
96de428fd1 Adding injectable audio decoder and encoder factory support to the RTCPeerConnection obj-c layer.
Bug: webrtc:8093
Change-Id: I868ce5f75a72c6deb065dec60784289d045ae22a
Reviewed-on: https://chromium-review.googlesource.com/608981
Commit-Queue: Jeremy Newton-Smith <jeremyns@webrtc.org>
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19477}
2017-08-23 22:46:44 +00:00
andersc
cca0006e33 ObjC: Always dispatch async in UIApplication status observer.
Fixes a possible deadlock.

BUG=webrtc:8130

Review-Url: https://codereview.webrtc.org/3003633002
Cr-Commit-Position: refs/heads/master@{#19464}
2017-08-23 13:04:17 +00:00
magjed
139cf38223 ObjC: Remove RTCVideoFrame I420 functions
Access to I420 data should be done on an RTCI420Buffer that can be
accessed through the toI420 method, and not on an RTCVideoFrame
directly.

BUG=webrtc:7785

Review-Url: https://codereview.webrtc.org/2997453002
Cr-Commit-Position: refs/heads/master@{#19431}
2017-08-21 14:31:26 +00:00
magjed
b0215daeb5 ObjC: Remove RTCVideoFrame.nativeHandle
Access to a native buffer should be through RTCVideoFrame.buffer
instead.

BUG=webrtc:7785

Review-Url: https://codereview.webrtc.org/2990253002
Cr-Commit-Position: refs/heads/master@{#19430}
2017-08-21 14:12:08 +00:00
andersc
81bc523f5d Make a friendlier RTCVideoCodecInfo initializer for when only name and
parameters are interesting.

Since this is used by users when implementing injectable Obj-C video
codecs, the API where the unused payload is required is unnecessarily
confusing. Also make the codec parameters optional.

BUG=None

Review-Url: https://codereview.webrtc.org/3001183002
Cr-Commit-Position: refs/heads/master@{#19411}
2017-08-18 13:34:09 +00:00
sprang
ba050a6d6d Reland of Add a flags field to video timing extension. (patchset #1 id:1 of https://codereview.webrtc.org/2995953002/ )
Reason for revert:
Create reland CL to add fix to.

Original issue's description:
> Revert of Add a flags field to video timing extension. (patchset #15 id:280001 of https://codereview.webrtc.org/3000753002/ )
>
> Reason for revert:
> Speculative revet for breaking remoting_unittests in fyi bots.
> https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Win7%20Tester
>
> Original issue's description:
> > Add a flags field to video timing extension.
> >
> > The rtp header extension for video timing shuold have an additional
> > field for signaling metadata, such as what triggered the extension for
> > this particular frame. This will allow separating frames select because
> > of outlier sizes from regular frames, for more accurate stats.
> >
> > This implementation is backwards compatible in that it can read video
> > timing extensions without the new flag field, but it always sends with
> > it included.
> >
> > BUG=webrtc:7594
> >
> > Review-Url: https://codereview.webrtc.org/3000753002
> > Cr-Commit-Position: refs/heads/master@{#19353}
> > Committed: cf5d485e14
>
> TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7594
>
> Review-Url: https://codereview.webrtc.org/2995953002
> Cr-Commit-Position: refs/heads/master@{#19360}
> Committed: f0f7378b05

TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,emircan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2996153002
Cr-Commit-Position: refs/heads/master@{#19405}
2017-08-18 09:51:12 +00:00
andersc
f9f448b32d ObjC: Include additional files in umbrella header.
RTCAudioSession and RTCAudioSessionConfiguration allow users to handle
audio manually and is used by the AppRTCMobile example.

RTCVideoFrameBuffer exposes a protocol that users can implement to
create their own frame buffer formats, as long as they can be converted
into i420.

RTCVideoCapturer and RTCVideoViewShading are imported by other headers
already included by the umbrella header, so they were always accessible
to users. Added them to the umbrella header to make it explicit.

BUG=webrtc:7351, webrtc:8027

Review-Url: https://codereview.webrtc.org/2994253002
Cr-Commit-Position: refs/heads/master@{#19379}
2017-08-17 09:31:55 +00:00
emircan
f0f7378b05 Revert of Add a flags field to video timing extension. (patchset #15 id:280001 of https://codereview.webrtc.org/3000753002/ )
Reason for revert:
Speculative revet for breaking remoting_unittests in fyi bots.
https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Win7%20Tester

Original issue's description:
> Add a flags field to video timing extension.
>
> The rtp header extension for video timing shuold have an additional
> field for signaling metadata, such as what triggered the extension for
> this particular frame. This will allow separating frames select because
> of outlier sizes from regular frames, for more accurate stats.
>
> This implementation is backwards compatible in that it can read video
> timing extensions without the new flag field, but it always sends with
> it included.
>
> BUG=webrtc:7594
>
> Review-Url: https://codereview.webrtc.org/3000753002
> Cr-Commit-Position: refs/heads/master@{#19353}
> Committed: cf5d485e14

TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2995953002
Cr-Commit-Position: refs/heads/master@{#19360}
2017-08-15 19:31:23 +00:00
sprang
cf5d485e14 Add a flags field to video timing extension.
The rtp header extension for video timing shuold have an additional
field for signaling metadata, such as what triggered the extension for
this particular frame. This will allow separating frames select because
of outlier sizes from regular frames, for more accurate stats.

This implementation is backwards compatible in that it can read video
timing extensions without the new flag field, but it always sends with
it included.

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/3000753002
Cr-Commit-Position: refs/heads/master@{#19353}
2017-08-15 12:33:27 +00:00
andersc
c288dab6e2 Ensure UIView.layer is accessed on main thread.
BUG=webrtc:7829

Review-Url: https://codereview.webrtc.org/3002583002
Cr-Commit-Position: refs/heads/master@{#19345}
2017-08-15 07:36:00 +00:00
zstein
03adb7c6dc objc wrapper for PeerConnection::SetBitrate
BUG=webrtc:7395

Review-Url: https://codereview.webrtc.org/2877933004
Cr-Commit-Position: refs/heads/master@{#19294}
2017-08-09 21:29:42 +00:00
sakal
5a2c2b3c35 Remove maximum frametime to allow the camera to adjust based on the lighting conditions.
BUG=webrtc:7777

Review-Url: https://codereview.webrtc.org/2998683002
Cr-Commit-Position: refs/heads/master@{#19281}
2017-08-09 11:10:59 +00:00
deadbeef
6327b6491e Adding deadbeef@ as owner of Objc-C PeerConnection-related headers.
deadbeef@'s team in Kirkland works on the C++ PeerConnection
implementation, and often makes changes to the Java/Obj-C binding code
as new features are added. But the general Obj-C/Android owners are in
Stockholm. So adding deadbeef@ as an owner of this code should help
expedite code reviews for simple API changes.

BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2998443002
Cr-Commit-Position: refs/heads/master@{#19259}
2017-08-07 17:00:42 +00:00
magjed
73c0eb5014 ObjC: Implement HW codecs in ObjC instead of C++
The current ObjC HW encoder is implemented as a C++
webrtc::VideoEncoder. We then wrap it two times in the following way:
webrtc::VideoEncoder -> RTCVideoEncoder -> webrtc::VideoEncoder.
This was originally done to minimize the code diff when landing the
injectable encoder.

This CL removes the first wrapping and implements the ObjC HW encoder
as a RTCVideoEncoder directly. Similarly, the decoder is implemented
as a RTCVideoDecoder directly.

Based on andersc@ CL: https://codereview.webrtc.org/2978623002/.

BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2987413002
Cr-Commit-Position: refs/heads/master@{#19255}
2017-08-07 13:55:28 +00:00
kthelgason
d48f56de1f Destroy compression session instead of reset it on release.
This will prevent one extra initialization of the encoder each time
it's recreated.

BUG=None

Review-Url: https://codereview.webrtc.org/2992233002
Cr-Commit-Position: refs/heads/master@{#19250}
2017-08-04 17:18:43 +00:00
magjed
512bee3dee ObjC: Support non-native frames in encoder
Frames might be non-native, i.e. normal I420 frames, and we should
handle that in the encoder.

BUG=webrtc:7785,webrtc:7924

Review-Url: https://codereview.webrtc.org/2992943002
Cr-Commit-Position: refs/heads/master@{#19245}
2017-08-04 09:05:32 +00:00
magjed
5805c9dbda ObjC: Add implementationName for injectable codecs
BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2987253003
Cr-Commit-Position: refs/heads/master@{#19213}
2017-08-02 12:26:28 +00:00
magjed
5dfac33dfd ObjC: Fix quality scaling for injected encoders
We missed to implement quality scaling in the original CL
https://codereview.webrtc.org/2977213002/. This CL implements it.

Note that the ObjC interface for scalingSettings is slightly different from the C++
interface in that we require explicit QP thresholds to turn quality scaling on, i.e.
we don't provide default values. I think this is more modular as we want to move
codec specific knowledge out from the WebRTC core. I would like to update the
C++ webrtc::VideoEncoder interface to do the same in another CL.

BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2991123002
Cr-Commit-Position: refs/heads/master@{#19202}
2017-08-01 15:07:59 +00:00
magjed
1c12b818b3 ObjC RTCEAGLVideoVideo: Check GL context is non-nil in constructor
RTCEAGLVideoVideo ensureGLContext has been observed to fail because the
GL context is nil. This CL checks the GL context is non-nil in the ctor
instead.

BUG=b/62865840

Review-Url: https://codereview.webrtc.org/2991863002
Cr-Commit-Position: refs/heads/master@{#19189}
2017-07-31 16:11:46 +00:00
magjed
8eab09c77b ObjC style fix for injectable video codecs
This CL fixes some ObjC style issues from CL
https://codereview.webrtc.org/2977213002/.

BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2989803002
Cr-Commit-Position: refs/heads/master@{#19186}
2017-07-31 09:56:35 +00:00
deadbeef
2059bb3e4b Adding Obj-C binding for RTCConfiguration::max_ipv6_networks.
BUG=webrtc:7703

Review-Url: https://codereview.webrtc.org/2988553004
Cr-Commit-Position: refs/heads/master@{#19162}
2017-07-27 01:25:43 +00:00
jtteh
3b673c66a4 Removed file RTCCameraVideoCapturer.mm that isn't needed
Also added post commit review changes.

BUG=webrtc:7898

Review-Url: https://codereview.webrtc.org/2988783002
Cr-Commit-Position: refs/heads/master@{#19145}
2017-07-25 22:48:39 +00:00
jtteh
61b0ed039d [iOS] Fix incorrectly oriented frames when rapidly switching between cameras.
During a call, with both phones in horizontal or landscape mode, rapidly switching between the front and back camera sometimes causes the remote video to be shown upside down.

There seems to be a race condition when setting the rotation based on the orientation of the device and which camera we're using.

So use the active input's camera to check instead of the client state.

BUG=webrtc:7898

Review-Url: https://codereview.webrtc.org/2964703002
Cr-Commit-Position: refs/heads/master@{#19139}
2017-07-25 16:35:55 +00:00
kthelgason
fb143127d7 Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2980173002/ )
Reason for revert:
Relanding after fixing issues with no video.

Original issue's description:
> Revert of Injectable Obj-C video codecs (patchset #2 id:370001 of https://codereview.webrtc.org/2979983002/ )
>
> Reason for revert:
> Still having problems with no video. Reverting.
> Once no video is visible, no video is available from then on even if the callee app is in the foreground.
>
>
> Original issue's description:
> > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2979973002/ )
> >
> > Reason for revert:
> > Fix the broken build file
> >
> > Original issue's description:
> > > Revert of Injectable Obj-C video codecs (patchset #3 id:400001 of https://codereview.webrtc.org/2981583002/ )
> > >
> > > Reason for revert:
> > > Breaks bots. Build file incorrect.
> > >
> > > Original issue's description:
> > > > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2975963002/ )
> > > >
> > > > Reason for revert:
> > > > New CL for fixing the issues
> > > >
> > > > Original issue's description:
> > > > > Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ )
> > > > >
> > > > > Reason for revert:
> > > > > Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future.
> > > > >
> > > > > Original issue's description:
> > > > > > Injectable Obj-C video codecs
> > > > > >
> > > > > > Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264
> > > > > > (wrapping the VideoToolbox codec).
> > > > > >
> > > > > > Some notes / things left to do:
> > > > > >   - There are some hard-coded references to codec types that are supported by
> > > > > >     webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc
> > > > > >     since we need to convert to/from these types in ObjCVideoEncoder/Decoder.
> > > > > >     These types would need to be more codec agnostic to avoid this.
> > > > > >   - Most interfaces are borrowed from the design document for injectable
> > > > > >     codecs in Android. Some data in the corresponding C++ classes is discarded
> > > > > >     when converting to the Obj-C version, since it has fewer fields. I have not
> > > > > >     verified whether all data that we do keep is needed, or whether we might be
> > > > > >     losing anything useful in these conversions.
> > > > > >   - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264
> > > > > >     classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder.
> > > > > >     Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/
> > > > > >     Decoder wrapper classes.
> > > > > >   - List the injected codec factory's supported codecs in the list of codecs in
> > > > > >     AppRTCMobile.
> > > > > >
> > > > > > BUG=webrtc:7924
> > > > > > R=magjed@webrtc.org
> > > > > >
> > > > > > Review-Url: https://codereview.webrtc.org/2966023002 .
> > > > > > Cr-Commit-Position: refs/heads/master@{#18928}
> > > > > > Committed: a0349c138d
> > > > >
> > > > > TBR=magjed@webrtc.org,andersc@webrtc.org
> > > > > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > > > > BUG=webrtc:7924
> > > > > NOTRY=true
> > > > >
> > > > > Review-Url: https://codereview.webrtc.org/2975963002
> > > > > Cr-Commit-Position: refs/heads/master@{#18979}
> > > > > Committed: 1095ada7ad
> > > >
> > > > R=magjed@webrtc.org
> > > > TBR=tkchin@webrtc.org
> > > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > > NOPRESUBMIT=true
> > > > NOTREECHECKS=true
> > > > NOTRY=true
> > > > BUG=webrtc:7924
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2981583002 .
> > > > Cr-Commit-Position: refs/heads/master@{#19002}
> > > > Committed: a5f1de1e65
> > >
> > > TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,andersc@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:7924
> > >
> > > Review-Url: https://codereview.webrtc.org/2979973002
> > > Cr-Commit-Position: refs/heads/master@{#19004}
> > > Committed: 81d40ee149
> >
> > TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,sprang@webrtc.org
> > BUG=webrtc:7924
> >
> > Review-Url: https://codereview.webrtc.org/2979983002
> > Cr-Commit-Position: refs/heads/master@{#19005}
> > Committed: 732a3437da
>
> TBR=magjed@webrtc.org,tkchin@webrtc.org,sprang@webrtc.org,haysc@webrtc.org,andersc@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7924
>
> Review-Url: https://codereview.webrtc.org/2980173002
> Cr-Commit-Position: refs/heads/master@{#19036}
> Committed: 860f729816

TBR=magjed@webrtc.org,tkchin@webrtc.org,sprang@webrtc.org,haysc@webrtc.org,andersc@webrtc.org,jtteh@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2977213002
Cr-Commit-Position: refs/heads/master@{#19135}
2017-07-25 14:55:58 +00:00
oprypin
d0727bfd45 Fix NSInteger formatting warning from clang 6
"error: values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead"
Casting to long is already a common practice in the code base.

This has been blocking the Chromium roll which contains an update to clang 6.0.0

BUG=None

Review-Url: https://codereview.webrtc.org/2987693002
Cr-Commit-Position: refs/heads/master@{#19127}
2017-07-25 09:04:58 +00:00
jtteh
860f729816 Revert of Injectable Obj-C video codecs (patchset #2 id:370001 of https://codereview.webrtc.org/2979983002/ )
Reason for revert:
Still having problems with no video. Reverting.
Once no video is visible, no video is available from then on even if the callee app is in the foreground.

Original issue's description:
> Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2979973002/ )
>
> Reason for revert:
> Fix the broken build file
>
> Original issue's description:
> > Revert of Injectable Obj-C video codecs (patchset #3 id:400001 of https://codereview.webrtc.org/2981583002/ )
> >
> > Reason for revert:
> > Breaks bots. Build file incorrect.
> >
> > Original issue's description:
> > > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2975963002/ )
> > >
> > > Reason for revert:
> > > New CL for fixing the issues
> > >
> > > Original issue's description:
> > > > Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ )
> > > >
> > > > Reason for revert:
> > > > Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future.
> > > >
> > > > Original issue's description:
> > > > > Injectable Obj-C video codecs
> > > > >
> > > > > Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264
> > > > > (wrapping the VideoToolbox codec).
> > > > >
> > > > > Some notes / things left to do:
> > > > >   - There are some hard-coded references to codec types that are supported by
> > > > >     webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc
> > > > >     since we need to convert to/from these types in ObjCVideoEncoder/Decoder.
> > > > >     These types would need to be more codec agnostic to avoid this.
> > > > >   - Most interfaces are borrowed from the design document for injectable
> > > > >     codecs in Android. Some data in the corresponding C++ classes is discarded
> > > > >     when converting to the Obj-C version, since it has fewer fields. I have not
> > > > >     verified whether all data that we do keep is needed, or whether we might be
> > > > >     losing anything useful in these conversions.
> > > > >   - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264
> > > > >     classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder.
> > > > >     Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/
> > > > >     Decoder wrapper classes.
> > > > >   - List the injected codec factory's supported codecs in the list of codecs in
> > > > >     AppRTCMobile.
> > > > >
> > > > > BUG=webrtc:7924
> > > > > R=magjed@webrtc.org
> > > > >
> > > > > Review-Url: https://codereview.webrtc.org/2966023002 .
> > > > > Cr-Commit-Position: refs/heads/master@{#18928}
> > > > > Committed: a0349c138d
> > > >
> > > > TBR=magjed@webrtc.org,andersc@webrtc.org
> > > > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > > > BUG=webrtc:7924
> > > > NOTRY=true
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2975963002
> > > > Cr-Commit-Position: refs/heads/master@{#18979}
> > > > Committed: 1095ada7ad
> > >
> > > R=magjed@webrtc.org
> > > TBR=tkchin@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:7924
> > >
> > > Review-Url: https://codereview.webrtc.org/2981583002 .
> > > Cr-Commit-Position: refs/heads/master@{#19002}
> > > Committed: a5f1de1e65
> >
> > TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,andersc@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:7924
> >
> > Review-Url: https://codereview.webrtc.org/2979973002
> > Cr-Commit-Position: refs/heads/master@{#19004}
> > Committed: 81d40ee149
>
> TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,sprang@webrtc.org
> BUG=webrtc:7924
>
> Review-Url: https://codereview.webrtc.org/2979983002
> Cr-Commit-Position: refs/heads/master@{#19005}
> Committed: 732a3437da

TBR=magjed@webrtc.org,tkchin@webrtc.org,sprang@webrtc.org,haysc@webrtc.org,andersc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2980173002
Cr-Commit-Position: refs/heads/master@{#19036}
2017-07-15 02:49:58 +00:00
Steve Anton
d295e407da Reinstate "iOS - Add iceRegatherIntervalRange."
This reverts commit 93adc3209b5ff10adaba54d5eab6b53bc2780685.

Reverted originally because it depended on a CL which was reverted.
That CL has been reinstated in:

https: //chromium-review.googlesource.com/#/c/572070/
Bug: webrtc:7969
Change-Id: I608bbeaaba02e84908433c8260cf236df0307a97
Reviewed-on: https://chromium-review.googlesource.com/572405
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19035}
2017-07-14 23:55:48 +00:00
magjed
93adc3209b Revert of iOS - Add iceRegatherIntervalRange. (patchset #1 id:1 of https://codereview.webrtc.org/2976953002/ )
Reason for revert:
Blocks reverting:
https://chromium-review.googlesource.com/c/562505

Original issue's description:
> iOS - Add iceRegatherIntervalRange.
>
> BUG=webrtc:7969
>
> Review-Url: https://codereview.webrtc.org/2976953002
> Cr-Commit-Position: refs/heads/master@{#18997}
> Committed: 5e0ed36d74

TBR=haysc@webrtc.org,steveanton@webrtc.org,tkchin@webrtc.org

NOTRY=TRUE
BUG=webrtc:7969

Review-Url: https://codereview.webrtc.org/2979993003
Cr-Commit-Position: refs/heads/master@{#19023}
2017-07-14 14:59:05 +00:00
andersc
732a3437da Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2979973002/ )
Reason for revert:
Fix the broken build file

Original issue's description:
> Revert of Injectable Obj-C video codecs (patchset #3 id:400001 of https://codereview.webrtc.org/2981583002/ )
>
> Reason for revert:
> Breaks bots. Build file incorrect.
>
> Original issue's description:
> > Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2975963002/ )
> >
> > Reason for revert:
> > New CL for fixing the issues
> >
> > Original issue's description:
> > > Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ )
> > >
> > > Reason for revert:
> > > Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future.
> > >
> > > Original issue's description:
> > > > Injectable Obj-C video codecs
> > > >
> > > > Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264
> > > > (wrapping the VideoToolbox codec).
> > > >
> > > > Some notes / things left to do:
> > > >   - There are some hard-coded references to codec types that are supported by
> > > >     webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc
> > > >     since we need to convert to/from these types in ObjCVideoEncoder/Decoder.
> > > >     These types would need to be more codec agnostic to avoid this.
> > > >   - Most interfaces are borrowed from the design document for injectable
> > > >     codecs in Android. Some data in the corresponding C++ classes is discarded
> > > >     when converting to the Obj-C version, since it has fewer fields. I have not
> > > >     verified whether all data that we do keep is needed, or whether we might be
> > > >     losing anything useful in these conversions.
> > > >   - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264
> > > >     classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder.
> > > >     Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/
> > > >     Decoder wrapper classes.
> > > >   - List the injected codec factory's supported codecs in the list of codecs in
> > > >     AppRTCMobile.
> > > >
> > > > BUG=webrtc:7924
> > > > R=magjed@webrtc.org
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2966023002 .
> > > > Cr-Commit-Position: refs/heads/master@{#18928}
> > > > Committed: a0349c138d
> > >
> > > TBR=magjed@webrtc.org,andersc@webrtc.org
> > > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > > BUG=webrtc:7924
> > > NOTRY=true
> > >
> > > Review-Url: https://codereview.webrtc.org/2975963002
> > > Cr-Commit-Position: refs/heads/master@{#18979}
> > > Committed: 1095ada7ad
> >
> > R=magjed@webrtc.org
> > TBR=tkchin@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:7924
> >
> > Review-Url: https://codereview.webrtc.org/2981583002 .
> > Cr-Commit-Position: refs/heads/master@{#19002}
> > Committed: a5f1de1e65
>
> TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,andersc@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7924
>
> Review-Url: https://codereview.webrtc.org/2979973002
> Cr-Commit-Position: refs/heads/master@{#19004}
> Committed: 81d40ee149

TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,sprang@webrtc.org
BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2979983002
Cr-Commit-Position: refs/heads/master@{#19005}
2017-07-13 15:59:07 +00:00
sprang
81d40ee149 Revert of Injectable Obj-C video codecs (patchset #3 id:400001 of https://codereview.webrtc.org/2981583002/ )
Reason for revert:
Breaks bots. Build file incorrect.

Original issue's description:
> Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2975963002/ )
>
> Reason for revert:
> New CL for fixing the issues
>
> Original issue's description:
> > Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ )
> >
> > Reason for revert:
> > Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future.
> >
> > Original issue's description:
> > > Injectable Obj-C video codecs
> > >
> > > Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264
> > > (wrapping the VideoToolbox codec).
> > >
> > > Some notes / things left to do:
> > >   - There are some hard-coded references to codec types that are supported by
> > >     webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc
> > >     since we need to convert to/from these types in ObjCVideoEncoder/Decoder.
> > >     These types would need to be more codec agnostic to avoid this.
> > >   - Most interfaces are borrowed from the design document for injectable
> > >     codecs in Android. Some data in the corresponding C++ classes is discarded
> > >     when converting to the Obj-C version, since it has fewer fields. I have not
> > >     verified whether all data that we do keep is needed, or whether we might be
> > >     losing anything useful in these conversions.
> > >   - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264
> > >     classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder.
> > >     Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/
> > >     Decoder wrapper classes.
> > >   - List the injected codec factory's supported codecs in the list of codecs in
> > >     AppRTCMobile.
> > >
> > > BUG=webrtc:7924
> > > R=magjed@webrtc.org
> > >
> > > Review-Url: https://codereview.webrtc.org/2966023002 .
> > > Cr-Commit-Position: refs/heads/master@{#18928}
> > > Committed: a0349c138d
> >
> > TBR=magjed@webrtc.org,andersc@webrtc.org
> > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > BUG=webrtc:7924
> > NOTRY=true
> >
> > Review-Url: https://codereview.webrtc.org/2975963002
> > Cr-Commit-Position: refs/heads/master@{#18979}
> > Committed: 1095ada7ad
>
> R=magjed@webrtc.org
> TBR=tkchin@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7924
>
> Review-Url: https://codereview.webrtc.org/2981583002 .
> Cr-Commit-Position: refs/heads/master@{#19002}
> Committed: a5f1de1e65

TBR=magjed@webrtc.org,tkchin@webrtc.org,jtteh@webrtc.org,andersc@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2979973002
Cr-Commit-Position: refs/heads/master@{#19004}
2017-07-13 14:09:39 +00:00
Anders Carlsson
a5f1de1e65 Reland of Injectable Obj-C video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2975963002/ )
Reason for revert:
New CL for fixing the issues

Original issue's description:
> Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ )
>
> Reason for revert:
> Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future.
>
> Original issue's description:
> > Injectable Obj-C video codecs
> >
> > Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264
> > (wrapping the VideoToolbox codec).
> >
> > Some notes / things left to do:
> >   - There are some hard-coded references to codec types that are supported by
> >     webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc
> >     since we need to convert to/from these types in ObjCVideoEncoder/Decoder.
> >     These types would need to be more codec agnostic to avoid this.
> >   - Most interfaces are borrowed from the design document for injectable
> >     codecs in Android. Some data in the corresponding C++ classes is discarded
> >     when converting to the Obj-C version, since it has fewer fields. I have not
> >     verified whether all data that we do keep is needed, or whether we might be
> >     losing anything useful in these conversions.
> >   - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264
> >     classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder.
> >     Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/
> >     Decoder wrapper classes.
> >   - List the injected codec factory's supported codecs in the list of codecs in
> >     AppRTCMobile.
> >
> > BUG=webrtc:7924
> > R=magjed@webrtc.org
> >
> > Review-Url: https://codereview.webrtc.org/2966023002 .
> > Cr-Commit-Position: refs/heads/master@{#18928}
> > Committed: a0349c138d
>
> TBR=magjed@webrtc.org,andersc@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7924
> NOTRY=true
>
> Review-Url: https://codereview.webrtc.org/2975963002
> Cr-Commit-Position: refs/heads/master@{#18979}
> Committed: 1095ada7ad

R=magjed@webrtc.org
TBR=tkchin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2981583002 .
Cr-Commit-Position: refs/heads/master@{#19002}
2017-07-13 14:03:58 +00:00
tkchin
5e0ed36d74 iOS - Add iceRegatherIntervalRange.
BUG=webrtc:7969

Review-Url: https://codereview.webrtc.org/2976953002
Cr-Commit-Position: refs/heads/master@{#18997}
2017-07-13 09:17:43 +00:00
tkchin
1095ada7ad Revert of Injectable Obj-C video codecs (patchset #8 id:140001 of https://codereview.webrtc.org/2966023002/ )
Reason for revert:
Causes no video in certain scenarios. Please come up with a test plan or unit test to prevent such problems in the future.

Original issue's description:
> Injectable Obj-C video codecs
>
> Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264
> (wrapping the VideoToolbox codec).
>
> Some notes / things left to do:
>   - There are some hard-coded references to codec types that are supported by
>     webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc
>     since we need to convert to/from these types in ObjCVideoEncoder/Decoder.
>     These types would need to be more codec agnostic to avoid this.
>   - Most interfaces are borrowed from the design document for injectable
>     codecs in Android. Some data in the corresponding C++ classes is discarded
>     when converting to the Obj-C version, since it has fewer fields. I have not
>     verified whether all data that we do keep is needed, or whether we might be
>     losing anything useful in these conversions.
>   - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264
>     classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder.
>     Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/
>     Decoder wrapper classes.
>   - List the injected codec factory's supported codecs in the list of codecs in
>     AppRTCMobile.
>
> BUG=webrtc:7924
> R=magjed@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2966023002 .
> Cr-Commit-Position: refs/heads/master@{#18928}
> Committed: a0349c138d

TBR=magjed@webrtc.org,andersc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7924
NOTRY=true

Review-Url: https://codereview.webrtc.org/2975963002
Cr-Commit-Position: refs/heads/master@{#18979}
2017-07-11 22:46:31 +00:00
ehmaldonado
370dd47973 Revert of Remove remains of webrtc/base (patchset #7 id:120001 of https://codereview.webrtc.org/2973183002/ )
Reason for revert:
Breaks lots of downstream projects.

Original issue's description:
> Remove remains of webrtc/base
>
> All downstream code have been updated to the new location.
>
> In PRESUBMIT.py:
> * Remove webrtc/rtc_base from CPP_BLACKLIST
> * Add webrtc/rtc_base to LEGACY_API_DIRS
>
> Fix some duplicated paths in
> webrtc/modules/audio_processing/test/conversational_speech/BUILD.gn
>
> BUG=webrtc:7634
> TBR=kwiberg@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2973183002
> Cr-Commit-Position: refs/heads/master@{#18948}
> Committed:
9483b49baf

TBR=kwiberg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7634

Review-Url: https://codereview.webrtc.org/2976633002
Cr-Commit-Position: refs/heads/master@{#18949}
2017-07-10 12:58:42 +00:00
ehmaldonado
9483b49baf Remove remains of webrtc/base
All downstream code have been updated to the new location.

In PRESUBMIT.py:
* Remove webrtc/rtc_base from CPP_BLACKLIST
* Add webrtc/rtc_base to LEGACY_API_DIRS

Fix some duplicated paths in
webrtc/modules/audio_processing/test/conversational_speech/BUILD.gn

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

Review-Url: https://codereview.webrtc.org/2973183002
Cr-Commit-Position: refs/heads/master@{#18948}
2017-07-10 11:50:54 +00:00
Anders Carlsson
a0349c138d Injectable Obj-C video codecs
Initial CL for this effort, with a working RTCVideoEncoder/Decoder for H264
(wrapping the VideoToolbox codec).

Some notes / things left to do:
  - There are some hard-coded references to codec types that are supported by
    webrtc::VideoCodec, cricket::VideoCodec, webrtc::CodecSpecificInfo etc
    since we need to convert to/from these types in ObjCVideoEncoder/Decoder.
    These types would need to be more codec agnostic to avoid this.
  - Most interfaces are borrowed from the design document for injectable
    codecs in Android. Some data in the corresponding C++ classes is discarded
    when converting to the Obj-C version, since it has fewer fields. I have not
    verified whether all data that we do keep is needed, or whether we might be
    losing anything useful in these conversions.
  - Implement the VideoToolbox codec code directly in the RTCVideoEncoderH264
    classes, instead of wrapping webrtc::H264VideoToolboxEncoder / decoder.
    Eliminates converting between ObjC/C++ types outside the ObjCVideoEncoder/
    Decoder wrapper classes.
  - List the injected codec factory's supported codecs in the list of codecs in
    AppRTCMobile.

BUG=webrtc:7924
R=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2966023002 .
Cr-Commit-Position: refs/heads/master@{#18928}
2017-07-07 11:19:14 +00:00
ehmaldonado
eaaae9e91b base->rtc_base: Update .c, .mm and .java files.
TBR=kwiberg@webrtc.org
BUG=webrtc:7634

Review-Url: https://codereview.webrtc.org/2974613003
Cr-Commit-Position: refs/heads/master@{#18926}
2017-07-07 10:09:51 +00:00
Edward Lemur
c20978e581 Rename webrtc/base -> webrtc/rtc_base
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.
NOTRY=True
NOTREECHECKS=True
TBR=kwiberg@webrtc.org, kjellander@webrtc.org

Bug: webrtc:7634
Change-Id: I3cca0fbaa807b563c95979cccd6d1bec32055f36
Reviewed-on: https://chromium-review.googlesource.com/562156
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18919}
2017-07-06 19:11:40 +00:00
Henrik Kjellander
a80c16a67c Revert "Update includes for webrtc/{base => rtc_base} rename (2/3)"
This reverts commit c3771cc4d37f5573fe53b7c7cff295a4f0f9560f.
(breaks downstream internal project)

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2972463002 .
Cr-Commit-Position: refs/heads/master@{#18873}
2017-07-01 14:48:18 +00:00
kjellander
c3771cc4d3 Update includes for webrtc/{base => rtc_base} rename (2/3)
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

BUG=webrtc:7634
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.

Review-Url: https://codereview.webrtc.org/2969623003
Cr-Commit-Position: refs/heads/master@{#18870}
2017-06-30 20:42:44 +00:00
zhihuang
a4c113afe1 Support building WebRTC without audio and video for IOS.
Reorganized the targets in webrtc/sdk/BUILD.gn so that the applications which use
WebRTC DataChannel only can depend on the "peerconnection_factory_no_media"
instead of "rtc_sdk_objc" to reduce the binary size.

Provided a no-media implementation of RTCPeerConnectionFactory using the macro
"HAVE_NO_MEDIA".

BUG=webrtc:7613

Review-Url: https://codereview.webrtc.org/2944643002
Cr-Commit-Position: refs/heads/master@{#18819}
2017-06-28 21:05:44 +00:00
Anders Carlsson
121ea329ba Notify delegates about audio glitches in real time
Bug: webrtc:7819
Change-Id: I72ec77d216ce386dd45aef68eeac833b3a75b670
Reviewed-on: https://chromium-review.googlesource.com/543239
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18778}
2017-06-27 09:43:27 +00:00