This CL replaces one 'int32_t' with 'uint32_t'. The value is a
non-negative energy, and the number of leading zeros is
computed. During computation, a shift can cause it to overflow.
Issue was found by the Audio Processing fuzzer.
Bug: chromium:778939, chromium:778921, chromium:778919
Change-Id: I3d7e0b547e6b0edcd9995903517ea851142a08c1
Reviewed-on: https://webrtc-review.googlesource.com/16433
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20470}
The ObjC API (the files in sdk/objc/Framework/Headers/WebRTC/) needs to
be pure ObjC. The changes that are reverted here introduced C++ which
turns it into ObjC++.
We don't have a test protectcing this right now, but it's probably
something we should add to catch changes like this in the future.
TBR=alexnarest@webrtc.org,deadbeef@webrtc.org
Bug: webrtc:8243
Change-Id: Idea688f4014cd44c27cf2cb2a5ec8a9ea7da3c00
Reviewed-on: https://webrtc-review.googlesource.com/16429
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20463}
Second attempt to land https://webrtc-review.googlesource.com/c/src/+/15481.
This time with an extra (dummy) interface to ensure that we don't
break downstream clients.
Improves native Android audio implementations.
Bug: webrtc:8453
Change-Id: I659a3013ae523a2588e4c41ca44b7d0d2d65efb7
Reviewed-on: https://webrtc-review.googlesource.com/16425
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20462}
Always enabling verbose mode means about 100% more text is printed,
but this should not be a problem as the only time that we explicitly
look at the logs is when the bots are failing, or when we want to save
all output for plotting.
BUG=webrtc:8448
Change-Id: Ia5feab5220d047440d15cddb7d3fbca1c5a4aaf5
Reviewed-on: https://webrtc-review.googlesource.com/16140
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20461}
DEPS roll is blocked on it because it pins a broken clang version,
but Chromium has no commitment to fixing it.
Bug: chromium:774973
Change-Id: Id04fadde599293bca7b6c25faa2e9926c1265dc7
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/16423
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20460}
Always use the packetization formely known as kEqualSize.
The RTPFragementation header is ignored, which is no change
in behaviour, since the caller previously always passed null.
Bug: webrtc:6471
Change-Id: Id9e2f985280c2ee8cc33fcf0e5c1fc3ee61c1aff
Reviewed-on: https://webrtc-review.googlesource.com/15222
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20459}
In order to avoid conflicts with downstream projects WebRTC is going
to prefix its LOG macros with RTC_.
This CL renames all the LOG macros to macros with the RTC_ prefix and
it also defines backward compatibility LOG macros in order to let
downstream projects to switch to RTC_ prefixed macros without breaking
them.
A follow-up CL will remove the usage of LOG macros in WebRTC.
Bug: webrtc:8452
Change-Id: Ic3e495cba6c772f65259dc65ee278560a59d02d7
Reviewed-on: https://webrtc-review.googlesource.com/15442
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20456}
CGWindowID is 32-bit, WindowId is 64-bit, using WindowId to receive int value
from CFNumberGetValue() causes the top 32 bits to be random. WindowFinderMac is
impacted by this issue and returns a random number. WindowCapturerMac cannot
match the window_id_ with the the random number.
Meanwhile MouseCursorMonitorMac uses window title to match "Dock" window. See,
https://cs.chromium.org/chromium/src/third_party/webrtc/modules/desktop_capture/mouse_cursor_monitor_mac.mm?rcl=a194e58e799ccab6c999998e5d0f75725aa3f748&l=174
This logic should not be necessary on 10.12 or upper, the name of dock window
is not "Dock" anymore. But to ensure the consistency on old platforms, I have
also added this logic back into GetWindowList() function.
Bug: chromium:778049
Change-Id: Ie827bcd5d31f2ca69ff24c24cf640cb7cc50d419
Reviewed-on: https://webrtc-review.googlesource.com/15782
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#20451}
This is done in preparation to make all javac warnings into errors for
WebRTC targets.
Bug: webrtc:6597
Change-Id: I402043157bd75943adf0de52111e5a1bb179c6d1
Reviewed-on: https://webrtc-review.googlesource.com/15104
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20450}
Apparently WebSocketObserver gets garbage collected if it is not stored
by us. This caused some external tests to break.
Bug: None
Change-Id: If62786e84f84a5a63172d67962bb4de8ae3e8479
Reviewed-on: https://webrtc-review.googlesource.com/16100
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20449}
Summary:
Adds AudioTrackStartErrorCode to separate different types of error
codes in combination with StartPlayout.
Harmonizes WebRtcAudioRecord and WebRtcAudioTrack implementations
to ensure that init/start/stop is performed identically.
Adds thread checking in WebRtcAudio track.
Bug: webrtc:8453
Change-Id: Ic913e888ff9493c9cc748a7b4dae43eb6b37fa85
Reviewed-on: https://webrtc-review.googlesource.com/15481
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20448}
This reverts commit 30915a742d86df55ac5c04501c0e8104675a612e.
Reason for revert: Breaks downstream.
Original change's description:
> Simple Default ObjC video codec factories.
>
> Move the simple video encoder/decoder factory from AppRTCMobile into the
> public API so users who don't have special requirements for video codecs
> can easily get started.
>
> Also clean up the API a little.
>
> This CL replaces the more flexible default factories in
> https://webrtc-review.googlesource.com/c/src/+/7741 and clients that
> want to implement their own codecs will have to supply their own
> encoder/decoder factories as well. The benefits of the approach in
> this CL are a simpler API and less effects on the rest of the code.
>
> Bug: None
> Change-Id: I4ed94090d778b4fc38b49864de1d4de4ff125d6a
> Reviewed-on: https://webrtc-review.googlesource.com/15141
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20441}
TBR=magjed@webrtc.org,andersc@webrtc.org,kthelgason@webrtc.org
Change-Id: I3d4395cc9667e6c6cdb33a3b0f5c5fb5bfde9028
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/15182
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20446}
I want to move away from the old encoder factory interface
cricket::WebRtcEncoderFactory to the new webrtc::VideoEncoderFactory. I
created a new webrtc::SdpVideoFormat that essentially is a subset of the
cricket::VideoCodec variables. E.g. the encoder factories shouldn't have
to assign payload types to the codecs, so the payload is not part of
webrtc::SdpVideoFormat. I also didn't add the "feedback_params" that is
used in cricket::VideoCodec to webrtc::SdpVideoFormat. This is causing
problems now, because the internal encoder factory is adding flexfec
feedback params. To avoid this problem, I add these feedback params in
WebRtcVideoEngine instead, like we do for the other codecs.
Bug: webrtc:7925
Change-Id: I7c6ae8d1e1f47f3631c4804c223ec21da8d73685
Reviewed-on: https://webrtc-review.googlesource.com/15223
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20444}
Adds a constructor for DirectTransport that takes a pointer to an instance
of a class derived from FakeNetworkPipe. Said class can override Process()
and SendPacket(...) members thereby emulating any desired network behavior.
Bug: b/67487983
Change-Id: I829fd3506124db61587af19192a14fdf62b06ca5
Reviewed-on: https://webrtc-review.googlesource.com/14620
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20443}
Move the simple video encoder/decoder factory from AppRTCMobile into the
public API so users who don't have special requirements for video codecs
can easily get started.
Also clean up the API a little.
This CL replaces the more flexible default factories in
https://webrtc-review.googlesource.com/c/src/+/7741 and clients that
want to implement their own codecs will have to supply their own
encoder/decoder factories as well. The benefits of the approach in
this CL are a simpler API and less effects on the rest of the code.
Bug: None
Change-Id: I4ed94090d778b4fc38b49864de1d4de4ff125d6a
Reviewed-on: https://webrtc-review.googlesource.com/15141
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20441}
Old CreateVideoDecoder interface is deprecated. This allows
VideoDecoderFactoryWrapper to create codecs for types that WebRTC
doesn't know about.
Bug: webrtc:8140
Change-Id: I69aa1a0164642b4e4377daa1abeb9039c04fd884
Reviewed-on: https://webrtc-review.googlesource.com/15401
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20438}
This CL lowers the threshold for delay change detection in AEC3.
This makes the delay decisions more stable.
TBR=gustaf@webrtc.org
Bug: chromium:778396,webrtc:8451
Change-Id: I8b015455399d696172b7c0beb033caf508f426e9
Reviewed-on: https://webrtc-review.googlesource.com/15541
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20433}
{root_x, root_y} should be used to report the absolute cursor position in
MouseCursorMonitorX11.
Bug: chromium:778035
Change-Id: I421005d52786a57da8e8c3901bdf4afa2843ff24
Reviewed-on: https://webrtc-review.googlesource.com/15680
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#20432}
Some death tests for AEC3 cause memory leaks on trybots. This CL
temporarily disables BlockProcessor.VerifyRenderBlockSizeCheck.
Bug: webrtc:8449,webrtc:6985
Change-Id: I2900a73f7c7d5bf0e8b58a20f9a40bd5d654629a
Reviewed-on: https://webrtc-review.googlesource.com/15500
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20431}
This CL replaces 5 left shifts where the shifted value may be
negative. The shifts are replaced with equivalent multiplications.
Bug: chromium:777231, chromium:776719, chromium:776624, chromium:776286
Change-Id: Ifb27d5506eac779e60f238432bdf9e4bc5b2da4c
Reviewed-on: https://webrtc-review.googlesource.com/14800
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20430}
When audio_processing_fuzzer runs with 'DCHECK_ALWAYS_ON', it crashes
when both AEC and AECM is enabled at the same time. This change
detects that case and fixes
https://clusterfuzz.com/v2/testcase-detail/6389429496446976.
It also removes an unnecessary safeguard that didn't allow fuzzing
with 8kHz input signals.
Bug: chromium:776358
Change-Id: I33c18a2a235e50ae410f7be24637872823e432eb
Reviewed-on: https://webrtc-review.googlesource.com/15320
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20428}
Unlike all the other API directories, api/ is the root of an entire
tree of directories that are also API directories.
BUG=webrtc:8445
Change-Id: I218befe6fb6113b95599512f062ebe63abc98889
Reviewed-on: https://webrtc-review.googlesource.com/15321
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20427}
We've done this previously with the other audio encoders, but Opus had
to wait until all external users had been updated.
BUG=webrtc:7847
Change-Id: I70422d7b6c715f32a43bee88febcf6b6155e18b3
Reviewed-on: https://webrtc-review.googlesource.com/8000
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20424}