Commit Graph

15338 Commits

Author SHA1 Message Date
8c2ec19618 Revert of Temporarily remove ios_api_framework from the commit queue. (patchset #2 id:40001 of https://codereview.webrtc.org/2341113004/ )
Reason for revert:
The commit bot has been green for a while: https://build.chromium.org/p/client.webrtc/builders/iOS%20API%20Framework%20Builder/

Original issue's description:
> Temporarily remove ios_api_framework from the commit queue.
>
> Temporarily remove ios_api_framework until [1] is ported to GN.
> This script is blocking Chromium rolls
>
> [1]: https://cs.chromium.org/chromium/src/third_party/webrtc/build/ios/build_ios_libs.sh?sq=package:chromium&dr=C
>
> NOTRY=True
> TBR=kjellander@webrtc.org
> BUG=webrtc:6372
>
> Committed: https://crrev.com/3d2ea1d2b363f2f65de0ca12d100040385db856b
> Cr-Commit-Position: refs/heads/master@{#14266}

TBR=ehmaldonado@webrtc.org
NOTRY=True
BUG=webrtc:6372

Review-Url: https://codereview.webrtc.org/2494403002
Cr-Commit-Position: refs/heads/master@{#15056}
2016-11-14 07:31:52 +00:00
931e9758b1 Roll chromium_revision fd046d62bd..1a6cf4da7c (431804:431807)
Change log: fd046d62bd..1a6cf4da7c
Full diff: fd046d62bd..1a6cf4da7c

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2496053002
Cr-Commit-Position: refs/heads/master@{#15055}
2016-11-13 19:24:02 +00:00
59695e596b Roll chromium_revision b3671bcbd9..fd046d62bd (431798:431804)
Change log: b3671bcbd9..fd046d62bd
Full diff: b3671bcbd9..fd046d62bd

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2496033002
Cr-Commit-Position: refs/heads/master@{#15054}
2016-11-13 11:23:29 +00:00
e5d3e7efc6 Roll chromium_revision 7a2fab5553..b3671bcbd9 (431793:431798)
Change log: 7a2fab5553..b3671bcbd9
Full diff: 7a2fab5553..b3671bcbd9

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2501463002
Cr-Commit-Position: refs/heads/master@{#15053}
2016-11-13 03:30:50 +00:00
d73cbbf06d Roll chromium_revision 4762e7cc7d..7a2fab5553 (431782:431793)
Change log: 4762e7cc7d..7a2fab5553
Full diff: 4762e7cc7d..7a2fab5553

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2497493007
Cr-Commit-Position: refs/heads/master@{#15052}
2016-11-12 19:29:25 +00:00
f823ededce Negotiate H264 profiles in SDP
This CL will start to distinguish H264 profiles during SDP negotiation.
We currently don't look at the H264 profile at all and assume they are
all Constrained Baseline Level 3.1. This CL will start to check profiles
for equality when matching, and will generate the correct answer H264
level.

Each local supported H264 profile needs to be listed explicitly in the
list of local supported codecs, even if they are redundant. For example,
Baseline profile should be listed explicitly even though another profile
that is a superset of Baseline is also listed. The reason for this is to
simplify the code and avoid profile intersection during matching. So
VideoCodec::Matches will check for profile equality, and not check if
one codec is a subset of the other. This also leads to the nice property
that VideoCodec::Matches is symmetric, i.e. iif a.Matches(b) then
b.Matches(a).

BUG=webrtc:6337
TBR=tkchin@webrtc.org

Review-Url: https://codereview.webrtc.org/2483173002
Cr-Commit-Position: refs/heads/master@{#15051}
2016-11-12 17:53:08 +00:00
13ceeeadfc Revert of H.264 packetization mode 0 (try 2) (patchset #27 id:520001 of https://codereview.webrtc.org/2337453002/ )
Reason for revert:
Broke a lot of tests in chromium.webrtc browser_tests. See e.g. https://build.chromium.org/p/chromium.webrtc/builders/Mac%20Tester/builds/62228 and https://build.chromium.org/p/chromium.webrtc/builders/Win8%20Tester/builds/30102.
[ RUN      ] WebRtcVideoQualityBrowserTests/WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityH264/1
...
#
# Fatal error in e:\b\c\b\win_builder\src\third_party\webrtc\modules\rtp_rtcp\source\rtp_format_h264.cc, line 170
# last system error: 0
# Check failed: packetization_mode_ == kH264PacketizationMode1 (0 vs. 2)
#

Original issue's description:
> Implement H.264 packetization mode 0.
>
> This approach extends the H.264 specific information with
> a packetization mode enum.
>
> Status: Parameter is in code. No way to set it yet.
>
> Rebase of CL  2009213002
>
> BUG=600254
>
> Committed: https://crrev.com/3bba101f36483b8030a693dfbc93af736d1dba68
> Cr-Commit-Position: refs/heads/master@{#15032}

TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,hta@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=600254
NOPRESUBMIT=true

Review-Url: https://codereview.webrtc.org/2500743002
Cr-Commit-Position: refs/heads/master@{#15050}
2016-11-12 16:54:50 +00:00
b73a75195e Roll chromium_revision 13d2c57f10..4762e7cc7d (431754:431782)
Change log: 13d2c57f10..4762e7cc7d
Full diff: 13d2c57f10..4762e7cc7d

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2495163002
Cr-Commit-Position: refs/heads/master@{#15049}
2016-11-12 11:29:37 +00:00
e7d17f798f Roll chromium_revision 51641c7dde..13d2c57f10 (431606:431754)
Change log: 51641c7dde..13d2c57f10
Full diff: 51641c7dde..13d2c57f10

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2492423003
Cr-Commit-Position: refs/heads/master@{#15048}
2016-11-12 03:34:11 +00:00
372719b577 Remove screen_capturer_mock_objects.h
This is a trivial change to remove MockScreenCapturerCallback, and use
MockDesktopCapturerCallback to replace it.

BUG=webrtc:6513

Review-Url: https://codereview.webrtc.org/2494013003
Cr-Commit-Position: refs/heads/master@{#15047}
2016-11-12 01:18:39 +00:00
3074096816 Crash in DirectX capturer
A tiny but critical change to avoid a crash failure in DirectX capturer.
A good news is this failure is caught by ScreenCapturer integration tests.

BUG=314516

Review-Url: https://codereview.webrtc.org/2494893002
Cr-Commit-Position: refs/heads/master@{#15046}
2016-11-12 00:54:22 +00:00
c9a6e4a67e CroppingWindowCapturer::CreateCapturer() function to replace raw pointer version
The old CroppingWindowCapturer::Create() function returns a raw pointer, which
cannot explain the ownership.
So this change adds a CreateCapturer() function to return a unique_ptr.

BUG=webrtc:6513

Review-Url: https://codereview.webrtc.org/2496993003
Cr-Commit-Position: refs/heads/master@{#15045}
2016-11-11 23:13:39 +00:00
b7510d3f49 Roll chromium_revision 4cee38b9a3..51641c7dde (431537:431606)
Change log: 4cee38b9a3..51641c7dde
Full diff: 4cee38b9a3..51641c7dde

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2494173002
Cr-Commit-Position: refs/heads/master@{#15044}
2016-11-11 19:29:26 +00:00
74f9d981d0 Remove unused warning suppression
We want to keep these warnings on. They were switched off temporarily
to unblock chromium roll.

BUG=webrtc:6520

Review-Url: https://codereview.webrtc.org/2493873005
Cr-Commit-Position: refs/heads/master@{#15043}
2016-11-11 14:09:29 +00:00
hta
2814598961 Revert of Declare VideoCodec.codec_specific_info private (patchset #1 id:1 of https://codereview.webrtc.org/2494683006/ )
Reason for revert:
Another downstream error.

Original issue's description:
> Reland of Declare VideoCodec.codec_specific_info private (patchset #1 id:1 of https://codereview.webrtc.org/2491933002/ )
>
> Reason for revert:
> Relanding, now that downstream issues have been fixed.
>
> Original issue's description:
> > Revert of Declare VideoCodec.codec_specific_info private (patchset #5 id:80001 of https://codereview.webrtc.org/2452963002/ )
> >
> > Reason for revert:
> > Broke a google3 build
> >
> > Original issue's description:
> > > Declare VideoCodec.codec_specific_info private
> > >
> > > This completes the privatization of the codec specific
> > > information in VideoCodec.
> > >
> > > BUG=webrtc:6603
> > >
> > > Committed: https://crrev.com/792738640234d81c916ac4458ac72286cb2548a4
> > > Cr-Commit-Position: refs/heads/master@{#15013}
> >
> > TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:6603
> >
> > Committed: https://crrev.com/7fe6db91d99cf6d43874651bcca56092cf869e2f
> > Cr-Commit-Position: refs/heads/master@{#15027}
>
> TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6603
>
> Committed: https://crrev.com/c63fb3a0d3b9b2081a6a5e6e238d8ee595dca2a2
> Cr-Commit-Position: refs/heads/master@{#15041}

TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6603

Review-Url: https://codereview.webrtc.org/2491613005
Cr-Commit-Position: refs/heads/master@{#15042}
2016-11-11 14:03:26 +00:00
hta
c63fb3a0d3 Reland of Declare VideoCodec.codec_specific_info private (patchset #1 id:1 of https://codereview.webrtc.org/2491933002/ )
Reason for revert:
Relanding, now that downstream issues have been fixed.

Original issue's description:
> Revert of Declare VideoCodec.codec_specific_info private (patchset #5 id:80001 of https://codereview.webrtc.org/2452963002/ )
>
> Reason for revert:
> Broke a google3 build
>
> Original issue's description:
> > Declare VideoCodec.codec_specific_info private
> >
> > This completes the privatization of the codec specific
> > information in VideoCodec.
> >
> > BUG=webrtc:6603
> >
> > Committed: https://crrev.com/792738640234d81c916ac4458ac72286cb2548a4
> > Cr-Commit-Position: refs/heads/master@{#15013}
>
> TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6603
>
> Committed: https://crrev.com/7fe6db91d99cf6d43874651bcca56092cf869e2f
> Cr-Commit-Position: refs/heads/master@{#15027}

TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6603

Review-Url: https://codereview.webrtc.org/2494683006
Cr-Commit-Position: refs/heads/master@{#15041}
2016-11-11 13:44:53 +00:00
b05fa2466a Optimize FindCodecById and ReferencedCodecsMatch
These functions currently copy cricket::Codec classes by value which is
expensive since they contain e.g. std::map<std::string, std::string>
containers with parameters. This CL avoids copying them altogether.

BUG=webrtc:6337

Review-Url: https://codereview.webrtc.org/2493733003
Cr-Commit-Position: refs/heads/master@{#15040}
2016-11-11 12:00:20 +00:00
acd935b540 Reland of Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame. (patchset #1 id:1 of https://codereview.webrtc.org/2471783002/ )
Reason for revert:
Relanding after known downstream breakages have been fixed.

Original issue's description:
> Revert of Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame. (patchset #7 id:120001 of https://codereview.webrtc.org/2383093002/ )
>
> Reason for revert:
> Breaks chrome, see https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/19019/steps/compile/logs/stdio
>
> Analysis: Chrome uses cricket::VideoFrame, without explicitly including webrtc/media/base/videoframe.h, and breaks when that file is no longer included by any other webrtc headers. Will reland after updating Chrome.
>
> Original issue's description:
> > Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame.
> >
> > Replaced with webrtc::VideoFrame.
> >
> > TBR=mflodman@webrtc.org
> > BUG=webrtc:5682
> >
> > Committed: https://crrev.com/45c8b8940042bd2574c39920804ade8343cefdba
> > Cr-Commit-Position: refs/heads/master@{#14885}
>
> TBR=perkj@webrtc.org,pthatcher@webrtc.org,tkchin@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5682
>
> Committed: https://crrev.com/7341ab8e2505c9763d208e069bda269018357e7d
> Cr-Commit-Position: refs/heads/master@{#14886}

TBR=perkj@webrtc.org,pthatcher@webrtc.org,tkchin@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/2487633002
Cr-Commit-Position: refs/heads/master@{#15039}
2016-11-11 11:55:19 +00:00
e6f98c7a37 Remove RED/RTX workaround from sender/receiver and VideoEngine2.
In older Chrome versions, the associated payload type in the RTX header
of retransmitted packets was always set to be the original media payload type,
regardless of the actual payload type of the packet. This meant that packets
encapsulated with RED headers had incorrect payload type information in the
RTX header. Due to an assumption in the receiver, this incorrect payload type
information would effectively be undone, leading to a working system.

Albeit working, this behaviour was undesired, and thus removed. In the interim,
several workarounds were introduced to not destroy interop between old and
new Chrome versions:
  (1) https://codereview.webrtc.org/1649493004
      - If no payload type mapping existed for RED over RTX, the payload type
        of the underlying media would be used.
      - If RED had been negotiated, received RTX packets would always be
        assumed to contain RED.
  (2) https://codereview.webrtc.org/1964473002
      - If RED was removed from the remote description answer, it would be
        disabled in the local receiver as well.
  (3) https://codereview.webrtc.org/2033763002
      - If RED was negotiated in the SDP, it would always be used, regardless
        if ULPFEC was negotiated and used, or not.

Since the Chrome versions that exhibited the original bug now are very old,
this CL removes the workarounds from (1) and (2). In particular, after this
change, we will have the following behaviour:
  - We assume that a payload type mapping for RED over RTX always is set.
    If this is not the case, the RTX packet is not sent.
  - The associated payload type of received RTX packets will always be obeyed.
  - The (non)-existence of RED in the remote description does not affect the
    local receiver.
The workaround in (3) still needs to exist, in order to interop with receivers
that did not have the workarounds in (1) and (2) removed. The change in (3)
can be removed in a couple of Chrome versions.

TESTED=Using AppRTC between patched Chrome (connected to ethernet) and standard Chrome M54 (connected to lossy internal Google WiFi), with and without FEC turned off using AppRTC flag. Also using "Munge SDP" sample on patched Chrome over loopback interface, with 100ms delay and 5% packet loss simulated using tc.
BUG=webrtc:6650

Review-Url: https://codereview.webrtc.org/2469093003
Cr-Commit-Position: refs/heads/master@{#15038}
2016-11-11 11:28:38 +00:00
ea51d081c8 Roll chromium_revision 09f4d43e57..4cee38b9a3 (431473:431537)
Change log: 09f4d43e57..4cee38b9a3
Full diff: 09f4d43e57..4cee38b9a3

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2499493003
Cr-Commit-Position: refs/heads/master@{#15037}
2016-11-11 11:24:24 +00:00
0b3a6389c0 Ensures that AudioDeviceBuffer::StopPeriodicLogging works as intended.
Minor fix to resolve https://bugs.chromium.org/p/webrtc/issues/detail?id=6560&desc=2#c5

BUG=webrtc:6560
NOTRY=TRUE

Review-Url: https://codereview.webrtc.org/2496543002
Cr-Commit-Position: refs/heads/master@{#15036}
2016-11-11 10:28:58 +00:00
2a615fc760 Reduce taking locks in RTPSenderVideo::SendVideo
BUG=None

Review-Url: https://codereview.webrtc.org/2492843002
Cr-Commit-Position: refs/heads/master@{#15035}
2016-11-11 10:27:40 +00:00
e918a135ed MB: Add new Win8 and Win10 bots.
BUG=chromium:658652
TBR=ehmaldonado@webrtc.org

Review URL: https://codereview.webrtc.org/2494573004 .

Cr-Commit-Position: refs/heads/master@{#15034}
2016-11-11 07:07:22 +00:00
98903d2f5e Remove ScreenCapturer and WindowCapturer
This change removes ScreenCapturer and WindowCapturer from WebRTC.

BUG=webrtc:6513

Review-Url: https://codereview.webrtc.org/2490063002
Cr-Commit-Position: refs/heads/master@{#15033}
2016-11-11 05:57:19 +00:00
hta
3bba101f36 Implement H.264 packetization mode 0.
This approach extends the H.264 specific information with
a packetization mode enum.

Status: Parameter is in code. No way to set it yet.

Rebase of CL  2009213002

BUG=600254

Review-Url: https://codereview.webrtc.org/2337453002
Cr-Commit-Position: refs/heads/master@{#15032}
2016-11-11 05:50:05 +00:00
e95f5bf69d Roll chromium_revision 3a46cc72d5..09f4d43e57 (431304:431473)
Change log: 3a46cc72d5..09f4d43e57
Full diff: 3a46cc72d5..09f4d43e57

Changed dependencies:
* src/tools/swarming_client: 380e326623..ebc8dab6f8
DEPS diff: 3a46cc72d5..09f4d43e57/DEPS

No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2494003002
Cr-Commit-Position: refs/heads/master@{#15031}
2016-11-11 03:37:50 +00:00
a3095d001b Re-enable the P2PTransportChannelMultihomedTest.TestBasic
BUG=webrtc:2409

Review-Url: https://codereview.webrtc.org/2485963002
Cr-Commit-Position: refs/heads/master@{#15030}
2016-11-10 21:59:50 +00:00
bd162f796e Roll chromium_revision 65cb3abb07..3a46cc72d5 (431231:431304)
Change log: 65cb3abb07..3a46cc72d5
Full diff: 65cb3abb07..3a46cc72d5

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2491413002
Cr-Commit-Position: refs/heads/master@{#15029}
2016-11-10 19:29:38 +00:00
e3fe4a7c2d Update VideoFrameBuffer-related methods to not use references to scoped_refptr.
Chrome coding standard now discourages use of references to smart
pointers. This cl updates some recent methods to the new conventions.

BUG=webrtc:6672

Review-Url: https://codereview.webrtc.org/2477233004
Cr-Commit-Position: refs/heads/master@{#15028}
2016-11-10 16:44:47 +00:00
hta
7fe6db91d9 Revert of Declare VideoCodec.codec_specific_info private (patchset #5 id:80001 of https://codereview.webrtc.org/2452963002/ )
Reason for revert:
Broke a google3 build

Original issue's description:
> Declare VideoCodec.codec_specific_info private
>
> This completes the privatization of the codec specific
> information in VideoCodec.
>
> BUG=webrtc:6603
>
> Committed: https://crrev.com/792738640234d81c916ac4458ac72286cb2548a4
> Cr-Commit-Position: refs/heads/master@{#15013}

TBR=tommi@chromium.org,magjed@chromium.org,tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6603

Review-Url: https://codereview.webrtc.org/2491933002
Cr-Commit-Position: refs/heads/master@{#15027}
2016-11-10 16:37:05 +00:00
1369c83b42 Revert of Issue 2434073003: Extract bitrate allocation ... (patchset #4 id:60001 of https://codereview.webrtc.org/2488833004/ )
Reason for revert:
Seems to be causing flakiness in perf test:
FullStackTest.ScreenshareSlidesVP8_2TL_LossyNet

Original issue's description:
> Reland of Issue 2434073003: Extract bitrate allocation ...
>
> This is a reland of https://codereview.webrtc.org/2434073003/ including
> some fixes for failing test cases.
>
> Original description:
>
> Extract bitrate allocation of spatial/temporal layers out of codec impl.
>
> This CL makes a number of intervowen changes:
>
> * Add BitrateAllocation struct, that contains a codec independent view
>   of how the target bitrate is distributed over spatial and temporal
>   layers.
>
> * Adds the BitrateAllocator interface, which takes a bitrate and frame
>   rate and produces a BitrateAllocation.
>
> * A default (non layered) implementation is added, and
>   SimulcastRateAllocator is extended to fully handle VP8 allocation.
>   This includes capturing TemporalLayer instances created by the
>   encoder.
>
> * ViEEncoder now owns both the bitrate allocator and the temporal layer
>   factories for VP8. This allows allocation to happen fully outside of
>   the encoder implementation.
>
> This refactoring will make it possible for ViEEncoder to signal the
> full picture of target bitrates to the RTCP module.
>
> BUG=webrtc:6301
>
> Committed: https://crrev.com/647bf43dcb2fd16fccf276bd94dc4400728bb405
> Cr-Commit-Position: refs/heads/master@{#15023}

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

Review-Url: https://codereview.webrtc.org/2491393002
Cr-Commit-Position: refs/heads/master@{#15026}
2016-11-10 16:30:39 +00:00
ef6cbae756 Add UMA histogram for Echo likelihood.
The likelihood is logged as a percentage, with 100 bins in the histogram.

BUG=webrtc:6525

Review-Url: https://codereview.webrtc.org/2487243002
Cr-Commit-Position: refs/heads/master@{#15025}
2016-11-10 16:21:47 +00:00
44c7ecf88e Added a public GN config to compile mock headers.
Due to bugs.webrtc.org/216 code that includes
//webrtc/modules/audio_device:mock_audio_device fails to compile on
Windows unless a warning flag is switched off. It seems that
googlemock changes types of overridden virtual method parameters from
'const int' to 'int', which causes the VS compiler to report an error.

The problem was not solved by suppressing the flag wd4373 in
//webrtc/modules/audio_device:mock_audio_device, because targets that
include the headers are compiled separately.

This CL adds the flag suppression to the GN variable
|all_dependent_configs|. Then GN will apply the configuration to all
reachable dependencies. This is needed to reduce clutter and extra
conditions in dependency build targets.

The reason for |all_dependent_configs| before |public_configs| is
for a situation in which a targets headers include the headers from
this target. Then dependencies of dependencies will have a copy of
this targets' code after preprocessing, and compilation will fail.
This will happen if we e.g. change mock_voice_engine to return a
MockAudioTransport or MockAudioDevice.

This change has been tested by compiling a dependent CL
(https://codereview.webrtc.org/2454373002/) which uses these mocks
on Windows without suppressing the flag.

There is no GYP change, because test code has been removed from GYP.

NOTRY=True
BUG=webrtc:216

Review-Url: https://codereview.webrtc.org/2492713003
Cr-Commit-Position: refs/heads/master@{#15024}
2016-11-10 16:16:30 +00:00
647bf43dcb Reland of Issue 2434073003: Extract bitrate allocation ...
This is a reland of https://codereview.webrtc.org/2434073003/ including
some fixes for failing test cases.

Original description:

Extract bitrate allocation of spatial/temporal layers out of codec impl.

This CL makes a number of intervowen changes:

* Add BitrateAllocation struct, that contains a codec independent view
  of how the target bitrate is distributed over spatial and temporal
  layers.

* Adds the BitrateAllocator interface, which takes a bitrate and frame
  rate and produces a BitrateAllocation.

* A default (non layered) implementation is added, and
  SimulcastRateAllocator is extended to fully handle VP8 allocation.
  This includes capturing TemporalLayer instances created by the
  encoder.

* ViEEncoder now owns both the bitrate allocator and the temporal layer
  factories for VP8. This allows allocation to happen fully outside of
  the encoder implementation.

This refactoring will make it possible for ViEEncoder to signal the
full picture of target bitrates to the RTCP module.

BUG=webrtc:6301

Review-Url: https://codereview.webrtc.org/2488833004
Cr-Commit-Position: refs/heads/master@{#15023}
2016-11-10 14:46:28 +00:00
9d1315a961 Add UMA stats for the resolution camera is started in.
BUG=webrtc:6302

Review-Url: https://codereview.webrtc.org/2476313002
Cr-Commit-Position: refs/heads/master@{#15022}
2016-11-10 14:35:24 +00:00
d64bf6f312 MB: Add Mac Asan (swarming) to FYI waterfall.
R=kjellander@webrtc.org
BUG=chromium:497757
NOTRY=True

Review-Url: https://codereview.webrtc.org/2491623004
Cr-Commit-Position: refs/heads/master@{#15021}
2016-11-10 14:24:40 +00:00
aae4fa86d0 Set videoCapturerStopped when PeerConnectionClient stopped
BUG=webrtc:6682

Review-Url: https://codereview.webrtc.org/2489213002
Cr-Commit-Position: refs/heads/master@{#15020}
2016-11-10 14:23:34 +00:00
917a4eeb60 Replace SequencedTaskChecker in RTPSenderVideo
This is not the right place for a SequencedTaskChecker, as we can
not make any guarantees about the thread this method runs on.
We were hitting this check on Android and iOS whenever the encoder
would be reconfigured. Access to these ivars should be guarded
by a lock.

As a bonus, an unused method declaration was removed.

BUG=webrtc:6686

Review-Url: https://codereview.webrtc.org/2495483002
Cr-Commit-Position: refs/heads/master@{#15019}
2016-11-10 14:22:23 +00:00
1b35d4cdf1 Don't copy loop variables when we don't have to
This was suggested by clang-tidy.

BUG=none

Review-Url: https://codereview.webrtc.org/2489693002
Cr-Commit-Position: refs/heads/master@{#15018}
2016-11-10 13:15:41 +00:00
dbdb3f1e63 Wire up FlexfecSender in RTPSender and add unit tests.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2484143002
Cr-Commit-Position: refs/heads/master@{#15017}
2016-11-10 13:04:54 +00:00
131bc498e6 Wire up FlexfecSender in RTPSenderVideo.
This CL adds the ability for RTPSenderVideo to generate and send
FlexFEC packets.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2490523002
Cr-Commit-Position: refs/heads/master@{#15016}
2016-11-10 13:01:16 +00:00
ef3f768695 Roll chromium_revision 6be6a794e7..65cb3abb07 (431208:431231)
Change log: 6be6a794e7..65cb3abb07
Full diff: 6be6a794e7..65cb3abb07

No dependencies changed.
No update to Clang.

TBR=
BUG=None

Review-Url: https://codereview.webrtc.org/2496523002
Cr-Commit-Position: refs/heads/master@{#15015}
2016-11-10 12:13:24 +00:00
3cf8ece954 Revert of Stop caching supported codecs in WebRtcVideoEngine2 (patchset #1 id:1 of https://codereview.webrtc.org/2492473002/ )
Reason for revert:
This CL probably broke Chromium FYI.

Original issue's description:
> Stop caching supported codecs in WebRtcVideoEngine2
>
> We currently cache the result of GetSupportedCodecs in a member variable
> |video_codecs_| in WebRtcVideoEngine2. This means we need to keep
> |video_codecs_| and the result of GetSupportedCodecs in sync, which is
> error prone. It's simpler to just call GetSupportedCodecs when we need
> it, and we actually end up making fewer calls, so it's faster as well.
> This CL also returns all std::vectors by-value instead of by-ref. Move
> semantic together with in-place filtering of codecs actually end up with
> fewer copies, and it's also simpler to not return references.
>
> BUG=webrtc:6337
>
> Committed: https://crrev.com/9f71ec5a3e3175751f4475b126cfda89767363f2
> Cr-Commit-Position: refs/heads/master@{#15007}

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

Review-Url: https://codereview.webrtc.org/2489173004
Cr-Commit-Position: refs/heads/master@{#15014}
2016-11-10 11:36:57 +00:00
hta
7927386402 Declare VideoCodec.codec_specific_info private
This completes the privatization of the codec specific
information in VideoCodec.

BUG=webrtc:6603

Review-Url: https://codereview.webrtc.org/2452963002
Cr-Commit-Position: refs/heads/master@{#15013}
2016-11-10 11:26:45 +00:00
59be5f77c6 Add helper functions for negotiating H264 profile level id
BUG=webrtc:6337,webrtc:6601

Review-Url: https://codereview.webrtc.org/2481033003
Cr-Commit-Position: refs/heads/master@{#15012}
2016-11-10 09:57:42 +00:00
5ec208fc98 Use bitcode by default for ios framework build.
BUG=webrtc:5085
NOTRY=true

Review-Url: https://codereview.webrtc.org/2490143002
Cr-Commit-Position: refs/heads/master@{#15011}
2016-11-10 09:13:49 +00:00
5de52fd38e Created a mocked AudioTransport.
There are currently two nearly identical classes called
MockAudioTransport defined in two unit tests:
android/audio_transport_unittest.cc and
/ios/audio_transport_unittest_ios.cc

This change defines a common mocked AudioTransport. The two current
mocks are rewritten to use the common one. A GN target is created for
this mock and MockAudioDevice.

This change will allow to provide a mocked AudioTransport to
AudioState in a dependent CL https://codereview.webrtc.org/2454373002/

BUG=webrtc:6346
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2493483002
Cr-Commit-Position: refs/heads/master@{#15010}
2016-11-10 09:05:39 +00:00
37e4ad598d Roll chromium_revision cc82e2a1fa..6be6a794e7 (428909:431208)
Change log: cc82e2a1fa..6be6a794e7
Full diff: cc82e2a1fa..6be6a794e7

Changed dependencies:
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/ea213d1f0b..11a7b3c2d9
* src/third_party/libsrtp: 71692eaab2..0e0936f301
* src/third_party/libvpx/source/libvpx: 9a032fa262..5c64c01c7c
* src/third_party/libyuv: 550cf829fb..97fb18b846
* src/third_party/openh264/src: b37cda2482..0fd88df93c
DEPS diff: cc82e2a1fa..6be6a794e7/DEPS

No update to Clang.

TBR=marpan@webrtc.org,
BUG=None

Review-Url: https://codereview.webrtc.org/2491873002
Cr-Commit-Position: refs/heads/master@{#15009}
2016-11-10 08:56:41 +00:00
51e9608f01 AudioDeviceBuffer now uses 16-bit buffers
BUG=webrtc:6560

Review-Url: https://codereview.webrtc.org/2482053003
Cr-Commit-Position: refs/heads/master@{#15008}
2016-11-10 08:40:44 +00:00
9f71ec5a3e Stop caching supported codecs in WebRtcVideoEngine2
We currently cache the result of GetSupportedCodecs in a member variable
|video_codecs_| in WebRtcVideoEngine2. This means we need to keep
|video_codecs_| and the result of GetSupportedCodecs in sync, which is
error prone. It's simpler to just call GetSupportedCodecs when we need
it, and we actually end up making fewer calls, so it's faster as well.
This CL also returns all std::vectors by-value instead of by-ref. Move
semantic together with in-place filtering of codecs actually end up with
fewer copies, and it's also simpler to not return references.

BUG=webrtc:6337

Review-Url: https://codereview.webrtc.org/2492473002
Cr-Commit-Position: refs/heads/master@{#15007}
2016-11-10 07:45:20 +00:00