Commit Graph

4245 Commits

Author SHA1 Message Date
2d618de25a [Chromoting] Improve DirectX capturer to support multiple outputs
Current DirectX capturer cannot capture multiple video cards or monitors. But
according to DXGI desktop duplication sample (https://goo.gl/An0L9l), we can
capture multiple video cards and monitors by duplicating them one by one. So
instead of one IDXGIOutputDuplication instance, this change creates an
IDXGIOutputDuplication instance for each monitor, and merge the output into
one DesktopFrame.
Several other changes are also included,
1. Add supports to DXGI_OUTDUPL_DESC.DesktopImageInSystemMemory. When this flag
is true, we won't copy its content to staging buffer.
2. Capture one monitor instead of entire screen.

Above changes make the logic complex. But with some refactor work, the logic is
not disordered. Please refer to the doc @ https://goo.gl/hU1ifG.

BUG=314516

Review-Url: https://codereview.webrtc.org/2099123002
Cr-Commit-Position: refs/heads/master@{#13684}
2016-08-09 00:50:28 +00:00
6a450105cd Adjust H264 QP thresholds.
NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2228683002
Cr-Commit-Position: refs/heads/master@{#13680}
2016-08-08 22:27:41 +00:00
df9e4d9fce Added new mixer folder to CPPLINT_DIRS. Fixed one small issue.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2228503003
Cr-Commit-Position: refs/heads/master@{#13677}
2016-08-08 17:26:17 +00:00
6382a19dc4 Renamed old-style variables.
Review-Url: https://codereview.webrtc.org/2227633002
Cr-Commit-Position: refs/heads/master@{#13676}
2016-08-08 17:25:10 +00:00
4496809b28 Changed mixing api and moved resampler.
Removed resampler from NewAudioConferenceMixer and AudioMixer (which started as a copy of former OutputMixer). This is part of the mixer rewrite project. In particular,
this is one of the steps required to have a single mixing component
instead of two doing the same thing.

The next planned change (which is not part of this CL) is to plug in the
new mixer (NewAudioConferenceMixer) into AudioState and AudioDeviceModule.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2221443002
Cr-Commit-Position: refs/heads/master@{#13674}
2016-08-08 17:19:03 +00:00
03bc3cfb3e GN target for test_packet_masks_metrics.
NOTRY=True
BUG=webrtc:6193

Review-Url: https://codereview.webrtc.org/2229473002
Cr-Commit-Position: refs/heads/master@{#13672}
2016-08-08 15:09:00 +00:00
c3ec1fd23c Adding GN targets for audioproc, audioproc_f and unpack_aecdump
BUG=webrtc:6171
NOTRY=True

Review-Url: https://codereview.webrtc.org/2222643002
Cr-Commit-Position: refs/heads/master@{#13667}
2016-08-08 06:19:35 +00:00
262e486128 TMMBRHelp::FindBoundingSet function cleaned
it become static to clearly state input, output and temporary variables
style updated with minor improvments to actual algorithm.

Review-Url: https://codereview.webrtc.org/1989363006
Cr-Commit-Position: refs/heads/master@{#13652}
2016-08-05 10:37:43 +00:00
ddba75c7cb Remove rtt limit on retransmission rate limiter
After offline discussion, this was mostly of historical use and may
actually be more of a risk now that we have the paced sender.

BUG=

Review-Url: https://codereview.webrtc.org/2198933004
Cr-Commit-Position: refs/heads/master@{#13643}
2016-08-04 16:52:46 +00:00
06bfe1f879 Reland of GN: Create target for video_capture_tests on Linux. (patchset #1 id:1 of https://codereview.webrtc.org/2217463002/ )
Reason for revert:
Fix issue.

Original issue's description:
> Revert of GN: Create target for video_capture_tests on Linux. (patchset #2 id:20001 of https://codereview.webrtc.org/2207463004/ )
>
> Reason for revert:
> Breaks bots.
> See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder%20%28dbg%29/builds/15490
>
> Original issue's description:
> > GN: Create target for video_capture_tests on Linux.
> >
> > BUG=webrtc:6042
> >
> > Committed: https://crrev.com/171c7fef0a8b7a1598ac87e0349e210372cb974c
> > Cr-Commit-Position: refs/heads/master@{#13638}
>
> TBR=mflodman@webrtc.org,sakal@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6042
>
> Committed: https://crrev.com/41bce13482464741e916190b4e5ec3c628f606dd
> Cr-Commit-Position: refs/heads/master@{#13640}

TBR=mflodman@webrtc.org,guidou@webrtc.org
BUG=webrtc:6042

Review-Url: https://codereview.webrtc.org/2211013002
Cr-Commit-Position: refs/heads/master@{#13641}
2016-08-04 14:54:08 +00:00
41bce13482 Revert of GN: Create target for video_capture_tests on Linux. (patchset #2 id:20001 of https://codereview.webrtc.org/2207463004/ )
Reason for revert:
Breaks bots.
See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder%20%28dbg%29/builds/15490

Original issue's description:
> GN: Create target for video_capture_tests on Linux.
>
> BUG=webrtc:6042
>
> Committed: https://crrev.com/171c7fef0a8b7a1598ac87e0349e210372cb974c
> Cr-Commit-Position: refs/heads/master@{#13638}

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

Review-Url: https://codereview.webrtc.org/2217463002
Cr-Commit-Position: refs/heads/master@{#13640}
2016-08-04 13:48:22 +00:00
db7543809e Tune BWE to be more sensitive on low capacity networks.
Also lowering the min bitrate for simulations to be able to better capture this issue in the BweFeedbackTest.Choke200kbps30kbps200kbps performance test.

BUG=webrtc:6105
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.webrtc.org/2201093006
Cr-Commit-Position: refs/heads/master@{#13639}
2016-08-04 13:42:14 +00:00
171c7fef0a GN: Create target for video_capture_tests on Linux.
BUG=webrtc:6042

Review-Url: https://codereview.webrtc.org/2207463004
Cr-Commit-Position: refs/heads/master@{#13638}
2016-08-04 13:29:31 +00:00
6ce738da31 Disable encoder scaling on iPhone4S.
Scaling causes us to work the CPU too much, which very quickly degrades quality. This causes us to at least behave better on good networks.

NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2205763002
Cr-Commit-Position: refs/heads/master@{#13630}
2016-08-03 19:57:18 +00:00
f98dc105ba GN: Add target for modules_tests.
Additional changes I needed to make it work:

- Modified a header in RTPFile.cc. Every other file is
  using "webrtc/engine_configurations.h" instead.

- Disabled flag 4373 for msvs because it was disabled
  in build/common.gypi.

BUG=webrtc:6038
TBR=kwiberg@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2187563005
Cr-Commit-Position: refs/heads/master@{#13628}
2016-08-03 17:46:51 +00:00
31e4e806b1 RtpPacketHistory rewritten to use RtpPacket class.
RtpSender updated to use new version of RtpPacketHistory.

BUG=webrtc:5261
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13626}
2016-08-03 16:27:50 +00:00
997684079e Remove a few meaningless TODOs
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13624}
2016-08-03 13:38:20 +00:00
837a1707ae Remove faulty DCHECK in rtcp::TransportFeedback::ParseFrom
BUG=chromium:632585
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13622}
2016-08-03 11:40:12 +00:00
4f6cd6ac59 Wire up VCMTiming in FrameBuffer2.
The VCMTiming class is now used to set the render time for frames.

BUG=webrtc:5514
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13621}
2016-08-03 08:59:47 +00:00
17dfa7425f Gyp->GN migration of RTPjitter.
BUG=6162

NOTRY=True

Review-Url: https://codereview.webrtc.org/2196283002
Cr-Commit-Position: refs/heads/master@{#13620}
2016-08-03 08:17:29 +00:00
64636dda43 Add UMA for tracking which BWE versions are in use.
NOTRY=true
BUG=webrtc:6156

Review-Url: https://codereview.webrtc.org/2206583002
Cr-Commit-Position: refs/heads/master@{#13619}
2016-08-03 07:29:12 +00:00
525df3ffd1 Add EncodedImageCallback::OnEncodedImage().
OnEncodedImage() is going to replace Encoded(), which is deprecated now.
The new OnEncodedImage() returns Result struct that contains frame_id,
which tells the encoder RTP timestamp for the frame.

BUG=chromium:621691
R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org

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

Committed: https://crrev.com/4c7f4cd2ef76821edca6d773d733a924b0bedd25
Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
Cr-Original-Original-Commit-Position: refs/heads/master@{#13613}
Cr-Original-Commit-Position: refs/heads/master@{#13615}
Cr-Commit-Position: refs/heads/master@{#13617}
2016-08-03 00:46:47 +00:00
51db4dd1bd Revert of Add EncodedImageCallback::OnEncodedImage(). (patchset #14 id:300001 of https://codereview.chromium.org/2089773002/ )
Reason for revert:
broke browser_tests

Original issue's description:
> Add EncodedImageCallback::OnEncodedImage().
>
> OnEncodedImage() is going to replace Encoded(), which is deprecated now.
> The new OnEncodedImage() returns Result struct that contains frame_id,
> which tells the encoder RTP timestamp for the frame.
>
> BUG=chromium:621691
> R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org
>
> Committed: https://crrev.com/4c7f4cd2ef76821edca6d773d733a924b0bedd25
> Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
> Cr-Original-Commit-Position: refs/heads/master@{#13613}
> Cr-Commit-Position: refs/heads/master@{#13615}

TBR=pbos@webrtc.org,mflodman@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,niklas.enbom@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2203233002
Cr-Commit-Position: refs/heads/master@{#13616}
2016-08-03 00:33:47 +00:00
4c7f4cd2ef Add EncodedImageCallback::OnEncodedImage().
OnEncodedImage() is going to replace Encoded(), which is deprecated now.
The new OnEncodedImage() returns Result struct that contains frame_id,
which tells the encoder RTP timestamp for the frame.

BUG=chromium:621691
R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org

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

Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
Cr-Original-Commit-Position: refs/heads/master@{#13613}
Cr-Commit-Position: refs/heads/master@{#13615}
2016-08-02 22:14:51 +00:00
ac4dc2cefe Revert of Add EncodedImageCallback::OnEncodedImage(). (patchset #13 id:280001 of https://codereview.webrtc.org/2089773002/ )
Reason for revert:
broke internal tests

Original issue's description:
> Add EncodedImageCallback::OnEncodedImage().
>
> OnEncodedImage() is going to replace Encoded(), which is deprecated now.
> The new OnEncodedImage() returns Result struct that contains frame_id,
> which tells the encoder RTP timestamp for the frame.
>
> BUG=chromium:621691
> R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org
>
> Committed: https://crrev.com/ad34dbe934d47f88011045671b4aea00dbd5a795
> Cr-Commit-Position: refs/heads/master@{#13613}

TBR=pbos@webrtc.org,mflodman@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,niklas.enbom@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:621691

Review-Url: https://codereview.webrtc.org/2206743002
Cr-Commit-Position: refs/heads/master@{#13614}
2016-08-02 21:33:21 +00:00
ad34dbe934 Add EncodedImageCallback::OnEncodedImage().
OnEncodedImage() is going to replace Encoded(), which is deprecated now.
The new OnEncodedImage() returns Result struct that contains frame_id,
which tells the encoder RTP timestamp for the frame.

BUG=chromium:621691
R=niklas.enbom@webrtc.org, sprang@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13613}
2016-08-02 20:44:25 +00:00
6e11efa6dc Bitrate prober and paced sender improvements
- Removes unnecessary casts to compute timedelta.
- Renames ProbingState for clarity. This should help when we probe mid-call.
- Enables probing by default to avoid checking on each incoming packet.
- Removes duplicate probing state tracking in paced sender. These duplicate
  states were conflicting at times.
- Removes passing through packets for bug 5307 which seems long fixed.
- Cleanup handling of time_last_send_ms and avoid side effects of changing
  probing state at TimeUntilNextProbe().
- Clear cluster data when probing is restarted to avoid having old data after a reset.

BUG=5859
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13612}
2016-08-02 19:57:46 +00:00
c3de0333c0 Add plot of network delay change computed based on transport feedback.
NOTRY=true

Review-Url: https://codereview.webrtc.org/2205803002
Cr-Commit-Position: refs/heads/master@{#13610}
2016-08-02 14:22:23 +00:00
d3235f0cd9 Re-order and remove unused Java imports.
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13608}
2016-08-02 13:44:19 +00:00
5a74650522 Migrated GN target RTPtimeshift.
NOTRY=true

BUG=6162

Review-Url: https://codereview.webrtc.org/2201883004
Cr-Commit-Position: refs/heads/master@{#13607}
2016-08-02 13:06:39 +00:00
5556dcb24c Migrated GN target rtpcat.
BUG=6162

Review-Url: https://codereview.webrtc.org/2202193002
Cr-Commit-Position: refs/heads/master@{#13605}
2016-08-02 11:27:32 +00:00
606daa8b5e Adding Danil as an owner for the RTP module.
Review-Url: https://codereview.webrtc.org/2203703002
Cr-Commit-Position: refs/heads/master@{#13602}
2016-08-02 09:16:10 +00:00
76cbe19f8a Migrated RTPchange Gyp target to GN.
BUG=6162

Review-Url: https://codereview.webrtc.org/2194213002
Cr-Commit-Position: refs/heads/master@{#13601}
2016-08-02 09:05:07 +00:00
9eb3d5def4 Add sanity check for arrival timestamps.
BUG=chromium:632614

Review-Url: https://codereview.webrtc.org/2195663002
Cr-Commit-Position: refs/heads/master@{#13600}
2016-08-02 09:00:32 +00:00
8266773f18 Migrated target RTPencode to GN
TBR=henrik.lundin@webrtc.org

BUG=6162

Review-Url: https://codereview.webrtc.org/2195353002
Cr-Commit-Position: refs/heads/master@{#13599}
2016-08-02 08:45:58 +00:00
b578d6c56b congestion controller: Fix network route change handling
A reset of Bwe and rates on network route change triggers
switching of the RemoteBitrateEstimator from DelayBasedBwe
to RemoteBitrateEstimatorAbsSendTime. This is unexpected,
fix this.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13594}
2016-08-01 19:16:52 +00:00
8b70faf262 Send audio packets immediately instead of pacing them.
The intended behavior of the pacer is that it should send audio (i.e high priority) packets immediatelly even if the pacer is paused and even if the available media budget has been used. The existing code will not send audio if the pacing budget has been used. It will normally send audio when the pacer is paused, but if the media budget was already used up when the pacer was paused, it would neither send audio nor update the budget.

Updated the implementatation and the unit test. Added logging for when the pacer is paused, and when it receives a zero bitrate estimate.

BUG=webrtc:6155

Review-Url: https://codereview.webrtc.org/2193183003
Cr-Commit-Position: refs/heads/master@{#13592}
2016-08-01 16:47:38 +00:00
f734c135a4 Cleanup BWE SendTimeHistory class
Review-Url: https://codereview.webrtc.org/2011473002
Cr-Commit-Position: refs/heads/master@{#13590}
2016-08-01 16:23:24 +00:00
233c4ba4fd New ProbingCalculator class.
The ProbingCalculator class calculates and validates the results from
probing attempts.

BUG=webrtc:5859

Review-Url: https://codereview.webrtc.org/2121183002
Cr-Commit-Position: refs/heads/master@{#13589}
2016-08-01 15:49:13 +00:00
ddf3e4accd GN conversion of audio_decoder_unittests
BUG=webrtc 6036

Review-Url: https://codereview.webrtc.org/2180853006
Cr-Commit-Position: refs/heads/master@{#13588}
2016-08-01 14:49:50 +00:00
32cd2c4103 Fix issues with RestartingSendStreamPreservesRtpStatesWithRtx
double check rtp_sender in sending mode when altering sequence_number
adjust test to skip validating timestamp on rtx streams
fix test by waiting for all 3 media streams instead of 3 out 6 media and rtx streams.

BUG=webrtc:4332

Review-Url: https://codereview.webrtc.org/2177523002
Cr-Commit-Position: refs/heads/master@{#13587}
2016-08-01 13:58:41 +00:00
95e756035e [rtcp] Nack::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

Review-Url: https://codereview.webrtc.org/2028543002
Cr-Commit-Position: refs/heads/master@{#13586}
2016-08-01 13:51:20 +00:00
cd2553937e Increase audio buffer duration for iPhone 4s.
NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2193573002
Cr-Commit-Position: refs/heads/master@{#13579}
2016-07-29 17:53:45 +00:00
3d7346fd46 Adds delta-time logging for audio playout
BUG=NONE
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13576}
2016-07-29 14:21:41 +00:00
b77bd81a4a Temporarily remove problematic dcheck
It's being triggered in some upstream code, let's disable this while we
fix that.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13575}
2016-07-29 13:20:30 +00:00
13181035bc Reland: Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13574}
2016-07-29 12:49:04 +00:00
737336d37a Add NACK rate throttling for audio channels.
Not really used for audio today (already in place for video), but should
still function anyway.

BUG=
R=henrika@webrtc.org, minyue@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13571}
2016-07-29 10:59:49 +00:00
f3882571b0 Rewrote UpdateToMix in the audio mixer.
The new version is much shorter than the old one, and hopefully easier
to read. This is part of the effort to rewrite the old mixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2132563002
Cr-Commit-Position: refs/heads/master@{#13570}
2016-07-29 09:12:46 +00:00
ea4c141ffa Revert of Rewrote UpdateToMix in the audio mixer. (patchset #5 id:120001 of https://codereview.webrtc.org/2132563002/ )
Reason for revert:
Multiple definitions of  webrtc::MockMixerParticipant::MockMixerParticipant() during linking of modules_unittests. Please investigate and resubmit.

Original issue's description:
> Rewrote UpdateToMix in the audio mixer.
>
> The new version is much shorter than the old one, and hopefully easier
> to read. This is part of the effort to rewrite the old mixer.
>
> Committed: https://crrev.com/2942e240f4a985752714dac18c141064c97696d4
> Cr-Commit-Position: refs/heads/master@{#13568}

TBR=ossu@webrtc.org,ivoc@webrtc.org,aleloi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2195633002
Cr-Commit-Position: refs/heads/master@{#13569}
2016-07-29 08:36:23 +00:00
2942e240f4 Rewrote UpdateToMix in the audio mixer.
The new version is much shorter than the old one, and hopefully easier
to read. This is part of the effort to rewrite the old mixer.

Review-Url: https://codereview.webrtc.org/2132563002
Cr-Commit-Position: refs/heads/master@{#13568}
2016-07-29 08:23:54 +00:00