260 Commits

Author SHA1 Message Date
Shao Changbin
e62202fedf Support handling multiple RTX but only generate SDP with RTX associated with VP8.
This implementation registers RTX-APT map inside RTP sender and receiver.
While it only generates SDP with RTX associated with VP8 to make it
compatible with previous Chrome versions.

Should add following changes after reaches stable,
* Use RTX-APT map for building and restoring RTP packets.
* Add RTX support for RED or VP9 in Video engine.
* Set RTX payload type for RED inside FecConfig in EndToEndTest.

BUG=4024
R=mflodman@webrtc.org, pbos@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36889004

Cr-Commit-Position: refs/heads/master@{#9040}
2015-04-21 12:25:42 +00:00
Karl Wiberg
9478437fde rtc::Buffer improvements
1. Constructors, SetData(), and AppendData() now accept uint8_t*,
     int8_t*, and char*. Previously, they accepted void*, meaning that
     any kind of pointer was accepted. I think requiring an explicit
     cast in cases where the input array isn't already of a byte-sized
     type is a better compromise between convenience and safety.

  2. data() can now return a uint8_t* instead of a char*, which seems
     more appropriate for a byte array, and is harder to mix up with
     zero-terminated C strings. data<int8_t>() is also available so
     that callers that want that type instead won't have to cast, as
     is data<char>() (which remains the default until all existing
     callers have been fixed).

  3. Constructors, SetData(), and AppendData() now accept arrays
     natively, not just decayed to pointers. The advantage of this is
     that callers don't have to pass the size separately.

  4. There are new constructors that allow setting size and capacity
     without initializing the array. Previously, this had to be done
     separately after construction.

  5. Instead of TransferTo(), Buffer now supports swap(), and move
     construction and assignment, and has a Pass() method that works
     just like std::move(). (The Pass method is modeled after
     scoped_ptr::Pass().)

R=jmarusic@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42989004

Cr-Commit-Position: refs/heads/master@{#9033}
2015-04-20 12:03:00 +00:00
Magnus Jedvert
4b76c02362 Roll chromium_revision 8af41b3..dcb0929 (324854:325030)
This is a major libyuv update (almost 200 revisions):
d204db6..32ad6e0

Relevant changes:
* src/third_party/libyuv: d204db6..32ad6e0
* src/third_party/nss: d1edb68..9506806
Details: 8af41b3..dcb0929/DEPS

Since bayer and Q420 format support have been removed from libyuv, all tests related to those format are removed.

Clang version was not updated in this roll.

R=kjellander@webrtc.org
TBR=tommi

Review URL: https://webrtc-codereview.appspot.com/48989004

Cr-Commit-Position: refs/heads/master@{#9008}
2015-04-15 15:22:19 +00:00
Peter Thatcher
56d50288e0 Remove SignalCaptureStateChange from MediaEngine.
It's no longer used by anything.

R=juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/48069004

Cr-Commit-Position: refs/heads/master@{#8994}
2015-04-14 00:17:36 +00:00
Peter Thatcher
77f0e3f7b6 Remove GetStartCaptureFormat and some related code.
It is no longer used by anything.

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48039004

Cr-Commit-Position: refs/heads/master@{#8990}
2015-04-13 17:44:56 +00:00
Noah Richards
99c2fe5d2b Fix NullVideoEngine's CreateChannel implementation.
BUG=
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44149004

Cr-Commit-Position: refs/heads/master@{#8980}
2015-04-10 21:32:42 +00:00
Magnus Jedvert
f6c003eda5 cricket::VideoFrameFactory: Handle if created frame is null
R=perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46869004

Cr-Commit-Position: refs/heads/master@{#8972}
2015-04-10 10:44:51 +00:00
Magnus Jedvert
0184057d54 VideoAdapterTest: Replace FileVideoCapturer with FakeVideoCapturer
The unittests are currently flaky due to the use of FileVideoCapturer.

BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49649004

Cr-Commit-Position: refs/heads/master@{#8969}
2015-04-10 09:18:39 +00:00
Thiago Farina
ef88309a6e Cleanup: Forward declare AudioFrame type in voiceprocess.h
No need to include this header since the API is just taking a pointer to
it.

BUG=1092
TEST=./webrtc/build/gyp_webrtc && ninja -C out/Debug
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44059004

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8928}
2015-04-06 10:36:41 +00:00
Henrik Boström
037bad7497 ~CaptureManager: DCHECK(capture_states_.empty()) instead of CHECK until we fix not empty bug.
BUG=chromium:320200
R=perkj@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49579004

Cr-Commit-Position: refs/heads/master@{#8922}
2015-04-02 10:10:18 +00:00
Guo-wei Shieh
64c1e8cda5 Enable CVO by default through webrtc pipeline.
All RTP packets from sender side will carry the rotation info. (will file a bug to track this) On the receiving side, only packets with marker bit set will be examined.

Tests completed:
1. android standalone to android standalone
2. android standalone to chrome (with and without this change)
3. android on chrome

BUG=4145
R=glaznev@webrtc.org, mflodman@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

Committed: https://crrev.com/1b1c15cad16de57053bb6aa8a916079e0534bdae
Cr-Commit-Position: refs/heads/master@{#8905}

Review URL: https://webrtc-codereview.appspot.com/47399004

Cr-Commit-Position: refs/heads/master@{#8917}
2015-04-01 22:33:15 +00:00
Minyue
31331cfd2d Revert "Enable CVO by default through webrtc pipeline."
This reverts commit 1b1c15cad16de57053bb6aa8a916079e0534bdae.

Due to failure on
http://build.chromium.org/p/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/4092
and following builds (the test hangs and never finishes).
R=kjellander@webrtc.org
TBR=guoweis@chromium.org
TESTED=Local revert + execution of libjingle_peerconnection_java_unittest show that this is the culprit.

Review URL: https://webrtc-codereview.appspot.com/47909004

Cr-Commit-Position: refs/heads/master@{#8911}
2015-04-01 14:20:11 +00:00
Guo-wei Shieh
1b1c15cad1 Enable CVO by default through webrtc pipeline.
All RTP packets from sender side will carry the rotation info. (will file a bug to track this) On the receiving side, only packets with marker bit set will be examined.

Tests completed:
1. android standalone to android standalone
2. android standalone to chrome (with and without this change)
3. android on chrome

BUG=4145
R=glaznev@webrtc.org, mflodman@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/47399004

Cr-Commit-Position: refs/heads/master@{#8905}
2015-04-01 02:42:50 +00:00
Magnus Jedvert
1ecfd55044 videoadapter_unittest.cc: Revert removal of '#if defined(HAVE_WEBRTC_VIDEO)'
This CL reverts some parts of "Delete VideoAdapter::AdaptFrame" https://webrtc-codereview.appspot.com/44769004/.

Reason for revert: Should not touch HAVE_WEBRTC_VIDEO since libjingle_media_unittests does not compile without anyway.

BUG=4317
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48699005

Cr-Commit-Position: refs/heads/master@{#8888}
2015-03-30 09:25:04 +00:00
Peter Boström
8ed6a4bba4 Remove unused non-standard capture stats.
Removes 'googCaptureJitterMs' and 'googCaptureQueueDelayMsPerS' from
talk/. The overuse-detection method used is based on encoding time,
so these stats aren't useful enough to warrant having them showing up in
GetStats().

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

Review URL: https://webrtc-codereview.appspot.com/50469004

Cr-Commit-Position: refs/heads/master@{#8874}
2015-03-27 09:01:11 +00:00
Magnus Jedvert
3954e1dfe1 Remove unused implementations in cricket::VideoFrame
This CL moves dummy implementations from cricket::VideoFrame to NullVideoFrame instead.

R=guoweis@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50409004

Cr-Commit-Position: refs/heads/master@{#8873}
2015-03-27 08:48:45 +00:00
Minyue Li
7100dcd317 Adding "usedtx" as Opus codec parameter.
This is according to https://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03

Specifically,

usedtx: specifies if the decoder prefers the use of DTX. values are 1 and 0. If no value is specified, usedtx is assumed to be 0.

BUG=1014
R=juberti@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48499004

Cr-Commit-Position: refs/heads/master@{#8872}
2015-03-27 04:06:35 +00:00
Brave Yao
5225dd8180 If audio ptime is negotiated in SDP, then we would set the audio codec with negotiated packet size if it's allowed. If the negotiated packet size is not supported by the working codec, then we would use the next smallest size.
BUG=4289
TEST=Manual/Auto Test
R=juberti@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44629004

Cr-Commit-Position: refs/heads/master@{#8863}
2015-03-25 23:39:33 +00:00
Bjorn Volcker
bf395c1fc0 Add WebRTC Media Constraint to force using Delay Agnostic AEC on Android
If built-in Echo Cancellation is available on a device it is automatically enabled. The reason is that it in most cases performs better than the WebRTC software echo control for mobile. The drawback is that we can not develop, test and rollout the delay agnostic AEC (DA-AEC) on Android as for desktops.

This CL includes
- adding a media constraint to enable/disable DA-AEC.
- automatically turning on echo cancellation if DA-AEC is enabled.
- a fix in the AEC that enables delay estimation when DA-AEC is enabled, but delay metrics is disabled.
- sets the Config struct ReportedDelay, which controls DA-AEC internally in the AEC.

The test code to verify that it works in AppRTCDemo can be found here:
https://webrtc-codereview.appspot.com/50479004/

BUG=4472
TESTED=locally on N7, N6, Android One
R=glaznev@webrtc.org, perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48699004

Cr-Commit-Position: refs/heads/master@{#8861}
2015-03-25 21:46:10 +00:00
Magnus Jedvert
e61c64dbb1 Delete NullVideoRenderer
NullVideoRenderer is not used.

R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51419004

Cr-Commit-Position: refs/heads/master@{#8850}
2015-03-24 15:11:24 +00:00
Magnus Jedvert
ac27e20477 Delete VideoAdapter::AdaptFrame
This CL deletes VideoAdapter::AdaptFrame and replaces the remaining calls with AdaptFrameResolution instead.

I do not expect this CL to fix the flaky VideoAdapterTests yet. I intend to replace FileVideoCapturer with a deterministic FakeVideoCapturer in a follow-up CL.

BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44769004

Cr-Commit-Position: refs/heads/master@{#8848}
2015-03-24 14:18:52 +00:00
kwiberg@webrtc.org
eebcab5ce9 rtc::Buffer: Rename length to size, for conformance with the STL
And add a constructor for creating an uninitialized Buffer of a
specified size.

(I intend to follow up with more Buffer changes, but since it's rather
widely used, the rename is quite noisy and works better as a separate
CL.)

R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48579004

Cr-Commit-Position: refs/heads/master@{#8841}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8841 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-24 09:20:19 +00:00
magjed@webrtc.org
14ee8cc9c7 WebRtcVideoFrame: Support odd resolutions
We currently truncate the resolution of frames to a multiple of 4. This is unnecessary as everything supports odd resolutions now.

R=fbarchard@google.com, pbos@webrtc.org, perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43819004

Cr-Commit-Position: refs/heads/master@{#8774}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8774 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 09:22:19 +00:00
perkj@webrtc.org
a78a94e838 Fix RateTracker to set an initial reference time when first updated.
BUG=4442
R=mflodman@webrtc.org, pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43829004

Cr-Commit-Position: refs/heads/master@{#8751}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8751 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 12:45:41 +00:00
changbin.shao@webrtc.org
2d25b44f47 Check associated payload type when negotiate RTX codecs.
At the moment, only payload name is checked when match two RTX codecs.
This will cause wrong behavior of codec negotiation if multiple RTX codecs
are added.

BUG=
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34189004

Cr-Commit-Position: refs/heads/master@{#8727}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8727 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 04:15:23 +00:00
guoweis@webrtc.org
00c509ad1c Add concept of whether video renderer supports rotation.
Rotation is best done when rendered in GPU, added the shader code which rotates the frame. For renderers which don't support rotation, the rotation will be done before sending down the frame to render. By default, assume renderer can't do rotation.

Tested with peerconnection_client on windows, AppRTCDemo on Mac.

BUG=4145
R=glaznev@webrtc.org, pthatcher@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=8660

Committed: https://code.google.com/p/webrtc/source/detail?r=8661

Review URL: https://webrtc-codereview.appspot.com/43569004

Cr-Commit-Position: refs/heads/master@{#8705}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8705 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 21:38:19 +00:00
guoweis@webrtc.org
fdd1057949 Add CVO support to Vie layer.
1. standard plumbing CVO through vie layer.
2. added a rtp_cvo.h which has both conversion functions from rtp header byte to/from VideoRotation.

WebRTCVideoEngine will later pass the rotation info in SendFrame() through VieVideoFrameI420.

BUG=4145
R=mflodman@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46429007

Cr-Commit-Position: refs/heads/master@{#8703}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8703 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 20:51:50 +00:00
magjed@webrtc.org
afdd5dd372 Revert "Revert "Remove frame copy from cricket::VideoFrame to I420VideoFrame""
This reverts r8683 and is a reland of r8682.

Reason for revert: The thread checker in Chromium that crashed has been fixed now.

BUG=1128
TBR=tommi,pbos,pthatcher

Review URL: https://webrtc-codereview.appspot.com/40319004

Cr-Commit-Position: refs/heads/master@{#8696}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8696 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 13:11:43 +00:00
magjed@webrtc.org
b218ff5531 Revert "Remove frame copy from cricket::VideoFrame to I420VideoFrame"
This reverts r8682.

Reason for revert: Fails on Chromium FYI content_browsertests

BUG=1128
TBR=tommi,pbos,pthatcher

Review URL: https://webrtc-codereview.appspot.com/47529004

Cr-Commit-Position: refs/heads/master@{#8683}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8683 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-11 15:29:59 +00:00
magjed@webrtc.org
370a72cc3f Remove frame copy from cricket::VideoFrame to I420VideoFrame
BUG=1128
R=pbos@webrtc.org, pthatcher@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42249004

Cr-Commit-Position: refs/heads/master@{#8682}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8682 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-11 14:16:16 +00:00
guoweis@webrtc.org
f9a75d99b9 Revert "Add concept of whether video renderer supports rotation."
This reverts commit 0ad48935fc5b92be6e10924a9ee3b0dc39c79104.

TBR=guoweis@webrtc.org

BUG=

Review URL: https://webrtc-codereview.appspot.com/41199004

Cr-Commit-Position: refs/heads/master@{#8663}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8663 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 06:37:41 +00:00
guoweis@webrtc.org
60a2aa0652 Revert "Add concept of whether video renderer supports rotation."
This reverts commit 31d16467aceac56c3cb87a84564ea5e45a49ffe4.

TBR=guoweis@webrtc.org

BUG=

Review URL: https://webrtc-codereview.appspot.com/47489004

Cr-Commit-Position: refs/heads/master@{#8662}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8662 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 06:20:18 +00:00
guoweis@webrtc.org
31d16467ac Add concept of whether video renderer supports rotation.
Rotation is best done when rendered in GPU, added the shader code which rotates the frame. For renderers which don't support rotation, the rotation will be done before sending down the frame to render. By default, assume renderer can't do rotation.

BUG=4145
R=glaznev@webrtc.org, pthatcher@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=8660

Review URL: https://webrtc-codereview.appspot.com/43569004

Cr-Commit-Position: refs/heads/master@{#8661}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8661 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 06:11:44 +00:00
guoweis@webrtc.org
0ad48935fc Add concept of whether video renderer supports rotation.
Rotation is best done when rendered in GPU, added the shader code which rotates the frame. For renderers which don't support rotation, the rotation will be done before sending down the frame to render. By default, assume renderer can't do rotation.

BUG=4145
R=glaznev@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43569004

Cr-Commit-Position: refs/heads/master@{#8660}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8660 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 02:43:40 +00:00
magjed@webrtc.org
2386d6dd92 Revert 8599 "Revert 8580 "Unify underlying frame buffer in I420VideoFrame and...""
It's possible to build Chrome on Windows with this patch now.

BUG=1128

> This is unfortunately causing build problems in Chrome on Windows.

>> Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame
>>
>> Currently, I420VideoFrame uses three webrtc::Plane to store pixel data, and WebRtcVideoFrame uses WebRtcVideoFrame::FrameBuffer/webrtc::VideoFrame. The two subclasses WebRtcTextureVideoFrame and TextureVideoFrame use a NativeHandle to store pixel data, and there is also a class WebRtcVideoRenderFrame that wraps an I420VideoFrame.
>>
>> This CL replaces these classes with a new interface VideoFrameBuffer that provides the common functionality. This makes it possible to remove deep frame copies between cricket::VideoFrame and I420VideoFrame.
>>
>> Some additional minor changes are:
>> * Disallow creation of 0x0 texture frames.
>> * Remove the half-implemented ref count functions in I420VideoFrame.
>> * Remove the Alias functionality in WebRtcVideoFrame
>>
>> The final goal is to eliminate all frame copies, but to limit the scope of this CL, some planned changes are postponed to follow-up CL:s (see planned changes in https://webrtc-codereview.appspot.com/38879004, or https://docs.google.com/document/d/1bxoJZNmlo-Z9GnQwIaWpEG6hDlL_W-bzka8Zb_K2NbA/preview). Specifically, this CL:
>> * Keeps empty subclasses WebRtcTextureVideoFrame and TextureVideoFrame, and just delegates the construction to the superclass.
>> * Keeps the deep copies from cricket::VideoFrame to I420VideoFrame.
>>
>> BUG=1128
>> R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, tommi@webrtc.org
>>
>> Review URL: https://webrtc-codereview.appspot.com/42469004

R=pbos@webrtc.org
TBR=mflodman, pbos, perkj, tommi

Review URL: https://webrtc-codereview.appspot.com/45489004

Cr-Commit-Position: refs/heads/master@{#8616}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8616 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-05 14:03:51 +00:00
tommi@webrtc.org
1f94407319 Revert 8580 "Unify underlying frame buffer in I420VideoFrame and..."
This is unfortunately causing build problems in Chrome on Windows.

> Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame
> 
> Currently, I420VideoFrame uses three webrtc::Plane to store pixel data, and WebRtcVideoFrame uses WebRtcVideoFrame::FrameBuffer/webrtc::VideoFrame. The two subclasses WebRtcTextureVideoFrame and TextureVideoFrame use a NativeHandle to store pixel data, and there is also a class WebRtcVideoRenderFrame that wraps an I420VideoFrame.
> 
> This CL replaces these classes with a new interface VideoFrameBuffer that provides the common functionality. This makes it possible to remove deep frame copies between cricket::VideoFrame and I420VideoFrame.
> 
> Some additional minor changes are:
> * Disallow creation of 0x0 texture frames.
> * Remove the half-implemented ref count functions in I420VideoFrame.
> * Remove the Alias functionality in WebRtcVideoFrame
> 
> The final goal is to eliminate all frame copies, but to limit the scope of this CL, some planned changes are postponed to follow-up CL:s (see planned changes in https://webrtc-codereview.appspot.com/38879004, or https://docs.google.com/document/d/1bxoJZNmlo-Z9GnQwIaWpEG6hDlL_W-bzka8Zb_K2NbA/preview). Specifically, this CL:
> * Keeps empty subclasses WebRtcTextureVideoFrame and TextureVideoFrame, and just delegates the construction to the superclass.
> * Keeps the deep copies from cricket::VideoFrame to I420VideoFrame.
> 
> BUG=1128
> R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, tommi@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/42469004

TBR=magjed@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42199005

Cr-Commit-Position: refs/heads/master@{#8599}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8599 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 17:35:00 +00:00
kjellander@webrtc.org
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41069004

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
pbos@webrtc.org
058b1f17ac Remove GetReceiveBandwidthEstimatorStats.
Removes unnecessary non-standard stats that we don't really make use of.

BUG=
R=pthatcher@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/47379004

Cr-Commit-Position: refs/heads/master@{#8588}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8588 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 08:55:16 +00:00
magjed@webrtc.org
c8895aa2f3 Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame
Currently, I420VideoFrame uses three webrtc::Plane to store pixel data, and WebRtcVideoFrame uses WebRtcVideoFrame::FrameBuffer/webrtc::VideoFrame. The two subclasses WebRtcTextureVideoFrame and TextureVideoFrame use a NativeHandle to store pixel data, and there is also a class WebRtcVideoRenderFrame that wraps an I420VideoFrame.

This CL replaces these classes with a new interface VideoFrameBuffer that provides the common functionality. This makes it possible to remove deep frame copies between cricket::VideoFrame and I420VideoFrame.

Some additional minor changes are:
* Disallow creation of 0x0 texture frames.
* Remove the half-implemented ref count functions in I420VideoFrame.
* Remove the Alias functionality in WebRtcVideoFrame

The final goal is to eliminate all frame copies, but to limit the scope of this CL, some planned changes are postponed to follow-up CL:s (see planned changes in https://webrtc-codereview.appspot.com/38879004, or https://docs.google.com/document/d/1bxoJZNmlo-Z9GnQwIaWpEG6hDlL_W-bzka8Zb_K2NbA/preview). Specifically, this CL:
* Keeps empty subclasses WebRtcTextureVideoFrame and TextureVideoFrame, and just delegates the construction to the superclass.
* Keeps the deep copies from cricket::VideoFrame to I420VideoFrame.

BUG=1128
R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42469004

Cr-Commit-Position: refs/heads/master@{#8580}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8580 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 21:22:26 +00:00
perkj@webrtc.org
be00e3c198 Make sure VideoFrameFactory handles rotated frames when scaling.
BUG=4366
R=magjed@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41079004

Cr-Commit-Position: refs/heads/master@{#8570}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8570 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 10:48:46 +00:00
perkj@webrtc.org
1d82813961 Reland "Fix CVO in androidvideocapturer".
This cl was originally revieved in https://webrtc-codereview.appspot.com/40759004/

Patchset 2 adds a unittest for VideoFrame::Reset with and without the apply_rotation flag set.

BUG=4145
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42559004

Cr-Commit-Position: refs/heads/master@{#8564}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8564 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-03 06:44:40 +00:00
pbos@webrtc.org
f1f0d9a4cd Remove WebRtcVideoEngine::SetVoiceEngine.
Instead enforcing that a voice engine is set on construction. Apart from
simplifying the class this permits tracing to be set up in the
constructor without worrying about racing sets from SetVoiceEngine
later.

BUG=
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44489004

Cr-Commit-Position: refs/heads/master@{#8555}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8555 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-02 13:30:46 +00:00
magjed@webrtc.org
50b2295091 cricket::VideoFrameFactory: Don't overwrite frames in use
VideoFrameFactory has a single frame buffer that is used when scaling frames. If the previous frame is still in use, we need to allocate a new frame.

BUG=4347
R=perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36359004

Cr-Commit-Position: refs/heads/master@{#8549}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8549 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-02 10:04:19 +00:00
aluebs@webrtc.org
73acc15c69 Revert 8538 "Reland "Fix CVO in androidvideocapturer."""
> Reland "Fix CVO in androidvideocapturer.""
> This reverts commit b8bcf8cbbf84971e2ae26d91659afdc58617b054.
> after I fixed a rebase mistake. The fix is the delta between patchset 1 and 2.
> 
> The original cl was reviewed here:
> https://webrtc-codereview.appspot.com/40759004/
> 
> TBR=magjed@webrtc.org
> 
> BUG=4145
> 
> Review URL: https://webrtc-codereview.appspot.com/45409004

TBR=perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44439004

Cr-Commit-Position: refs/heads/master@{#8539}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8539 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-27 23:27:41 +00:00
perkj@webrtc.org
3a93e33c56 Reland "Fix CVO in androidvideocapturer.""
This reverts commit b8bcf8cbbf84971e2ae26d91659afdc58617b054.
after I fixed a rebase mistake. The fix is the delta between patchset 1 and 2.

The original cl was reviewed here:
https://webrtc-codereview.appspot.com/40759004/

TBR=magjed@webrtc.org

BUG=4145

Review URL: https://webrtc-codereview.appspot.com/45409004

Cr-Commit-Position: refs/heads/master@{#8538}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8538 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-27 20:19:16 +00:00
perkj@webrtc.org
b8bcf8cbbf Revert "Fix CVO in androidvideocapturer."
This reverts commit 02ed57bf9d12a959d5ec139b3fc49170d16b5f30.
https://webrtc-codereview.appspot.com/40759004/

Reason- breaks tests after rebase.

TBR=magjed@webrtc.org

BUG=4145

Review URL: https://webrtc-codereview.appspot.com/39349004

Cr-Commit-Position: refs/heads/master@{#8537}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8537 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-27 19:48:15 +00:00
perkj@webrtc.org
02ed57bf9d Fix CVO in androidvideocapturer.
This add bool apply_rotation to WebrtcVideoFrame::Init and removes the need for WebrtcVideoFrame::SetRotation.

BUG=4145
R=guoweis@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40759004

Cr-Commit-Position: refs/heads/master@{#8536}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8536 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-27 19:10:45 +00:00
pbos@webrtc.org
ea89495786 Remove {Is,Set}BlackOutput from VideoAdapter.
BUG=
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39309004

Cr-Commit-Position: refs/heads/master@{#8523}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8523 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-27 08:56:42 +00:00
magjed@webrtc.org
f09e7b8a4f WebRtcVideoFrame: DCHECK exclusive ownership for non-const pixel access
Add some const safety by DCHECK(HasOneRef()) in non-const GetYPlane. This CL also replaces all incorrect non-const calls with const calls for pixel data access in cricket::VideoFrame. It's easy to call the non-const version of e.g. GetYPlane by mistake, even if only const-access is needed. For example:
const scoped_ptr<cricket::VideoFrame> foo;
const uint8_t* y = foo->GetYPlane();
will actually call the non-const version of GetYPlane.

R=mflodman@webrtc.org, perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39079004

Cr-Commit-Position: refs/heads/master@{#8507}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8507 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 14:50:19 +00:00
hbos@webrtc.org
4aef5fef18 Add thread checks to the CaptureManager.
It looks like it is being used single threadedly, except that in some cases it is created and/or destroyed in threads other than the one running its operations. As such, CaptureManager() contains 'thread_checker_.DetachFromThread()' and ~CaptureManager() does not have a DCHECK.

BUG=
R=perkj@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36279004

Cr-Commit-Position: refs/heads/master@{#8498}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8498 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-25 10:09:45 +00:00