Commit Graph

7329 Commits

Author SHA1 Message Date
6d6122b461 Avoid race in Call destructor
Don't update histograms until we're sure process threads won't call into
the instance being destructed, trying to update stats.

BUG=webrtc:6103

Review-Url: https://codereview.webrtc.org/2151433002
Cr-Commit-Position: refs/heads/master@{#13461}
2016-07-13 13:37:14 +00:00
f93be584f7 Revert of WebRtcVoiceEngine: Use AudioDecoderFactory to generate recv codecs. (patchset #10 id:200001 of https://codereview.webrtc.org/2072753002/ )
Reason for revert:
For some reason, payload_type_mapper.cc is not being picked up in Chrome builds, leading to undefined references. Reverting while investigating.

Original issue's description:
> WebRtcVoiceEngine: Use AudioDecoderFactory to generate recv codecs.
>
> Changed WebRtcVoiceEngine to present receive codecs from the formats
> provided by its decoder factory. Added supported formats to
> BuiltinAudioDecoderFactory. Added helper functions for creating some
> simple decoder factories for mocking.
>
> Created a PayloadTypeMapper for assigning payload types to formats. I
> think we'll eventually want to use this further up, or possibly in
> both the audio and video sides. It would be best if the engines didn't
> have to talk payload types at all, but it might be more difficult to
> get around when payload types depend on each-other, like the RTX
> codecs for video.
>
> This CL also includes some changes to rtc::Optional. I've put them in
> a separate CL that should (or should not) land first, making these
> changes void.
> See: https://codereview.webrtc.org/2072713002/
>
> BUG=webrtc:5805
>
> Committed: https://crrev.com/95eb1ba0db79d8fd134ae61b0a24648598684e8a
> Cr-Commit-Position: refs/heads/master@{#13459}

TBR=ivoc@webrtc.org,tina.legrand@webrtc.org,tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2151453002
Cr-Commit-Position: refs/heads/master@{#13460}
2016-07-13 13:31:37 +00:00
95eb1ba0db WebRtcVoiceEngine: Use AudioDecoderFactory to generate recv codecs.
Changed WebRtcVoiceEngine to present receive codecs from the formats
provided by its decoder factory. Added supported formats to
BuiltinAudioDecoderFactory. Added helper functions for creating some
simple decoder factories for mocking.

Created a PayloadTypeMapper for assigning payload types to formats. I
think we'll eventually want to use this further up, or possibly in
both the audio and video sides. It would be best if the engines didn't
have to talk payload types at all, but it might be more difficult to
get around when payload types depend on each-other, like the RTX
codecs for video.

This CL also includes some changes to rtc::Optional. I've put them in
a separate CL that should (or should not) land first, making these
changes void.
See: https://codereview.webrtc.org/2072713002/

BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2072753002
Cr-Commit-Position: refs/heads/master@{#13459}
2016-07-13 13:05:32 +00:00
7470eb7977 Revert of Clean up unused cricket::VideoCapturer inclusion from mediaengine.h (patchset #1 id:1 of https://codereview.webrtc.org/2149533002/ )
Reason for revert:
Still broken- but different place.

Original issue's description:
> Reland of Clean up unused cricket::VideoCapturer inclusion from mediaengine.h (patchset #1 id:1 of https://codereview.webrtc.org/2142893002/ )
>
> Reason for revert:
> Upstream fixed.
>
> Original issue's description:
> > Revert of Clean up unused cricket::VideoCapturer inclusion from mediaengine.h (patchset #1 id:1 of https://codereview.webrtc.org/2147443002/ )
> >
> > Reason for revert:
> > Breaks up stream projects.
> >
> > Original issue's description:
> > > Clean up unused cricket::VideoCapturer inclusion from mediaengine.h
> > >
> > > TBR=nisse@webrtc.org
> > > BUG=webrtc:5426
> > >
> > > Committed: https://crrev.com/1e56991f248f8235c69cb3d95b35a44389c48354
> > > Cr-Commit-Position: refs/heads/master@{#13446}
> >
> > TBR=nisse@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:5426
> >
> > Committed: https://crrev.com/3a9f41e584953226e43bf312ec59d625c97cfd62
> > Cr-Commit-Position: refs/heads/master@{#13447}
>
> TBR=nisse@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5426
>
> Committed: https://crrev.com/e03c1618152824a980664536a64bc29d63740ad7
> Cr-Commit-Position: refs/heads/master@{#13456}

TBR=nisse@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

Review-Url: https://codereview.webrtc.org/2143123003
Cr-Commit-Position: refs/heads/master@{#13458}
2016-07-13 10:03:09 +00:00
5dd941e5a5 Revert of Adds data logging in native AudioDeviceBuffer class (patchset #1 id:1 of https://codereview.webrtc.org/2138403003/ )
Reason for revert:
Reverting again since it might have caused this issue:

https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28L%20Nexus9%29/builds/13622/steps/content_browsertests/logs/stdio

Original issue's description:
> Reland of Adds data logging in native AudioDeviceBuffer class (patchset #1 id:1 of https://codereview.webrtc.org/2139233002/ )
>
> Reason for revert:
> My original patch broke things that are now fixed by https://codereview.webrtc.org/2141193002/.
>
> Hence I am relanding my original change.
>
> Original issue's description:
> > Revert of Adds data logging in native AudioDeviceBuffer class (patchset #10 id:180001 of https://codereview.webrtc.org/2132613002/ )
> >
> > Reason for revert:
> > Seems to break things upstream.
> >
> > Original issue's description:
> > > Adds data logging in native AudioDeviceBuffer class.
> > >
> > > Goal is to provide periodic logging of most essential audio parameters
> > > for playout and recording sides. It will allow us to track if the native audio layer is working as intended.
> > >
> > > BUG=NONE
> > >
> > > Committed: https://crrev.com/348e411dd27e6dbe9b84b27ce46e9b7c657c1eae
> > > Cr-Commit-Position: refs/heads/master@{#13440}
> >
> > TBR=stefan@webrtc.org,henrika@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=NONE
> >
> > Committed: https://crrev.com/025aa94ccb85e4c6fe20a3fecdac5d27ec9ba3da
> > Cr-Commit-Position: refs/heads/master@{#13441}
>
> TBR=stefan@webrtc.org,sprang@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=NONE
>
> Committed: https://crrev.com/dd2fdecc78c50377d10ec98b41179acde9218ee7
> Cr-Commit-Position: refs/heads/master@{#13455}

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

Review-Url: https://codereview.webrtc.org/2141413002
Cr-Commit-Position: refs/heads/master@{#13457}
2016-07-13 09:32:45 +00:00
e03c161815 Reland of Clean up unused cricket::VideoCapturer inclusion from mediaengine.h (patchset #1 id:1 of https://codereview.webrtc.org/2142893002/ )
Reason for revert:
Upstream fixed.

Original issue's description:
> Revert of Clean up unused cricket::VideoCapturer inclusion from mediaengine.h (patchset #1 id:1 of https://codereview.webrtc.org/2147443002/ )
>
> Reason for revert:
> Breaks up stream projects.
>
> Original issue's description:
> > Clean up unused cricket::VideoCapturer inclusion from mediaengine.h
> >
> > TBR=nisse@webrtc.org
> > BUG=webrtc:5426
> >
> > Committed: https://crrev.com/1e56991f248f8235c69cb3d95b35a44389c48354
> > Cr-Commit-Position: refs/heads/master@{#13446}
>
> TBR=nisse@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5426
>
> Committed: https://crrev.com/3a9f41e584953226e43bf312ec59d625c97cfd62
> Cr-Commit-Position: refs/heads/master@{#13447}

TBR=nisse@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

Review-Url: https://codereview.webrtc.org/2149533002
Cr-Commit-Position: refs/heads/master@{#13456}
2016-07-13 08:57:31 +00:00
dd2fdecc78 Reland of Adds data logging in native AudioDeviceBuffer class (patchset #1 id:1 of https://codereview.webrtc.org/2139233002/ )
Reason for revert:
My original patch broke things that are now fixed by https://codereview.webrtc.org/2141193002/.

Hence I am relanding my original change.

Original issue's description:
> Revert of Adds data logging in native AudioDeviceBuffer class (patchset #10 id:180001 of https://codereview.webrtc.org/2132613002/ )
>
> Reason for revert:
> Seems to break things upstream.
>
> Original issue's description:
> > Adds data logging in native AudioDeviceBuffer class.
> >
> > Goal is to provide periodic logging of most essential audio parameters
> > for playout and recording sides. It will allow us to track if the native audio layer is working as intended.
> >
> > BUG=NONE
> >
> > Committed: https://crrev.com/348e411dd27e6dbe9b84b27ce46e9b7c657c1eae
> > Cr-Commit-Position: refs/heads/master@{#13440}
>
> TBR=stefan@webrtc.org,henrika@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=NONE
>
> Committed: https://crrev.com/025aa94ccb85e4c6fe20a3fecdac5d27ec9ba3da
> Cr-Commit-Position: refs/heads/master@{#13441}

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

Review-Url: https://codereview.webrtc.org/2138403003
Cr-Commit-Position: refs/heads/master@{#13455}
2016-07-13 08:49:02 +00:00
7b020da9d7 Call event_assign() instead of event_set(), when available.
event_set() has been deprecated and doesn't allow passing the main loop to be passed to initialize the event.  event_assign() is the method to call in Event2 when available.  However, we still need to be compatible with Chromium's version of libevent, so there's an #ifdef check in the meantime.

BUG=

Review-Url: https://codereview.webrtc.org/2141193002
Cr-Commit-Position: refs/heads/master@{#13454}
2016-07-13 07:56:46 +00:00
9c16fe84b9 Implement SequencedTaskChecker.
SequencedTaskChecker is a helper class used to help verify that some methods
of a class are called on the same task queue or thread. A
SequencedTaskChecker is bound to a a task queue if the object is
created on a task queue, or a thread otherwise.

BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/2125113003
Cr-Commit-Position: refs/heads/master@{#13452}
2016-07-12 22:04:13 +00:00
95663fe746 Remove unused NonlinearBeamformer interface
Review-Url: https://codereview.webrtc.org/2129663002
Cr-Commit-Position: refs/heads/master@{#13451}
2016-07-12 19:43:09 +00:00
9794366ff0 Fixing memory leak in TurnServer.
If the test TURN server received two allocate requests from the same
address, it was replacing the old allocation but not deleting it.

Also switching to std::unique_ptr to make it less likely for this to
pop up again.

Review-Url: https://codereview.webrtc.org/2114063002
Cr-Commit-Position: refs/heads/master@{#13449}
2016-07-12 18:04:57 +00:00
e5a246f693 SurfaceViewRendererOnMeasureTest: Wait for frame size change to take effect
SurfaceViewRendererOnMeasureTest#testFrame1280x720 is currently flaky
because of a race. This issue was introduced here:
https://codereview.webrtc.org/2111933002/. That CL moved the function
updateFrameDimensionsAndReportEvents() from renderFrame() to
renderFrameOnRenderThread(). The OnMeasureTest currently just calls
renderFrame() with a new frame size and immediately starts testing the
measured size, which might be before renderFrameOnRenderThread() is
executed. This CL waits for the RendererEvents.onFrameResolutionChanged()
callback before starting the test to fix this race.

BUG=webrtc:6089

Review-Url: https://codereview.webrtc.org/2147463002
Cr-Commit-Position: refs/heads/master@{#13448}
2016-07-12 14:48:22 +00:00
3a9f41e584 Revert of Clean up unused cricket::VideoCapturer inclusion from mediaengine.h (patchset #1 id:1 of https://codereview.webrtc.org/2147443002/ )
Reason for revert:
Breaks up stream projects.

Original issue's description:
> Clean up unused cricket::VideoCapturer inclusion from mediaengine.h
>
> TBR=nisse@webrtc.org
> BUG=webrtc:5426
>
> Committed: https://crrev.com/1e56991f248f8235c69cb3d95b35a44389c48354
> Cr-Commit-Position: refs/heads/master@{#13446}

TBR=nisse@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

Review-Url: https://codereview.webrtc.org/2142893002
Cr-Commit-Position: refs/heads/master@{#13447}
2016-07-12 12:54:26 +00:00
Per
1e56991f24 Clean up unused cricket::VideoCapturer inclusion from mediaengine.h
TBR=nisse@webrtc.org
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#13446}
2016-07-12 12:25:25 +00:00
a44f28da45 Revert of Visualization tool for WebrtcEventLogs (patchset #9 id:160001 of https://codereview.webrtc.org/1995523002/ )
Reason for revert:
Reverting while investigating a downstream build failure.

Original issue's description:
> Initial version of the local visualization tool for WebrtcEventLogs.
>
> Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.
>
> Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.
>
> Committed: https://crrev.com/a478786ef1513790194792010f766324a469db4d
> Cr-Commit-Position: refs/heads/master@{#13443}

TBR=stefan@webrtc.org,aleloi@webrtc.org,phoglund@webrtc.org,henrika@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2147453002
Cr-Commit-Position: refs/heads/master@{#13445}
2016-07-12 12:11:29 +00:00
d658edeeed Report Unique_frames_count from frame_analyzer using 'score' units.
With this change, an increase in Unique_frames_count will be marked
as an improvement (rather than a deterioration) in the Chrome Performance
Dashboard.

BUG=chromium:623521
R=phoglund@webrtc.org

Review-Url: https://codereview.webrtc.org/2142813002
Cr-Commit-Position: refs/heads/master@{#13444}
2016-07-12 11:53:10 +00:00
a478786ef1 Initial version of the local visualization tool for WebrtcEventLogs.
Plot graphs to python code. Generate packet, playout, sequence number and total bitrate graphs.

Add bitrate and latency plots. Generate multiple figures, and control which ones are used through command line flags.

Review-Url: https://codereview.webrtc.org/1995523002
Cr-Commit-Position: refs/heads/master@{#13443}
2016-07-12 11:30:31 +00:00
025aa94ccb Revert of Adds data logging in native AudioDeviceBuffer class (patchset #10 id:180001 of https://codereview.webrtc.org/2132613002/ )
Reason for revert:
Seems to break things upstream.

Original issue's description:
> Adds data logging in native AudioDeviceBuffer class.
>
> Goal is to provide periodic logging of most essential audio parameters
> for playout and recording sides. It will allow us to track if the native audio layer is working as intended.
>
> BUG=NONE
>
> Committed: https://crrev.com/348e411dd27e6dbe9b84b27ce46e9b7c657c1eae
> Cr-Commit-Position: refs/heads/master@{#13440}

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

Review-Url: https://codereview.webrtc.org/2139233002
Cr-Commit-Position: refs/heads/master@{#13441}
2016-07-12 10:08:51 +00:00
348e411dd2 Adds data logging in native AudioDeviceBuffer class.
Goal is to provide periodic logging of most essential audio parameters
for playout and recording sides. It will allow us to track if the native audio layer is working as intended.

BUG=NONE

Review-Url: https://codereview.webrtc.org/2132613002
Cr-Commit-Position: refs/heads/master@{#13440}
2016-07-12 09:18:46 +00:00
11dd52bcc6 H264VideoToolboxEncoder: Add support for native handles
Support encoding from CVPixelBuffers directly in H264VideoToolboxEncoder.
If the frame needs to be scaled, it will fall back to the previous slow
path:
CVPixelBuffer -> NV12 -> I420 -> (scale) I420 -> NV12 -> CVPixelBuffer.

BUG=webrtc:4081

Review-Url: https://codereview.webrtc.org/2140573002
Cr-Commit-Position: refs/heads/master@{#13439}
2016-07-12 08:26:47 +00:00
b89257a51b Handle initialization race in TaskQueue on Windows, discovered by drmemory.
The issue was that if the main entry routine of the thread would get called before the first APC, the thread would hang on a GetMessage() call and the APC sent to initialize the thread, would never run.

BUG=

Review-Url: https://codereview.webrtc.org/2139723003
Cr-Commit-Position: refs/heads/master@{#13438}
2016-07-12 08:24:41 +00:00
8c59617c5a add convert_from.h include for ConvertFromI420
webrtc doesnt include the header that the function is prototyped in.
This CL makes the convert_from.h include those headers to allow webrtc to
update to the head libyuv.

R=marpan@webrtc.org,pbos@webrtc.org
BUG=libyuv:620,webrtc:6094
TESTED=local build and try bots

Review-Url: https://codereview.webrtc.org/2139853002
Cr-Commit-Position: refs/heads/master@{#13436}
2016-07-12 01:31:59 +00:00
af6b6e021f Prefix bool variable with "should".
This is to address a comment in a CL landed earlier.

BUG=

Review-Url: https://codereview.webrtc.org/2137223002
Cr-Commit-Position: refs/heads/master@{#13435}
2016-07-11 22:09:32 +00:00
b4d31085b4 Added various timestamps to FrameObject.
Added various timestamps to the FrameObject class which are needed to calculate
the jitter delay.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2124943002
Cr-Commit-Position: refs/heads/master@{#13434}
2016-07-11 15:46:35 +00:00
3d70fef3f3 Remove DtlsIdentityStoreInterface, it is no longer used.
This interface and its implementations have been replaced by
rtc::RTCCertificateGeneratorInterface.

Removes dtlsidentitystore.h, updates .gyp/gn and removes old #includes.

BUG=webrtc:5707, webrtc:5708

Review-Url: https://codereview.webrtc.org/2034013003
Cr-Commit-Position: refs/heads/master@{#13432}
2016-07-11 11:10:14 +00:00
a2c900877d Revert of Protect MessageQueue stop field with a critical section to avoid data races. (patchset #5 id:80001 of https://codereview.webrtc.org/2023193002/ )
Reason for revert:
Only reasonable CL in blameslist for broken Chrome FYI bots on all platforms. See

https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Mac%20Builder

Original issue's description:
> Protect MessageQueue stop field with a critical section to avoid data races.
>
> Committed: https://crrev.com/1d35d2971b1e89b3ecadb7fb1ff064f9af850ad4
> Cr-Commit-Position: refs/heads/master@{#13430}

TBR=pthatcher@webrtc.org,tommi@webrtc.org,deadbeef@webrtc.org,tommi@chromium.org,pbos@webrtc.org,andresp@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2135173002
Cr-Commit-Position: refs/heads/master@{#13431}
2016-07-11 09:48:49 +00:00
1d35d2971b Protect MessageQueue stop field with a critical section to avoid data races.
Review-Url: https://codereview.webrtc.org/2023193002
Cr-Commit-Position: refs/heads/master@{#13430}
2016-07-11 09:23:50 +00:00
c2c24f795e Remove frame rate and target bitrate from ProtectionBitrateCalculator::SetEncodingData
These arguments are not really known when calling SetEncodingData. They are still provided as argument to ProtectionBitrateCalculator::SetTargetRates though.

This cl is broken out from https://codereview.webrtc.org/2060403002/
BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/2121983002
Cr-Commit-Position: refs/heads/master@{#13429}
2016-07-11 08:47:36 +00:00
5e12d36ba7 Reset InterArrival if arrival time clock makes a jump.
Also adds a copy of the BWE test suite to the new DelayBasedBwe class.

BUG=webrtc:6079

Review-Url: https://codereview.webrtc.org/2126793002
Cr-Commit-Position: refs/heads/master@{#13428}
2016-07-11 08:44:12 +00:00
d1f83cf35b include planar functions for I420Rect()
The prototype for I420Rect is in libyuv/planar_functions.h
In the past the header was included by convert.h but in future versions
the headers dont include each other so its important to include the
specific header needed.

R=marpan@webrtc.org
BUG=webrtc:6091

Review-Url: https://codereview.webrtc.org/2130153005
Cr-Commit-Position: refs/heads/master@{#13421}
2016-07-09 00:33:28 +00:00
5d3f2bae48 Fix missing ObjC framework header.
BUG=webrtc:6082
NOTRY=True

Review-Url: https://codereview.webrtc.org/2127373004
Cr-Commit-Position: refs/heads/master@{#13420}
2016-07-08 20:04:05 +00:00
a49f1105eb Revert of Reland Issue 2061423003: Refactor NACK bitrate allocation (patchset #1 id:1 of https://codereview.webrtc.org/2131313002/ )
Reason for revert:
It keeps breaking upstream.

Original issue's description:
> Reland Issue 2061423003: Refactor NACK bitrate allocation
>
> This is a reland of https://codereview.webrtc.org/2061423003/
> Which was reverted in https://codereview.webrtc.org/2131913003/
>
> The reason for the revert was that some upstream code used
> RtpSender::SetTargetBitrate(). I've added that back as a no-op until we
> it's been brought up to date.
>
> TBR=tommi@webrtc.org
>
> Committed: 05ce4ae31f

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

Review-Url: https://codereview.webrtc.org/2130423002
Cr-Commit-Position: refs/heads/master@{#13419}
2016-07-08 18:02:02 +00:00
05ce4ae31f Reland Issue 2061423003: Refactor NACK bitrate allocation
This is a reland of https://codereview.webrtc.org/2061423003/
Which was reverted in https://codereview.webrtc.org/2131913003/

The reason for the revert was that some upstream code used
RtpSender::SetTargetBitrate(). I've added that back as a no-op until we
it's been brought up to date.

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13418}
2016-07-08 17:11:23 +00:00
e5dd44101e Revert of Refactor NACK bitrate allocation (patchset #16 id:300001 of https://codereview.webrtc.org/2061423003/ )
Reason for revert:
Breaks upstream code.

Original issue's description:
> Refactor NACK bitrate allocation
>
> Nack bitrate allocation should not be done on a per-rtp-module basis,
> but rather shared bitrate pool per call. This CL moves allocation to the
> pacer and cleans up a bunch if bitrate stats handling.
>
> BUG=
> R=danilchap@webrtc.org, stefan@webrtc.org, tommi@webrtc.org
>
> Committed: 5fc59e810b

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

Review-Url: https://codereview.webrtc.org/2131913003
Cr-Commit-Position: refs/heads/master@{#13417}
2016-07-08 16:39:02 +00:00
5fc59e810b Refactor NACK bitrate allocation
Nack bitrate allocation should not be done on a per-rtp-module basis,
but rather shared bitrate pool per call. This CL moves allocation to the
pacer and cleans up a bunch if bitrate stats handling.

BUG=
R=danilchap@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13416}
2016-07-08 16:15:29 +00:00
108ecec51c Removed LEGACY_BITEXACT from neteq_impl.cc and updated the ACM unit tests.
I'll be rewriting AcmReceiver soon and am trying to reduce the amount of
old stuff that needs to be supported.

I've manually checked the outputs of the AcmReceiver bitexactness
tests with this change. A large part of the tests are still bitexact,
with one section only differing slightly in timings. Nothing audible
unless playing the old and new versions back simultaneously.

The output of NetEqDecoderTest were also changed due to this CL, although only on android. I built and ran the test locally and compared the audio output manually - the changes were the same as for the other tests; i.e. very slight timing changes for a part of the output.

I updated the network stats checksum for android without analyzing it further. I expect it goes hand-in-hand with the changes to the output; i.e. the changes in it are fine because the audio output is fine. Likely, the stats will show changes in the usage of CNG, since that is what the code changes.

BUG=webrtc:1361

Review-Url: https://codereview.webrtc.org/2117763002
Cr-Commit-Position: refs/heads/master@{#13415}
2016-07-08 15:45:26 +00:00
be40296cce Fix bug where a connection switch causes BWE to be set to zero.
BUG=webrtc:6076
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13414}
2016-07-08 14:16:52 +00:00
cdf6172b7f Replace reentrant ASSERT checks in MessageQueueManager with a non-racy version.
ASSERT(!crit_.CurrentThreadIsOwner()) was racy due to use of a rtc::IsThreadRefEqual which cannot compare the thread handlers without a lock unless one is already sure it is the thread owning the crit.

Review-Url: https://codereview.webrtc.org/2131503002
Cr-Commit-Position: refs/heads/master@{#13411}
2016-07-08 09:45:47 +00:00
a16f7a83a1 Added voice_engine_unittests and voe_auto_test targets to GN.
I didn't convert the APK tests, since I couldn't figure it out, nor
find any that had already been converted to copy from. I might get to it
in a new CL or even second patch-set.

BUG=webrtc:6039

Review-Url: https://codereview.webrtc.org/2123243003
Cr-Commit-Position: refs/heads/master@{#13410}
2016-07-08 09:13:02 +00:00
388d8e92b8 Remove unused CriticalSection::IsLocked()
Review-Url: https://codereview.webrtc.org/2128583003
Cr-Commit-Position: refs/heads/master@{#13409}
2016-07-08 08:19:41 +00:00
4c0536bd51 Change GetPlayoutTimestamp message from Error to Info
This message was printed to the receiver's log on every single video
frame if the remote side is sending video but not audio. This could
happen if, for example, one participant creates RtpSenders for both
audio and video but doesn't set the audio track, or if the track is
set but RtpParameters.encodings[0].active == false.

This CL changes the trace level to StateInfo as it is the expected
behavior in this case.

R=deadbeef@webrtc.org, henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13408}
2016-07-07 20:06:38 +00:00
44905cf49f Add a fuzzer for the pseudoTCP implementation used by chromoting. This
found chromium:620694.

Unfortunately it depends on unsafe GN targets, so do not build in
Chromium.

NOTRY=true

Review-Url: https://codereview.webrtc.org/2129603003
Cr-Commit-Position: refs/heads/master@{#13407}
2016-07-07 12:52:29 +00:00
27dcacdbc1 Android: Add initialize() function to VideoCapturer interface
This CL moves some arguments, e.g. the camera thread, from the startCapture() function to a new initialize() function. These arguments are constant during the lifetime of the VideoCapturer, and are not changed for different startCapture() calls. Setting them once allows for simplifications in the code.

This CL also fixes a bug for camera2 where pendingCameraSwitchSemaphore might not be released when switchEventsHandler is null.

In camera1, the handler lock and 'cameraThreadHandler == null' check is replaced with an atomic boolean to check if the camera is stopped.

BUG=webrtc:5519
R=sakal@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13404}
2016-07-07 08:00:35 +00:00
ae4f7674e4 Style updates for ForwardErrorCorrection and related classes.
This CL mainly updates the FEC code to use more C++11 features and
to be more in line with the style guide. These changes should
have no impact on the functionality provided by the FEC.

Summary of style fixes:
- Use range-based for loops, where applicable.
- Use auto type deduction for iterator type names.
- Use RTC_DCHECK instead of assert.
- Rename FEC to Fec, where applicable.
- Update test_fec.cc to use variable_names rather than variableNames.
- Avoid redefining the PacketList types outside ForwardErrorCorrection.

Another minor change is that storage for the packet masks, as these
are generated, now is provided by a member variable, rather than
being dynamically allocated on every call to GenerateFec.

BUG=webrtc:5654
R=danilchap@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13403}
2016-07-07 07:41:03 +00:00
9b522f8d04 Add more logging about the bwe state and VideoSendStream state.
Review-Url: https://codereview.webrtc.org/2121273003
Cr-Commit-Position: refs/heads/master@{#13402}
2016-07-07 07:36:40 +00:00
d7d3e05ca6 mac: Remove unused GetQuickTimeVersion().
The function uses a deprecated function and is unused, so delete it.

BUG=6027
NOTRY=true

Review-Url: https://codereview.webrtc.org/2114013002
Cr-Commit-Position: refs/heads/master@{#13400}
2016-07-06 18:03:20 +00:00
0cf208aa28 mac: Make GetOSVersion() private to a cc file.
Everything calls GetOSVersionName() instead, so no need to expose that.
Since it uses deprecated functions, this will make it easier to rewrite
it in a future change.

BUG=webrtc:6027
NOTRY=true

Review-Url: https://codereview.webrtc.org/2117823002
Cr-Commit-Position: refs/heads/master@{#13399}
2016-07-06 17:46:49 +00:00
63fb95a68d Fixed time moving backwards in the AudioCodingModule.
There was a fast path in PreprocessToAddData that would just use the
input timestamps if the input format was equal to the required format of
the encoder. This works well as long as the codec never changes. If we
are first doing resampling (specifically upsampling) and then change to
a codec that does not require resampling, we'll need to stick to
whatever input timestamp we left off at, rather than silently accepting
whatever we're sent.

BUG=622435

Review-Url: https://codereview.webrtc.org/2119393002
Cr-Commit-Position: refs/heads/master@{#13398}
2016-07-06 16:34:31 +00:00
1d4fefbbaf Reland of https://codereview.webrtc.org/2044523002.
Landing these in WebRTC under a guard so they don't build in
Chromium. The guard can be removed once Chromium has migrated to use the
new GN targets.

BUG=webrtc:6081
NOTRY=true

Review-Url: https://codereview.webrtc.org/2117183005
Cr-Commit-Position: refs/heads/master@{#13397}
2016-07-06 15:02:09 +00:00
44abcb5e41 Android SurfaceViewRenderer: Fix eglBase null pointer exception
Add null checks for eglBase, and detach the egl context in
SurfaceViewRenderer.surfaceDestroyed().

BUG=webrtc:6032
R=sakal@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13396}
2016-07-06 14:16:23 +00:00