This eliminates some instances rtc:Optional and makes the code
simpler. No changes in defaults or other behaviour are intended.
BUG=webrtc:4906
Review URL: https://codereview.webrtc.org/1818033002
Cr-Commit-Position: refs/heads/master@{#12326}
The QuicTransportChannel now creates outgoing QUIC streams
for sending a message, and incoming QUIC streams for
receiving a message. It also signals when the QUIC connection
closes.
Split from CL https://codereview.webrtc.org/1844803002/.
BUG=
Review URL: https://codereview.webrtc.org/1856513002
Cr-Commit-Position: refs/heads/master@{#12323}
Added packet type RpsiItem to destinguish parsed rpsi header and Rpsi body
preventing handling two half-valid (header-only) rpsi packets as one valid,
making test parser calculate rpsi packet once instead of twice.
Added check padding bits doesn't exceed native bit string length.
Marking rpsi received moved after it is validated.
BUG=600977
Review URL: https://codereview.webrtc.org/1880443002
Cr-Commit-Position: refs/heads/master@{#12318}
This logic currently prevents loopback calls on Nexus 5X when it's
slightly overloaded to maintain input framerate since encoding at ~25fps
with one framedrop results in >70ms between frames naturally.
With this change applied Nexus 5X can maintain ~25fps both in and out
without building excessive latency (>2 frames) (this is now covered by
CPU adaptation outside the codec wrapper).
BUG=
R=glaznev@webrtc.org
Review URL: https://codereview.webrtc.org/1854413004 .
Cr-Commit-Position: refs/heads/master@{#12317}
Support for reading the newly added fields will be added in a another CL.
BUG=webrtc:5759, webrtc:5724
Review URL: https://codereview.webrtc.org/1878533002
Cr-Commit-Position: refs/heads/master@{#12316}
Adds tracing to AudioDeviceModuleImpl::InitRecording and
AudioDeviceModuleImpl::StartRecording to visualize that they are a
significant part of startup time in performance recordings.
BUG=webrtc:5723
R=henrika@webrtc.org
Review URL: https://codereview.webrtc.org/1874983003 .
Cr-Commit-Position: refs/heads/master@{#12315}
FakeVideoRenderer, only registering itself on a
VideoSourceInterface on construction and removing itself on
destruction. Let it inherit FakeVideoRenderer, instead of
proxying all methods.
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1828173002
Cr-Commit-Position: refs/heads/master@{#12313}
This is done in order to allow the ringbuffer to be recorded using protobufs.
The actual recording will be added in other CLs.
BUG=webrtc:5724
Review URL: https://codereview.webrtc.org/1862513007
Cr-Commit-Position: refs/heads/master@{#12308}
-changed filenames to *.cc
-fixed issues with implicit casts causing build errors.
All other CL warnings were ignored as the original
code is not changed, merely moved.
BUG=webrtc:5724
NOPRESUBMIT=true
Review URL: https://codereview.webrtc.org/1857153002
Cr-Commit-Position: refs/heads/master@{#12307}
rate that is higher than the specified rate, and not
the closest native rate the need for a name change has been
raised. This CL addresses that.
BUG=webrtc:5298
Review URL: https://codereview.webrtc.org/1863023002
Cr-Commit-Position: refs/heads/master@{#12302}
With this CL, legacy OpenSSL should work again.
BUG=webrtc:5714
Review URL: https://codereview.webrtc.org/1868033005
Cr-Commit-Position: refs/heads/master@{#12300}
This change adds the Objective C API functions to get and set RtpSender's
RtpParameters, which allows setting bitrate limits for audio and video and
turning off RtpSenders to pre-initialize the encoder.
This CL adds only the smallest set of methods required to support bitrate
limiting - there is no way to create an RtpSender, for example, or to set
its track. The only supported functionality is this:
RTCPeerConnection.senders - a read-only property returning the array
of all RTCRtpSenders for the connection.
RTCRtpSender.parameters - a read-only property returning the current
parameters
RTCRtpSender.setParameters: - a method to change the parameters.
RTCRtpSender.track - a read-only property returning the
RTCMediaStreamTrack corresponding to the sender. It is necessary
to be able to identify RTCRtpSenders for video and audio. The
track object is of the base RTCMediaStreamTrack type, not of the
specific subclass for audio and video - just like it is in the
Java API.
BUG=
Review URL: https://codereview.webrtc.org/1854393002
Cr-Commit-Position: refs/heads/master@{#12297}
This is a follow up to https://codereview.webrtc.org/1859933002 to change this test also to use a separate worker thread.
PeerConnectionEndToEndTest currently use the current thread both as a signaling thread and a worker thread. Although convenient while debugging, it can also hide real bugs. An example is https://codereview.webrtc.org/1766653002/#ps420001 where the worker thread is deadlocked in the track proxy due to that the worker thread waits for the signaling thread but the proxy in turns invokes the worker thread..... That bug was only discovered on Android.
BUG= webrtc:5426
Review URL: https://codereview.webrtc.org/1860423002
Cr-Commit-Position: refs/heads/master@{#12295}
This change builds on top of the refactoring in https://codereview.webrtc.org/1841083008/, and enables WebRTC client applications to control the max send bitrate for every audio stream through RtpParameters.
The AudioSendStream now stores the last codec spec, and whenever a global or per-stream bitrate limit changes, the effective limit (smaller of the two) is recomputed and the codec is reconfigured with that bitrate.
TBR=pthatcher
BUG=
Review URL: https://codereview.webrtc.org/1847353004
Cr-Commit-Position: refs/heads/master@{#12290}
This happens on Android 6.0.0, which requires the WRITE_SETTINGS
permission, which is somewhat impractical to obtain.
R=glaznev@webrtc.org
Review URL: https://codereview.webrtc.org/1863413003 .
Cr-Commit-Position: refs/heads/master@{#12288}
- First audio RTP packet sent / received
- First RTP packet of the first video frame sent / received
- Last RTP packet of the first video frame sent / received
These timestamps should make it easier to measure how fast the call
becomes established from the user's perspective.
Review URL: https://codereview.webrtc.org/1765443002
Cr-Commit-Position: refs/heads/master@{#12287}
Previously screen capturers were initialized when they are created.
This means that in the CRD host they were initialized on the thread
that's different from the thread on which they are used. Because of this
on Linux the host was using XErrorTrap() on two different threads and
this is not supported. Now ScreenCapturer implementations always
initialize themselves on the thread on which Start() is called.
Also added ThreadChecker to make sure the capturers are always called
from the same thread.
BUG=600432
Review URL: https://codereview.webrtc.org/1861893002
Cr-Commit-Position: refs/heads/master@{#12285}
With the current AEC algorithm, the divergence of the echo cancelling linear filter is a strong signal of non-transparency. During double talk, it can result in a ducking artifacts.
In this CL, a metric that tells the fraction of filter divergence is added. This can measure the severity of non-transparency.
BUG=
Review URL: https://codereview.webrtc.org/1739993003
Cr-Commit-Position: refs/heads/master@{#12276}
The xUnit for the UV channels in SurfaceTextureHelper.YuvConverter is
currently calculated from 1 / (2 * width). It should be 1 / (width / 2)
instead.
R=nisse@webrtc.org
Review URL: https://codereview.webrtc.org/1862003002 .
Cr-Commit-Position: refs/heads/master@{#12274}
With this change, the return value from NetEq::GetPlayoutTimestamp is
empty if the latest call to NetEq::GetAudio resulted in comfort noise
(codec-internal or external) being played out. This is because the
playout timestamp is not updated during CNG, and can therefore not be
trusted.
A few unit tests were updated to reflect the change.
BUG=webrtc:5669
Review URL: https://codereview.webrtc.org/1861303002
Cr-Commit-Position: refs/heads/master@{#12268}
that can be called from the render side without making APM
singlethreaded.
This CL is addressing the problems with high render-side
call duration that were triggered by the CL
https://codereview.webrtc.org/1844583003
BUG=webrtc:5736
Review URL: https://codereview.webrtc.org/1859243002
Cr-Commit-Position: refs/heads/master@{#12266}
This was previously done in AcmReceiver, but belongs in NetEq where the
rest of the AudioFrame fields are populated.
BUG=webrtc:5669,webrtc:5607
Review URL: https://codereview.webrtc.org/1863993002
Cr-Commit-Position: refs/heads/master@{#12265}
Instead of using a raw pointer output parameter. This affects
SSLStreamAdapter::GetPeerCertificate
Transport::GetRemoteSSLCertificate
TransportChannel::GetRemoteSSLCertificate
TransportController::GetRemoteSSLCertificate
WebRtcSession::GetRemoteSSLCertificate
This is a good idea in general, but will also be very convenient when
scoped_ptr is gone, since unique_ptr doesn't have an .accept() method.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1802013002
Cr-Commit-Position: refs/heads/master@{#12262}
With this change, the VoE Channel will handle the case of an empty
playout timestamp (from audio_coding_->PlayoutTimestamp())
differently. The purpose of the change is to prepare for an upcoming
change in NetEq where empty values will be returned more often (i.e.,
not only before the first packet is received).
BUG=webrtc:5669
Review URL: https://codereview.webrtc.org/1857183002
Cr-Commit-Position: refs/heads/master@{#12261}