Commit Graph

11312 Commits

Author SHA1 Message Date
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
8edb8397f8 Reland of Export library that generates an HTLM file with the scores organized in tables. (patchset #1 id:1 of https://codereview.webrtc.org/2791293002/ )
Reason for revert:
Relanding https://codereview.webrtc.org/2717973006

BUG=webrtc:7218

Original issue's description:
> Revert of Export library that generates an HTLM file with the scores organized in tables. (patchset #3 id:40001 of https://codereview.webrtc.org/2717973006/ )
>
> Reason for revert:
> Issue with rebasing from depending CL
>
> Original issue's description:
> > Export library that generates an HTLM file with the scores organized in tables.
> >
> > BUG=webrtc:7218
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2717973006
> > Cr-Commit-Position: refs/heads/master@{#17512}
> > Committed: 29e3330139
>
> TBR=aleloi@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/2791293002
> Cr-Commit-Position: refs/heads/master@{#17513}
> Committed: 880c85ba7e

TBR=aleloi@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/2798553002
Cr-Commit-Position: refs/heads/master@{#17525}
2017-04-04 09:36:24 +00:00
fab482b326 Simplify RTPSender::RegisterRtpHeaderExtension
DCHECK instead of run-time check extension type is correct.

BUG=webrtc:1994

Review-Url: https://codereview.webrtc.org/2795723002
Cr-Commit-Position: refs/heads/master@{#17524}
2017-04-04 09:33:48 +00:00
55a0135484 Make sure we observe enough frames before scaling.
If the encoder takes a long time to start up and emit frames the polling
interval of the quality scaler would get out of sync. This causes it to
sometimes make scaling decisions based on only a handful of frames.
This CL ensures that we have observed some minimum number of frames
before deciding to scale up or down.

BUG=b/36734056

Review-Url: https://codereview.webrtc.org/2789483002
Cr-Commit-Position: refs/heads/master@{#17523}
2017-04-04 09:31:42 +00:00
3153c6dce5 Fixing DTX unittest for AudioEncoderOpus.
BUG=None

Review-Url: https://codereview.webrtc.org/2785363002
Cr-Commit-Position: refs/heads/master@{#17520}
2017-04-04 06:34:39 +00:00
0786c04f97 Fix crash in XServerPixelBuffer.
XServerPixelBuffer contains x_image_ field, that may be allocated using
XGetImage() or XShmCreateImage() depending how the last frame was captured.
x_image_ is passed XShmGetImage(), which may crash if it gets image
allocated with XGetImage(). Added x_shm_image_ to ensure that SHM and
non-SHM capture paths are separate and XShmGetImage() is allways called
with the correct XImage.

The linked bug appears to be a regressiona after
https://codereview.webrtc.org/2044693002

BUG=chromium:697823

Review-Url: https://codereview.webrtc.org/2796673002
Cr-Commit-Position: refs/heads/master@{#17518}
2017-04-04 01:08:08 +00:00
4eeb53748a [iOS] Added an initialization method to RTCConfiguration that takes a
native configuration.
Added a getConfiguration getter method to RTCPeerConnection to return
the RTCConfiguration.

BUG=webrtc:7431

Review-Url: https://codereview.webrtc.org/2790833002
Cr-Commit-Position: refs/heads/master@{#17517}
2017-04-03 22:06:37 +00:00
9ab17d3478 Forward capturer_id to shared desktopframe
capturer_id() field has not been forward to the shared DesktopFrame.

BUG=650926, 679523

Review-Url: https://codereview.webrtc.org/2796583002
Cr-Commit-Position: refs/heads/master@{#17516}
2017-04-03 18:51:18 +00:00
c964d0b3fa Fixing some case-sensitive codec name comparisons.
As specified in RFC 4288, Section 4.2, and RFC 4855, Section 3, these
names should be case-insensitive. They already were being treated as
case-insensitive in some other places.

This bug was resulting in either a crash or no decoded video, depending
on the platform.

BUG=webrtc:6439, webrtc:7027

Review-Url: https://codereview.webrtc.org/2782273002
Cr-Commit-Position: refs/heads/master@{#17515}
2017-04-03 17:03:35 +00:00
716d7ac5c1 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}
2017-04-03 16:15:52 +00:00
880c85ba7e Revert of Export library that generates an HTLM file with the scores organized in tables. (patchset #3 id:40001 of https://codereview.webrtc.org/2717973006/ )
Reason for revert:
Issue with rebasing from depending CL

Original issue's description:
> Export library that generates an HTLM file with the scores organized in tables.
>
> BUG=webrtc:7218
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2717973006
> Cr-Commit-Position: refs/heads/master@{#17512}
> Committed: 29e3330139

TBR=aleloi@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/2791293002
Cr-Commit-Position: refs/heads/master@{#17513}
2017-04-03 15:46:58 +00:00
29e3330139 Export library that generates an HTLM file with the scores organized in tables.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2717973006
Cr-Commit-Position: refs/heads/master@{#17512}
2017-04-03 15:39:06 +00:00
c42f540570 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}
2017-04-03 15:37:32 +00:00
eb4662a64d Single simulation runner.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2720203003
Cr-Commit-Position: refs/heads/master@{#17510}
2017-04-03 15:34:46 +00:00
0deb594b25 POLQA evaluation score.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718063003
Cr-Commit-Position: refs/heads/master@{#17509}
2017-04-03 15:29:09 +00:00
c533df203c Audio level evaluation score.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2720233002
Cr-Commit-Position: refs/heads/master@{#17508}
2017-04-03 15:20:18 +00:00
54ad3df1d2 I added two factory classes to address an important comment I got in another CL from kjellander@webrtc.org.
This CL also includes the implementation of the echo noise generator.
I added comments in the diff to help the reviewers.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2715233003
Cr-Commit-Position: refs/heads/master@{#17507}
2017-04-03 15:12:44 +00:00
8a1b3c9d11 Environmental noise generator implemented.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718133002
Cr-Commit-Position: refs/heads/master@{#17506}
2017-04-03 13:54:46 +00:00
653063f6fd Add functions to get/set rtp header extension by id.
This helps with dynamic size extensions.

BUG=webrtc:7433

Review-Url: https://codereview.webrtc.org/2789773004
Cr-Commit-Position: refs/heads/master@{#17505}
2017-04-03 13:16:30 +00:00
23425f9068 Add methods to register congestion controller observer after construction.
The point of this change is to make it possible to create the congestion
controller as part of creating RtpTransportController, later pass it to the
constructor of Call, and then let Call register itself as an observer.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2795643002
Cr-Commit-Position: refs/heads/master@{#17504}
2017-04-03 11:54:25 +00:00
d197cd9ad9 Revert of Add empty header to fix internal project. (patchset #1 id:1 of https://codereview.webrtc.org/2790493006/ )
Reason for revert:
Internal dependency has been removed.

Original issue's description:
> Add empty header to fix internal project.
>
> BUG=None
> TBR=tommi@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2790493006
> Cr-Commit-Position: refs/heads/master@{#17492}
> Committed: 16d5bae396

TBR=kjellander@webrtc.org,tommi@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=None

Review-Url: https://codereview.webrtc.org/2795683002
Cr-Commit-Position: refs/heads/master@{#17503}
2017-04-03 09:33:33 +00:00
d1b0e0e6db Merge UpdateBandwidthEstimate with Update in AimdRateControl.
(The two functions are always called together anyway.)

BUG=None

Review-Url: https://codereview.webrtc.org/2784333005
Cr-Commit-Position: refs/heads/master@{#17502}
2017-04-03 09:27:08 +00:00