182 Commits

Author SHA1 Message Date
pwestin@webrtc.org
0774838f3d Refactor the internal API to the rtp/rtcp module.
Review URL: https://webrtc-codereview.appspot.com/568004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2211 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-10 12:33:50 +00:00
hta@webrtc.org
b6f2417f37 Renamed all _test.cc files to _unittest.cc, to conform to convention
for webrtc.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2172 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-04 08:13:57 +00:00
hta@webrtc.org
54536bb6d4 Refactoring of the TMMBRSet class, giving it a reasonably tight interface.
The CL also fixes a number of line length and tab issues in touched files.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2168 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-03 14:07:23 +00:00
hta@webrtc.org
404843e6e5 Timeout tests for TMMBR
Added a test that injects 3 packets and then times out.

Rewrote the packet construction in test to use a builder format.
This makes tests a lot more readable.

Odd behaviour of timeout found; documented as test.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2161 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-02 09:56:45 +00:00
hta@webrtc.org
3c0df7d376 Fixed a build break: I'd forgotten to remove a DELETE statement.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2160 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-02 08:22:21 +00:00
hta@webrtc.org
47059b5dfb Adds unit tests for RTCP receiver, focusing on TMMBR handling.
This is the first part of a plan:

- Get basic unit tests for rtcp_receiver.
- Get an unit test for some code inside rtcp_receiver
  that touches the TMMBRSet class in hard-to-decipher ways
  (rtcp_receiver_help, GetTMMBRSet function, use of memmove()).
- Refactor the TMMBRSet class.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2159 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-02 07:46:22 +00:00
hta@webrtc.org
65a4e4ed56 Minor refactoring: RTCPReceiver::BoundingSet
Remove ability to modify a pointer argument.

Added a test for transmitting a non-empty TMMBN

BUG=
TEST=unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2148 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-30 11:23:41 +00:00
hta@webrtc.org
c2d985257b untabify
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2145 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-30 08:25:10 +00:00
hta@webrtc.org
9d54cd12ab TMMBN sender test passes, fixed receiver flag bug
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2144 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-30 08:24:55 +00:00
pwestin@webrtc.org
b1313aac7c Fix missing h file change.
Review URL: https://webrtc-codereview.appspot.com/535001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2136 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-27 05:42:05 +00:00
pwestin@webrtc.org
49888ce428 Breaking out send side bitrate controll cont.
Review URL: https://webrtc-codereview.appspot.com/475004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2135 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-27 05:25:53 +00:00
tommi@webrtc.org
a990e122c4 * Change the reference counting implementation for VoE to be per object and
not per interface. This simplifies things a bit, reduces code and makes it
  possible to implement reference counting (if we ever want) without the
  static Delete() method.  (Reference counted objects are traditionally
  implicitly deleted via the last Release())

* Since the reference counting code is now simpler, there's no need for the
  RefCount class so I'm removing it.

* Also removing the optional |ignoreRefCounters| variable from the VoiceEngine::Delete
  method.  The justification is that it's no longer used and the reason it was there
  in the first place was to avoid bugs in third party code, so it's an indication that
  something is wrong elsewhere.

* Fix a crash in voe_network_impl and voe_extended_test that would happen on machines with IPv6 support.

* Fix an assert (handle the case) in the extended audio tests when SetCNAME is called with a NULL pointer.

* As a side effect of this change, hopefully the footprint of VoE will be slightly smaller :)

BUG=10445 (Coverity)
Review URL: https://webrtc-codereview.appspot.com/521003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2127 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-26 15:28:22 +00:00
asapersson@webrtc.org
d18dd6dc7e Made OnPacketLossStatisticsUpdate function virtual (needed for ViCE).
Review URL: https://webrtc-codereview.appspot.com/520002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2115 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-25 07:19:02 +00:00
pwestin@webrtc.org
ddab60be56 Wire up pading.
Review URL: https://webrtc-codereview.appspot.com/509002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2094 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-23 14:52:15 +00:00
asapersson@webrtc.org
83ed0a4359 Try to resend next packet in nack list even if previous packet is not found.
Review URL: https://webrtc-codereview.appspot.com/515001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2089 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-23 12:43:05 +00:00
asapersson@webrtc.org
63a34f4f29 Fix in SendPadData. Do not increase sequence number if packet is "empty" and not sent.
Review URL: https://webrtc-codereview.appspot.com/508001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2083 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-20 13:20:27 +00:00
asapersson@webrtc.org
a768970bac Parse out ssrcs in REMB message (needed for ViCE) .
Review URL: https://webrtc-codereview.appspot.com/486003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2061 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-19 07:01:29 +00:00
mflodman@webrtc.org
b1fbf016b5 Added timestamp logs, i.e. only tracing.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2030 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-16 12:58:49 +00:00
tina.legrand@webrtc.org
16b6b90a82 Split of stereo packets moved
In this CL I have rewritten the way we handle stereo packets in VoE.
Before this change we split the packets in the RTP module and added two packets to ACM, one for the left channel and one for the right. This lead to timing problems caused when a different thread called RecOut in between the two calls to add stereo packet to ACM. (RecOut is called to pull audio data, decode packets, on the receiving side).

While doing the change I also took the opportunity to changed some functions so that the data stream is uint8 everywhere.

The list of files in this CL is long, but should be fairly easy to review. It is difficult to see what has been changed  in some of the tests, but I can explain offline.

Reviewers:
Björn - /src/modules/audio_coding
Patrik - /src/modules/rtp_rtcp
Patrik -/src/modules/utility
Henrik A - /src/voice_engine

BUG=410
TEST=voe_cmd_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2012 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-12 11:02:38 +00:00
stefan@webrtc.org
c35f5ced92 Enable multi-frame FEC by default for temporal layers <= 2. For two temporal layers we currently only protect the base layer.
This also introduces zero column insertion into packet masks when some sequence numbers deliberately haven't been given to the FEC generator.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2005 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-11 07:42:25 +00:00
tommi@webrtc.org
98ad0ff1b0 Move the COMPILE_ASSERT macro to its own header file.
TEST=n/a
BUG=none
Review URL: https://webrtc-codereview.appspot.com/492002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2001 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-10 11:53:07 +00:00
pwestin@webrtc.org
cac787842c New attempt to cleanup TMMBR.
Review URL: https://webrtc-codereview.appspot.com/472007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1990 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-05 08:30:10 +00:00
henrike@webrtc.org
0ad51862dc Revert 1961 - Clean up TMMBR handling.
Review URL: https://webrtc-codereview.appspot.com/465001

TBR=pwestin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/473001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1967 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-30 16:54:13 +00:00
marpan@webrtc.org
3a6080d4c0 FEC Decoding: Insert the received media packets directly into VCM without going
through the recovered packet list. Avoids an issue with very old re-transmitted packets.

Updated the receiver_fec unittest accordingly.
Review URL: https://webrtc-codereview.appspot.com/465003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1966 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-30 16:16:21 +00:00
pwestin@webrtc.org
20f4440c73 Clean up TMMBR handling.
Review URL: https://webrtc-codereview.appspot.com/465001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1961 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-30 11:40:15 +00:00
mflodman@webrtc.org
534a435751 Removed RTP Keepalive from RTP module.
Review URL: https://webrtc-codereview.appspot.com/455007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1942 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-27 06:57:41 +00:00
stefan@webrtc.org
38f247d800 Fixes an issue in the FEC decoder where a big jump in sequence numbers may cause new packets to be discarded if there is a wrap around.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1934 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-23 22:34:14 +00:00
stefan@webrtc.org
af5ffd5bb9 Fixes for coverity warnings.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1933 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-23 16:01:15 +00:00
tina.legrand@webrtc.org
c231e4cb03 Fixing bug in re-packing of stereo packets.
BUG=341
TEST=voe_cmd_test, run G.722. First modify /src/modules/audio_coding_main/source/acm_codec_database.cc
@@ -149,7 +149,7 @@ const CodecInst ACMCodecDB::database_[] = {
   {kDynamicPayloadtypes[count_database++], "CELT", 32000, 320, 2, 64000},
 #endif
 #ifdef WEBRTC_CODEC_G722
-  {9, "G722", 16000, 320, 1, 64000},
+  {9, "G722", 16000, 320, 2, 64000},
 #endif
 #ifdef WEBRTC_CODEC_G722_1

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1930 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-23 10:01:11 +00:00
stefan@webrtc.org
e0d6fa4c66 Adding classes for handling multi-frame FEC.
The FEC behavior is unchanged with this commit, we will still be
limited to FEC over one frame for now.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1915 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-20 22:10:56 +00:00
leozwang@webrtc.org
0975d2158c Cleanup messy data type of unknown_payload_type
BUG=322
TEST=build on all platforms
Review URL: https://webrtc-codereview.appspot.com/430002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1848 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-06 20:59:13 +00:00
mflodman@webrtc.org
9ec883e8bd Allow multiple REMB groups and introduce receive channels.
BUG=312
TEST=ViE standard autotest and API test.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1836 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-05 17:12:41 +00:00
mflodman@webrtc.org
fa6bc673b0 Changed default module condition for BW estimate.
Review URL: https://webrtc-codereview.appspot.com/433001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1832 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-05 11:59:55 +00:00
marpan@webrtc.org
946601e408 Change default packetization mode to an equal size mode.
This will produce equal size packets for each frame, which should be somewhat more favorable (less overhead/padding data) for the FEC.
Review URL: https://webrtc-codereview.appspot.com/396013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1754 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-23 18:52:53 +00:00
mflodman@webrtc.org
4cb060127c Disabled RTPModule VP8 packetizer assert.
BUG=293

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1715 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-17 13:07:01 +00:00
mflodman@webrtc.org
f7b6078f6f Allow multiple send channels for REMB. Current implementation splits the remote estimate evenly between all senders.
This CL will be followed by a CL adding support for several REMB groups.

TEST=video_engine_core_unittests

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1705 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-16 14:50:24 +00:00
stefan@webrtc.org
439be29445 Add APIs for getting receive-side estimated bandwidth and codec target rate.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1704 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-16 14:45:37 +00:00
henrike@webrtc.org
d6d014ff12 Fixes memory leaks introduced in 1698.
Review URL: https://webrtc-codereview.appspot.com/387014

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1701 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-16 02:18:09 +00:00
henrike@webrtc.org
f5da4da409 Removes a global non POD instance from the RTP_RTCP module that was introduced in https://code.google.com/p/webrtc/source/detail?r=1076.
Review URL: https://webrtc-codereview.appspot.com/314001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1698 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-15 23:54:59 +00:00
mflodman@webrtc.org
d7d46887a6 Update receive only channels with RTT.
vie_autotest_loopback.cc will not be part of the commit, it's only to show the test.

TEST=temporary with attached loopback test.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1678 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-14 12:49:59 +00:00
marpan@webrtc.org
567d507707 Fixes a bug when number of media packets in a frame is larger than maximum allowed for the generateFEC.
Review URL: https://webrtc-codereview.appspot.com/391003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1673 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-10 18:56:14 +00:00
mflodman@webrtc.org
8224e19dd9 Fixed incorrect packet loss reported to encoder.
BUG=275

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1669 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-10 12:41:57 +00:00
pwestin@webrtc.org
5e954814a8 Clanup handling of key frame requests and FIR.
Review URL: https://webrtc-codereview.appspot.com/387004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1667 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-10 12:13:12 +00:00
stefan@webrtc.org
4b377414f1 Fix release build errors.
TBR=mflodman
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1654 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-09 13:50:57 +00:00
stefan@webrtc.org
9c84b0dc9f Fix build errors with GCC.
TBR=mflodman
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1652 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-09 13:14:04 +00:00
stefan@webrtc.org
7adab0922d This removes the knowledge of frame completeness from the FEC decoder.
Therefore, with this change a recovered packet is only considered old,
and will be removed, if more than 48 recovered packets are stored.

Packets are immediately reconstructed and sent to the jitter
buffer. Before this CL packets were processed on a frame-by-frame
basis, and all packets belonging to a frame was sent to the
jitter buffer at the same time.

The number of FEC packets is also limited to 48. An FEC packet is
removed if all protected packets have been recovered or if the
FEC packet is considered old.

Lot's of tests added.

Patch-set 2:
- Fixed rtp_fec_unittest.cc to work with the new reconstruction.
- Added reference counting of Packet to be able to keep references to them from FecPacket between different reconstruction runs.
- Rewrote the packet search to use std::set_intersection.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1651 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-09 12:34:52 +00:00
henrike@webrtc.org
d5657c2f69 Refactored files according to google style since http://review.webrtc.org/314001/ is blocked on this and formatting changes should not be done with code changes.
Review URL: https://webrtc-codereview.appspot.com/387005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1648 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-08 23:41:49 +00:00
andrew@webrtc.org
68da6adafe Remove WebRtc_ types.
Allows us to avoid the "cast to UWord32" Coverity coverup.

BUG=
TEST=test_fec

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1647 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-08 22:24:14 +00:00
tina.legrand@webrtc.org
df69775bfa Adding support for full-stereo codec.
This is an experiment, letting Celt represent a full-stereo codec.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1636 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-08 10:22:21 +00:00
phoglund@webrtc.org
78088c2f36 Removed warnings on Windows and enabled warnings-as-errors on Windows.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1624 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-07 14:56:45 +00:00