Commit graph

285 commits

Author SHA1 Message Date
Danil Chapovalov
bace3a4bd6 in RtpPacketizer add support for first packet reduction length
Bug: webrtc:9680
Change-Id: I68580a8a44cbbf932ed0b2448b31169b26df5044
Reviewed-on: https://webrtc-review.googlesource.com/98005
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24584}
2018-09-05 14:54:02 +00:00
Danil Chapovalov
1a6a4f3d62 Replace WeakPtr with CancelablePeriodicTask in RtcpTransceiverImpl
This allow to destroy the RtcpTransceiverImpl off the task queue
with assumption it is destroyed after task queue.
i.e. it allows to post destruction of RtcpTransceiverImpl to the TaskQueue without waiting.

BUG: webrtc:8239
Change-Id: I4bea7a6d2edc97061ebd00f2f275c1ab827bc3c5
Reviewed-on: https://webrtc-review.googlesource.com/97160
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24574}
2018-09-05 11:06:16 +00:00
Mirko Bonadei
55d5ef0048 Remove clang:find_bad_constructs suppression from logging (part 1).
This CL removes //build/config/clang:find_bad_constructs from the
suppressed_configs list, which means that clang:find_bad_constructs
is now enabled on these translation units.

Bug: webrtc:9251, webrtc:163
Change-Id: I443c0c77cef30a3f5712f72ce88db80d1fb29874
Reviewed-on: https://webrtc-review.googlesource.com/96642
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24567}
2018-09-05 08:33:17 +00:00
Danil Chapovalov
376e1147e6 in RtpPacketizerVp8 factor out payload splitter function
so that it can be shared between different packetizers
and thus easier to extend

Bug: webrtc:9680
Change-Id: Ie5e904ad27afb8dd2ed35ef9e009f7f408017b2f
Reviewed-on: https://webrtc-review.googlesource.com/97661
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24555}
2018-09-04 15:28:05 +00:00
Danil Chapovalov
8a3c166fff Cleanup RtpPacketizerVP8 tests
Remove partition support for test helper and from tests.
Merge Init function into constructor
Replace extra macroses in favor of Bit helper function
Replace extra members in favor of local variables
Remove fixture

Bug: None
Change-Id: Ibf1600dda9f59abe5afd2bbe40c3e232a2d269ea
Reviewed-on: https://webrtc-review.googlesource.com/96940
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24508}
2018-08-31 08:13:45 +00:00
Rasmus Brandt
260b4151c8 Revert "Reland "Optimize execution time of RTPSender::UpdateDelayStatistics""
This reverts commit 7bcd2a98be.

Reason for revert: peerconnection_unittests fails on downstream test runner.

Original change's description:
> Reland "Optimize execution time of RTPSender::UpdateDelayStatistics"
> 
> The reland has a lot of additional DCHECKS for easier debugging,
> so in debug builds it will actually be a ~2x slowdown compared to the old code.
> The excessive DCHECKS should be removed in a followup CL.
> 
> Bug: webrtc:9439
> Change-Id: I493de337bf20c998aa32c2532212cac85c5517fb
> Reviewed-on: https://webrtc-review.googlesource.com/96641
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24501}

TBR=terelius@webrtc.org,asapersson@webrtc.org,philipel@webrtc.org

Change-Id: Ia48444d2a7647cf826ef93b4720f6d7ff9a712c3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9439
Reviewed-on: https://webrtc-review.googlesource.com/96960
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24502}
2018-08-30 15:24:47 +00:00
Bjorn Terelius
7bcd2a98be Reland "Optimize execution time of RTPSender::UpdateDelayStatistics"
The reland has a lot of additional DCHECKS for easier debugging,
so in debug builds it will actually be a ~2x slowdown compared to the old code.
The excessive DCHECKS should be removed in a followup CL.

Bug: webrtc:9439
Change-Id: I493de337bf20c998aa32c2532212cac85c5517fb
Reviewed-on: https://webrtc-review.googlesource.com/96641
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24501}
2018-08-30 14:42:02 +00:00
Niels Möller
5304a32a94 Delete StreamStatistician::IsRetransmitOfOldPacket
Return value always passed as the |retransmitted| argument to
ReceiveStatistics::IncomingPacket. The implementation of this method,
StreamStatisticianImpl::IncomingPacket, can call its own
IsRetransmitOfOldPacket, which is demoted to a private method.

Bug: webrtc:7135
Change-Id: I904db676738689c7a1db4caa588f70e64e3c357d
Reviewed-on: https://webrtc-review.googlesource.com/95649
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24494}
2018-08-30 11:00:13 +00:00
Danil Chapovalov
8d1b582f33 Cleanup RtpPacketizerVp8
Merge SetPayloadData into constructor,
Remove payload size member because now used only during construction.
Remove member that should be constant

Bug: None
Change-Id: Ib2083439f466ad9151ce8e54fceede6cef51d955
Reviewed-on: https://webrtc-review.googlesource.com/96740
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24491}
2018-08-30 10:16:33 +00:00
Kári Tristan Helgason
55e7785686 Remove kVideoCodecUnknown completely.
Followup to cl https://webrtc-review.googlesource.com/92086

Bug: webrtc:8136
Change-Id: I077d18ac6def475d05424ff0c5e545c939cd8e61
Reviewed-on: https://webrtc-review.googlesource.com/95642
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24475}
2018-08-29 08:48:40 +00:00
Danil Chapovalov
f7f8a1f176 Cleanup RtpPacketizer interface
merge construction and call to SetPayloadData
Add NumPackets instead of SetPayloadData
Remove virtual ToString() as unused
move CHECK(rtp_video_header) from RtpPacketizer::Create to RtpSenderVideo::SendVideo

Bug: webrtc:9680
Change-Id: I074644e048c797eb836f79979df363fe1ea0075e
Reviewed-on: https://webrtc-review.googlesource.com/96543
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24474}
2018-08-29 08:44:08 +00:00
philipel
bf2b620cc8 Convert VP8 descriptor to generic descriptor.
Also adds a running picture id for the old generic format when
kVideoCodecGeneric is used (behind "WebRTC-GenericPictureId" field trial).

Bug: webrtc:9361
Change-Id: I6f232a2663bb60257c97ed3473eb07044d325b90
Reviewed-on: https://webrtc-review.googlesource.com/94842
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24449}
2018-08-27 13:03:20 +00:00
Kári Tristan Helgason
01a89904c0 Remove deprecated type alias for RtpVideoCodecTypes.
First phase of this removal landed with cl https://webrtc-review.googlesource.com/79561

Bug: webrtc:8995
Change-Id: I9dc152e2f1bac17e2959af7e18106760ca5435c8
Reviewed-on: https://webrtc-review.googlesource.com/95720
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24447}
2018-08-27 12:09:57 +00:00
Niels Möller
b615d1af90 Add lock annotations in StreamStatisticianImpl
Also consolidate lock operations to public methods only, moving one
CritScope out of UpdateCounters (private) up to IncomingPacket
(public).

Bug: webrtc:7135
Change-Id: I458857d3cfa49961fa34196ffe02cdefd83cec10
Reviewed-on: https://webrtc-review.googlesource.com/96122
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24443}
2018-08-27 11:06:40 +00:00
Ilya Nikolaevskiy
523b4c4330 Add unlimited retransmission experiment for screenshare
Bug: webrtc:9659
Change-Id: Idcdc647c112ed2c7c027a7a0056b145ce8f45788
Reviewed-on: https://webrtc-review.googlesource.com/95724
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24422}
2018-08-24 08:48:30 +00:00
Åsa Persson
a765c8208a Change some pointers to std::unique_ptr in rtp_rtcp tests.
Bug: none
Change-Id: Ia4e69e44bbda7b5b633b8be1779d105649f44930
Reviewed-on: https://webrtc-review.googlesource.com/94844
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24419}
2018-08-24 07:26:04 +00:00
Qingsi Wang
2370b0831f Revert "Update packetsLost and jitter stats any time a packet is received."
This reverts commit 84916937b7.

Reason for revert: breaking downstream projects.

Original change's description:
> Update packetsLost and jitter stats any time a packet is received.
>
> Before this CL, the packetsLost and jitter stats (as returned by
> GetStats, at the API level) were only being updated when an RTCP SR or
> RR is generated. According to the stats spec, "local" stats like this
> should be updated any time a packet is received.
>
> This CL also fixes some minor issues with the calculation of packetsLost
> (and fractionLost):
> * Packets weren't being count as lost if lost over a sequence number
>   rollover.
> * Temporary periods of "negative" loss (caused by duplicate or out of
>   order packets) weren't being accumulated into the cumulative loss
>   counter. Example:
>   Period 1: Received packets 1, 2, 4
>     Loss over that period: 1 (expected 4 packets, got 3)
>     Reported cumulative loss: 1
>   Period 2: Received packets 3, 5
>     Loss over that period: -1 (expected 1 packet, got 2)
>     Reported cumulative loss: 1 (should be 0!)
>
> Landing with NOTRY because Android compile bots are broken for an
> unrelated reason.
> NOTRY=True
>
> Bug: webrtc:8804
> Change-Id: I840ba34de8957b1276f6bdaf93718f805629f5c8
> Reviewed-on: https://webrtc-review.googlesource.com/50020
> Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23731}

TBR=danilchap@webrtc.org,deadbeef@webrtc.org,ossu@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Landing with NOTRY because ios64_sim_ios10_dbg bot is broken.
Passing all other bots.
NOTRY=True

Bug: webrtc:8804
Change-Id: I07bd6b1206d5a8d211792ad392842f9ed6c505e9
Reviewed-on: https://webrtc-review.googlesource.com/95280
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24370}
2018-08-22 00:00:33 +00:00
Niels Möller
280632b440 Delete unneeded forward declares of RtpReceiver
Bug: webrtc:7135
Change-Id: I1ca8537248ed5c87f8913263c680e0a5a5544130
Reviewed-on: https://webrtc-review.googlesource.com/94506
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24353}
2018-08-21 09:30:02 +00:00
Niels Möller
30b4839d10 Refactor voe::Channel to not use RtpReceiver.
Analogous to https://webrtc-review.googlesource.com/c/src/+/92398, for
RtpVideoStreamReceiver.

Bug: webrtc:7135
Change-Id: I0639f9982da2ed80edbcf900cf14f8ae982ef80c
Reviewed-on: https://webrtc-review.googlesource.com/93820
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24309}
2018-08-16 10:18:20 +00:00
Åsa Persson
315ce5b308 Remove unused members in rtp_rtcp tests and make some members const.
Bug: none
Change-Id: I5f92899742406157d94de235e7c1a50755b3ac61
Reviewed-on: https://webrtc-review.googlesource.com/92393
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24303}
2018-08-16 07:53:16 +00:00
Lu Liu
e86512d5c0 Revert "Optimize execution time of RTPSender::UpdateDelayStatistics"
This reverts commit 733df738e3.

Reason for revert: Breaking internal tests

Original change's description:
> Optimize execution time of RTPSender::UpdateDelayStatistics
> 
> Bug: webrtc:9439
> Change-Id: I908e9ced10031c614678a89657d089cb9a66b9ce
> Reviewed-on: https://webrtc-review.googlesource.com/92391
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24295}

TBR=terelius@webrtc.org,asapersson@webrtc.org,philipel@webrtc.org

Change-Id: Ic76a02572aa841cf66f6a2805e0ce0161e27ea02
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9439
Reviewed-on: https://webrtc-review.googlesource.com/94400
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24298}
2018-08-15 22:24:41 +00:00
Bjorn Terelius
733df738e3 Optimize execution time of RTPSender::UpdateDelayStatistics
Bug: webrtc:9439
Change-Id: I908e9ced10031c614678a89657d089cb9a66b9ce
Reviewed-on: https://webrtc-review.googlesource.com/92391
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24295}
2018-08-15 17:53:04 +00:00
Sebastian Jansson
9701e0ce2f Makes treatment of received reports of packets lost signed.
Bug: webrtc:9598
Change-Id: I0f6ffe348585b8ec69753089652812da516d33d8
Reviewed-on: https://webrtc-review.googlesource.com/93021
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24291}
2018-08-15 14:27:23 +00:00
Danil Chapovalov
7d2df3f848 Inline one-line RtpPacket getters
inlining these accessors both reduce binary size and, likely, slightly improve performance.

Bug: None
Change-Id: I4d1f3285afb044946b9611ad36d5d093299c19a9
Reviewed-on: https://webrtc-review.googlesource.com/94146
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24286}
2018-08-15 09:41:20 +00:00
Niels Möller
af17595879 Refactor RtpReceiverImpl, extracting CSRC book-keeping to its own class
Bug: webrtc:7135
Change-Id: I7ce9afe575241542e4e3f7e2e8459ee3257eec76
Reviewed-on: https://webrtc-review.googlesource.com/93466
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24271}
2018-08-13 11:59:08 +00:00
Niels Möller
d3b62cfb02 Delete unused method RtpReceiver::CSRCs.
This is a preparation for extracting CSRC book-keeping to its own
class.

Bug: webrtc:7135
Change-Id: Ic51ceb57ec53a43064a3d0392de8baa978a4e8cf
Reviewed-on: https://webrtc-review.googlesource.com/93463
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24257}
2018-08-10 10:01:11 +00:00
Niels Möller
2ff1f2a342 Reland "Refactor RtpVideoStreamReceiver without RtpReceiver."
This is a reland of 0b9e01d605

Original change's description:
> Refactor RtpVideoStreamReceiver without RtpReceiver.
> 
> Bug: webrtc:7135
> Change-Id: Iabf3330e579b892efc160683f9f90efbf6ff9a40
> Reviewed-on: https://webrtc-review.googlesource.com/92398
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24232}

Bug: webrtc:7135
Change-Id: I707d4c5262e7b428bc7ceac2d886ff34c4a8d76a
Reviewed-on: https://webrtc-review.googlesource.com/93261
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24254}
2018-08-10 08:56:49 +00:00
Sami Kalliomäki
426a80ce08 Add extended header containing frame ID to the generic packetizer.
Also changes default value of frame ID in RTPVideoHeader to
kNoPictureId. Special care should be take so that picture ID will not
be set in RTPVideoHeader unless the client on the end supports
deserializing extended generic header.

Bug: webrtc:9582
Change-Id: Ib096373ed187f31e51d481193a2bda56de68f167
Reviewed-on: https://webrtc-review.googlesource.com/92084
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24250}
2018-08-09 14:05:39 +00:00
philipel
29d8846df9 Remove RTPVideoHeader::vp9() accessors.
TBR=stefan@webrtc.org

Bug: none
Change-Id: Ia2f728ea3377754a16a0b081e25c4479fe211b3e
Reviewed-on: https://webrtc-review.googlesource.com/93024
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24243}
2018-08-09 10:53:28 +00:00
Danil Chapovalov
527ff1eec2 Remove raw extensions accessors from rtp packet
These accessors were introduced in https://codereview.webrtc.org/2789773004
for dynamic size extensions.
They are now implemented without need of these raw functions

Bug: None
Change-Id: Id43f0bcbf951d60ebeece49556b093956c5ad2bf
Reviewed-on: https://webrtc-review.googlesource.com/92626
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24242}
2018-08-09 10:43:37 +00:00
Niels Möller
98d7c52a7c Delete unused constants from rtp_rtcp_config.h
Bug: None
Change-Id: Iced341f0574e26ac3be3292870fb7d7522b75ce1
Reviewed-on: https://webrtc-review.googlesource.com/93280
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24238}
2018-08-09 08:38:51 +00:00
Niels Moller
1788dcb506 Revert "Refactor RtpVideoStreamReceiver without RtpReceiver."
This reverts commit 0b9e01d605.

Reason for revert: Appears to breaks AV sync, failing perftests: 
CallPerfTest.PlaysOutAudioAndVideoInSyncWithVideoNtpDrift
CallPerfTest.PlaysOutAudioAndVideoInSyncWithAudioFasterThanVideoDrift
CallPerfTest.PlaysOutAudioAndVideoInSyncWithVideoFasterThanAudioDrift



Original change's description:
> Refactor RtpVideoStreamReceiver without RtpReceiver.
> 
> Bug: webrtc:7135
> Change-Id: Iabf3330e579b892efc160683f9f90efbf6ff9a40
> Reviewed-on: https://webrtc-review.googlesource.com/92398
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24232}

TBR=danilchap@webrtc.org,magjed@webrtc.org,nisse@webrtc.org,sprang@webrtc.org

Change-Id: I70a1dcb519c51937e35e04ac82b2ab495bec0a3d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7135
Reviewed-on: https://webrtc-review.googlesource.com/93260
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24235}
2018-08-09 06:19:14 +00:00
Qingsi Wang
b2db53998d Parse the number of packets lost in RTCP SR as a signed integer.
The cumulative number of packets lost in a RTCP sender report can be
negative if there are duplicates. This CL fixes a bug that the parser of
RTCP reports treats the field as an unsigned integer, and incorrectly
reports large packet losses when a negative loss is reported.

Bug: webrtc:9601
Change-Id: I1109ac0741614d61bda743e13a390b7d3e147a9c
Reviewed-on: https://webrtc-review.googlesource.com/92942
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@google.com>
Cr-Commit-Position: refs/heads/master@{#24234}
2018-08-08 16:44:11 +00:00
Niels Möller
0b9e01d605 Refactor RtpVideoStreamReceiver without RtpReceiver.
Bug: webrtc:7135
Change-Id: Iabf3330e579b892efc160683f9f90efbf6ff9a40
Reviewed-on: https://webrtc-review.googlesource.com/92398
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24232}
2018-08-08 15:21:55 +00:00
Sebastian Jansson
436d036b62 Limits reported cumulative packets lost to 0.
This ensures that we don't break clients that can't handle
negative values.

Bug: webrtc:9598
Change-Id: I33c3933982577752eceb738d7e0bd2a6825d2249
Reviewed-on: https://webrtc-review.googlesource.com/93020
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24230}
2018-08-08 13:27:36 +00:00
Niels Möller
3ed46bd83b Delete RTPReceiverStrategy::OnNewPayloadTypeCreated and related code.
Bug: webrtc:7135
Change-Id: Ic20d98cbfb8154f5abbc2501cbcccb950148e732
Reviewed-on: https://webrtc-review.googlesource.com/92396
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24219}
2018-08-08 08:01:32 +00:00
Niels Möller
fd77b78821 Delete RtpReceiverImpl::CheckPayloadChanged.
Also delete related code in RtpReceiverAudio, RtpReceiverVideo and
RtpPayloadRegistry.

Only intended change in behavior is that packets with unknown payload
types are not discarded at this level of the stack. They are discarded
higher up, in Channel::ReceivePacket (audio) and
RtpVideoStreamReceiver::ReceivePacket (video).

Bug: webrtc:8995
Change-Id: I807997120bb40a95b0575c55db6e20a0cac651bf
Reviewed-on: https://webrtc-review.googlesource.com/92087
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24196}
2018-08-06 15:08:12 +00:00
philipel
7d745e5a89 Reland "Remove RTPVideoHeader::h264() accessors."
Downstream projects have been updated, so this can now be relanded.
This is a revert (and rebase) of: https://webrtc-review.googlesource.com/c/src/+/88820

Bug: none
Change-Id: I424664ddef7aeebd3c6c94ae67c7f70a342dc9a4
Reviewed-on: https://webrtc-review.googlesource.com/92082
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24181}
2018-08-03 09:16:50 +00:00
Niels Möller
dc6e68b4a7 Delete class TelephoneEventHandler and related code.
Followup to https://webrtc-review.googlesource.com/91125.

Bug: webrtc:7135
Change-Id: I7011cc65ac756931d8134763da57ec1bc9c584d6
Reviewed-on: https://webrtc-review.googlesource.com/91163
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24174}
2018-08-02 15:02:23 +00:00
Niels Möller
ab4a530b87 Delete telephone-event handling from RTPReceiverAudio.
Bug: webrtc:7135
Change-Id: Ic8b96f44ba25ff9265570dd43d3c76ed0177abfb
Reviewed-on: https://webrtc-review.googlesource.com/91125
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24172}
2018-08-02 12:55:40 +00:00
philipel
f8d81d33ed Add members for the codec agnostic descriptor to RTPVideoHeader.
TBR=danilchap@webrtc.org

Bug: webrtc:9361, webrtc:9582
Change-Id: I0303fc89bafab59e68ec81979e0e4372e79a4f51
Reviewed-on: https://webrtc-review.googlesource.com/91866
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24170}
2018-08-02 09:12:31 +00:00
Joachim Bauch
d3b7ec2e91 Allow all "token" chars from RFC 4566 when checking for legal mid names.
Previously only alphanumeric characters were allowed.

Bug: webrtc:9537
Change-Id: I3fd793ad88520b25ecd884efe3a698f2f0af4639
Reviewed-on: https://webrtc-review.googlesource.com/89388
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24167}
2018-08-01 18:20:42 +00:00
Niels Möller
1bd66642c3 Set RtpReceiverAudio::telephone_event_forward_to_decoder_ true on construction.
All users call SetTelephoneEventForwardToDecoder(true). Setting the
flag to true on construction, enables deletion of those calls,
followed by deletion of the flag itself.

The unused getter method TelephoneEventForwardToDecoder() is deleted
right away.

Bug: webrtc:7135
Change-Id: I8c52c957b3f074be7ffc425b3588402d1e42b844
Reviewed-on: https://webrtc-review.googlesource.com/90402
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24141}
2018-07-30 12:24:49 +00:00
Niels Möller
a12c42a6b2 Delete root header file typedef.h.
Usage replaced with stdint.h, rtc_base/system/arch.h and
rtc_base/system/unused.h, as appropriate.

Bug: webrtc:6854
Change-Id: I97225465d14b969903d92979e2df3c3c05d35f18
Reviewed-on: https://webrtc-review.googlesource.com/90249
Reviewed-by: Niklas Enbom <niklas.enbom@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24100}
2018-07-25 14:59:26 +00:00
Jiawei Ou
4206a0a849 Exposing video bitrate allocator into API
In order to have public video bitrate allocator factory, the video bitrate allocator has be part of
the api.

Bug: webrtc:9513
Change-Id: Ia2e5ab9eb988c710c1ac492afccc470a92544aa2
Reviewed-on: https://webrtc-review.googlesource.com/88083
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Jiawei Ou <ouj@fb.com>
Cr-Commit-Position: refs/heads/master@{#24073}
2018-07-23 21:23:21 +00:00
JT Teh
5daeff9c1f Revert "Remove RTPVideoHeader::h264() accessors."
This reverts commit dfbced6504.

Reason for revert: Crashes when making a video call.

#9	0x00000001043dd8d8 in webrtc::RTPVideoHeaderH264& absl::variant_internal::TypedThrowBadVariantAccess<webrtc::RTPVideoHeaderH264&>() at /third_party/absl/types/internal/variant.h:315
#10	0x00000001043dd8ac in absl::variant_internal::VariantAccessResultImpl<2ul, absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&&&>::type absl::variant_internal::VariantCoreAccess::CheckedAccess<2ul, absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&>(absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&&&) at /third_party/absl/types/internal/variant.h:597
#11	0x00000001043db778 in webrtc::RTPVideoHeaderH264& absl::get<webrtc::RTPVideoHeaderH264, webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>(absl::variant<webrtc::RTPVideoHeaderVP8, webrtc::RTPVideoHeaderVP9, webrtc::RTPVideoHeaderH264>&) at /third_party/absl/types/variant.h:299
#12	0x0000000104558bcc in webrtc::RtpPacketizer::Create(webrtc::VideoCodecType, unsigned long, unsigned long, webrtc::RTPVideoHeader const*, webrtc::FrameType) at webrtc/modules/rtp_rtcp/source/rtp_format.cc:30

Original change's description:
> Remove RTPVideoHeader::h264() accessors.
>
> Bug: none
> Change-Id: I043bcaf358575688b223bc3631506e148b47fd58
> Reviewed-on: https://webrtc-review.googlesource.com/88220
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23971}

TBR=danilchap@webrtc.org,stefan@webrtc.org,philipel@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: none
Change-Id: If99bcabdfe3cae7094f24e407bbe2f47233e46e3
Reviewed-on: https://webrtc-review.googlesource.com/88820
Commit-Queue: JT Teh <jtteh@webrtc.org>
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23993}
2018-07-16 21:36:12 +00:00
Danil Chapovalov
3643aef89c Revert "Fix buffer overflow in ulpfec recovery"
This reverts commit 865feabca9.

Reason for revert: didn't fix the overlow

Original change's description:
> Fix buffer overflow in ulpfec recovery
> 
> Bug: chromium:856823
> Change-Id: I21fe21789ed3efbf71b5d3e234740a50c7911f6c
> Reviewed-on: https://webrtc-review.googlesource.com/88228
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23947}

TBR=danilchap@webrtc.org,brandtr@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:856823
Change-Id: I095b93ffa1754e1923ab58a7fa61575b6e2fd83a
Reviewed-on: https://webrtc-review.googlesource.com/88720
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23982}
2018-07-16 12:31:57 +00:00
philipel
dfbced6504 Remove RTPVideoHeader::h264() accessors.
Bug: none
Change-Id: I043bcaf358575688b223bc3631506e148b47fd58
Reviewed-on: https://webrtc-review.googlesource.com/88220
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23971}
2018-07-13 13:53:05 +00:00
Kári Tristan Helgason
798ee75d23 Always disable RED when ULPFEC is disabled.
This prevents a lot of unnecessary processing taking place when we are
not using FEC.

This CL also removes the FieldTrial that was used to disable ulpfec, as it's no longer used.

Bug: webrtc:9514
Change-Id: I8285b933f71eea971f5932cd19833455a42c8639
Reviewed-on: https://webrtc-review.googlesource.com/87848
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23952}
2018-07-12 13:01:20 +00:00
Danil Chapovalov
865feabca9 Fix buffer overflow in ulpfec recovery
Bug: chromium:856823
Change-Id: I21fe21789ed3efbf71b5d3e234740a50c7911f6c
Reviewed-on: https://webrtc-review.googlesource.com/88228
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23947}
2018-07-12 08:05:05 +00:00