Commit Graph

11283 Commits

Author SHA1 Message Date
f184138a5f s/WebRtcVideoChannel2/WebRtcVideoChannel and s/WebRtcVideoEngine2/WebRtcVideoEngine
WebRtcVideoChannel and and WebRtcVideoEngine seem to have been removed, and only WebRtcVideoChannel2 and WebRtcVideoEngine2 remain, which removes the need for the "2" postfix.

BUG=None

Review-Url: https://codereview.webrtc.org/2932073002
Cr-Commit-Position: refs/heads/master@{#18531}
2017-06-12 08:16:46 +00:00
a8e781aedf Make rtc_event_log2text output header extensions
BUG=webrtc:none

Review-Url: https://codereview.webrtc.org/2918103002
Cr-Commit-Position: refs/heads/master@{#18530}
2017-06-12 08:02:46 +00:00
3fae628094 Reland Refactored incoming bitrate estimator.
BUG=webrtc:7746

Review-Url: https://codereview.webrtc.org/2928913002
Cr-Commit-Position: refs/heads/master@{#18529}
2017-06-12 06:57:17 +00:00
90e31904c6 Update webrtc/test to new VideoFrameBuffer interface
This is a follow-up cleanup for CL
https://codereview.webrtc.org/2847383002/.

TBR=stefan@webrtc.org

Bug: webrtc:7632
Change-Id: I8275e8edbd22b557cdb251f342847f4e8306299c
Reviewed-on: https://chromium-review.googlesource.com/524084
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18528}
2017-06-11 16:10:16 +00:00
72dbe2a211 Revert "Revert "Update video_coding/codecs to new VideoFrameBuffer interface""
This reverts commit 88f94fa36aa61f7904d30251205c544ada2c4301.

Chromium code has been updated.

Original change's description:
> Revert "Update video_coding/codecs to new VideoFrameBuffer interface"
> 
> This reverts commit 20ebf4ede803cd4f628ef9378700f60b72f2eab0.
> 
> Reason for revert:
> 
> Suspect of breaking FYI bots.
> See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9036 and others.
> 
> Sample logs:
> Backtrace:
> [5024:1036:0607/173649.857:FATAL:webrtc_video_frame_adapter.cc(98)] Check failed: false. 
> Backtrace:
> 	base::debug::StackTrace::StackTrace [0x02D04A37+55]
> 	base::debug::StackTrace::StackTrace [0x02CCBB8A+10]
> 	content::WebRtcVideoFrameAdapter::NativeToI420Buffer [0x0508AD71+305]
> 	webrtc::VideoFrameBuffer::ToI420 [0x0230BF67+39]
> 	webrtc::H264EncoderImpl::Encode [0x057E8D0B+267]
> 	webrtc::VCMGenericEncoder::Encode [0x057E0E34+333]
> 	webrtc::vcm::VideoSender::AddVideoFrame [0x057DED9B+796]
> 	webrtc::ViEEncoder::EncodeVideoFrame [0x057C00F6+884]
> 	webrtc::ViEEncoder::EncodeTask::Run [0x057C12D7+215]
> 	rtc::TaskQueue::PostTask [0x03EE5CFB+194]
> 	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDCAA5+31]
> 	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDEE86+22]
> 	base::debug::TaskAnnotator::RunTask [0x02D08289+409]
> 	base::MessageLoop::RunTask [0x02C8CEC1+1233]
> 	base::MessageLoop::DoWork [0x02C8C1AD+765]
> 	base::MessagePumpDefault::Run [0x02D0A20B+219]
> 	base::MessageLoop::Run [0x02C8C9DB+107]
> 	base::RunLoop::Run [0x02C89583+147]
> 	base::Thread::Run [0x02CBEFCD+173]
> 	base::Thread::ThreadMain [0x02CBFADE+622]
> 	base::PlatformThread::Sleep [0x02C9E1A2+290]
> 	BaseThreadInitThunk [0x75C3338A+18]
> 	RtlInitializeExceptionChain [0x773A9902+99]
> 	RtlInitializeExceptionChain [0x773A98D5+54]
> 
> Original change's description:
> > Update video_coding/codecs to new VideoFrameBuffer interface
> > 
> > This is a follow-up cleanup for CL
> > https://codereview.webrtc.org/2847383002/.
> > 
> > Bug: webrtc:7632
> > Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
> > Reviewed-on: https://chromium-review.googlesource.com/524163
> > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18477}
> 
> TBR=magjed@webrtc.org,nisse@webrtc.org,brandtr@webrtc.org
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7632
> 
> Change-Id: I3b73fc7d16ff19ceba196e964dcb36a36510912c
> Reviewed-on: https://chromium-review.googlesource.com/527793
> Reviewed-by: Guido Urdaneta <guidou@chromium.org>
> Commit-Queue: Guido Urdaneta <guidou@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#18489}

TBR=tterriberry@mozilla.com,mflodman@webrtc.org,magjed@webrtc.org,stefan@webrtc.org,guidou@chromium.org,nisse@webrtc.org,brandtr@webrtc.org,webrtc-reviews@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
No-Presubmit: true
Bug: webrtc:7632

Change-Id: I0962a704e8a9939d4364ce9069c863c9951654c9
Reviewed-on: https://chromium-review.googlesource.com/530684
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18527}
2017-06-10 20:12:17 +00:00
c131bf944e Enable webrtc_nonparallel_tests on iOS simulator
After landing https://chromium-review.googlesource.com/528173
only one test needs to be disabled: VirtualSocketServerTest.delay_v4

BUG=webrtc:7727
NOTRY=True
TESTED=gn gen out/x64-Debug --args='target_os="ios" ios_enable_code_signing=false is_component_build=false target_cpu="x64"'
ninja -C out/x64-Debug webrtc_nonparallel_tests
out/x64-Debug/iossim -d "iPhone 6s" -s 10.3 out/x64-Debug/webrtc_nonparallel_tests.app

Review-Url: https://codereview.webrtc.org/2909073002
Cr-Commit-Position: refs/heads/master@{#18519}
2017-06-09 19:59:11 +00:00
be767e0f7a Remove default impl of Attach/DetachAecDump.
The default implementations of AudioProcessing::{AttachAecDump,
DetachAecDump} are removed and audio_processing.cc is decoupled from
aec_dump.h. After this CL, the two methods are pure virtual. The
default implementations were added because doing otherwise would break
internal projects.

Bug: webrtc:7404
Change-Id: If94f60aeefe4ad1eefed3744f857692cc645bdf4
Reviewed-on: https://chromium-review.googlesource.com/528132
Commit-Queue: Alex Loiko <aleloi@google.com>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18517}
2017-06-09 17:18:31 +00:00
76d29f9bf8 Fix Channel::GetSendCodec when used together with SetEncoder.
When using the SetEncoder interface, there's no actual CodecInst to return from Channel::GetSendCodec. Before this CL, this was done by calling the ACM, which has functionality for generating a CodecInst with the necessary values even when handed an external encoder. Unfortunately, this call takes a lock and does some extra processing which isn't strictly necessary in this case. Since GetSendCodec is called inside the audio input callback code, this can cause problems.

This CL instead generates a CodecInst in the SetEncoder call and has GetSendCodec simply return that one if it's available. If it isn't the value from codec_manager_ is returned instead, as was the case before injectable audio codec related changes were added to Channel.

BUG=b/38018041

Review-Url: https://codereview.webrtc.org/2924363004
Cr-Commit-Position: refs/heads/master@{#18515}
2017-06-09 14:30:13 +00:00
461c94054a ObjC: Rename VideoToolbox/decoder.cc to VideoToolbox/decoder.mm
This decoder is only used for iOS/Mac and it will simplify to make it
ObjC++ instead of C++, similar to how the encoder is .mm already.

Bug: None
Change-Id: I13f62f018432e9c23e7277eea29258a73e1590e1
Reviewed-on: https://chromium-review.googlesource.com/529084
Reviewed-by: Kári Tristan Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18513}
2017-06-09 13:25:25 +00:00
b4ab381ce3 Use the configured remote ssrc instead of relying on the first received packet RtpStreamReceiver.
This solves an issue where if the first packet happens to be an RTX packet, it is recovered with an incorrect SSRC.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2928123002
Cr-Commit-Position: refs/heads/master@{#18512}
2017-06-09 13:12:11 +00:00
fee994c367 Ensure the openGLContext is current before trying to reshape the viewport
Make sure to call ensureGLContext before calling OpenGL functions

BUG=webrtc:7751

Review-Url: https://codereview.webrtc.org/2916583005
Cr-Commit-Position: refs/heads/master@{#18511}
2017-06-09 12:16:10 +00:00
b1f2ff900e Rename class RtpStreamReceiver --> RtpVideoStreamReceiver.
This class is video-specific, and we want to free the name
"RtpStreamReceiver" so it can be reused for a media-independent RTP
receive class.

Also renames related files.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2926253002
Cr-Commit-Position: refs/heads/master@{#18510}
2017-06-09 11:01:55 +00:00
e2baffb055 Create a UIApplication when running tests on iOS.
Fix issue where running tests on iOS would get killed after a certain
time had passed. This seems to be due to springboard killing apps
that don't have a GUI running. Creating a UIApplication to wrap
the test suite seems to solve this problem in chromium.

This CL adds a class for this purpose. Most of the code was copied
from chromium with bits taken out.

Bug: webrtc:7161, webrtc:7758
Change-Id: I10f9bc8914e73f2870a9b0a2703cde496af8db2f
Reviewed-on: https://chromium-review.googlesource.com/528173
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18509}
2017-06-09 10:24:33 +00:00
6baee78bc9 Add missing #include <cerrno> in string_to_number.cc
One of our toolchains does not expose |errno| in the global namespace.

BUG=none

Review-Url: https://codereview.webrtc.org/2926273002
Cr-Commit-Position: refs/heads/master@{#18506}
2017-06-08 23:38:40 +00:00
46537a3879 Avoiding cascaded software echo cancellers
This CL ensures that it is not possible to run several echo canceller
solutions in cascade inside the audio processing module.

Bug: webrtc:7776
Change-Id: I1777f97aeacb8cdf5c6c3be4bf13eefcde7d69fb
Reviewed-on: https://chromium-review.googlesource.com/527053
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18505}
2017-06-08 22:39:03 +00:00
20e4a73b9b MockAecDump and integration tests between AecDump and AudioProcessing
This CL adds a MockAecDump and integration tests that inject the mock
into AudioProcessingImpl. The tests check the call pattern between
AudioProcessingImpl and AecDump. The existing tests ApmTest.* and
DebugDumpTest.* (not touched by this CL) check that the data written
by AecDumpImpl is valid.

The tests check that the protobuf-writing methods for the different
protobuf message types in audio_processing/debug.proto are indeed
called for the different modes of AudioProcessingImpl operation.

BUG=webrtc:7404

Review-Url: https://codereview.webrtc.org/2888533005
Cr-Commit-Position: refs/heads/master@{#18501}
2017-06-08 15:12:46 +00:00
317005a03b Revert of Periodically update codec bit/frame rate settings. (patchset #2 id:160001 of https://codereview.webrtc.org/2924023002/ )
Reason for revert:
Looks like there's still one failing perf test:
RampUpTest.UpDownUpTransportSequenceNumberPacketLoss

Original issue's description:
> Reland of Periodically update codec bit/frame rate settings. (patchset #1 id:1 of https://codereview.webrtc.org/2923993002/ )
>
> Reason for revert:
> Create reland cl that we can patch with fix.
>
> Original issue's description:
> > Revert of Periodically update codec bit/frame rate settings. (patchset #8 id:140001 of https://codereview.webrtc.org/2883963002/ )
> >
> > Reason for revert:
> > Breaks some Call perf tests that are not run by the try bots....
> >
> > Original issue's description:
> > > Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
> > >
> > > That however exposes a bunch of failed test, so this CL also fixed a few other things:
> > > * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> > > * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> > > * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> > > * Fix test
> > >
> > > BUG=7664
> > >
> > > Review-Url: https://codereview.webrtc.org/2883963002
> > > Cr-Commit-Position: refs/heads/master@{#18473}
> > > Committed: 6431e21da6
> >
> > TBR=stefan@webrtc.org,holmer@google.com
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=7664
> >
> > Review-Url: https://codereview.webrtc.org/2923993002
> > Cr-Commit-Position: refs/heads/master@{#18475}
> > Committed: 5390c4814d
>
> TBR=stefan@webrtc.org,holmer@google.com
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=7664
>
> Review-Url: https://codereview.webrtc.org/2924023002
> Cr-Commit-Position: refs/heads/master@{#18497}
> Committed: cdafeda1cb

TBR=stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=7664

Review-Url: https://codereview.webrtc.org/2926283002
Cr-Commit-Position: refs/heads/master@{#18500}
2017-06-08 14:12:17 +00:00
cf705c5f13 Reland of Protect new header extension by field trial experiment to allow hardcoding it in SDP (patchset #1 id:1 of https://codereview.webrtc.org/2922723002/ )
Reland is done after fixes in downstream projects.

TBR=sprang@webrtc.org,asapersson@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chrome:718738

Review-Url: https://codereview.webrtc.org/2922953002
Cr-Commit-Position: refs/heads/master@{#18498}
2017-06-08 13:18:53 +00:00
cdafeda1cb Reland of Periodically update codec bit/frame rate settings. (patchset #1 id:1 of https://codereview.webrtc.org/2923993002/ )
Reason for revert:
Create reland cl that we can patch with fix.

Original issue's description:
> Revert of Periodically update codec bit/frame rate settings. (patchset #8 id:140001 of https://codereview.webrtc.org/2883963002/ )
>
> Reason for revert:
> Breaks some Call perf tests that are not run by the try bots....
>
> Original issue's description:
> > Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
> >
> > That however exposes a bunch of failed test, so this CL also fixed a few other things:
> > * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> > * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> > * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> > * Fix test
> >
> > BUG=7664
> >
> > Review-Url: https://codereview.webrtc.org/2883963002
> > Cr-Commit-Position: refs/heads/master@{#18473}
> > Committed: 6431e21da6
>
> TBR=stefan@webrtc.org,holmer@google.com
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=7664
>
> Review-Url: https://codereview.webrtc.org/2923993002
> Cr-Commit-Position: refs/heads/master@{#18475}
> Committed: 5390c4814d

TBR=stefan@webrtc.org,holmer@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=7664

Review-Url: https://codereview.webrtc.org/2924023002
Cr-Commit-Position: refs/heads/master@{#18497}
2017-06-08 13:12:05 +00:00
1066b1379d Remove deprecated AudioMixerImpl creation method.
AudioMixerImpl::CreateWithOutputRateCalculator has become
deprecated. Instead, either Create() or Create(OutputRateCalculator,
bool use_limiter) should be used. The first uses sensible default
values for missing arguments. The second takes all arguments. The old
CreateWithOutputRateCalculator is deprecated so that we don't have
different Create:s with all possible combinations of parameters.

Note that the factory methods may change in the future. The reason for
adding 'use_limiter' was that the limiter that was used had
questionable benefit and was very computationally expensive. Now work
is going on to replace it with a much cheaper version. After
the change, the factory method may change again to not allow for
disabling the limiter.

Bug: webrtc:7167
Change-Id: I0f9005e27e726fa552ee38dcbe965274e5006544
Reviewed-on: https://chromium-review.googlesource.com/528074
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18496}
2017-06-08 12:13:18 +00:00
d0244c21cd Add RSID-based demuxing to RtpDemuxer
Make RtpDemuxer able to demux RTP packets according to RSID (RTP Stream ID), as well as the (pre-existing) ability to demux according to SSRC.

BUG=None

Review-Url: https://codereview.webrtc.org/2920993002
Cr-Commit-Position: refs/heads/master@{#18495}
2017-06-08 11:19:13 +00:00
15dcb38e5f Make error resilience configurable through VideoCodecVP9 resilience setting (removes hard coded value in vp9_impl.cc).
Make resilience configurable in video processor integration tests.

BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/2919803002
Cr-Commit-Position: refs/heads/master@{#18493}
2017-06-08 09:55:08 +00:00
04ca637be3 Make 'aleloi@' OWNER of webrtc/modules/audio_processing
This reflects currently active developers of the module.

NOTRY=True

Bug: None
Change-Id: Ibc0810b08db753404fcb94038a4bd857d5585ef9
Reviewed-on: https://chromium-review.googlesource.com/528075
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18492}
2017-06-08 09:36:10 +00:00
75b68b924c Delete webrtc/call.h (replaced with webrtc/call/call.h).
BUG=webrtc:6716

Review-Url: https://codereview.webrtc.org/2916513002
Cr-Commit-Position: refs/heads/master@{#18491}
2017-06-08 09:21:17 +00:00
02ed201182 AcmReceiver: Make a member variable const
This is a minor clean-up made possible by simplifications done in the
past.

Bug: none
Change-Id: Id0ea167572f8da36db5de949441f67a2a18555be
Reviewed-on: https://chromium-review.googlesource.com/528073
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18490}
2017-06-08 09:18:14 +00:00
88f94fa36a Revert "Update video_coding/codecs to new VideoFrameBuffer interface"
This reverts commit 20ebf4ede803cd4f628ef9378700f60b72f2eab0.

Reason for revert:

Suspect of breaking FYI bots.
See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9036 and others.

Sample logs:
Backtrace:
[5024:1036:0607/173649.857:FATAL:webrtc_video_frame_adapter.cc(98)] Check failed: false. 
Backtrace:
	base::debug::StackTrace::StackTrace [0x02D04A37+55]
	base::debug::StackTrace::StackTrace [0x02CCBB8A+10]
	content::WebRtcVideoFrameAdapter::NativeToI420Buffer [0x0508AD71+305]
	webrtc::VideoFrameBuffer::ToI420 [0x0230BF67+39]
	webrtc::H264EncoderImpl::Encode [0x057E8D0B+267]
	webrtc::VCMGenericEncoder::Encode [0x057E0E34+333]
	webrtc::vcm::VideoSender::AddVideoFrame [0x057DED9B+796]
	webrtc::ViEEncoder::EncodeVideoFrame [0x057C00F6+884]
	webrtc::ViEEncoder::EncodeTask::Run [0x057C12D7+215]
	rtc::TaskQueue::PostTask [0x03EE5CFB+194]
	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDCAA5+31]
	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDEE86+22]
	base::debug::TaskAnnotator::RunTask [0x02D08289+409]
	base::MessageLoop::RunTask [0x02C8CEC1+1233]
	base::MessageLoop::DoWork [0x02C8C1AD+765]
	base::MessagePumpDefault::Run [0x02D0A20B+219]
	base::MessageLoop::Run [0x02C8C9DB+107]
	base::RunLoop::Run [0x02C89583+147]
	base::Thread::Run [0x02CBEFCD+173]
	base::Thread::ThreadMain [0x02CBFADE+622]
	base::PlatformThread::Sleep [0x02C9E1A2+290]
	BaseThreadInitThunk [0x75C3338A+18]
	RtlInitializeExceptionChain [0x773A9902+99]
	RtlInitializeExceptionChain [0x773A98D5+54]

Original change's description:
> Update video_coding/codecs to new VideoFrameBuffer interface
> 
> This is a follow-up cleanup for CL
> https://codereview.webrtc.org/2847383002/.
> 
> Bug: webrtc:7632
> Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
> Reviewed-on: https://chromium-review.googlesource.com/524163
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18477}

TBR=magjed@webrtc.org,nisse@webrtc.org,brandtr@webrtc.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7632

Change-Id: I3b73fc7d16ff19ceba196e964dcb36a36510912c
Reviewed-on: https://chromium-review.googlesource.com/527793
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#18489}
2017-06-08 08:33:52 +00:00
e566e175d1 Add new screenshare full stack test with limited queue.
Track perf for a test using 200kbps link, 5% packet loss and queue
length of 30 packets. This currently performs poorly.

BUG=webrtc:7694

Review-Url: https://codereview.webrtc.org/2930703002
Cr-Commit-Position: refs/heads/master@{#18488}
2017-06-08 08:29:15 +00:00
807736ef02 Revert of Refactored incoming bitrate estimator. (patchset #8 id:140001 of https://codereview.webrtc.org/2917873002/ )
Reason for revert:
Breaks Vice tests

Original issue's description:
> Refactored incoming bitrate estimator.
>
> BUG=webrtc:7746
>
> Review-Url: https://codereview.webrtc.org/2917873002
> Cr-Commit-Position: refs/heads/master@{#18478}
> Committed: 5fc8bf8b87

TBR=philipel@webrtc.org,terelius@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7746

Review-Url: https://codereview.webrtc.org/2924243002
Cr-Commit-Position: refs/heads/master@{#18486}
2017-06-08 07:10:31 +00:00
4c72cf43df Revert of Conversational speech tool, simualtor + unit tests (patchset #12 id:220001 of https://codereview.webrtc.org/2790933002/ )
Reason for revert:
Compile Error.

Original issue's description:
> The simulator puts into action the schedule of speech turns encoded in a MultiEndCall instance. The output is a set of audio track pairs. There is one set for each speaker and each set contains one near-end and one far-end audio track. The tracks are directly written into wav files instead of creating them in memory. To speed up the creation of the output wav files, *all* the source audio tracks (i.e., the atomic speech turns) are pre-loaded.
>
> The ConversationalSpeechTest.MultiEndCallSimulator unit test defines a conversational speech sequence and creates two wav files (with pure tones at 440 and 880 Hz) that are used as atomic speech turn tracks.
>
> This CL also patches MultiEndCall in order to allow input audio tracks with same sample rate and single channel only.
>
> BUG=webrtc:7218
>
> Review-Url: https://codereview.webrtc.org/2790933002
> Cr-Commit-Position: refs/heads/master@{#18480}
> Committed: 6b648c4697

TBR=minyue@webrtc.org,alessiob@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2925123003
Cr-Commit-Position: refs/heads/master@{#18481}
2017-06-07 18:59:09 +00:00
6b648c4697 The simulator puts into action the schedule of speech turns encoded in a MultiEndCall instance. The output is a set of audio track pairs. There is one set for each speaker and each set contains one near-end and one far-end audio track. The tracks are directly written into wav files instead of creating them in memory. To speed up the creation of the output wav files, *all* the source audio tracks (i.e., the atomic speech turns) are pre-loaded.
The ConversationalSpeechTest.MultiEndCallSimulator unit test defines a conversational speech sequence and creates two wav files (with pure tones at 440 and 880 Hz) that are used as atomic speech turn tracks.

This CL also patches MultiEndCall in order to allow input audio tracks with same sample rate and single channel only.

BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2790933002
Cr-Commit-Position: refs/heads/master@{#18480}
2017-06-07 18:04:35 +00:00
5fc8bf8b87 Refactored incoming bitrate estimator.
BUG=webrtc:7746

Review-Url: https://codereview.webrtc.org/2917873002
Cr-Commit-Position: refs/heads/master@{#18478}
2017-06-07 16:48:20 +00:00
20ebf4ede8 Update video_coding/codecs to new VideoFrameBuffer interface
This is a follow-up cleanup for CL
https://codereview.webrtc.org/2847383002/.

Bug: webrtc:7632
Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
Reviewed-on: https://chromium-review.googlesource.com/524163
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18477}
2017-06-07 15:58:13 +00:00
9932e255ea ObjC: Marshal all VideoTrackSource methods to the signaling thread
This CL makes sure the real VideoTrackSourceInterface implementation is
destroyed on the signaling thread and marshals all method calls to the
signaling thread. This is done using VideoTrackSourceProxy.

Bug: webrtc:7767
Change-Id: Iba3b67bb32a684ba289bc8b9981585ea58084359
Reviewed-on: https://chromium-review.googlesource.com/526634
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18476}
2017-06-07 14:53:41 +00:00
5390c4814d Revert of Periodically update codec bit/frame rate settings. (patchset #8 id:140001 of https://codereview.webrtc.org/2883963002/ )
Reason for revert:
Breaks some Call perf tests that are not run by the try bots....

Original issue's description:
> Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
>
> That however exposes a bunch of failed test, so this CL also fixed a few other things:
> * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> * Fix test
>
> BUG=7664
>
> Review-Url: https://codereview.webrtc.org/2883963002
> Cr-Commit-Position: refs/heads/master@{#18473}
> Committed: 6431e21da6

TBR=stefan@webrtc.org,holmer@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=7664

Review-Url: https://codereview.webrtc.org/2923993002
Cr-Commit-Position: refs/heads/master@{#18475}
2017-06-07 13:17:49 +00:00
6431e21da6 Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
That however exposes a bunch of failed test, so this CL also fixed a few other things:
* FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
* FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
* Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
* Fix test

BUG=7664

Review-Url: https://codereview.webrtc.org/2883963002
Cr-Commit-Position: refs/heads/master@{#18473}
2017-06-07 11:59:38 +00:00
2038df452c Deleting unused build target.
This build target was used by webrtc/base:webrtc_base which is not a
build target anymore. Instead we have webrtc/base:rtc_base which depends
directly on third_party/boringssl.

BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2926703003
Cr-Commit-Position: refs/heads/master@{#18472}
2017-06-07 11:50:13 +00:00
8b337b6736 Remove outdated warning suppressions.
Bug: webrtc:5478
Change-Id: Ieff41903ec8b4d4b19413d09f9ac1d1afcf1cdc6
Reviewed-on: https://chromium-review.googlesource.com/522645
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18471}
2017-06-07 11:20:02 +00:00
946923a21f Remove webrtc deps from AppRTCMobile.
We want the example app to only link agains the framework. This ensures
that we are actually testing the framework, and that AppRTCMobile
doesn't require any other parts of WebRTC not included in the framework.

Bug: webrtc:7759
Change-Id: Ib04aae0bc3ab2a1a508eaf4a4f15c2d37f521598
Reviewed-on: https://chromium-review.googlesource.com/522722
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18470}
2017-06-07 11:13:48 +00:00
1e15a994ac MediaCodecVideoEncoder: Add QP stats to Encoded callback for VP9 and turn on quality scaling.
Add default QP scaling thresholds for VP9.

BUG=webrtc:7662

Review-Url: https://codereview.webrtc.org/2914363002
Cr-Commit-Position: refs/heads/master@{#18469}
2017-06-07 11:09:45 +00:00
6b9653e63b ObjC: Pass in frame resolution to GL shaders
Frame resolution might be interesting for a shader implementation.

Bug: webrtc:7473
Change-Id: If19278b3babe2e5bab1a1f7562fa8b06ab840517
Reviewed-on: https://chromium-review.googlesource.com/524452
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18466}
2017-06-07 10:05:16 +00:00
f53c4cd867 Delete rtc_event_log/ringbuffer.h
This code is unused since https://codereview.webrtc.org/2875823003/ and the current implementation is too specific to the event log to be useful elsewhere. I think we should get add a reusable cyclic buffer though and I made a rough draft of what it might look like: https://codereview.webrtc.org/2691073002/

BUG=webrtc:7732

Review-Url: https://codereview.webrtc.org/2923163006
Cr-Commit-Position: refs/heads/master@{#18465}
2017-06-07 08:53:30 +00:00
1387476dc6 Compare adapt up/down request with sink_wants_ in VideoSourceProxy methods to make sure it is higher/lower than last request.
Add methods RestrictFramerate, IncreaseFramerate.

To be used by kBalanced mode.

This CL is split from: https://codereview.webrtc.org/2887303003/

BUG=webrtc:7607

Review-Url: https://codereview.webrtc.org/2903563002
Cr-Commit-Position: refs/heads/master@{#18463}
2017-06-07 07:01:02 +00:00
23ec19dbb9 Add fuzzer for vp9 qp parser.
Return false if ReadBits fails.
Prevents GetQp from returning true with a qp of zero.

BUG=webrtc:7662

Review-Url: https://codereview.webrtc.org/2911013002
Cr-Commit-Position: refs/heads/master@{#18462}
2017-06-07 06:41:44 +00:00
6bf57e3467 vp9: Enable vp9 denoiser by default in standalone webrtc.
BUG=None

Review-Url: https://codereview.webrtc.org/2789283002
Cr-Commit-Position: refs/heads/master@{#18450}
2017-06-05 20:43:49 +00:00
1c187dcd80 Replace RingBuffer by std::deque in RtcEventLog.
BUG=webrtc:7732

Review-Url: https://codereview.webrtc.org/2875823003
Cr-Commit-Position: refs/heads/master@{#18447}
2017-06-05 15:55:40 +00:00
92732ecc5c Revert of Only compare sequence numbers from the same SSRC in ForwardErrorCorrection. (patchset #5 id:120001 of https://codereview.webrtc.org/2893293003/ )
Reason for revert:
Breaks fuzzer.

Original issue's description:
> Only compare sequence numbers from the same SSRC in ForwardErrorCorrection.
>
> Prior to this CL, the ForwardErrorCorrection state would be reset whenever
> the difference in sequence numbers of the last recovered media packet
> and the new packet (media or FEC) was too large. This comparison did not
> take into account that FlexFEC uses a different SSRC for the FEC packets,
> meaning that the the state would be reset very frequently when FlexFEC
> is used. This should not have led to any major problems, except for a
> decreased decoding efficiency.
>
> This CL verifies that whenever we compare sequence numbers in
> ForwardErrorCorrection, they do indeed belong to the same SSRC.
>
> BUG=webrtc:5654
>
> Review-Url: https://codereview.webrtc.org/2893293003
> Cr-Commit-Position: refs/heads/master@{#18399}
> Committed: 1476a9d789

TBR=stefan@webrtc.org,holmer@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2919313005
Cr-Commit-Position: refs/heads/master@{#18446}
2017-06-05 14:25:01 +00:00
6dcdf10c76 This is an initial cl, which contains small amount of implemented functions, and large amount of unimplemented ones.
Code should implement BBR which is the congestion controlling algorithm. BBR tries to estimate two values bottle-neck bandwidth(bw) and round trip time(rtt),then use these two values to set two control parameters pacing rate(pacing_rate),the rate at which data should be sent and congestion window size (cwnd), cwnd is the upper bound for data in flight,data_in_flight <= cwnd at all time.
BBR has four modes:
1)Startup-ramping up throughput discovering estimated bw.
2)Drain-after Startup decrease throughput to drain queues.
3)Probe Bandwidth-most of the time BBR should be in this mode,
sending data at the rate of estimated bw, while sometimes trying to discover new bandwidth.
4)Probe Rtt-in this mode BBR tries to discover new rtt for the connection.

The key moment in BBR is when we receive feedback from the receiver,as this is the only moment which should effect our two estimators. At this moment all the switches between modes should happen, except switch to ProbeRtt mode (switching to ProbeRtt mode should happen when current min_rtt value expires).

This cl serves to emphasize the structure of Bbr, when switches happen and what key classes/functions should be implemented for proper functionality.

BUG=webrtc:7713
NOTRY=True

Review-Url: https://codereview.webrtc.org/2904183002
Cr-Commit-Position: refs/heads/master@{#18444}
2017-06-05 13:01:26 +00:00
59ee91b68a Move RTCAudioSession* files modules/audio_device/ -> sdk/Framework.
BUG=NONE

Review-Url: https://codereview.webrtc.org/2855023003
Cr-Commit-Position: refs/heads/master@{#18443}
2017-06-05 12:48:47 +00:00
e2410e9ab4 Interfaces for injectable video codecs.
These interfaces will be used by the future refactoring that will
allow clients to provide custom codec implementations.

Change-Id: If199bc2807e1c27094c05983c62fa43d2eec5700
Bug: webrtc:7760
Reviewed-on: https://chromium-review.googlesource.com/522065
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18441}
2017-06-05 07:49:47 +00:00
68b91d766f Small updates to test::Stats.
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2916883002
Cr-Commit-Position: refs/heads/master@{#18439}
2017-06-05 06:43:41 +00:00