This a pre-step for improving perfomance of the RTCPReceiver
- rest of the ReceiveInfo is tmmbr related and
can be handled only when tmmbr is explicitly enabled.
BUG=webrtc:5565
Review-Url: https://codereview.webrtc.org/2681003003
Cr-Commit-Position: refs/heads/master@{#16667}
In order to not make this CL too large I have broken it down into at least two steps. In this CL we only propagate the pacing information part of the way:
webrtc::PacedSender::Process <--- propagate from here
webrtc::PacedSender::SendPacket
webrtc::PacketRouter::TimeToSendPacket
webrtc::ModuleRtpRtcpImpl::TimeToSendPacket <--- to here
webrtc::RTPSender::TimeToSendPacket
webrtc::RTPSender::PrepareAndSendPacket
webrtc::RTPSender::AddPacketToTransportFeedback
webrtc::TransportFeedbackAdapter::AddPacket
webrtc::SendTimeHistory::AddAndRemoveOld <--- goal is to propagte it here
BUG=webrtc:6822
Review-Url: https://codereview.webrtc.org/2628563003
Cr-Commit-Position: refs/heads/master@{#16664}
This avoids redoing RTP header parsing already done in Call, for video.
The next step is to convert other types of receive streams, i.e.,
audio and flexfec, to use a compatible OnRtpPacket method. We can then
introduce a shared base interface, and simplify media-independent
receive processing in Call.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2681673004
Cr-Commit-Position: refs/heads/master@{#16583}
Since the only used class is RTCPUtilitiy::NackStats,
rename it to RtcpNackStats and move it into dedicated file.
BUG=webrtc:5565
Review-Url: https://codereview.webrtc.org/2680183004
Cr-Commit-Position: refs/heads/master@{#16515}
That would simplify their usage in tests where perfomance is not critical.
BUG=None
Review-Url: https://codereview.webrtc.org/2675713005
Cr-Commit-Position: refs/heads/master@{#16461}
Also fixes a bug where RTCP transport feedback was sent even though RTCP was disabled.
May affect perf numbers since the behavior of the send-side BWE differs a lot from the recv-side BWE.
BUG=webrtc:7111
Review-Url: https://codereview.webrtc.org/2669413003
Cr-Commit-Position: refs/heads/master@{#16451}
Useful if bitrate probing is to be used with audio streams.
BUG=webrtc:7043
Review-Url: https://codereview.webrtc.org/2652893004
Cr-Commit-Position: refs/heads/master@{#16404}
It combines and simplify use of GetStatusVector and GetReceiveDeltas accesors.
Replace use of all GetStatusVector/GetReceiveDeltasUs
BUG=None
Review-Url: https://codereview.webrtc.org/2633923003
Cr-Commit-Position: refs/heads/master@{#16139}
This CL adds an RTP module to FlexfecReceiveStreamImpl, and wires it up
to send RTCP RRs. It further makes some methods take const refs instead
of values, to make it more clear where packet copies are made. This
change reduces the number of copies by one, for the case when media
packets are added to the FlexFEC receiver.
The end-to-end test is modified to check for RTCP RRs being sent.
Part of this modification involves some indentation changes, and the
diff thus looks bigger than it logically is.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2625633003
Cr-Commit-Position: refs/heads/master@{#16106}
Removed const_cast while creating rtcp packet.
This way manually created packet is as good as parsed packet and can be used in tests directly.
To archive this, changed the way class stores deltas and their sizes:
encoded chunks are stored directly for all but last chunk simplifying rtcp packet creation.
deltas stored together with sequence_number that would allow to simplify reading them from the parsed packet.
Fixed test for maximum received packets.
BUG=None
Review-Url: https://codereview.webrtc.org/2616343003
Cr-Commit-Position: refs/heads/master@{#16091}
This lets the RTP code be unaware of lower layers, and the
SetTransportOverhead method is deleted from RTPSender and RtpRtcp.
Instead, that method is added to CongestionController and
TransportFeedbackAdapter, where it is more appropriate.
BUG=wertc:6847
Review-Url: https://codereview.webrtc.org/2589743002
Cr-Commit-Position: refs/heads/master@{#15995}
Moves webrtc/common_video/rotation.h and parts of
webrtc/common_video/include/video_frame_buffer.h and
webrtc/video_frame.h, and adds to a new GN target api:video_frame_api.
BUG=webrtc:5880
Review-Url: https://codereview.webrtc.org/2517173004
Cr-Commit-Position: refs/heads/master@{#15993}
Add RTC_DEPRACATed anonymous unions to not break downstream projects.
Orignal issue's description:
> commit 0ad21111fcc57a7e978edba3c4263f0062d7f9ff
> Author: danilchap <danilchap@webrtc.org>
> Date: Mon Dec 19 09:36:33 2016 -0800
>
> Revert of Rename RTPVideoHeader.isFirstPacket to
> .is_first_packet_in_frame. (patchset #1 id:1 of
> https://codereview.webrtc.org/2574943003/ )
>
> Reason for revert:
> breaks downstream project.
>
> Can you make this change in a compatible way using anonymous
> union:
> union {
> bool is_first_packet_in_frame;
> RTC_DEPRECATED bool isFirstPacket;
> };
> (unfortunetly this this treak breaks braced initialization in
> rtp_rtcp_impl_unittest.cc,
> so that should be rewritting in a more classic way)
>
> Original issue's description:
> > Rename RTPVideoHeader.isFirstPacket to
> > .is_first_packet_in_frame.
> >
> > Name should represent the actual meaning.
> >
> > BUG=None
> >
> > Review-Url: https://codereview.webrtc.org/2574943003
> > Cr-Commit-Position: refs/heads/master@{#15684}
> > Committed:
> > efde908380
>
> TBR=stefan@webrtc.org,sprang@webrtc.org,johan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days
> ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2589783003
> Cr-Commit-Position: refs/heads/master@{#15686}
>
BUG=None
Review-Url: https://codereview.webrtc.org/2614503002
Cr-Commit-Position: refs/heads/master@{#15987}
Removing the DCHECK due to (sometimes) failing voe_auto_test.
Long-term, this DCHECK should be readded. Before that can happen,
the SSRC in the RTPSender should be made immutable.
TESTED=No failures when running third_party/gtest-parallel/gtest-parallel --repeat=5000 --gtest_filter="VolumeTest.ManualInputMutingMutesMicrophone" out/Debug/voe_auto_test.
BUG=webrtc:6887
Review-Url: https://codereview.webrtc.org/2610873002
Cr-Commit-Position: refs/heads/master@{#15962}
Reason for revert:
Doing a reland where systeminfo.cc includes basictypes.h so that CPU_X86 etc. are defined when they are checked/used.
Original issue's description:
> Revert of Replace basictypes.h with stdint.h for int_t types. (patchset #1 id:1 of https://codereview.webrtc.org/2604043002/ )
>
> Reason for revert:
> Very likely cause of Chromium import bot breakage (unused function '__cpuid'), TBD why.
>
> Original issue's description:
> > Replace basictypes.h with stdint.h for int_t types.
> >
> > Removes basictypes.h for types that only makes use of it for fixed-size-int
> > typedefs and replaces it with stdint.h.
> >
> > BUG=webrtc:6853
> > R=tommi@webrtc.org
> >
> > Review-Url: https://codereview.webrtc.org/2604043002
> > Cr-Commit-Position: refs/heads/master@{#15867}
> > Committed: 7fd1a75300
>
> TBR=tommi@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6853
>
> Review-Url: https://codereview.webrtc.org/2603203003
> Cr-Commit-Position: refs/heads/master@{#15869}
> Committed: 7eb0e23bcf
BUG=webrtc:6853
TBR=tommi@webrtc.org
Review-Url: https://codereview.webrtc.org/2609783002
Cr-Commit-Position: refs/heads/master@{#15873}
Reason for revert:
Very likely cause of Chromium import bot breakage (unused function '__cpuid'), TBD why.
Original issue's description:
> Replace basictypes.h with stdint.h for int_t types.
>
> Removes basictypes.h for types that only makes use of it for fixed-size-int
> typedefs and replaces it with stdint.h.
>
> BUG=webrtc:6853
> R=tommi@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2604043002
> Cr-Commit-Position: refs/heads/master@{#15867}
> Committed: 7fd1a75300TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6853
Review-Url: https://codereview.webrtc.org/2603203003
Cr-Commit-Position: refs/heads/master@{#15869}
Removes basictypes.h for types that only makes use of it for fixed-size-int
typedefs and replaces it with stdint.h.
BUG=webrtc:6853
R=tommi@webrtc.org
Review-Url: https://codereview.webrtc.org/2604043002
Cr-Commit-Position: refs/heads/master@{#15867}
- UpdateRtcpList
- RtpToNtp
class RtpToNtpEstimator
- UpdateMeasurements
- Estimate
List with rtcp measurements is now private.
BUG=none
Review-Url: https://codereview.webrtc.org/2574133003
Cr-Commit-Position: refs/heads/master@{#15762}
Problem fixed: RTP header extensions were not properly set in tests.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2593963003
Cr-Commit-Position: refs/heads/master@{#15741}
Rename variables and private functions to follow style,
replace remaining asserts with DCHECKs.
add 'ms' suffix to time variables derived from clock_
add 'ntp' suffix to time variables derived from ntp time.
No functional changes expected.
BUG=None
Review-Url: https://codereview.webrtc.org/2588753002
Cr-Commit-Position: refs/heads/master@{#15706}
Reason for revert:
breaks downstream project.
Can you make this change in a compatible way using anonymous union:
union {
bool is_first_packet_in_frame;
RTC_DEPRECATED bool isFirstPacket;
};
(unfortunetly this this treak breaks braced initialization in rtp_rtcp_impl_unittest.cc,
so that should be rewritting in a more classic way)
Original issue's description:
> Rename RTPVideoHeader.isFirstPacket to .is_first_packet_in_frame.
>
> Name should represent the actual meaning.
>
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2574943003
> Cr-Commit-Position: refs/heads/master@{#15684}
> Committed: efde908380TBR=stefan@webrtc.org,sprang@webrtc.org,johan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None
Review-Url: https://codereview.webrtc.org/2589783003
Cr-Commit-Position: refs/heads/master@{#15686}
Having that dependency require user of RtpPacket to ensure
RtpHeaderExtensionMap always outlive packet and that RtpPacket's access
to RtpHeaderExtensionMap is properly syncrhonized.
Dropping this dependencies make use of RtpPacket less error-prone.
BUG=webrtc:5261
Review-Url: https://codereview.webrtc.org/2576653003
Cr-Commit-Position: refs/heads/master@{#15653}
This change inserts a RTC_CHECK for illegal packetization modes
when RTP packetizers are constructed.
This should help find places where this field is not initialized.
BUG=webrtc:6858
Review-Url: https://codereview.webrtc.org/2575073002
Cr-Commit-Position: refs/heads/master@{#15614}
The packetization parts of this class are accessed from the
encoder thread, which might change under different occasions.
The use of a sequenced task checker here is thus incorrect, since
that requires the access to always be on the same thread, whenever
a task queue is not used.
The access to the instantiated object of this class, at least when
it comes to the RTP packetization parts, is however synchronized
using the lock in PayloadRouter::OnEncodedImage. We can therefore
safely remove the sequenced task checker.
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2562983002
Cr-Commit-Position: refs/heads/master@{#15549}
This makes it possible to use << and RTC_CHECK_EQ with this class.
BUG=none
Review-Url: https://codereview.webrtc.org/2554003002
Cr-Commit-Position: refs/heads/master@{#15456}
Specifically, reject any bitrate allocated for a layer not representable
by the BitrateAllocation struct.
BUG=chromium:671312
Review-Url: https://codereview.webrtc.org/2549233005
Cr-Commit-Position: refs/heads/master@{#15447}
Reason for revert:
Fixed timeouts in slow tests
Original issue's description:
> Revert of H.264 packetization mode 0 (try 3) (patchset #13 id:490001 of https://codereview.webrtc.org/2528343002/ )
>
> Reason for revert:
> Failures on the Linux Memcheck bot
>
> Original issue's description:
> > This approach passes packetization mode to the encoder as part of
> > a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
> >
> > BUG=600254
> >
> > Committed: https://crrev.com/e59647b991f61cf1cf61b020356705e6c0f81257
> > Cr-Commit-Position: refs/heads/master@{#15437}
>
> TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=600254
>
> Committed: https://crrev.com/243a0a7a7fd6b5da1e32df31f1bfbb6a68dc09f3
> Cr-Commit-Position: refs/heads/master@{#15441}
TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=600254
Review-Url: https://codereview.webrtc.org/2558463002
Cr-Commit-Position: refs/heads/master@{#15445}
Reason for revert:
Failures on the Linux Memcheck bot
Original issue's description:
> This approach passes packetization mode to the encoder as part of
> a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
>
> BUG=600254
>
> Committed: https://crrev.com/e59647b991f61cf1cf61b020356705e6c0f81257
> Cr-Commit-Position: refs/heads/master@{#15437}
TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=600254
Review-Url: https://codereview.webrtc.org/2558453002
Cr-Commit-Position: refs/heads/master@{#15441}
a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
BUG=600254
Review-Url: https://codereview.webrtc.org/2528343002
Cr-Commit-Position: refs/heads/master@{#15437}
This push decision if Marker bit should be set into packetizers fixing
issue where returned last_packet flag was ambiguous for some VP9 packets.
Added test for VP9 where last_packet != marker_bit
BUG=webrtc:6723
Review-Url: https://codereview.webrtc.org/2522553002
Cr-Commit-Position: refs/heads/master@{#15415}