This CL fixes two issues. The first is a tsan complaint about a data
race. The test had a fix to make it deterministic but the race still
existed, so this adds locks around the critical section to appease
the sanitizer.
The second, more annoying issue, is that occasionally the test would
start before the encoder had been configured, as this happens
asynchronously on a task queue. This would cause frames to be queued
up and dropped, but not where we expected them to be dropped.
This was causing some tests to fail very occasionally. I've added
a synchronisation mechanism by posting a barrier task on the queue
and not proceeding with the tests until it finishes.
BUG=webrtc:7217, webrtc:7232, webrtc:7260
Review-Url: https://codereview.webrtc.org/2722183004
Cr-Commit-Position: refs/heads/master@{#16995}
Reason for revert:
Misses deps for RTC_HISTOGRAM in Chrome.
email sent separately.
Also see https://codereview.chromium.org/2725143004/.
Original issue's description:
> BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
>
> DXGI capturer highly depends on video adapter and its driver, as well as Windows
> itself. I recently found it cannot work on my virtualbox instance any more,
> which indicates it may not work well on some specific systems. What worse is,
> the APIs do not return a failure in such case.
>
> So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
> pixels in the frame returned by a DesktopCapturer implementation. If all the
> pixels selected are blank, this wrapper returns a failure. A typical usage is to
> combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
> and use GDI capturer in case of failure.
>
> Usually less than 500 pixels are checked, so the
> BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.
>
> This change is expected to resolve bug 682112 in another dimension.
>
> BUG=682112
>
> Review-Url: https://codereview.webrtc.org/2709523003
> Cr-Commit-Position: refs/heads/master@{#16984}
> Committed: c4e9d210b3TBR=sergeyu@chromium.org,zijiehe@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=682112
Review-Url: https://codereview.webrtc.org/2726983005
Cr-Commit-Position: refs/heads/master@{#16993}
Reason for revert:
I wasn't able to resolve it with that CL so I'll have to revert this by now.
Will have another look at this when time permits.
Original issue's description:
> Enable GN check for webrtc/examples
>
> BUG=webrtc:6828
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2714343002
> Cr-Commit-Position: refs/heads/master@{#16987}
> Committed: 81db74a384TBR=perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6828
Review-Url: https://codereview.webrtc.org/2727253003
Cr-Commit-Position: refs/heads/master@{#16991}
Reason for revert:
Fails Chromium builds:
b/c/b/linux/src/buildtools/linux64/gn gen //out/Release --check
-> returned 1
ERROR at //third_party/webrtc/api/BUILD.gn:186:5: Can't load input file.
"//webrtc/test:test_support",
^-------------------------
Original issue's description:
> GN: Include webrtc/api targets even if rtc_include_tests=false
>
> The main purpose with the rtc_include_tests GN variable is to avoid
> generating and compiling all the test targets.
> Some of our examples have dependencies on the test headers in API,
> so therefore this change is relaxing that condition.
>
> BUG=webrtc:6828
> NOTRY=True
> TBR=ehmaldonado@webrtc.org,
>
> Review-Url: https://codereview.webrtc.org/2725053008
> Cr-Commit-Position: refs/heads/master@{#16989}
> Committed: a769ceba65TBR=ehmaldonado@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6828
Review-Url: https://codereview.webrtc.org/2728073002
Cr-Commit-Position: refs/heads/master@{#16990}
The main purpose with the rtc_include_tests GN variable is to avoid
generating and compiling all the test targets.
Some of our examples have dependencies on the test headers in API,
so therefore this change is relaxing that condition.
BUG=webrtc:6828
NOTRY=True
TBR=ehmaldonado@webrtc.org,
Review-Url: https://codereview.webrtc.org/2725053008
Cr-Commit-Position: refs/heads/master@{#16989}
Mostly just copied from Chromium, replacing instances of "chromium" with
"webrtc".
BUG=None
NOTRY=True
Review-Url: https://codereview.webrtc.org/2725233002
Cr-Commit-Position: refs/heads/master@{#16988}
DXGI capturer highly depends on video adapter and its driver, as well as Windows
itself. I recently found it cannot work on my virtualbox instance any more,
which indicates it may not work well on some specific systems. What worse is,
the APIs do not return a failure in such case.
So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
pixels in the frame returned by a DesktopCapturer implementation. If all the
pixels selected are blank, this wrapper returns a failure. A typical usage is to
combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
and use GDI capturer in case of failure.
Usually less than 500 pixels are checked, so the
BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.
This change is expected to resolve bug 682112 in another dimension.
BUG=682112
Review-Url: https://codereview.webrtc.org/2709523003
Cr-Commit-Position: refs/heads/master@{#16984}
It seems to me that we're currently just picking the first CN codec, rather than the one that matches the clock rate of the voice codec. The only test I've gotten to fail by changing this behavior is the one that's also changed in this CL, which explicitly expects a CN codec to be chosen even though there's none matching.
BUG=webrtc:7282
Review-Url: https://codereview.webrtc.org/2707133007
Cr-Commit-Position: refs/heads/master@{#16979}
Callback used to be reported periodically (each 1000ms) but is now reported per frame.
BUG=webrtc:5514
Review-Url: https://codereview.webrtc.org/2729903002
Cr-Commit-Position: refs/heads/master@{#16977}
Reason for revert:
Let's revert this while we investigate a problem in H264 bitstream parser.
Original issue's description:
> Add QP for FFmpeg H264 decoder.
>
> BUG=webrtc:6541
>
> Review-Url: https://codereview.webrtc.org/2649133007
> Cr-Commit-Position: refs/heads/master@{#16942}
> Committed: 879f4f6c31TBR=sprang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6541, chromium:697795
Review-Url: https://codereview.webrtc.org/2726973003
Cr-Commit-Position: refs/heads/master@{#16974}
This adds a simple mechanism that provides protection against
implementations that use the legacy callback type in PlatformThread
and are prone to entering a busy loop.
Enabled only in DCHECK enabled builds.
BUG=webrtc:7187
Review-Url: https://codereview.webrtc.org/2720223003
Cr-Commit-Position: refs/heads/master@{#16973}
Reason for revert:
Investigation complete.
Original issue's description:
> H264BitstreamParser: Log nalu type when parsing slice type fails.
>
> Decreases all parsing failures to a warning because they are not
> critical errors. This is a speculative commit to help diagnose
> why bots are failing.
>
> BUG=chromium:697795
> TBR=stefan@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2726833005
> Cr-Commit-Position: refs/heads/master@{#16966}
> Committed: 6bce6ad485TBR=stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:697795
Review-Url: https://codereview.webrtc.org/2723883004
Cr-Commit-Position: refs/heads/master@{#16972}
Reason for revert:
Causes regression in VP8 simulcast metrics (receive time, encoded frame size, etc) as two excluded streams' decoders request keyframes periodically, which affects metrics of a selected stream.
Original issue's description:
> In full-stack tests: fixed VP8 simulcast to not decode non-selected streams.
>
> BUG=webrtc:7095
>
> Review-Url: https://codereview.webrtc.org/2728553003
> Cr-Commit-Position: refs/heads/master@{#16948}
> Committed: 8dccd67520TBR=sprang@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7095
Review-Url: https://codereview.webrtc.org/2729623005
Cr-Commit-Position: refs/heads/master@{#16967}
Decreases all parsing failures to a warning because they are not
critical errors. This is a speculative commit to help diagnose
why bots are failing.
BUG=chromium:697795
TBR=stefan@webrtc.org
Review-Url: https://codereview.webrtc.org/2726833005
Cr-Commit-Position: refs/heads/master@{#16966}
Introduing IceTransportInternal2 is a temporary fix to switch the base
class of P2PTransportChannel to IceTransportInternal without breaking
Chromium. It is removed in this CL.
Reland this CL after Chromium doesn't depend on this.
BUG=webrtc:6951
Review-Url: https://codereview.webrtc.org/2632563002
Cr-Original-Commit-Position: refs/heads/master@{#16131}
Committed: c7953fa716
Review-Url: https://codereview.webrtc.org/2632563002
Cr-Commit-Position: refs/heads/master@{#16960}
It's the faster, less strict cousin of checked_cast.
BUG=none
Review-Url: https://codereview.webrtc.org/2714063002
Cr-Commit-Position: refs/heads/master@{#16958}
With ENABLE_EXTERNAL_AUTH, external auth will only be used depending
on the selected cipher (allowed for non-GCM, not allowed for GCM).
BUG=webrtc:5222, chromium:628400
Review-Url: https://codereview.webrtc.org/2720663003
Cr-Commit-Position: refs/heads/master@{#16955}