During window capturing, if the target window is minimized, OSX/Windows
will return a 1x1 frame and then webrtc knows to replace it with a black
frame. Let's do same on Linux too.
BUG=568840
Review-Url: https://codereview.webrtc.org/2989233002
Cr-Commit-Position: refs/heads/master@{#19224}
In preparation of making RTP packet demuxing many-to-one (one SSRC goes to one sink, but one sink may have multiple SSRCs), we need to remove FlexFEC's dependence on being able to register itself with the demuxer. Instead, we register FlexFEC streams with the streams they protect; when those streams get packets, they'll forward them to their associated FlexFEC streams, too.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2974453002
Cr-Commit-Position: refs/heads/master@{#19219}
Add some sanity tests for PacketRouter when no modules are registered.
BUG=None
Review-Url: https://codereview.webrtc.org/2986093003
Cr-Commit-Position: refs/heads/master@{#19215}
Reason for revert:
Break performance bots.
Original issue's description:
> Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame.
>
> BUG=webrtc:8028
>
> Review-Url: https://codereview.webrtc.org/2993513002
> Cr-Commit-Position: refs/heads/master@{#19209}
> Committed: ee13e8919cTBR=stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:8028
Review-Url: https://codereview.webrtc.org/2990183002
Cr-Commit-Position: refs/heads/master@{#19211}
Add SetProcessParams method for configuring process settings (removes intermediate step of configuring settings via ProcessParams).
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2962293002
Cr-Commit-Position: refs/heads/master@{#19206}
This change adds constructors for all DesktopFrame inheritances to pass in
DesktopRect instead of DesktopSize.
Because the newly added constructors and DesktopFrame::top_left() function are
not actively used, this change should have no logic impact.
Bug: webrtc:7950
Change-Id: If78187865c991211dfc28d3723403ce6e6fe0290
Reviewed-on: https://chromium-review.googlesource.com/590508
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19204}
If the input file name matches the "<name>-<params>.wav" pattern and <name> is a valid signal creator name, then <params> is parsed and used to create a new signal which is written in place of the missing file.
This CL only adds a pure tone creator. For instance, 'pure_tone-440_1000.wav' creates a pure tone at 440 Hz, 1000 ms long, mono, sampled at 48kHz.
This feature can be used to simplify the creation of common probe signals - no need to add external .wav files. Also, it will be exploited by a coming CL that adds a new evaluation score requiring the input signal to be a pure tone.
Additional minor fixes:
- apm_quality_assessment_unittest.py: command line arguments replaced to avoid that those for the unit test framework are passed
- simulation_unittest.py: invalid evaluation score name replaced
BUG=webrtc:7218
Review-Url: https://codereview.webrtc.org/2989823002
Cr-Commit-Position: refs/heads/master@{#19200}
Also change the loss rates to 5% and 1%, instead of 50%.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2950313002
Cr-Commit-Position: refs/heads/master@{#19199}
- render stream support, required to assess AEC;
- echo path simulation and input mixer, to generate echo and add it to the
speech signal;
- export engine: improved UI, switch to Pandas DataFrames;
- minor design improvements and needed adaptions.
BUG=webrtc:7218
Review-Url: https://codereview.webrtc.org/2813883002
Cr-Commit-Position: refs/heads/master@{#19198}
rtcp_sender accepts nullptr as indication statistics shouldn't be used,
Other uses of NullReceiveStatistcs were already deleted.
BUG=webrtc:8016
Review-Url: https://codereview.webrtc.org/2988143002
Cr-Commit-Position: refs/heads/master@{#19197}
I am not sure memcmp is the right tool to compare two D3D11_TEXTURE2D_DESC
instances. So the staging texture may be recreated for each frame, which hurts
the performance.
Bug: webrtc:8046
Change-Id: I60a94f468599b23dec168de55c9bc8c787ab9b7d
Reviewed-on: https://chromium-review.googlesource.com/592088
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19193}
resolution_tracker_ should always represent the size of the DxgiFrame::frame_.
So it should not be actively reset.
Bug: webrtc:8045
Change-Id: I0b4d70ea69e4c2febfa369de50b555287c41fd99
Reviewed-on: https://chromium-review.googlesource.com/592248
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19192}
DxgiTexture now does not rely on a fixed resolution, so the ResolutionTracker
can be removed from it.
This change does not have logic impact, the upper component
(DxgiDuplicatorController) always reinitializes itself once the screen
resolution changes. And this check is also a legacy one: DxgiFrame now can take
care of the resolution change itself without needing to return false in
DxgiTexture.
Bug: webrtc:8044
Change-Id: I3ad9ce175f2bc9bf03b0a3985efa2681aa55d14b
Reviewed-on: https://chromium-review.googlesource.com/592247
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19191}
ResolutionChangeDetector now does not update its internal state. There is no
impact because Reset() is always actively called.
So this change renames ResolutionChangeDetector to ResolutionTracker, and rename
the IsChanged() function into SetResolution(), which returns true if a
replacement happened. Internally it always records the latest DesktopSize.
Customers of this class can still use SetResolution() function to check whether
a DesktopSize change happened.
Bug: webrtc:8038
Change-Id: I6d25f3dd2d0567219a82b6688bf3e08560c8b0af
Reviewed-on: https://chromium-review.googlesource.com/587405
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19184}
Chromium has adopted Opus 1.2.1 which allows 120ms frame encoding. It
is time to turn on the switch for building WebRTC with this feature.
Bug: webrtc:8042
TBR: kjellander@webrtc.org
Change-Id: I644b47cfb56f835695ef1263741cda6e3ee3d862
Reviewed-on: https://chromium-review.googlesource.com/586725
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Felicia Lim <flim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19173}
CreateCroppedDesktopFrame() does not need to create a CroppedDesktopFrame if the
size won't change.
Bug: webrtc:8039
Change-Id: Ie6789a4b473b69bced94c4a25a68f1da6bb3510e
Reviewed-on: https://chromium-review.googlesource.com/587808
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19163}
This change returns translated position in the newly added overload
MouseCursorMonitor::Callback::OnMouseCursorPosition(DesktopVector) callback.
Meanwhile it also reduces the duplicate logic in Windows capturer
implementations. So except for the deprecated logic in MouseCursorMonitorWin,
all GetSystemMetrics() function calls are merged into GetScreenRect(),
GetFullscreenRect() and GetFullscreenTopLeft() functions.
Bug: webrtc:7950
Change-Id: Ic2a85a80b6947367bdd20d8f96f11e0f5c269006
Reviewed-on: https://chromium-review.googlesource.com/581951
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Zijie He <zijiehe@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19157}
There is already an Unwrapper in webrtc/modules/include/module_common_types.h,
but we reimplemented it in sequence_number_util.h for a few reasons:
- Such a class belongs in sequence_number_util.h.
- It is a cleaner implementation since we can use the rest of
sequence_number_util.h functionality.
- You can choose at which number the unwrapped sequence should start,
which is used to avoid the edge case when a backward wrap can happen
as the first few numbers are unwrapped.
- This unwrapper can unwrap numbers that does not wrap 8/16/32 bits.
BUG=None
Review-Url: https://codereview.webrtc.org/2977603002
Cr-Commit-Position: refs/heads/master@{#19154}
Compose them while creating sr/rr instead of presaving in temporary
member variable
BUG=webrtc:5565, webrtc:8016
Review-Url: https://codereview.webrtc.org/2979413002
Cr-Commit-Position: refs/heads/master@{#19138}
The critical-section's scope can be shrunk (we can hold the lock for a shorter time).
BUG=None
Review-Url: https://codereview.webrtc.org/2984973002
Cr-Commit-Position: refs/heads/master@{#19137}
use (already supported) nullptr as indication for no statistics
BUG=webrtc:8016
Review-Url: https://codereview.webrtc.org/2983363002
Cr-Commit-Position: refs/heads/master@{#19129}
A multiplication result doesn't fit in an int32_t type. This change
rewrites the code to avoid the overflowing multiplication.
Here y[0], y[1] are int16 numbers containing the (truncated) topmost
18 and (scaled Q2 to use the full int16) the least significant 13
bits of a 32-bit value. The change makes y[1] to be calculated
directly instead of using y[0] as an intermediate value.
TESTED=this change passes the bit exactness tests, and has also been
running on the audio_processing fuzzer with a CHECK comparing the
old and new value.
Bug: chromium:747202
Change-Id: Iafc69eb7391d494afdadf65f5b7f399a57bbe9a8
Reviewed-on: https://chromium-review.googlesource.com/580907
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19120}
These tests will be reenabled and updated after Opus has been updated in
Chromium and rolled into WebRTC.
BUG=737323, webrtc:8024
Review-Url: https://codereview.webrtc.org/2963673002
Cr-Commit-Position: refs/heads/master@{#19118}
Current implementation requires MouseCursorMonitor to understand the SourceId of
a DesktopCapturer implementation. But SourceId has different meanings across
various DesktopCapturer implementations. So this change decouples the
MouseCursorMonitor from DesktopCapturer, i.e. it does not need to know
DesktopCapturer anymore, instead it always returns the absolute position of the
mouse cursor. In DesktopAndCursorComposer, it can use the newly added
DesktopFrame::top_left() to decide the relative position of mouse cursor and the
DesktopFrame.
Bug: webrtc:7950
Change-Id: Idfbde5cb0f79ff0acf4ad1e9a0ac5126f1bb2e98
Reviewed-on: https://chromium-review.googlesource.com/575315
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19115}