Reason for revert:
GetYPlane, GetYPitch etc is used by Chromium.
Original issue's description:
> Delete cricket::VideoFrame methods GetYPlane and GetYPitch.
>
> (And similarly for U and V). Also change video_frame_buffer method to
> return a const ref to a scoped_ref_ptr.
>
> This cl is analogous to https://codereview.webrtc.org/1900673002/,
> which delete corresponding methods in webrtc::VideoFrame.
>
> BUG=webrtc:5682
>
> Committed: https://crrev.com/1c27c6bf4cf0476dd2f09425509afaae4cdfe599
> Cr-Commit-Position: refs/heads/master@{#12492}
TBR=magjed@webrtc.org,perkj@webrtc.org,pbos@webrtc.org,pthatcher@webrtc.org,nisse@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5682
Review URL: https://codereview.webrtc.org/1921493004
Cr-Commit-Position: refs/heads/master@{#12494}
(And similarly for U and V). Also change video_frame_buffer method to
return a const ref to a scoped_ref_ptr.
This cl is analogous to https://codereview.webrtc.org/1900673002/,
which delete corresponding methods in webrtc::VideoFrame.
BUG=webrtc:5682
Review URL: https://codereview.webrtc.org/1901973002
Cr-Commit-Position: refs/heads/master@{#12492}
Split WebRtcVideoSendStream::OnFrame, to invoke encoder on the worker thread.
BUG=webrtc:5546
Review URL: https://codereview.webrtc.org/1875713002
Cr-Commit-Position: refs/heads/master@{#12471}
If a STUN ping arrives before the remote description does, a prflx
candidate will be created with an unknown generation.
Once the remote description does arrive, the candidate's generation
should be set so it can be sorted properly, and replaced by a non-prflx
candidate once the candidate is signaled.
BUG=webrtc:5752
R=honghaiz@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1868353004 .
Cr-Commit-Position: refs/heads/master@{#12433}
This fix a potential race where the rotation information of a sent frame does not match the encoded frame.
BUG=webrtc:5783
TEST= Run ApprtcDemo on IOs and Android with and without capture to texture and both VP8 and H264.
R=magjed@webrtc.org, pbos@webrtc.org, tkchin@webrtc.org
TBR=tkchin_webrtc // For IOS changes.
Review URL: https://codereview.webrtc.org/1886113003 .
Cr-Commit-Position: refs/heads/master@{#12426}
Increases measure time for downscale back to 5 seconds, this is required
to not over-react on hand-waving or quick device rotations.
Also increase max thresholds for QP a bit to not overreact when quality
still looks somewhat OK. Min thresholds for H264 seemed very low and are
increased to be sure that we can go back up again. The window is still
quite big with the increased max QP.
Also changes libvpx thresholds to use the same thresholds as the
encoder, they were excessively low before and wouldn't adapt on bad QPs
at all before (but rely on >60% framedropping based on bitrates to go
down).
BUG=webrtc:5678
R=stefan@webrtc.orgTBR=glaznev@webrtc.org
Review URL: https://codereview.webrtc.org/1894083002 .
Cr-Commit-Position: refs/heads/master@{#12403}
And BEGIN_WORKER_PROXY_MAP --> BEGIN_PROXY_MAP.
This rename was suggested by Tommi, with the idea that a proxy
invoking methods on the worker thread should be the common case.
It's a followup to https://codereview.webrtc.org/1861633002/
This cl also adds unittests for proxy calls to the
worker thread.
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1871833002
Cr-Commit-Position: refs/heads/master@{#12374}
Instead, use the corresponding method on VideoFrameBuffer. In the process,
reduce code duplication in frame comparison functions used in
the test code.
Make FramesEqual use FrameBufsEqual. Make the latter support texture frames.
The cl also refactors VideoFrame::CopyFrame to use I420Buffer::Copy. This
has possibly undesired side effects of never reusing the frame buffer of
the destination frame, and producing a frame buffer which may use different
stride than the source frame.
BUG=webrtc:5682
Review URL: https://codereview.webrtc.org/1881953002
Cr-Commit-Position: refs/heads/master@{#12373}
This field only existed as an implementation detail for getting the
codecs sorted, so it doesn't need to be in the public interface.
It cluttered the code and undesirably affected codec comparisons,
causing the video encoder to be reconfigured if a codec's preference
changed but nothing else did.
BUG=webrtc:5690
Review URL: https://codereview.webrtc.org/1845673002
Cr-Commit-Position: refs/heads/master@{#12349}
Reason for revert:
Regressed behavior is actually desirable (go down to 360p instead of producing super-bad 720p).
Original issue's description:
> Revert of Make QualityScaler more responsive to downgrades. (patchset #3 id:40001 of https://codereview.webrtc.org/1830593003/ )
>
> Reason for revert:
> Speculative revert: want to see if this causes the regression in https://crbug.com/602621
>
> Original issue's description:
> > Make QualityScaler more responsive to downgrades.
> >
> > Permits going from HD to QVGA in 6 seconds instead of 10. Also adds
> > windows for going up quickly in the beginning of a call (before any
> > downscaling happens due to bad quality).
> >
> > BUG=webrtc:5678
> > R=glaznev@webrtc.org, stefan@webrtc.org
> >
> > Committed: https://crrev.com/85829fd90cc4e7a91c9857921b19e8fc126aeb60
> > Cr-Commit-Position: refs/heads/master@{#12219}
>
> TBR=glaznev@webrtc.org,stefan@webrtc.org,pbos@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:5678
> NOTRY=true
>
> Committed: https://crrev.com/19b4fecf08e3fe215e431a260fb673553c15e569
> Cr-Commit-Position: refs/heads/master@{#12331}
TBR=glaznev@webrtc.org,stefan@webrtc.org,phoglund@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:602621, webrtc:5678
Review URL: https://codereview.webrtc.org/1887493003
Cr-Commit-Position: refs/heads/master@{#12341}
This CL generates FMTP parameters that allow H.264 interoperation
with Firefox for the default codec list.
BUG=chromium:591971
Review URL: https://codereview.webrtc.org/1880963002
Cr-Commit-Position: refs/heads/master@{#12333}
Reason for revert:
Speculative revert: want to see if this causes the regression in https://crbug.com/602621
Original issue's description:
> Make QualityScaler more responsive to downgrades.
>
> Permits going from HD to QVGA in 6 seconds instead of 10. Also adds
> windows for going up quickly in the beginning of a call (before any
> downscaling happens due to bad quality).
>
> BUG=webrtc:5678
> R=glaznev@webrtc.org, stefan@webrtc.org
>
> Committed: https://crrev.com/85829fd90cc4e7a91c9857921b19e8fc126aeb60
> Cr-Commit-Position: refs/heads/master@{#12219}
TBR=glaznev@webrtc.org,stefan@webrtc.org,pbos@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5678
NOTRY=true
Review URL: https://codereview.webrtc.org/1880103002
Cr-Commit-Position: refs/heads/master@{#12331}
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}
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}
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 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}
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}
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}
Reason for revert:
EGL 1.4 was not the cause of the deadlock. See https://bugs.chromium.org/p/webrtc/issues/detail?id=5702 for more info.
Original issue's description:
> Switch to using EGL 1.0 for rendering and HW codec.
>
> Using EGL 1.4 may cause texture rendering deadlock on some
> Android devices.
>
> R=jiayl@webrtc.org
>
> Committed: 887a19b9d2
BUG=webrtc:5702
TBR=jiayl@webrtc.org,glaznev@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
Review URL: https://codereview.webrtc.org/1866653002
Cr-Commit-Position: refs/heads/master@{#12257}
Reason for revert:
Causes P2PTestConductor.LocalP2PTestDtlsTransferCaller to fail on Win dbg.
https://build.chromium.org/p/client.webrtc/builders/Win32%20Debug/builds/7469/steps/peerconnection_unittests/logs/stdio
e:\b\build\slave\win\build\src\webrtc\api\peerconnection_unittest.cc(1221): error: Value of: initiating_client_->ice_connection_state()
Actual: 2
Expected: webrtc::PeerConnectionInterface::kIceConnectionCompleted
Which is: 3
Original issue's description:
> Changed P2PTestConductor to use a separate WorkerThread.
>
> P2PTestConductor 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. I suggest we let the P2PTestConductor use a separate thread as a worker thread to better cover how PeerConnections are used in reality.
>
> BUG=webrtc:5426
>
> Committed: https://crrev.com/6172401972c54813698d73580779d675d99178b4
> Cr-Commit-Position: refs/heads/master@{#12252}
TBR=nisse@webrtc.org,pthatcher@webrtc.org,deadbeef@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1866503003
Cr-Commit-Position: refs/heads/master@{#12255}
P2PTestConductor 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. I suggest we let the P2PTestConductor use a separate thread as a worker thread to better cover how PeerConnections are used in reality.
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1859933002
Cr-Commit-Position: refs/heads/master@{#12252}
Unit tests are updated to test that screen share is not adapted but it does not change the VideoSinkWants in WebRtcVideoEngine2::SendStream due to a switch to screen share. The reason is that it works anyway and sprang is looking into how to do adaptation based on frame rate as well and use the adapter for screen share as well.
BUG=webrtc:5688, webrtc:5426
R=nisse@webrtc.org, pbos@webrtc.org, sprang@google.com
Review URL: https://codereview.webrtc.org/1836043004 .
Cr-Commit-Position: refs/heads/master@{#12240}
If stopCapture is called shortly after startCapture, and the first startCaptureOnCameraThread failed, but still hasn't retried 3 times, stopCaptureOnCameraThread will be called in a state where the camera is not initialized. This CL adds null checks in stopCaptureOnCameraThread to avoid crashes.
BUG=b/27939867
Review URL: https://codereview.webrtc.org/1854103002
Cr-Commit-Position: refs/heads/master@{#12234}