Commit Graph

584 Commits

Author SHA1 Message Date
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
Peter Boström
d4362cd336 Reject StreamParams with RTX SSRCs not in ssrcs.
BUG=1788, chromium:470122
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8855}
2015-03-25 13:17:33 +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
Niklas Enbom
07a4ba5d1a Simulcast settings for 1080p. Using same bit rates for all 3 modes since only one is used in reality, and the plan is to unify them.
BUG=
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8849}
2015-03-24 14:48:03 +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
pbos@webrtc.org
a5f6fb53ba Permit single-stream max bitrates above 2000k.
BUG=4463
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8839}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8839 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-23 22:30:11 +00:00
kjellander@webrtc.org
e5e92bd556 Disable WebRtcVideoMediaChannelTest.AddRemoveRecvStreamAndRender on Windows (fix)
In https://webrtc-codereview.appspot.com/43899004/ I managed to get some
kind of weird whitespace character in there that completely breaks Goma
and local compilation. This fixes that.

BUG=4452
TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8821}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8821 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 16:28:18 +00:00
kjellander@webrtc.org
cfde27eeb3 Disable WebRtcVideoMediaChannelTest.AddRemoveRecvStreamAndRender on Windows.
The test is flaky:
http://build.chromium.org/p/client.webrtc/builders/Win64%20Release/builds/4179

BUG=4452
TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8820}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8820 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 16:09:47 +00:00
tommi@webrtc.org
b789f6271a Re-land 8809 "Set WebRtcVideoEngine2 as the WebRtcMe..."
I've kicked of a roll into Chromium with out the WebRtcVideoEngine2 change, to see if it was causing the roll problems, but re-landing in the meantime.

> Revert 8809 "Set WebRtcVideoEngine2 as the WebRtcMediaEngine."
> content_browsertests started failing around the time the change landed and rolls are failing now.
> I'm going to try rolling this back, start a roll, and then re-land.
> 
> > Set WebRtcVideoEngine2 as the WebRtcMediaEngine.
> > 
> > Removes the experiment launching WebRTC-NewVideoAPI. This field trial
> > has shown no major regressions on Chrome Canary/Dev that haven't been
> > addressed, so enabling it in time before feature freeze.
> > 
> > BUG=1788
> > R=mflodman@webrtc.org
> > 
> > Review URL: https://webrtc-codereview.appspot.com/44759004
> 
> TBR=pbos@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/43889004

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8817}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8817 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 12:50:44 +00:00
tommi@webrtc.org
0c3400168a Revert 8809 "Set WebRtcVideoEngine2 as the WebRtcMediaEngine."
content_browsertests started failing around the time the change landed and rolls are failing now.
I'm going to try rolling this back, start a roll, and then re-land.

> Set WebRtcVideoEngine2 as the WebRtcMediaEngine.
> 
> Removes the experiment launching WebRTC-NewVideoAPI. This field trial
> has shown no major regressions on Chrome Canary/Dev that haven't been
> addressed, so enabling it in time before feature freeze.
> 
> BUG=1788
> R=mflodman@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/44759004

TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8816}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8816 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-22 12:45:44 +00:00
pbos@webrtc.org
b9557a9bb7 Fix code to handle crashes for non-VP8.
Unit tests will be submitted Monday, submitting this part to get the
Android bots green.

BUG=1667, 1788
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8811}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8811 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 19:53:15 +00:00
pbos@webrtc.org
66df3cf7ab Set WebRtcVideoEngine2 as the WebRtcMediaEngine.
Removes the experiment launching WebRTC-NewVideoAPI. This field trial
has shown no major regressions on Chrome Canary/Dev that haven't been
addressed, so enabling it in time before feature freeze.

BUG=1788
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8809}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8809 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 15:45:17 +00:00
pbos@webrtc.org
8296ec518b Fix heap-use-after-free in WebRtcVideoEngine2.
Found in libjingle_peerconnection_unittest on asan while trying to
default-enable WebRtcVideoEngine2.

BUG=1788
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8808}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8808 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 14:28:31 +00:00
perkj@webrtc.org
9f9ea7e5ab Clean up webrtc external capture.
This cl removes the dependency to the external capture module if external capturing is used in webrtc.
It also removes two external capture methods that is not needed.
Further more it adds I420VideoFrame::Create that takes a pointer to packed memory as input.

R=magjed@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8804}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8804 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 10:55:39 +00:00
tina.legrand@webrtc.org
0c26299739 Disabling two flaky tests in libjingle_media_unittest.
BUG=4452,4453
R=kjellander@webrtc.org
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8791}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8791 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 13:28:20 +00:00
pbos@webrtc.org
143451d259 Base start bitrate on last observed bitrate.
Instead of setting bitrates based on codec target settings (which may
have previously been capped by a codec max bitrate), fetch the last
bandwidth allocated for this channel. This fixes broken low start bitrates
due to QCIF being set as default codec in WebRtcVideoEngine2 which caps
the max bitrate to 200kbps.

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

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

Cr-Commit-Position: refs/heads/master@{#8780}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8780 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 14:40:52 +00:00
perkj@webrtc.org
af612d5e07 Reland "Make the entry point for VideoFrames to webrtc const ref I420VideoFrame.""
Original cl description:
This removes the none const pointer entry and SwapFrame.
Since frames delivered using VideoSendStream no longer use the external capture module, VideoSendStream will not get an incoming framerate callback. VideoSendStream now uses a rtc::RateTracker.
Also, the video engine must ensure that time stamps are always increasing.

With this, time stamps (ntp, render_time and rtp timestamps ) are checked and set in ViECapturer::OnIncomingCapturedFrame

This cl was previously reverted in https://webrtc-codereview.appspot.com/46549004/.

Patchset 1 contains the original patch after rebase.
Patshet 2 fix webrtc_perf_tests reported in chromium:465306

Note that chromium:465287 is being fixed in https://webrtc-codereview.appspot.com/43829004/

BUG=1128
R=magjed@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8776}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8776 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 09:51:44 +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
pthatcher@webrtc.org
52cd828e17 Allow webrtc external encoder factories to declare encoders have internal camera sources.
This flag is passed to existing VieExternalCodec API (and others) to denote encoders that don't require/expect frames from the normal capture pipeline. This is the simplest way to allow camera->encoder texture support, until textures are supported through the normal camera pipeline and the lifetime issues are all figured out (I hear this is on the backlog, but not there yet).

Ideally, the flag would be on the encoder, but that doesn't work with SimulcastEncoderAdapter, since it doesn't create an encoder right away.

Note that this change only affects WebRtcVideoEngine (not WRVE2), since WRVE2 uses video_send_stream, and my hope is that by the time things have switched to WRVE2, textures will be supported with the normal camera pipeline and the dependency on internal sources can be thrown away.

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

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

Cr-Commit-Position: refs/heads/master@{#8769}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8769 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-18 02:25:18 +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
pbos@webrtc.org
ae222b5be6 Remove dead code in WebRtcVideoEngine2 unittests.
BUG=1788
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8747}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8747 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 10:48:28 +00:00
magjed@webrtc.org
858024f1d9 WebRtcVideoFrame: Initialize members in empty constructor
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8746}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8746 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 08:47:17 +00:00
bjornv@webrtc.org
3f11823a1a Disables SW AEC when built-in AEC is enabled
As of r7849 the built-in AEC on devicing supporting it is enabled by default.
Unfortunately, the SW AEC (AECM) was not disabled, hence running on top of the built-in one. This is not necessary. In fact it reduce double talk performance significantly.

BUG=4431
TESTED=manually
R=henrika@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8735}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8735 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 14:22:17 +00:00
magjed@webrtc.org
2056ee3e3c Revert "Changed argument occurences of const I420VideoFrame* to const I420VideoFrame& and non-const I420VideoFrame& to I420VideoFrame*."
This reverts commit r8731.

Reason for revert: Breakes Chromium FYI bots.

TBR=hbos, tommi

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

Cr-Commit-Position: refs/heads/master@{#8733}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8733 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:48:18 +00:00
hbos@webrtc.org
2dc5fa69b2 Changed argument occurences of const I420VideoFrame* to const I420VideoFrame& and non-const I420VideoFrame& to I420VideoFrame*.
R=magjed@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8731}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8731 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:02:19 +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
minyue@webrtc.org
9b2e1144df Supporting Opus DTX in Voice Engine.
Opus DTX is an Opus specific feature. It does not require WebRTC VAD/DTX, therefore is not set by VoECodec::SetVADStatus(), but rather a dedicated API.

BUG=1014
R=henrika@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8716}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8716 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-13 09:38:55 +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
decurtis@webrtc.org
8c5ea8a811 Fix temporal layer log string.
BUG=
R=pthatcher@webrtc.org

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

Patch from Noah Richards <noahric@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8687}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8687 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-11 19:59: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
pbos@webrtc.org
e77c9c8df5 Build WebRtcMediaEngine2 outside of Chromium.
Removes #ifdef WEBRTC_CHROMIUM_BUILD from
talk/media/webrtc/webrtcmediaengine.cc. WebRtcVideoEngine2 is built on
all platforms so there's no longer any need to guard this code under
ifdefs.

BUG=1788
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8679}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8679 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-11 10:50:16 +00:00
magjed@webrtc.org
4052d88162 Remove GetLastRenderedFrame
This function is not used.

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

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

Cr-Commit-Position: refs/heads/master@{#8673}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8673 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 16:36:42 +00:00
magjed@webrtc.org
d7452a0168 Revert "Make the entry point for VideoFrames to webrtc const ref I420VideoFrame."
This reverts commit r8633.

Reason for revert: Performance regressions in browser_tests_new_vie and webrtc_perf_tests.

BUG=1128,chromium:465287,chromium:465306
TBR=pbos,mflodman,perkj

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

Cr-Commit-Position: refs/heads/master@{#8670}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8670 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 15:13:13 +00:00
hbos@webrtc.org
aa57702c08 Removed texture_video_frame.h and webrtctexturevideoframe.h
BUG=1128
R=magjed@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8667}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8667 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 09:04:18 +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
1af1391b41 Remove WebRtcTextureVideoFrame
WebRtcTextureVideoFrame is currently an empty shell that only provides a convenience constructor of I420VideoFrame with a texture buffer. This CL moves that constructor, and all unittests, of WebRtcTextureVideoFrame into the base class. Then it's possible to completely remove WebRtcTextureVideoFrame and all its files.

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

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

Cr-Commit-Position: refs/heads/master@{#8638}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8638 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-06 17:17:43 +00:00
pbos@webrtc.org
a2a6fe66a3 Reconfigure default streams on AddRecvStream.
Makes sure RTX can be used for streams that have received early media
before being properly configured.

BUG=1788
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8634}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8634 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-06 15:35:48 +00:00
perkj@webrtc.org
bcead305a2 Make the entry point for VideoFrames to webrtc const ref I420VideoFrame.
This removes the none const pointer entry and SwapFrame.

Since frames delivered using VideoSendStream no longer use the external capture module, VideoSendStream will not get an incoming framerate callback. VideoSendStream now uses a rtc::RateTracker.
Also, the video engine must ensure that time stamps are always increasing.

With this, time stamps (ntp, render_time and rtp timestamps ) are checked and set in ViECapturer::OnIncomingCapturedFrame

BUG=1128
R=magjed@webrtc.org, mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8633}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8633 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-06 12:38:22 +00:00
pthatcher@webrtc.org
818c4984e4 Modify the simulcast encoder factory adapter to allow external encoder factories that support more than one codec.
Only VP8 encoders will be wrapped in the simulcast adapter; other codec types will be created directly with the real encoder factory and cleaned up appropriately.

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

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

Cr-Commit-Position: refs/heads/master@{#8623}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8623 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-06 02:21:23 +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
f7abb12aa9 Fix OVERRIDE->override again after reverting video frame cl.
TBR=magjed@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8600}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8600 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 17:43:49 +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