87 Commits

Author SHA1 Message Date
pwestin@webrtc.org
12d97f6637 Made send pad data generic (audio and video)
Review URL: http://webrtc-codereview.appspot.com/343001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1346 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-05 10:54:44 +00:00
pwestin@webrtc.org
3aa25de346 Bugfix OnNetworkChanged not triggered for RTCP compund messages if TMMBR is higher than last value.
TBR=mflodman
Review URL: http://webrtc-codereview.appspot.com/342001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1344 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-05 08:40:56 +00:00
pwestin@webrtc.org
6c1d41583a Fix for RTP extension audio level.
Review URL: http://webrtc-codereview.appspot.com/339002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1334 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-04 17:04:51 +00:00
pwestin@webrtc.org
c450a19669 Removed Version function from all modules.
TBR=henrik_a
Review URL: http://webrtc-codereview.appspot.com/329023

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1330 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-04 15:00:12 +00:00
stefan@webrtc.org
f6c6b1c5b5 Include the media packet FEC headers in the video bitrate.
BUG=
TEST=

Review URL: http://webrtc-codereview.appspot.com/328014

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1296 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-23 10:33:39 +00:00
mflodman@webrtc.org
1ce66e4dfb Don't report error when failing to send RTCP BYE.
Review URL: http://webrtc-codereview.appspot.com/337002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1293 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-22 18:40:15 +00:00
stefan@webrtc.org
6a4bef4e65 Implements selective retransmissions.
Default is set to not retransmit VP8 non-base layer packets or FEC packets.

BUG=
TEST=

Review URL: http://webrtc-codereview.appspot.com/323010

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1290 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-22 12:52:41 +00:00
mflodman@webrtc.org
84dc3d134d Add REMB functionality to ViE.
This CL only adds support for encoding one stream, but receiving multiple streams.

BUG=
TEST=video_engine_core_unittest + auto_test/loopback

Review URL: http://webrtc-codereview.appspot.com/333011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1284 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-22 10:26:13 +00:00
henrik.lundin@webrtc.org
1e28d3c2e1 Change VP8 packetizer to use a single max payload size
The packetizer class is changed so that the max payload size is
provided on construction of the class rather than for each packet.
The tests are re-written to comply with the new design.

Also fixing a few errors in the tests.

Review URL: http://webrtc-codereview.appspot.com/335010

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1280 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-22 08:49:31 +00:00
pwestin@webrtc.org
8edb39db30 Prevent sending empty RTCP packet.
Review URL: http://webrtc-codereview.appspot.com/331009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1277 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-22 07:40:33 +00:00
niklas.enbom@webrtc.org
6c9be123ef Letting strncpy do its job. Landing and extending http://webrtc-codereview.appspot.com/329010/ on behalf of tbreisacher.
Review URL: http://webrtc-codereview.appspot.com/335009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1260 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-21 08:59:31 +00:00
henrik.lundin@webrtc.org
00e730730e Refactoring RtpFormatVp8Test
This is the first change in a series of changes to get new functionality
into the VP8 packetizer.

This first refactors the RtpFormatVp8Test class, without changing the
operation of the tested RtpFormatVp8 class. A test helper class
RtpFormatVp8TestHelper is introduced to reduce code duplication.

Review URL: http://webrtc-codereview.appspot.com/304009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1258 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-21 08:51:36 +00:00
pwestin@webrtc.org
061fa5b828 Changed handling of padding data.
Review URL: http://webrtc-codereview.appspot.com/331008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1252 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-20 15:56:17 +00:00
mikhal@webrtc.org
0e7d9d862a Adding layer info consideration when applying FEC protection. In this first version, we hard code protection zero for non-base layer frames. As a future enhancement, an array should be passed from mediaOpt to set the protection per layer. A TODO was added in MediaOpt.
Review URL: http://webrtc-codereview.appspot.com/330005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1238 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-19 19:04:49 +00:00
henrika@webrtc.org
e32c08a5a6 Removes usage of default parameters and fixes a bug which was found
using Clang on Linux.

BUG=none
TEST=none
TBR=pwestin

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1234 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-19 17:39:48 +00:00
andrew@webrtc.org
8a44259ea8 Move static consts out of class.
Still causing a gtest error on non-Win platforms. This should fix it...

TBR=asapersson@webrtc.org
TEST=build on Linux

Review URL: http://webrtc-codereview.appspot.com/332006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1225 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-16 21:24:30 +00:00
andrew@webrtc.org
41192469f6 Switch enums to consts to fix gtest error.
TBR=asapersson@webrtc.org
TEST=build on Windows

Review URL: http://webrtc-codereview.appspot.com/330008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1224 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-16 20:55:46 +00:00
marpan@webrtc.org
57353a33f1 FEC Receiver: Fix to how old packets (e.g., re-tranmitted packets in hybird NACK-FEC mode) are treated.
This change avoids having old packets end up on the current packet list for FEC decoding, and so they are immediately sent out to jitter buffer.
The current list of packets for FEC decoding are sent out only when new packet arrives (with time-stamp greater than current).
Review URL: http://webrtc-codereview.appspot.com/322009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1222 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-16 17:21:09 +00:00
asapersson@webrtc.org
5249cc8f77 Review URL: http://webrtc-codereview.appspot.com/295010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1219 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-16 14:31:37 +00:00
henrike@webrtc.org
65573f2922 Removed usage of the deprecated critical section constructor in rtp_rtcp.
Review URL: http://webrtc-codereview.appspot.com/315004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1173 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-13 19:17:27 +00:00
stefan@webrtc.org
f4c8286222 Pass NACK and FEC overhead rates through the ProtectionCallback to VCM.
These overhead rates are used by the VCM to compensate the source
coding rate for NACK and FEC.

BUG=
TEST=

Review URL: http://webrtc-codereview.appspot.com/323003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1171 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-13 15:38:14 +00:00
henrik.lundin@webrtc.org
1ced840893 Fixing a nit in the unittest
This caused some of the build bots to fail.

Review URL: http://webrtc-codereview.appspot.com/324005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1170 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-13 14:59:00 +00:00
henrik.lundin@webrtc.org
eda86dc76b Adding a LayerSync bit to VP8 RTP header
Updated RtpFormatVp8, ModuleRTPUtility, VP8Encoder and VP8Decoder
to support a new LayerSync ("Y") bit. Note, in VP8Encoder the bit
must be used together with a non-negative value for temporalIdx.
Fixing the plumbing between RTP module and and from VP8 wrapper.
Updating unit tests; all pass.

The new bit is yet to be used by the VP8 wrapper.

Review URL: http://webrtc-codereview.appspot.com/323008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1169 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-13 14:11:06 +00:00
henrik.lundin@webrtc.org
4aae0e489f Shaping up formatting of rtp_utility_test.cc
Preparations for future work in this file.

Review URL: http://webrtc-codereview.appspot.com/318011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1168 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-13 09:15:21 +00:00
henrike@webrtc.org
315282c01a Fixes a compiler warning related to dynamically allocated static memory. the fix is to leak the memory since the OS will clean it up anyways. This will not add noise to memory tools so it's ok. The issue is reported here: http://code.google.com/p/webrtc/issues/detail?id=147.
Review URL: http://webrtc-codereview.appspot.com/267023

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1150 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-09 17:46:20 +00:00
henrike@webrtc.org
441b3fe2a1 Made some global statics have function scope so that the global static count is 0 for the rtp_rtcp module.
Review URL: http://webrtc-codereview.appspot.com/316001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1125 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-08 02:03:49 +00:00
stefan@webrtc.org
cc7b649474 Add trace for the situation when the min bitrate > available bandwidth.
BUG=
TEST=

Review URL: http://webrtc-codereview.appspot.com/312001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1123 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-07 13:22:06 +00:00
henrik.lundin@webrtc.org
bf86c33b0e Removing OutputDebugString from rtp_rtcp module
This is in response to WebRTC issue 167.

BUG=http://code.google.com/p/webrtc/issues/detail?id=167

Review URL: http://webrtc-codereview.appspot.com/301013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1119 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-07 10:44:05 +00:00
marpan@webrtc.org
1d34212a45 FEC: Update to packets masks (FEC generator matrix) in fec_private_tables.h
A set of the packet masks (up 10x10 size) are modified for the following reasons:

1) have more even column and row degree (number of 1 bits), when possible.

2) if cases where the column degree cannot be constant across source packets, placed the extra 1 bit in the first packet column (so little more protection on 1st partition), as opposed to having some ~middle source packet have the extra bit.

3) in some cases, made the mask a little more sparse/reduced the overlap.

Overall the average recovery is a little better with these masks.

Mask sizes above 10 will be updated in future changelist.
Review URL: http://webrtc-codereview.appspot.com/305001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1113 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-06 18:50:11 +00:00
henrik.lundin@webrtc.org
b6e58eb5a1 Fix formatting of rtp_format_vp8*
Sorting out all lint issues and fixing indentation.

Review URL: http://webrtc-codereview.appspot.com/301011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1111 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-06 15:56:18 +00:00
henrike@webrtc.org
4b00560a6e Fixes build error in rtp_rtc module introduced in r1076.
Review URL: http://webrtc-codereview.appspot.com/301005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1081 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-02 00:32:24 +00:00
pwestin@webrtc.org
0644b1dc35 Introduce a mockable RtpRtcpClock interface replacing ModuleRTPUtility time functions
A new RtpRtcpClock interface has been added to rtp_rtcp_defines.h
and provides time facilities used by an RTP/RTCP module. Also,
NTP constants have been made public in the
webrtc::ModuleRTPUtility namespace to make implementation of
external clocks easier.

An overloaded version of CreateRtpRtcp() accepts a clock argument. By
default, if no clock is provided, the module uses the system clock
(old ModuleRTPUtility implementation).

Throughout the RTP/RTCP module code, calls to TickTime and
ModuleRTPUtility time functions have been replaced with calls to time
methods on a clock object.

The following classes take a clock object in their constructor and
hold a _clock field (either directly, or inherited from a parent):

Bitrate
ModuleRtpRtcpImpl
RTCPReceiver
RTCPSender
RTPReceiver
RTPSender
RTPSenderAudio
RTPSenderVideo

Methods from other classes that do not derive any of those and
require a time take an additional nowMS parameter, that should be
the result of calling GetTimeInMS() on a clock object.
Review URL: http://webrtc-codereview.appspot.com/268017

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1076 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-01 15:42:31 +00:00
marpan@webrtc.org
9d8bec6f76 FEC: Fix to valgrind warning.
Review URL: http://webrtc-codereview.appspot.com/292009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1042 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-28 22:10:05 +00:00
stefan@webrtc.org
94a8c03141 Slightly increased bandwidth adaptation at both receive- and send-side.
The send-side increase factor is increased to better follow the pace
of the receive-side estimate, while the receive-side factor is
increased to speed up adaptation.

BUG=
TEST=

Review URL: http://webrtc-codereview.appspot.com/297002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1030 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-25 14:09:37 +00:00
xians@webrtc.org
8738d277a1 Valgrind detects that there are racing conditions in RTPReceiver::PacketTimeout and RTPSender
This CL fixes two of them.
Review URL: http://webrtc-codereview.appspot.com/295005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1029 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-25 13:43:53 +00:00
henrik.lundin@webrtc.org
859626570a VP8 RTP work
Fixing the plumbing to get the KEYIDX between VP8 wrapper and
rtp_rtcp module. Also fixing a missing pipe for temporalIdx

Review URL: http://webrtc-codereview.appspot.com/295004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1024 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-25 10:17:00 +00:00
mflodman@webrtc.org
26b9777e62 Only trigger one call to OnNetworkChanged for each incoming RTCP packet.
Review URL: http://webrtc-codereview.appspot.com/289004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1016 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-24 15:22:33 +00:00
henrik.lundin@webrtc.org
9af365d3c5 Fixing VP8 RTP parser bug
Missing one initialization of new struct variable hasKeyIdx.

TBR=stefan@webrtc.org

Review URL: http://webrtc-codereview.appspot.com/296004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1014 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-24 13:28:29 +00:00
henrik.lundin@webrtc.org
6f2c0168f0 Updating to VP8 RTP spec rev -02
Updating the VP8 packetizer class (RtpFormatVp8) and VP8 parser
(in class RTPPayloadParser) to follow the -02 revision of the spec.
See http://tools.ietf.org/html/draft-ietf-payload-vp8-02.

Updating the unit tests, too. Finally, updating the tests to
follow the recommendations from the test team; specifically
including the test code in the webrtc namespace, and omitting
the main function at the end of each test file.

Review URL: http://webrtc-codereview.appspot.com/296003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1013 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-24 12:52:40 +00:00
stefan@webrtc.org
fcf33eb7e0 Limit number of send-side BWE increases to one per second.
Also report 0 losses if not enough expected packets since
previous receiver report.

BUG=
TEST=

Review URL: http://webrtc-codereview.appspot.com/270009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@954 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-16 07:58:31 +00:00
mflodman@webrtc.org
a02ef1ace2 Fix broken tree.
Review URL: http://webrtc-codereview.appspot.com/267015

git-svn-id: http://webrtc.googlecode.com/svn/trunk@943 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-15 07:50:50 +00:00
mflodman@webrtc.org
1f69c03739 Added size sanity check for copying app specific RTCP data.
Similar check as done in RTCPUtility::RTCPParserV2::ParseAPPItem.

Review URL: http://webrtc-codereview.appspot.com/277002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@942 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-15 06:12:39 +00:00
mflodman@webrtc.org
fd3a0efd15 RTP bw estimate fix.
Review URL: http://webrtc-codereview.appspot.com/279004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@932 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-11 10:55:26 +00:00
mflodman@webrtc.org
7a4eb2837a Calculate the available bandwidth before sending a TMMBR
Also changed the way TMMBR was processed since it did not match the new bandwidth estimator.

Review URL: http://webrtc-codereview.appspot.com/270003
Patch from pwestin1 <pwestin@webrtc.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@925 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-10 12:54:46 +00:00
mflodman@webrtc.org
03a9eb1526 RTP module: Make sure payloadName is null terminated.
Review URL: http://webrtc-codereview.appspot.com/268006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@908 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-09 14:51:18 +00:00
henrik.lundin@webrtc.org
f15fbc379d Change in RTP module SendVP8
Changing how the max payload length is calculated. Instead
of handling RTP and FEC header overhead explicitly, call the
MaxDataPayloadLength method which already does it. Avoid redundant code. Had to move MaxDataPayloadLength to the
RTPSenderInterface.

Review URL: http://webrtc-codereview.appspot.com/269002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@901 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-08 08:23:47 +00:00
mflodman@webrtc.org
5ae9f5ed6c Adding logs in RTPSender::ReSendToNetwork.
Review URL: http://webrtc-codereview.appspot.com/273001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@896 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-07 20:03:00 +00:00
kjellander@webrtc.org
1a8d08ad76 Changing usage of gtest_main target, to use test_support_main instead.
Review URL: http://webrtc-codereview.appspot.com/252002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@884 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-03 23:28:47 +00:00
pwestin@webrtc.org
7232ad78b2 reverted back the sanity and changed the test
Review URL: http://webrtc-codereview.appspot.com/254006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@877 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-03 00:36:32 +00:00
pwestin@webrtc.org
cfc1070586 Fixed sanity for min length
Review URL: http://webrtc-codereview.appspot.com/259003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@876 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-03 00:15:44 +00:00