webrtc::VideoRenderer class, replacing it by rtc::VideoSinkInterface.
The next step is to convert all places where a renderer is attached to
rtc::VideoSourceInterface, and at that point, the
SmoothsRenderedFrames method can be replaced by a flag
rtc::VideoSinkWants::smoothed_frames.
Delete unused method IsTextureSupported.
Delete unused time argument to RenderFrame.
Let webrtc::VideoRenderer inherit rtc::VideoSinkInterface. Rename RenderFrame --> OnFrame.
TBR=kjellander@webrtc.org
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1814763002
Cr-Commit-Position: refs/heads/master@{#12070}
It was possible that even after a VideoSendStream was destroyed,
it remained registered as a BitrateAllocator observer, causing a
segfault later.
Review URL: https://codereview.webrtc.org/1815733002
Cr-Commit-Position: refs/heads/master@{#12067}
This CL removes copy and assign support from Buffer and changes various
parameters from Buffer to CopyOnWriteBuffer so they can be passed along
and copied without actually copying the underlying data.
With this changed some parameters to be "const" and fixed an issue when
creating a CopyOnWriteBuffer with empty data.
BUG=webrtc:5155
Review URL: https://codereview.webrtc.org/1823503002
Cr-Commit-Position: refs/heads/master@{#12062}
This CL also extracts part of the functionality used
in the bitexactness test for the high-pass filter into
a separate file in order to be able to reuse that
functionality in bitexactness tests for the other
submodules in APM (including the bitexactness test for
the noise suppressor).
BUG=wertc:5336
Review URL: https://codereview.webrtc.org/1783203002
Cr-Commit-Position: refs/heads/master@{#12061}
Reason for revert:
I'm really sorry for having to revert this but it seems this hit an unexpected compile error downstream:
webrtc/media/sctp/sctpdataengine.cc: In function 'void cricket::VerboseLogPacket(const void*, size_t, int)':
webrtc/media/sctp/sctpdataengine.cc:172:37: error: invalid conversion from 'const void*' to 'void*' [-fpermissive]
data, length, direction)) != NULL) {
^
In file included from webrtc/media/sctp/sctpdataengine.cc:20:0:
third_party/usrsctp/usrsctplib/usrsctp.h:964:1: error: initializing argument 1 of 'char* usrsctp_dumppacket(void*, size_t, int)' [-fpermissive]
usrsctp_dumppacket(void *, size_t, int);
^
I'm sure you can fix this easily and just re-land this CL, while I'm going to look into how to add this warning at the public bots (on Monday).
Original issue's description:
> Use CopyOnWriteBuffer instead of Buffer to avoid unnecessary copies.
>
> This CL removes copy and assign support from Buffer and changes various
> parameters from Buffer to CopyOnWriteBuffer so they can be passed along
> and copied without actually copying the underlying data.
>
> With this changed some parameters to be "const" and fixed an issue when
> creating a CopyOnWriteBuffer with empty data.
>
> BUG=webrtc:5155
>
> Committed: https://crrev.com/944c39006f1c52aee20919676002dac7a42b1c05
> Cr-Commit-Position: refs/heads/master@{#12058}
TBR=kwiberg@webrtc.org,tkchin@webrtc.org,tommi@webrtc.org,pthatcher@webrtc.org,jbauch@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5155
Review URL: https://codereview.webrtc.org/1817753003
Cr-Commit-Position: refs/heads/master@{#12060}
The other buffer classes as well as all other dependencies are in rtc_base_approved, so I think this is a better place for it. Additionally I found that code in Chromium that already depends on the other buffer classes but now depends on the CopyOnWriteBuffer class, needed to have their build files updated and they previously depended on the buffer classes in rtc_base_approved.
TBR=jbauch@webrtc.org
Review URL: https://codereview.webrtc.org/1820643002
Cr-Commit-Position: refs/heads/master@{#12059}
This CL removes copy and assign support from Buffer and changes various
parameters from Buffer to CopyOnWriteBuffer so they can be passed along
and copied without actually copying the underlying data.
With this changed some parameters to be "const" and fixed an issue when
creating a CopyOnWriteBuffer with empty data.
BUG=webrtc:5155
Review URL: https://codereview.webrtc.org/1785713005
Cr-Commit-Position: refs/heads/master@{#12058}
The fundamental issue is that RTCP packet timestamps were accidentally
being fed into wrap_handler_, causing it to think the 32-bit timestamp
had wrapped around when it actually hadn't.
Was also using a 32-bit timestamp instead of a 64-bit timestamp in one
place, meaning that if wrapping actually DID occur, the test would still
fail due to a 64-bit value being cast to a 32-bit value.
BUG=webrtc:5668
R=pbos@webrtc.org, sprang@webrtc.org
Review URL: https://codereview.webrtc.org/1814023003 .
Cr-Commit-Position: refs/heads/master@{#12055}
No operator== that accepts one unique_ptr<T> and one T*. No implicit
conversion to bool. No rtc_make_scoped_ptr function.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1803833002
Cr-Commit-Position: refs/heads/master@{#12048}
WebRtcIsacfix_PitchFilterCore requires indW32 >= PITCH_FRACORDER - 2;
otherwise, it will read from entries of ubufQQ that haven't been
written yet. (The problem of indW32 being too small has only been seen
in fuzzer tests, not in real life.)
BUG=chromium:581901
Review URL: https://codereview.webrtc.org/1811453002
Cr-Commit-Position: refs/heads/master@{#12047}
Now that DeviceManager and DeviceInfo are gone, this code is unused.
BUG=webrtc:5579
Review URL: https://codereview.webrtc.org/1715043002
Cr-Commit-Position: refs/heads/master@{#12040}
This will help test or debug the continual gathering policy.
BUG=
Review URL: https://codereview.webrtc.org/1812593002
Cr-Commit-Position: refs/heads/master@{#12038}
Except in places where this would break out-of-tree code,
such as Chromium.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1785173002
Cr-Commit-Position: refs/heads/master@{#12037}
It appears that the adapt_frame_drops, effects_frame_drops, and capturer_frame_time statistics are never used. They are collected by cricket::VideoCapturer, and copied into VideoSenderInfo by the VideoMediaChannel::GetStats method.
So delete the code to generate the statistics, and the VariableInfo template which had no other uses.
BUG=webrtc:5426
R=pbos@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1804133003 .
Cr-Commit-Position: refs/heads/master@{#12032}
SurfaceTextureHelper.startListening() is asynchronous and posts a Runnable to the handler thread. If stopListening() is called before that Runnable is executed, the Runnable will set the listener after stopListening() has been called. Then the next call to startListening() will fail with "SurfaceTextureHelper listener has already been set."
This CL adds a test to reproduce this bug, and a fix.
BUG=5519,b/27677772
Review URL: https://codereview.webrtc.org/1806013003
Cr-Commit-Position: refs/heads/master@{#12030}
It would be good to have a dedicated DebugDumpReplayer. There is one but it hides itself in DebugDumpTest.
This CL is to separate it out.
BUG=
Review URL: https://codereview.webrtc.org/1810463002
Cr-Commit-Position: refs/heads/master@{#12029}
This remove the use of VideoTrackRenderers within VideoTrack and instead all its sinks are passed to VideoSource.
That means that the source will handle all sinks and can (if the source implement it) handle different SinkWants for each sink.
The VideoBroadcaster is updated to produce black frames instead of as is today the deprecated VideoTrackRenderers.
BUG=webrtc:5426
R=nisse@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1779063003 .
Cr-Commit-Position: refs/heads/master@{#12028}
Changed the channel unittest to use locking when reading/writing the
result variable. To do this, I had to move the result into the thread
object, which in turn required me to properly handle the lifetime of the
thread object, since it cannot disappear while we want to read the
result.
It is still possible to have the result being written to a local
variable, but it will only be updated as the thread object is
destroyed. It is used to for the implementation of
CallOnThreadAndWaitForDone. The old CallOnThread is gone and replaced by
ScopedCallThread instead.
BUG=webrtc:5524
Review URL: https://codereview.webrtc.org/1736763006
Cr-Commit-Position: refs/heads/master@{#12027}
This change allows the application to limit the bitrate of the outgoing
audio and video streams at runtime. The API roughly follows the WebRTC
API draft, defining the RTCRtpParameters structure witn exactly one
encoding (simulcast streams are not exposed in the API for now).
(https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters)
BUG=
Review URL: https://codereview.webrtc.org/1788583004
Cr-Commit-Position: refs/heads/master@{#12025}
A handful of helpers were using SessionDescriptionInterface** output
arguments to return ownership. Chenge them to either use a
rtc::scoped_ptr<SessionDescriptionInterface>* output parameter, or to
simply return a rtc::scoped_ptr<SessionDescriptionInterface>. Not
using raw pointers for things you own is good in general; it will also
be very convenient when scoped_ptr is gone, since unique_ptr doesn't
have .accept() or .use() methods.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1798173002
Cr-Commit-Position: refs/heads/master@{#12021}
Also changed from unsigned to signed integer per the style guide.
By the way, I kept all delta-times to be 32-bit int.
The only things left in the p2p dir are
1. proberprober/main.cc where Time() is used as the input for a random number.
2. pseudotcp.cc: where 32-bit time info is sent over the wire.
BUG=webrtc:5636
Review URL: https://codereview.webrtc.org/1793553002
Cr-Commit-Position: refs/heads/master@{#12019}
Reason for revert:
Caused unexpected perf stats changes, see http://crbug/594575.
Original issue's description:
> VCMCodecTimer: Change filter from max to 95th percentile
>
> The purpose with this change is to make the filter more robust against anomalies. googMaxDecodeMs is expected to drop a litte by this.
>
> BUG=b/27306053
>
> Committed: https://crrev.com/4bf0c717740d1834e810ea5f32b3c4306c64235f
> Cr-Commit-Position: refs/heads/master@{#11952}
TBR=stefan@webrtc.org,philipel@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=594575,b/27306053
Review URL: https://codereview.webrtc.org/1808693002
Cr-Commit-Position: refs/heads/master@{#12018}
Reason for revert:
Revert because it breaks downstream code.
Original issue's description:
> Clean away use of RtpAudioFeedback interface from RTP/RTCP receiver code.
>
> BUG=webrtc:4690
>
> Committed: https://crrev.com/69a81999ace08e40e2b2ec526b0e111aa11b9538
> Cr-Commit-Position: refs/heads/master@{#12015}
TBR=henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4690
Review URL: https://codereview.webrtc.org/1812453002
Cr-Commit-Position: refs/heads/master@{#12016}