Commit Graph

1058 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
4f2152e328 Android SurfaceViewRenderer: Make sure not to call eglCreateSurface() twice
eglCreateSurface() calls are posted to the render thread from both init() and surfaceCreated(). If the render thread does not process the eglCreateSurface() message from init() before surfaceCreated() is called, eglCreateSurface() will be called twice resulting in a crash.

This CL makes sure eglCreateSurface() is only called once.

BUG=b/25815604
R=hbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10769}
2015-11-24 12:54:36 +00:00
9237559b16 Add SurfaceTextureHelper.disconnect(Handler handler) method
This method should be used when the SurfaceTextureHelper is created to use a specific handler.
This now guarantee that the looper used by handler is destroyed after a frame has been returned.

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

Cr-Commit-Position: refs/heads/master@{#10767}
2015-11-24 11:03:19 +00:00
b5cb19b37c Fixing direction attribute in answer for non-RTP protocols.
"non-RTP protocols" refers to SCTP data channels. Because
there are no streams for SCTP data channels, the answer was being
set to RECVONLY.

BUG=webrtc:5228

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

Cr-Commit-Position: refs/heads/master@{#10762}
2015-11-24 00:39:18 +00:00