Separate the null implementation from rtp_rtcp_defines.h, and follow chromium style guide for virtual functions.
BUG=webrtc:163
Review-Url: https://codereview.webrtc.org/2400993002
Cr-Commit-Position: refs/heads/master@{#14738}
Move the following targets into webrtc/video/BUILD.gn:
* screenshare_loopback
* video_quality_test
* video_loopback
Add new target 'run_tests' in webrtc/test/BUILD.gn, being used by two
of the above and make then depend on that instead.
BUG=webrtc:6440
NOTRY=True
Review-Url: https://codereview.webrtc.org/2438973002
Cr-Commit-Position: refs/heads/master@{#14735}
Since WebRtcVideoSendStream have reconfigures the send codec to match the incoming captured frames widht and height they have not been used.
Framerate has just been set when parsing sdp to 60fps and not changed elsewhere.
This cl require some upstream projects to change first.
BUG=webrtc:5332
Review-Url: https://codereview.webrtc.org/2408153002
Cr-Commit-Position: refs/heads/master@{#14733}
Reason for revert:
This was a workaround to help Chrome wire up the googNoiseReduction constraint. However, it was fixed in a different way in Chrome, and this hack is not actually needed.
Original issue's description:
> Add method cricket::VideoCapturer::NeedsDenoising, use in VideoCapturerTrackSource.
>
> BUG=chromium:645907
>
> Committed: https://crrev.com/0d14c6abba19295725519ce38105688ae0a62513
> Cr-Commit-Position: refs/heads/master@{#14219}
TBR=pbos@webrtc.org,hta@webrtc.org,perkj@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:645907
Review-Url: https://codereview.webrtc.org/2433293003
Cr-Commit-Position: refs/heads/master@{#14729}
Call demultiplexes received RTP packets and delivers these to the
appropriate {Video,Flexfec}ReceiveStreams. A single video stream
could conceivably be protected by multiple FlexFEC streams.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2388303009
Cr-Commit-Position: refs/heads/master@{#14727}
the render side to the capture side using the same
pattern. Currently this is done independently for the
submodules.
This CL moves the the AEC functionality for this into
APM.
BUG=webrtc:5298, webrtc:6540
Review-Url: https://codereview.webrtc.org/2427553003
Cr-Commit-Position: refs/heads/master@{#14726}
We need to wait for posted frames to be rendered first in release()
instead of abruptly quitting, in order to simplify testing.
BUG=webrtc:6545
R=sakal@webrtc.org
Review URL: https://codereview.webrtc.org/2440703002 .
Cr-Commit-Position: refs/heads/master@{#14722}
The stat is currently always set to zero until the residual echo detector has landed.
BUG=webrtc:6525
Review-Url: https://codereview.webrtc.org/2431443003
Cr-Commit-Position: refs/heads/master@{#14721}
Now does level estimate on the audio threads to avoid complex
copying of audio data to task queue. The old implementation could
also crash due to unclear ownership of the audio buffer.
BUG=webrtc:6569
R=kwiberg@webrtc.org
Review URL: https://codereview.webrtc.org/2433393002 .
Cr-Commit-Position: refs/heads/master@{#14720}
Simplify the AudioMixer::Source interface and update the mixer
implementation to the new interface.
Instead of asking a mixer source to provide a pointer to an AudioFrame
during each mixing iteration, a mixer should supply a pointer to its
own AudioFrame.
This simplifies lifetime issues as sources do not give away an
internal pointer.
Implementation: when an audio source is added, the mixer allocates a
new AudioFrame. The audio frame is kept together in the internal class
SourceStatus together with the audio source pointer until the source
is removed.
NOTRY=True
BUG=webrtc:6346
Review-Url: https://codereview.webrtc.org/2420913002
Cr-Commit-Position: refs/heads/master@{#14713}
This change is due to an incorrect understanding of the threading
model in Chrome. The new AudioMixer has a thread checker to ensure
that mixing is always done from a single thread. Mixing is done on the
Audio Output Thread. When run in Chrome, it can change. Even if the thread
changes, there is never more than one audio thread, and mixing is done
sequentially.
The threading checks and variable access checks are replaced with
rtc::RaceChecker counterparts.
NOTRY=True
BUG=webrtc:6346
Review-Url: https://codereview.webrtc.org/2437913003
Cr-Commit-Position: refs/heads/master@{#14712}
Previously shared_desktop_frame.cc wasn't in primitives target, but it
is used in remoting client on android and the client should depend only
on primitives, but not desktop_capture overall.
BUG=653612
R=nicholss@chromium.org
Review URL: https://codereview.webrtc.org/2436913002 .
Cr-Commit-Position: refs/heads/master@{#14709}
Methods to facilitate this are added to ChannelProxy and voe::Channel.
BUG=webrtc:6346
Review-Url: https://codereview.webrtc.org/2378143004
Cr-Commit-Position: refs/heads/master@{#14707}
ArgumentMatchers is the new name of the class. Also, we don't need to
pass a class to the isNotNull matcher.
BUG=webrtc:6558
R=magjed@webrtc.org
Review-Url: https://codereview.webrtc.org/2440433002
Cr-Commit-Position: refs/heads/master@{#14706}
The AudioMixer is now split in a mixer and audio source interface part, which has moved to webrtc/api, and a default implementation part, which lies in webrtc/modules.
This change makes it possible to create other mixer implementations and is a first step to facilitate passing down a mixer from outside of WebRTC.
It will also create less build dependencies when the new mixer has replaced the old one.
NOTRY=True
TBR=henrik.lundin@webrtc.org
BUG=webrtc:6346
Review-Url: https://codereview.webrtc.org/2411313003
Cr-Commit-Position: refs/heads/master@{#14705}
This class is logically parallel with the {Audio,Video}ReceiveStream
classes. Its purpose is to describe a receive stream of FlexFEC packets,
through the corresponding config.
Functionally, this class simply forwards the received RTP packets
to its FlexfecReceiver, which returns recovered packets to the
Call level, for appropriate demultiplexing based on SSRC.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2397843005
Cr-Commit-Position: refs/heads/master@{#14704}
The Dr Memory toolchain is no longer supported by Chromium and
their bots have been removed. WebRTC will now rely on the LLVM
santizers for catching such errors.
BUG=webrtc:6553
NOTRY=True
R=ehmaldonado@webrtc.org
Review URL: https://codereview.webrtc.org/2434563003 .
Cr-Commit-Position: refs/heads/master@{#14703}
This CL makes scaling and cropping lazy in AVFoundationVideoCapturer and
provides optimized paths for SW and HW encoding. For SW encoding, an
efficient NV12 -> I420 cropping and scaling is implemented in
CoreVideoFrameBuffer::NativeToI420. For HW encoding, an efficient NV12 ->
NV12 cropping and scaling is implemented in
CoreVideoFrameBuffer::CropAndScaleTo. The performance improvement over
the existing cropping and scaling is that it is now done in one step
instead of making an intermediary copy of the Y plane.
There might still be room for improvement in the HW path using some HW
support. That will be explored in a future CL.
BUG=b/30939444
Review-Url: https://codereview.webrtc.org/2394483005
Cr-Commit-Position: refs/heads/master@{#14701}
This CL changes YuvConverter to use an OpenGL Framebuffer as rendering
target instead of an EGL pixel buffer surface. The purpose is to reduce
the number of EGL contexts and to be able to use YuvConverter from
EglRenderer without having to detach the EGL surface.
BUG=webrtc:6470
Review-Url: https://codereview.webrtc.org/2436653003
Cr-Commit-Position: refs/heads/master@{#14699}
The purpose is to prepare for a TextureViewRenderer that will need the
new functionality.
The new functionality is:
* Be able to create an EglRenderer using a SurfaceTexture.
* Fps reduction logic.
* Log statistics every 4 seconds regardless of framerate.
* Include swap buffer time in statistics.
* Use EglBase10 if texture frames are disabled.
* Function for printing stack trace of render thread.
* Public clearImage() function for clearing the EGLSurface.
BUG=webrtc:6470
Review-Url: https://codereview.webrtc.org/2428933002
Cr-Commit-Position: refs/heads/master@{#14698}
Reason for revert:
Turned out this broke a downstream app. Reverting while investigating.
Original issue's description:
> Delete unused file mediacommon.h.
>
> BUG=None
>
> Committed: https://crrev.com/a34e796a1b59a1068c77a3e36d2a24fd37c08afc
> Cr-Commit-Position: refs/heads/master@{#14689}
TBR=magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None
Review-Url: https://codereview.webrtc.org/2441493003
Cr-Commit-Position: refs/heads/master@{#14697}
Since the class no longer creates its own videoCapturer and it may not
even be a camera, the check doesn't make sense anymore. This also
removes some of the build warnings.
BUG=webrtc:6558
Review-Url: https://codereview.webrtc.org/2434533003
Cr-Commit-Position: refs/heads/master@{#14696}
The old signature of this method has been deprecated. However, the new
signature is only support API level 23+, so we can't really use it yet.
BUG=webrtc:6558
Review-Url: https://codereview.webrtc.org/2437593004
Cr-Commit-Position: refs/heads/master@{#14695}
An audio track with a level controller with the correct initialization
value can be created by a combination of
PeerConnectionFactory::CreateAudioTrack(..., audio_source) and
either
audio_source = PeerConnectionFactory::CreateAudioSource(constraints) or
audio_source = PeerConnectionFactory::CreateAudioSource(audio_options).
NOTRY=True
BUG=webrtc:6386
Review-Url: https://codereview.webrtc.org/2408143003
Cr-Commit-Position: refs/heads/master@{#14693}
CL introduces changes in the layout of the mac demo app.
Bellow are the listed changes
* The label above the room field is removed and that text is shown in the text field's placeholder.
* Size of the window is decreased to accomodate smaller resolutions
* The local view is shown on top of remote view in 3/rd of it's size
* The log view is bellow the remote view and shows client status messages as well as some simple usage instructions.
* Loopback functionality is added
* Start call button added for improved usability
Note: This file was not following our internal ObjC style guidelines i.e
NSString *a - right
NSString* a - wrong
However I've decided to submit the changes and to follow the current style.
I'll submit a bug to update the style in separate CL
BUG=webrtc:6496
Review-Url: https://codereview.webrtc.org/2396333002
Cr-Commit-Position: refs/heads/master@{#14692}
We need to redaclare certain interfaces in the GN build files for the
macOS and iOS framework targets to prevent those symbols being stripped
by the linker.
BUG=webrtc:6434
Review-Url: https://codereview.webrtc.org/2431603002
Cr-Commit-Position: refs/heads/master@{#14691}