484 Commits

Author SHA1 Message Date
hclam@chromium.org
b1bba167f4 Prevent excessive logging in jitter buffer
Jitter buffer logs a message when it is going to recycle frames. This adds a
lot of noise even in normal operation. This change make sure only critical
cases are logged.

R=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4150 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-31 18:52:16 +00:00
tnakamura@webrtc.org
694cdc6e84 Revert 4104 "Refactor jitter buffer to use separate lists for de..."
Reason - leading suspect of video frame corruption tracked in http://b/9216252
Note that if this turns out to not be the cause, be sure to re-revert both this change and r4145.

> Refactor jitter buffer to use separate lists for decodable and incomplete frames.
> 
> This changes the design of the jitter buffer to keeping track of decodable frames from the point when packets are inserted in the buffer, instead of searching for decodable frames when they are needed.
> 
> To accomplish this the frame_list_, which previously contained all frames (incomplete or complete, continuous or not), is split into a list of decodable_frames_ (complete, continuous) and a list of incomplete_frames_ (either incomplete or non-continuous). These frame lists are updated every time a packet is inserted.
> 
> This is another step in the direction of doing most of the work in the jitter buffer only once, when packets are inserted, instead of doing it every time we look for a frame or try to get a nack list.
> 
> BUG=1798
> TEST=vie_auto_test, trybots
> R=mikhal@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/1522005

TBR=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4146 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-31 16:09:48 +00:00
tnakamura@webrtc.org
4d9c07ad6d Revert 4127 "Switch frame list implementation to std::map."
We want to revert r4104 for b/9216252, but because r4127 was built on top of r4104, we need to revert r4127 first. We'll un/re-revert this if we discover that r4104 is not to blame.


> Switch frame list implementation to std::map.
> 
> This reduces the complexity of insert and find (by timestamp) from linear to logarithmic, which has a big impact on large frame lists.
> 
> BUG=1726
> TEST=trybots, vie_auto_test --automated
> R=mikhal@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/1561005

TBR=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4145 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-31 16:06:01 +00:00
mikhal@webrtc.org
adc64a7216 VCM/Timing: Setting clear names to members & methods
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4140 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-30 16:20:18 +00:00
jiayl@webrtc.org
046bc448d5 Fixes the frameRate stats by grouping the frames by timestamp.
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4138 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 16:33:46 +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
pbos@webrtc.org
9aca5b34e1 Remove #pragma once
BUG=1830
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4130 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 13:19:09 +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
ace7ad2302 Switch frame list implementation to std::map.
This reduces the complexity of insert and find (by timestamp) from linear to logarithmic, which has a big impact on large frame lists.

BUG=1726
TEST=trybots, vie_auto_test --automated
R=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4127 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 07:41:48 +00:00
marpan@webrtc.org
a6ae644e52 Add comment about test_packet_masks_metrics.
R=andrew@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4124 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-28 17:42:12 +00:00
pbos@webrtc.org
8c34ceeef1 Include "gtest/gtest.h", not by full path, on WEBRTC_ANDROID_PLATFORM_BUILD
BUG=
TBR=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4119 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-28 09:24:03 +00:00
pbos@webrtc.org
15c1c61e2c Include files from webrtc/.. paths in audio_conference_mixer/
BUG=1662
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4117 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-28 08:13:20 +00:00
pbos@webrtc.org
7fad4b8c9f Include files from webrtc/.. paths in audio_processing/
BUG=1662
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4116 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-28 08:11:59 +00:00
solenberg@webrtc.org
a6db54d4c9 - Created RemoteBitrateEstimator wrapper for use internally in (ViE) ChannelGroup.
- Changed implementation of SetReceiveAbsoluteSendTimeStatus API so the RBE instance is changed when at least one channel in a group has the extension enabled.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4113 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 16:02:56 +00:00
pbos@webrtc.org
6f3d8fcfc0 Include files from webrtc/.. paths in video_processing/
BUG=1662
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4109 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 14:12:16 +00:00
pbos@webrtc.org
47ce120efb Include files from webrtc/.. paths in remote_bitrate_estimator/
BUG=1662
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4108 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 12:41:33 +00:00
stefan@webrtc.org
7f3f8bc5a6 Refactor jitter buffer to use separate lists for decodable and incomplete frames.
This changes the design of the jitter buffer to keeping track of decodable frames from the point when packets are inserted in the buffer, instead of searching for decodable frames when they are needed.

To accomplish this the frame_list_, which previously contained all frames (incomplete or complete, continuous or not), is split into a list of decodable_frames_ (complete, continuous) and a list of incomplete_frames_ (either incomplete or non-continuous). These frame lists are updated every time a packet is inserted.

This is another step in the direction of doing most of the work in the jitter buffer only once, when packets are inserted, instead of doing it every time we look for a frame or try to get a nack list.

BUG=1798
TEST=vie_auto_test, trybots
R=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4104 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 07:02:45 +00:00
sergeyu@chromium.org
ead3c6d508 Fix bugs in DesktopRegion::IntersectWith() and DesktopRect::IntersectWith().
IntersectWith() didn't work correctly which breaks screen capturers in chromium.

BUG=crbug.com/243160
R=alexeypa@chromium.org, wez@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4102 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-24 21:07:20 +00:00
pbos@webrtc.org
8665da8926 Remove dead testRateControl.cc
BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4101 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-24 13:29:29 +00:00
pbos@webrtc.org
a01f7f6509 Removed dead testH263Parser.cc
BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4100 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-24 13:01:57 +00:00
pbos@webrtc.org
c1f0eb2c03 Remove dead bitstreamTest.cc.
BUG=
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4099 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-24 12:46:08 +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
stefan@webrtc.org
a7dc37d568 Log the type of recycled frames.
Also correct the logging of incoming key frame packets.

BUG=1814
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4090 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-23 07:21:05 +00:00
hclam@chromium.org
8c49c1eab3 Log a message when a key frame packet is received
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4089 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 21:18:59 +00:00
solenberg@webrtc.org
46db413e22 Fix failing tests on 32 bit Linux.
BUG=
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4088 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 20:53:42 +00:00
turaj@webrtc.org
e46c8d3875 API to control target delay in NetEq jitter buffer. NetEq maintains the given delay unless channel conditions require a higher delay.
TEST=unit-test, manual, trybots.
R=henrik.lundin@webrtc.org, henrika@webrtc.org, mflodman@webrtc.org, mikhal@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4087 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 20:39:43 +00:00
solenberg@webrtc.org
561990fd73 - Changed RemoteBitrateEstimator::IncomingPacket() to include a const WebRtcRTPHeader& and remove ssrc, rtp_timestamp.
- Changed RemoteBitrateObserver::OnReceivedBitrateChanged() to use a const & instead of non-const *, to avoid unnecessary copying.
- Refactored RemoteBitrateEstimatorTest so it can be instantiated for both single and multi stream BWE (first using a parameterized test, but then as a standard test fixture and a few helper functions).
- Refactored some tests in RemoteBitrateEstimatorTest into a common function CapacityDropTestHelper().

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4086 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 19:04:19 +00:00
sergeyu@chromium.org
6ec25073e3 Disable WindowCapturer tests on OSX and Linux
R=alexeypa@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4085 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 18:47:07 +00:00
sergeyu@chromium.org
6ebfd346ae Add direct_dependent_settings in common.gypi.
When building chromium targets that depend on webrtc, compiler settings must
have the include path to webrtc and webrtc-specific defines that the headers
may depend on. Added direct_dependent_settings in common.gyp, so that all
webrtc target propagate these settings to dependencies.

R=andrew@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4084 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 18:22:21 +00:00
mikhal@webrtc.org
2eaf98b38b Refactor VCM/Timing.
No changes in functionality.

R=marpan@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4081 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-21 17:58:43 +00:00
stefan@webrtc.org
3417eb49f6 Consolidate GetFrame and InsertPacket and move NACK list processing to after a packet has been successfully inserted.
TEST=trybots
BUG=1799
R=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4080 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-21 15:25:53 +00:00
hclam@chromium.org
0d540c3762 Log timestamp of the frame when it's dropped from the render module
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4075 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-21 00:16:01 +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
sergeyu@chromium.org
b10ccbec02 Window capturer implementation for Windows.
R=alexeypa@chromium.org, andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4064 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-19 07:02:48 +00:00
fischman@webrtc.org
8d6eb56085 Avoid NPE crash on Android platforms that don't support getting preview framerate.
- catch Camera.setParameters() signaling errors through RuntimeException (!)
- make video_demo_apk rebuild when .java sources change

BUG=1778
R=wu@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4059 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-17 17:33:31 +00:00
stefan@webrtc.org
9f557c140e Improve wraparound handling in the render time extrapolator.
This was actually working as intended, but as r3970 changed when render timestamps were extrapolated to when a frame was taken out for decoding, the wraparound could have happened in the Update() step before it had happened in the ExtrapolateLocalTime() step. This causes render timestamps to be generated 13 hours into the future.

TEST=trybots
BUG=1787
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4055 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-17 12:55:07 +00:00
phoglund@webrtc.org
14d7700d00 Moved command line parsing to internal tools and moved back the mic volume thingie.
BUG=
R=henrika@webrtc.org, kjellander@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4054 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-17 11:52:08 +00:00
turaj@webrtc.org
8630cfe016 Guarding certain operations, e.g. bandwidth estimation, RTCP statistics update etc., not to be run on sync RTPS.
BUG=issue1770
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4052 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 23:54:54 +00:00
hclam@chromium.org
fe307e1332 Add one unit test for NACKing a key frame
Adding a test case that wasn't covered. This new test is passing.

R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4051 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 21:19:59 +00:00
hclam@chromium.org
b3e5acfb66 Cleanup traces in WebRTC
Remove some unused traces and add a trace counter for encoded video size.

R=holmer@google.com, mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4050 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 21:13:02 +00:00
pbos@webrtc.org
b9bb3d1e7d Avoid resetting encoder on identical settings.
BUG=1681
R=holmer@google.com, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4049 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 18:40:48 +00:00
marpan@webrtc.org
890f6092e6 Bugfix: VCM would report wrong sentBitrate
issue: https://code.google.com/p/webrtc/issues/detail?id=1755

R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4048 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 15:38:44 +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
stefan@webrtc.org
2038214c77 Log too long non-decodable duration events.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4043 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 11:39:06 +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
mikhal@webrtc.org
cb20a5b2d7 VCM/JB: Bug fix in ExtractAndSetDecode
BUG=1771
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4035 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-15 17:10:44 +00:00
solenberg@webrtc.org
5add4ad09c RemoteBitrateEstimatorTest::TestRateIncreaseReordering sent in arrival timestamps in non monotonically increasing order. Fixed.
BUG=
R=holmer@google.com, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4034 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-15 13:49:57 +00:00
braveyao@webrtc.org
c93b1d038d CoreAudio Win: release resources safely under certain rare circumstance in GTalkplugin
BUG=
TEST=voe_auto_test
R=henrika@webrtc.org

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

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