43 Commits

Author SHA1 Message Date
Stefan Holmer
e590416722 Moving the pacer and the pacer thread to ChannelGroup.
This means all channels within the same group will share the same pacing queue and scheduler. It also means padding will be computed and sent by a single pacer. To accomplish this I also introduce a PacketRouter which finds the RTP module which owns the packet to be paced out.

BUG=4323
R=mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8864}
2015-03-26 10:11:22 +00:00
pbos@webrtc.org
143451d259 Base start bitrate on last observed bitrate.
Instead of setting bitrates based on codec target settings (which may
have previously been capped by a codec max bitrate), fetch the last
bandwidth allocated for this channel. This fixes broken low start bitrates
due to QCIF being set as default codec in WebRtcVideoEngine2 which caps
the max bitrate to 200kbps.

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

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

Cr-Commit-Position: refs/heads/master@{#8780}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8780 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 14:40:52 +00:00
mflodman@webrtc.org
96abda0316 Removing FEC functionality from the default RTP module.
This CL removes the last default module methods used from ViEEncoder and
the default module itself will be removed in a separate CL.

BUG=769
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8505}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8505 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 13:50:51 +00:00
pkasting@chromium.org
d324546ced Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ :
* Move constants into the files/functions that use them
* Declare variables in the narrowest scope possible
* Use correct (expected, actual) order for gtest macros
* Remove unused functions
* Untabify
* 80-column limit
* Avoid C-style casts
* Prefer true typed constants to "enum hack" constants
* Print size_t using the right format macro
* Shorten and simplify code
* Other random cleanup bits and style fixes

BUG=none
TEST=none
R=henrik.lundin@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8467}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8467 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 21:29:45 +00:00
pbos@webrtc.org
40367f984b Remove default video encoders for new video API.
Reduces stream creation time significantly. As a side effect also
removes default encoders for receive-only channels.

BUG=1788,1667
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8356}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8356 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-13 08:00:42 +00:00
pkasting@chromium.org
026b892e72 Using << on an int8_t or uint8_t will output a character rather than a number.
Places that do this need to cast to int to get the desired behavior.

BUG=none
TEST=none
R=henrik.lundin@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8223}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8223 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-30 19:54:19 +00:00
asapersson@webrtc.org
0df371549f Cast payload type to int in logs.
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7861 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-10 10:30:45 +00:00
marpan@webrtc.org
5b88317820 Add VP9 codec to VCM and vie_auto_test.
Include VP9 tests in videoprocessor_integrationtests.
Include end-to-end send/receiveVP9 test.

This is the same patch as https://code.google.com/p/webrtc/source/detail?r=7422, which was reverted when rolled into chrome (due to bss size increase). Relanding this again as we now have the clear to get this in:
see https://code.google.com/p/webrtc/issues/detail?id=3932

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7588 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-01 06:10:48 +00:00
henrike@webrtc.org
b1dac33cac Revert cls (original cl + fixes) 7422-7424 "Add VP9 codec to VCM..."
BUG=3932
R=marpan@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7470 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-17 18:54:46 +00:00
marpan@webrtc.org
573c78e31c Add VP9 codec to VCM and vie_auto_test.
Include VP9 tests in videoprocessor_integrationtests.
Include end-to-end send/receiveVP9 test.
Passes trybots.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7422 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-10 16:44:47 +00:00
asapersson@webrtc.org
9d453931c5 Change return value for number of discarded packets to be int.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7054 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 07:07:44 +00:00
tommi@webrtc.org
eec6ecdb1e Landing pkasting's webrtc fixes for MSVC level 4 warnings in WebRTC.
---

Fixes for re-enabling more MSVC level 4 warnings: webrtc/ edition

This contains fixes for the following sorts of issues:
* Possibly-uninitialized local variable
* Signedness mismatch
* Assignment inside conditional

This also contains a small number of other cleanups to nearby code. In
particular several warning-disables for MSVC are removed because they don't seem
to be necessary (either that warning is not enabled or the code does not trigger
it).

BUG=crbug.com/81439
TEST=none
R=henrika@webrtc.org, pkasting@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6667 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 19:09:59 +00:00
stefan@webrtc.org
b9f5453e29 Add boilerplate code for H.264.
R=mflodman@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6603 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 12:42:07 +00:00
mflodman@webrtc.org
f223746521 Upping start bitrate to min, if set to a lower value i SetSendCodec.
BUG=3276
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6014 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-29 12:38:42 +00:00
asapersson@webrtc.org
46106f2a05 Casting char to int in logs.
BUG=3153
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5979 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-25 07:02:52 +00:00
mflodman@webrtc.org
5574dacd1f Log Fixit for parts of video_engine folder.
BUG=3153
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5853 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-07 10:56:31 +00:00
mflodman@webrtc.org
6031001565 If the configured start bitrate is higher than the configures max
bitrate, cap the star rate accordingly.

BUG=2720
R=asapersson@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5327 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-20 15:07:12 +00:00
stefan@webrtc.org
0a3c1471b8 Add API to query video engine for the send-side delay.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5225 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-05 14:05:07 +00:00
henrik.lundin@webrtc.org
331d4402fc Connect pacer/padding to SuspendBelowMinBitrate
The suspend function must not be engaged unless padding is also enabled.
This CL makes the connection so that the pacer and padding is enabled
when SuspendBelowMinBitrate is.

Had to change the unit test to make it aware of the padding packets.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5153 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-21 14:05:40 +00:00
henrik.lundin@webrtc.org
ce8e0936d9 Rename AutoMute to SuspendBelowMinBitrate
Changes all instances throughout the WebRTC stack.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5130 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 12:18:43 +00:00
henrik.lundin@webrtc.org
1a3a6e5340 Removing the threshold from the auto-mute APIs
The threshold is now set equal to the minimum bitrate of the
encoder. The test is also changed to have the REMB values
depend on the minimum bitrate from the encoder.

BUG=2436
R=pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5040 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 10:16:14 +00:00
henrik.lundin@webrtc.org
7ea4f24ea5 Piping AutoMuter interface through to ViE API
This is a piece of the AutoMuter effort. A second CL will follow containing modifications to the new API, and tests.

BUG=2436
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4899 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 13:34:26 +00:00
elham@webrtc.org
814e28413d Revert r4562
R=mallinath@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4623 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-26 23:21:03 +00:00
agalusza@google.com
b655985abd Added choice of decode error mode to loopback test.
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4562 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-16 23:07:14 +00:00
wu@webrtc.org
822fbd8b68 Update talk to 50918584.
Together with Stefan's http://review.webrtc.org/1960004/.

R=mallinath@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4556 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 23:38:54 +00:00
pbos@webrtc.org
735a7c8b93 Add back is.FrameProvider() call lost in r4194.
BUG=2119
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4480 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-05 09:03:03 +00:00
tnakamura@webrtc.org
aa4d96a134 Revert r4301
R=mikhal@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4357 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 19:25:04 +00:00
stefan@webrtc.org
66b2e5c05a Breaking out receive-stats, rtp-payload-registry and rtp-receiver from the
rtp_rtcp implementation.

This refactoring significantly reduces the receive-side RTP parser and receiver
complexity, and makes it possible to implement RTX correctly by having two
instances of receive-statistics.

With this change the dead-or-alive and packet timeout APIs are removed.

TEST=trybots, vie_auto_test, voe_auto_test
BUG=1811
R=mflodman@webrtc.org, pbos@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4301 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-05 14:30:48 +00:00
pbos@webrtc.org
65a1f2cb2b Remove log of undefined input values in GetCodec.
BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4286 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-02 13:02:14 +00:00
mflodman@webrtc.org
1c986e7c89 Removed ViE file API.
R=asapersson@webrtc.org, niklas.enbom@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4267 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-26 09:12:49 +00:00
mflodman@webrtc.org
3ba883f0fc Removing functionality for inserting pre-encoded frames instead of raw
video frames. The functionality hasn't been used for a long time and
should be done properly if used in the future.

This is a pre-step for implementing CPU overload control.

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4194 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-07 13:57:57 +00:00
pbos@webrtc.org
f5d4cb1958 Include files from webrtc/.. paths in video_engine/
BUG=1662
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4056 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-17 13:44:48 +00:00
andrew@webrtc.org
d72262dc01 Fix compile errors in ViE with latest clang.
Rolling to the latest Chromium picks up a new clang, which catches a fresh error:

error: 'reinterpret_cast' to class 'webrtc::VideoEngineImpl *' from its base at non-zero offset 'webrtc::VideoEngine *' behaves differently from 'static_cast' [-Werror,-Wreinterpret-base-class]
 VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../webrtc/video_engine/vie_codec_impl.cc:36:31: note: use 'static_cast' to adjust the pointer correctly while downcasting
  VideoEngineImpl* vie_impl = reinterpret_cast<VideoEngineImpl*>(video_engine);
                              ^~~~~~~~~~~~~~~~
                              static_cast

This was triggered by André's change here:
https://code.google.com/p/webrtc/source/detail?r=3986
which made VideoEngineImpl a derived class of VideoEngine (good).

Picked up one other error as well:
error: implicit conversion from 'long' to 'int' changes value from 9223372036854775807 to -1 [-Werror,-Wconstant-conversion]
        AutoTestSleep(std::numeric_limits<long>::max());
        ~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This fixes the errors and is required before stable can be rolled in Chromium.

TBR=mflodman,andresp

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3989 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-09 02:12:07 +00:00
mflodman@webrtc.org
aeff4f3003 Fixing Coverity issues.
BUG=C14457, C10611

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3880 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-22 12:41:57 +00:00
pbos@webrtc.org
b238d1210b WebRtc_Word32 -> int32_t in video_engine/
BUG=314

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3801 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 13:41:51 +00:00
pbos@webrtc.org
b5bf54c4e7 Permit arbitrary payload names for kVideoCodecGeneric.
BUG=1575

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3768 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-05 13:27:38 +00:00
pbos@webrtc.org
8911ce46a4 Generic video-codec support.
Labels frames as key/delta, also marks the first RTP packet of a frame as such,
to allow proper reconstruction even if packets are received out of order.

BUG=1442
TBR=ajm@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3680 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-18 16:39:03 +00:00
mikhal@webrtc.org
e07c661a29 VP8: Making key frame interval a tunnable parameter
Review URL: https://webrtc-codereview.appspot.com/1070006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3444 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 16:37:13 +00:00
braveyao@webrtc.org
49273ffa79 logical 'and' of mutually exclusive tests is always false in ViECodecImpl::CodecValid()
BUG = Issue1283
Review URL: https://webrtc-codereview.appspot.com/1013008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3371 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-14 01:52:26 +00:00
mflodman@webrtc.org
4aee6b637d Added API to get receive side video delay.
BUG=1222

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3294 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-14 14:02:10 +00:00
mflodman@webrtc.org
d6ec386ff5 Revert the revert in r2988 since that wasn't the issue.
Review URL: https://webrtc-codereview.appspot.com/931005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2992 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-25 11:30:29 +00:00
vikasmarwaha@webrtc.org
8239ca5096 Reverse Merged r2884 & r2888 from trunk.
Review URL: https://webrtc-codereview.appspot.com/929005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2988 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-24 22:35:52 +00:00
andrew@webrtc.org
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00