2105 Commits

Author SHA1 Message Date
honghaiz
9031d6366f Remove the network with empty name or NONE connection type from the network list.
In some device (e.g. Galaxy s6), the OS returns a list of network containing
one that has empty network name or NONE connection type, which cannot be used and cause crash to the app.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11482}
2016-02-04 05:45:28 +00:00
Honghai Zhang
14d024d882 Do not notify networkconnect if the connection type is known.
This sometimes happened with sim card has a voice plan but does not have data plan.
Renable the DCHECK.

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

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

Cr-Commit-Position: refs/heads/master@{#11479}
2016-02-03 23:12:33 +00:00
Honghai Zhang
45b683f43f Call static method getConnectionType using the class name.
BUG=
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11478}
2016-02-03 22:15:12 +00:00
Peter Boström
cedff02e30 Remove dead code from WebRtcVideoEngine2.
FindCodec is no longer used and can be removed.

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11476}
2016-02-03 16:58:57 +00:00
jbauch
e03ac51aa1 Implement NullVideoDecoder to avoid crash on unsupported decoders.
There is a use case with external codec factories that only support
encoding but not decoding for a given type. This leads to a crash
due to null being registered as codec (after a DCHECK).

This CL adds a NullVideoDecoder that is used instead of the null to
not crash but log to LS_ERROR.

BUG=webrtc:5249

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

Cr-Commit-Position: refs/heads/master@{#11475}
2016-02-03 13:51:56 +00:00
Stefan Holmer
10880011d9 Support multiple rtx codecs.
Adds negotiation of rtx codecs for red and vp9. To keep backwards
compatibility with older Chrome versions, this change includes two
hacks:
1. Red packets will be retransmitted over the rtx codec associated with
   vp8 if no rtx codec is associated with red. This is how Chrome does
   it today and ensures that we still can send red over rtx to older
   versions.

2. If rtx packets associated with the media codec (vp8/vp9 etc) are
   received and red has been negotiated, we will assume that the sender
   incorrectly has packetized red inside the rtx header associated with
   media. We will therefore restore it with the red payload type
   instead, which ensures that we can still receive rtx associated with
   red from old versions.

Offering multiple rtx codecs to older versions should not be a problem
since old versions themselves only try to negotiate rtx for vp8.

R=pbos@webrtc.org
TBR=mflodman@webrtc.org
BUG=webrtc:4024
TEST=Verified by running apprtc and emulating packet loss between Chrome with and without the patch.

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

Cr-Commit-Position: refs/heads/master@{#11472}
2016-02-03 12:30:10 +00:00
kjellander
abe095b879 Roll chromium_revision c6076f2..609aa24 (372974:373145)
Change log: c6076f2..609aa24
Full diff: c6076f2..609aa24

Changed dependencies:
* src/third_party/ffmpeg: cab2b46..501a5c5
DEPS diff: c6076f2..609aa24/DEPS

Clang version changed 257955:259395
Details: c6076f2..609aa24/tools/clang/scripts/update.py

NOTRY=True
TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11471}
2016-02-03 12:26:40 +00:00
honghaiz
7f777498a5 Disable flaky test WebRtcSessionTest.TestRtxRemovedByCreateAnswer on Win and Mac.
TBR=kjellander@webrtc.org
BUG=webrtc:4943
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#11467}
2016-02-03 05:54:08 +00:00
honghaiz
27a348555a Fixing a DCHECK failure on unknown connection type from OS.
Sometimes Android OS provides unknown connection type,
causing a DCHECK failure. This CL temporarily removes that checking.

BUG=
TBR=glaznev@webrtc.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#11466}
2016-02-03 02:20:31 +00:00
honghaiz
a7ad7c3ca0 Get the adapter type information from Android OS.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11463}
2016-02-02 20:54:28 +00:00
Peter Boström
ed3277bf14 Deprecate VideoDecoder::Reset() and remove calls.
Removes calls to decoder reset and instead drops delta frames and
requests keyframes until one arrives.

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

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

Cr-Commit-Position: refs/heads/master@{#11460}
2016-02-02 14:40:13 +00:00
Peter Boström
ce23bee697 Remove SendStreamFormat and ViewRequests.
SendStreamFormat is broken in current implementation and
ApplyViewRequest is no longer in use.

BUG=
R=pthatcher@webrtc.org, sophiechang@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#11459}
2016-02-02 13:16:03 +00:00
glaznev
94291480b6 Extra logging for HW codec.
- Add extra logging for Android HW codec corner cases
when frames are dropped or resolution is changed.
- Use presentation timestamps for decoded frame logging.
- Enable key frame sending on long frame gap for
H.264 codec.

BUG=b/26504665

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

Cr-Commit-Position: refs/heads/master@{#11452}
2016-02-01 21:17:28 +00:00
Peter Boström
a6c39d9902 Remove unimplemented VideoChannel code.
Also removing a lot of dead testcases that were copied over and made
sense in the old implementation, now they just take space.

BUG=
R=pthatcher@google.com, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11450}
2016-02-01 18:30:43 +00:00
Alex Glaznev
eee86a6aa3 Add option to disable particular HW video codec from app.
Plus minor clean up / adding comments.

BUG=b/26695339
R=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11431}
2016-01-29 22:17:16 +00:00
nisse
b163c3f1ba Delete unused members from VideoOptions
including options related to experimental constraints which are
recognized but never applied.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11424}
2016-01-29 09:14:45 +00:00
pbos
378dc770a6 Consolidate setters into SetRecvParameters.
Merges SetRecvCodec/SetRecvExtensions and an extra call for changing
RTCP mode, resulting in recreating the stream at most once instead of up
to three times.

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

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

Cr-Commit-Position: refs/heads/master@{#11422}
2016-01-28 23:58:48 +00:00
deadbeef
46eed76207 Removing "candidates" attribute from TransportDescription.
It's never used anywhere, so it only causes confusion between
itself and SessionDescriptionInterface::candidates.

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

Cr-Commit-Position: refs/heads/master@{#11420}
2016-01-28 21:24:45 +00:00
terelius
6043f2e5d6 Revert of Adding "first packet received" notification to PeerConnectionObserver. (patchset #5 id:80001 of https://codereview.webrtc.org/1581693006/ )
Reason for revert:
onFirstMediaPacketReceived() breaks bot.

Original issue's description:
> Adding "first packet received" notification to PeerConnectionObserver.
>
> R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org
>
> Committed: https://crrev.com/42265a8cc3b3f3db4aa2c29005aed2fb4393adef
> Cr-Commit-Position: refs/heads/master@{#11401}
>
> Committed: https://crrev.com/08a6eab75e13613183509d91d3892c1db57f6fc5
> Cr-Commit-Position: refs/heads/master@{#11404}

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

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

Cr-Commit-Position: refs/heads/master@{#11415}
2016-01-28 13:06:16 +00:00
nisse
e73afbaf17 New rtc::VideoSinkInterface.
The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.

And the list goes on, there's a dozen of different classes which act as video frame sinks.

At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.

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

Committed: https://crrev.com/a862d4563fbc26e52bed442de784094ae1dfe5ee
Cr-Commit-Position: refs/heads/master@{#11396}

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

Cr-Commit-Position: refs/heads/master@{#11414}
2016-01-28 12:47:13 +00:00
fippo
bec70ab0fd https://github.com/w3c/webrtc-stats/pull/10/files added mediaType to the tracks. The closest in the current stats is the ssrc type.
This is somewhat easier than looking up the media type by iterating pc.getLocalStreams / pc.getRemoteStreams and all tracks. Temporary until stats get revamped to conform to the spec obviously.

BUG=webrtc:4117

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

Cr-Commit-Position: refs/heads/master@{#11412}
2016-01-28 09:27:20 +00:00
nisse
6a062bd7af Deleted method AudioTrackInterface::GetRenderer.
Unused in chromium since #370957.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11411}
2016-01-28 08:38:15 +00:00
tkchin
ab8f82ffe0 Make ECDSA default for RTCPeerConnection
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11409}
2016-01-28 01:50:15 +00:00
tkchin
d162a5e379 Add shouldDisableBuffering to RTCFileLogger.
Expose disableBuffering method on underlying log sink.
This will make every write to the stream immediately write to the disk.
Useful in crash situations so that buffered output is not lost.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11407}
2016-01-27 23:11:53 +00:00
glaznev
919ff75376 Use high QP threshold for HW VP8 encoder frame downscaling.
Before HW VP8 downscaling was triggered by frame drops only.
Also reset the encoder when it drops large amount of frames in a row.

BUG=b/26504665

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

Cr-Commit-Position: refs/heads/master@{#11406}
2016-01-27 23:01:08 +00:00
Taylor Brandstetter
08a6eab75e Adding "first packet received" notification to PeerConnectionObserver.
R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org

Committed: https://crrev.com/42265a8cc3b3f3db4aa2c29005aed2fb4393adef
Cr-Commit-Position: refs/heads/master@{#11401}

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

Cr-Commit-Position: refs/heads/master@{#11404}
2016-01-27 21:38:57 +00:00
deadbeef
7b3c72ffa9 Revert of Adding "first packet received" notification to PeerConnectionObserver. (patchset #4 id:60001 of https://codereview.webrtc.org/1581693006/ )
Reason for revert:
Seems that the end-to-end unit tests are now flaky: https://build.chromium.org/p/client.webrtc/builders/Win64%20Debug/builds/6283

Will reland after fixing the test flakiness.

Original issue's description:
> Adding "first packet received" notification to PeerConnectionObserver.
>
> R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org
>
> Committed: https://crrev.com/42265a8cc3b3f3db4aa2c29005aed2fb4393adef
> Cr-Commit-Position: refs/heads/master@{#11401}

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

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

Cr-Commit-Position: refs/heads/master@{#11402}
2016-01-27 21:03:47 +00:00
Taylor Brandstetter
42265a8cc3 Adding "first packet received" notification to PeerConnectionObserver.
R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11401}
2016-01-27 20:10:44 +00:00
Peter Boström
3afc8c40be Consolidate SetSendParameters into one setter.
Removes unnecessary creation/removal of intermediate VideoSendStreams
due to only being partially configured before creation.

BUG=webrtc:5296, webrtc:5410
R=deadbeef@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11399}
2016-01-27 15:45:31 +00:00
Per
ec2922f864 Change PeerConnectionFactory.setVideoHwAccelerationOptions to create shared Egl context for harware encoders and decoders.
Before this fix, it was required that the EGL context used as an argument was kept open until all PeerConnections using the context had been closed. With this fix, that is no longer required.
Also, if a released EGLContext (EGL_NO_CONTEXT) is used, harware codecs will fallback to use byte buffers for encoding and decoding.
BUG=b/26583522
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11398}
2016-01-27 14:25:56 +00:00
nisse
2098fca39a Revert of New rtc::VideoSinkInterface. (patchset #7 id:120001 of https://codereview.webrtc.org/1594973006/ )
Reason for revert:
Broke chrome build. Investigating.

First error relating to AddSink method in mock_peer_connection_dependency_factory.h

Original issue's description:
> New rtc::VideoSinkInterface.
>
> The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.
>
> And the list goes on, there's a dozen of different classes which act as video frame sinks.
>
> At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.
>
> BUG=webrtc:5426
> R=perkj@webrtc.org, pthatcher@webrtc.org
>
> Committed: https://crrev.com/a862d4563fbc26e52bed442de784094ae1dfe5ee
> Cr-Commit-Position: refs/heads/master@{#11396}

TBR=pthatcher@webrtc.org,pbos@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/1646463002

Cr-Commit-Position: refs/heads/master@{#11397}
2016-01-27 14:12:57 +00:00
Niels Möller
a862d4563f New rtc::VideoSinkInterface.
The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.

And the list goes on, there's a dozen of different classes which act as video frame sinks.

At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.

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

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

Cr-Commit-Position: refs/heads/master@{#11396}
2016-01-27 13:41:04 +00:00
Peter Boström
b11e97a552 Move talk/media/webrtc/OWNERS to talk/media.
Permits changing talk/media/base without root ownership approval.

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11392}
2016-01-27 11:39:36 +00:00
hbos
bab934bffe H.264 video codec support using OpenH264 (http://www.openh264.org/) for encoding and FFmpeg (https://www.ffmpeg.org/) for decoding.
It works on all platforms except Android and iOS (FFmpeg limitation).

Implemented behind compile time flags, off by default.
The plan is to have it enabled in Chrome (see bug), but not in Chromium/webrtc by default.

Flags to turn it on:
- rtc_use_h264 = true
- ffmpeg_branding = "Chrome" (or other brand that includes H.264 decoder)

Tests using H264:
- video_loopback --codec=H264
- screenshare_loopback --codec=H264
- video_engine_tests (EndToEndTest.SendsAndReceivesH264)

NOTRY=True
BUG=500605, 468365
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424

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

Cr-Commit-Position: refs/heads/master@{#11390}
2016-01-27 09:36:07 +00:00
hjon
3ea1852f9e Sync build_ios_libs.sh script with http://webrtc.org/native-code/ios/
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11388}
2016-01-26 21:43:25 +00:00
jbauch
4cb3e3997b Fix compilation if HAVE_WEBRTC_VIDEO is not defined.
This CL fixes compiler / linker errors that occur if HAVE_WEBRTC_VIDEO is
not defined and introduces a new class NullWebRtcVideoEngine to use in
that case.

BUG=
TEST=remove define HAVE_WEBRTC_VIDEO from talk/build/common.gypi, run gclient runhooks and compile

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

Cr-Commit-Position: refs/heads/master@{#11387}
2016-01-26 21:07:59 +00:00
pbos
5ad935cb56 Remove mutable from rtc::CriticalSection members.
rtc::CriticalSection is now lockable from const methods and no longer
need to remain mutable.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11367}
2016-01-25 11:52:53 +00:00
nisse
9de632a100 Deleted unused enums MediaChannelOptions and VoiceMediaChannelOptions,
with constants OPT_CONFERENCE and OPT_AGC_MINUS_10DB.

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

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

Cr-Commit-Position: refs/heads/master@{#11365}
2016-01-25 09:56:55 +00:00
nisse
0a37497842 Deleted unused method SetDumpPath and unneeded includes.
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11359}
2016-01-22 19:56:57 +00:00
minyue
c8930ba8ac Disable WebRtcSessionTest.TestStunError on Win.
BUG=webrtc:5411

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

Cr-Commit-Position: refs/heads/master@{#11358}
2016-01-22 14:17:51 +00:00
deadbeef
8947a01e05 Fixing an uninitialized variable in webrtcsession_unittest.
Introduced in https://codereview.webrtc.org/1590333004/

TBR=pthatcher@webrtc.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#11345}
2016-01-21 18:26:46 +00:00
Tommi
3c16978c84 Remove cast to LocalAudioSource from AudioRtpSender.
We can't assume that the audio source implementation will be our own internal one and we shouldn't apply local audio options to a remote audio track this way either.

BUG=5423
R=solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11341}
2016-01-21 15:12:28 +00:00
nisse
0b98cf72c6 Delete CaptureRenderAdapter::VideoRenderInfo struct, it is unused since the recent deletion of SetSize.
Delete methods MaybeSetRenderingSize and IsRendererRegistered, the latter replaced by std::find.

Delete return values from AddRenderer and RemoveRenderer.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11332}
2016-01-21 11:04:35 +00:00
noahric
5082c83320 Make type and constructors in EglBase14 public.
This type is used for GL contexts in android hardware encode/decode, so
it seems correct/useful to make it publicly constructable.

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

Cr-Commit-Position: refs/heads/master@{#11331}
2016-01-21 10:13:00 +00:00
nisse
d26fadb454 Delete GetRenderer method, used only by the tests.
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11328}
2016-01-21 07:26:44 +00:00
deadbeef
057ecf01e4 Making WebRtcSession fire a destroyed signal.
This ensures the DtmfSender won't try to access it after it's
destroyed.

BUG=webrtc:5403

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

Cr-Commit-Position: refs/heads/master@{#11327}
2016-01-20 22:30:50 +00:00
asapersson
1d61a518ac Send key frame if time difference between incoming frames exceeds a certain limit.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11315}
2016-01-20 09:13:51 +00:00
perkj
8a2c31d208 Make it possible to run peerconnection_unittests on Android.
- renamed libjingle_peerconnection_unittest to peerconnection_unittest to circumvent cr issue http://crbug.com/543820

TEST=On an android build webrtc/build/android/test_runner.py gtest -s peerconnection_unittests --verbose -t 900
BUG=webrtc:2365,543820
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11304}
2016-01-19 14:20:07 +00:00
nisse
c4c8485662 Deleted renderer-related SetSize methods, and all uses.
webrtc::VideoRendererInterface::SetSize was completely unused.

cricket::VideoRenderer::SetSize only had dummy implementations
returning true and doing nothing.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11298}
2016-01-19 08:52:55 +00:00
nisse
81354f5ef6 Added mute logic to VideoTrackRenderers.
If the track is disabled, replace incoming frames by black frames. Affects local rendering of disabled tracks.
Also intended to replace the similar logic in
WebRtcVideoChannel2::WebRtcVideoSendStream::InputFrame, once
VideoRtpSender is hooked up as a renderer for the track.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11297}
2016-01-19 08:23:31 +00:00