Commit Graph

10326 Commits

Author SHA1 Message Date
4e713ff8e8 Use VPX_ERROR_RESILIENT_DEFAULT constant.
Replaces a hard-coded 1, we don't support old libvpx versions that don't
have this constant defined anymore, so this can be dropped.

BUG=webrtc:7349
R=marpan@google.com, marpan@webrtc.org

Review-Url: https://codereview.webrtc.org/2622633005 .
Cr-Commit-Position: refs/heads/master@{#17263}
2017-03-15 18:19:58 +00:00
e01326fbd7 Remove unused RealTimeTemporalLayers.
BUG=webrtc:7349
R=sprang@webrtc.org, marpan@webrtc.org

Review-Url: https://codereview.webrtc.org/2755663003 .
Cr-Commit-Position: refs/heads/master@{#17262}
2017-03-15 18:08:27 +00:00
14dc089fb0 Remove dead VP8SequenceCoder.
BUG=webrtc:7349
R=marpan@google.com, marpan@webrtc.org

Review-Url: https://codereview.webrtc.org/2753763004 .
Cr-Commit-Position: refs/heads/master@{#17261}
2017-03-15 17:53:15 +00:00
f7f7fb9cf8 Add traces for some video events.
This CL adds traces to compute the following metrics that getStats()
captures for video:
- googFrameRateSent
- googFrameRateInput
- googFirsReceived
- googNacksReceived
- googFrameWidthSent
- googFrameHeightSent
- googAvgEncodeMs
- googEncodeUsagePercent

BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/2746903004
Cr-Commit-Position: refs/heads/master@{#17260}
2017-03-15 17:45:49 +00:00
5c7a623dd4 Improve error handling for ffmpeg operations
BUG=webrtc:7203

Review-Url: https://codereview.webrtc.org/2746413002
Cr-Commit-Position: refs/heads/master@{#17258}
2017-03-15 15:27:31 +00:00
dbbaa2ad66 Revert of C++ porting of the initial python script for conversational speech generation. (patchset #2 id:100001 of https://codereview.webrtc.org/2740063004/ )
Reason for revert:
Even if the conversational speech tool is external and not a core part of webrtc, there are too many trybots failing.

Original issue's description:
> C++ porting of the initial python script for conversational speech generation.
>
> This CL removes the Python script and adds its C++ porting.
> The former was in its early stage and it has permanently been removed.
>
> BUG=webrtc:7218
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2740063004
> Cr-Commit-Position: refs/heads/master@{#17254}
> Committed: 0cf3aa6d0d

TBR=henrik.lundin@webrtc.org,kjellander@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/2753843002
Cr-Commit-Position: refs/heads/master@{#17257}
2017-03-15 15:19:25 +00:00
29f730ebd8 Release the critial section between recursive calls in FrameBuffer::NextFrame.
This is a revert of https://codereview.webrtc.org/2749563002 and a fix to not
keep the lock in between recursive calls.

BUG=webrtc:7331

Review-Url: https://codereview.webrtc.org/2750033002
Cr-Commit-Position: refs/heads/master@{#17256}
2017-03-15 15:10:08 +00:00
5b3e49a29e Remove VoEHardware interface.
BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2753753004
Cr-Commit-Position: refs/heads/master@{#17255}
2017-03-15 15:08:07 +00:00
0cf3aa6d0d C++ porting of the initial python script for conversational speech generation.
This CL removes the Python script and adds its C++ porting.
The former was in its early stage and it has permanently been removed.

BUG=webrtc:7218
NOTRY=True

Review-Url: https://codereview.webrtc.org/2740063004
Cr-Commit-Position: refs/heads/master@{#17254}
2017-03-15 14:56:26 +00:00
2549ad4fef Reland of write frame generator capturer to use TaskQueue instead of EventTimeWrapper (patchset #1 id:1 of https://codereview.webrtc.org/2748643002/ )
Reason for revert:
Reland with fixes to the failing perf tests.

Original issue's description:
> Revert of rewrite frame generator capturer to use TaskQueue instead of EventTimeWrapper (patchset #2 id:90001 of https://codereview.webrtc.org/2744003002/ )
>
> Reason for revert:
> CallPerfTest.ReceivesCpuOveruseAndUnderuse perf test fails due to this CL. It requires very accurate frame rate, which may not be so accurate now.
>
> Original issue's description:
> > Reland of rewrite frame generator capturer to use TaskQueue instead of EventTimeWrapper (patchset #1 id:1 of https://codereview.webrtc.org/2743993002/ )
> >
> > And enable large full-stack test depending on that change (Reland of https://codereview.webrtc.org/2741823003/)
> > TBR=stefan@webrtc.org,tommi@webrtc.org
> > BUG=webrtc:7301,webrtc:7325
> >
> > Review-Url: https://codereview.webrtc.org/2744003002
> > Cr-Commit-Position: refs/heads/master@{#17196}
> > Committed: 8c0a5896d1
>
> TBR=stefan@webrtc.org,tommi@webrtc.org,sprang@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7301,webrtc:7325
>
> Review-Url: https://codereview.webrtc.org/2748643002
> Cr-Commit-Position: refs/heads/master@{#17198}
> Committed: 382a72a0d3

BUG=webrtc:7301,webrtc:7325

Review-Url: https://codereview.webrtc.org/2750473002
Cr-Commit-Position: refs/heads/master@{#17253}
2017-03-15 14:48:54 +00:00
919dce22d5 Return a long timeout value from TimeUntilNextProcess when the PacedSender is paused
BUG=webrtc:7335

Review-Url: https://codereview.webrtc.org/2746153002
Cr-Commit-Position: refs/heads/master@{#17252}
2017-03-15 14:45:36 +00:00
3f9b12d056 R/PLR calculation - time-based window
BUG=webrtc:7058

Review-Url: https://codereview.webrtc.org/2711473003
Cr-Commit-Position: refs/heads/master@{#17251}
2017-03-15 14:38:13 +00:00
be35a008ef Revert of Save width/height of SPS nalus and restore them on the first packet of an IDR. (patchset #6 id:100001 of https://codereview.webrtc.org/2750633003/ )
Reason for revert:
Breaks build bots.

Original issue's description:
> Save width/height of SPS nalus and restore them on the first packet of an IDR.
>
> It appears that for some H264 streams that the width/height is not set for
> the first packet of the IDR but in the packet containing the SPS/PPS.
>
> BUG=chromium:698088, webrtc:7139
>
> Review-Url: https://codereview.webrtc.org/2750633003
> Cr-Commit-Position: refs/heads/master@{#17239}
> Committed: 620d75f5be

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

Review-Url: https://codereview.webrtc.org/2754543005
Cr-Commit-Position: refs/heads/master@{#17250}
2017-03-15 14:13:17 +00:00
9a5f032227 Remove VoEHardware interface usage.
BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2737633002
Cr-Commit-Position: refs/heads/master@{#17248}
2017-03-15 13:14:12 +00:00
e49fede158 FileUtilsTest DirExists function added
BUG=webrtc:7218

Review-Url: https://codereview.webrtc.org/2749163003
Cr-Commit-Position: refs/heads/master@{#17247}
2017-03-15 13:04:59 +00:00
996a83c4c8 Better handling of error condition in MediaCodecVideoEncoder.
BUG=b/36082499

Review-Url: https://codereview.webrtc.org/2748123002
Cr-Commit-Position: refs/heads/master@{#17246}
2017-03-15 12:53:14 +00:00
8444405aa4 Try re-enabling two PeerConnectionClientTests:
- org.appspot.apprtc.test.PeerConnectionClientTest#testCaptureFormatChange
- org.appspot.apprtc.test.PeerConnectionClientTest#testVideoSourceRestart

The tests were previously flaky but significant changes to the test
architecture have been made since. Opportunistically try to re-enable
them.

BUG=webrtc:6478

Review-Url: https://codereview.webrtc.org/2748863003
Cr-Commit-Position: refs/heads/master@{#17245}
2017-03-15 12:50:13 +00:00
664fc8fa7b Fix broken test landed in r17243.
TBR=philipel@webrtc.org
NOTRY=true

BUG=webrtc:7347

Review-Url: https://codereview.webrtc.org/2751963002
Cr-Commit-Position: refs/heads/master@{#17244}
2017-03-15 12:07:24 +00:00
9ea46b5286 Ignore packets sent on old network route when receiving feedback.
BUG=webrtc:7347
R=philipel@webrtc.org

Review-Url: https://codereview.webrtc.org/2755553003 .
Cr-Commit-Position: refs/heads/master@{#17243}
2017-03-15 11:40:25 +00:00
83722268d6 TaskQueue[Win] DOS handling
BUG=webrtc:7341

Review-Url: https://codereview.webrtc.org/2750853002
Cr-Commit-Position: refs/heads/master@{#17242}
2017-03-15 11:36:29 +00:00
35b7de480b Fix crash in vie_encoder when encoder configure fails
Bad changes are from CL 2745523002.

These changes were originally done by Sprang@. Sometimes, when encoder is failed to be configured on release build it causes a crash at vie_encoder.cc:451. That changes look like they are not important to other changes. This CL is simply reverting them.

BUG=chromium:701526

Review-Url: https://codereview.webrtc.org/2747403002
Cr-Commit-Position: refs/heads/master@{#17241}
2017-03-15 11:24:21 +00:00
620d75f5be Save width/height of SPS nalus and restore them on the first packet of an IDR.
It appears that for some H264 streams that the width/height is not set for
the first packet of the IDR but in the packet containing the SPS/PPS.

BUG=chromium:698088, webrtc:7139

Review-Url: https://codereview.webrtc.org/2750633003
Cr-Commit-Position: refs/heads/master@{#17239}
2017-03-15 09:51:11 +00:00
23c595adba Pass label and plot style to the TimeSeries' constructor.
BUG=webrtc:7323

Review-Url: https://codereview.webrtc.org/2750583002
Cr-Commit-Position: refs/heads/master@{#17237}
2017-03-15 08:59:12 +00:00
bc935b4c49 Ignore unmoved moved_rects in DxgiOutputDuplicator
I cannot even imagine this change is useful. But it consistently reduces average
capture time by 0.375% (4.07 -> 4.055), and average encode time by 0.313%
(8.042 -> 8.016) without other impacts. Considering this is a one-line change,
it's worthy to be added.

BUG=679523

Review-Url: https://codereview.webrtc.org/2743233002
Cr-Commit-Position: refs/heads/master@{#17235}
2017-03-15 00:27:58 +00:00
a613eb6bff Fixing a few tests for the upcoming Opus 1.2-alpha.
BUG=b/35415318

NOTRY=True

Review-Url: https://codereview.webrtc.org/2746763005
Cr-Commit-Position: refs/heads/master@{#17234}
2017-03-14 21:33:30 +00:00
275e2099ab Remove ReceiveCodec() getters from VideoCodingModule.
The getters are not used and the implementation cannot be guaranteed
to return a correct value except when called synchronously from
the decoding thread while decoding.

The methods as is imply that the implementation needs to offer some
sort of synchronization, and that's not desirable.

BUG=webrtc:7328
R=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2741853008 .
Cr-Commit-Position: refs/heads/master@{#17233}
2017-03-14 18:55:19 +00:00
e851a9a763 Fixed problems in neteq when RTP and decoder timestamps increment with
different sample rate frequency.

BUG=webrtc:7327

Problems before the fix:
1. NetEqImpl::timestamp_ is inconsistent. Initially it is set to
the original RTP timestamp, but later gets updated with the
scaled timestamp.
2. NetEqImpl::InsertPacketInternal::main_timestamp is set with
the original RTP timestamp, but later gets compared with the
NetEqImpl::timestamp_ which may or may not be with the same
sample rate frequency and this results in major problems.
3. IncreaseEndTimestamp(main_timestamp - timestamp_) will be
incorrect when SSRC is changed and not the first packet.
4. delay_manager_->Update() may not be always invoked, since
the (main_timestamp - timestamp_) >= 0 will not be true when
the previous scaled timestamp_ is bigger than the main_timestamp
(current RTP timestamp) even if the current RTP timestamp is
bigger than the previous RTP timestamp.
5. delay_manager_->Update() parameters are main_timestamp
which increments with the RTP sample rate frequency and the
fs_hz_ which is the decoder sample rate frequency. When these
two frequencies are different as is the case with g.722, the
DelayManager::Update() will misfire and calculate incorrect
packet_len_ms and inter-arrival time (IAT) as a result. This
in effect will cause neteq to enter kPreemptiveExpand operation
and will keep expanding the jitter buffer even if the RTP packets
arrive with no jitter at all.

The fix corrects all these problems by making sure the
main_timestamp and the timestamp_ are always set with the scaled
timestamp and increment with the decoder sample rate frequency.

Review-Url: https://codereview.webrtc.org/2743063005
Cr-Commit-Position: refs/heads/master@{#17232}
2017-03-14 17:00:27 +00:00
a514584b9a Add the ability to read/write to WAV files in FakeAudioDevice
BUG=webrtc:7229

Review-Url: https://codereview.webrtc.org/2717623003
Cr-Commit-Position: refs/heads/master@{#17230}
2017-03-14 16:01:47 +00:00
cd386eb13f Delete support for sending RTCP RPSI and SLI messages.
BUG=webrtc:7338

Review-Url: https://codereview.webrtc.org/2746413003
Cr-Commit-Position: refs/heads/master@{#17229}
2017-03-14 15:54:43 +00:00
0a73564338 Change FrameBuffer::Stop to not require a critical section.
BUG=webrtc:7331

Review-Url: https://codereview.webrtc.org/2749563002
Cr-Commit-Position: refs/heads/master@{#17228}
2017-03-14 13:23:57 +00:00
d0a71ba1ae Updates to VCMDecodedFrameCallback, VideoReceiver and a few related classes/tests.
* The _receiveCallback member of VCMDecodedFrameCallback does actually not require locking now that the threading model is slightly clearer. Documentation and checks have been added.
* UserReceiveCallback() never returns null and must always be called on the decoder thread. Checks have been added and the two test suites that were failing to set this callback, have been fixed and a new mock class added.  (looks like sakal@ may have hit some issues with flaky tests there).
* Changed VcmPayloadSink to use move semantics which I suspect was the intention at the time the code was written (when we didn't have move semantics).
* Added thread checker to a couple of classes and started adding thread checks for known behavior.  There's more to be  done there.
* Remove the |_decoder| member variable in VideoReceiver. It is not needed and as it could be used, left us open to a race.
* TODOs added for places where we can reduce locking. I suspect that we can get away with not needing a lock around _codecDataBase in VideoReceiver once we've got a clear picture of the threading model and ensured that all adhere to it.

BUG=webrtc:7328

Review-Url: https://codereview.webrtc.org/2744013002
Cr-Commit-Position: refs/heads/master@{#17226}
2017-03-14 11:16:20 +00:00
c7daea8d6a Make AudioBuffer::InterleaveTo const
The only non-const operation was a one-time initialization of a member only used in this function. I've moved it to the ctor.

BUG=webrtc:5298

Review-Url: https://codereview.webrtc.org/2741733002
Cr-Commit-Position: refs/heads/master@{#17223}
2017-03-14 10:10:07 +00:00
cfd88bbe80 Fix AudioEncoderOpus::RecreateEncoderInstance() referring to old config_
BUG=webrtc:7334

Review-Url: https://codereview.webrtc.org/2742383002
Cr-Commit-Position: refs/heads/master@{#17222}
2017-03-14 09:50:46 +00:00
07b8388234 Delete utf_util_win.h.
It duplicates base/win32.h.

BUG=None

Review-Url: https://codereview.webrtc.org/2744833002
Cr-Commit-Position: refs/heads/master@{#17221}
2017-03-14 08:32:50 +00:00
a33c62ee65 Add accessor functions for protected member variables of ModuleRtpRtcpImpl.
BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2747743002
Cr-Commit-Position: refs/heads/master@{#17220}
2017-03-14 07:49:45 +00:00
30e0da4a65 Change the type of session_id() from string to int64_t.
BUG=webrtc:7311

Review-Url: https://codereview.webrtc.org/2749493002
Cr-Commit-Position: refs/heads/master@{#17215}
2017-03-13 18:00:54 +00:00
8eb0751b2e Provide a default return value for mock_audio_device_.TimeUntilNextProcess.
By default the return value will be 0, which if we hit, could cause busy loops.

BUG=webrtc:7187

Review-Url: https://codereview.webrtc.org/2750503002
Cr-Commit-Position: refs/heads/master@{#17213}
2017-03-13 15:23:35 +00:00
ebb349d7c9 Revert to allowing only 1 unsignaled receive stream for audio.
Reason to go back is that we may end up with a bunch of streams that are never cleaned up and consume resources.

BUG=webrtc:7175, b/35863246

Review-Url: https://codereview.webrtc.org/2746763002
Cr-Commit-Position: refs/heads/master@{#17210}
2017-03-13 12:46:15 +00:00
a1896a649c iSAC fix entropy coder: Recently added DCHECK could in fact trigger
A DCHECK added in a recent bugfix, which asserted that a signed 64->32
bit cast did not overflow, has been found to not always pass. We fix
this by saturating.

BUG=chromium:693868

Review-Url: https://codereview.webrtc.org/2746903002
Cr-Commit-Position: refs/heads/master@{#17209}
2017-03-13 12:28:47 +00:00
53dc23c28f Unify the FillAudioEncoderTimeSeries with existing processing functions.
Use lambdas instead of function objects.

BUG=webrtc:7323

Review-Url: https://codereview.webrtc.org/2743933004
Cr-Commit-Position: refs/heads/master@{#17208}
2017-03-13 12:24:05 +00:00
39e1289e64 Avoid holding lock while calling stream_resetter_ in MaxPaddingSetTest
BUG=webrtc:7330

Review-Url: https://codereview.webrtc.org/2745083002
Cr-Commit-Position: refs/heads/master@{#17207}
2017-03-13 12:15:14 +00:00
d15165222f Trigger framelisteners even on frames dropped by the FPS reduction by default.
Modification affects EglRenderer on Android. Moves frame dropping to the
renderer thread. Frame listeners are triggered even when FPS reduction is
active unless applyFpsReduction is set to true.

BUG=webrtc:7149

Review-Url: https://codereview.webrtc.org/2688843002
Cr-Commit-Position: refs/heads/master@{#17206}
2017-03-13 12:11:48 +00:00
7be1dcb98e Delete method ModuleRtpRtcpImpl::SendPayloadType.
This was a trivial delegation wrapper, with only a single use.

BUG=None

Review-Url: https://codereview.webrtc.org/2741413003
Cr-Commit-Position: refs/heads/master@{#17205}
2017-03-13 12:09:27 +00:00
a2b2f6fe96 Remove dead test code and fix usage print-out for other tests
BUG=none

Review-Url: https://codereview.webrtc.org/2744213002
Cr-Commit-Position: refs/heads/master@{#17204}
2017-03-13 11:39:33 +00:00
d0d08b1568 vp8_impl.cc: Apply boost on golden frames (under field trial).
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2724153003
Cr-Commit-Position: refs/heads/master@{#17202}
2017-03-13 10:43:40 +00:00
c6192a9e32 Remove VoENetEqStats interface.
(TBR stefan@ for changes to webrtc/test/mock_voice_engine.h)

BUG=webrtc:4690
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2744953003
Cr-Commit-Position: refs/heads/master@{#17201}
2017-03-13 09:36:19 +00:00
1b0e3b866d Add video recording wrapper
BUG=webrtc:7203

Review-Url: https://codereview.webrtc.org/2704113004
Cr-Commit-Position: refs/heads/master@{#17200}
2017-03-13 09:15:51 +00:00
6ef1b34aae Fix perf test regression for screenshare and vp9.
Turns out temporal_layer_thresholds_bps doesn't work quite as expected.
It's for instance not honored at all for normal VP8 video. We need to
take a pass over this in general.

BUG=chromium:700297

Review-Url: https://codereview.webrtc.org/2744823002
Cr-Commit-Position: refs/heads/master@{#17199}
2017-03-13 09:01:32 +00:00
382a72a0d3 Revert of rewrite frame generator capturer to use TaskQueue instead of EventTimeWrapper (patchset #2 id:90001 of https://codereview.webrtc.org/2744003002/ )
Reason for revert:
CallPerfTest.ReceivesCpuOveruseAndUnderuse perf test fails due to this CL. It requires very accurate frame rate, which may not be so accurate now.

Original issue's description:
> Reland of rewrite frame generator capturer to use TaskQueue instead of EventTimeWrapper (patchset #1 id:1 of https://codereview.webrtc.org/2743993002/ )
>
> And enable large full-stack test depending on that change (Reland of https://codereview.webrtc.org/2741823003/)
> TBR=stefan@webrtc.org,tommi@webrtc.org
> BUG=webrtc:7301,webrtc:7325
>
> Review-Url: https://codereview.webrtc.org/2744003002
> Cr-Commit-Position: refs/heads/master@{#17196}
> Committed: 8c0a5896d1

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

Review-Url: https://codereview.webrtc.org/2748643002
Cr-Commit-Position: refs/heads/master@{#17198}
2017-03-13 08:54:13 +00:00
ff2ebf5e30 Clean up perf metrics and report ramp-up stats for fewer tests.
BUG=None

Review-Url: https://codereview.webrtc.org/2738183004
Cr-Commit-Position: refs/heads/master@{#17197}
2017-03-13 08:27:03 +00:00