VideoRendererGui may need to render incoming frames multiple times. We currently call VideoRenderer.renderFrameDone() while we still hold references to the OES texture. This CL makes a deep copy of the OES texture before calling renderFrameDone(). This will truly release the dependency to the incoming frame, so that video textures sources can rely on the renderFrameDone() callback.
This CL is a part of the plan in https://codereview.webrtc.org/1357923002/.
The texture copy doesn't cause any measurable performance difference on a Nexus 5 using VideoRendererGui in a AppRTCDemo loopback call.
BUG=webrtc:4993
TEST=Revert "Enable SurfaceViewRenderer for AppRTCDemo" https://codereview.webrtc.org/1356603004/ and try AppRTCDemo.
R=perkj@webrtc.org
Review URL: https://codereview.webrtc.org/1370113005 .
Cr-Commit-Position: refs/heads/master@{#10157}
This CL separates the types and code paths for textures vs byte buffers in MediaCodecVideoDecoder.dequeueOutputBuffer() and MediaCodecVideoDecoder::DeliverPendingOutputs(). The purpose is to prepare for lifetime management of textures received from the SurfaceTexture.
This CL is a part of the plan in https://codereview.webrtc.org/1357923002/.
BUG=webrtc:4993
Review URL: https://codereview.webrtc.org/1379383002
Cr-Commit-Position: refs/heads/master@{#10156}
The AEC dump was not self-contented enough in the sense that APM configuration is missing, and therefore, given an AEC dump, it is sometimes not clear how to reproduce problems.
This CL tries to address the problem.
Note that this cannot guarantee a perfect reproduction in all cases. Dumping from the middle of a call makes the initial states unknown and thus may make the result non-reproducible.
BUG=
TEST= 1. new dump in Chromium and unpack
2. unpack old dump
R=andrew@webrtc.org, peah@webrtc.org
Review URL: https://codereview.webrtc.org/1348903004 .
Cr-Commit-Position: refs/heads/master@{#10155}
Microsoft introduced modern app from win8. Modern apps can be used cross Microsoft's platforms.
It was confirmed from Microsoft that there is no support for modern app's window capture.
BUG=526883
Review URL: https://codereview.webrtc.org/1371383003
Cr-Commit-Position: refs/heads/master@{#10154}
Adds a loopback button that will connect to itself by simulating another client connection to the web socket server.
Adds an audio only mode switch.
BUG=
Review URL: https://codereview.webrtc.org/1334003002
Cr-Commit-Position: refs/heads/master@{#10153}
Poller thread is currently started in the constructor, so the first call
to PollStats() may happen even before the streams have been configured.
This will blow up on RTC_DCHECK_GT(expected_bitrate_bps_, 0);
Thread should instead be started on PerformTest() call.
BUG=
Review URL: https://codereview.webrtc.org/1378303004
Cr-Commit-Position: refs/heads/master@{#10149}
This CL should not change the behaviour of the decoder. The purpose is to prepare for lifetime management of textures received from the SurfaceTexture. The main change is to only use exceptions for error signaling in MediaCodecVideoDecoder.dequeueOutputBuffer() and MediaCodecVideoDecoder.releaseOutputBuffer(), not both exceptions and error return values.
BUG=webrtc:4993
R=perkj@webrtc.org
Review URL: https://codereview.webrtc.org/1383983003 .
Cr-Commit-Position: refs/heads/master@{#10148}
Always send the CL to the CQ, except if --skip-cq is provided.
Add extra CQ trybots, since the baremetal ones are no longer the default.
BUG=webrtc:4688
R=phoglund@webrtc.org
Review URL: https://codereview.webrtc.org/1375153004 .
Cr-Commit-Position: refs/heads/master@{#10146}
This allows us to pass packet meta data, such as transport sequence
number, to libjingle and further down to the socket implementation. A
similar struct already exist in libjingle, see rtc::PacketOptions in asyncpacketsocket.h.
BUG=4173
Review URL: https://codereview.webrtc.org/1376673004
Cr-Commit-Position: refs/heads/master@{#10144}
In order to minimize bisection ranges when the roll breaks, we want
to update the chromium_revision as often as possible.
Even if a roll doesn't bring in changed dependencies or Clang version,
it still brings in changes in the Chromium build toolchain.
The description now contains links to all dependencies that change
(if any).
BUG=webrtc:4688
R=phoglund@webrtc.org
Review URL: https://codereview.webrtc.org/1381963003 .
Cr-Commit-Position: refs/heads/master@{#10141}
Add a TBR= field to enable automated rolling. In some cases, add a
committer to the field, for other rolls: leave it empty.
Always run 'git pull', even if --dry-run is specified, as
it is often used to just generate an updated commit message to
update an existing CL with when updating it to match fixes in Chromium.
BUG=webrtc:4688
R=phoglund@webrtc.org
Review URL: https://codereview.webrtc.org/1369333010 .
Cr-Commit-Position: refs/heads/master@{#10140}
Since LKGR is sometimes lagging behind, always use HEAD to
minimize the number of commits to bisect when something breaks for us.
As long as the rolls are passing our CQ, we should be fine.
BUG=webrtc:4688
R=phoglund@webrtc.org
Review URL: https://codereview.webrtc.org/1379173002 .
Cr-Commit-Position: refs/heads/master@{#10139}
This CL changes the threshold where we consider a block to be static and
of sufficient quality to not spend bits/CPU encoding it.
Perf note: This change may result in a minor degradation of PSNR/SSIM
and available send bitrate. CPU usage and bitrate sent should however
be greately reduced.
BUG=webrtc:5015
Review URL: https://codereview.webrtc.org/1383533002
Cr-Commit-Position: refs/heads/master@{#10134}
In particular, if 14 short deltas were inserted (2 * capacity of status
vector chunk with 2bit items) followed by a large delta, that status
item would be dropped.
BUG=
Review URL: https://codereview.webrtc.org/1367193002
Cr-Commit-Position: refs/heads/master@{#10132}
This CL is a baby step towards consolidating the timestamps in cricket::VideoFrame and webrtc::VideoFrame, so that we can unify the frame classes in the future.
The elapsed time functionality is not really used. If a video sink wants to know the elapsed time since the first frame they can store the first timestamp themselves and calculate the time delta to later frames. This is already done in all video sinks that need the elapsed time. Having redundant timestamps in the frame classes is confusing and error prone.
TBR=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1324263004
Cr-Commit-Position: refs/heads/master@{#10131}
The GN changes in
7a73be6eb4
broke libvpx, so a fix in https://codereview.chromium.org/1368223002
was needed to unblock this roll.
Relevant changes:
* src/buildtools: 8d89c1b..0c88009
* src/third_party/boringssl/src: 4c60d35..8c9b878
* src/third_party/libvpx_new/source/libvpx: 90a109f..7d28d12
* src/third_party/libyuv: 62c49dc..d039ad6
* src/third_party/openmax_dl: 2eb98d8..37b900c
Details: 8cf53d6..681f0cd/DEPS
Clang version was not updated in this roll.
TBR=marpan@webrtc.org
Review URL: https://codereview.webrtc.org/1375233004
Cr-Commit-Position: refs/heads/master@{#10129}
On some devices (confirmed Samsung) the focus mode is not configured correctly by default.
The fix explicitly set the focus mode to FOCUS_MODE_CONTINUOUS_VIDEO if this mode is supported.
BUG=webrtc:4991
Review URL: https://codereview.webrtc.org/1338773002
Cr-Commit-Position: refs/heads/master@{#10128}
We used to link with all audio codecs unconditionally (except Opus);
this patch makes gyp and gn only link to the ones that are used.
This unfortunately fails to have a measurable impact on Chromium
binary size, at least on x86_64 Linux; it turns out that iLBC and iSAC
fix were already being excluded from Chromium by some other means,
likely just the linker omitting compilation units with no incoming
references.
(This was previously landed as revisions 10046 and 10060, and got
reverted because it broke several of the Chromium FYI bots.)
BUG=webrtc:4557
Review URL: https://codereview.webrtc.org/1368843003
Cr-Commit-Position: refs/heads/master@{#10127}
This makes the SSL exposed as uint16_t which is the IANA value. GetRfcSslCipherName is introduced to handle the conversion to names from ID. IANA value will be used for UMA reporting. Names will still be used for WebRTC stats reporting.
For SRTP, currently it's still string internally but is reported as IANA number.
This is used by the ongoing CL https://codereview.chromium.org/1335023002.
BUG=523033
Review URL: https://codereview.webrtc.org/1337673002
Cr-Commit-Position: refs/heads/master@{#10124}
This change filters out local ports when CF_HOST is not originally specified to prevent these ports from sending out STUN which leaks IP address.
BUG=webrtc:4946
R=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1378753003 .
Cr-Commit-Position: refs/heads/master@{#10121}
Connecting TransportChannelImpls directly to the TransportController,
and removing redundant signal forwarding/state aggregating code from
Transport. This brings us closer to just getting rid of Transport
entirely.
R=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1380563002 .
Cr-Commit-Position: refs/heads/master@{#10120}
This CL refactors RendererCommon.getSamplingMatrix() so it does not have any dependecy to SurfaceTeture. The purpose is to prepare for a change in how texture frames are represented - only the texture matrix will be exposed, not the SurfaceTexture itself. This CL also adds an extra test for RendererCommon.rotateTextureMatrix().
R=hbos@webrtc.org
Review URL: https://codereview.webrtc.org/1375593002 .
Cr-Commit-Position: refs/heads/master@{#10118}
Reason for revert:
Relanding with SetConfiguration not pure virtual.
Original issue's description:
> Revert of Adding PeerConnectionInterface::SetConfiguration method. (patchset #4 id:60001 of https://codereview.webrtc.org/1317353005/ )
>
> Reason for revert:
> Broke FYI bots because SetConfiguration is pure virtual and MockPeerConnectionImpl doesn't implement it. Need to reland with SetConfiguration not pure virtual.
>
> Original issue's description:
> > Adding PeerConnectionInterface::SetConfiguration method.
> >
> > Also updated the JNI and Objective-C bindings. Later, will have a CL to
> > remove UpdateIce, which this method effectively replaces.
> >
> > BUG=webrtc:4945
> >
> > Committed: https://crrev.com/70702afbcb8418fe93747e7ed63bcbf5e56b90e9
> > Cr-Commit-Position: refs/heads/master@{#10040}
>
> TBR=guoweis@webrtc.org,pthatcher@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4945
>
> Committed: https://crrev.com/7603c76ab077b1e2033bb179595129bd96797345
> Cr-Commit-Position: refs/heads/master@{#10041}
TBR=guoweis@webrtc.org,pthatcher@webrtc.org,tkchin@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4945
Review URL: https://codereview.webrtc.org/1361273002
Cr-Commit-Position: refs/heads/master@{#10112}