std::vector<rtcp::TmmbItem> will replace TMMBRSet class for storage, processing and preparing TMBBR/TMMBN
(i.e. this TmmbItem replaces Timber structure introduced in https://codereview.webrtc.org/1474693002 )
Previous structures store bitrate in kbps. TmmbItem use bps removing need to regularly divide and multiply by 1000.
BUG=webrtc:5260
R=åsapersson
Review URL: https://codereview.webrtc.org/1576223003
Cr-Commit-Position: refs/heads/master@{#11491}
This adds negotiation of both transport sequence number and transport
feedback. Only offers transport seq num if the
WebRTC-Audio-SendSideBwe finch experiment is enabled.
TBR=mflodman@webrtc.org
BUG=webrtc:5263
Review URL: https://codereview.webrtc.org/1604563002
Cr-Commit-Position: refs/heads/master@{#11487}
active_layer_ could be dereferenced while being -1...
Also added som DCHECKs
BUG=webrtc:5490
Review URL: https://codereview.webrtc.org/1656233002
Cr-Commit-Position: refs/heads/master@{#11486}
Change argument type for VideoProviderInterface::SetVideoPlayout.
Replace VideoMediaChannel::SetRenderer and VideoChannel::SetRenderer
by SetSink.
Alse deleted unused member variables VideoMediaChannel::renderer_ and
VideoChannel::renderer_.
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1668493002
Cr-Commit-Position: refs/heads/master@{#11485}
Sparse macro is replaced and new implementation in metrics.h is used.
BUG=webrtc:5283
Review URL: https://codereview.webrtc.org/1564923008
Cr-Commit-Position: refs/heads/master@{#11483}
In some device (e.g. Galaxy s6), the OS returns a list of network containing
one that has empty network name or NONE connection type, which cannot be used and cause crash to the app.
BUG=
Review URL: https://codereview.webrtc.org/1655313005
Cr-Commit-Position: refs/heads/master@{#11482}
This CL fixes an issue where the "writable" flag didn't stay set after
::send or ::sendto only sent a partial buffer.
Also SocketTest::TcpInternal has been updated to use rtc::Buffer instead
of manually allocating data.
BUG=webrtc:4898
Review URL: https://codereview.webrtc.org/1616153007
Cr-Commit-Position: refs/heads/master@{#11480}
There is a use case with external codec factories that only support
encoding but not decoding for a given type. This leads to a crash
due to null being registered as codec (after a DCHECK).
This CL adds a NullVideoDecoder that is used instead of the null to
not crash but log to LS_ERROR.
BUG=webrtc:5249
Review URL: https://codereview.webrtc.org/1657023002
Cr-Commit-Position: refs/heads/master@{#11475}
Renamed the WEBRTC_THIRD_PARTY_H264 macro to WEBRTC_USE_H264 to match flag name.
The idea is to be able to turn off H264 from chromium with this function because...
1) The Chromium trybots will soon use this flag, we want to temporarily disable H264 from chromium even if flag is set in case something is broken. That way when we are ready to flip the switch the trybots will run our test code then and not after it is already enabled.
2) If feature is launched and we discover major problems we can easily disable H264 and merge with beta/stable.
3) Or, if feature is behind a *runtime* flag, this is how we would control if it is used or not.
The idea is to call DisableRtcUseH264 in chromium's PeerConnectionDependencyFactory.
BUG=chromium:500605, chromium:468365
NOTRY=True
NOPRESUBMIT=True
Review URL: https://codereview.webrtc.org/1657273002
Cr-Commit-Position: refs/heads/master@{#11474}
Adds negotiation of rtx codecs for red and vp9. To keep backwards
compatibility with older Chrome versions, this change includes two
hacks:
1. Red packets will be retransmitted over the rtx codec associated with
vp8 if no rtx codec is associated with red. This is how Chrome does
it today and ensures that we still can send red over rtx to older
versions.
2. If rtx packets associated with the media codec (vp8/vp9 etc) are
received and red has been negotiated, we will assume that the sender
incorrectly has packetized red inside the rtx header associated with
media. We will therefore restore it with the red payload type
instead, which ensures that we can still receive rtx associated with
red from old versions.
Offering multiple rtx codecs to older versions should not be a problem
since old versions themselves only try to negotiate rtx for vp8.
R=pbos@webrtc.orgTBR=mflodman@webrtc.org
BUG=webrtc:4024
TEST=Verified by running apprtc and emulating packet loss between Chrome with and without the patch.
Review URL: https://codereview.webrtc.org/1649493004 .
Cr-Commit-Position: refs/heads/master@{#11472}
It's generated by some encoders between SPS/PPS and an IDR frame, so we should treat it like sps/pps.
BUG=
Review URL: https://codereview.webrtc.org/1664733002
Cr-Commit-Position: refs/heads/master@{#11470}
Sometimes Android OS provides unknown connection type,
causing a DCHECK failure. This CL temporarily removes that checking.
BUG=
TBR=glaznev@webrtc.org
NOTRY=true
Review URL: https://codereview.webrtc.org/1667503002
Cr-Commit-Position: refs/heads/master@{#11466}
* SSRCDatabase doesn't need to be a global instance, so I've changed it to be a "regular" class (i.e. construct via ctor, not maybe via GetSSRCDatabase( + release via ReturnSSRCDatabase())). If we ever have parallel tests running in the same process, they won't have the problem of using the same ssrc database.
* Made RtpSender a more const. Also added some todos for myself and holmer to look into clarifying the threading model.
* Switched from CriticalSectionWrapper to rtc::CriticalSection
* Changed the random seeding to use TickTime::Now().Ticks() since TimeInMicroseconds() could return 0 when the process was starting. This is what TimeInMicroseconds() does anyway but now we don't need to access a global clock object.
BUG=webrtc:3062
Review URL: https://codereview.webrtc.org/1623543002
Cr-Commit-Position: refs/heads/master@{#11462}
The webrtc/supplement.gypi contains a source listing of the
suppressions for TSan and LSan, which are located in source files.
It makes the presubmit fail when it's updated, which is confusing.
NOTRY=True
TESTED=Edited webrtc/supplement.gypi and ran "git cl presubmit" without an error.
Review URL: https://codereview.webrtc.org/1649423002
Cr-Commit-Position: refs/heads/master@{#11457}
New flag: rtc_initialize_ffmpeg, default value = !build_with_chromium.
In WebRTC standalone we initialize FFmpeg by default, in Chromium we don't by default.
Chromium is an external project that also use FFmpeg. If both projects do FFmpeg initialization code things will break. The flag makes it possible for other external projects than chromium to decide whether or not WebRTC should initialize FFmpeg.
BUG=chromium:500605, chromium:468365, webrtc:5427
Review URL: https://codereview.webrtc.org/1639273002
Cr-Commit-Position: refs/heads/master@{#11456}
For example, when the TURN port has an ALLOCATE_MISMATCH error.
BUG=webrtc:5432
Review URL: https://codereview.webrtc.org/1595613004
Cr-Commit-Position: refs/heads/master@{#11453}
- Add extra logging for Android HW codec corner cases
when frames are dropped or resolution is changed.
- Use presentation timestamps for decoded frame logging.
- Enable key frame sending on long frame gap for
H.264 codec.
BUG=b/26504665
Review URL: https://codereview.webrtc.org/1653523003
Cr-Commit-Position: refs/heads/master@{#11452}
Some WebRTC client had a problem with the change "Removing webrtc::AudioFrame::energy_". Now it is solved.
This reverts commit 2bdcfadc8abd418a30dd5cdf54ba45a429d3d9bf.
BUG=webrtc:3315
Review URL: https://codereview.webrtc.org/1638553003
Cr-Commit-Position: refs/heads/master@{#11448}
A couple of mutables were added after last removal of mutables, so
removing those. rtc::CriticalSection is const-lockable.
BUG=
R=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1652983002
Cr-Commit-Position: refs/heads/master@{#11447}
Reason for revert:
May be the reason for mac_asan timeout
Original issue's description:
> Changed test to validate rtp timstamps not just in RTP packets but also in RTCP Sender Reports.
> Altered it to accept negative value since it is normal for RTCP packet coming before RTP packet to have slightly later time.
>
> BUG=webrtc:5433
>
> Committed: https://crrev.com/f4b9c775122b463db7eb2c4101603759a0d00caf
> Cr-Commit-Position: refs/heads/master@{#11417}
TBR=pbos@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5433
Review URL: https://codereview.webrtc.org/1652973002
Cr-Commit-Position: refs/heads/master@{#11446}
This makes it possible to handle send and receive streams with the same SSRC, which is currently the case in some peer connection tests.
Also moves sending transport feedback to the pacer thread.
BUG=webrtc:5263
Review URL: https://codereview.webrtc.org/1628683002
Cr-Commit-Position: refs/heads/master@{#11443}