The only thing that was holding us back was the indeterministic teardown of voe::Channel(), but it turned out that fixing it wasn't that hard :)
BUG=webrtc:4508
Review-Url: https://codereview.webrtc.org/2755273004
Cr-Commit-Position: refs/heads/master@{#17315}
It depends on RTCP RPSI and SLI messages, which are being deleted.
TBR=stefan@webrtc.org # TODO comments added to common_types.h
BUG=webrtc:7338
Review-Url: https://codereview.webrtc.org/2753783002
Cr-Commit-Position: refs/heads/master@{#17314}
This is one step towards separation of send-side and receive-side
processing.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2740163002
Cr-Commit-Position: refs/heads/master@{#17306}
The results of the echo detector complexity tests are currently notoriously spiky and unreliable. The following improvements are made in this CL:
- Significantly longer warmup time before starting the test
- More iterations and larger batches
- Different number of iterations for slow and fast tests
- Use the echo likelihood in the test so it cannot get optimized out
BUG=webrtc:7353
Review-Url: https://codereview.webrtc.org/2750413002
Cr-Commit-Position: refs/heads/master@{#17303}
Test for the conversational_speech::Config class and renaming.
BUG=webrtc:7218
Review-Url: https://codereview.webrtc.org/2749573002
Cr-Commit-Position: refs/heads/master@{#17301}
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.
This is a reland of https://codereview.webrtc.org/2740063004/ which
was reverted. Now the build errors are fixed.
BUG=webrtc:7218
Review-Url: https://codereview.webrtc.org/2752793002
Cr-Commit-Position: refs/heads/master@{#17300}
CreateRawScreenCapturer() and CreateRawWindowCapturer() in
DesktopCapturer are allowed to return nullptr when capturer cannot be
initialized for some reason. CreateWindowCapturer() and
CreateScreenCapturer() in DesktopCapturer were not handling this case
correctly, which may lead to crash.
BUG=chromium:702745
Review-Url: https://codereview.webrtc.org/2754403002
Cr-Commit-Position: refs/heads/master@{#17298}
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}
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: be35a008efTBR=stefan@webrtc.org
BUG=chromium:698088, webrtc:7139
Review-Url: https://codereview.webrtc.org/2751843003
Cr-Commit-Position: refs/heads/master@{#17289}
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}
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}
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}
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}
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}
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: 0cf3aa6d0dTBR=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}
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}
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: 620d75f5beTBR=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}
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}
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}
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}
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}
* 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}
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}
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}
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}