Commit Graph

446 Commits

Author SHA1 Message Date
7a43d253f9 Make the audio channel communicate network state changes to the call.
This change enables voice-only calls to keep track of the network state.
This is only a partial fix - the last modality to change state controls
the state for the entire call, so a call with a failed video transport
will also stop sending audio packets. Handling this condition correctly
would require the call to keep track of network state for each media
type separately, and take care of conditions such as a failed video
channel getting removed, while a functioning audio channel remains.

BUG=webrtc:5307

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

Cr-Commit-Position: refs/heads/master@{#12093}
2016-03-22 22:32:31 +00:00
09c3a1e291 Use rtc::scoped_refptr for WebRtcVideoCapturer.
Un-breaks peerconnection_client which would instantly use-after-free on
an allocated VCM because it wasn't building a scoped_refptr so all
references to the VCM were dropped.

BUG=webrtc:5229
TBR=tommi@webrtc.org
TEST=Run peerconnection_client locally, verify that there's no crash.

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

Cr-Commit-Position: refs/heads/master@{#12088}
2016-03-22 16:17:47 +00:00
81cbd92444 Revert of Initialize/configure video encoders asychronously. (patchset #4 id:60001 of https://codereview.webrtc.org/1757313002/ )
Reason for revert:
Breaks RTCVideoEncoder which has incorrect assumptions on where InitEncode etc. is called from. Temporarily reverting until RTCVideoEncoder has been updated.

Original issue's description:
> Initialize/configure video encoders asychronously.
>
> Greatly speeds up setRemoteDescription() by moving encoder initialization
> off the main worker thread, which is free to move onto gathering ICE
> candidates and other tasks while InitEncode() is performed. It also
> un-blocks PeerConnection GetStats() which is no longer blocked on
> encoder initialization.
>
> BUG=webrtc:5410
> R=stefan@webrtc.org
>
> Committed: fb647a67be

R=stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:595274, chromium:595308, webrtc:5410

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

Cr-Commit-Position: refs/heads/master@{#12086}
2016-03-22 11:19:14 +00:00
c5dabdd3fb Add support for configuring the number of spatial/temporal layers for VP9 through a field trial.
BUG=chromium:595695

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

Cr-Commit-Position: refs/heads/master@{#12073}
2016-03-21 11:15:56 +00:00
eb83a1a10f This is an initial cleanup step, aiming to delete the
webrtc::VideoRenderer class, replacing it by rtc::VideoSinkInterface.

The next step is to convert all places where a renderer is attached to
rtc::VideoSourceInterface, and at that point, the
SmoothsRenderedFrames method can be replaced by a flag
rtc::VideoSinkWants::smoothed_frames.

Delete unused method IsTextureSupported.
Delete unused time argument to RenderFrame.
Let webrtc::VideoRenderer inherit rtc::VideoSinkInterface. Rename RenderFrame --> OnFrame.

TBR=kjellander@webrtc.org
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12070}
2016-03-21 08:28:06 +00:00
9e083d2ac5 Reland of Delete empty API files and cleaned up includes. (patchset #1 id:1 of https://codereview.webrtc.org/1813083002/ )
Reason for revert:
New attempt. Cl for removing videosourceinterface.h dep in chrome is landed here: https://codereview.chromium.org/1810273003/

Original issue's description:
> Revert of Delete empty API files and cleaned up includes. (patchset #2 id:20001 of https://codereview.webrtc.org/1809053002/ )
>
> Reason for revert:
> Breaks Chromium build. Need to remove the references to the obsolete header files from Chromium and reland.
>
> Original issue's description:
> > Delete empty API files and cleaned up includes.
> >
> > TBR=glaznev@webrtc.org
> >
> > BUG=webrtc:5426
> >
> > Committed: https://crrev.com/c9022f508644dc33c01b05cb22ebfc2be145d6b2
> > Cr-Commit-Position: refs/heads/master@{#12039}
>
> TBR=nisse@webrtc.org,glaznev@webrtc.org,perkj@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5426
>
> Committed: https://crrev.com/246b5273986d5a5b140b3d1a656baa8d40c36276
> Cr-Commit-Position: refs/heads/master@{#12042}

TBR=nisse@webrtc.org,glaznev@webrtc.org,deadbeef@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12065}
2016-03-20 16:38:44 +00:00
caafdba0e4 Fix broken CVO header extension
Adds end to end unit tests for CVO.

BUG=webrtc:5621

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

Cr-Commit-Position: refs/heads/master@{#12063}
2016-03-20 14:34:37 +00:00
eec21bdae3 Reland Use CopyOnWriteBuffer instead of Buffer to avoid unnecessary copies.
This CL removes copy and assign support from Buffer and changes various
parameters from Buffer to CopyOnWriteBuffer so they can be passed along
and copied without actually copying the underlying data.

With this changed some parameters to be "const" and fixed an issue when
creating a CopyOnWriteBuffer with empty data.

BUG=webrtc:5155

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

Cr-Commit-Position: refs/heads/master@{#12062}
2016-03-20 13:15:48 +00:00
194e3bcc53 Revert of Use CopyOnWriteBuffer instead of Buffer to avoid unnecessary copies. (patchset #4 id:60001 of https://codereview.webrtc.org/1785713005/ )
Reason for revert:
I'm really sorry for having to revert this but it seems this hit an unexpected compile error downstream:

webrtc/media/sctp/sctpdataengine.cc: In function 'void cricket::VerboseLogPacket(const void*, size_t, int)':
webrtc/media/sctp/sctpdataengine.cc:172:37: error: invalid conversion from 'const void*' to 'void*' [-fpermissive]
              data, length, direction)) != NULL) {
                                     ^
In file included from webrtc/media/sctp/sctpdataengine.cc:20:0:
third_party/usrsctp/usrsctplib/usrsctp.h:964:1: error:   initializing argument 1 of 'char* usrsctp_dumppacket(void*, size_t, int)' [-fpermissive]
 usrsctp_dumppacket(void *, size_t, int);
 ^

I'm sure you can fix this easily and just re-land this CL, while I'm going to look into how to add this warning at the public bots (on Monday).

Original issue's description:
> Use CopyOnWriteBuffer instead of Buffer to avoid unnecessary copies.
>
> This CL removes copy and assign support from Buffer and changes various
> parameters from Buffer to CopyOnWriteBuffer so they can be passed along
> and copied without actually copying the underlying data.
>
> With this changed some parameters to be "const" and fixed an issue when
> creating a CopyOnWriteBuffer with empty data.
>
> BUG=webrtc:5155
>
> Committed: https://crrev.com/944c39006f1c52aee20919676002dac7a42b1c05
> Cr-Commit-Position: refs/heads/master@{#12058}

TBR=kwiberg@webrtc.org,tkchin@webrtc.org,tommi@webrtc.org,pthatcher@webrtc.org,jbauch@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5155

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

Cr-Commit-Position: refs/heads/master@{#12060}
2016-03-19 19:12:58 +00:00
944c39006f Use CopyOnWriteBuffer instead of Buffer to avoid unnecessary copies.
This CL removes copy and assign support from Buffer and changes various
parameters from Buffer to CopyOnWriteBuffer so they can be passed along
and copied without actually copying the underlying data.

With this changed some parameters to be "const" and fixed an issue when
creating a CopyOnWriteBuffer with empty data.

BUG=webrtc:5155

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

Cr-Commit-Position: refs/heads/master@{#12058}
2016-03-19 08:57:40 +00:00
5f0b83b7fb Enabling rtcp-rsize negotiation and fixing some issues with it.
Sending of reduced size RTCP packets should be enabled only if it's
enabled in the send parameters (which corresponds to the remote description).

Since the RTCPReceiver's RtcpMode isn't used at all, I removed it to ease
confusion.

BUG=webrtc:4868
R=pbos@webrtc.org, pthatcher@google.com, pthatcher@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12057}
2016-03-18 22:02:13 +00:00
f5629ad44f Reland of Change VideoCapture_apply_rotation default to false (patchset #1 id:1 of https://codereview.webrtc.org/1807673008/ )
Reason for revert:
Relanding because this doesn't actually break the bot. The issue the caused the test to crash on the bot should be fixed by: https://codereview.webrtc.org/1815733002/

Original issue's description:
> Revert of Change VideoCapture_apply_rotation default to false (patchset #4 id:80001 of https://codereview.webrtc.org/1779883004/ )
>
> Reason for revert:
> Seems to break on linux ubsan
>
> https://build.chromium.org/p/client.webrtc/builders/Linux%20UBSan/builds/247
>
> Original issue's description:
> > Change VideoCapture_apply_rotation default to false
> >
> > BUG=webrtc:5621
> > R=pthatcher@webrtc.org
> >
> > Committed: https://crrev.com/6919457319b0088ed8b68db30f68a03966d67121
> > Cr-Commit-Position: refs/heads/master@{#12052}
>
> TBR=pthatcher@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5621
>
> Committed: https://crrev.com/223b982785573323aa399de4f2e551cadbaace8d
> Cr-Commit-Position: refs/heads/master@{#12053}

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

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

Cr-Commit-Position: refs/heads/master@{#12054}
2016-03-18 18:38:33 +00:00
223b982785 Revert of Change VideoCapture_apply_rotation default to false (patchset #4 id:80001 of https://codereview.webrtc.org/1779883004/ )
Reason for revert:
Seems to break on linux ubsan

https://build.chromium.org/p/client.webrtc/builders/Linux%20UBSan/builds/247

Original issue's description:
> Change VideoCapture_apply_rotation default to false
>
> BUG=webrtc:5621
> R=pthatcher@webrtc.org
>
> Committed: https://crrev.com/6919457319b0088ed8b68db30f68a03966d67121
> Cr-Commit-Position: refs/heads/master@{#12052}

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

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

Cr-Commit-Position: refs/heads/master@{#12053}
2016-03-18 17:06:36 +00:00
Per
6919457319 Change VideoCapture_apply_rotation default to false
BUG=webrtc:5621
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12052}
2016-03-18 15:56:56 +00:00
277e06d314 Remove unused libudev on Linux.
BUG=webrtc:5615

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

Cr-Commit-Position: refs/heads/master@{#12050}
2016-03-18 13:08:47 +00:00
b031955770 Deprecate AudioProcessing::AnalyzeReverseStream(AudioFrame) API
Review URL: https://codereview.webrtc.org/1783693005

Cr-Commit-Position: refs/heads/master@{#12045}
2016-03-18 03:39:57 +00:00
da116c4c37 Use ProcessReverseStream in VoiceEngines OutputMixer
Review URL: https://codereview.webrtc.org/1776363002

Cr-Commit-Position: refs/heads/master@{#12044}
2016-03-17 23:43:35 +00:00
246b527398 Revert of Delete empty API files and cleaned up includes. (patchset #2 id:20001 of https://codereview.webrtc.org/1809053002/ )
Reason for revert:
Breaks Chromium build. Need to remove the references to the obsolete header files from Chromium and reland.

Original issue's description:
> Delete empty API files and cleaned up includes.
>
> TBR=glaznev@webrtc.org
>
> BUG=webrtc:5426
>
> Committed: https://crrev.com/c9022f508644dc33c01b05cb22ebfc2be145d6b2
> Cr-Commit-Position: refs/heads/master@{#12039}

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

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

Cr-Commit-Position: refs/heads/master@{#12042}
2016-03-17 22:03:46 +00:00
e0897c043b Remove webrtc/sound/ subdir.
Now that DeviceManager and DeviceInfo are gone, this code is unused.

BUG=webrtc:5579

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

Cr-Commit-Position: refs/heads/master@{#12040}
2016-03-17 18:23:05 +00:00
c9022f5086 Delete empty API files and cleaned up includes.
TBR=glaznev@webrtc.org

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12039}
2016-03-17 16:57:30 +00:00
505945aed7 Delete unused VideoCapturer statistics.
It appears that the adapt_frame_drops, effects_frame_drops, and capturer_frame_time statistics are never used. They are collected by cricket::VideoCapturer, and copied into VideoSenderInfo by the VideoMediaChannel::GetStats method.

So delete the code to generate the statistics, and the VariableInfo template which had no other uses.

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

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

Cr-Commit-Position: refs/heads/master@{#12032}
2016-03-17 11:20:50 +00:00
94a23f04af Reland "Add check_deps rules in DEPS files."
Relanding https://codereview.webrtc.org/1796413002/
without the change to the openmax_dl include path
(which broke downstream code).

TBR=tommi@webrtc.org
BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

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

Cr-Commit-Position: refs/heads/master@{#12031}
2016-03-17 11:05:50 +00:00
d6c395441b Refactor VideoTracks to forward all sinks to its source
This remove the use of VideoTrackRenderers within VideoTrack and instead all its sinks are passed to VideoSource.
That means that the source will handle all sinks and can (if the source implement it) handle different SinkWants for each sink.
The VideoBroadcaster is updated to produce black frames instead of as is today the deprecated VideoTrackRenderers.

BUG=webrtc:5426
R=nisse@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12028}
2016-03-17 09:35:53 +00:00
dc1c62cd30 Enable setting the maximum bitrate limit in RtpSender.
This change allows the application to limit the bitrate of the outgoing
audio and video streams at runtime. The API roughly follows the WebRTC
API draft, defining the RTCRtpParameters structure witn exactly one
encoding (simulcast streams are not exposed in the API for now).
(https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#12025}
2016-03-17 02:07:49 +00:00
8ad582d83f Remove DeviceManager and DeviceInfo.
BUG=webrtc:5615, webrtc:5620

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

Cr-Commit-Position: refs/heads/master@{#12020}
2016-03-16 16:35:04 +00:00
05103314e5 Drop VideoOptions from VideoSendParameters.
BUG=webrtc:5438

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

Cr-Commit-Position: refs/heads/master@{#12011}
2016-03-16 09:22:57 +00:00
56cf60e717 Revert of Add check_deps rules in DEPS files. (patchset #2 id:60001 of https://codereview.webrtc.org/1796413002/ )
Reason for revert:
The openmax_dl include change breaks downstream projects.

Original issue's description:
> Add check_deps rules in DEPS files.
>
> Add fine-grained check_deps rules for all of WebRTC.
> This will help both maintaining sane dependencies and provides a way
> to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.
>
> Example:
> buildtools/checkdeps/graphdeps.py --root=. --format=png \
> --out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
> --excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'
>
> will produce a neat webrtc.png image showcasing the dependencies
> (according to the DEPS file) for the bitrate_controller module.
> Some dependencies are filtered out for readability.
>
> BUG=webrtc:5623
> TESTED=Passing runs using:
> buildtools/checkdeps/checkdeps.py --root=. talk
> buildtools/checkdeps/checkdeps.py --root=. webrtc
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/086f851b7b9b4bcbd4fe507c3bf83b760bd7f4d9
> Cr-Commit-Position: refs/heads/master@{#12008}

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

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

Cr-Commit-Position: refs/heads/master@{#12009}
2016-03-16 00:41:04 +00:00
086f851b7b Add check_deps rules in DEPS files.
Add fine-grained check_deps rules for all of WebRTC.
This will help both maintaining sane dependencies and provides a way
to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.

Example:
buildtools/checkdeps/graphdeps.py --root=. --format=png \
--out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
--excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'

will produce a neat webrtc.png image showcasing the dependencies
(according to the DEPS file) for the bitrate_controller module.
Some dependencies are filtered out for readability.

BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12008}
2016-03-16 00:22:53 +00:00
fb647a67be Initialize/configure video encoders asychronously.
Greatly speeds up setRemoteDescription() by moving encoder initialization
off the main worker thread, which is free to move onto gathering ICE
candidates and other tasks while InitEncode() is performed. It also
un-blocks PeerConnection GetStats() which is no longer blocked on
encoder initialization.

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

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

Cr-Commit-Position: refs/heads/master@{#11983}
2016-03-14 15:59:03 +00:00
31642aa8f9 Relanding https://codereview.webrtc.org/1715883002/ in pieces.
- Change argument type to int for SetSendTelephoneEventPayloadType()

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#11980}
2016-03-14 15:00:40 +00:00
d44c077dce Revert of Safe numeric library: base/numerics (copied from Chromium) (patchset #11 id:250001 of https://codereview.webrtc.org/1753293002/ )
Reason for revert:
Looks like the Chrome iOS build is broken because of these two changes.  So I'm going to have to revert.  Here's the error:

https://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device_ninja/builds/185624/steps/compile/logs/stdio

FAILED: rm -f arch/libsafe_numerics.arm64.a && ./gyp-mac-tool filter-libtool libtool  -static -o arch/libsafe_numerics.arm64.a
error: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: no files specified
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT] [-no_warning_for_no_symbols]
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load]
FAILED: rm -f arch/libsafe_numerics.armv7.a && ./gyp-mac-tool filter-libtool libtool  -static -o arch/libsafe_numerics.armv7.a
error: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: no files specified
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT] [-no_warning_for_no_symbols]
Usage: /Applications/Xcode7.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load]
ninja: build stopped: subcommand failed.

Original issue's description:
> Safe numeric library added: base/numerics (copied from Chromium)
>
> This copies the contents (unittest excluded) of base/numerics in
> chromium to base/numerics in webrtc. Files added:
> - safe_conversions.h
> - safe_conversions_impl.h
> - safe_math.h
> - safe_math_impl.h
>
> A really old version of safe_conversions[_impl].h previously existed in
> base/, this has been deleted and sources using it have been updated
> to include the new base/numerics/safe_converions.h.
>
> This CL also adds a DEPS file to webrtc/base.
>
> NOPRESUBMIT=True
> BUG=webrtc:5548, webrtc:5623
>
> Committed: https://crrev.com/de1c81b2d2196be611674aa6019b9db3a9329042
> Cr-Commit-Position: refs/heads/master@{#11907}

TBR=kjellander@webrtc.org,kwiberg@webrtc.org,tina.legrand@webrtc.org,hbos@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5548, webrtc:5623

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

Cr-Commit-Position: refs/heads/master@{#11965}
2016-03-12 01:12:40 +00:00
e7ba08695c Reconfigure video encoders even when not sending.
Permits sending faster when having an attached track before actually
sending since the configured stream is ready to encode as soon as a call
is accepted.

BUG=webrtc:5410
R=deadbeef@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11963}
2016-03-11 23:02:37 +00:00
916c76eaad Add new files for VideoSourceBase to roll into Chrome in preparation for implementatin.
TBR=pthatcher@webrtc.org
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11959}
2016-03-11 21:54:37 +00:00
8842c3e41b Relanding https://codereview.webrtc.org/1715883002/ in pieces.
- Use better types in AudioSendStream::SendTelephoneEvent() and related methods.

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#11953}
2016-03-11 11:06:48 +00:00
f0dcfe2c81 Change VideoRtpReceiver to create remote VideoTrack and VideoTrackSource.
This enabled us to be able to remove VideoTrack::GetSink and RemoteVideoCapturer.

Since video frames from the decoder is delivered on a media engine internal thread, VideoBroadCaster must be made thread safe.

BUG=webrtc:5426
R=deadbeef@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11944}
2016-03-10 17:32:08 +00:00
3ecb5c8698 Revert of - Clean up unused voice engine DTMF code. (patchset #4 id:60001 of https://codereview.webrtc.org/1722253002/ )
Reason for revert:
Breaks Chromium FYI bots for Android. E.g. https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28K%20Nexus5%29/builds/4486/steps/content_browsertests/logs/stdio

Original issue's description:
> - Clean up unused voice engine DTMF code following removal of VoEDtmf APIs.
> - Use better types in AudioSendStream::SendTelephoneEvent() and related methods.
>
> BUG=webrtc:4690
>
> Committed: https://crrev.com/8886c816582a7c6190c5429222cb8096fca302a6
> Cr-Commit-Position: refs/heads/master@{#11927}

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

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

Cr-Commit-Position: refs/heads/master@{#11930}
2016-03-09 15:32:05 +00:00
8886c81658 - Clean up unused voice engine DTMF code following removal of VoEDtmf APIs.
- Use better types in AudioSendStream::SendTelephoneEvent() and related methods.

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#11927}
2016-03-09 11:32:53 +00:00
ca8b404e86 Add tracing to interesting media-related methods.
Accounts for a lot of worker-thread blocking by voice-related code or
initializing SRTP.

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11920}
2016-03-08 22:24:21 +00:00
1a018dcda3 Prevent a voice channel from sending data before a source is set.
At the top level, setting a track on an RtpSender is equivalent to
setting a source (previously called a renderer)
on a voice send stream. An RtpSender without a track
is not supposed to send data (not even muted data), so a send stream without
a source shouldn't send data.

Also replacing SendFlags with a boolean and implementing "Start"
and "Stop" methods on AudioSendStream, which was planned anyway
and simplifies this CL.

R=pthatcher@webrtc.org, solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11918}
2016-03-08 20:37:48 +00:00
72e29d2cbb On WVoMC::SetSendParameters(), figure out send codec settings ONCE, not for each send stream.
This CL is a first step to moving codec configuration into AudioSendStream.

BUG=webrtc:4690
TBR=ossu@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11911}
2016-03-08 14:35:22 +00:00
de1c81b2d2 Safe numeric library added: base/numerics (copied from Chromium)
This copies the contents (unittest excluded) of base/numerics in
chromium to base/numerics in webrtc. Files added:
- safe_conversions.h
- safe_conversions_impl.h
- safe_math.h
- safe_math_impl.h

A really old version of safe_conversions[_impl].h previously existed in
base/, this has been deleted and sources using it have been updated
to include the new base/numerics/safe_converions.h.

This CL also adds a DEPS file to webrtc/base.

NOPRESUBMIT=True
BUG=webrtc:5548, webrtc:5623

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

Cr-Commit-Position: refs/heads/master@{#11907}
2016-03-08 12:46:07 +00:00
c11b184837 Remove CaptureManager and related calls in ChannelManager.
Removed unused screencast APIs.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11896}
2016-03-08 01:35:46 +00:00
f2880a0e04 Change webrtc::VideoSourceInterface to inherit rtc::VideoSourceInterface.
Also introduce a typedef VideoTrackSourceInterface to be able to start changing clients such as Chrome to use the name VideoTrackSourceInterface.

Document: https://docs.google.com/a/google.com/document/d/1mEIw_0uDzyHjL3l8a82WKp6AvgR8Tlwn9JGvhbUjVpY/edit?usp=sharing

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11854}
2016-03-03 09:51:56 +00:00
905f8e7e9d Make ReconfigureVideoEncoder void.
Also moves and simplifies SetSendCodec from VideoSendStream to mostly
inside ViEEncoder. This is necessary for making
ReconfigureVideoEncoder asynchronous as we don't post any result back.

BUG=webrtc:5494
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11847}
2016-03-02 16:00:07 +00:00
f475277547 Rename constants files in webrtc/{media,p2p}
Multiple sources with the same names forces ugly GYP hacks in
Chromium's libjingle.gyp. Rename the sources in WebRTC to
enable cleaning this up in Chromium.

To summarize:
webrtc/media/base/constants.{cc,h} -> mediaconstants.{cc,h}
webrtc/p2p/base/constants.{cc,h} -> p2pconstants.{cc,h}

This CL will require coordinating landing a roll in Chromium.

BUG=webrtc:4256
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11842}
2016-03-02 13:42:35 +00:00
91e1c15f8e Make sure rotation is not applied by the capturer if the CVO exenstion is set before the send stream is created.
BUG=webrtc:5621

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11841}
2016-03-02 13:34:08 +00:00
60653ba3cc New flag is_screencast in VideoOptions.
This cl copies the value of cricket::VideoCapturer::IsScreencast into
a flag in VideoOptions. It is passed on via the chain

VideortpSender::SetVideoSend
WebRtcVideoChannel2::SetVideoSend
WebRtcVideoChannel2::SetOptions
WebRtcVideoChannel2::WebRtcVideoSendStream::SetOptions

Where it's used, in
WebRtcVideoChannel2::WebRtcVideoSendStream::OnFrame, we can look it up
in parameters_, instead of calling capturer_->IsScreencast().

Doesn't touch screencast logic related to cpu adaptation, since that
code is in flux in a different cl.

Also drop the is_screencast flag from the Dimensions struct, and drop separate options argument from ConfigureVideoEncoderSettings and SetCodecAndOptions, instead always using the options recorded in VideoSendStreamParameters::options.

In the tests, changed FakeVideoCapturer::is_screencast to be a construction time flag. Generally, unittests of screencast have to both use a capturer configured for screencast, and set the screencast flag using SetSendParameters. Since the automatic connection via VideoSource and VideoRtpSender isn't involved in the unit tests.

Note that using SetSendParameters to set the screencast flag doesn't make sense, since it's not per-stream. SetVideoSend would be more appropriate. That should be fixed if/when we drop VideoOptions from SetSendParameters.

BUG=webrtc:5426
R=pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11837}
2016-03-02 10:41:49 +00:00
5711c8d1f8 Change transport sequence number extension strings to specify what revision is implemented.
BUG=webrtc:5610
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11831}
2016-03-01 15:27:27 +00:00
0db023a70b Move suspend_below_min_bitrate from VideoOptions to MediaConfig.
Rename SetCodecAndOptions to SetCodec, it no longer sets or uses the
VideoOptions. In MediaConfig, collect the video-related flags into a
struct.

As a followup, it should be possible to delete VideoOptions from
VideoSendParameters and VideoSendStreamParameters.

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

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

Cr-Commit-Position: refs/heads/master@{#11828}
2016-03-01 12:30:07 +00:00
7d9112cbc4 Make it possible to exclude device management code from rtc_media target.
Chromium doesn't use the device managment code in webrtc/media
so we need a way to turn it off in order to eliminate Chromium's
src/third_party/libjingle/libjingle.gyp

BUG=webrtc:4256
NOTRY=True
TESTED=Trybots + successfully compiled with
GYP_DEFINES=include_internal_device_management=0 webrtc/build/gyp_webrtc
ninja -C out/Debug rtc_media

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

Cr-Commit-Position: refs/heads/master@{#11816}
2016-02-29 14:14:51 +00:00