961 Commits

Author SHA1 Message Date
Tommi
cb95f54ee4 Remove pointless move() to fix build on clang/win.
Fixes:
..\..\third_party\libjingle\source\talk\app\webrtc\remoteaudiosource.cc(100,15)
: error: moving a temporary object prevents copy elision
[-Werror,-Wpessimizing-move]
        ssrc, std::move(rtc::scoped_ptr<AudioSinkInterface>(new Sink(this))));
              ^
..\..\third_party\libjingle\source\talk\app\webrtc\remoteaudiosource.cc(100,15)
:  note: remove std::move call here
        ssrc, std::move(rtc::scoped_ptr<AudioSinkInterface>(new Sink(this))));
              ^~~~~~~~~~

R=thakis@chromium.org
TBR=thakis@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#10999}
2015-12-12 15:54:41 +00:00
Tommi
f888bb58da Support for unmixed remote audio into tracks.
BUG=chromium:121673
R=solenberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10995}
2015-12-12 00:37:14 +00:00
Honghai Zhang
04e9146e58 Discard old-generation candidates when ICE restarts
The existing code only do so on the controlled side.

BUG=webrtc:5291
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10993}
2015-12-11 22:26:43 +00:00
Peter Boström
822bdf9784 Remove cricket::VideoEncoderConfig.
BUG=webrtc:5332
R=noahric@chromium.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10991}
2015-12-11 18:54:46 +00:00
Per
71f5a9a377 This cl change VideoCaptureAndroid to handle CVO the same way when capturing to texture as when using ordinary byte buffers.
Ie, rotation is applied in C++ in the VideoFrameFactory is  apply_rotation_ is set. If not, rotation is sent in RTP.

BUG=webrtc:4993
R=nisse@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#10986}
2015-12-11 08:32:50 +00:00
Taylor Brandstetter
cf846ad60a Adding stub files needed for https://codereview.webrtc.org/1507973003/
TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10981}
2015-12-10 23:52:12 +00:00
deadbeef
7c73bdbd82 Renaming JsepPeerConnectionP2PTestClient back to P2PTestConductor.
Updating blacklists as well.

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

Cr-Commit-Position: refs/heads/master@{#10980}
2015-12-10 23:10:52 +00:00
deadbeef
a1f567ae90 Revert of Free SCTP data channels asynchronously in PeerConnection. (patchset #3 id:40001 of https://codereview.webrtc.org/1492383002/ )
Reason for revert:
Breaks WebrtcTransportTest.DataStream, due to different rtc::Thread implementation on Chromium.

Original issue's description:
> Free SCTP data channels asynchronously in PeerConnection.
>
> This is needed so that the data channel isn't deleted while one of its
> own methods is on the call stack.
>
> BUG=565048
>
> Committed: https://crrev.com/386869247f28e72a00307a1b5c92465eea343ad2
> Cr-Commit-Position: refs/heads/master@{#10923}

TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=565048

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

Cr-Commit-Position: refs/heads/master@{#10977}
2015-12-10 19:17:47 +00:00
perkj
796cfaf7f7 Add VideoCodec::PreferDecodeLate
The purpose is so that a decoder (Android) that only have a limited number of output buffers can make sure that decoding is done just before the frame is needed.

Removed unused iSupportsRenderTiming and the settings structs since it was not used.
Added VCMReceiver::FrameForDecoding unit test for the case when PreferDecodeLate is set.

Note that this does not change the current behaviour. We actually currently always decode frames late. This cl is to make sure the behaviour is kept for Android, if the default behaviour is changed.

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

Cr-Commit-Position: refs/heads/master@{#10974}
2015-12-10 17:27:45 +00:00
nisse
c490e01bd1 Implement NativeToI420Buffer in C++, calling java SurfaceTextureHelper, new method .textureToYUV, to
do the conversion using an opengl fragment shader.

BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10972}
2015-12-10 14:23:42 +00:00
deadbeef
1387149ad1 Adding reduced size RTCP configuration down to the video stream level.
Still waiting to turn on negotiation (in mediasession.cc)
until we verify it's working as expected.

BUG=webrtc:4868

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

Cr-Commit-Position: refs/heads/master@{#10958}
2015-12-09 20:37:59 +00:00
tommi
434aca8d86 Add empty placeholder files for remote audio tracks.
This is needed for Chromium so that we can roll, update libjingle.gyp and then continue.

BUG=chromium:121673

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

Cr-Commit-Position: refs/heads/master@{#10955}
2015-12-09 17:42:03 +00:00
deadbeef
bda7e0b932 Fixing issue with default stream upon setting 2nd remote description.
If a description is set that requires making a default stream, and one
already exists, we'll now keep the existing default audio/video tracks,
rather than destroying them and recreating them. Destroying them caused
the blink MediaStream to go to an "ended" state, which is the root cause
of the bug.

BUG=webrtc:5250

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

Cr-Commit-Position: refs/heads/master@{#10946}
2015-12-09 01:13:53 +00:00
haysc
d02b0fab76 Add oldest rotation type option to RTCFileLogger
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10945}
2015-12-08 21:59:11 +00:00
Peter Boström
1a9d615cbf Add tracing to public PeerConnection methods.
Adds tracing specifically to Close, for creating streams and also moves
tracing for SetLocal/RemoteDescription from WebRtcSession. Also adding
some tracing in ChannelManager to see what's taking time inside Close.

BUG=webrtc:5167
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10943}
2015-12-08 21:15:26 +00:00
perkj
7b2f7627e4 Don't call SetPreviewFormat if capturing to textures.
This fix an issue seen on Huawei Y300 where the camera feed is black and white if we capture to textures and setpreviewformat is called.

BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10941}
2015-12-08 20:03:07 +00:00
haysc
edd8fefa9b Add new view that renders local video using AVCaptureLayerPreview.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10940}
2015-12-08 19:08:44 +00:00
Peter Boström
9f45a45a62 Add tracing to upper-level WebRTC calls.
Adds tracing to WebRtcSession and corresponding BaseChannel calls to see
where time is spent better.

BUG=webrtc:5167
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10934}
2015-12-08 12:26:11 +00:00
deadbeef
386869247f Free SCTP data channels asynchronously in PeerConnection.
This is needed so that the data channel isn't deleted while one of its
own methods is on the call stack.

BUG=565048

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

Cr-Commit-Position: refs/heads/master@{#10923}
2015-12-07 23:32:31 +00:00
Peter Boström
6f28cf0b95 Implement standalone event tracing in AppRTCDemo.
Logs tracing events (TRACE_EVENT0 and friends) to storage in a format
compatible with chrome://tracing which can be used for performance
evaluation, finding lock contention and other sweet things). Tracing is
still basic and doesn't contain thread metadata or logging of tracing
arguments.

BUG=webrtc:5158
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10921}
2015-12-07 22:17:26 +00:00
Peter Boström
cd4003f3df Use @webrtc.org addresses for OWNERS.
Fixes talk/app/webrtc/OWNERS and removes houssainy@google.com from
webrtc/tools/rtcbot/OWNERS.

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

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

Cr-Commit-Position: refs/heads/master@{#10918}
2015-12-07 18:53:25 +00:00
Peter Boström
cf890bc58e Roll gtest-parallel.
Brings in fixes that save log output to disk instead of piping them
through Python. Should fix problem where output from tests stall for
more than 10 seconds.

Also enabling JsepPeerConnectionP2PTestClient on all platforms again.

BUG=webrtc:5231
R=kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10917}
2015-12-07 15:45:08 +00:00
nisse
03f80ebb83 Refactor EglBase configuration.
Delete EglBase.ConfigType, instead pass arrays of attributes, and define
constant arrays for the common cases.

Both in progress NativeToI420 and extending GlRectDrawer to other shapes (with alpha) needs this.

BUG=b/25694445

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

Cr-Commit-Position: refs/heads/master@{#10908}
2015-12-07 09:17:22 +00:00
Guo-wei Shieh
1218d7ad2f Allow remote fingerprint update during a call
Changes include the following
1. modify FakeDtlsIdentityStore to support alternate certificate so we could have a different fingerprint in test case.
2. dtlstransportchannel can accept a new fingerprint and trigger DTLS handshake.
3. #2 will trigger new signal on the media side to reset SRTP context. Only reset SRTP context when we are using DTLS (not SDES).
4. Test cases for caller or callee are transfees.

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

This is a reland of https://codereview.webrtc.org/1453523002

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

Cr-Commit-Position: refs/heads/master@{#10903}
2015-12-05 18:00:04 +00:00
Guo-wei Shieh
86aaa4be8d Revert "Allow remote fingerprint update during a call"
This reverts commit 9c38c2d33fa6d794704d53b18f39d5235439fe63.

This commit somehow is different from what I have in my local copy. Revert and will recommit.

TBR=pthatcher@webrtc.org
BUG=3618

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

Cr-Commit-Position: refs/heads/master@{#10902}
2015-12-05 17:55:54 +00:00
Guo-wei Shieh
9c38c2d33f Allow remote fingerprint update during a call
Changes include the following
1. modify FakeDtlsIdentityStore to support alternate certificate so we could have a different fingerprint in test case.
2. dtlstransportchannel can accept a new fingerprint and trigger DTLS handshake.
3. #2 will trigger new signal on the media side to reset SRTP context. Only reset SRTP context when we are using DTLS (not SDES).
4. Test cases for caller or callee are transfees.

BUG=webrtc:3618
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10901}
2015-12-05 17:46:16 +00:00
Honghai Zhang
381b4217cb Ping backup connection at a slower rate
and make it configurable from the app.
Changed the decision on whether a connection is pingable:
1.Check whether a connection is a backup connection. A connection is considered as a backup connection only if the channel is complete, the connection is active and it is not the best connection.
2. Ping a non-backup connection if it is active and for backup connection, ping it at a slower rate.
Note the default behavior is the same as before.

Also cached the channel state since we are accessing it more often.
BUG=webrtc:5034
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10900}
2015-12-04 20:24:10 +00:00
Ivo Creusen
9cf0c3d4dd Removes MAYBE_ from several test case names in JsepPeerConnectionP2PTestClient.
BUG=webrtc:5231
R=kjellander@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10887}
2015-12-04 09:37:10 +00:00
honghaiz
9462052f32 In some rare Android systems ConnectivityManager may be null.
Handle this case more gracefully.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#10875}
2015-12-02 22:33:26 +00:00
kjellander@webrtc.org
3c28d0de95 Disable PeerConnectionEndToEndTest.Call on Mac.
Until the gtest-parallel problem is resolved. This is
needed for CQ stability.

BUG=webrtc:5231
TBR=perkj@webrtc.org,deadbeef@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10873}
2015-12-02 21:53:39 +00:00
solenberg
1d63dd0eaa - Remove cricket::VoiceChannel::PressDtmf(); AFAICT unused.
- Remove the DF_PLAY/DF_SEND flags, only allow sending.

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10872}
2015-12-02 20:35:14 +00:00
deadbeef
ee524f7c02 Adding Java binding for CreateSender.
Review URL: https://codereview.webrtc.org/1486243002

Cr-Commit-Position: refs/heads/master@{#10871}
2015-12-02 19:27:47 +00:00
perkj
d20d247166 Fix VideoCaptureAndroid, drop frame when switching camera using textures.
Dropping the first frame intended to fix a problem when switching cameras on N6 when we are capturing to textures but due to a silly bug fixed in this cl the frame was not dropped...

BUG=webrtc:5262
TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10867}
2015-12-02 12:25:32 +00:00
perkj
226a602ad6 Fix problem when drawing to the Android Media encoder surface.
Problem seen on N6.
BUG=webrtc:5147

TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10866}
2015-12-02 10:24:46 +00:00
perkj
40455d6f37 This cl change so that we use EGL14 where it is supported and EGL10 otherwise. The idea is to make this agnostic to an application and for WebRTC except in EGLBase.
The reason we want to use EGL14 is to be able to use EGLExt.eglPresentationTimeANDROID when writing textures to MediaEncoder.

BUG=webrtc:4993
TBR=glaznew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10864}
2015-12-02 09:07:22 +00:00
deadbeef
41b0798e11 Adding CreatePeerConnection method that uses new PC Initialize method.
This will let us transition to the new Initialize method in Chromium,
and then get rid of the old one.

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

Cr-Commit-Position: refs/heads/master@{#10860}
2015-12-01 23:10:17 +00:00
perkj
cb9792e9f7 Fix VideoCapturerAndroidTest.testStartWhileCameraIsAlreadyOpen on Android M.
Review URL: https://codereview.webrtc.org/1476313002

Cr-Commit-Position: refs/heads/master@{#10850}
2015-12-01 07:09:16 +00:00
perkj
14f4144a82 Add helper KeepRefUntilDone.
The callback keeps a reference to an object until the callback goes out of scope.

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

Cr-Commit-Position: refs/heads/master@{#10847}
2015-12-01 06:15:53 +00:00
glaznev
ee69ed505b Add separate event for camera freeze.
Review URL: https://codereview.webrtc.org/1479523003

Cr-Commit-Position: refs/heads/master@{#10846}
2015-11-30 23:26:44 +00:00
kjellander@webrtc.org
70c0e298cb Disable PeerConnectionEndToEndTest.Call for TSan.
Recent flakes:
https://build.chromium.org/p/client.webrtc/builders/Linux%20Tsan%20v2/builds/4565/steps/libjingle_peerconnection_unittest/logs/stdio
https://build.chromium.org/p/client.webrtc/builders/Linux%20Tsan%20v2/builds/4559/steps/libjingle_peerconnection_unittest/logs/stdio
https://build.chromium.org/p/client.webrtc/builders/Linux%20Tsan%20v2/builds/4557/steps/libjingle_peerconnection_unittest/logs/stdio
https://build.chromium.org/p/client.webrtc/builders/Linux%20Tsan%20v2/builds/4549/steps/libjingle_peerconnection_unittest/logs/stdio

BUG=webrtc:4719
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10845}
2015-11-30 20:45:48 +00:00
magjed
ae54b835ea Android SurfaceViewRenderer: Add resetStatistics() method
Review URL: https://codereview.webrtc.org/1472323003

Cr-Commit-Position: refs/heads/master@{#10833}
2015-11-28 11:15:04 +00:00
andrew
2fe1cb0f0a Don't overwrite audio stats when they're not available.
Chromium implements AudioProcessorInterface::GetStats(), but other
clients may not. The existing stats were getting overwritten with
default AudioProcessorStats values in that case.

Now, we only overwrite the stats if the track has an
AudioProcessorInterface. Also, move signal level out of
SetAudioProcessingStats() to avoid the "don't set if it's -1" pattern.

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

Cr-Commit-Position: refs/heads/master@{#10831}
2015-11-28 01:27:40 +00:00
Per
727dbc2968 VideoCapturerAndroid - allow lower frame rate in bad lightning
Insted of using a fixed frame rate, we allow the camera to use a lower frame rate. The camera will choose depending on lightning condition.

TESTED= In a room with low light on N5, N6 N7, Galaxy 4.
BUG=webrtc:5262
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10807}
2015-11-26 14:15:51 +00:00
Per
598242a583 Support texture scaling in Androids MediaEncoder.
This cl make it possible for the hw video encoder to downscale a texture image before encoding. The purpose is to allow downscaling if the quality is too bad at the current resolution.
BUG=webrtc:4993
R=magjed@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10804}
2015-11-26 13:29:06 +00:00
Per
a3c20bb9a0 Add support for scaling textures in AndroidVideoCapturer.
The idea is to also reuse AndroidTextureBuffer::CropAndScale when scaling in the encoder.

BUG=webrtc:4993
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10802}
2015-11-26 12:41:52 +00:00
deadbeef
fac0655fd7 Reland of Adding the ability to create an RtpSender without a track.
(patchset #8 id:140001 of https://codereview.webrtc.org/1413713003/ )

Relanding after fixing CallAndModifyStream to account for new
procedures for adding/removing a track from a stream.

Original issue's description:
> Adding the ability to create an RtpSender without a track.
>
> This CL also changes AddStream to immediately create a sender, rather
> than waiting until the track is seen in SDP. And the PeerConnection now
> builds the list of "send streams" from the list of senders, rather than
> the collection of local media streams.
>
> Committed: https://crrev.com/ac9d92ccbe2b29590c53f702e11dc625820480d5
> Cr-Commit-Position: refs/heads/master@{#10414}

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

Cr-Commit-Position: refs/heads/master@{#10790}
2015-11-25 19:26:08 +00:00
qiangchen
444682acf9 Remove frame time scheduing in IncomingVideoStream
This is part of the project that makes RTC rendering more
smooth. We've already finished the developement of the
frame selection algorithm in WebMediaPlayerMS, where we
managed a frame pool, and based on the vsync interval, we
actively select the best frame to render in order to
maximize the rendering smoothness.

Thus the frame timeline control in IncomingVideoStream is
no longer needed, because with sophisticated frame
selection algorithm in WebMediaPlayerMS, the time control
in IncomingVideoStream will do nothing but add some extra
delay.

BUG=514873

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

Cr-Commit-Position: refs/heads/master@{#10781}
2015-11-25 02:08:03 +00:00
ivoc
b2514725a9 Add JNI interface for functions to start and stop recording AEC dumps and RTC event logs.
BUG=webrtc:4741

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

Cr-Commit-Position: refs/heads/master@{#10776}
2015-11-24 17:00:39 +00:00
Magnus Jedvert
4c5eea3c73 Android SurfaceViewRenderer: Don't rely on widthSpec/heightSpec after onMeasure() returns
SurfaceViewRenderer currently stores widthSpec/heightSpec internally, and triggers requestLayout() from renderFrameOnRenderThread()->checkConsistentLayout() when it detects a change using widthSpec/heightSpec. This is not reliable, because onMeasure() might be called several times during the layout process negotiation. For example it might look like this:
-> onMeasure(at most 1920, at most 1080)
<- setMeasuredDimension(1080, 1080)
-> onMeasure(exactly 1080, exactly 1080)
<- setMeasuredDimension(1080, 1080)
Then we store (exactly 1080, exactly 1080) even though we are allowed to be bigger than this, and requestLayout() will never be triggered.

This CL moves the requestLayout() trigger to updateFrameDimensionsAndReportEvents() when the frame size changes.

Other small changes in this CL are:
* Replace with/height variables with Point.
* Add logging in updateFrameDimensionsAndReportEvents() even when rendererEvents is null.
* Use Math.round() in RendererCommon.getDisplaySize() instead of integer cast.

R=hbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10774}
2015-11-24 16:45:32 +00:00
perkj
7baf79fb9e Temporary remove spamming MediaDecoder log
This log will write for each decoded frame if the textures are rendered using VideoRenderGUI
and the the screen is locked.

TBR=glaznew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10771}
2015-11-24 14:26:46 +00:00