119 Commits

Author SHA1 Message Date
pbos@webrtc.org
59f20bb735 Break out RTCPSender dependency on ModuleRtpRtcpImpl.
BUG=
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2191004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4706 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-09 16:02:19 +00:00
pbos@webrtc.org
30e055c4dd Handle empty RTP video packets agnostic to codec.
Sending empty RTP packets caused a crash when using a generic codec
instead of VP8. This fix moves handling of empty RTP packets out of
ReceiveVp8Codec and into ParseRtpPacket.

BUG=
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2185004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4701 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-08 11:15:00 +00:00
stefan@webrtc.org
b2c8a952a7 Improving padding rules and breaking out bw allocation to ViEEncoder.
BUG=1837
TESTS=vie_auto_test --automated, trybots
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2170004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4693 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-06 13:58:01 +00:00
stefan@webrtc.org
7bb8f02274 Adds support for combining RTX and FEC/RED.
This is accomplished by breaking out RTX and FEC/RED functionality from the RTP module and keeping track of the base payload type, that is the payload type received when not receiving RTX.

Enables retransmissions over RTX by default in the loopback test.

BUG=1811
TESTS=voe/vie_auto_test --automated and trybots.
R=mflodman@webrtc.org, pbos@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2154004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4692 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-06 13:40:11 +00:00
mflodman@webrtc.org
b21e528c60 Protecting Bitrate to avoid data race found by tsan.
TEST=try and vie_auto_test with tsan.
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2163004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4673 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-04 08:42:44 +00:00
mflodman@webrtc.org
cac7325b84 Adding critsect for child_modules_ in ModuleRtpRtcpImpl::Process() to avoid race with ModuleRtpRtcp::RegisterChildModule.
Found with tsan.

TEST=try job and tsan
R=holmer@google.com

Review URL: https://webrtc-codereview.appspot.com/2156004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4661 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-03 12:11:12 +00:00
stefan@webrtc.org
286fe0b04d Revert 4585 "Revert "Revert 4582 "Reverts a second set of reverts caused by a bug in ..."""
...and fixes the RTCP bug.

BUG=2277
TBR=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2089004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4588 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-21 20:58:21 +00:00
henrike@webrtc.org
a0218a84d1 Revert 4582 "Reverts a second set of reverts caused by a bug in ..."
> Reverts a second set of reverts caused by a bug in a dependency.
> 
> Revert "Revert r4328"
> 
> Revert "Revert r4322 "Support sending multiple report blocks and keeping track
> of statistics on"
> 
> BUG=1811
> R=henrika@webrtc.org, pbos@webrtc.org, tina.legrand@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/2072004

TBR=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2087004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4585 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-21 19:44:13 +00:00
stefan@webrtc.org
1a65d6c36b Reverts a second set of reverts caused by a bug in a dependency.
Revert "Revert r4328"

Revert "Revert r4322 "Support sending multiple report blocks and keeping track
of statistics on"

BUG=1811
R=henrika@webrtc.org, pbos@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2072004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4582 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-21 16:22:21 +00:00
stefan@webrtc.org
d4f607e70a Fixes to padding when driven by encoder.
- Allow padding to be sent on an ssrc which doesn't produce video, therefore
  never having the last_packet_marker_bit_ set.
- Add the random timestamp offset to all padding packets.
- Store the capture time of padding packets to properly create an offset.

BUG=2258
TEST=trybots and a new test which will be committed separately.
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2060005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4566 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-19 15:55:01 +00:00
wu@webrtc.org
822fbd8b68 Update talk to 50918584.
Together with Stefan's http://review.webrtc.org/1960004/.

R=mallinath@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2048004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4556 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 23:38:54 +00:00
niklas.enbom@webrtc.org
e270331481 Fix duplicate code
R=pwestin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1993004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4507 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-08 22:23:48 +00:00
pbos@webrtc.org
12dc1a38ca Switch C++-style C headers with their C equivalents.
The C++ headers define the C functions within the std:: namespace, but
we mainly don't use the std:: namespace for C functions. Therefore we
should include the C headers.

BUG=1833
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1917004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4486 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-05 16:22:53 +00:00
pbos@webrtc.org
f3e4ceee47 Fix some chromium-style warnings in webrtc/modules/rtp_rtcp/
BUG=163
R=pwestin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1904005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4444 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-31 15:17:19 +00:00
tnakamura@webrtc.org
64e2cbf184 clean up incomplete revert in r4357
Also revert r4319, will follow up with pbos

Reason for recent series of reverts: video freezes when testing with packet loss

R=mikhal@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1817004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4359 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 21:52:59 +00:00
tnakamura@webrtc.org
aa4d96a134 Revert r4301
R=mikhal@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1809004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4357 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 19:25:04 +00:00
pbos@webrtc.org
9b82dced8d Make sure first RTP packet counts as in-order.
BUG=
R=henrika@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1811004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4350 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 13:03:35 +00:00
elham@webrtc.org
4a44ea21d7 Revert r4320 "Fix three uninitialized members in rtp_receiver_impl.cc"
TBR=pwestin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1803004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4346 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-15 21:46:06 +00:00
elham@webrtc.org
4888fd4827 Revert r4321 "Fix uninitialized value warning in rtp_payload_registry and make sure we return an error if the payload type isn't registered"
R=pwestin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1790006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4345 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-15 21:21:48 +00:00
elham@webrtc.org
b7eda43810 Revert r4322 "Support sending multiple report blocks and keeping track of statistics on
several SSRCs"

R=pwestin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1774006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4344 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-15 21:08:27 +00:00
elham@webrtc.org
6f5707e184 Revert r4328
R=pwestin@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1774005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4343 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-15 20:59:52 +00:00
stefan@webrtc.org
e4736eee20 Fixes a crash when sending SR reports from a sender only module.
BUG=
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1790004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4328 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-11 08:28:35 +00:00
braveyao@webrtc.org
aeba6e8740 ModuleRTPRTCP call rtcp_sender_.TMMBR() directly instead of calling its own API.
BUG=2051
TEST=autotest
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1790005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4327 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-11 08:06:37 +00:00
pbos@webrtc.org
96edd56170 Sorted headers under rtp_rtcp/.
BUG=
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1781005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4325 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 15:40:42 +00:00
stefan@webrtc.org
717d147ebb Support sending multiple report blocks and keeping track of statistics on several SSRCs.
BUG=1811
TEST=vie_auto_test --automated, voe_auto_test --automated, trybots
R=andresp@webrtc.org, tommi@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1768004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4322 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 13:39:27 +00:00
stefan@webrtc.org
9de89a6f6b Fix uninitialized value warning in rtp_payload_registry and make sure we return an error if the payload type isn't registered.
R=pbos@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1782004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4321 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 12:42:15 +00:00
stefan@webrtc.org
452d853c43 Fix three uninitialized members in rtp_receiver_impl.cc.
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1781004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4320 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 10:54:56 +00:00
pbos@webrtc.org
08933a5dfb Initialize payload-type frequency in channel.cc.
Uninitialized values triggered divide-by-zero crashes in voe_auto_test.

BUG=
R=stefan@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1780004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4319 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-10 10:06:29 +00:00
stefan@webrtc.org
f56d612c70 Create gyp target for bwe components.
R=henrikg@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1775004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4311 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-09 12:32:35 +00:00
hclam@chromium.org
1a7b9b94be Cleanup WebRTC tracing
The goal of this change is to:
1. Remove unused tracing events.
2. Organize tracing events to facilitate measurement of end to end latency.

The major change in this CL is to use ASYNC_STEP such that operation
flow can be traced for the same frame.

R=marpan@webrtc.org, pwestin@webrtc.org, turaj@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1761004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4308 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-08 21:31:18 +00:00
stefan@webrtc.org
66b2e5c05a Breaking out receive-stats, rtp-payload-registry and rtp-receiver from the
rtp_rtcp implementation.

This refactoring significantly reduces the receive-side RTP parser and receiver
complexity, and makes it possible to implement RTX correctly by having two
instances of receive-statistics.

With this change the dead-or-alive and packet timeout APIs are removed.

TEST=trybots, vie_auto_test, voe_auto_test
BUG=1811
R=mflodman@webrtc.org, pbos@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1745004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4301 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-05 14:30:48 +00:00
pbos@webrtc.org
d900e8bea8 Proper spacing for end-of-namespace comments.
BUG=
R=mflodman@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1760006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 15:12:26 +00:00
solenberg@webrtc.org
a5fd2f1348 Do basic parsing of RTCP headers in PcapFileReader to enable log filtering.
BUG=
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1697004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4266 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-26 08:36:07 +00:00
solenberg@webrtc.org
91811e2b04 Remove unused multi stream bandwidth estimator.
BUG=
R=mflodman@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1712004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4264 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-25 20:36:14 +00:00
stefan@webrtc.org
a4c5abb52a Make sure padding packets are sent.
BUG=1837
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1717006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4260 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-25 15:46:16 +00:00
hclam@chromium.org
2e402ce873 Enqueue packet in pacer if sending fails
If a packet cannot be sent while pacer is in use it should be
queued. This avoid packet loss due to congestion.

BUG=1930
R=pwestin@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1693004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4250 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-20 20:18:31 +00:00
stefan@webrtc.org
8ccb9f9716 Fixes some pacer/padding issues found while testing.
- A bug was introduced in r4234 causing no paced packets to be sent.
- Only update the sequence number counter if a padding packet is actually going to be sent, to avoid packet loss.
- Have all packets go through the pacer if pacing is enabled to avoid reordering.
- Fix race condition on reading capture_time_ms_/timestamp_ in rtp_sender.cc.

BUG=1837
TEST=trybots and vie_auto_test --automated
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1682004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4246 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-19 14:13:42 +00:00
stefan@webrtc.org
508a84b255 Wire up pacer-based padding.
This connects the pacer-based padding with the RTP modules, which will
generate padding packets roughly according to what the pacer suggests.
It will only generate padding packets of maximum size to keep the number
off padding packets as small as possible. This also sets a limit of how much
padding + media bitrate which the pacer is allowed to "request" from the
RTP modules.

Padding will for now only be generated by the first sending RTP module.

BUG=1837
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1612005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4234 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-17 12:53:37 +00:00
kjellander@webrtc.org
6c35e0b0f7 Reorganize test targets in WebRTC
This CL will lower the number of test targets in WebRTC by:

Add common_audio_unittests and merge the following targets into it (copied from http://review.webrtc.org/1584006):
* resampler_unittests
* signal_processing_unittests
* vad_unittests

Merge into modules_unittests:
* bitrate_controller_unittests
* desktop_capture_unittests
* media_file_unittests
* remote_bitrate_estimator_unittests
* rtp_rtcp_unittests
* paced_sender_unittests

Merge into test_support_unittests:
* channel_transport_unittests

channel_transport.gyp was also removed in favor for test.gyp.

I had to remove a main method from rtcp_format_remb_unittest.cc
since it caused the fileutils.h code to not be able to find the
right project root path in ordrer to provide correct paths
to test files.

Buildbot configuration update will be synced with the commit of this CL.

TEST=trybots
BUG=1843
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1639004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4213 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-11 08:29:17 +00:00
stefan@webrtc.org
a817962bab Refactor padding and rtp header functionality.
BUG=1837
R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1611004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4172 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 13:47:36 +00:00
wu@webrtc.org
fa64a595ad Change SetRTPAudioLevelIndicationStatus to ignore the id in the case of disabling.
This makes it easier for the users of the interface, i.e. doesn't need to remember the id in order to disable audio level indication later.

BUG=1828
TEST=unit tests
R=henrika@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1598005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4157 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-03 21:27:57 +00:00
pbos@webrtc.org
a048d7cb0a Include files from webrtc/.. paths in rtp_rtcp/
BUG=1662
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1557004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4135 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 14:27:38 +00:00
stefan@webrtc.org
a5cb98cbbd Breaking out RTP header parsing from the RTP module.
This is the first step in order to move bandwidth estimation closer to the network. The goal is to have RTP header parsing and bandwidth estimation before voice and video engine, and have a joint estimate for audio and video.

Moving bandwidth estimation before the RTP module is also required for RTX.

TEST=vie_auto_test, voe_auto_test, trybots.
BUG=1811
R=andresp@webrtc.org, henrika@webrtc.org, mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1545004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4129 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 12:12:51 +00:00
stefan@webrtc.org
c74c3c2447 Adds integration test for RTX and fixes bugs found.
BUG=1811
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4096 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-23 13:48:22 +00:00
stefan@webrtc.org
5c58f63d3f Fix regression where retransmission bitrate is no longer estimated.
BUG=1813
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1530004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4095 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-23 13:36:55 +00:00
solenberg@webrtc.org
c0352d566a Fix assertions in rtp_header_extension.h caused by not handling the AudioLevel extension. Added unit tests to do basic checks of the AudioLevel extension.
BUG=
R=asapersson@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1510004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4069 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-20 20:55:07 +00:00
phoglund@webrtc.org
9919ad5caf Formatted FEC stuff.
Unfortunately I had to pull in quite a bit of stuff due to use of unencapsulated public member variables.

BUG=
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1401004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4047 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 15:06:28 +00:00
solenberg@webrtc.org
7ebbea14a9 Add handling of the absolute send time header extension to the rtp_rtcp module.
BUG=
R=asapersson@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1480004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4041 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 11:10:31 +00:00
mikhal@webrtc.org
6cfa3907c8 Updating NACK RTX test
BUG=1513
R=holmer@google.com, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1274006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4036 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-15 20:17:43 +00:00
andresp@webrtc.org
29b2219914 Adding a factory to remote bitrate estimator and allow it to be set via config.
Additionally:
 - clean api to set remote bitrate estimator mode.
 - clean api to set over use detector options.

R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1448006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4027 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-14 12:10:58 +00:00