Before this change we could crash in Debug when WebRTC audio was first
interrupted and then resumed again. The reason was that the new audio
stream stems from a new native I/O thread and that triggered thread
checkers. With this change, failing thread checkers are detached when
audio is interrupted to ensure that they don't fail when audio is restarted.
NOTRY=TRUE
Bug: webrtc:8126
Change-Id: Ib36ff6bc942477730aba60066f049ed0c43d3901
Reviewed-on: https://chromium-review.googlesource.com/628716
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19465}
Maximum of interframe delay is calculated over moving window in
ReceiveStatistics proxy now and reported via GetStats. Name of a metric
is also changed.
BUG=none
Review-Url: https://codereview.webrtc.org/2995143002
Cr-Commit-Position: refs/heads/master@{#19463}
no-unused-lambda-capture was suppressed, but it's been decided as desireable to stop suppressing it. This CL fixes places in the code that trigger it.
1. Some unnecessary captures removed.
2. s/constexpr/const when capturing a float by value - this is good enough to stop the error.
3. Complete removal of the constexpr/const-modifier for int-types as a workaround.
BUG=webrtc:7133
Review-Url: https://codereview.webrtc.org/3005433002
Cr-Commit-Position: refs/heads/master@{#19462}
Packets recovered by ULPFEC enter through
RtpVideoStreamReceiver::OnRecoveredPacket, which does RTP
header extension parsing. Packets recovered by FlexFEC, however,
enter through Call::OnRecoveredPacket, which prior to this
CL did not do RTP header extension parsing.
The lack of RTP header extension parsing for FlexFEC packets is a
regression since https://codereview.webrtc.org/2886993005/.
TESTED=Using Android app with FlexFEC field trial enabled.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/3002023002
Cr-Commit-Position: refs/heads/master@{#19460}
On Windows a window may be covered by its own child window. So this change also
detects child windows by using EnumChildWindow().
The tooltip or context menu of the child window still cannot be detected after
this change. See bug for details.
Bug: webrtc:8062
Change-Id: I8455a9206d6a1d9da61013ac9debba4d3edae7d8
Reviewed-on: https://chromium-review.googlesource.com/619728
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19457}
This CL ensures that AEC3 recovers more quickly when capture data is
lost in such a manner that the echo path, as seen by AEC3, becomes
noncausal due to the AEC3 buffer misalignment caused by the data loss.
The CL adds the assumption of a minimum echo path delay of 5 blocks
and makes the hysteresis in the delay selection one-sided.
BUG=chromium:757796, webrtc:8131
Review-Url: https://codereview.webrtc.org/2998223002
Cr-Commit-Position: refs/heads/master@{#19454}
Also, use it to save worst psnr frame in video quality tests. It is indented that these saved frames from perfbots will be uploaded to the cloud and will be available in chrome perf dashboard. Because of that size of the saved frame is somewhat an issue. Also, y4m is not convenient to view.
BUG=webrtc:8030
Review-Url: https://codereview.webrtc.org/2998143002
Cr-Commit-Position: refs/heads/master@{#19450}
Moved the headers video_receive_stream.h and video_send_stream.h from
webrtc/ into webrtc/call/ as part of the Slim and Modular work.
The GN target webrtc:video_stream_api has moved to
webrtc/call:video_stream_api.
There are headers left in webrtc/ with the same name including the
moved headers in webrtc/call/ for not breaking external projects
depending on WebRTC.
At the same time, some minor cleanup is done: Non-pure-virtual functions declared in the two affected headers now have definitions in the same target. After making this change, our 'chromium-style' plugin detected some style violations that have now been fixed: non-inlined constructors and destructors have been added to a number of classes, both inside the GN target of the two affected headers, and in other targets.
BUG=webrtc:8107
Review-Url: https://codereview.webrtc.org/3000253002
Cr-Commit-Position: refs/heads/master@{#19448}
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.
BUG=webrtc:7821, webrtc:7822
Review-Url: https://codereview.webrtc.org/2997713002
Cr-Commit-Position: refs/heads/master@{#19446}
DirectTransport has so far used its own thread, which led to a different threading-model for in the unit-tests than is used in actual WebRTC. Because of that, some critical-sections that weren't truly necessary in WebRTC could not be replaced with thread-checks, because those checks failed in unit-tests.
This CL introduces SingleThreadedTaskQueue - a TaskQueue which guarantees to run all of its tasks on the same thread (rtc::TaskQueue doesn't guarantee that on Mac) - and uses that for DirectTransport. CLs based on top of this will uncomment thread-checks which had to be commented out before, and remove unnecessary critical-sections.
Future work would probably replace the thread-checkers by more sophisticated serialized-access checks, allowing us to move from the SingleThreadedTaskQueue to a normal TaskQueue.
Related implementation notes:
* This CL has made DirectTransport::StopSending() superfluous, and so it was deleted.
BUG=webrtc:8113, webrtc:7405, webrtc:8056, webrtc:8116
Review-Url: https://codereview.webrtc.org/2998923002
Cr-Commit-Position: refs/heads/master@{#19445}
This test is and should be independent of RTP, so we don't need the
information provided in this struct.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2995403002
Cr-Commit-Position: refs/heads/master@{#19443}
Reason for revert:
We are not certain this is the behavior we want.
Original issue's description:
> Fix the video buffer size should take rtt into consideration
>
> BUG=webrtc:8010
>
> Review-Url: https://codereview.webrtc.org/2980413002
> Cr-Commit-Position: refs/heads/master@{#19285}
> Committed: f1e08d0b58TBR=sprang@webrtc.org,gustavogb@gmail.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8010
Review-Url: https://codereview.webrtc.org/3002033002
Cr-Commit-Position: refs/heads/master@{#19442}
This is done with a script found in issue webrtc:5118.
The related header include is also removed.
Bug: webrtc:5118
Change-Id: I9d5cd7b8d0cbaae292632dd945e23709f0e7f7d7
Reviewed-on: https://chromium-review.googlesource.com/602135
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19441}
VideoSink is not assumed to take ownership of the frame, so it is not
necessary to release it unless it is retained for future use.
BUG=webrtc:7749
Review-Url: https://codereview.webrtc.org/3003563002
Cr-Commit-Position: refs/heads/master@{#19440}
Reason for revert:
Breaks the internal bots.
Root cause: The "public_deps" is defined behind an "if" condition which may not be true.
Original issue's description:
> Modify profiles for H264 encode SW fallback
>
> We have only Constrained Baseline profile available in SW encoder impl
> so modify the profile to that in case of a fallback
>
> BUG=chromium:735959
>
> Review-Url: https://codereview.webrtc.org/2997913003
> Cr-Commit-Position: refs/heads/master@{#19436}
> Committed: 1fd66656b3TBR=magjed@webrtc.org,emircan@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:735959
Review-Url: https://codereview.webrtc.org/2995373002
Cr-Commit-Position: refs/heads/master@{#19438}
We have only Constrained Baseline profile available in SW encoder impl
so modify the profile to that in case of a fallback
BUG=chromium:735959
Review-Url: https://codereview.webrtc.org/2997913003
Cr-Commit-Position: refs/heads/master@{#19436}
During a period of about one month we have only built with clang and not msvc, and during this period code that does not build with msvc have been submitted.
BUG=webrtc:8122
Review-Url: https://codereview.webrtc.org/2999343002
Cr-Commit-Position: refs/heads/master@{#19433}
Also fixes a small bug in EglRenderer where if it was passed a custom
frame, it would leak a reference.
BUG=b/64887218
Review-Url: https://codereview.webrtc.org/3003533002
Cr-Commit-Position: refs/heads/master@{#19432}
Access to I420 data should be done on an RTCI420Buffer that can be
accessed through the toI420 method, and not on an RTCVideoFrame
directly.
BUG=webrtc:7785
Review-Url: https://codereview.webrtc.org/2997453002
Cr-Commit-Position: refs/heads/master@{#19431}
Access to a native buffer should be through RTCVideoFrame.buffer
instead.
BUG=webrtc:7785
Review-Url: https://codereview.webrtc.org/2990253002
Cr-Commit-Position: refs/heads/master@{#19430}
* Guard members with a SequencedTaskChecker.
* Intercept encoder/decoder callbacks, and post onto task queue if needed.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2996253002
Cr-Commit-Position: refs/heads/master@{#19428}
The LockManagerOperation global function uses void** which does not work
well with the thread_annotations.h macros and produce compiler warnings
on clang (chromium default). Workarounds to this is hacky and unhelpful
so we disable the analysis for this function, which isn't helpful in
this case anyway.
webrtc_h264_config is no longer needed and is removed.
BUG=8090, 8119
Review-Url: https://codereview.webrtc.org/3000263002
Cr-Commit-Position: refs/heads/master@{#19425}
* Rename some members.
* Shorten visualization file names.
* Make some member functions static, in preparation for moving them
to be helper functions in an anonymous namespace.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/3001193002
Cr-Commit-Position: refs/heads/master@{#19424}
* Make ProcessFrame return void.
* Make |encode_callback_| and |decode_callback_| direct members.
* Remove ::EncodedFrameSize() and ::EncodedFrameType()
* Remove unused |timestamp| member from FrameInfo.
* Reorder printf output from PrintCodecSettings.
* Make some member functions const.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2998063002
Cr-Commit-Position: refs/heads/master@{#19421}
Clang is enabled by default and we currently lack coverage for building on Windows
with MSVC (see crbug.com/757293). This should unblock rolling WebRTC into
Chromium DEPS. We need to improve our trybot coverage for standalone WebRTC
to prevent things like this in the future though (crbug.com/756840).
BUG=webrtc:8119,chromium:756840,chromium:757293
TBR=hbos@webrtc.org
NOTRY=True
Review-Url: https://codereview.webrtc.org/3003473002
Cr-Commit-Position: refs/heads/master@{#19420}
Reason for revert:
Breaks webrtc.linux
Original issue's description:
> Add Jpeg frame writer for test support.
>
> Also, use it to save worst psnr frame in video quality tests. It is indented that these saved frames from perfbots will be uploaded to the cloud and will be available in chrome perf dashboard. Because of that size of the saved frame is somewhat an issue. Also, y4m is not convenient to view.
>
> BUG=webrtc:8030
>
> Review-Url: https://codereview.webrtc.org/2990563002
> Cr-Commit-Position: refs/heads/master@{#19414}
> Committed: 26e5cbd6bbTBR=stefan@webrtc.org,pbos@webrtc.org,sprang@webrtc.org,ilnik@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8030
Review-Url: https://codereview.webrtc.org/2998133002
Cr-Commit-Position: refs/heads/master@{#19419}
1) Entering PROBE_RTT when necessary.
2) Congestion window gain of 0.65 instead of constant 4 packets.
3) {1.1, 0.9} pair instead of {1.25, 0.75}
4) Recovery mode.
5) No reaction to losses due to Recovery mode's implementation.
6) Supports encoder.
7) A new test compiling most of the simulation tests.
8) Bucket for high gain phase, disabled by default.
9) Pacer specific to BBR.
BUG=webrtc:7713
Review-Url: https://codereview.webrtc.org/2999073002
Cr-Commit-Position: refs/heads/master@{#19418}
Converts RtcpDemuxerTest to use a test fixture which creates the
RtcpDemuxer under test and wraps sink adding functions to
automatically remove added sinks at the end of the test case.
Also adds domain-specific expectation macros to improve readability
of test cases.
Bug: None
Change-Id: I2416ce67c4fc8edc9ecc2cc98d191562c3bf81e4
Reviewed-on: https://chromium-review.googlesource.com/601049
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19417}