Commit Graph

6022 Commits

Author SHA1 Message Date
4c14009e83 Avoid calling RtpFrameObject::GetCodecHeader twice in the RtpFrameReferenceFinder.
This is good for a few reasons:
 - We avoid grabing a lock twice.
 - We avoid an unnecessary copy.
 - We avoid a race where a packet could potentially be removed before the
   second time we call GetCodecHeader.

BUG=None

Review-Url: https://codereview.webrtc.org/3009833002
Cr-Commit-Position: refs/heads/master@{#19635}
2017-08-31 15:31:45 +00:00
9868042b05 Removes unused APIs from the ADM (part II).
Removes:

int32_t SpeakerVolumeStepSize(uint16_t* stepSize)
int32_t MicrophoneVolumeStepSize(uint16_t* stepSize)
int32_t MicrophoneBoostIsAvailable(bool* available)
int32_t SetMicrophoneBoost(bool enable)
int32_t MicrophoneBoost(bool* enabled)
int32_t SetPlayoutBuffer(const BufferType type, uint16_t sizeMS = 0)
int32_t PlayoutBuffer(BufferType* type, uint16_t* sizeMS)
int32_t CPULoad(uint16_t* load)
int32_t StartRawOutputFileRecording(const char pcmFileNameUTF8[kAdmMaxFileNameSize])
int32_t StopRawOutputFileRecording()
int32_t StartRawInputFileRecording(const char pcmFileNameUTF8[kAdmMaxFileNameSize])
int32_t StopRawInputFileRecording()
int32_t ResetAudioDevice()

BUG=webrtc:7306

Review-Url: https://codereview.webrtc.org/3006803002
Cr-Commit-Position: refs/heads/master@{#19632}
2017-08-31 13:47:32 +00:00
890988c9cb Run the ClangTidy analyser on the AudioProcessing submodule of WebRTC.
This CL contains automatically applied fixes suggested by the
ClangTidy analyzer (http://clang.llvm.org/extra/clang-tidy/). The
following kinds of fixes is present:

* renaming variables when the names in the method signature don't
  match the names in the method definition
  (ClangTidy:readability-inconsistent-declaration-parameter-name)

* ClangTidy:readability-container-size-empty,
  ClangTidy:misc-unused-using-decls,
  ClangTidy:performance-unnecessary-value-param,
  ClangTidy:readability-redundant-control-flow

This is a 'pilot' CL to check if automatic code analyzers can
feasibly be integrated into the WebRTC infrastructuve.

The renamings have been manually expected for consistency with 
surrounding code. In echo_cancellation.cc, I changed several names in
the function implementation to match the function declaration. The
tool suggested changing everything to match the function definitions
instead.

Bug: None
Change-Id: Id3b7ba18c51f15b025f26090c7bdcc642e48d8fd
Reviewed-on: https://chromium-review.googlesource.com/635766
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19630}
2017-08-31 12:53:44 +00:00
5fcd1cc4bb Decouple FEC controller's decision from the decision making for frame length.
Bug: webrtc:8098
Change-Id: If313c8069a16bfb3c2752dcca7fb1cfca24c1caf
Reviewed-on: https://chromium-review.googlesource.com/643299
Reviewed-by: Michael T <tschumim@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19627}
2017-08-31 12:08:56 +00:00
6e09d875fb Replace remaining gflags usages with rtc_base/flags
Continued from https://codereview.webrtc.org/2995363002

BUG=webrtc:7644

Review-Url: https://codereview.webrtc.org/3005483002
Cr-Commit-Position: refs/heads/master@{#19624}
2017-08-31 10:21:39 +00:00
f2972ba166 Add some unit tests to TestVp8Impl.
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3005533003
Cr-Commit-Position: refs/heads/master@{#19623}
2017-08-31 10:01:26 +00:00
3aa4afd630 Flip IsWindowOnScreen behavior when native APIs fail
Per discussion in
https://chromium-review.googlesource.com/c/external/webrtc/+/641814, the
behavior of IsWindowOnScreen() functions when native APIs fail should be
flipped. I.e. window is *not* on screen if OS cannot find it.

Bug: chromium:758554
Change-Id: Ife449a5261fcd89c37595e29a0b1802fcf3c42a5
Reviewed-on: https://chromium-review.googlesource.com/644290
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19617}
2017-08-31 02:43:14 +00:00
4fe660785b Use GetWindowDrawableRect() instead of GetCroppedWindowRect() in WindowCapturerWin
GetCroppingWindowRect() is too generic and easy to be misused. For example, in
WindowCapturerWin, it's used to calculate the DesktopRect of the target window,
which is inaccurate. See the screenshot in the bug, it wrongly crops borders on
Windows 8+.

So GetCroppingWindowRect() should be removed eventually, the logic should be
placed in CroppingWindowCapturerWin. But since it's still used in the deprecated
logic in MouseCursorMonitorWin, I would prefer to remove this function after
MouseCursorMonitor improvement has been finished.

But before that, WindowCapturerWin should use GetWindowDrawableRect() instead of
GetCroppedWindowRect() to avoid the wrongly cropping behavior on Windows 8+.

Bug: webrtc:8157
Change-Id: I012b663dced8105623c563dbe55ffcb8d7f17f75
Reviewed-on: https://chromium-review.googlesource.com/642092
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19614}
2017-08-31 00:24:54 +00:00
f7f685c9de Rename IsWindowMinimized to IsWindowOnScreen
As discussed in change
https://chromium-review.googlesource.com/c/external/webrtc/+/634043, the name of
IsWindowMinimized() functions is too confusing. IsWindowOnScreen() is preferred,
since it describes the behavior of the functions more accurately.

This change does not flip the default behavior of these functions to avoid a
behavior change. TODO has been added; and the flipping will happen in a
following change.

Bug: chromium:758554
Change-Id: I009c0fa57142756e5c83f76b2a3561253db1b67f
Reviewed-on: https://chromium-review.googlesource.com/641814
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19613}
2017-08-31 00:20:54 +00:00
13b9882fd3 The goal of this CL is to separate Obj-C/Obj-C++ code from targets which have
also C++ code (see https://bugs.chromium.org/p/webrtc/issues/detail?id=7743
for more information).

To achieve this we have created 2 targets (desktop_capture_objc and
desktop_capture_generic) and desktop_capture will act as a proxy between these
targets (this way we can avoid a circular dependency between
desktop_capture_generic and desktop_capture_objc).

BUG=webrtc:7743

Review-Url: https://codereview.webrtc.org/2989053002
Cr-Commit-Position: refs/heads/master@{#19607}
2017-08-30 14:24:43 +00:00
4fed3c0b6f Further utilizing the AEC3 config struct for constants
BUG=webrtc:5298

Review-Url: https://codereview.webrtc.org/3007833002
Cr-Commit-Position: refs/heads/master@{#19605}
2017-08-30 13:58:44 +00:00
b57f42676e VideoProcessorIntegrationTest: make it runnable on a task queue.
* First do all frame processing, then do all rate control
  statistics calculations. This means that we only need to
  synchronize once.
* Run the VideoProcessor on a task queue, thus supporting Android
  HW codecs.
* Add some unit tests for the VideoProcessor.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2997283002
Cr-Commit-Position: refs/heads/master@{#19604}
2017-08-30 13:29:51 +00:00
cd8b079afb Increased the allowed API call jitter in AEC3
This CL increases the amount of API call jitter that is allowed in AEC3
without causing resets of AEC3. This increase is now possible, as non-
causal alignments will be detected by the newly imposed delay bound.

BUG=8175

Review-Url: https://codereview.webrtc.org/3012553002
Cr-Commit-Position: refs/heads/master@{#19603}
2017-08-30 13:19:11 +00:00
16adf03d25 Recently we moved webrtc/base to webrtc/rtc_base, so these
directives in our DEPS files are not needed anymore.

Includes from webrtc/rtc_base are also whitelisted in webrtc/DEPS
so we don't have to whitelist it in all the others DEPS files.

BUG=webrtc:7634
NOTRY=True

Review-Url: https://codereview.webrtc.org/3006583002
Cr-Commit-Position: refs/heads/master@{#19601}
2017-08-30 11:45:58 +00:00
6d5b4d6fe1 Piggybacking simulcast id and ALR experiment id into video content type extension.
Use it to slice UMA video receive statis.

BUG=8032

Review-Url: https://codereview.webrtc.org/2986893002
Cr-Commit-Position: refs/heads/master@{#19598}
2017-08-30 10:32:14 +00:00
9657172a81 neteq_rtpplay: Add one more RTP header extension and fix some stats
The extension ID for transport sequence number is added to the list of
known RTP header extensions. Also, the minimum and maximum waiting
time for packets is now aggregated as minimum and maximum,
respectively, not as averages.

BUG=none

Review-Url: https://codereview.webrtc.org/3004783003
Cr-Commit-Position: refs/heads/master@{#19593}
2017-08-30 07:41:30 +00:00
85e6a4ba13 Use desktop relative mouse cursor position in DesktopAndCursorComposer
This change adds one temporary use_desktop_relative_cursor_position_ flag in
DesktopAndCursorComposer. It's automatically set according to the consturctor
used.
When the flag is true, DesktopAndCursorComposer uses the newly added
MouseCursorMonitor::Callback::OnCursorPosition(), which is the absolute position
of the cursor in the full desktop coordinate, and DesktopCapturer::IsOccluded()
to decide whether the mouse cursor should be drawn on the DesktopFrame.
When the flag is false, the behavior of DesktopAndCursorComposer is unchanged.

This flag will be removed together with the deprecated constructor of
DesktopAndCursorComposer.

Currently the new DesktopAndCursorComposer constructor is not used, so no
behavior change is expected.

Bug: webrtc:7950
Change-Id: I7235e32fa325a21c4a2594613764a9f81d76dfbc
Reviewed-on: https://chromium-review.googlesource.com/641075
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19592}
2017-08-30 01:38:17 +00:00
a787702417 GetWindowRect() on X11 does not correctly translate the coordinate
XWindowAttributes.x and y are in the coordinate of the parent window, so
XTranslateCoordinates() should be used to do the translation.
Meanwhile this change reduces the scope of the XErrorTrap in GetWindowList()
function to ensure the callback can use other XErrorTrap to cover other X
function calls.

Bug: webrtc:7950
Change-Id: I520227b11704c5a0cb665d9de86925ed4e86540d
Reviewed-on: https://chromium-review.googlesource.com/639590
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19591}
2017-08-29 20:50:37 +00:00
12827113a1 Use WindowFinder in WindowCapturer to detect IsOccluded()
In this change,
bool DesktopCapturer::IsOccluded(const DesktopVector& pos);
is added to DesktopCapturer interface. This function returns true if the |pos|
is hidden by other elements on the display.

The function expects to return false for ScreenCapturer implementations:
everything is visible on the screen.

In WindowCapturer implementations, WindowFinder is expected to be used to help
detect the WindowId under |pos|. If the window_id_ equals to the window id
returned by WindowFinder, this function returns false.

To ensure the correct coordinate is used, a comment is also added to
WindowFinder::GetWindowUnderPoint() function. Considering it's used only in
desktop_capture module, using system coordinate is simpler.

Bug: webrtc:7950
Change-Id: I8ac4fbd5f4a612388f1593907805cfb2c359f70f
Reviewed-on: https://chromium-review.googlesource.com/636784
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19590}
2017-08-29 20:43:56 +00:00
f09c904dd1 neteq_rtpplay: Fix a bug in the matlab plotting function
This CL fixes a small bug, causing the matlab plot script to contain
empty vectors. Also, the script file name is fixed, to avoid two
periods (.) in the file name; matlab did not like that.

BUG=none

Review-Url: https://codereview.webrtc.org/3004813002
Cr-Commit-Position: refs/heads/master@{#19586}
2017-08-29 16:14:08 +00:00
ecf312e603 Removes unused WaveOut APIs from ADM.
Will remove default implementations as well once landed and removed
in Chrome as well.

These two AudioDeviceModule APIs are removed:

int32_t SetWaveOutVolume(uint16_t volumeLeft, uint16_t volumeRight)
int32_t WaveOutVolume(uint16_t* volumeLeft, uint16_t* volumeRight) const

BUG=webrtc:7306

Review-Url: https://codereview.webrtc.org/3006793002
Cr-Commit-Position: refs/heads/master@{#19581}
2017-08-29 13:02:10 +00:00
9b2f20c618 Replace gflags usages with rtc_base/flags in all targets based on test_main
BUG=webrtc:7644

Review-Url: https://codereview.webrtc.org/2995363002
Cr-Commit-Position: refs/heads/master@{#19580}
2017-08-29 12:51:57 +00:00
a16c70b8ba Verify parsed QP value when frame is encoded instead of storing parsed value and verifying later.
Removes:
- VideoProcessor: GetQpFromEncoder, GetQpFromBitstream
- FrameInfo: qp_encoder, qp_bitstream

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3007753002
Cr-Commit-Position: refs/heads/master@{#19579}
2017-08-29 12:39:36 +00:00
d4495312dc Now uses builder class for AudioRecord objects from SDK 23.
Cleanup CL. Start using new AudioRecord.Builder class for creating
AudioRecord Java instances. Exists from API 23.

BUG=webrtc:7962

Review-Url: https://codereview.webrtc.org/3007673002
Cr-Commit-Position: refs/heads/master@{#19571}
2017-08-29 07:24:32 +00:00
a3d4f68fb4 Android: Replace webrtc_jni namespace with nested jni namespace
This CL replaces:
namespace webrtc_jni {
with:
namespace webrtc {
namespace jni {

The main benefit is that we don't have to use the webrtc:: qualifier
inside the jni namespace so we can reduce some clutter.

BUG=None

Review-Url: https://codereview.webrtc.org/3009613002
Cr-Commit-Position: refs/heads/master@{#19569}
2017-08-28 23:24:06 +00:00
ff2824b917 Fix compiler warnings due to type mismatch.
BUG=webrtc:8169

Change-Id: Ie98dcaa09e1e5b7c9f48410cd3049740ccac67b9
Reviewed-on: https://chromium-review.googlesource.com/639314
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19567}
2017-08-28 20:31:58 +00:00
5212700c79 Removing dependencies on stub headers within WebRTC.
Headers webrtc/video_receive_stream.h and webrtc/video_send_stream.h
have been moved to webrtc/call in https://codereview.webrtc.org/3000253002,
this CL is just switching WebRTC internal dependencies to actual headers
instead of depending on the backward compatibility ones.

BUG=webrtc:8107

Review-Url: https://codereview.webrtc.org/3007553002
Cr-Commit-Position: refs/heads/master@{#19561}
2017-08-28 13:46:48 +00:00
b32aaf97bd Reland of Verify sender ssrc when receiving rtcp target bitrate (patchset #1 id:1 of https://codereview.webrtc.org/3005633002/ )
Reason for revert:
Landed fix in upstream project.

Original issue's description:
> Revert of Verify sender ssrc when receiving rtcp target bitrate (patchset #3 id:40001 of https://codereview.webrtc.org/3000373002/ )
>
> Reason for revert:
> Might be the root cause of an internal test failure.
>
> Original issue's description:
> > Verify sender ssrc when receiving rtcp target bitrate
> >
> > BUG=webrtc:8137
> >
> > Review-Url: https://codereview.webrtc.org/3000373002
> > Cr-Commit-Position: refs/heads/master@{#19524}
> > Committed: a7a4beb419
>
> TBR=danilchap@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:8137
>
> Review-Url: https://codereview.webrtc.org/3005633002
> Cr-Commit-Position: refs/heads/master@{#19529}
> Committed: 95a64ca8aa

TBR=danilchap@webrtc.org,zhihuang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8137

Review-Url: https://codereview.webrtc.org/3006683002
Cr-Commit-Position: refs/heads/master@{#19557}
2017-08-28 12:49:12 +00:00
34960de3fb Implement move constructor for RTPFragmentationHeader.
This allows returning RTPFragmentationHeader from a method and assigning
the results to a variable.

BUG=webrtc:7760

Review-Url: https://codereview.webrtc.org/3002283002
Cr-Commit-Position: refs/heads/master@{#19556}
2017-08-28 10:22:39 +00:00
95c8f65382 Now that https://codereview.webrtc.org/3003643002 is landed we can
remove rtc_base_approved from the public_deps list of rtc_task_queue.

BUG=webrtc:8160
NOTRY=True

Review-Url: https://codereview.webrtc.org/3008553002
Cr-Commit-Position: refs/heads/master@{#19551}
2017-08-28 06:40:10 +00:00
a86f57e624 Move GetOutstandingBytes() call inside field trial check to avoid taking an unneccessary lock.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/3009673002
Cr-Commit-Position: refs/heads/master@{#19540}
2017-08-26 13:33:43 +00:00
d1d79f6866 Remove dead code
This code became dead when the builtin audio codec factories were
rewritten in https://codereview.webrtc.org/2997713002/.

BUG=webrtc:7821, webrtc:7822

Review-Url: https://codereview.webrtc.org/3003603002
Cr-Commit-Position: refs/heads/master@{#19535}
2017-08-26 05:22:42 +00:00
2a47e5dfc8 Use windows' content rectangles rather than their borders to determine overlapping
If the content area of a window is not covered by the content area of another
window, we do not treat them as overlapping. This can fix the issue that two
fullscreen windows cover each other, or a fullscreen window is covered by the
shadow effect of task bar.

Bug: chromium:741770
Change-Id: I92dc636bc8445d50b00390cf3332695f69daf9c6
Reviewed-on: https://chromium-review.googlesource.com/628244
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19532}
2017-08-26 01:10:16 +00:00
af5686a229 Implement scaling detection in WindowCapturerWin
WindowCapturerWin wrongly calculate the image size if the application it target
does not support high DPI. It causes part of the output frame black. See bug for
details.

Bug: webrtc:8112
Change-Id: I33c66dfa977ec08a29c56ff86ae37320b1459c87
Reviewed-on: https://chromium-review.googlesource.com/634383
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19531}
2017-08-26 00:48:06 +00:00
95a64ca8aa Revert of Verify sender ssrc when receiving rtcp target bitrate (patchset #3 id:40001 of https://codereview.webrtc.org/3000373002/ )
Reason for revert:
Might be the root cause of an internal test failure.

Original issue's description:
> Verify sender ssrc when receiving rtcp target bitrate
>
> BUG=webrtc:8137
>
> Review-Url: https://codereview.webrtc.org/3000373002
> Cr-Commit-Position: refs/heads/master@{#19524}
> Committed: a7a4beb419

TBR=danilchap@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:8137

Review-Url: https://codereview.webrtc.org/3005633002
Cr-Commit-Position: refs/heads/master@{#19529}
2017-08-25 19:59:42 +00:00
c1f691dff2 Check whether on_screen is null before performing CFBooleanGetValue()
A crash may randomly happen in IsWindowMinimized(), the potential reason is that
|on_screen| is not retrieved from |window| with kCGWindowIsOnScreen property. So
add a == NULL check before executing CFBooleanGetValue().

Bug: chromium:758554
Change-Id: I25ad1ddbb21ec049ef237e55a8d25156bcd982c7
Reviewed-on: https://chromium-review.googlesource.com/634043
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19527}
2017-08-25 18:14:14 +00:00
41476e014c When Ulpfec recovers a packet, set |returned| flag earlier.
This avoids infinite recursion in case the recovered packet carries a
RED header.

BUG=chromium:754748

Review-Url: https://codereview.webrtc.org/3004553002
Cr-Commit-Position: refs/heads/master@{#19525}
2017-08-25 16:08:44 +00:00
a7a4beb419 Verify sender ssrc when receiving rtcp target bitrate
BUG=webrtc:8137

Review-Url: https://codereview.webrtc.org/3000373002
Cr-Commit-Position: refs/heads/master@{#19524}
2017-08-25 16:06:16 +00:00
5a0c4ed219 Removes usage audio_device_test_api.
These tests are very old and come from a time when we tested each method in the
ADM as if the ADM should function as a standalone component.
Several tests are already disabled and we test combinations of APIs that are no
longer valid (since the ADM is now used in a more fixed way in VoE).
The tests does not verify media (we have other tests under
voice_engine/test/auto_test) which starts media and verifies that it works OK.
There are also a a more extensive set of ADM tests for Android and iOS.
You could also say that these tests tests the most "hardware related parts of
the ADM", but not those that we expose via the VoEHardware API.
Hence, not much value to maintain them imo.

NOTRY=TRUE
BUG=webrtc:7250

Review-Url: https://codereview.webrtc.org/2726433003
Cr-Commit-Position: refs/heads/master@{#19522}
2017-08-25 14:47:31 +00:00
9dbd084761 Delete batch mode from VideoProcessorIntegrationTest.
After landing https://codereview.webrtc.org/2997283002/,
batch mode will no longer be needed.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3005593002
Cr-Commit-Position: refs/heads/master@{#19520}
2017-08-25 14:11:19 +00:00
a387eb48b1 Decrease the default reverberation in AEC3
BUG=webrtc:8161

Review-Url: https://codereview.webrtc.org/3003423002
Cr-Commit-Position: refs/heads/master@{#19519}
2017-08-25 14:07:30 +00:00
474accebdb Roll chromium_revision d323a482ee..7114a66134 (494468:497367) manually
* Enable workaround for building Android with C++14.
* Disable build hooks for WebRTC on Android.

Change log: d323a482ee..7114a66134
Full diff: d323a482ee..7114a66134

Changed dependencies:
* src/base: 66d3c08e82..0b41aca75a
* src/build: 2a5e6515a5..a2a451d3c0
* src/buildtools: ceb050498e..5af0a3a8b8
* src/ios: 2085f316c1..0a0ac63bd3
* src/testing: 3127a16731..8a25f55d8b
* src/third_party: b4122f732f..8c0e65fa05
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/f4ecc84644..ae9f0616c5
* src/third_party/catapult: d27175a044..f8acf3b642
* src/third_party/depot_tools: 6d0d04458d..e081cbe5aa
* src/third_party/icu: 98218d1e92..08cb956852
* src/third_party/libvpx/source/libvpx: cbb83ba4aa..6b9c691daf
* src/tools: 5730fb2d3f..3e167a7bd3
DEPS diff: d323a482ee..7114a66134/DEPS

No update to Clang.

TBR=marpan@webrtc.org,
BUG=webrtc:8148
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3003393002
Cr-Commit-Position: refs/heads/master@{#19517}
2017-08-25 13:21:52 +00:00
ee95f87488 Change frame bookkeeping in VideoProcessorIntegrationTest.
Now we always process |rate_profile.num_frames| number of frames.
This means that the output of the tests in
videoprocessor_integrationtest.cc will be slightly different,
as we will no process 300 frames, instead of 299. No rate control
or quality thresholds need to be updated, however.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3004583002
Cr-Commit-Position: refs/heads/master@{#19515}
2017-08-25 11:51:54 +00:00
87f5c5a4d3 Make rate control and quality thresholds optional in VideoProcessorIntegrationTest.
This CL is split out from https://codereview.webrtc.org/2997283002/.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3008543002
Cr-Commit-Position: refs/heads/master@{#19513}
2017-08-25 11:33:49 +00:00
e5eb7247ff Reimplement the builtin audio codec factories using the new stuff in api/
The whole point of all the audio codec stuff we've recently published
in api/ is to function as lego bricks so that building stuff like our
builtin audio codec factories will be easy.

(This has landed once before, but got reverted because of Chromium test
failures---apparently, someone isn't ignoring the case of the codec names
like they're supposed to. The quick fix was to preserve the same case
used by the old implementation.)

BUG=webrtc:7821, webrtc:7822

Review-Url: https://codereview.webrtc.org/2998263002
Cr-Commit-Position: refs/heads/master@{#19512}
2017-08-25 10:10:50 +00:00
8cee56f254 Utilizing the AEC3 config struct for constants.
This CL replaces inline constants with config struct
constants.

BUG=webrtc:5298

Review-Url: https://codereview.webrtc.org/3003733002
Cr-Commit-Position: refs/heads/master@{#19507}
2017-08-25 05:36:53 +00:00
2dbc69fa64 Add stats totalSamplesReceived and concealedSamples
Adds two new stats to RTCMediaStreamTrackStats:
* totalSamplesReceived is the total number of samples received on
      the audio channel and includes real and synthetic samples.
* concealedSamples is the total number of synthetic samples
      received on the audio channel used to conceal packet loss.

Bug: webrtc:8076
Change-Id: I36e9828525ec341490cf3310a972b56a8b443667
Reviewed-on: https://chromium-review.googlesource.com/615902
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19506}
2017-08-25 00:50:42 +00:00
5acd9d0393 Add DesktopFrame::MoveFrameInfoFrom() and DesktopFrame::CopyFrameInfoFrom()
The original change https://chromium-review.googlesource.com/c/575315 and
https://chromium-review.googlesource.com/c/590508 have not been well-considered.
So this change reverts part of two changes and adds a
DesktopFrame::set_top_left() function

A DesktopFrame usually contains a very large chunk of memory, which should be
reused as much as possible to reduce the memory allocations. The size of the
memory usually controls by the DesktopFrame::size(). So it's reasonable to const
DesktopFrame::size_: changing it is wrong if the underly buffer is not large
enough.

But DesktopFrame::top_left() is a different story, same as capturer_id,
capture_time_ms and other information in the DesktopFrame, it can be changed to
any value without needing to reconstruct a DesktopFrame instance. So instead of
adding it to the constructor, a DesktopFrame::set_top_left() is added to adjust
the top-left of the DesktopFrame in the entire display coordinate.

After adding DesktopFrame::set_top_left(), we have five variables in a
DesktopFrame which is not initialized in the constructor. For any kind of
wrapper DesktopFrame, say, SharedDesktopFrame and CroppedDesktopFrame, they
needs to copy these five variables after constructing themselves. This is not
convenient and easily to be broken if an implementation forgot to copy them.

So DesktopFrame::MoveFrameInfoFrom() and DesktopFrame::CopyFrameInfoFrom() are
added to the DesktopFrame to help derived classes to copy or move these
variables in one function call.
The difference between MoveFrameInfoFrom() and CopyFrameInfoFrom() is that the
former one uses DesktopRegion::Swap() to move the DesktopRegion from the source
DesktopFrame to this instance, while the later one uses copy-operator to copy
the DesktopRegion from the source DesktopFrame.
So CopyFrameInfoFrom() is usually used when sharing a source DesktopFrame with
several clients. I.e. the source DesktopFrame should be kept unchanged. For
example, BasicDesktopFrame::CopyOf() and SharedDesktopFrame::Share().
On the other side, MoveFrameInfoFrom() is usually used when wrapping a
DesktopFrame. E.g. CroppedDesktopFrame and DesktopFrameWithCursor.

Bug: webrtc:7950
Change-Id: I8b23418960fb681d2ea1f012d1b453f514da2272
Reviewed-on: https://chromium-review.googlesource.com/622453
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19504}
2017-08-24 23:44:22 +00:00
2b706343de Add audio_level member to RtpSource and set it from RtpReceiverImpl::IncomingRtpPacket.
BUG=webrtc:7987

Review-Url: https://codereview.webrtc.org/3000713002
Cr-Commit-Position: refs/heads/master@{#19503}
2017-08-24 21:52:17 +00:00
0cab085157 Disable screen capturer tests on Windows
Windows cannot capture contents on VMs hosted in GCE, disable them to unblock
GCE hosting.

Bug: webrtc:8153
Change-Id: Iacdce15008cc092dce36d08b1d5565bbaa5def1f
Reviewed-on: https://chromium-review.googlesource.com/634083
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19502}
2017-08-24 20:10:42 +00:00