5363 Commits

Author SHA1 Message Date
philipel
b5feb2e025 Use pacing info in ProbeBitrateEstimator to validate probe results.
BUG=webrtc:6822

Review-Url: https://codereview.webrtc.org/2728553007
Cr-Commit-Position: refs/heads/master@{#17147}
2017-03-09 15:01:58 +00:00
elad.alon
5bbf43f9d4 Move delay_based_bwe_ into CongestionController
BUG=webrtc:7058

Review-Url: https://codereview.webrtc.org/2725823002
Cr-Commit-Position: refs/heads/master@{#17146}
2017-03-09 14:40:08 +00:00
kwiberg
551e984851 Make error reporting more detailed
In an attempt to help Kenny locate the evil Dr. Deo.

BUG=webrtc:7307

Review-Url: https://codereview.webrtc.org/2732193006
Cr-Commit-Position: refs/heads/master@{#17135}
2017-03-09 10:08:28 +00:00
alessiob
1d395dfb36 Conversational Speech generator, main script with shell arguments
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2733863002
Cr-Commit-Position: refs/heads/master@{#17117}
2017-03-08 14:12:23 +00:00
kjellander
a8d8aadba8 Refactor + enable GN check on video_coding_utility
To avoid the cyclic dependency

BUG=webrtc:6828
NOTRY=True
TBR=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2717113002
Cr-Commit-Position: refs/heads/master@{#17116}
2017-03-08 13:42:26 +00:00
elad.alon
ec304f96b3 GetTransportFeedbackVector return vector with lost packets too, sorted by seq-num
1. GetTransportFeedbackVector will now return a vector which also explicitly states lost packets.
2. The returned vector is unsorted (uses default order - by sequence number). It's up to the users to sort otherwise, if they need a different order.

BUG=None

Review-Url: https://codereview.webrtc.org/2707383006
Cr-Commit-Position: refs/heads/master@{#17114}
2017-03-08 13:03:53 +00:00
kjellander
34b7a91862 Enable GN check for webrtc/modules/video_processing
BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2719753002
Cr-Commit-Position: refs/heads/master@{#17106}
2017-03-08 09:41:14 +00:00
sergeyu
9fa7e4a0ac Fix error handling in X11 screen capturer
Previusly errors from XServerPixelBuffer::CaptureRect() were not always
handled, which results in a black frame returned from the capturer
instead of an error.

BUG=webrtc:7305

Review-Url: https://codereview.webrtc.org/2738513005
Cr-Commit-Position: refs/heads/master@{#17101}
2017-03-08 01:02:20 +00:00
philipel
cb9ba301f0 Perform probing on network route change.
BUG=webrtc:7208

Review-Url: https://codereview.webrtc.org/2714503002
Cr-Commit-Position: refs/heads/master@{#17096}
2017-03-07 14:30:59 +00:00
philipel
57f19cc0cd Drop VP8 frames in case of duplicates in RtpFrameReferenceFinder.
BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2734453002
Cr-Commit-Position: refs/heads/master@{#17090}
2017-03-07 11:54:05 +00:00
danilchap
21dc1890f4 Replace Clock::CurrentNtp with Clock::CurrentNtpTime
CurrentNtp return time by taking two output parameters by reference
(also breaks style guide)
CurrentNtpTime treat ntp time as single entity and returns it using NtpTime structure.
(making interface clearer)

BUG=None

Review-Url: https://codereview.webrtc.org/2733823002
Cr-Commit-Position: refs/heads/master@{#17088}
2017-03-07 10:51:09 +00:00
brandtr
17b958c041 Support pipelining codecs in VideoProcessor.
This CL removes most of the global frame state in VideoProcessor and
replaces that with a vector of frame states. This is useful for pipelining
codecs, where the encoded/decoded frame may not be immediately outputted
after it has been sent to the codec.

The callers (VideoProcessorIntegrationTest and video_quality_measurement)
still call VideoProcessor in a sequential fashion. A follow-up CL will be
submitted that enables batch mode in VideoProcessorIntegrationTest.

Note that VideoProcessor is still not thread safe. Currently, we can run
fairly well on Android due to the synchronicity of our MediaCodec wrapper,
but we still cannot run on iOS due to async issues. This will be fixed in
the future.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2711133002
Cr-Commit-Position: refs/heads/master@{#17084}
2017-03-07 09:41:43 +00:00
asapersson
ae9ba047c4 Minor changes in videoprocessor and videoprocessor_integrationtests.h
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2708993005
Cr-Commit-Position: refs/heads/master@{#17083}
2017-03-07 08:25:38 +00:00
michaelt
e7811f5d69 Fix segmentation fault in AudioEncoderOpusTest.EncodeAtMinBitrate.
BUG=webrtc:7105

Review-Url: https://codereview.webrtc.org/2733803002
Cr-Commit-Position: refs/heads/master@{#17069}
2017-03-06 14:49:27 +00:00
elad.alon
f949000834 Rename webrtc::PacketInfo to webrtc::PacketFeedback. This resolves ambiguity with a similarly named RTCPReceiver::PacketInformation and RtpPacketizerVp9::PacketInfo.
BUG=None

Review-Url: https://codereview.webrtc.org/2710093004
Cr-Commit-Position: refs/heads/master@{#17066}
2017-03-06 13:32:21 +00:00
sakal
b8102e0634 Reland of Add QP for FFmpeg H264 decoder. (patchset #1 id:1 of https://codereview.webrtc.org/2726973003/ )
Reason for revert:
The issue is now hopefully fixed.

Original issue's description:
> Revert of Add QP for FFmpeg H264 decoder. (patchset #4 id:200001 of https://codereview.webrtc.org/2649133007/ )
>
> Reason for revert:
> Let's revert this while we investigate a problem in H264 bitstream parser.
>
> Original issue's description:
> > Add QP for FFmpeg H264 decoder.
> >
> > BUG=webrtc:6541
> >
> > Review-Url: https://codereview.webrtc.org/2649133007
> > Cr-Commit-Position: refs/heads/master@{#16942}
> > Committed: 879f4f6c31
>
> TBR=sprang@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:6541, chromium:697795
>
> Review-Url: https://codereview.webrtc.org/2726973003
> Cr-Commit-Position: refs/heads/master@{#16974}
> Committed: 4c6df8893e

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

Review-Url: https://codereview.webrtc.org/2735733002
Cr-Commit-Position: refs/heads/master@{#17061}
2017-03-06 11:52:55 +00:00
elad.alon
fb1fa44d70 Remove MockRemoteBitrateObserver (unused)
BUG=None

Review-Url: https://codereview.webrtc.org/2731523002
Cr-Commit-Position: refs/heads/master@{#17060}
2017-03-06 11:48:14 +00:00
danilchap
609ab2b3dc Make ExtendedReports::target_bitrate() accessor const
as it supposed to be

BUG=None

Review-Url: https://codereview.webrtc.org/2726843007
Cr-Commit-Position: refs/heads/master@{#17059}
2017-03-06 11:12:12 +00:00
elad.alon
5419ac8c02 Remove unused RemoteBitrateEstimator::IncomingPacketFeedbackVector()
BUG=None

Review-Url: https://codereview.webrtc.org/2721463003
Cr-Commit-Position: refs/heads/master@{#17058}
2017-03-06 11:11:06 +00:00
jens.nielsen
5571ee9465 Fix memory leaks in Windows core audio
BUG=webrtc:7270

Review-Url: https://codereview.webrtc.org/2727273002
Cr-Commit-Position: refs/heads/master@{#17056}
2017-03-06 10:24:42 +00:00
alessiob
1e9681549a White noise generator implemented.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2718073002
Cr-Commit-Position: refs/heads/master@{#17049}
2017-03-06 07:03:52 +00:00
alessiob
4610ec7ddd Noise generator abstract class and identity noise generator implemented.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2717243003
Cr-Commit-Position: refs/heads/master@{#17048}
2017-03-06 06:55:59 +00:00
alessiob
21debb3ae8 APM quality assessment tool, signal processing tools.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2715763003
Cr-Commit-Position: refs/heads/master@{#17047}
2017-03-06 06:33:12 +00:00
zijiehe
ccf57a71eb BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
DXGI capturer highly depends on video adapter and its driver, as well as Windows
itself. I recently found it cannot work on my virtualbox instance any more,
which indicates it may not work well on some specific systems. What worse is,
the APIs do not return a failure in such case.

So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
pixels in the frame returned by a DesktopCapturer implementation. If all the
pixels selected are blank, this wrapper returns a failure. A typical usage is to
combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
and use GDI capturer in case of failure.

Usually less than 10000 pixels are checked, so the
BlankDetectorDesktopCapturerWrapper should not significant impact the capturer
performance.

This change is expected to resolve bug 682112 in another dimension.

BUG=682112

Review-Url: https://codereview.webrtc.org/2709523003
Cr-Original-Commit-Position: refs/heads/master@{#16984}
Committed: c4e9d210b3
Review-Url: https://codereview.webrtc.org/2709523003
Cr-Commit-Position: refs/heads/master@{#17024}
2017-03-03 22:40:15 +00:00
alessiob
446fb136dc APM configuration files generator.
It generates json files to be used as APM configuration presets.
Useful to avoid manual editing of such files.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2719853006
Cr-Commit-Position: refs/heads/master@{#17013}
2017-03-03 16:20:19 +00:00
alessiob
bf4007dbe9 Evaluation controller, evaluation score abstract class, and score data access.
BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2714543005
Cr-Commit-Position: refs/heads/master@{#17012}
2017-03-03 15:59:31 +00:00
minyue
930ff23261 Fixing a unittest to allow new Opus version.
New Opus version starts to support 120ms frame lengths. AudioEncoderOpusTest had an unnecessary check on the available frame lengths.

It is removed in this CL.

BUG=b/35415318

Review-Url: https://codereview.webrtc.org/2731583003
Cr-Commit-Position: refs/heads/master@{#17011}
2017-03-03 15:34:52 +00:00
alessiob
810025f9e9 Readme file with example that explains how the conversational speech generator tool should work.
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2722173003
Cr-Commit-Position: refs/heads/master@{#17010}
2017-03-03 15:31:10 +00:00
tommi
db23ea69b6 Add performance tracing for PlatformThread and parts of the video code.
BUG=webrtc:7219

Review-Url: https://codereview.webrtc.org/2729783004
Cr-Commit-Position: refs/heads/master@{#17009}
2017-03-03 15:21:18 +00:00
alessiob
b4ec8765d8 "audioproc_f" wrapper
- Metadata and AudioProcConfigFile classes
- ApmModuleSimulator constructor updated
- BUILD.gn updated

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2711313004
Cr-Commit-Position: refs/heads/master@{#17008}
2017-03-03 14:53:56 +00:00
alessiob
a4b1d31207 Simulation controller (shell arguments parser and simulation runner) and libraries (data access, noise generators, evaluation scores).
Execution flag added to the .py and .sh scripts.
BUILD.gn files adapted (see :lib), APM config files moved.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2715943002
Cr-Commit-Position: refs/heads/master@{#17007}
2017-03-03 14:48:48 +00:00
kwiberg
65cb70d939 Fix cyclic deps: rent_a_codec<->audio_coding and rent_a_codec<->neteq
In short, what I did was to

  * Remove acm_common_defs.h (the stuff in it was used only by
    acm_codec_database.cc).

  * Move audio_coding_module_typedefs.h to a new build target.

  * Move the NetEqDecoder enum (and the associated
    NetEqDecoderToSdpAudioFormat function) to a new file in a new
    build target.

BUG=webrtc:7243, webrtc:7244

Review-Url: https://codereview.webrtc.org/2723253005
Cr-Commit-Position: refs/heads/master@{#17005}
2017-03-03 14:16:28 +00:00
kwiberg
3a2c803dc3 Multiply in 64 bits to avoid overflow
A fuzzer run caused the operands of this multiplication to be 512 and
5000000, resulting in a product about 20% too large for int32_t. So
change this from a 16x32->32 to a 16x32->64 multiplication. Since we
right shift by 2 at the end, the end result will still fit in int32_t.

I also had to fix a few follow-on add/sub overflows found by the same
fuzzer input once the multiplication was fixed. I chose to saturate
these, since it wasn't just an intermediate value that overflowed.

BUG=chromium:693868

Review-Url: https://codereview.webrtc.org/2729573002
Cr-Commit-Position: refs/heads/master@{#17003}
2017-03-03 13:44:49 +00:00
tommi
dea489f33e Add support for Location (RTC_FROM_HERE) to ProcessThread::RegisterModule.
This makes a few things a lot clearer when looking at perf trace data:

* What module instances (where they were created) are called
* On what thread
* How frequently
* For how long

ProcessThread will be replaced by TaskQueue moving forward and this is a step towards understanding the behavior of the affected code.

BUG=webrtc:7219

Review-Url: https://codereview.webrtc.org/2729053002
Cr-Commit-Position: refs/heads/master@{#16998}
2017-03-03 11:20:24 +00:00
perkj
528a834ef0 Revert of BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame (patchset #7 id:180001 of https://codereview.webrtc.org/2709523003/ )
Reason for revert:
Misses  deps for RTC_HISTOGRAM in Chrome.
email sent separately.

Also see https://codereview.chromium.org/2725143004/.

Original issue's description:
> BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
>
> DXGI capturer highly depends on video adapter and its driver, as well as Windows
> itself. I recently found it cannot work on my virtualbox instance any more,
> which indicates it may not work well on some specific systems. What worse is,
> the APIs do not return a failure in such case.
>
> So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
> pixels in the frame returned by a DesktopCapturer implementation. If all the
> pixels selected are blank, this wrapper returns a failure. A typical usage is to
> combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
> and use GDI capturer in case of failure.
>
> Usually less than 500 pixels are checked, so the
> BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.
>
> This change is expected to resolve bug 682112 in another dimension.
>
> BUG=682112
>
> Review-Url: https://codereview.webrtc.org/2709523003
> Cr-Commit-Position: refs/heads/master@{#16984}
> Committed: c4e9d210b3

TBR=sergeyu@chromium.org,zijiehe@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=682112

Review-Url: https://codereview.webrtc.org/2726983005
Cr-Commit-Position: refs/heads/master@{#16993}
2017-03-03 08:01:48 +00:00
zijiehe
c4e9d210b3 BlankDetectorDesktopCapturerWrapper to detect a blank DesktopFrame
DXGI capturer highly depends on video adapter and its driver, as well as Windows
itself. I recently found it cannot work on my virtualbox instance any more,
which indicates it may not work well on some specific systems. What worse is,
the APIs do not return a failure in such case.

So this change adds a BlankDetectorDesktopCapturerWrapper, which samples several
pixels in the frame returned by a DesktopCapturer implementation. If all the
pixels selected are blank, this wrapper returns a failure. A typical usage is to
combine BlankDetectorDesktopCapturerWrapper with FallbackDesktopCapturerWrapper,
and use GDI capturer in case of failure.

Usually less than 500 pixels are checked, so the
BlankDetectorDesktopCapturerWrapper should not impact the capturer performance.

This change is expected to resolve bug 682112 in another dimension.

BUG=682112

Review-Url: https://codereview.webrtc.org/2709523003
Cr-Commit-Position: refs/heads/master@{#16984}
2017-03-03 01:38:36 +00:00
sakal
4c6df8893e Revert of Add QP for FFmpeg H264 decoder. (patchset #4 id:200001 of https://codereview.webrtc.org/2649133007/ )
Reason for revert:
Let's revert this while we investigate a problem in H264 bitstream parser.

Original issue's description:
> Add QP for FFmpeg H264 decoder.
>
> BUG=webrtc:6541
>
> Review-Url: https://codereview.webrtc.org/2649133007
> Cr-Commit-Position: refs/heads/master@{#16942}
> Committed: 879f4f6c31

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

Review-Url: https://codereview.webrtc.org/2726973003
Cr-Commit-Position: refs/heads/master@{#16974}
2017-03-02 15:22:26 +00:00
alessiob
a44ba63cb7 APM Quality Assessment tool, new owners
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2729023002
Cr-Commit-Position: refs/heads/master@{#16969}
2017-03-02 13:41:07 +00:00
asapersson
55eb6d6214 vp8_impl.cc: Enable postproc for arm under field trial.
For resolutions:
<= 320x240: enable full postproc (VP8_MFQE, VP8_DEBLOCK, VP8_DEMACROBLOCK).
> 320x240: enable VP8_MFQE.

TBR=marpan@webrtc.org
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2696403002
Cr-Commit-Position: refs/heads/master@{#16962}
2017-03-02 07:52:16 +00:00
kwiberg
d3edd770ad Introduce dchecked_cast, and start using it
It's the faster, less strict cousin of checked_cast.

BUG=none

Review-Url: https://codereview.webrtc.org/2714063002
Cr-Commit-Position: refs/heads/master@{#16958}
2017-03-02 02:52:48 +00:00
zijiehe
634fcb32e3 DxgiOutputDuplicator AcquireNextFrame timeout can be 0
Timeout of AcquireNextFrame() can be 0. Though MSDN does not state it clear, I
tried it on my laptop, it works well, with almost zero capture time.
The screenshot is at https://drive.google.com/open?id=0B0OFNI4uoZGRNVZxekxCbm0ycmc.

BUG=682112

Review-Url: https://codereview.webrtc.org/2712353002
Cr-Commit-Position: refs/heads/master@{#16953}
2017-03-01 19:45:37 +00:00
elad.alon
f7c26d40ab Small TransportFeedbackAdapterTest efficiency boost and TODO resolved
BUG=None

Review-Url: https://codereview.webrtc.org/2726853002
Cr-Commit-Position: refs/heads/master@{#16950}
2017-03-01 17:05:20 +00:00
johan
0981cd16f2 Resolve inconsistent definition of video's webrtc::CodecSpecificInfo.
Following files define the same classes
- modules/video_coding/codecs/interface/video_codec_interface.h
- modules/video_coding/include/video_codec_interface.h

The first one is deprecated. As long as it is not removed, both files
should provide consistent class declarations. Otherwise any donwstream
project that includes its own codecs could experience memory
corruption issues.

Before this CL member declarations and ctor definition for
webrtc::CodecSpecificInfo diverged between both header files.

BUG=webrtc:7280

Review-Url: https://codereview.webrtc.org/2727633002
Cr-Commit-Position: refs/heads/master@{#16944}
2017-03-01 14:32:01 +00:00
sprang
e5d3a3ea78 Fix quick perf test setting that was accidentally inverted.
Bug was introduced in
https://codereview.webrtc.org/2717973005/
Only affects test output, so omitting bug.

BUG=None

Review-Url: https://codereview.webrtc.org/2723093002
Cr-Commit-Position: refs/heads/master@{#16943}
2017-03-01 14:20:56 +00:00
sakal
879f4f6c31 Add QP for FFmpeg H264 decoder.
BUG=webrtc:6541

Review-Url: https://codereview.webrtc.org/2649133007
Cr-Commit-Position: refs/heads/master@{#16942}
2017-03-01 14:19:09 +00:00
jens.nielsen
228c268065 Support 4 channel mic in Windows Core Audio
BUG=webrtc:7220

Review-Url: https://codereview.webrtc.org/2712743004
Cr-Commit-Position: refs/heads/master@{#16940}
2017-03-01 13:11:22 +00:00
henrik.lundin
a67e5f5de9 Fixing an overflow issue in NetEq::BackgroundNoise
BUG=chromium:676941

Review-Url: https://codereview.webrtc.org/2722533002
Cr-Commit-Position: refs/heads/master@{#16938}
2017-03-01 11:06:50 +00:00
alessiob
b324640855 Owners file added
BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2727613002
Cr-Commit-Position: refs/heads/master@{#16935}
2017-03-01 10:05:11 +00:00
sprang
5271ea6571 Switch temporal layer impl used for screenshare upper simulcast stream.
Use default temporal layers instead of the RealtimeTemporalLayers one.
When using low fps, having a single stream with much higher bitrate than
the lower simulcast stream causes poor rampup behavior.

Tested manually.

BUG=webrtc:4172

Review-Url: https://codereview.webrtc.org/2723983002
Cr-Commit-Position: refs/heads/master@{#16934}
2017-03-01 09:58:17 +00:00
danilchap
dc05017fc3 Disable AudioCoding tests on ios
BUG=webrtc:7057
TBR=minyue@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2721323002
Cr-Commit-Position: refs/heads/master@{#16932}
2017-03-01 09:16:51 +00:00