86 Commits

Author SHA1 Message Date
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
marpan@webrtc.org
63b50f60d6 test_fec: Fix to valgrind warnings.
Review URL: http://webrtc-codereview.appspot.com/304002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1135 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-08 19:05:39 +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
marpan@webrtc.org
040cb71e0a Fix windows compilation errors and warning for test_fec. Disabled VERBOSE_OUTPUT.
Review URL: http://webrtc-codereview.appspot.com/253005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@889 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-04 22:57:56 +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
pwestin@webrtc.org
075e91fa27 Added parsing of width and height from VP8 header
Review URL: http://webrtc-codereview.appspot.com/241012

git-svn-id: http://webrtc.googlecode.com/svn/trunk@875 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-02 23:14:58 +00:00
stefan@webrtc.org
fbea4e555d Solves two bandwidth estimation issues and measures the sent video bitrate.
Issues solved:
1. Possible overflow when reducing the bandwidth estimate at the send-side
2. A burst of loss reports could make us reduce the rate way too far since
   we reduced the rate relative the current estimate and not the actual
   rate sent.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@822 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-27 16:08:29 +00:00
stefan@webrtc.org
5eb64f06be Fix BitrateSent() API when having a default RTP module.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@796 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-21 13:42:50 +00:00
stefan@webrtc.org
c4d1983b7b Changes in rtp_format_vp8_unittest to match the changes in CL 774.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@782 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-20 08:19:34 +00:00
henrike@webrtc.org
509c9c5d09 operator + is evaluated before ?:
Parenthesis ensures the intended behavior.
Review URL: http://webrtc-codereview.appspot.com/239003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@777 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-19 18:31:01 +00:00
stefan@webrtc.org
ffd28f95c5 Request key frames to battle error propagation.
The VP8 decoder wrapper will request key frames 30 frames after seeing
a packet loss, if it hasn't received a state refresh (only possible
through key frames in this version).

For this to be possible the jitter buffer has been made aware of
picture ids to be able to detect frame losses. Legacy JB code to
handle streams without marker bits was also removed since it
conflicts with streams with FEC.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@774 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-19 15:55:39 +00:00
stefan@webrtc.org
5b15cfc6dd Fix BWE unit test build issue
git-svn-id: http://webrtc.googlecode.com/svn/trunk@762 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-18 07:22:33 +00:00