5363 Commits

Author SHA1 Message Date
tommi
533aedc492 Delete unused test code in modules/video_coding/test/
BUG=none

Review-Url: https://codereview.webrtc.org/2748183006
Cr-Commit-Position: refs/heads/master@{#17295}
2017-03-17 15:11:11 +00:00
elad.alon
17ca2883e3 Potential race-condition resolution in CongestionController::min_bitrate_bps_
BUG=None

Review-Url: https://codereview.webrtc.org/2752353003
Cr-Commit-Position: refs/heads/master@{#17294}
2017-03-17 14:37:48 +00:00
nisse
40ba3addc7 Delete unused member RTCPSender::FeedbackState::send_payload_type.
It became unused with cl https://codereview.webrtc.org/2746413003/

BUG=webrtc:7338

Review-Url: https://codereview.webrtc.org/2759433005
Cr-Commit-Position: refs/heads/master@{#17293}
2017-03-17 14:04:00 +00:00
brandtr
3b941bef7a Minor FlexFEC fixes.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2720693007
Cr-Commit-Position: refs/heads/master@{#17292}
2017-03-17 14:02:46 +00:00
terelius
a2bb667a9b Use RTC_UNUSED instead of conditional compilation in BWE simulator tool.
Mark ATTRIBUTE_UNUSED as deprecated since it only works with GCC and clang. I am not removing it now since typedefs.h is (perhaps incorrectly?) considered a public interface.

BUG=webrtc:7228

Review-Url: https://codereview.webrtc.org/2756483002
Cr-Commit-Position: refs/heads/master@{#17291}
2017-03-17 13:34:47 +00:00
stefan
dd20054e06 Fix crash on multiple feedback messages are received on old transport.
BUG=webrtc:7347

Review-Url: https://codereview.webrtc.org/2753283002
Cr-Commit-Position: refs/heads/master@{#17290}
2017-03-17 13:19:11 +00:00
philipel
6585f7087c Reland of Save width/height of SPS nalus and restore them on the first packet of an IDR. (patchset #1 id:1 of https://codereview.webrtc.org/2754543005/ )
Reason for revert:
fix

Original issue's description:
> 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}
> Committed: be35a008ef

TBR=stefan@webrtc.org
BUG=chromium:698088, webrtc:7139

Review-Url: https://codereview.webrtc.org/2751843003
Cr-Commit-Position: refs/heads/master@{#17289}
2017-03-17 13:12:33 +00:00
tommi
05e908b10b Delete unused method VideoCodingModule::DiscardedPackets().
This method isn't called and the value it represents, is made available
via the stats APIs.

BUG=none

Review-Url: https://codereview.webrtc.org/2760613002
Cr-Commit-Position: refs/heads/master@{#17287}
2017-03-17 12:48:24 +00:00
tommi
b1db3702f7 Delete unsupported method VideoCodingModule::RegisterDecoderTimingCallback.
The implementation behind this method has been a noop for a long time.

BUG=none

Review-Url: https://codereview.webrtc.org/2757843002
Cr-Commit-Position: refs/heads/master@{#17286}
2017-03-17 12:35:43 +00:00
henrika
f2f91fa2f9 Adds unit test for ADM on Linux
BUG=webrtc:7273

Review-Url: https://codereview.webrtc.org/2736503002
Cr-Commit-Position: refs/heads/master@{#17285}
2017-03-17 11:26:22 +00:00
tommi
994ebb4702 Provide default impl of TimeUntilNextProcess in MockRtpRtcp instead of mocking.
This method isn't currently mocked or required by any test, so the safe thing
is to return a reasonably large value from the implementation to avoid busy loops.

BUG=webrtc:7187
TBR=mflodman@webrtc.org

Review-Url: https://codereview.webrtc.org/2744233002
Cr-Commit-Position: refs/heads/master@{#17284}
2017-03-17 11:01:30 +00:00
ehmaldonado
90474ccd12 GN: Make //webrtc/test:fileutils visible only to //webrtc/test.
BUG=webrtc:6727
NOTRY=True

Review-Url: https://codereview.webrtc.org/2754893002
Cr-Commit-Position: refs/heads/master@{#17283}
2017-03-17 10:47:24 +00:00
danilchap
74e8df8feb Fix rtcp_sender to support sdes with 31 chunk
Previosly it supported up to only 15 chunks which is a limit for csrcs in an rtp packet.

BUG=None

Review-Url: https://codereview.webrtc.org/2758533002
Cr-Commit-Position: refs/heads/master@{#17274}
2017-03-16 15:04:08 +00:00
nisse
150708e061 Make ModuleRtpRtcpImpl member variables private.
This is a follow-up to https://codereview.webrtc.org/2747743002.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2750283003
Cr-Commit-Position: refs/heads/master@{#17271}
2017-03-16 12:02:53 +00:00
ivoc
9c192b2b06 Added locking when getting echo likelihood stats.
Currently no lock is taken when returning echo likelihood stats, which causes a race condition between the thread getting the stats and the thread running the echo detector. This CL resolves the issue by adding locking.

BUG=webrtc:7346

Review-Url: https://codereview.webrtc.org/2749973003
Cr-Commit-Position: refs/heads/master@{#17270}
2017-03-16 11:22:14 +00:00
zijiehe
299b67809a DxgiOutputDuplicator should initialize num_frames_captured_
Otherwise Check failed: !!last_frame_ == num_frames_captured_ > 0 (1 vs. 0) may
be triggered.

BUG=webrtc:7339

Review-Url: https://codereview.webrtc.org/2755493003
Cr-Commit-Position: refs/heads/master@{#17266}
2017-03-15 22:52:20 +00:00
Peter Boström
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
Peter Boström
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
Peter Boström
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
alessiob
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
philipel
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
alessiob
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
tommi
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
philipel
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
stefan
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
Stefan Holmer
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
philipel
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
zijiehe
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
minyue
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
Tommi
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
dkirovbroadsoft
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
nisse
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
tommi
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
tommi
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
kthelgason
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
elad.alon
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
nisse
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
kwiberg
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
nisse
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
henrik.lundin
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
asapersson
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
zhihuang
9a1604b027 Include the header <cmath>
The build breaks because there is no implementation of std::abs(double).

BUG=None
TBR=tkchin@webrtc.org

Review-Url: https://codereview.webrtc.org/2743063003
Cr-Commit-Position: refs/heads/master@{#17176}
2017-03-10 21:30:04 +00:00
braveyao
95b27217f2 Mac: fix screen capture freezes when context menu popup in Chrome.
Previously we grab a run loop source and add a source with mode
kCFRunLoopDefaultMode. With this mode, it won't callback when context menu popup
(which needs the NSEventTrackingRunLoopMode), then screen capture can't get
refreshed frame with context menu until the context menu is gone.
The fix is to use kCFRunLoopComonModes, which includes default,modal and event
tracking modes by default.

BUG=chromium:697780

Review-Url: https://codereview.webrtc.org/2732393003
Cr-Commit-Position: refs/heads/master@{#17171}
2017-03-10 17:46:49 +00:00
Stefan Holmer
144475b328 Speculative fix for division by zero in Vp8EncoderImpl.
BUG=chromium:597139
R=sprang@webrtc.org

Review-Url: https://codereview.webrtc.org/2743543004 .
Cr-Commit-Position: refs/heads/master@{#17167}
2017-03-10 14:08:26 +00:00
brandtr
60dcda4943 Add option to disable EXPECT_EQ's in VideoProcessor integration tests.
Since HW codecs are not as well-behaved as SW codecs, we need a
way to disable the EXPECT_EQ's in the VideoProcessor integration tests
for the former. This CL introduces such an ability.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2710913004
Cr-Commit-Position: refs/heads/master@{#17166}
2017-03-10 13:34:01 +00:00
brandtr
b2def1d06f Add batch mode to VideoProcessor integration tests.
Prior to this CL, the encoding/decoding in the VideoProcessor integration
tests were run "online", in the sense that rate allocations could be
changed in between frames. This is useful for evaluating the rate control
of SW codecs, which is one of the reasons for the existence of these
integration tests in the first place.

This CL adds a batch mode, in which the tests are run "offline". The two
main differences to the original mode are: 1) rate control metrics are
calculated after the fact, and 2) no rate allocation changes are allowed
during the test. Difference 1) is the reason for this CL, as HW codecs
that are pipelining will not work well when rate control metrics are
calculated right after a frame has been sent for encode. Difference 2)
is a side effect of the introduction of the batch mode. If we want to
be able to support online rate allocation for pipelining HW codecs in
the future, this can be introduced by adding a delay between encoding
and rate allocation. This was not deemed necessary at this point in time,
and hence this CL does not do that.

The batch mode is only intended to be used for manual experimentation
on devices with HW codecs, and the integration tests running on the
bots should thus NOT use batch mode.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2707023008
Cr-Commit-Position: refs/heads/master@{#17164}
2017-03-10 12:20:10 +00:00
erikchen
31bbee73a0 mac: Fix screen capture for whole-desktop capture.
DisplayStream refresh rects are in display coordinates. When the whole screen is
being captured, the coordinates passed to the ScreenCapturerHelper need to be in
screen coordinates. This CL translates display coordinates to screen
coordinates for whole screen capture.

BUG=chromium:699672

Review-Url: https://codereview.webrtc.org/2740823002
Cr-Commit-Position: refs/heads/master@{#17153}
2017-03-09 21:19:03 +00:00
nisse
d64862ac1b Add back method CongestionController::GetTransportFeedbackObserver.
This is a partial revert of https://codereview.webrtc.org/2725823002/,
to not break downstream applications.

BUG=webrtc:7058

TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2745613002
Cr-Commit-Position: refs/heads/master@{#17152}
2017-03-09 19:45:55 +00:00
ilnik
cb8c1467bd Add FullStack test for simulcast screenshare mode.
BUG=webrtc:4172

Review-Url: https://codereview.webrtc.org/2745523002
Cr-Commit-Position: refs/heads/master@{#17150}
2017-03-09 17:23:30 +00:00
elad.alon
61ce37e2e0 Mark |Clock*| as |const Clock*| (for some CongestionController and BWE related modules)
BUG=None

Review-Url: https://codereview.webrtc.org/2735423002
Cr-Commit-Position: refs/heads/master@{#17148}
2017-03-09 15:09:31 +00:00