Removes StartSend, StopSend and SetSendCodec from ViEChannel and into
VideoSendStream which uses the payload router to configure them
directly.
BUG=webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1758603003 .
Cr-Commit-Position: refs/heads/master@{#11845}
Multiple sources with the same names forces ugly GYP hacks in
Chromium's libjingle.gyp. Rename the sources in WebRTC to
enable cleaning this up in Chromium.
To summarize:
webrtc/media/base/constants.{cc,h} -> mediaconstants.{cc,h}
webrtc/p2p/base/constants.{cc,h} -> p2pconstants.{cc,h}
This CL will require coordinating landing a roll in Chromium.
BUG=webrtc:4256
NOTRY=True
Review URL: https://codereview.webrtc.org/1750593002
Cr-Commit-Position: refs/heads/master@{#11842}
This cl copies the value of cricket::VideoCapturer::IsScreencast into
a flag in VideoOptions. It is passed on via the chain
VideortpSender::SetVideoSend
WebRtcVideoChannel2::SetVideoSend
WebRtcVideoChannel2::SetOptions
WebRtcVideoChannel2::WebRtcVideoSendStream::SetOptions
Where it's used, in
WebRtcVideoChannel2::WebRtcVideoSendStream::OnFrame, we can look it up
in parameters_, instead of calling capturer_->IsScreencast().
Doesn't touch screencast logic related to cpu adaptation, since that
code is in flux in a different cl.
Also drop the is_screencast flag from the Dimensions struct, and drop separate options argument from ConfigureVideoEncoderSettings and SetCodecAndOptions, instead always using the options recorded in VideoSendStreamParameters::options.
In the tests, changed FakeVideoCapturer::is_screencast to be a construction time flag. Generally, unittests of screencast have to both use a capturer configured for screencast, and set the screencast flag using SetSendParameters. Since the automatic connection via VideoSource and VideoRtpSender isn't involved in the unit tests.
Note that using SetSendParameters to set the screencast flag doesn't make sense, since it's not per-stream. SetVideoSend would be more appropriate. That should be fixed if/when we drop VideoOptions from SetSendParameters.
BUG=webrtc:5426
R=pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1711763003 .
Cr-Commit-Position: refs/heads/master@{#11837}
Rename SetCodecAndOptions to SetCodec, it no longer sets or uses the
VideoOptions. In MediaConfig, collect the video-related flags into a
struct.
As a followup, it should be possible to delete VideoOptions from
VideoSendParameters and VideoSendStreamParameters.
TBR=pthatcher@webrtc.org
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1745003002
Cr-Commit-Position: refs/heads/master@{#11828}
The current implementation is unnecessary expensive - we create a local reference frame for creating new Java objects and then create a new local reference. It's cheaper to just do jni->IsSameObject(obj, nullptr).
R=perkj@webrtc.org
Review URL: https://codereview.webrtc.org/1741723002 .
Cr-Commit-Position: refs/heads/master@{#11825}
For backwards compatibility, I've added kept the old interface to
Encode() and EncodeInternal and created default implementations of both
variants of EncodeInternal(), each calling the other. At least one of
the variants must be implemented in a subclass or we'll run out of stack
and explode. Would be nice if we could catch that before runtime. :/
The new interface to EncodeInternal() is protected, since it should
never be called from the outside.
Was unable to mark the old EncodeInternal() as RTC_DEPRECATED, since the
default implementaion of the new variant needs to call it to work around
old implementations. The old Encode() variant is deprecated, at least.
Added a test for backwards compatibility in audio_encoder_unittest.cc.
For the added test I broke out MockEncodeHelper from
audio_encoder_copy_red_unittest.cc and renamed it MockAudioEncoderHelper.
Review URL: https://codereview.webrtc.org/1725143003
Cr-Commit-Position: refs/heads/master@{#11823}
The Android apps that were previously built with bash
commmands are now using Chromium build targets and no
longer produces output into the source tree. Thus such
Git ignore entries can be removed.
TESTED=Built for Android and verified no files showed up
when running 'git status'.
R=perkj@webrtc.org
Review URL: https://codereview.webrtc.org/1749543003 .
Cr-Commit-Position: refs/heads/master@{#11821}
render_time time field (means capture time for sender side) is used by rtcp SenderReport to calculate offset since last frame and to estimate rtp timestamp for the time SenderReport should be send at.
mapping between rtp timestamp and ntp time in SenderReport is used for stream synchronization.
calculation of rtp_timestamp (using ntp_time of incoming video frame) for rtp packets is unchanged.
BUG=webrtc:5433, webrtc:5504, webrtc:5505
Review URL: https://codereview.webrtc.org/1693443002
Cr-Commit-Position: refs/heads/master@{#11820}
Chromium doesn't use the device managment code in webrtc/media
so we need a way to turn it off in order to eliminate Chromium's
src/third_party/libjingle/libjingle.gyp
BUG=webrtc:4256
NOTRY=True
TESTED=Trybots + successfully compiled with
GYP_DEFINES=include_internal_device_management=0 webrtc/build/gyp_webrtc
ninja -C out/Debug rtc_media
Review URL: https://codereview.webrtc.org/1693803002
Cr-Commit-Position: refs/heads/master@{#11816}
Permits measuring times from start of recording (usually start of a
call), and not time from first event that occurs after tracing starts.
BUG=
R=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1746693002 .
Cr-Commit-Position: refs/heads/master@{#11815}
The audio level of the AEC's output level was calculated before overlapping add, and therefore, a compensation was needed. The compensation is multiplying the level by 2 since, before overlapping add, the level is roughly halved due to windowing.
This had to be that way because the level was calculated in frequency domain and the signal after overlapping add has only its time domain representation.
The level calculation has been updated to work on time domain signal and therefore the problem is not there any longer.
This CL is to put the calculation of the AEC output level after overlapping add and remove the compensation.
BUG=
R=peah@webrtc.org
Review URL: https://codereview.webrtc.org/1644133002 .
Cr-Commit-Position: refs/heads/master@{#11810}
I readded virtual bool Pause(bool paused) for now with a dummy implementation since Chrome remoting override this method.
Original cl description:
Removed unused cricket::VideoCapturer methods:
void UpdateAspectRatio(int ratio_w, int ratio_h);
void ClearAspectRatio();
bool Pause(bool paused);
Restart(const VideoFormat& capture_format);
MuteToBlackThenPause(bool muted);
IsMuted() const
set_square_pixel_aspect_ratio
bool square_pixel_aspect_ratio()
This cl also remove the use of messages and posting of state change.
Further more - a thread checker is added to make sure methods are called on only one thread. Construction can happen on a separate thred.
It does not add restrictions on what thread frames are delivered on though.
There is more features in VideoCapturer::Onframe related to screen share in ARGB that probably can be cleaned up in a follow up cl.
BUG=webrtc:5426
TBR=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1744153002 .
Cr-Commit-Position: refs/heads/master@{#11809}
The purose of this cl is to remove dependency on cricket::VideoCapturer from WebRtcVideoChannel2.
This cl change CPU adaptation to use a new VideoSinkWants.Resolution
Cl is WIP and uploaded to start the discussion.
Tested on a N5 with hw acceleration turned off.
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1695263002
Cr-Commit-Position: refs/heads/master@{#11804}
As a follow-up to https://codereview.webrtc.org/1737053006/ this CL further
improves memory usage by lazily allocating output buffers up to the passed
maximum size. This also changes the output buffer to a Buffer object.
BUG=
Review URL: https://codereview.webrtc.org/1741413002
Cr-Commit-Position: refs/heads/master@{#11801}