Commit Graph

63 Commits

Author SHA1 Message Date
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
wu@webrtc.org
76aea651ff When _audioConfigured, should not try to use the _video.
Review URL: http://webrtc-codereview.appspot.com/224004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@758 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-17 21:40:32 +00:00
marpan@webrtc.org
14aaaf116a Some re-organization of the fec-uep code: updated protection modes, comments, and some variable/function re-naming.
Review URL: http://webrtc-codereview.appspot.com/231001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@752 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-14 16:28:02 +00:00
stefan@webrtc.org
d0bdab0128 Adding API to get sent total bitrate, FEC bitrate and NACK bitrate.
Also adding tests for this in vie_auto_test.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@749 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-14 14:24:54 +00:00
marpan@webrtc.org
5a3e20f678 Removed unused variables (build error) for test_fec.
Review URL: http://webrtc-codereview.appspot.com/223001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@738 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-13 16:59:24 +00:00
pwestin@webrtc.org
1da1ce0da5 First implementation of simulcast, adds VP8 simulcast to video engine.
Changed API to RTP module
Expanded Auto test with a test for simulcast
Made the video codec tests compile
Added the vp8_simulcast files to this cl
Added missing auto test file
Review URL: http://webrtc-codereview.appspot.com/188001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@736 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-13 15:19:55 +00:00
henrike@webrtc.org
bf54ef9bb7 Removed code under a non-existing define.
Review URL: http://webrtc-codereview.appspot.com/193006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@706 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-06 18:14:25 +00:00
pwestin@webrtc.org
741da942ec Added support for new RTCP message REMB (remote estimated max bitrate)
Review URL: http://webrtc-codereview.appspot.com/149001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@628 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-09-20 13:52:04 +00:00
henrik.lundin@webrtc.org
4c36d3b424 Fixing windows warnings in rtp_utility
Adding explicit casting to bool to avoid warnings when compiling
in windows.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@619 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-09-19 08:16:20 +00:00
andrew@webrtc.org
2cef36fa98 Fix Windows gyp run.
On Windows, gyp seems to require valid source files. The matlab_plotting_test target was missing its one source file, so I removed the target.

Also moving bwe_standalone.gypi to the test include list.
Review URL: http://webrtc-codereview.appspot.com/143001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@589 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-09-13 17:03:15 +00:00
xians@google.com
d3185fe219 refactor the gyp file to gypi file.
Basically, the gypi file is a copy of gyp file, but has some difference on the
path of the dependencies.
Review URL: http://webrtc-codereview.appspot.com/137020

git-svn-id: http://webrtc.googlecode.com/svn/trunk@581 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-09-12 12:24:39 +00:00
stefan@webrtc.org
9e812fca9f Adding missing parts related to VP8 partitions
Review URL: http://webrtc-codereview.appspot.com/131017

git-svn-id: http://webrtc.googlecode.com/svn/trunk@561 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-09-08 10:11:24 +00:00
stefan@webrtc.org
269f8a14c6 Undoing change committed in r514 since it broke bandwidth estimation
Review URL: http://webrtc-codereview.appspot.com/132011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@531 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-09-06 09:51:59 +00:00
andrew@webrtc.org
4d905f88c6 Fix clang warnings in rtp.
Review URL: http://webrtc-codereview.appspot.com/132006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@514 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-09-01 19:22:27 +00:00
pwestin@webrtc.org
e9f0e2eb20 Moved _rtpReceiver to protected
Review URL: http://webrtc-codereview.appspot.com/132005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@495 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-31 13:16:52 +00:00
henrik.lundin@webrtc.org
8571af7be6 Updating to new VP8 rtp format
The VP8 packetizer and tests have been updated to the new
RTP draft (http://tools.ietf.org/html/draft-ietf-payload-vp8-01).
The receive-side parser is also updated, and a new unit test
is implemented for it. Finally, some data traversing work to
get the parsed information into the decoder.
Review URL: http://webrtc-codereview.appspot.com/116011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@482 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-29 15:37:12 +00:00
andrew@webrtc.org
4f390000dd Fix warnings on Ubuntu 11.04 (gcc 4.5)
http://code.google.com/p/webrtc/issues/detail?id=63
Review URL: http://webrtc-codereview.appspot.com/125004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@439 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-24 20:35:35 +00:00
hellner@google.com
a386fc0a8b Fixes build warnings due to unused variables.
Code directly from http://code.google.com/p/webrtc/issues/detail?id=58.
Review URL: http://webrtc-codereview.appspot.com/119007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@428 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-23 21:26:09 +00:00
perkj@google.com
12f1fc4fe5 Fix initialization defect in constructor webrtc::ModuleRtpRtcpImpl::ModuleRtpRtcpImpl(WebRtc_Word32, bool) initialization list.
Review URL: http://webrtc-codereview.appspot.com/125002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@422 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-23 14:26:33 +00:00
pwestin@webrtc.org
a070adbab2 Moved member RTPSender from private to protected.
Review URL: http://webrtc-codereview.appspot.com/119006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@420 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-23 11:17:03 +00:00
andrew@webrtc.org
f81f9f8c2a Add -Werror and -Wextra to the Linux build.
Includes all fixes required for -Wextra.
Review URL: http://webrtc-codereview.appspot.com/117006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@410 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-19 22:56:22 +00:00
hellner@google.com
977c2966fc Review URL: http://webrtc-codereview.appspot.com/109006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@383 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-16 17:30:30 +00:00
mikhal@google.com
60873adc3e rtp_sender_video: Modify behavior on send video packet error. This issue was already updated in CL r217, and accidentally reverted in CL r231.
Review URL: http://webrtc-codereview.appspot.com/106004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@354 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-11 22:30:00 +00:00
andrew@webrtc.org
8910f278c5 Switch to webrtc.org accounts (for those which exist).
Review URL: http://webrtc-codereview.appspot.com/97010

git-svn-id: http://webrtc.googlecode.com/svn/trunk@342 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-08-10 05:16:31 +00:00