Reason for revert:
This change appears to break ulpfec, with severe regressions, e.g., for webrtc_perf_test FullStackTest.ForemanCifPlr5Ulpfec
Original issue's description:
> Reland of Use RtxReceiveStream. (patchset #1 id:1 of https://codereview.webrtc.org/3010983002/ )
>
> Reason for revert:
> Intend to fix perf failures and reland.
>
> Original issue's description:
> > Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
> >
> > Reason for revert:
> > A few perf tests broken, including
> >
> > RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
> > RampUpTest.UpDownUpTransportSequenceNumberRtx
> > RampUpTest.UpDownUpTransportSequenceNumberPacketLoss
> >
> >
> > Original issue's description:
> > > Use RtxReceiveStream.
> > >
> > > This also has the beneficial side-effect that when a media stream
> > > which is protected by FlexFEC receives an RTX retransmission, the
> > > retransmitted media packet is passed into the FlexFEC machinery,
> > > which should improve its ability to recover packets via FEC.
> > >
> > > BUG=webrtc:7135
> > >
> > > Review-Url: https://codereview.webrtc.org/3008773002
> > > Cr-Commit-Position: refs/heads/master@{#19649}
> > > Committed: 5c0f6c62ea
> >
> > TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/3010983002
> > Cr-Commit-Position: refs/heads/master@{#19653}
> > Committed: 3c39c0137a
>
> TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3006063002
> Cr-Commit-Position: refs/heads/master@{#19715}
> Committed: 35713eaf56TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3007303002
Cr-Commit-Position: refs/heads/master@{#19744}
Reason for revert:
Intend to fix perf failures and reland.
Original issue's description:
> Revert of Use RtxReceiveStream. (patchset #5 id:80001 of https://codereview.webrtc.org/3008773002/ )
>
> Reason for revert:
> A few perf tests broken, including
>
> RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
> RampUpTest.UpDownUpTransportSequenceNumberRtx
> RampUpTest.UpDownUpTransportSequenceNumberPacketLoss
>
>
> Original issue's description:
> > Use RtxReceiveStream.
> >
> > This also has the beneficial side-effect that when a media stream
> > which is protected by FlexFEC receives an RTX retransmission, the
> > retransmitted media packet is passed into the FlexFEC machinery,
> > which should improve its ability to recover packets via FEC.
> >
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/3008773002
> > Cr-Commit-Position: refs/heads/master@{#19649}
> > Committed: 5c0f6c62ea
>
> TBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3010983002
> Cr-Commit-Position: refs/heads/master@{#19653}
> Committed: 3c39c0137aTBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3006063002
Cr-Commit-Position: refs/heads/master@{#19715}
We use Optional in our public API, so its header should be in
webrtc/api/.
BUG=webrtc:8205
Review-Url: https://codereview.webrtc.org/3011943002
Cr-Commit-Position: refs/heads/master@{#19693}
This CL is a minor refactoring to clean up and modernize some code
in webrtcvideoengine.
BUG=None
Review-Url: https://codereview.webrtc.org/3002213002
Cr-Commit-Position: refs/heads/master@{#19660}
This makes it possible for decoder factories to actually provide any
video codec, not just the ones WebRTC knows about. It also brings
the decoder factory interface more in line with that of the encoder
factory.
BUG=webrtc:8140
Review-Url: https://codereview.webrtc.org/3007433002
Cr-Commit-Position: refs/heads/master@{#19654}
Reason for revert:
A few perf tests broken, including
RampUpTest.UpDownUpAbsSendTimeSimulcastRedRtx
RampUpTest.UpDownUpTransportSequenceNumberRtx
RampUpTest.UpDownUpTransportSequenceNumberPacketLoss
Original issue's description:
> Use RtxReceiveStream.
>
> This also has the beneficial side-effect that when a media stream
> which is protected by FlexFEC receives an RTX retransmission, the
> retransmitted media packet is passed into the FlexFEC machinery,
> which should improve its ability to recover packets via FEC.
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/3008773002
> Cr-Commit-Position: refs/heads/master@{#19649}
> Committed: 5c0f6c62eaTBR=brandtr@webrtc.org,danilchap@webrtc.org,stefan@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3010983002
Cr-Commit-Position: refs/heads/master@{#19653}
Instead of the longest frame since the last GetStats call, the longest
frame received during last 10 seconds should be returned in GetStats().
Previous way is not a good idea because there are maybe several
consumers of GetStats calls. If not all of them parse timing frame
reports, some of them may be lost.
Also, streamline reporting of TimingFrames via GetStats (remove separate
methods and use VideoReceiveStream::Stats struct instead).
BUG=webrtc:7594
Review-Url: https://codereview.webrtc.org/3008983002
Cr-Commit-Position: refs/heads/master@{#19650}
This also has the beneficial side-effect that when a media stream
which is protected by FlexFEC receives an RTX retransmission, the
retransmitted media packet is passed into the FlexFEC machinery,
which should improve its ability to recover packets via FEC.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/3008773002
Cr-Commit-Position: refs/heads/master@{#19649}
We want to reuse some of this functionality for the new video codec
factories, but not of all it, so this CL refactors out what we want to
reuse to a static function.
BUG=webrtc:7925
Review-Url: https://codereview.webrtc.org/3010743002
Cr-Commit-Position: refs/heads/master@{#19628}
directives in our DEPS files are not needed anymore.
Includes from webrtc/rtc_base are also whitelisted in webrtc/DEPS
so we don't have to whitelist it in all the others DEPS files.
BUG=webrtc:7634
NOTRY=True
Review-Url: https://codereview.webrtc.org/3006583002
Cr-Commit-Position: refs/heads/master@{#19601}
This CL encapsulates the logic for unifying the internal and external
video encoders into a helper class. The purpose is to prepare for
introducing a new video encoder factory interface that inherently
represents all encoders (i.e. both internal and external). A helper
interface EncoderFactoryAdapter is introduced that both the old
WebRtcVideoEncoderFactory and the new factory interface can implement
and serves as common point to leave the rest of the code unchanged.
BUG=webrtc:7925
Review-Url: https://codereview.webrtc.org/3006713002
Cr-Commit-Position: refs/heads/master@{#19600}
Currently, ownership of the wrapped hardware encoder is handled outside
VideoEncoderSoftwareFallbackWrapper. It's easier if
VideoEncoderSoftwareFallbackWrapper owns and relases it instead.
BUG=webrtc:7925
Review-Url: https://codereview.webrtc.org/3007683002
Cr-Commit-Position: refs/heads/master@{#19572}
Currently, webrtc::VideoEncoders are supposed to be deleted through the
factory that created them with the
WebRtcVideoEncoderFactory::DestroyVideoEncoder method. In practice,
we sometimes use this method and sometimes we just call delete on the
webrtc::VideoEncoder pointer. We want to be able to consistently use the
normal destructor of webrtc::VideoEncoder instead of having to call
DestroyVideoEncoder so that we can put webrtc::VideoEncoder inside
an std::unique_ptr and make ownership more clear. As part of webrtc:7925
we also want to make a new encoder factory class that does not have the
DestroyVideoEncoder() method, and this CL is a step in that direction.
This CL introduces a helper function CreateScopedVideoEncoder that takes
a webrtc::VideoEncoder and a WebRtcVideoEncoderFactory pointer, and
returns a new webrtc::VideoEncoder instance that can be deleted through
the regular destructor.
This CL also removes WebRtcSimulcastEncoderFactory that almost only
contains logic for handling the DestroyVideoEncoder calls that we no
longer need, and inlines the rest of the logic inside the
WebRtcVideoChannel::WebRtcVideoSendStream::CreateVideoEncoder method.
BUG=webrtc:7925
Review-Url: https://codereview.webrtc.org/3007643002
Cr-Commit-Position: refs/heads/master@{#19564}
Headers webrtc/video_receive_stream.h and webrtc/video_send_stream.h
have been moved to webrtc/call in https://codereview.webrtc.org/3000253002,
this CL is just switching WebRTC internal dependencies to actual headers
instead of depending on the backward compatibility ones.
BUG=webrtc:8107
Review-Url: https://codereview.webrtc.org/3007553002
Cr-Commit-Position: refs/heads/master@{#19561}
Adds two new stats to RTCMediaStreamTrackStats:
* totalSamplesReceived is the total number of samples received on
the audio channel and includes real and synthetic samples.
* concealedSamples is the total number of synthetic samples
received on the audio channel used to conceal packet loss.
Bug: webrtc:8076
Change-Id: I36e9828525ec341490cf3310a972b56a8b443667
Reviewed-on: https://chromium-review.googlesource.com/615902
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19506}
This will help debugging issues with the fallback, in cases where
only LS_WARNING logs are available.
BUG=none
Review-Url: https://codereview.webrtc.org/3007523002
Cr-Commit-Position: refs/heads/master@{#19488}
We can't handle no value here anyway and end up setting a default
at each call site. The defaults aren't even the same in each place.
BUG=None
Review-Url: https://codereview.webrtc.org/2998293002
Cr-Commit-Position: refs/heads/master@{#19485}
Reason for revert:
Fix and reland.
Original issue's description:
> Revert of Modify profiles for H264 encode SW fallback (patchset #2 id:20001 of https://codereview.webrtc.org/2997913003/ )
>
> Reason for revert:
> Breaks the internal bots.
> Root cause: The "public_deps" is defined behind an "if" condition which may not be true.
>
> Original issue's description:
> > Modify profiles for H264 encode SW fallback
> >
> > We have only Constrained Baseline profile available in SW encoder impl
> > so modify the profile to that in case of a fallback
> >
> > BUG=chromium:735959
> >
> > Review-Url: https://codereview.webrtc.org/2997913003
> > Cr-Commit-Position: refs/heads/master@{#19436}
> > Committed: 1fd66656b3
>
> TBR=magjed@webrtc.org,emircan@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:735959
>
> Review-Url: https://codereview.webrtc.org/2995373002
> Cr-Commit-Position: refs/heads/master@{#19438}
> Committed: 296b64eb25TBR=magjed@webrtc.org,zhihuang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:735959
Review-Url: https://codereview.webrtc.org/2997423002
Cr-Commit-Position: refs/heads/master@{#19476}
Maximum of interframe delay is calculated over moving window in
ReceiveStatistics proxy now and reported via GetStats. Name of a metric
is also changed.
BUG=none
Review-Url: https://codereview.webrtc.org/2995143002
Cr-Commit-Position: refs/heads/master@{#19463}
Moved the headers video_receive_stream.h and video_send_stream.h from
webrtc/ into webrtc/call/ as part of the Slim and Modular work.
The GN target webrtc:video_stream_api has moved to
webrtc/call:video_stream_api.
There are headers left in webrtc/ with the same name including the
moved headers in webrtc/call/ for not breaking external projects
depending on WebRTC.
At the same time, some minor cleanup is done: Non-pure-virtual functions declared in the two affected headers now have definitions in the same target. After making this change, our 'chromium-style' plugin detected some style violations that have now been fixed: non-inlined constructors and destructors have been added to a number of classes, both inside the GN target of the two affected headers, and in other targets.
BUG=webrtc:8107
Review-Url: https://codereview.webrtc.org/3000253002
Cr-Commit-Position: refs/heads/master@{#19448}
Reason for revert:
Breaks the internal bots.
Root cause: The "public_deps" is defined behind an "if" condition which may not be true.
Original issue's description:
> Modify profiles for H264 encode SW fallback
>
> We have only Constrained Baseline profile available in SW encoder impl
> so modify the profile to that in case of a fallback
>
> BUG=chromium:735959
>
> Review-Url: https://codereview.webrtc.org/2997913003
> Cr-Commit-Position: refs/heads/master@{#19436}
> Committed: 1fd66656b3TBR=magjed@webrtc.org,emircan@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:735959
Review-Url: https://codereview.webrtc.org/2995373002
Cr-Commit-Position: refs/heads/master@{#19438}
We have only Constrained Baseline profile available in SW encoder impl
so modify the profile to that in case of a fallback
BUG=chromium:735959
Review-Url: https://codereview.webrtc.org/2997913003
Cr-Commit-Position: refs/heads/master@{#19436}
Make it possible for forced VP8 SW fallback encoder to set min_pixels_per_frame via GetScalingSettings().
Add a min required resolution (in addition to bitrate) before releasing forced SW fallback.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/3000693003
Cr-Commit-Position: refs/heads/master@{#19390}
Make it possible to switch from VP8 HW -> VP8 SW -> VP8 HW depending on bitrate and resolution.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2988963002
Cr-Commit-Position: refs/heads/master@{#19362}
[This CL is work in progress.]
Wire up the rtp keep-alive in webrtc::Call::Config using new
SetRtpTransportParameters() method on RtpTransportInterface.
BUG=webrtc:7907
Review-Url: https://codereview.webrtc.org/2981513002
Cr-Commit-Position: refs/heads/master@{#19287}
Found via supersize query:
size_info.symbols.WhereFullNameMatches(r'\bk[A-Z]').WhereInSection('d')
This moves 90 symbols from .data -> .data.rel.ro (5.50kb)
BUG=chromium:747064
Review-Url: https://codereview.webrtc.org/2986163002
Cr-Commit-Position: refs/heads/master@{#19274}
This CL:
- Renames the ViEEncoder class to VideoStreamEncoder, according to discussions.
- Renames variables 'vie_encode' to 'video_stream_encoder'.
- Formatting to match style guide.
- No other changes.
BUG=webrtc:8064
Review-Url: https://codereview.webrtc.org/2995433002
Cr-Commit-Position: refs/heads/master@{#19237}
In preparation of making RTP packet demuxing many-to-one (one SSRC goes to one sink, but one sink may have multiple SSRCs), we need to remove FlexFEC's dependence on being able to register itself with the demuxer. Instead, we register FlexFEC streams with the streams they protect; when those streams get packets, they'll forward them to their associated FlexFEC streams, too.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2974453002
Cr-Commit-Position: refs/heads/master@{#19219}
This CL ensures that any previously set nondefault settings in the
audio processing module are not overwritten by the ApplyOptions
method in WebRtcVoiceEngine
BUG=webrtc:8018
Review-Url: https://codereview.webrtc.org/2985633002
Cr-Commit-Position: refs/heads/master@{#19144}
All downstream code have been updated to the new location.
In PRESUBMIT.py:
* Remove webrtc/rtc_base from CPP_BLACKLIST
* Add webrtc/rtc_base to LEGACY_API_DIRS
Fix some duplicated paths in
webrtc/modules/audio_processing/test/conversational_speech/BUILD.gn
BUG=webrtc:7634
TBR=kwiberg@webrtc.org
Review-Url: https://codereview.webrtc.org/2976293002
Cr-Commit-Position: refs/heads/master@{#19094}
Currently, when we generate the list of supported video codecs that will
be signaled in SDP, we start with the internal video codecs and then
append the external video codecs. When we create a video encoder for a
given codec, we prefer an external encoder over an internal encoder.
This CL lists the external video codecs first in SDP instead, so that we
consistently prefer external video codecs over internal.
The reason for doing this is that we will otherwise prefer an internal
SW H264 encoder over an external HW H264 encoder if the H264 profiles
differs.
BUG=chromium:688541
Review-Url: https://codereview.webrtc.org/2974383002
Cr-Commit-Position: refs/heads/master@{#19026}