Commit Graph

11877 Commits

Author SHA1 Message Date
0a9fc05583 Move RTP module send status outside of ViEChannel.
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}
2016-03-02 15:24:21 +00:00
7b19b08c18 Reland "Calculating ERLE in AEC more properly."
The original CL (https://codereview.webrtc.org/1644133002/) had an error in the unittest and did not get landed. This CL is to reland it,

BUG=

Review URL: https://codereview.webrtc.org/1743223002

Cr-Commit-Position: refs/heads/master@{#11844}
2016-03-02 14:56:56 +00:00
4fa7ecad12 Remove add/removal of ViEReceiver RTP modules.
Since all possible modules are known on Init we don't need to add/remove
them in runtime.

BUG=webrtc:5494
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1739893005 .

Cr-Commit-Position: refs/heads/master@{#11843}
2016-03-02 14:06:04 +00:00
f475277547 Rename constants files in webrtc/{media,p2p}
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}
2016-03-02 13:42:35 +00:00
91e1c15f8e Make sure rotation is not applied by the capturer if the CVO exenstion is set before the send stream is created.
BUG=webrtc:5621

TBR=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1757853002

Cr-Commit-Position: refs/heads/master@{#11841}
2016-03-02 13:34:08 +00:00
7ecc163d42 Report all packets to bitrate probing.
Allows probing with audio packets to finish, preventing a busy loop for
high-bitrate audio-only calls.

BUG=chromium:589931, webrtc:5506
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1750403003 .

Cr-Commit-Position: refs/heads/master@{#11840}
2016-03-02 13:22:33 +00:00
b65f3e39d7 [cleanup] Remove unused fields/functions from rtcp module.
Removed fields are initialized but unused.
Removed functions are not called, sometimes are not defined.

BUG=webrtc:5565
R=asapersson@webrtc.org

Review URL: https://codereview.webrtc.org/1726403003 .

Cr-Commit-Position: refs/heads/master@{#11839}
2016-03-02 12:26:19 +00:00
c891eb479b Replace scoped_ptr with unique_ptr in webrtc/common_video/
BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1749103003

Cr-Commit-Position: refs/heads/master@{#11838}
2016-03-02 11:41:40 +00:00
60653ba3cc New flag is_screencast in VideoOptions.
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}
2016-03-02 10:41:49 +00:00
e065fcf9a9 Replace scoped_ptr with unique_ptr in webrtc/modules/video_*/
BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1738863002

Cr-Commit-Position: refs/heads/master@{#11836}
2016-03-02 09:01:16 +00:00
4eb1ddd817 Fixing a possible crash in CopyCandidatesFromSessionDescription.
BUG=590972
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1754803002 .

Cr-Commit-Position: refs/heads/master@{#11835}
2016-03-02 00:21:15 +00:00
03d6d57f41 Late initialize MediaController, for less resource i.e. ProcessThread, usage by PeerConnection.
BUG=chromium:582441

Review URL: https://codereview.webrtc.org/1713043002

Cr-Commit-Position: refs/heads/master@{#11834}
2016-03-01 20:42:08 +00:00
27f982bbcb Replace scoped_ptr with unique_ptr in webrtc/video/
BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1751903002

Cr-Commit-Position: refs/heads/master@{#11833}
2016-03-01 19:52:39 +00:00
d802b5b7c3 Fix some signed overflow errors causing undefined behavior (in theory).
BUG=webrtc:5491

Review URL: https://codereview.webrtc.org/1744183002

Cr-Commit-Position: refs/heads/master@{#11832}
2016-03-01 19:07:40 +00:00
5711c8d1f8 Change transport sequence number extension strings to specify what revision is implemented.
BUG=webrtc:5610
R=mflodman@webrtc.org

Review URL: https://codereview.webrtc.org/1754653002 .

Cr-Commit-Position: refs/heads/master@{#11831}
2016-03-01 15:27:27 +00:00
b0fdfea9e8 Add stats (histograms) for vp8 screenshare layers
BUG=

Review URL: https://codereview.webrtc.org/1734793003

Cr-Commit-Position: refs/heads/master@{#11830}
2016-03-01 13:51:20 +00:00
92931b15d8 Replace scoped_ptr with unique_ptr in webrtc/modules/remote_bitrate_estimator/
BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1750533002

Cr-Commit-Position: refs/heads/master@{#11829}
2016-03-01 13:32:39 +00:00
0db023a70b Move suspend_below_min_bitrate from VideoOptions to MediaConfig.
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}
2016-03-01 12:30:07 +00:00
e496badf3c autoroller: Remove sending tryjobs (done via CQ).
Skip running 'git cl try' since tryjobs are sent when
the CL is sent to the CQ anyway.

BUG=
R=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1746993003 .

Cr-Commit-Position: refs/heads/master@{#11827}
2016-03-01 10:30:36 +00:00
e3d99221c4 rtc::Buffer: Use RTC_DCHECK instead of assert
Review URL: https://codereview.webrtc.org/1749693002

Cr-Commit-Position: refs/heads/master@{#11826}
2016-03-01 09:57:41 +00:00
ffdd41ecf2 jni_helpers: Optimize IsNull()
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}
2016-03-01 09:10:11 +00:00
dc29780722 Re-enable DCHECKs for increasing timestamps in paced_sender
This reverts https://codereview.webrtc.org/1618333002

BUG=webrtc:5452

Review URL: https://codereview.webrtc.org/1740633005

Cr-Commit-Position: refs/heads/master@{#11824}
2016-03-01 08:47:03 +00:00
10a029e952 Changed AudioEncoder::Encode to take an rtc::Buffer* instead of uint8_t* and a maximum size.
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}
2016-03-01 08:41:39 +00:00
22c2b4814a Move RTP stats histograms from VieChannel to SendStatisticsProxy.
Also slice for screensharing.

BUG=
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1734933002 .

Cr-Commit-Position: refs/heads/master@{#11822}
2016-03-01 08:40:54 +00:00
681e20e008 .gitignore: remove no longer needed entries.
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}
2016-03-01 07:55:21 +00:00
ac287ee8b5 VideoCaptureInput enforce VideoFrame::render_time to be generated by webrtc clock.
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}
2016-02-29 20:17:10 +00:00
b9338ac62b Added an operator[] to Buffer, to make reading data easier.
Review URL: https://codereview.webrtc.org/1745033002

Cr-Commit-Position: refs/heads/master@{#11819}
2016-02-29 17:36:44 +00:00
012f8c0e73 Remove unused encoder_config_ variable.
BUG=
R=danilchap@webrtc.org

Review URL: https://codereview.webrtc.org/1743633002 .

Cr-Commit-Position: refs/heads/master@{#11818}
2016-02-29 14:42:30 +00:00
c9bbbe454f Revert "Calculating ERLE in AEC more properly."
This reverts commit 944744b25c76810e576516d2f676b1d9105e302f.

NOTRY=True
TBR=peah@webrtc.org,kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1747883002 .

Cr-Commit-Position: refs/heads/master@{#11817}
2016-02-29 14:20:54 +00:00
7d9112cbc4 Make it possible to exclude device management code from rtc_media target.
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}
2016-02-29 14:14:51 +00:00
dda8a837ce Trace tracing Start/Stop events.
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}
2016-02-29 13:54:14 +00:00
3f55dea259 Replace scoped_ptr with unique_ptr in webrtc/modules/video_coding/
BUG=webrtc:5520

Review URL: https://codereview.webrtc.org/1721353002

Cr-Commit-Position: refs/heads/master@{#11814}
2016-02-29 13:52:06 +00:00
a4f31bd03a TMMBRSet become vector<rtcp::TmmbItem>
this is a slice of https://codereview.webrtc.org/1474693002/
All TMMBRSet functions intentionally left unchanged. Goal to make them obsolete, not to clear.

BUG=webrtc:5565

Review URL: https://codereview.webrtc.org/1669323002

Cr-Commit-Position: refs/heads/master@{#11813}
2016-02-29 13:26:05 +00:00
dffb894a4c Enable CQ
This reverts commit 7352804849012c1b6f47d4dbba87a75d9978a1f1 committed
in https://codereview.webrtc.org/1749673002/

The CQ is now supposed to be functional again.

BUG=chromium:590671
TBR=tandrii@chromium.org

Review URL: https://codereview.webrtc.org/1744173002 .

Cr-Commit-Position: refs/heads/master@{#11812}
2016-02-29 12:12:19 +00:00
739fcb989d Cleanup of webrtc::VideoFrame.
Delete EqualsFrame method, used only by tests. Delete one of the
CreateFrame methods. Drop return value for CreateEmptyFrame, CreateFrame
and CopyFrame.

BUG=webrtc:5426

Committed: https://crrev.com/208019637bfed975f8f13b16d40b90e200763cd6
Cr-Commit-Position: refs/heads/master@{#11783}

R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1679323002 .

Cr-Commit-Position: refs/heads/master@{#11811}
2016-02-29 12:11:57 +00:00
944744b25c Calculating ERLE in AEC more properly.
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}
2016-02-29 12:09:07 +00:00
Per
fb45d170c0 Reland Remove unused cricket::VideoCapturer methods. Originally reviewed and landed as patchset #2 id:30001 of https://codereview.webrtc.org/1733673002/)
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}
2016-02-29 11:07:45 +00:00
f3ed9d75dd Remove thread checker from CongestionController.
R=terelius@webrtc.org

Review URL: https://codereview.webrtc.org/1746683002 .

Cr-Commit-Position: refs/heads/master@{#11808}
2016-02-29 09:42:21 +00:00
7352804849 Disable CQ since being flooded with jobs
BUG=chromium:590671
TBR=tandrii@chromium.org

Review URL: https://codereview.webrtc.org/1749673002 .

Cr-Commit-Position: refs/heads/master@{#11807}
2016-02-29 09:33:59 +00:00
f15a7e9b43 Removed adresp from video
Added danilchap to rtcp

R=andresp@webrtc.org, andresp

Review URL: https://codereview.webrtc.org/1744983002 .

Cr-Commit-Position: refs/heads/master@{#11806}
2016-02-29 09:26:39 +00:00
7e937e951c Remove workaround for Opus DTX noise pumping issue.
A workaround for Opus DTX noise pumping issue was made according upon this
https://codereview.webrtc.org/1422213003

Recently, Opus has fixed this problem internally, and hence the workaround is not needed any longer.

This CL removes this workaround.

BUG=586175
R=flim@webrtc.org, tina.legrand@webrtc.org

Review URL: https://codereview.webrtc.org/1715423002 .

Cr-Commit-Position: refs/heads/master@{#11805}
2016-02-29 09:24:25 +00:00
2d5f0913f2 Move direct use of VideoCapturer::VideoAdapter to VideoSinkWants.
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}
2016-02-29 08:04:50 +00:00
50772f1e16 GN: Update audio_sink.h location
This should have been a part of
https://codereview.webrtc.org/1740873003/
but wasn't discovered since we cannot have --check turned
on for GN yet.

BUG=webrtc:5589
TBR=solenberg@webrtc.org, henrika@webrtc.org,

Review URL: https://codereview.webrtc.org/1744123002 .

Cr-Commit-Position: refs/heads/master@{#11803}
2016-02-29 05:49:54 +00:00
804e0822fc CQ: Add android_compile_mips_dbg to default trybots
BUG=chromium:449603
TBR=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1744933002 .

Cr-Commit-Position: refs/heads/master@{#11802}
2016-02-29 04:55:13 +00:00
250fc658c5 Lazily allocate output buffer for AsyncTCPSocket.
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}
2016-02-28 23:06:47 +00:00
2b31a90062 Roll chromium_revision a5a1e78..ee31124 (378154:378158)
Change log: a5a1e78..ee31124
Full diff: a5a1e78..ee31124

No dependencies changed.
No update to Clang.

TBR=

Review URL: https://codereview.webrtc.org/1744083002

Cr-Commit-Position: refs/heads/master@{#11800}
2016-02-28 20:03:16 +00:00
3379edc4a2 Roll chromium_revision ba93bd2..a5a1e78 (378149:378154)
Change log: ba93bd2..a5a1e78
Full diff: ba93bd2..a5a1e78

No dependencies changed.
No update to Clang.

TBR=

Review URL: https://codereview.webrtc.org/1745853002

Cr-Commit-Position: refs/heads/master@{#11799}
2016-02-28 12:04:41 +00:00
73eb67915c Roll chromium_revision fd4c78b..ba93bd2 (378132:378149)
Change log: fd4c78b..ba93bd2
Full diff: fd4c78b..ba93bd2

Changed dependencies:
* src/third_party/ffmpeg: b828a1b..60fc535
DEPS diff: fd4c78b..ba93bd2/DEPS

No update to Clang.

TBR=

Review URL: https://codereview.webrtc.org/1745833002

Cr-Commit-Position: refs/heads/master@{#11798}
2016-02-28 04:08:15 +00:00
215f228559 Roll chromium_revision b815f03..fd4c78b (378096:378132)
Change log: b815f03..fd4c78b
Full diff: b815f03..fd4c78b

No dependencies changed.
No update to Clang.

TBR=

Review URL: https://codereview.webrtc.org/1741213003

Cr-Commit-Position: refs/heads/master@{#11797}
2016-02-27 12:03:44 +00:00
7b9601edf5 Roll chromium_revision 968c1e7..b815f03 (377935:378096)
Change log: 968c1e7..b815f03
Full diff: 968c1e7..b815f03

No dependencies changed.
No update to Clang.

TBR=

Review URL: https://codereview.webrtc.org/1745743002

Cr-Commit-Position: refs/heads/master@{#11796}
2016-02-27 04:16:54 +00:00