Commit Graph

8673 Commits

Author SHA1 Message Date
5f6deaf525 Remove unused RTP-header parser.
D'oh.

BUG=
R=sprang@webrtc.org

Review URL: https://codereview.webrtc.org/1506743003 .

Cr-Commit-Position: refs/heads/master@{#10915}
2015-12-07 15:18:18 +00:00
03671cb38a Use existing parser in ReceivesAndRetransmitsNack.
Removes logspam of "Failed to find extension id:".

BUG=
TBR=sprang@webrtc.org

Review URL: https://codereview.webrtc.org/1502993003 .

Cr-Commit-Position: refs/heads/master@{#10913}
2015-12-07 14:22:34 +00:00
fc47ed6c05 rtcp::Rrtr block moved into own file and got Parse function
BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

Review URL: https://codereview.webrtc.org/1496883002 .

Cr-Commit-Position: refs/heads/master@{#10912}
2015-12-07 13:46:42 +00:00
1aa420b6aa Remove avg encode time from CpuOveruseMetric struct and use value from OnEncodedFrame instead.
BUG=

Review URL: https://codereview.webrtc.org/1278383002

Cr-Commit-Position: refs/heads/master@{#10911}
2015-12-07 11:12:27 +00:00
b86d4e4a8d Prepare the AudioSendStream to be hooked up to send-side BWE.
This CL contains three changes as a preparation for adding audio send streams
to the send-side BWE:
1. Audio packets are passed through the pacer with high priority. This
is needed to be able to set transport sequence numbers on the packets.
2. A feedback observer is passed to the audio stream's rtcp receiver so
that the BWE can get notified of any BWE feedback being received on the
audio feedback channel.
3. Support for the transport sequence number header extension is added
to audio send streams.

BUG=webrtc:5263,webrtc:5307
R=mflodman@webrtc.org, solenberg@webrtc.org

Review URL: https://codereview.webrtc.org/1479023002 .

Cr-Commit-Position: refs/heads/master@{#10909}
2015-12-07 09:26:32 +00:00
a8565425bc Initial VideoProcessing refactoring.
This CL is the first in a series of CLs to refactor
VideoProcessing(Module) to follow Google C++ style guide and make the
code more readable.

This CL removed inheritance from Module, renames variables and makes
VideoProcessingImpl::PreprocessFrame return a frame pointer if there
is a frame to send, nullptr otherwise. The affected CLs also passes git
cl lint.

BUG=webrtc:5259

Review URL: https://codereview.webrtc.org/1482913003

Cr-Commit-Position: refs/heads/master@{#10907}
2015-12-07 09:10:01 +00:00
1218d7ad2f Allow remote fingerprint update during a call
Changes include the following
1. modify FakeDtlsIdentityStore to support alternate certificate so we could have a different fingerprint in test case.
2. dtlstransportchannel can accept a new fingerprint and trigger DTLS handshake.
3. #2 will trigger new signal on the media side to reset SRTP context. Only reset SRTP context when we are using DTLS (not SDES).
4. Test cases for caller or callee are transfees.

TBR=pthatcher@webrtc.org
BUG=webrtc:3618

This is a reland of https://codereview.webrtc.org/1453523002

Review URL: https://codereview.webrtc.org/1505573002 .

Cr-Commit-Position: refs/heads/master@{#10903}
2015-12-05 18:00:04 +00:00
86aaa4be8d Revert "Allow remote fingerprint update during a call"
This reverts commit 9c38c2d33fa6d794704d53b18f39d5235439fe63.

This commit somehow is different from what I have in my local copy. Revert and will recommit.

TBR=pthatcher@webrtc.org
BUG=3618

Review URL: https://codereview.webrtc.org/1494373004 .

Cr-Commit-Position: refs/heads/master@{#10902}
2015-12-05 17:55:54 +00:00
9c38c2d33f Allow remote fingerprint update during a call
Changes include the following
1. modify FakeDtlsIdentityStore to support alternate certificate so we could have a different fingerprint in test case.
2. dtlstransportchannel can accept a new fingerprint and trigger DTLS handshake.
3. #2 will trigger new signal on the media side to reset SRTP context. Only reset SRTP context when we are using DTLS (not SDES).
4. Test cases for caller or callee are transfees.

BUG=webrtc:3618
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1453523002 .

Cr-Commit-Position: refs/heads/master@{#10901}
2015-12-05 17:46:16 +00:00
381b4217cb Ping backup connection at a slower rate
and make it configurable from the app.
Changed the decision on whether a connection is pingable:
1.Check whether a connection is a backup connection. A connection is considered as a backup connection only if the channel is complete, the connection is active and it is not the best connection.
2. Ping a non-backup connection if it is active and for backup connection, ping it at a slower rate.
Note the default behavior is the same as before.

Also cached the channel state since we are accessing it more often.
BUG=webrtc:5034
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1455033004 .

Cr-Commit-Position: refs/heads/master@{#10900}
2015-12-04 20:24:10 +00:00
45b0efd378 Stop sending stun binding requests after certain amount of time.
Also stop it if the request timed out.

It is going to be complicated to keep this and make it sync with the connection bind request as they may be on two different ports.

BUG=

Review URL: https://codereview.webrtc.org/1465843004

Cr-Commit-Position: refs/heads/master@{#10899}
2015-12-04 16:57:31 +00:00
97f7e13c23 rtcp::ReceiverReport moved into own file and got Parse function
BUG=webrtc:5260
R=asapersson@webrtc.org

Review URL: https://codereview.webrtc.org/1453083002 .

Cr-Commit-Position: refs/heads/master@{#10897}
2015-12-04 15:13:40 +00:00
7c704b8289 Use webrtc/base/logging.h in stefan@'s ownership.
Replaces system_wrappers' logging in call/, bitrate_controller/, pacing/
and remote_bitrate_estimator/.

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

Review URL: https://codereview.webrtc.org/1484503002 .

Cr-Commit-Position: refs/heads/master@{#10896}
2015-12-04 15:13:12 +00:00
b572768efb - Remove calls to VoEDtmf from WVoE/MC.
- Flatten logic and make the relevant calls on VoE::Channel from AudioSendStream::SendTelephoneEvent().
- Store current payload type for telephone events in WVoMC, instead of setting it on the Channel. This should be refactored to be an AudioSendStream::Config parameter when we redo WVoMC::SetSendCodecs().

BUG=webrtc:4690
R=pthatcher@webrtc.org, tina.legrand@webrtc.org

Review URL: https://codereview.webrtc.org/1491743004 .

Cr-Commit-Position: refs/heads/master@{#10895}
2015-12-04 14:22:30 +00:00
bc32ab458b Remove 'video_engine_core_unittests' binary.
Merges tests into 'video_engine_tests' to reduce the number of test
targets.

BUG=webrtc:1695
R=kjellander@webrtc.org, phoglund@webrtc.org

Review URL: https://codereview.webrtc.org/1409803007 .

Cr-Commit-Position: refs/heads/master@{#10891}
2015-12-04 09:59:02 +00:00
ff24c04c73 Add tests for vp9 (non-flexible mode) using different spatial and temporal configurations.
Specify kf_min_dist to get correct key frame interval in svc mode.

Also set QP-max/min per temporal and spatial layer (was previously only allowed to be set per spatial layer).

BUG=chromium:500602
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1492633005 .

Cr-Commit-Position: refs/heads/master@{#10890}
2015-12-04 09:58:23 +00:00
f7c5776d42 Refactorings to send RTCP packets directly via the RtcpPacket callback, with some simplifications enabled by this. NACK now also sent via RtcpPacket.
BUG=webrtc:2450
R=asapersson@webrtc.org

Review URL: https://codereview.webrtc.org/1309833002 .

Cr-Commit-Position: refs/heads/master@{#10888}
2015-12-04 09:40:54 +00:00
d048aa0e64 Make the audio codecs' GN targets self-sufficient
Also running "gn format" on the file.

R=kwiberg@webrtc.org

Review URL: https://codereview.webrtc.org/1494993002 .

Cr-Commit-Position: refs/heads/master@{#10886}
2015-12-03 16:47:35 +00:00
b4a1ae5299 Add separate send-side UMA stats for screenshare and video.
This CL duplicates all the histograms in SendStatisticsProxy. Might be
overkill, but we don't know which stats will be interesting and it makes
the change easier.

BUG=

Review URL: https://codereview.webrtc.org/1433393002

Cr-Commit-Position: refs/heads/master@{#10885}
2015-12-03 16:10:13 +00:00
a4527c89e7 Add comments about the Audio parts of the public Call API being WIP.
BUG=webrtc:4690
R=kjellander@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1493933003 .

Cr-Commit-Position: refs/heads/master@{#10882}
2015-12-03 12:06:31 +00:00
631e134551 Rewrote the thread synchronization parts of the test for the locking in APM in response to a locking problem when running in a single-threaded manner.
To try to resolve the problem I replaced the custom synchronization with rtc::Event which made the code cleaner, faster, and less error prone.

However, in the end the source of the test locks was that during TearDown one of the threads was stuck in a waiting loop.

I added a fix for the TearDown issue but still decided to keep the rtc:Event - based code change metioned above as that gave a more clean code.

BUG=

Review URL: https://codereview.webrtc.org/1490113004

Cr-Commit-Position: refs/heads/master@{#10880}
2015-12-03 09:15:37 +00:00
c3e0fe7c21 Make it extra safe when deleting a turn entry.
Check if it is in the list of turn entries before attempting to delete it.

BUG=

Review URL: https://codereview.webrtc.org/1458013004

Cr-Commit-Position: refs/heads/master@{#10877}
2015-12-03 00:43:33 +00:00
7635684130 Fix Mac ObjC PeerConnection API compilation.
BUG=webrtc:5287,webrtc:5216

Review URL: https://codereview.webrtc.org/1493003002

Cr-Commit-Position: refs/heads/master@{#10876}
2015-12-03 00:42:41 +00:00
de0fc58784 Adding two more debug macros for logging scalar values to file.
The two added macros simplifies the logging code when a value which is not stored in a variable should be logged.

BUG=

Review URL: https://codereview.webrtc.org/1488613002

Cr-Commit-Position: refs/heads/master@{#10870}
2015-12-02 16:20:56 +00:00
2515af28e9 Removing some unnecessary string manipulation code from VoEBase::GetVersion().
BUG=webrtc:4690

Review URL: https://codereview.webrtc.org/1493663002

Cr-Commit-Position: refs/heads/master@{#10868}
2015-12-02 14:19:44 +00:00
c729032b1b Resolves issue with multiple calls to audio unit initialization
BUG=webrtc:5166
R=tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1472833002 .

Cr-Commit-Position: refs/heads/master@{#10865}
2015-12-02 09:46:57 +00:00
40455d6f37 This cl change so that we use EGL14 where it is supported and EGL10 otherwise. The idea is to make this agnostic to an application and for WebRTC except in EGLBase.
The reason we want to use EGL14 is to be able to use EGLExt.eglPresentationTimeANDROID when writing textures to MediaEncoder.

BUG=webrtc:4993
TBR=glaznew@webrtc.org

Review URL: https://codereview.webrtc.org/1461083002

Cr-Commit-Position: refs/heads/master@{#10864}
2015-12-02 09:07:22 +00:00
e3384990ea Revert of Add tests for vp9 (non-flexible mode) using different spatial and temporal configurations. (patchset #18 id:580001 of https://codereview.webrtc.org/1437463002/ )
Reason for revert:
Breaks bots

Original issue's description:
> Add tests for vp9 (non-flexible mode) using different spatial and temporal configurations.
>
> Specify kf_min_dist to get correct key frame interval in svc mode.
>
> BUG=chromium:500602
>
> Committed: https://crrev.com/43b48066a7d75bb051eea1e6f451147339cc98a6
> Cr-Commit-Position: refs/heads/master@{#10862}

TBR=pbos@webrtc.org,stefan@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:500602

Review URL: https://codereview.webrtc.org/1492783002

Cr-Commit-Position: refs/heads/master@{#10863}
2015-12-02 09:05:20 +00:00
43b48066a7 Add tests for vp9 (non-flexible mode) using different spatial and temporal configurations.
Specify kf_min_dist to get correct key frame interval in svc mode.

BUG=chromium:500602

Review URL: https://codereview.webrtc.org/1437463002

Cr-Commit-Position: refs/heads/master@{#10862}
2015-12-02 07:52:19 +00:00
187db63fdf Remove VideoReceiveStream deregister of decoders.
Also doing some simplifications inside video_coding. No CHECKs added,
since they appear to have introduced breakages in downstream tests.

Overall reducing the number of potential ways a decoder could possibly
be set null. Removing deregistration of external decoders should also
give a quicker shutdown time since that may attempt to register
internal decoders.

BUG=chromium:563299
TBR=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1483423002 .

Cr-Commit-Position: refs/heads/master@{#10858}
2015-12-01 16:20:09 +00:00
f94abf720d Nuke webrtc/common_video/plane.*.
Unused code that is unreferenced from build files.

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

Review URL: https://codereview.webrtc.org/1486103002 .

Cr-Commit-Position: refs/heads/master@{#10856}
2015-12-01 13:10:38 +00:00
dfbb3a4bfc Simplify CodecManager::RegisterEncoder()
BUG=webrtc:5028

Review URL: https://codereview.webrtc.org/1483963002

Cr-Commit-Position: refs/heads/master@{#10855}
2015-12-01 12:45:09 +00:00
46c9cc0190 Provide method for returning certificate expiration time stamp.
We convert ASN1 time via std::tm to int64_t representing milliseconds-since-epoch. We do not use time_t since that cannot store milliseconds, and expires for 32-bit platforms in 2038 also for seconds.

Conversion via std::tm might might seem silly, but actually doesn't add any complexity.

One would expect tm -> seconds-since-epoch to already exist on the standard library. There is mktime, but it uses localtime (and sets an environment variable, and has the 2038 problem).

The ASN1 TIME parsing is limited to what is required by RFC 5280.

BUG=webrtc:5150
R=hbos@webrtc.org, nisse@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1468273004 .

Cr-Commit-Position: refs/heads/master@{#10854}
2015-12-01 12:06:46 +00:00
ea07373a2e Enable cpplint for webrtc/audio and webrtc/call, and fix all uncovered cpplint errors.
BUG=webrtc:5268,webrtc:5273
TESTED=Fixed issues reported by:
find webrtc/audio -type f -name *.cc -o -name *.h | xargs cpplint.py
find webrtc/call -type f -name *.cc -o -name *.h | xargs cpplint.py
followed by 'git cl presubmit'.

R=kjellander@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1483323002 .

Cr-Commit-Position: refs/heads/master@{#10853}
2015-12-01 10:26:46 +00:00
ec192bdb64 Revert of Add _decoder CHECK to VCMGenericDecoder constructor. (patchset #2 id:20001 of https://codereview.webrtc.org/1485713002/ )
Reason for revert:
Speculative revert since a downstream test started failing with this.

Original issue's description:
> Add _decoder CHECK to VCMGenericDecoder constructor.
>
> This should never be using a null decoder, but it looks like it's
> crashing out in the field. Adding a CHECK to see if it catches any
> interesting stack traces.
>
> Also making the _decoder pointer const to show that it should never be
> changing.
>
> BUG=chromium:563299
> R=stefan@webrtc.org
>
> Committed: a443ec1a75

TBR=stefan@webrtc.org,pbos@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:563299

Review URL: https://codereview.webrtc.org/1490703002

Cr-Commit-Position: refs/heads/master@{#10851}
2015-12-01 07:14:37 +00:00
9f8d39d1b6 Add simple end to end test for video capture and encode using textures.
BUG=webrtc:4993

Review URL: https://codereview.webrtc.org/1482333002

Cr-Commit-Position: refs/heads/master@{#10849}
2015-12-01 06:59:42 +00:00
14f4144a82 Add helper KeepRefUntilDone.
The callback keeps a reference to an object until the callback goes out of scope.

Review URL: https://codereview.webrtc.org/1487493002

Cr-Commit-Position: refs/heads/master@{#10847}
2015-12-01 06:15:53 +00:00
a443ec1a75 Add _decoder CHECK to VCMGenericDecoder constructor.
This should never be using a null decoder, but it looks like it's
crashing out in the field. Adding a CHECK to see if it catches any
interesting stack traces.

Also making the _decoder pointer const to show that it should never be
changing.

BUG=chromium:563299
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1485713002 .

Cr-Commit-Position: refs/heads/master@{#10843}
2015-11-30 18:15:02 +00:00
7640ffabd7 Initialize type_preference_ in TestPort.
Prevents use of undefined memory for logging during
PortTest.TestLoopbackCal which was recently enabled for all release
builds.

BUG=
R=asapersson@webrtc.org
TBR=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1480233003

Cr-Commit-Position: refs/heads/master@{#10842}
2015-11-30 17:17:07 +00:00
df3efa8c07 Introduced the new locking scheme
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1424663003

Cr-Commit-Position: refs/heads/master@{#10836}
2015-11-28 20:35:18 +00:00
7e43138c08 -Removed the state as an input to the FilterAdaptation function.
-Renamed the TimeToFrequency and FrequencyToTime functions.
-Moved the windowing from the TimeToFrequency function.
-Simplified the EchoSubtraction function.

Note that the aec state is still an input to the EchoSubtraction function, and it currently needs to be that in order to support the output of the debug file. The longer-term goal is, however, to order the state into substates. This will simplify the parameter lists to the EchoCancellation function as well as replace the aec state as a parameter

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1456123003

Cr-Commit-Position: refs/heads/master@{#10830}
2015-11-27 23:24:32 +00:00
19822d63c1 audio_coding: Cleanup duplicated headers after "main" removal.
In https://codereview.webrtc.org/1481493004/ some duplicated headers
were left to make it possible to update downstream without breakage.
Now that's done and we can remove these to avoid confusion.

BUG=webrtc:5095
TBR=henrik.lundin@webrtc.org, kwiberg@webrtc.org
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
NOTRY=True

Review URL: https://codereview.webrtc.org/1477423002

Cr-Commit-Position: refs/heads/master@{#10829}
2015-11-27 18:55:49 +00:00
358057b945 Use ChannelProxy for most calls on voe::Channel in Audio[Receive|Send]Stream.
BUG=webrtc:4690

Review URL: https://codereview.webrtc.org/1482703002

Cr-Commit-Position: refs/heads/master@{#10828}
2015-11-27 18:46:47 +00:00
ad856229a7 Use webrtc/base/logging.h for voice_engine.
BUG=webrtc:5118
R=henrika@webrtc.org

Review URL: https://codereview.webrtc.org/1474363002

Cr-Commit-Position: refs/heads/master@{#10827}
2015-11-27 17:48:40 +00:00
def58203a1 Default to LS_INFO logging for release builds.
Increases default loglevel for test targets to LS_INFO, which is a no-op
for debug builds but increases logging on release builds.

This is to present better debug info on buildbots when test runs fail.

BUG=
R=henrikg@webrtc.org, kjellander@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1479183002 .

Cr-Commit-Position: refs/heads/master@{#10826}
2015-11-27 16:53:31 +00:00
521af4e344 Remove duplicate decoders in BitrateEstimatorTest.
Multiple decoders were used for the same payload type in this test case,
causing CHECK failures when configuring.

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

Review URL: https://codereview.webrtc.org/1484443003 .

Cr-Commit-Position: refs/heads/master@{#10825}
2015-11-27 15:35:14 +00:00
395c7c6519 Re-add missing return in RegisterExternalDecoder.
Breaks waterfall due to possible null-pointer dereferences.

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

Review URL: https://codereview.webrtc.org/1483623002 .

Cr-Commit-Position: refs/heads/master@{#10824}
2015-11-27 14:23:20 +00:00
f8385aded0 rtcp::Pli moved into own file and got a Parse function
Created rtcp::Psfb abstract class between rtcp::Pli and rtcp::RtcpPacket to hold common data for Feedback Message.

BUG=webrtc:5260

Review URL: https://codereview.webrtc.org/1446513002

Cr-Commit-Position: refs/heads/master@{#10823}
2015-11-27 13:36:17 +00:00
e997a7de14 Call InitDecode with proper resolution.
Prevents double-initialization of decoders due to resolution changes
between initial database settings and first incoming frame.

BUG=webrtc:5251
R=mflodman@webrtc.org

Review URL: https://codereview.webrtc.org/1474193002 .

Cr-Commit-Position: refs/heads/master@{#10822}
2015-11-27 13:23:30 +00:00
795dbe4e0f Remove RegisterExternal{De,En}coder error codes.
Also adds a RTC_CHECK in VideoReceiveStream that verifies that decoders
aren't null, since this will attempt to deregister a codec which would
previously fail with an obscure stack trace not indicating what actually
was wrong.

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

Review URL: https://codereview.webrtc.org/1479793002 .

Cr-Commit-Position: refs/heads/master@{#10821}
2015-11-27 13:09:14 +00:00