With this change, the NetEqImpl constructor takes a struct
(NetEqImpl::Dependencies) as input instead of a collection of
individual dependencies. The NetEqImpl unit test fixture is modified
to make better used of unique_ptrs.
Review URL: https://codereview.webrtc.org/1921243002
Cr-Commit-Position: refs/heads/master@{#12514}
They're just no-ops now, and will soon go away.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1914153002
Cr-Commit-Position: refs/heads/master@{#12510}
Any file that uses the RTC_DISALLOW_* macros should #include
"webrtc/base/constructormagic.h", but a shocking number of them don't.
This causes trouble when we try to wean files off of #including
scoped_ptr.h, since a bunch of files get their constructormagic macros
only from there.
Rather than fixing these errors one by one as they turn up, this CL
simply ensures that every file in the WebRTC tree that uses the
RTC_DISALLOW_* macros #includes "webrtc/base/constructormagic.h".
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1917043005
Cr-Commit-Position: refs/heads/master@{#12509}
This change makes use of the TickTimer::Stopwatch in Packets. When a
packet is inserted into the PacketBuffer, a Stopwatch object is
attached to it. When the packet is extracted from the buffer, the
Stopwatch is read to know how long the packet waited in the buffer.
BUG=webrtc:5608
Review URL: https://codereview.webrtc.org/1917913002
Cr-Commit-Position: refs/heads/master@{#12508}
Framerate-reduction code is disabled on all platforms, and this code
adds complexity. It's necessary to react fast, especially on mobile
platforms or other bad network conditions and framerate reduction adds
another step between HD and QVGA.
BUG=webrtc:5678, webrtc:5830
R=jackychen@webrtc.org, mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1885893002 .
Cr-Commit-Position: refs/heads/master@{#12503}
This propagated into various other places. Also had to #include headers that
were implicitly pulled by "scoped_ptr.h".
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1920043002
Cr-Commit-Position: refs/heads/master@{#12501}
The audio_decoder_interface and audio_encoder_interface
targets are depending on rtc_base_approved headers but don't
declare such dependencies.
NOTRY=True
Review URL: https://codereview.webrtc.org/1916953002
Cr-Commit-Position: refs/heads/master@{#12500}
There's also one fixup that could neither be done before or after
landing the type alias CL: changing the FunctorMessageHandler template
specialization for rtc::scoped_ptr<ReturnT> to be for
std::unique_ptr<ReturnT> instead. (Having one specialization for
scoped_ptr and one for unique_ptr doesn't work when the types are the
same, and having just the scoped_ptr specialization doesn't work when
scoped_ptr is a type alias. I'm sure there's some template
metaprogramming magic that could solve the problem, but it's easy
enough to just make the change in this CL instead.)
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1797463002
Cr-Commit-Position: refs/heads/master@{#12499}
RSA isn't used by the Java binding, it isn't the default for Obj-C,
and this identity store class isn't used at all by Chrome. So in most
cases, preemptively generating an RSA key pair just wastes CPU cycles
and blocks the worker thread.
If a native C++ application really wants to preemptively generate an RSA
key pair, it can easily do this by passing in its own DtlsIdentityStoreImpl
and calling GenerateIdentity on it.
R=juberti@chromium.org
Review URL: https://codereview.webrtc.org/1907083005 .
Cr-Commit-Position: refs/heads/master@{#12498}
When frame width or height not divisible by 16, copy the margin to denoised
frame, otherwise, the margin block (smaller than 16x16) will not be
updated for non-keyframe.
Review URL: https://codereview.webrtc.org/1917703002
Cr-Commit-Position: refs/heads/master@{#12497}
This will be the staging around for languages other than C++. Right now
only ObjC is planned in the near future.
BUG=
Review URL: https://codereview.webrtc.org/1904343002
Cr-Commit-Position: refs/heads/master@{#12496}
Reason for revert:
GetYPlane, GetYPitch etc is used by Chromium.
Original issue's description:
> Delete cricket::VideoFrame methods GetYPlane and GetYPitch.
>
> (And similarly for U and V). Also change video_frame_buffer method to
> return a const ref to a scoped_ref_ptr.
>
> This cl is analogous to https://codereview.webrtc.org/1900673002/,
> which delete corresponding methods in webrtc::VideoFrame.
>
> BUG=webrtc:5682
>
> Committed: https://crrev.com/1c27c6bf4cf0476dd2f09425509afaae4cdfe599
> Cr-Commit-Position: refs/heads/master@{#12492}
TBR=magjed@webrtc.org,perkj@webrtc.org,pbos@webrtc.org,pthatcher@webrtc.org,nisse@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5682
Review URL: https://codereview.webrtc.org/1921493004
Cr-Commit-Position: refs/heads/master@{#12494}
The TickTimer is incremented on each call to GetAudioInternal(). Other
than that, the new object is not used yet.
Also adding a unit test in NetEqImplTest to verify that the tick timer
is incremented in the call to NetEq::GetAudio.
BUG=webrtc:5608
Review URL: https://codereview.webrtc.org/1903153005
Cr-Commit-Position: refs/heads/master@{#12493}
(And similarly for U and V). Also change video_frame_buffer method to
return a const ref to a scoped_ref_ptr.
This cl is analogous to https://codereview.webrtc.org/1900673002/,
which delete corresponding methods in webrtc::VideoFrame.
BUG=webrtc:5682
Review URL: https://codereview.webrtc.org/1901973002
Cr-Commit-Position: refs/heads/master@{#12492}
Broke out CNG from AudioDecoder as they didn't really share an interface.
Converted the CNG code to C++, to make initialization and resource handling easier. This includes several changes to the behavior, favoring RTC_CHECKs over returning error codes.
Review URL: https://codereview.webrtc.org/1868143002
Cr-Commit-Position: refs/heads/master@{#12491}
Reason for revert:
Candidate culprit CL for breaking the gtest initialization on DrMemory.
Original issue's description:
> Enable video processing unittest to take video clips as param.
>
> This change enables video processing unittest (including all tests under
> it, e.g. denoiser test) to use a set of video clips as param, which is
> important if we want to do a regression test on the visual quality
> offline.
>
> BUG=
>
> Committed: https://crrev.com/6d94e5224a3d3b1a6d66a428dbe75af7106e8d60
> Cr-Commit-Position: refs/heads/master@{#12485}
TBR=marpan@webrtc.org,jackychen@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.webrtc.org/1915973002
Cr-Commit-Position: refs/heads/master@{#12490}
This is a first CL in a row of CLs to move everything related to
receiving RTP from ViEChanel to ViEReceiver, rename the classes and
move ViEReceiver ownership to VideoReceiveStream.
Review URL: https://codereview.webrtc.org/1912133002
Cr-Commit-Position: refs/heads/master@{#12486}
This change enables video processing unittest (including all tests under
it, e.g. denoiser test) to use a set of video clips as param, which is
important if we want to do a regression test on the visual quality
offline.
BUG=
Review URL: https://codereview.webrtc.org/1907353004
Cr-Commit-Position: refs/heads/master@{#12485}
Move the all_dependent_configs configurations into
a single config for better readability.
Sync the Mac and iOS frameworks between the GYP and the GN
build. Many entries that used to be default included in
https://code.google.com/p/chromium/codesearch#chromium/src/build/config/BUILD.gn
are no longer implicitly added for Mac, so to ensure they are
they're added back for the Mac build.
NOTRY=True
Review URL: https://codereview.webrtc.org/1914913002
Cr-Commit-Position: refs/heads/master@{#12484}
The new class is intended to be used as a central time-keeping object
inside NetEq. The actual use of the class will come in subsequent
changes.
BUG=webrtc:5608
Review URL: https://codereview.webrtc.org/1910523003
Cr-Commit-Position: refs/heads/master@{#12477}
The logging thread is always active. The main thread uses SwapQueues to pass events to the logging thread. The logging thread moves the events to either a RingBuffer history in memory, or to a string which is written to disc.
RtcEventLogImpl constructor takes a clock for easier testing.
BUG=webrtc:4741
Review URL: https://codereview.webrtc.org/1687703002
Cr-Commit-Position: refs/heads/master@{#12476}
It's flaky not only for ASan/MSan, but regular Windows/Linux bots.
NOTRY=True
BUG=webrtc:5790
Review URL: https://codereview.webrtc.org/1908663002
Cr-Commit-Position: refs/heads/master@{#12475}
This is more a correction than a change since bind.h was incorrectly not
a part of rtc_base when building with Chromium while still being used
(since it's a header file only). The only dependencies that bind.h has,
are in rtc_base_approved, so there's no need to restrict usage of it to
rtc_base users only.
NOTRY=true
TBR=perkj
NO_DEPENDENCY_CHECKS=true
Review URL: https://codereview.webrtc.org/1911403002 .
Cr-Commit-Position: refs/heads/master@{#12474}
- name(): Returns the name of the thread (useful for debugging).
- GetThreadRef(): Returns the ID of the worker thread (also useful for debugging).
- QueueApc(): This is a Windows-only, protected function that allows derived classes on Windows to queue APCs to the worker thread.
NOTRY=true
(using notry since the patch has already passed the trybots and the cq is currently stalled)
Review URL: https://codereview.webrtc.org/1908373002
Cr-Commit-Position: refs/heads/master@{#12472}
Split WebRtcVideoSendStream::OnFrame, to invoke encoder on the worker thread.
BUG=webrtc:5546
Review URL: https://codereview.webrtc.org/1875713002
Cr-Commit-Position: refs/heads/master@{#12471}
This is done by changing the RateStatistics so that it resets its window when the accumulator is empty. It also keeps a dynamic window, so that the rates computed before a full window worth of data has been received will be computed over a smaller window. This means that the rate will be closer to the true rate, but with a higher variance.
BUG=webrtc:5773
R=perkj@webrtc.org, sprang@webrtc.org
Review URL: https://codereview.webrtc.org/1908893003 .
Cr-Commit-Position: refs/heads/master@{#12470}
They can all benefit from moving, since they contain std::string and
std::vector. We intended to add these in
https://codereview.webrtc.org/1896953004/, but got compiler errors we
couldn't make sense of, so we skipped them. It turns out that what the
compiler was complaining about was that when we said we'd have a
user-defined move constructor, it stopped generating a copy assignment
operator for us. This CL solves the problem by outfitting the types
with defaulted copy and move assignment operators too.
Review URL: https://codereview.webrtc.org/1899173002
Cr-Commit-Position: refs/heads/master@{#12469}
Reason for revert:
Breaks downstream for SRTP include paths. Will rework this and reland without that one.
Original issue's description:
> Remove the rtc_relative_path GYP variable and similar defines
>
> The defines that can be used to alter the include paths for Expat, SRTP
> and gtest are no longer needed in WebRTC or Chromium. Let's remove them
> to simplify the GYP a little.
>
> Removed defines:
> EXPAT_RELATIVE_PATH
> GTEST_RELATIVE_PATH
> SRTP_RELATIVE_PATH
>
> They're all set in the Chromium build so this shouldn't affect Chromium:
> https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libjingle/libjingle.gyp
>
> BUG=webrtc:4256
> NOTRY=True
> NOPRESUBMIT=True
>
> Committed: https://crrev.com/e19cf59eb6ee44fd4d7e7fbcfdd1a6ea75063605
> Cr-Commit-Position: refs/heads/master@{#12467}
TBR=pthatcher@webrtc.org,perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4256
Review URL: https://codereview.webrtc.org/1913043003
Cr-Commit-Position: refs/heads/master@{#12468}
The defines that can be used to alter the include paths for Expat, SRTP
and gtest are no longer needed in WebRTC or Chromium. Let's remove them
to simplify the GYP a little.
Removed defines:
EXPAT_RELATIVE_PATH
GTEST_RELATIVE_PATH
SRTP_RELATIVE_PATH
They're all set in the Chromium build so this shouldn't affect Chromium:
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libjingle/libjingle.gyp
BUG=webrtc:4256
NOTRY=True
NOPRESUBMIT=True
Review URL: https://codereview.webrtc.org/1903553003
Cr-Commit-Position: refs/heads/master@{#12467}
They should match the parameters used in the FullStack quality tests, so
that it is easier to visualize what we are actually testing.
BUG=
Review URL: https://codereview.webrtc.org/1871543002
Cr-Commit-Position: refs/heads/master@{#12466}
This is needed for an upcoming task queue implementation.
The location of this folder was recently moved under base/ in Chromium, so I'm wondering if that's really the best way to do this for WebRTC as well.
NOTRY=True
Review URL: https://codereview.webrtc.org/1909223004
Cr-Commit-Position: refs/heads/master@{#12465}