"WebRTC.Video.AVSyncOffsetInMs"
The absolute value of the sync offset between a rendered video frame and the latest played audio frame is measured per video frame. The average offset per received video stream is recorded when a stream is removed.
Updated sync tests in call_perf_tests.cc to use this implementation.
BUG=webrtc:5493
Review URL: https://codereview.webrtc.org/1756193005
Cr-Commit-Position: refs/heads/master@{#11993}
Testing the nack module by implementing it into the current jitter buffer
under the experiment WebRTC-NewVideoJitterBuffer.
BUG=webrtc:5514
Review URL: https://codereview.webrtc.org/1778503002
Cr-Commit-Position: refs/heads/master@{#11969}
Previous logged delay was: network delay (rtt/2) + jitter delay + decode time + render delay.
Make capture time in local timebase available for decoded VP9 video frames (propagate ntp_time_ms from EncodedImage to decoded VideoFrame).
BUG=
Review URL: https://codereview.webrtc.org/1688143003
Cr-Commit-Position: refs/heads/master@{#11901}
Makes VideoCaptureInput easier to test and enables running more things
outside VideoCaptureInput on the encoder thread in the future
(initializing encoders and reconfiguring them, for instance).
BUG=webrtc:5410, webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1763693002 .
Cr-Commit-Position: refs/heads/master@{#11860}
Removes per-extension functions in ViEChannel/ViEReceiver and instead
register extensions directly on the RTP module by mapping extension
string to RTP-header-extension type.
BUG=webrtc:5494
R=danilchap@webrtc.org, stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1740133002 .
Cr-Commit-Position: refs/heads/master@{#11786}
This allows other projects to more easily depend on this.
The plan is to move remote_bitrate_estimator and bitrate_controller into this module and reduce the exposed interface to only a simplified version of congestion_controller.h.
No functional changes in this CL.
R=mflodman@webrtc.org, pbos@webrtc.org
Review URL: https://codereview.webrtc.org/1718473002 .
Cr-Commit-Position: refs/heads/master@{#11718}
Moves RtpRtcp module pointers into VideoSendStream and uses them for
simple calls that were only forwarded by ViEChannel.
BUG=webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1693553002 .
Cr-Commit-Position: refs/heads/master@{#11709}
Remove hops into ViEChannel for calls directly into RtpRtcp and
ViEReceiver from VideoReceiveStream.
Some calls are more complex and will be removed later.
BUG=webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1671893002 .
Cr-Commit-Position: refs/heads/master@{#11526}
Removes scoped_ptrs and resets, preventing some heap allocation but also
overall showing that these objects won't be reconstructed on the fly.
BUG=webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1670123002 .
Cr-Commit-Position: refs/heads/master@{#11503}
Extracts shared members outside the two objects, removing PayloadRouter
from receivers and the VCM for ViEChannel from senders.
Removes Start/StopThreadsAndSetSharedMembers that was used to set the
shared state between them.
Also adding DCHECKs to document what's only used by the
sender/receiver side.
BUG=webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1654913002 .
Cr-Commit-Position: refs/heads/master@{#11500}
The purpose is so that a decoder (Android) that only have a limited number of output buffers can make sure that decoding is done just before the frame is needed.
Removed unused iSupportsRenderTiming and the settings structs since it was not used.
Added VCMReceiver::FrameForDecoding unit test for the case when PreferDecodeLate is set.
Note that this does not change the current behaviour. We actually currently always decode frames late. This cl is to make sure the behaviour is kept for Android, if the default behaviour is changed.
Review URL: https://codereview.webrtc.org/1428293003
Cr-Commit-Position: refs/heads/master@{#10974}
Also doing some simplifications inside video_coding. No CHECKs added,
since they appear to have introduced breakages in downstream tests.
Overall reducing the number of potential ways a decoder could possibly
be set null. Removing deregistration of external decoders should also
give a quicker shutdown time since that may attempt to register
internal decoders.
BUG=chromium:563299
TBR=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1483423002 .
Cr-Commit-Position: refs/heads/master@{#10858}
Multiple decoders were used for the same payload type in this test case,
causing CHECK failures when configuring.
BUG=webrtc:5249
TBR=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1484443003 .
Cr-Commit-Position: refs/heads/master@{#10825}
Also adds a RTC_CHECK in VideoReceiveStream that verifies that decoders
aren't null, since this will attempt to deregister a codec which would
previously fail with an obscure stack trace not indicating what actually
was wrong.
BUG=webrtc:5249
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1479793002 .
Cr-Commit-Position: refs/heads/master@{#10821}
This is part of the project that makes RTC rendering more
smooth. We've already finished the developement of the
frame selection algorithm in WebMediaPlayerMS, where we
managed a frame pool, and based on the vsync interval, we
actively select the best frame to render in order to
maximize the rendering smoothness.
Thus the frame timeline control in IncomingVideoStream is
no longer needed, because with sophisticated frame
selection algorithm in WebMediaPlayerMS, the time control
in IncomingVideoStream will do nothing but add some extra
delay.
BUG=514873
Review URL: https://codereview.webrtc.org/1419673014
Cr-Commit-Position: refs/heads/master@{#10781}
I have another CL moving REMB from CongestonController to Call, then
I'll remove CongestoinController from this class too.
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1442003002 .
Cr-Commit-Position: refs/heads/master@{#10632}
This is a step on the way to have variable bitrate for audio and is
intended to be as much of a no-op as possible.
BUG=webrtc:5079
Review URL: https://codereview.webrtc.org/1441673002
Cr-Commit-Position: refs/heads/master@{#10630}
This CL changes as little as possible and I'll follow up later with
ownership of the other members in ChannelGroup.
The next step is to remove the id used for channels.
BUG=webrtc:5079
Review URL: https://codereview.webrtc.org/1411723002
Cr-Commit-Position: refs/heads/master@{#10318}
Also updated the RTPPayloadRegistry::RestoreOriginalPacket signature to not take the first arg as a **, since it isn't modified.
Review URL: https://codereview.webrtc.org/1394573004
Cr-Commit-Position: refs/heads/master@{#10276}
Since the pacer is always enabled, removing enable/disable which makes
all packet queueing succeed. Also renaming one of the ::SendPackets
::InsertPacket to avoid confusion.
BUG=webrtc:1695, webrtc:2629
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1392513002 .
Cr-Commit-Position: refs/heads/master@{#10211}
Starts by removing channel/engine id from ViEChannel which propagates
down to the RTP/RTCP module as well as the transport class.
IncomingVideoStream::RenderFrame() is untouched for now but receives a
fake id instead of the previous channel id. Added a TODO to remove it
later but the RenderFrame call is implemented in a lot of
platform-dependent files and should probably remove the "manager" aspect
of renderers, so preferring to do it separately
BUG=webrtc:1695
R=henrika@webrtc.org, mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1335353005 .
Cr-Commit-Position: refs/heads/master@{#9978}
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.
Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.
BUG=chromium:468375
NOTRY=true
Review URL: https://codereview.webrtc.org/1335923002
Cr-Commit-Position: refs/heads/master@{#9964}
Updating full stack test to optionally save metadata for each frame and save it
to a file with given filename (controlled from the new full_stack_samples
executable).
Adding a Python script that reads the output generated by full stack test
and plots the graph(s).
Review URL: https://codereview.webrtc.org/1289933003
Cr-Commit-Position: refs/heads/master@{#9874}
Also refactor packet router to use a map rather than iterate over all
rtp modules for each packet sent.
BUG=webrtc:4311
Review URL: https://codereview.webrtc.org/1247293002
Cr-Commit-Position: refs/heads/master@{#9670}