Commit Graph

235 Commits

Author SHA1 Message Date
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 0ad48935fc.

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 31d16467ac.

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 b8bcf8cbbf.
> 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 b8bcf8cbbf.
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 02ed57bf9d.
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
pkasting@chromium.org
d324546ced Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ :
* Move constants into the files/functions that use them
* Declare variables in the narrowest scope possible
* Use correct (expected, actual) order for gtest macros
* Remove unused functions
* Untabify
* 80-column limit
* Avoid C-style casts
* Prefer true typed constants to "enum hack" constants
* Print size_t using the right format macro
* Shorten and simplify code
* Other random cleanup bits and style fixes

BUG=none
TEST=none
R=henrik.lundin@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8467}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8467 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 21:29:45 +00:00
pbos@webrtc.org
ec45e3b290 Fix test race in GetStatsMultipleSendStreams.
Test now waits for stats to be filled instead of failing instantly if
they haven't been updated.

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

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

Cr-Commit-Position: refs/heads/master@{#8441}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8441 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-20 10:25:18 +00:00
guoweis@webrtc.org
cce874b8d2 Fix libjingle_media_unittest codec comparison issue
Missing one comparison of AudioCodec

TBR=juberti@webrtc.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#8437}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8437 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 18:14:52 +00:00
guoweis@webrtc.org
bc6961fe32 Make webrtc 50 KB smaller by not inlining Codec.
The Codec class is a big class and objects of the Codec class are passed
around by value. That means that inlined operations would be duplicated
at many places, in particular inside STL.

By not inlining Codec methods, webrtc shrinks by 50 KB in
a Linux x64 clang build.

Total change: -54147 bytes
==========================
 +2810 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/media/base/codec.cc - (gained 2920, lost 110)
 -1003 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/media/base/codec.h - (gained 0, lost 1003)
 -1129 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/media/sctp/sctpdataengine.cc - (gained 1660, lost 2789)
 -1190 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/media/base/rtpdataengine.cc - (gained 1408, lost 2598)
 -1747 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/session/media/mediasession.cc - (gained 803, lost 2550)
 -2141 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/media/webrtc/webrtcvideoengine.cc - (gained 1679, lost 3820)
 -2250 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/app/webrtc/webrtcsdp.cc - (gained 1224, lost 3474)
 -2927 - Source: /usr/include/c++/4.8/bits/stl_vector.h - (gained 0, lost 2927)
 -3729 - Source: /home/bratell/src/chromium/src/third_party/libjingle/source/talk/media/webrtc/webrtcvideoengine2.cc - (gained 10925, lost 14654)
 -6369 - Source: /usr/include/c++/4.8/bits/vector.tcc - (gained 0, lost 6369)
 -10582 - Source: /usr/include/c++/4.8/bits/stl_heap.h - (gained 0, lost 10582)
 -19324 - Source: /usr/include/c++/4.8/bits/stl_algo.h - (gained 743, lost 20067)

BUG=
R=juberti@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8436}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8436 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 17:55:50 +00:00
pbos@webrtc.org
1ed6224eaf Revert r8430 "Remove dead stats from Video{Sender,Receiver}Info."
This breaks compilation outside this codebase that needs to have it
removed before.

BUG=4322
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8432}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8432 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 13:57:43 +00:00
pbos@webrtc.org
8ad05b7628 Remove dead stats from Video{Sender,Receiver}Info.
These stats are neither filled nor plumbed further and might as well be
removed (as proven by how easy they were to remove).

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8430}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8430 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 13:00:46 +00:00
minyue@webrtc.org
c0bd7be0df Adding two new stats to VoiceReceiverInfo
There have been requests of two new stats namely

speech_expand_rate and secondary_decoded_rate.

BUG=3867
R=henrik.lundin@webrtc.org, henrika@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8415}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8415 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 15:24:39 +00:00
pbos@webrtc.org
b4987bfc24 Send black frame with previous size when muting.
Instead of sending a black frame that's the size of the VideoFormat send
a black frame in the format we're already sending. This prevents
expensive encoder reconfiguration when the sending format is a different
resolution. This speeds up setting a null capturer (removing the
capturer) significantly as it doesn't entail an encoder reconfiguration.

R=mflodman@webrtc.org, pthatcher@webrtc.org
BUG=1788

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

Cr-Commit-Position: refs/heads/master@{#8405}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8405 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 10:13:45 +00:00
magjed@webrtc.org
3864363e2c cricket::VideoFrame: Refactor CopyToBuffer into base class
It’s possible to implement cricket::VideoFrame::CopyToBuffer using the virtual interface. This removes the need for subclasses to implement their own versions. This CL also fixes a bug in cricket::VideoFrame::CopyToPlanes which currently assumes that GetUPitch() == GetVPitch(), otherwise it may segfault.

I think this CL should land regardless, but the main purpose is to pave the way for for planned changes to I420VideoFrame. See https://review.webrtc.org/38879004.

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

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

Cr-Commit-Position: refs/heads/master@{#8403}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8403 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 09:19:45 +00:00
magjed@webrtc.org
dd4a8da68a Remove DISABLE_YUV flag
R=fbarchard@google.com, pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8402}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8402 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 08:47:43 +00:00
pkasting@chromium.org
e9facf8bb3 Add range checks in a variety of places where the values will subsequently be
expected to be 0-127.

BUG=none
TEST=none
R=juberti@webrtc.org
TBR=henrika

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

Cr-Commit-Position: refs/heads/master@{#8399}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8399 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 20:37:35 +00:00
andresp@webrtc.org
ff689be3c0 Use std::min and std::max instead of self-defined functions such as rtc::_min/_max.
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8347}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8347 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 11:55:32 +00:00
guoweis@webrtc.org
1226e926e6 CVO capturer feature: allow unrotated frame flows through the capture pipeline.
split from https://webrtc-codereview.appspot.com/37029004/

This is based on clean up code change at https://webrtc-codereview.appspot.com/37129004

BUG=4145
R=perkj@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

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

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

Cr-Commit-Position: refs/heads/master@{#8339}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8339 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 18:38:53 +00:00
guoweis@webrtc.org
dc7b02277c CVO capturer feature: allow unrotated frame flows through the capture pipeline.
split from https://webrtc-codereview.appspot.com/37029004/

This is based on clean up code change at https://webrtc-codereview.appspot.com/37129004

BUG=4145
R=perkj@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

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

Cr-Commit-Position: refs/heads/master@{#8338}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8338 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 18:06:10 +00:00
guoweis@webrtc.org
20e8f22766 CVO capturer feature: allow unrotated frame flows through the capture pipeline.
split from https://webrtc-codereview.appspot.com/37029004/

This is based on clean up code change at https://webrtc-codereview.appspot.com/37129004

BUG=4145
R=perkj@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8337}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8337 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 17:51:46 +00:00
guoweis@webrtc.org
6c930c7183 Cleanup: unify rotation to be enum based instead of int for degree.
Split from https://webrtc-codereview.appspot.com/37029004/

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

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

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

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

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

Cr-Commit-Position: refs/heads/master@{#8288}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8288 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 01:29:45 +00:00
guoweis@webrtc.org
0c7ec770ff Cleanup: unify rotation to be enum based instead of int for degree.
Split from https://webrtc-codereview.appspot.com/37029004/

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

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

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

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

Cr-Commit-Position: refs/heads/master@{#8277}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8277 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 21:01:47 +00:00
guoweis@webrtc.org
110443aaac Cleanup: unify rotation to be enum based instead of int for degree.
Split from https://webrtc-codereview.appspot.com/37029004/

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

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

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

Cr-Commit-Position: refs/heads/master@{#8276}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8276 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 20:00:46 +00:00
magjed@webrtc.org
4b320cf214 Revert "Cleanup: unify rotation to be enum based instead of int for degree."
Reason for revert:
Compile error on bots - A subclass of cricket::VideoFrame still uses old GetRotation return type.

BUG=4145
TBR=guoweis,stefan,pthatcher

This reverts commit 3e733a43f5.

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

Cr-Commit-Position: refs/heads/master@{#8265}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8265 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 12:58:46 +00:00
guoweis@webrtc.org
3e733a43f5 Cleanup: unify rotation to be enum based instead of int for degree.
Split from https://webrtc-codereview.appspot.com/37029004/

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

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

Cr-Commit-Position: refs/heads/master@{#8257}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8257 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-05 23:40:43 +00:00
pkasting@chromium.org
0e81fdf5d2 Avoid implicit type truncations by inserting explicit casts or modifying prototypes to avoid needless up- and then down-casting.
BUG=chromium:82439
TEST=none
R=henrik.lundin@webrtc.org, mflodman@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8229}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8229 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-02 23:54:40 +00:00
magjed@webrtc.org
fc5ad95fec Reland of: "Implement elapsed time and capture start NTP time estimation." revision @8139
Link to original CL: https://review.webrtc.org/36909004/

R=pbos@webrtc.org
TBR=pthatcher@webrtc.org
BUG=4227

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8162 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-27 09:57:01 +00:00
tkchin@webrtc.org
0f98844749 Revert 8139 "Implement elapsed time and capture start NTP time e..."
> Implement elapsed time and capture start NTP time estimation.
> 
> These two elements are required for end-to-end delay estimation.
> 
> BUG=1788
> R=stefan@webrtc.org
> TBR=pthatcher@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/36909004

TBR=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8143 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-23 21:17:38 +00:00
pbos@webrtc.org
ad3ee2c46b Implement elapsed time and capture start NTP time estimation.
These two elements are required for end-to-end delay estimation.

BUG=1788
R=stefan@webrtc.org
TBR=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8139 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-23 14:55:00 +00:00
tommi@webrtc.org
586f2eda0d Change GetStreamBySsrc to not copy StreamParams.
This is something I stumbled upon while looking at string copying we do (in spades) and did a simple change to not be constantly copying things around needlessly. There's a lot more that can be done in these files of course so this is sort of a reminder for future code edits that it's possible to design interfaces/function in a way that's more performance aware and avoid forcing creation of copies, while still being very simple.  Also, we can use lambdas now :)

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8131 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-22 23:00:41 +00:00