Reason for revert:
Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?
Original issue's description:
> Request keyframes more frequently on stream start/decoding error.
>
> In this CL:
> - Added FrameObject::is_keyframe() convinience function.
> - Moved logic to request keyframes on decoding error from VideoReceived to
> VideoReceiveStream.
> - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
>
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2993793002
> Cr-Commit-Position: refs/heads/master@{#19280}
> Committed: 26b4804358TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,philipel@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:8074
Review-Url: https://codereview.webrtc.org/2994043002
Cr-Commit-Position: refs/heads/master@{#19295}
When compiling webrtc's call.cc with VC++ 2017 (is_clang = false) the
following compile error occurs:
sequence_number_util.h(90): error C2672: 'rtc::SafeLt': no matching
overloaded function found
note: see reference to class template instantiation
'webrtc::SeqNumUnwrapper<T,M>' being compiled
This error is not associated with any particular instantiation of
SeqNumUnwrapper (there isn't one) and this undefined nature of 'T' seems
to be what confuses the compiler. When it tries to locate SafeLt for an
undefined type 'T' it gets confused.
SafeLt is unnecessary in this context and changing it to use the '<'
operator directly avoids the problem.
The bug has been reported to Microsoft.
BUG=chromium:753488
Review-Url: https://codereview.webrtc.org/2997623002
Cr-Commit-Position: refs/heads/master@{#19292}
This has been a frequent source of confusion, especially since the
method names don't match anything in the standard exactly.
BUG=None
NOTRY=True
Review-Url: https://codereview.webrtc.org/2994733002
Cr-Commit-Position: refs/heads/master@{#19290}
The limit is based on the bandwidth delay product, but also adds some additional slack to compensate for the sawtooth-like BWE pattern and the slowness of the encoder rate control. The delay is estimated based on the time from sending a packet until an ack is received. Since acks are received in bursts (feedback is only sent periodically), a min filter is used to estimate the rtt.
Whenever the in flight bytes reaches the congestion window, the pacer is paused, which in turn will result in send-side queues growing. Eventually the encoders will be paused as the pacer queue grows large (currently 2 seconds).
BUG=webrtc:7926
Review-Url: https://codereview.webrtc.org/2918323002
Cr-Commit-Position: refs/heads/master@{#19289}
[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}
In this CL:
- Added FrameObject::is_keyframe() convinience function.
- Moved logic to request keyframes on decoding error from VideoReceived to
VideoReceiveStream.
- Added keyframe_required as a parameter to FrameBuffer::NextFrame.
BUG=webrtc:8074
Review-Url: https://codereview.webrtc.org/2993793002
Cr-Commit-Position: refs/heads/master@{#19280}
The AsyncInvoker destructor waits for all invoked tasks to be complete
(in other words, all AsyncClosures to be destructed). They were using an
event to wake up the destructor, but a race made it possible for this
event to be dereferenced after it's destroyed.
This CL makes the event reference counted, such that if the destructor
runs right after AsyncClosure decrements "pending_invocations_",
setting the event will be a no-op, and the event will be destructed
in the AsyncClosure destructor.
This CL also fixes a deadlock that may occur for "re-entrant"
invocations. The deadlock occurs if the AsyncInvoker is destroyed on
thread A while a task on thread B is running, which AsyncInvokes a task
back on thread A.
This was causing pending_invocations_ to end up negative, because
an AsyncClosure that's never added to a thread's message queue (due to
the "destroying_" flag) caused the count to be decremented but not
incremented.
BUG=webrtc:7656
Review-Url: https://codereview.webrtc.org/2885143005
Cr-Commit-Position: refs/heads/master@{#19278}
The existing unity plugin (an example in webrtc codebase) does not support camera access on Android platform. This CL implements such functionality.
TBR=gyzhou@chromium.org
BUG=webrtc:8067
Review-Url: https://codereview.webrtc.org/2993273002
Cr-Commit-Position: refs/heads/master@{#19277}
During window capture on Windows 10, if the selected window is minimized,
ShouldUseScreenCapturer() still thinks it's on top and continue to do a
screencapture which is meaningless.
This cl will set |.is_top_window| with false to minimized window,then we
can skip doing any capture to it.
BUG=chromium:568835
Review-Url: https://codereview.webrtc.org/2997493002
Cr-Commit-Position: refs/heads/master@{#19276}
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}
A crash has been randomly detected across different versions. The NSImage
crashes the binary in its lockFocusFlipped() function. The suspicious issue is
that NSCursor::image() returns an invalid NSImage.
BUG=chromium:752036
Review-Url: https://codereview.webrtc.org/2993173003
Cr-Commit-Position: refs/heads/master@{#19273}
Earlier the pid/tl0 was incorrectly reinitialized upon encoder reconfiguration,
and this fix was implemented to mitigate that. This fix can however guess wrong
and cause a valid stream to be interupted.
BUG=webrtc:7920
Review-Url: https://codereview.webrtc.org/2969043002
Cr-Commit-Position: refs/heads/master@{#19268}
Use defaults if the header extension map is missing from the config.
BUG=webrtc:6399
Review-Url: https://codereview.webrtc.org/2983283002
Cr-Commit-Position: refs/heads/master@{#19267}
WindowUnderPoint() is a platform independent function to return the id of the
first window in z-order under a certain DesktopVector. It equals to
GetAncestor(WindowFromPoint(point), GA_ROOT)
on Windows.
This CL includes the change to Windows / Mac OSX only to control the size in a
reasonable range. Implementation for Linux will be added in a coming change.
Bug: webrtc:7950
Change-Id: I57e423294fc8aeaa12d05cb626a1912240b2d4d0
Reviewed-on: https://chromium-review.googlesource.com/595022
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19263}
Reason for revert:
linux_internal buildbucket is broken
Original issue's description:
> Revert of Remove linux_internal from the autoroller CQ. (patchset #1 id:1 of https://codereview.webrtc.org/2985933002/ )
>
> Reason for revert:
> linux_internal now checks that the CL is authored by a googler before executing the tests
>
> Original issue's description:
> > Remove linux_internal from the autoroller CQ.
> >
> > The CQ no longer has permission to schedule builds in linux_internal.
> >
> > NOTRY=True
> > TBR=kjellander@webrtc.org
> > BUG=None
> >
> > Review-Url: https://codereview.webrtc.org/2985933002
> > Cr-Commit-Position: refs/heads/master@{#19178}
> > Committed: 5ba9730265
>
> TBR=mbonadei@webrtc.org,kjellander@webrtc.org,nodir@chromium.org
> BUG=None
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2990233002
> Cr-Commit-Position: refs/heads/master@{#19240}
> Committed: 367aaa7ca5TBR=mbonadei@webrtc.org,kjellander@webrtc.org,nodir@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=None
Review-Url: https://codereview.webrtc.org/2997523002
Cr-Commit-Position: refs/heads/master@{#19260}
deadbeef@'s team in Kirkland works on the C++ PeerConnection
implementation, and often makes changes to the Java/Obj-C binding code
as new features are added. But the general Obj-C/Android owners are in
Stockholm. So adding deadbeef@ as an owner of this code should help
expedite code reviews for simple API changes.
BUG=None
NOTRY=True
Review-Url: https://codereview.webrtc.org/2998443002
Cr-Commit-Position: refs/heads/master@{#19259}
It serves a very limited purpose: converting from the input YUV
file to an output Y4M file. The experimenter can do this manually,
if this is of interest. (It is generally not.)
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2993063002
Cr-Commit-Position: refs/heads/master@{#19257}
The current ObjC HW encoder is implemented as a C++
webrtc::VideoEncoder. We then wrap it two times in the following way:
webrtc::VideoEncoder -> RTCVideoEncoder -> webrtc::VideoEncoder.
This was originally done to minimize the code diff when landing the
injectable encoder.
This CL removes the first wrapping and implements the ObjC HW encoder
as a RTCVideoEncoder directly. Similarly, the decoder is implemented
as a RTCVideoDecoder directly.
Based on andersc@ CL: https://codereview.webrtc.org/2978623002/.
BUG=webrtc:7924
Review-Url: https://codereview.webrtc.org/2987413002
Cr-Commit-Position: refs/heads/master@{#19255}
- Make all overridden methods of VideoProcessorImpl public,
in preparation of the removal of the VideoProcessor interface.
- Place corresponding method definitions in correct order
in .cc file.
- Harmonize the stdout printing.
- Make timestamp calculations adhere to set frame rate.
Except for the last bullet, these changes should not lead to
different functionality.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2995513002
Cr-Commit-Position: refs/heads/master@{#19254}
For ICE, we want sockets that are bound to specific network interfaces,
rather than to specific IP addresses. So, a while ago, we added a
"Network" class that gets passed into the Port constructor, in
addition to the IP address as before.
But we never finished the job of removing the IP address field, such that
a Port only guarantees something about the network interface it's
associated with, and not the specific IP address it ends up with.
This CL does that, and as a consequence, if a port ends up bound to
an IP address other than the "best" one (returned by Network::GetBestIP),
this *won't* be treated as an error.
This is relevant to Android, where even though we pass an IP address
into "Bind" as a way of identifying the network, the socket actually
gets bound using "android_setsocknetwork", which doesn't provide any
guarantees about the IP address. So, if a network interface has multiple
IPv6 addresses (for instance), we may not correctly predict the one
the OS will choose, and that's ok.
This CL also moves "SetAlternateLocalAddress" from VirtualSocket to
VirtualSocketServer, which makes for much more readable test code.
The next step, if there is one, is to pass along the Network class all
the way to SocketServer::Bind. Then the socket server could do smart
things with the network information. We could even stick a platform-
specific network handle in the Network object, such that the socket
server could use it for the binding, or for "sendmsg", for example.
See bug 7026 for more context about the sendmsg idea.
BUG=webrtc:7715
Review-Url: https://codereview.webrtc.org/2989303002
Cr-Commit-Position: refs/heads/master@{#19251}
This will prevent one extra initialization of the encoder each time
it's recreated.
BUG=None
Review-Url: https://codereview.webrtc.org/2992233002
Cr-Commit-Position: refs/heads/master@{#19250}
Reason for revert:
Revert to create fix CL.
Original issue's description:
> Revert of Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame. (patchset #5 id:80001 of https://codereview.chromium.org/2993513002/ )
>
> Reason for revert:
> Break performance bots.
>
> Original issue's description:
> > Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame.
> >
> > BUG=webrtc:8028
> >
> > Review-Url: https://codereview.webrtc.org/2993513002
> > Cr-Commit-Position: refs/heads/master@{#19209}
> > Committed: ee13e8919c
>
> TBR=stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:8028
>
> Review-Url: https://codereview.webrtc.org/2990183002
> Cr-Commit-Position: refs/heads/master@{#19211}
> Committed: c18f1d7c94TBR=stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8028
TBR=stefan@webrtc.org
Review-Url: https://codereview.webrtc.org/2989313003
Cr-Commit-Position: refs/heads/master@{#19249}
Reason for revert:
Relanding
Original issue's description:
> Revert of SSRC and RSID may only refer to one sink each in RtpDemuxer (patchset #15 id:280001 of https://codereview.webrtc.org/2968693002/ )
>
> Reason for revert:
> Some internal tests keep failing after this change. Try to fix it by reverting it. Will reland it if this isn't the root cause.
>
> Original issue's description:
> > SSRC and RSID may only refer to one sink each in RtpDemuxer
> >
> > RTP demuxing should only match RTP packets with one sink.
> >
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/2968693002
> > Cr-Commit-Position: refs/heads/master@{#19233}
> > Committed: 7b7e06fd23
>
> TBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,eladalon@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/2993633002
> Cr-Commit-Position: refs/heads/master@{#19239}
> Committed: 59b603fbedTBR=nisse@webrtc.org,danilchap@webrtc.org,perkj@webrtc.org,stefan@webrtc.org,holmer@google.com,deadbeef@webrtc.org,pthatcher@webrtc.org,steveanton@webrtc.org,zhihuang@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/2993053002
Cr-Commit-Position: refs/heads/master@{#19248}