99 Commits

Author SHA1 Message Date
sprang@webrtc.org
3093390479 Parsing of transport wide sequence number rtp extension header.
Plus some refactoring to correctly handle padding.

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

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

Cr-Commit-Position: refs/heads/master@{#8757}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8757 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 14:33:46 +00:00
guoweis@webrtc.org
fdd1057949 Add CVO support to Vie layer.
1. standard plumbing CVO through vie layer.
2. added a rtp_cvo.h which has both conversion functions from rtp header byte to/from VideoRotation.

WebRTCVideoEngine will later pass the rotation info in SendFrame() through VieVideoFrameI420.

BUG=4145
R=mflodman@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8703}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8703 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 20:51:50 +00:00
guoweis@webrtc.org
4536289353 Add CVO support to RTP sender side.
According to http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ts_126114v120700p.pdf,
CVO byte should only be added in the last packet of each key frame or when the rotation changes. Currently, we're adding this byte in each frame to start with.

BUG=4145
R=mflodman@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8606}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8606 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 22:55:43 +00:00
kjellander@webrtc.org
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
kwiberg@webrtc.org
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
mflodman@webrtc.org
9dd0ebc379 Remove the default RTP module.
This CL removes the default module owned by ViEEncoder, functionality in
the module to register default modules and the final changes in
rtp_rtcp_impl using default/child modules.

BUG=769
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8514}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8514 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 12:58:24 +00:00
mflodman@webrtc.org
50e28166af Move SetTargetSendBitrates logic from default module to payload router.
This cl just moves the logic form the default module
SetTargetSendBitrates to PayloadRouter. There might be glitch / mismatch
in size between trate the vector and rtp modules. This was the same in
the default module and is quite hard to protect from before we have the
new video API.

I also removed some test form rtp_rtcp_impl_unittest that were affected
by this change. The test tests code that isn't implemented, hence the
DISABLED_, and this will never be implemented in the RTP module, rather
the payload router in the future.

BUG=769
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8453}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8453 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 07:45:45 +00:00
pbos@webrtc.org
1d0fa5d352 Add RtcpPacketTypeCounter stats to new API.
R=mflodman@webrtc.org, stefan@webrtc.org
BUG=1667,1788

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

Cr-Commit-Position: refs/heads/master@{#8429}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8429 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 12:47:45 +00:00
mflodman@webrtc.org
0abc6011b9 Remove SetCaptureDelay from the RTP module.
This is a small step in getting rid of the default module, but also to
eventually delete FrameProviderBase completely.

BUG=769
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8396}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8396 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 16:36:48 +00:00
pbos@webrtc.org
7c4d20fd6c Remove potential deadlock in RTPSenderAudio.
Removes lock-order inversion formed by RTPSenderAudio->RTPSender calls
by doing a lot shorter locking which fetches a current state of
RTPSenderAudio variables before sending.

Thread annotates locked variables and removes one lock in
RTPSenderAudio, bonus fixes data races reported in voe_auto_test
--automated under TSan (DTMF data race).

Also includes some bonus cleanup of RTPSenderVideo which removes the
send critsect completely as all methods using it was always called
from RTPSender under its send_critsect.

R=henrik.lundin@webrtc.org, stefan@webrtc.org, tommi@webrtc.org
BUG=3001, chromium:454654

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

Cr-Commit-Position: refs/heads/master@{#8348}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8348 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 12:20:50 +00:00
asapersson@webrtc.org
273fbbb921 Update StreamDataCounter with FEC bytes.
Add histograms stats for send/receive FEC bitrate:
- "WebRTC.Video.FecBitrateReceivedInKbps"
- "WebRTC.Video.FecBitrateSentInKbps"

Correct media payload bytes in StreamDataCounter to not include FEC bytes.

Fix stats for rtcp packets sent/received per minute (regression from r7910).

BUG=crbug/419657
R=holmer@google.com, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8164 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-27 12:17:29 +00:00
asapersson@webrtc.org
0800db74b9 Add percentage of fec packets and recovered media packets to histogram stats:
- "WebRTC.Video.ReceivedFecPacketsInPercent"
- "WebRTC.Video.RecoveredMediaPacketsInPercentOfFec"

BUG=crbug/419657
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8072 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-15 07:40:20 +00:00
pbos@webrtc.org
0b0c24177b Only return Rtx mode in RTXSendStatus().
There is no need to return 'ssrc' and 'payloadtype' inside this function
since they are never used.

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

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8049 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-13 14:15:15 +00:00
pkasting@chromium.org
16825b1a82 Use int64_t more consistently for times, in particular for RTT values.
Existing code was inconsistent about whether to use uint16_t, int, unsigned int,
or uint32_t, and sometimes silently truncated one to another, or truncated
int64_t.  Because most core time-handling functions use int64_t, being
consistent about using int64_t unless otherwise necessary minimizes the number
of explicit or implicit casts.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, holmer@google.com, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8045 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 21:51:21 +00:00
andrew@webrtc.org
8f27fcce79 Revert 8028 "Support associated payload type when registering Rt..."
Reasons for revert:
1. glaznev discovered potentially related problems using the Android AppRTCDemo.
2. We're trying to do an M41 webrtc roll in Chromium, and this CL is risky.

> Support associated payload type when registering Rtx payload type.
> 
> Major changes include,
> - Add associated payload type for SetRtxSendPayloadType & SetRtxReceivePayloadType.
> - Receiver: Restore RTP packets by the new RTX-APT map.
> - Sender: Send RTP packets by checking RTX-APT map.
> - Add RTX payload type for RED in the default codec list.
> 
> BUG=4024
> R=pbos@webrtc.org, stefan@webrtc.org
> TBR=mflodman@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/26259004
> 
> Patch from Changbin Shao <changbin.shao@intel.com>.

TBR=pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8033 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-09 20:22:46 +00:00
pbos@webrtc.org
2a169640a3 Support associated payload type when registering Rtx payload type.
Major changes include,
- Add associated payload type for SetRtxSendPayloadType & SetRtxReceivePayloadType.
- Receiver: Restore RTP packets by the new RTX-APT map.
- Sender: Send RTP packets by checking RTX-APT map.
- Add RTX payload type for RED in the default codec list.

BUG=4024
R=pbos@webrtc.org, stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8028 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-09 15:16:10 +00:00
pbos@webrtc.org
d16e839c6d Rtp-Rtcp sender cleanup.
Some setter functions from Rtp and Rtcp Sender never return negative values. Remove return results from those functions.

Also removed const on non-pointer/reference types for related files.

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

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7962 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 13:49:55 +00:00
asapersson@webrtc.org
cb79141eab Store the received report blocks map (mapped per remote ssrc) in a map per source ssrc.
When using rtx, receiver reports with two report blocks are received. The report blocks have the same remote ssrc and therefore the first report block was overwritten by the second report block when stored in the ReportBlockInfoMap.

Removed unused function ResetRTT.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7952 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-18 14:30:32 +00:00
pbos@webrtc.org
ce4e9a3562 Refactor some receive-side stats.
Removes polling of CName as well as receive codec statistics in favor of
internal callbacks keeping a statistics struct up to date.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7950 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-18 13:50:16 +00:00
kjellander@webrtc.org
0198933b3d Cleanup: Remove 'const' qualifier from OnReceivedEstimatedBitrate().
This should fix the following error I'm seeing in Win8 GN trybot:

e:\b\build\slave\win_gn\build\src\third_party\webrtc\modules\bitrate_controller\bitrate_controller_impl.cc(78)
: error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win_gn\build\src\third_party\webrtc\modules\bitrate_controller\bitrate_controller_impl.cc(30)
: warning C4373:
'webrtc::BitrateControllerImpl::RtcpBandwidthObserverImpl::OnReceivedEstimatedBitrate':
virtual function overrides 'webrtc::RtcpBandwidthObserver::OnReceivedEstimatedBitrate',
previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
e:\b\build\slave\win_gn\build\src\third_party\webrtc\modules\rtp_rtcp\interface\rtp_rtcp_defines.h(286)
: see declaration of 'webrtc::RtcpBandwidthObserver::OnReceivedEstimatedBitrate'

http://build.chromium.org/p/tryserver.chromium.win/builders/win8_chromium_gn_dbg/builds/23/steps/compile/logs/stdio

The above was triggered in CL https://codereview.chromium.org/802113002/

BUG=None
R=kjellander@google.com, kjellander@webrtc.org, tommi@webrtc.org

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

Patch from Thiago Farina <tfarina@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7911 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-16 12:29:59 +00:00
pkasting@chromium.org
0b1534c52e Use int64_t for milliseconds more often, primarily for TimeUntilNextProcess.
This fixes a variety of MSVC warnings about value truncations when implicitly
storing the 64-bit values we get back from e.g. TimeTicks in 32-bit objects, and
removes the need for a number of explicit casts.

This also moves a number of constants so they're declared right where they're used, which is easier to read and maintain, and makes some of them of integral type rather than using the "enum hack".

BUG=chromium:81439
TEST=none
R=tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7905 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 22:09:40 +00:00
asapersson@webrtc.org
97d0489058 Add video send bitrates to histogram stats:
- total bitrate ("WebRTC.Video.BitrateSentInKbps")
- media bitrate ("WebRTC.Video.MediaBitrateSentInKbps")
- rtx bitrate ("WebRTC.Video.RtxBitrateSentInKbps")
- padding bitrate ("WebRTC.Video.PaddingBitrateSentInKbps")
- retransmitted bitrate ("WebRTC.Video.RetransmittedBitrateInKbps")

Add retransmitted bytes to StreamDataCounters.

Change in UpdateRtpStats to also update counters for retransmitted packet.

BUG=crbug/419657
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7838 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 09:47:53 +00:00
asapersson@webrtc.org
d952c40c7e Add receive bitrates to histogram stats:
- total bitrate ("WebRTC.Video.BitrateReceivedInKbps")
- media bitrate ("WebRTC.Video.MediaBitrateReceivedInKbps")
- rtx bitrate ("WebRTC.Video.RtxBitrateReceivedInKbps")
- padding bitrate ("WebRTC.Video.PaddingBitrateReceivedInKbps")

BUG=crbug/419657
R=mflodman@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7756 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-27 07:38:56 +00:00
pbos@webrtc.org
9334ac2d78 Use vector of CSRCs for DeliverFrame & SetCSRCs.
BUG=
R=pbos@webrtc.org, stefan@webrtc.org

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7734 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-24 08:25:50 +00:00
pkasting@chromium.org
4591fbd09f Use size_t more consistently for packet/payload lengths.
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.

This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.

BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
pbos@webrtc.org
ece3890d3a Report total bitrate for all streams in GetStats.
This regression wasn't caught because I accidentally disabled multiple
streams for EndToEndTest.GetStats in a refactoring.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7701 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-14 11:52:04 +00:00
pbos@webrtc.org
49ff40e32e Make SetREMBData accept vector of SSRCs.
BUG=
R=pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7697 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-13 14:42:37 +00:00
stefan@webrtc.org
eb24b04f16 Add periodic logging of received RTP headers and estimated clock offsets for e2e delay.
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7444 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-14 11:40:13 +00:00
minyue@webrtc.org
2c0cdbce22 Estimating NTP time with a given RTT.
RemoteNtpTimeEstimator needed user to give a remote SSRC and it intended to call RtpRtcp module to obtain RTT, to be able to calculate Ntp time.

When RTT cannot be directly obtained from the RtpRtcp module with the specified SSRC, RemoteNtpTimeEstimator would fail.

This change allows RemoteNtpTimeEstimator to calculate NTP with an external RTT estimate.

An immediate benefit is that capture_start_ntp_time_ms_ can be obtained in a Google hangout call.

BUG=

TEST=chromium + hangout call
R=stefan@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7407 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-09 10:52:43 +00:00
pbos@webrtc.org
b5e6bfc76a Make RTPSender/RTPReceiver generic.
Changes include,
1) Introduce class RtpPacketizerGeneric & RtpDePacketizerGeneric.
2) Introduce class RtpDepacketizerVp8.
3) Make RTPSenderVideo::SendH264 generic and used by all packetizers.
4) Move codec specific functions from RTPSenderVideo/RTPReceiverVideo to
RtpPacketizer/RtpDePacketizer sub-classes.

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

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

Patch from Changbin Shao <changbin.shao@intel.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7163 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-12 11:05:55 +00:00
stefan@webrtc.org
6071b0636d Mark all virtual overrides in the hierarchy of RtpData and RtpReceiver as such.
This will make further changes to these classes safer by ensuring that the
compile breaks if the base class changes and not all overrides are fixed.

This also highlighted a number of unused functions which I've removed.

-- This is was reviewed in https://webrtc-codereview.appspot.com/19309004/, but
-- a new cl was needed to resolve a small conflict before committing.

BUG=none
TEST=none
TBR=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7162 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-12 07:42:33 +00:00
stefan@webrtc.org
8b94e3da0f Fix issue where padding is sent before media with undefined timestamps if not abs-send-time is enabled.
This broke bandwidth estimation for calls without abs-send-time is enabled, but where RTX was.

BUG=
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6719 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-17 16:10:14 +00:00
stefan@webrtc.org
168f23faa5 Move pacer to fully use webrtc::Clock instead of webrtc::TickTime.
This required rewriting the send-side delay stats api to be callback based, as otherwise the SuspendBelowMinBitrate test started flaking much more frequently since it had lock order inversion problems.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6664 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 13:44:02 +00:00
stefan@webrtc.org
4ef438e2de Remove the send-side cname getter APIs from voice and video engine.
These APIs aren't being used, and introduces deadlocks when using GetStats() in the new Call api. Having getters for cname at the send-side is pointless, as it's always the user who sets the cname.

R=henrika@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6659 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 09:55:30 +00:00
andresp@webrtc.org
8f1512140e Refactor registerable callbacks for FrameCountObserver from rtp_rtcp module into vie_channel.
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6649 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-10 09:39:23 +00:00
andresp@webrtc.org
d11bec40b2 Refactor registerable callbacks for VideoBitrateObserver from rtp_rtcp module into vie_channel.
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6626 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 14:32:58 +00:00
pbos@webrtc.org
62bafae661 Some refactoring inside rtp_rtcp/.
Renaming ModuleRTPUtility -> RtpUtility.
Renaming RTPHeaderParser -> RtpHeaderParser.
Making RtpHeaderParser accept size_t instead of int for packet length.
Making RtpUtility::RtpHeaderParser accept size_t for packet length.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6623 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 12:10:51 +00:00
pbos@webrtc.org
2bb1bdab8d Preserve RTP states for restarted VideoSendStreams.
A restarted VideoSendStream would previously be completely reset,
causing gaps in sequence numbers and potentially RTP timestamps as well.
This broke SRTP which requires fairly sequential sequence numbers.
Presumably, were this sent without SRTP, we'd still have problems on the
receiving end as the corresponding receiver is unaware of this reset.

Also adding annotation to RTPSender and addressing some unlocked
access to ssrc_, ssrc_rtx_ and rtx_.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6612 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-07 13:06:48 +00:00
stefan@webrtc.org
ef92755780 Have RTX be enabled by setting an RTX payload type instead of by setting an RTX SSRC.
This makes it easier to disable RTX by filtering out the RTX codec during call setup/signaling, and won't require that also the SSRCs are filtered out.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6335 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 08:25:29 +00:00
wu@webrtc.org
88abf11cad Move the capture ntp computing code to ntp_calculator so that later it can be shared with voe.
BUG=3111
TEST=try bots
R=stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6152 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 16:53:51 +00:00
andresp@webrtc.org
dc80bae2a6 Convert logs in rtp rtcp module from WEBRTC_TRACE into LOG.
Clean some logs and add asserts in the way.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5861 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-08 11:06:12 +00:00
wu@webrtc.org
ebdb0e3ad0 Help to land 7969005 on behalf of solenberg. The review and try is done in 7969005.
- Add ability to VoE to send Absolute Sender Time header extension.
- Refactor handling of RTP header extensions in VoE to work the same as in ViE.
- Add API to enable receiving Absolute Sender Time in VoE.

This is part of the work to include audio packets in bandwidth estimation, for
better accuracy in estimates.

BUG=
TBR=solenberg@webrtc.org,henrikg@webrtc.org,stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5654 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-06 23:49:08 +00:00
asapersson@webrtc.org
8098e07478 Add RTCP packet type counter (for getting statistics such as sent/received NACK and FIR).
Add counter to RTCP sender and RTCP receiver.
Add video api GetRtcpPacketTypes().

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5575 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-19 11:59:02 +00:00
sprang@webrtc.org
346094cb01 Incorrect overhead calculation when using FEC + RTP extension headers.
When frames are fragmented inte multiple RTP packets in order to not
exceed a maximum packet size, the header overhead calculation must
take into account that FEC redundancy packets may use more than the
12 bytes of the basic RTP header. For example, a csrc list or extension
headers may be present.

BUG=2899
R=phoglund@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5562 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 08:40:33 +00:00
sprang@webrtc.org
0e93257cee Add callbacks for receive channel RTP statistics
This allows a listener to receive new statistics (byte/packet counts, etc) as it
is generated - avoiding the need to poll. This also makes handling stats from
multiple RTP streams more tractable. The change is primarily targeted at the new
video engine API.

TEST=Unit test in ReceiveStatisticsTest.
Integration tests to follow as call tests when fully wired up.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5416 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-23 10:00:39 +00:00
sprang@webrtc.org
54ae4ffb9e Add callbacks for receive channel RTCP statistics.
This allows a listener to receive new statistics as it is generated - avoiding the need to poll. This also makes handling stats from multiple RTP streams more tractable.
The change is primarily targeted at the new video engine API.

TEST=Unit test in ReceiveStatisticsTest. Integration tests to follow as call tests when fully wired up.

BUG=2235
R=henrika@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5323 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-19 13:26:02 +00:00
sprang@webrtc.org
6811b6e308 Callback for send bitrate estimates - new roll
Issue https://webrtc-codereview.appspot.com/4459004/ was commited as
r5259, after which flakiness was detected and a rollback was performed
at r5261.

Patch Set 1 of this issue is the code submitted in r5259. Subsequent
patch sets fixes a race condition which caused the seen problems.

The root cause was a dead lock between a thread sending rtp packets and
and a timed module processing thread:

webrtc::RTPSender::BitrateUpdated()  // Get RTPSender stats lock
webrtc::Bitrate::Process()  // Get Bitrate lock
webrtc::RTPSender::ProcessBitrate()
webrtc::ModuleRtpRtcpImpl::Process()
...

webrtc::Bitrate::Update()  // Get Bitrate lock
webrtc::RTPSender::UpdateRtpStats()  // Get RTPSender stats lock
webrtc::RTPSender::SendToNetwork()
...

This is fixed in Bitrate::Process() by releasing the lock before
calling the callback.

BUG=2235
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5281 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 09:46:59 +00:00
sprang@webrtc.org
096e8d9f94 Revert 5259 "Callback for send bitrate estimates"
CL is causing flakiness in RampUpTest.WithoutPacing.

> Callback for send bitrate estimates
>
> BUG=2235
> R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/4459004

R=mflodman@webrtc.org, pbos@webrtc.org
TBR=mflodman

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5261 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 14:07:33 +00:00
sprang@webrtc.org
2656cf9f4c Callback for send bitrate estimates
BUG=2235
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5259 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 12:53:03 +00:00
sprang@webrtc.org
ebad765ee0 Add callbacks for send channel rtp statistics
BUG=2235
R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5227 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-05 14:29:02 +00:00