Commit Graph

11283 Commits

Author SHA1 Message Date
292084c376 Added the GetSources() to the RtpReceiverInterface and implemented
it for the AudioRtpReceiver.

This method returns a vector of RtpSource(both CSRC source and SSRC
source) which contains the ID of a source, the timestamp, the source
type (SSRC or CSRC) and the audio level.

The RtpSource objects are buffered and maintained by the
RtpReceiver in webrtc/modules/rtp_rtcp/. When the method is called,
the info of the contributing source will be pulled along the object
chain:
AudioRtpReceiver -> VoiceChannel -> WebRtcVoiceMediaChannel ->
AudioReceiveStream -> voe::Channel -> RtpRtcp module

Spec:https://w3c.github.io/webrtc-pc/archives/20151006/webrtc.html#widl-RTCRtpReceiver-getContributingSources-sequence-RTCRtpContributingSource

BUG=chromium:703122
TBR=stefan@webrtc.org, danilchap@webrtc.org

Review-Url: https://codereview.webrtc.org/2770233003
Cr-Commit-Position: refs/heads/master@{#17591}
2017-04-07 17:57:22 +00:00
89420459d1 Adding support for handling highly reverberant echoes in AEC3.
This CL adds support for handling highly reverberant echoes in
AEC3. The functionality is hardcoded to be have no effect (via
a decay factor of 0), but this CL will be followed by other CLs
for which nonzero decay factors will be allowed.

Apart from this change, this CL also refactors the residual
echo estimation code to make it shorter and more readable.

The changes introduced herein are bitexact (for a decay factor
of 0).

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2804223002
Cr-Commit-Position: refs/heads/master@{#17589}
2017-04-07 13:13:39 +00:00
2ce640fada Fixing sample-rate dependent band-split filter issues in AEC3
This CL ensures that the number of bands
for the render side matches that for the capture side
when AEC3 is active. Without this, there was problems
when the render rate is different from the capture rate.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2800033003
Cr-Commit-Position: refs/heads/master@{#17586}
2017-04-07 10:57:48 +00:00
7c2c8438f1 Reland of Loosening the coupling between WebRTC and //third_party/protobuf (patchset #1 id:1 of https://codereview.webrtc.org/2786363002/ )
Reason for revert:
Trying to re-land after solving some related issues.

There are no changes compared to the original CL.

Original issue's description:
> Revert of Loosening the coupling between WebRTC and //third_party/protobuf (patchset #16 id:300001 of https://codereview.webrtc.org/2747863003/ )
>
> Reason for revert:
> I will try to reland next week because it is causing some problems.
>
> Original issue's description:
> > To accommodate some downstream WebRTC users we need to loosen
> > the coupling between our code and the //third_party/protobuf.
> >
> > This includes using typedefs to define strings instead of
> > assuming std::string.
> >
> > After this refactoring it will be possible to link with other
> > protobuf implementations than the current one.
> >
> > We moved the PRESUBMIT check to another CL [1]. The goal of this
> > presubmit is to avoid the direct usage of google::protobuf outside
> > of the webrtc/base/protobuf_utils.h header file.
> >
> > [1] - https://codereview.webrtc.org/2753823003/
> >
> > BUG=webrtc:7340
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2747863003
> > Cr-Commit-Position: refs/heads/master@{#17466}
> > Committed: 16ab93b952
>
> TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org,michaelt@webrtc.org,peah@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7340
>
> Review-Url: https://codereview.webrtc.org/2786363002
> Cr-Commit-Position: refs/heads/master@{#17483}
> Committed: d00aad5eb2

TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org,michaelt@webrtc.org,peah@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7340
NOTRY=True

Review-Url: https://codereview.webrtc.org/2791963003
Cr-Commit-Position: refs/heads/master@{#17584}
2017-04-07 07:59:12 +00:00
0944a80f3e Update stats for cpu/quality adaptation changes to excluded time when video is suspended.
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2804653002
Cr-Commit-Position: refs/heads/master@{#17583}
2017-04-07 07:57:58 +00:00
77492860a9 Make AudioProcessing::GetConfig() pure virtual
BUG=chromium:708475
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

Review-Url: https://codereview.webrtc.org/2796223004
Cr-Commit-Position: refs/heads/master@{#17581}
2017-04-07 06:28:09 +00:00
abd101b91f Support multiple connected Android devices in low bandwidth audio test
Previously it was assumed that exactly one device is connected.
Now adb will get an argument with the device ID taken from the runner
script's stdout.

BUG=webrtc:7229
TBR=kjellander@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2783343003
Cr-Commit-Position: refs/heads/master@{#17580}
2017-04-07 06:21:30 +00:00
225bfc0971 Make PacketTransportInternal inherit from PacketTransportInterface.
Was just overlooked in an earlier CL.

BUG=webrtc:7013
TBR=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/2806463003
Cr-Commit-Position: refs/heads/master@{#17579}
2017-04-07 04:47:33 +00:00
4b572d048a Correction of the AEC3 underrun behavior and minor other corrections
This CL corrects the behavior during buffer underruns.

Furthermore, it increases the tolerance for API call jitter, and
removes the minimum value for the comfort noise.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2787123003
Cr-Commit-Position: refs/heads/master@{#17576}
2017-04-06 23:33:06 +00:00
86afe9d661 Major updates to the echo removal functionality in AEC3
This CL adds fairly significant changes to the echo removal
functionality, the main ones being.
-More centralized control over the echo removal.
-Updated echo suppression gain behavior.
-Significantly increased usage of the linear adaptive filter.
-New echo removal functionality when the linear filter is not usable.

This CL is chained to the CL https://codereview.webrtc.org/2784023002/

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2782423003
Cr-Commit-Position: refs/heads/master@{#17575}
2017-04-06 22:45:32 +00:00
1ffbd6c93c Injectable audio encoders: voice_engine/channel changes.
Adds a SetEncoder call to voe::Channel, so that we can move encoder setup outside of Voice Engine.

BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2703373006
Cr-Commit-Position: refs/heads/master@{#17572}
2017-04-06 19:05:04 +00:00
5f4aaeb0a4 Re-enable FullStackTest.ScreenshareSlidesVP9_2SL test.
TBR=sprang@webrtc.org
BUG=webrtc:7401

Review-Url: https://codereview.webrtc.org/2799063003
Cr-Commit-Position: refs/heads/master@{#17571}
2017-04-06 17:52:23 +00:00
4b62001e4f Adding AudioDeviceDataObserver interface
Added new callback class that enables routing both the locally recorded
and playout audio data to external module.

A factory method that creates an AudioDeviceModule instance that also
registers the AudioTransportCapture with the device is also added.

BUG=webrtc:7337
R=solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2753453002 .
Cr-Commit-Position: refs/heads/master@{#17570}
2017-04-06 17:17:02 +00:00
a1a040a4a4 Injectable audio encoders: BuiltinAudioEncoderFactory
This CL contains all the changes made to audio_coding while making
audio encoders injectable. Apart from some small changes to
webrtcvoiceengine, nothing here is hooked up to the outside
world. Those changes will be added to a follow-up CL.

BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2695243005
Cr-Commit-Position: refs/heads/master@{#17569}
2017-04-06 17:03:21 +00:00
6167b2621f Make RtpTransportControllerSend::send_side_cc_ a direct member.
Now constructed early, and Call uses RegisterNetworkObserver.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2795693003
Cr-Commit-Position: refs/heads/master@{#17566}
2017-04-06 13:34:25 +00:00
cde46b7278 Resolve cyclic dependency between audio network adaptor and event log api
BUG=webrtc:7257

Review-Url: https://codereview.webrtc.org/2745473003
Cr-Commit-Position: refs/heads/master@{#17565}
2017-04-06 12:59:10 +00:00
28dc285f22 Adding cbr support for Opus
BUG=webrtc:7394

Review-Url: https://codereview.webrtc.org/2772773002
Cr-Commit-Position: refs/heads/master@{#17564}
2017-04-06 12:48:36 +00:00
388fe425c7 Make WARN_UNUSED_RESULT a no-op on gcc
Because on gcc, cast to void doesn't silence the warning. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425

Also add an RTC_ prefix to the macro instead of only defining it if it
wasn't already defined, to ensure that we always get our own version.

BUG=none

Review-Url: https://codereview.webrtc.org/2797983003
Cr-Commit-Position: refs/heads/master@{#17563}
2017-04-06 11:32:27 +00:00
177b17e050 Move AndroidVideoTrackSourceObserver from API to src
BUG=webrtc:7172

Review-Url: https://codereview.webrtc.org/2803593004
Cr-Commit-Position: refs/heads/master@{#17562}
2017-04-06 11:31:26 +00:00
639d46a7ab Delete system_wrappers logging facility.
BUG=webrtc:5118

Review-Url: https://codereview.webrtc.org/2796353002
Cr-Commit-Position: refs/heads/master@{#17561}
2017-04-06 10:53:06 +00:00
24180017d5 ACM: Change test output files from PCM to WAV
This makes the test files easier to analyze.

BUG=none

Review-Url: https://codereview.webrtc.org/2752543007
Cr-Commit-Position: refs/heads/master@{#17559}
2017-04-06 09:40:37 +00:00
a280f7c026 Added integer parsing functions in base/string_to_number.h
They provide parsing of numbers from char* and std::string into any of
the fundamental integer types. Values are returned
in an rtc::Optional, which is left empty if parsing was unsuccessful.

BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2696003004
Cr-Commit-Position: refs/heads/master@{#17557}
2017-04-06 09:02:15 +00:00
e24991d7d6 Adds AudioDeviceTest.RunPlayoutAndRecordingInFullDuplex unittest.
BUG=webrtc:7273

Review-Url: https://codereview.webrtc.org/2788883002
Cr-Commit-Position: refs/heads/master@{#17555}
2017-04-06 08:14:23 +00:00
978504e25c Move rtp header extension length check from Packet::FindExtension to ExtensionT::Parse
to allow to read variable-length extensions.

BUG=webrtc:7433

Review-Url: https://codereview.webrtc.org/2801733002
Cr-Commit-Position: refs/heads/master@{#17554}
2017-04-06 08:03:53 +00:00
f6a4f37685 Reland of Fixed error for missing explict class initialization error on iOS WebRTC buildbots (patchset #1 id:1 of https://codereview.webrtc.org/2803933002/ )
Reason for revert:
The revert did not fix the issue. Apparently this was actually the fix.

Original issue's description:
> Revert of Fixed error for missing explict class initialization error on iOS WebRTC buildbots (patchset #1 id:1 of https://codereview.webrtc.org/2799813002/ )
>
> Reason for revert:
> Causes compile error on iOS.
> export DEVELOPER_DIR=/b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app;  /b/build/slave/cache/goma_client/gomacc clang++ -MMD -MF obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o.d -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_AUDIOPROC_DEBUG_DUMP -DWEBRTC_INTELLIGIBILITY_ENHANCER=0 -DWEBRTC_NS_FIXED -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"298539-1\" -DCR_XCODE_VERSION=0821 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNS_BLOCK_ASSERTIONS=1 -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DHAVE_SCTP -DENABLE_EXTERNAL_AUTH -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DUSE_WEBRTC_DEV_BRANCH -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_MAC -DWEBRTC_IOS -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../.. -Igen -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party -I../../third_party/webrtc/modules/audio_coding/codecs/isac/main/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/webrtc/common_audio/resampler/include -I../../third_party/webrtc/common_audio/signal_processing/include -I../../third_party/webrtc/common_audio/vad/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fcolor-diagnostics -arch armv7 -Wall -Werror -Wextra -Wundeclared-selector -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Os -gdwarf-2 -isysroot /b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -fvisibility-inlines-hidden -std=c++11 -fno-rtti -fno-exceptions -c ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc -o obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o
> ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc:20:15: error: constructor for 'webrtc::RenderBuffer' must explicitly initialize the const member 'fft_'
> RenderBuffer::RenderBuffer(Aec3Optimization optimization,
>               ^
> ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.h:75:17: note: 'fft_' declared here
>   const Aec3Fft fft_;
>                 ^
>
> See https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.chromium.mac%2Fios-device-xcode-clang%2F70027%2F%2B%2Frecipes%2Fsteps%2Fcompile__with_patch_%2F0%2Fstdout
>
> Original issue's description:
> > Fixed error for missing explicit class initialization error on iOS buildbots
> >
> > TBR=henrik.lundin@webrtc.org
> >
> > BUG=webrtc:6018
> >
> > Review-Url: https://codereview.webrtc.org/2799813002
> > Cr-Commit-Position: refs/heads/master@{#17549}
> > Committed: 5ac18af71b
>
> TBR=henrik.lundin@webrtc.org,peah@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6018
>
> Review-Url: https://codereview.webrtc.org/2803933002
> Cr-Commit-Position: refs/heads/master@{#17550}
> Committed: 854e507853

TBR=henrik.lundin@webrtc.org,peah@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2798913003
Cr-Commit-Position: refs/heads/master@{#17551}
2017-04-06 05:06:36 +00:00
854e507853 Revert of Fixed error for missing explict class initialization error on iOS WebRTC buildbots (patchset #1 id:1 of https://codereview.webrtc.org/2799813002/ )
Reason for revert:
Causes compile error on iOS.
export DEVELOPER_DIR=/b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app;  /b/build/slave/cache/goma_client/gomacc clang++ -MMD -MF obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o.d -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_AUDIOPROC_DEBUG_DUMP -DWEBRTC_INTELLIGIBILITY_ENHANCER=0 -DWEBRTC_NS_FIXED -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"298539-1\" -DCR_XCODE_VERSION=0821 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DNS_BLOCK_ASSERTIONS=1 -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DHAVE_SCTP -DENABLE_EXTERNAL_AUTH -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DUSE_WEBRTC_DEV_BRANCH -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_MAC -DWEBRTC_IOS -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../.. -Igen -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party -I../../third_party/webrtc/modules/audio_coding/codecs/isac/main/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/webrtc/common_audio/resampler/include -I../../third_party/webrtc/common_audio/signal_processing/include -I../../third_party/webrtc/common_audio/vad/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fcolor-diagnostics -arch armv7 -Wall -Werror -Wextra -Wundeclared-selector -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Os -gdwarf-2 -isysroot /b/build/slave/ios-device-xcode-clang/build/src/build/ios_files/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -fvisibility-inlines-hidden -std=c++11 -fno-rtti -fno-exceptions -c ../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc -o obj/third_party/webrtc/modules/audio_processing/audio_processing/render_buffer.o
../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.cc:20:15: error: constructor for 'webrtc::RenderBuffer' must explicitly initialize the const member 'fft_'
RenderBuffer::RenderBuffer(Aec3Optimization optimization,
              ^
../../third_party/webrtc/modules/audio_processing/aec3/render_buffer.h:75:17: note: 'fft_' declared here
  const Aec3Fft fft_;
                ^

See https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.chromium.mac%2Fios-device-xcode-clang%2F70027%2F%2B%2Frecipes%2Fsteps%2Fcompile__with_patch_%2F0%2Fstdout

Original issue's description:
> Fixed error for missing explicit class initialization error on iOS buildbots
>
> TBR=henrik.lundin@webrtc.org
>
> BUG=webrtc:6018
>
> Review-Url: https://codereview.webrtc.org/2799813002
> Cr-Commit-Position: refs/heads/master@{#17549}
> Committed: 5ac18af71b

TBR=henrik.lundin@webrtc.org,peah@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2803933002
Cr-Commit-Position: refs/heads/master@{#17550}
2017-04-06 04:28:05 +00:00
5ac18af71b Fixed error for missing explicit class initialization error on iOS buildbots
TBR=henrik.lundin@webrtc.org

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2799813002
Cr-Commit-Position: refs/heads/master@{#17549}
2017-04-05 22:10:34 +00:00
7343c8e09f DirectX capturer may crash after switching shared screen
The root cause is because the offset used in DxgiOutputDuplicator should always
depend on the position of the monitor in the system instead of the offset in the
target frame. Otherwise, once switching between two monitors with different
screen size, the updated region in the context would base on the old monitor,
and cause the copied regions to be out of the source DesktopFrame.
This issue also impacts the SpreadContextChange() function, the updated region
stores in the Context should also only depend on the position of the monitor.

BUG=chromium:706797

Review-Url: https://codereview.webrtc.org/2801433002
Cr-Commit-Position: refs/heads/master@{#17548}
2017-04-05 21:21:58 +00:00
cf02cf13a7 Major AEC3 render pipeline changes
This CL adds major render pipeline changes to the AEC3 code. The reason
for these are that
1) It allows the echo removal unit to receive information about the content
in bands beyond band 0, thereby allowing removal of high-frequency
echoes
2) It allows more controlled handling of the render buffers, allowing proper
buffer behaviour during capture glitches and clock-drift.

Unfortunately, the render pipeline caused a lot of related changes in much
of the rest of the AEC3 files. Most of these are, however, caused by
a change of class name.

Another unfortunate effect of this CL, is that a number of unittest cease to
compile. I chose to temporarily solve that by removing them from the
build using #if/#endif. The reason for that is that those will anyway again
need to be changed in the next review, and doing like this avoids them
having to be reviewed twice.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2784023002
Cr-Commit-Position: refs/heads/master@{#17547}
2017-04-05 21:18:07 +00:00
4aceaf268e Android: Move Histogram from api to src.
This class is already package-local.

BUG=webrtc:7172

Review-Url: https://codereview.webrtc.org/2799643003
Cr-Commit-Position: refs/heads/master@{#17546}
2017-04-05 19:18:59 +00:00
c522e758f6 Use new RTCCameraVideoCapturer in AppRTCMobile.
Because the new API doesn't use constraints, refactors settings to instead have a
video resolution setting.

BUG=webrtc:7177

Review-Url: https://codereview.webrtc.org/2778163005
Cr-Commit-Position: refs/heads/master@{#17545}
2017-04-05 19:17:48 +00:00
1ba21eb063 Add [c]begin() and [c]end() member functions to rtc::Buffer
I can't believe it's been this long before I found out we didn't have
them...

BUG=none

Review-Url: https://codereview.webrtc.org/2804673002
Cr-Commit-Position: refs/heads/master@{#17544}
2017-04-05 14:38:06 +00:00
dea682d25b This CL fixes the following:
- snake_case -> CapWords
- compulsory docstring added
- style

A followup CL will fix remaining issues as raised by the next version of the WebRTC Python linter (update in progress).

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2793903006
Cr-Commit-Position: refs/heads/master@{#17543}
2017-04-05 14:25:33 +00:00
129fc9ce94 Enabling 'gn check' on //webrtc/tools.
BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2799633002
Cr-Commit-Position: refs/heads/master@{#17542}
2017-04-05 14:14:31 +00:00
c88b5d56ad Reland of PyLint fixes for tools-webrtc and webrtc/tools (patchset #1 id:1 of https://codereview.webrtc.org/2737233003/ )
Reason for revert:
Fixing errors for reland. I have tested that this does not make Chromium video quality tests fail.

Original issue's description:
> Revert of PyLint fixes for tools-webrtc and webrtc/tools (patchset #3 id:40001 of https://codereview.webrtc.org/2736233003/ )
>
> Reason for revert:
> Fails video quality tests in Chrome:  http://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/6568
> I should have looked more closer at those :(
>
> Original issue's description:
> > PyLint fixes for tools-webrtc and webrtc/tools
> >
> > Fix a lot of errors before bringing in the new config in
> > https://codereview.webrtc.org/2737963003/
> >
> > BUG=webrtc:7303
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2736233003
> > Cr-Commit-Position: refs/heads/master@{#17137}
> > Committed: f5318e1f39
>
> TBR=oprypin@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7303
>
> Review-Url: https://codereview.webrtc.org/2737233003
> Cr-Commit-Position: refs/heads/master@{#17142}
> Committed: 94f4d9effc

NOTRY=true
BUG=webrtc:7312

Review-Url: https://codereview.webrtc.org/2741733003
Cr-Commit-Position: refs/heads/master@{#17541}
2017-04-05 13:42:43 +00:00
adf0635ed5 Make GetConfig() part of the AudioProcessing interface
BUG=chromium:708475
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

Review-Url: https://codereview.webrtc.org/2802603003
Cr-Commit-Position: refs/heads/master@{#17540}
2017-04-05 12:48:24 +00:00
368f5cf27e Replace use of system_wrappers/include/logging.h by base/logging.h.
BUG=webrtc:5118

Review-Url: https://codereview.webrtc.org/2781343002
Cr-Commit-Position: refs/heads/master@{#17539}
2017-04-05 12:00:33 +00:00
2299b0ab97 Android: Remove VideoCapturerAndroid
This class has been deprecated for a long time and has been replaced by
Camera1Capturer.

BUG=webrtc:7440

Review-Url: https://codereview.webrtc.org/2789183004
Cr-Commit-Position: refs/heads/master@{#17538}
2017-04-05 10:41:17 +00:00
d60d06a9f9 Reland of Move video_encoder.h and video_decoder.h to /api and create GN targets for them (patchset #1 id:1 of https://codereview.webrtc.org/2794033002/ )
Reason for revert:
Reland with temporary deprecated API to not break chromium and google3.

Original issue's description:
> Revert of Move video_encoder.h and video_decoder.h to /api and create GN targets for them (patchset #8 id:140001 of https://codereview.webrtc.org/2780943003/ )
>
> Reason for revert:
> Suspect of breaking Chrome FYI bots.
>
> See
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/23065
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder
>
> Example logs:
> ../../content/renderer/media/gpu/rtc_video_encoder_unittest.cc:18:46: fatal error: third_party/webrtc/video_encoder.h: No such file or directory
>  #include "third_party/webrtc/video_encoder.h"
>                                               ^
>
> Original issue's description:
> > Move video_encoder.h and video_decoder.h to /api and create GN targets for them
> >
> > BUG=webrtc:5881
> > # Because PRESUBMIT ignores LINT blacklist for moved files and these
> > # headers have some not easy to resolve issues.
> > NOPRESUBMIT=True
> >
> > Review-Url: https://codereview.webrtc.org/2780943003
> > Cr-Commit-Position: refs/heads/master@{#17511}
> > Committed: c42f540570
>
> TBR=solenberg@webrtc.org,sprang@webrtc.org,ilnik@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5881
>
> Review-Url: https://codereview.webrtc.org/2794033002
> Cr-Commit-Position: refs/heads/master@{#17514}
> Committed: 716d7ac5c1

TBR=solenberg@webrtc.org,sprang@webrtc.org,guidou@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5881

Review-Url: https://codereview.webrtc.org/2795163002
Cr-Commit-Position: refs/heads/master@{#17537}
2017-04-05 10:02:20 +00:00
d8ce1e172e Move SelectMediaType from RampUpTester to BaseTest.
This provides a better default for audio-only tests.

BUG=None

Review-Url: https://codereview.webrtc.org/2794193003
Cr-Commit-Position: refs/heads/master@{#17536}
2017-04-05 07:33:40 +00:00
6eca98b7e5 Add histogram stats for number of cpu/quality adapt changes per minute for sent video streams:
- "WebRTC.Video.AdaptChangesPerMinute.Cpu"
- "WebRTC.Video.AdaptChangesPerMinute.Quality"

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2786593003
Cr-Commit-Position: refs/heads/master@{#17535}
2017-04-05 06:40:50 +00:00
d48dbda434 Add a minimal RtpTransport class for use by BaseChannel.
This will eventually implement webrtc::RtpTransportInterface from api/ortc.
It needs to live in the pc build target until the pc <- ortc dependency is inverted.

BUG=webrtc:7013

Review-Url: https://codereview.webrtc.org/2792223002
Cr-Commit-Position: refs/heads/master@{#17534}
2017-04-05 02:45:57 +00:00
465faf0061 [iOS] Changed ptr to const ref for RTCConfiguration initialization
BUG=webrtc:7431

Review-Url: https://codereview.webrtc.org/2794193002
Cr-Commit-Position: refs/heads/master@{#17533}
2017-04-04 21:00:16 +00:00
ba13131f9a Trivial data() and mutable_data() implementations
This will allow migrating existing references to data_ over to data() and
mutable_data(), so that https://codereview.webrtc.org/2750783004/ can be
imported cleanly.

BUG=webrtc:7343
TBR=henrika@webrtc.org

Review-Url: https://codereview.webrtc.org/2795103002
Cr-Commit-Position: refs/heads/master@{#17532}
2017-04-04 20:40:59 +00:00
baf9b58cb4 README.md with deps, build, usage, troubleshooting
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2722823002
Cr-Commit-Position: refs/heads/master@{#17531}
2017-04-04 14:27:03 +00:00
c3372583d4 Revert of Deliver video frames on Android, on the decode thread. (patchset #7 id:120001 of https://codereview.webrtc.org/2764573002/ )
Reason for revert:
Breaks Chrome FYI Android bots.

See:
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus9%29/builds/20418
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus6%29/builds/14724
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus5%29/builds/20133
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28K%20Nexus5%29/builds/15111

Original issue's description:
> Deliver video frames on Android, on the decode thread.
>
> VideoCoding
> * Adding a method for polling for frames on Android only until the capture implementation takes care of this (longer term plan).
>
> CodecDatabase
> * Add an accessor for the current decoder
> * Use std::unique_ptr<> for ownership.
> * Remove "Release()" and "ReleaseDecoder()". Instead just delete.
> * Remove |friend| relationship between CodecDatabase and VCMGenericDecoder.
>
> VCMDecodedFrameCallback
> * DCHECKs for thread correctness.
> * Remove |lock_| now that a threading model has been established and verified.
>
> VCMGenericDecoder
> * All methods now have thread checks.
> * Variable access associated with thread checkers.
>
> VideoReceiver
> * Added two notification methods, DecoderThreadStarting() and DecoderThreadStopped()
>   * Allows us to establish a period when the decoder thread is not running and it is safe to modify variables such as callbacks, that are only read when the decoder thread is running.
>   * Allows us to DCHECK thread guarantees.
>   * Allows synchronizing callbacks from the module process thread and have them only active while the decoder thread is running.
>   * The above, allows us to establish two modes for the thread, single-threaded-mutable and multi-threaded-const.
>   * Using that knowledge, we can remove |receive_crit_| as well as locking for a number of member variables.
>
> MediaCodecVideoDecoder
> * Removed frame polling code from this class, since this is now done from the root thread function in VideoReceiveStream.
>
> VideoReceiveStream
> * On Android: Polls for decoded frames every 10ms (same interval as previously in MediaCodecVideoDecoder)
> * [Un]Registers the |video_receiver_| with the module thread only around the time the decoder thread is started/stopped.
> * Notifies the receiver of start/stop events of the decoder thread.
> * Changed the decoder thread to use the new PlatformThread callback type.
>
> BUG=webrtc:7361, 695438
>
> Review-Url: https://codereview.webrtc.org/2764573002
> Cr-Commit-Position: refs/heads/master@{#17527}
> Committed: e3aa88bbd5

TBR=sakal@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org,tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7361, 695438

Review-Url: https://codereview.webrtc.org/2792033003
Cr-Commit-Position: refs/heads/master@{#17530}
2017-04-04 14:16:21 +00:00
fbd4f85f2d Javascript audio player for the exported HTML file.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2721023002
Cr-Commit-Position: refs/heads/master@{#17529}
2017-04-04 13:59:14 +00:00
fab67071a4 Add number of quality adapt changes to VideoSendStream stats.
The stats will be used in an upcoming cl to track the rate of adapt changes.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2775173004
Cr-Commit-Position: refs/heads/master@{#17528}
2017-04-04 12:51:49 +00:00
e3aa88bbd5 Deliver video frames on Android, on the decode thread.
VideoCoding
* Adding a method for polling for frames on Android only until the capture implementation takes care of this (longer term plan).

CodecDatabase
* Add an accessor for the current decoder
* Use std::unique_ptr<> for ownership.
* Remove "Release()" and "ReleaseDecoder()". Instead just delete.
* Remove |friend| relationship between CodecDatabase and VCMGenericDecoder.

VCMDecodedFrameCallback
* DCHECKs for thread correctness.
* Remove |lock_| now that a threading model has been established and verified.

VCMGenericDecoder
* All methods now have thread checks.
* Variable access associated with thread checkers.

VideoReceiver
* Added two notification methods, DecoderThreadStarting() and DecoderThreadStopped()
  * Allows us to establish a period when the decoder thread is not running and it is safe to modify variables such as callbacks, that are only read when the decoder thread is running.
  * Allows us to DCHECK thread guarantees.
  * Allows synchronizing callbacks from the module process thread and have them only active while the decoder thread is running.
  * The above, allows us to establish two modes for the thread, single-threaded-mutable and multi-threaded-const.
  * Using that knowledge, we can remove |receive_crit_| as well as locking for a number of member variables.

MediaCodecVideoDecoder
* Removed frame polling code from this class, since this is now done from the root thread function in VideoReceiveStream.

VideoReceiveStream
* On Android: Polls for decoded frames every 10ms (same interval as previously in MediaCodecVideoDecoder)
* [Un]Registers the |video_receiver_| with the module thread only around the time the decoder thread is started/stopped.
* Notifies the receiver of start/stop events of the decoder thread.
* Changed the decoder thread to use the new PlatformThread callback type.

BUG=webrtc:7361, 695438

Review-Url: https://codereview.webrtc.org/2764573002
Cr-Commit-Position: refs/heads/master@{#17527}
2017-04-04 10:53:02 +00:00
aa7d935cd5 Evaluation scores export library and CSS file for the exported HTML file
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2723703002
Cr-Commit-Position: refs/heads/master@{#17526}
2017-04-04 09:58:09 +00:00