Commit Graph

1021 Commits

Author SHA1 Message Date
a5b62d987a Replace API v23 calls.
R=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10257}
2015-10-12 20:56:29 +00:00
fc950848e3 Fix: RefCountInterface: Make AddRef() and Release() const
The landed CL contained some unwanted changes.

TBR=tommi

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

Cr-Commit-Position: refs/heads/master@{#10255}
2015-10-12 14:10:50 +00:00
52a30e31f1 Reland of Android: Put common native VideoFrameBuffer implementation in androidvideocapturer_jni (patchset #1 id:1 of https://codereview.webrtc.org/1389283003/ )
Reason for revert:
Nothing wrong with the original CL, the bug was in rtc::Bind(), which is fixed now (https://codereview.webrtc.org/1403683004/).

Original issue's description:
> Revert of Android: Put common native VideoFrameBuffer implementation in androidvideocapturer_jni (patchset #1 id:1 of https://codereview.webrtc.org/1391403004/ )
>
> Reason for revert:
> Crashes on AppRTCDemo disconnect
>
> Original issue's description:
> > Android: Put common native VideoFrameBuffer implementation in native_handle_impl.cc
> >
> > BUG=webrtc:4993
> > R=perkj@webrtc.org
> >
> > Committed: https://crrev.com/60472216da0644b49ed5f9fa51c51d4874afafa7
> > Cr-Commit-Position: refs/heads/master@{#10248}
>
> TBR=perkj@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4993
>
> Committed: https://crrev.com/962c26bfd6c3eb3cf7402daaab89404ae38dd534
> Cr-Commit-Position: refs/heads/master@{#10249}

TBR=perkj@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10254}
2015-10-12 13:53:27 +00:00
1b40a9a8af RefCountInterface: Make AddRef() and Release() const
This CL makes AddRef() and Release() const member methods and the refcount integer mutable. This is reasonable, because they only manage the lifetime of the object, and this is also how it's done in Chromium.

The purpose is to be able to capture a const pointer in a scoped_refptr, which is currenty impossible. The practial problem this CL solves is this:

void Foo::Bar() const {}

rtc::Callback0<void> Foo::MakeClosure() const {
  return rtc::Bind(&Foo::Bar, this);
}

We currently capture |this| as const Foo*. With this CL, |this| will be captured as scoped_refptr<const Foo>.

A test is also added in bind_unittest to check this behaviour.

BUG=webrtc:5065
R=perkj@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10253}
2015-10-12 13:50:50 +00:00
90754174d9 Prepare MediaCodecVideoEncoder for surface textures.
This make small refactorings to MediaVideoEncoder to prepare for adding support to encode from textures. The C++ layer does not have any functional changes.
- Moves ResetEncoder to always work on the codec thread
- Adds use of ThreadChecker.
- Change Java MediaEncoder.Init to return true or false and introduce method getInputBuffers.
- Add simple unit test for Java MediaCodecVideoEncoder.

BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10250}
2015-10-12 10:04:22 +00:00
962c26bfd6 Revert of Android: Put common native VideoFrameBuffer implementation in androidvideocapturer_jni (patchset #1 id:1 of https://codereview.webrtc.org/1391403004/ )
Reason for revert:
Crashes on AppRTCDemo disconnect

Original issue's description:
> Android: Put common native VideoFrameBuffer implementation in native_handle_impl.cc
>
> BUG=webrtc:4993
> R=perkj@webrtc.org
>
> Committed: https://crrev.com/60472216da0644b49ed5f9fa51c51d4874afafa7
> Cr-Commit-Position: refs/heads/master@{#10248}

TBR=perkj@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10249}
2015-10-12 09:26:43 +00:00
60472216da Android: Put common native VideoFrameBuffer implementation in native_handle_impl.cc
BUG=webrtc:4993
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10248}
2015-10-12 07:36:16 +00:00
747c1bccd9 Android SurfaceTextureHelper: Replace API 21 with API 11 version of setOnFrameAvailableListener()
BUG=b/24809429
R=glaznev@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10247}
2015-10-12 07:27:56 +00:00
e9e3668759 Android: Add helper function to synchronously execute Callables on Handler
TBR=hbos

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

Cr-Commit-Position: refs/heads/master@{#10246}
2015-10-12 07:15:57 +00:00
69ddaefbb3 Revert "Add option to print peer connection factory Java stack traces."
This reverts commit b68c5995d1ac84866da45a4ecbb180d8c704ad90.

Reason for reverting: It breaks some Android32 bots.

TBR=glaznev@google.com

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

Cr-Commit-Position: refs/heads/master@{#10239}
2015-10-09 22:46:17 +00:00
b68c5995d1 Add option to print peer connection factory Java stack traces.
Updated version with better handling of media codec release checks.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10238}
2015-10-09 20:58:37 +00:00
d4cec0d8fa Remove MediaChannel::SetRemoteRenderer().
This is following discussion in: https://codereview.webrtc.org/1385893002/diff/60001/talk/media/webrtc/webrtcvoiceengine.cc#newcode2410

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10237}
2015-10-09 15:55:54 +00:00
98c68865e7 - Remove AudioTrackRenderer.
- Remove AddChannel/RemoveChannel from AudioRenderer interface.

BUG=webrtc:4690

Committed: https://crrev.com/1c0bb386b67835feb5934f503dddfe0912bce3ac
Cr-Commit-Position: refs/heads/master@{#10226}

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

Cr-Commit-Position: refs/heads/master@{#10235}
2015-10-09 10:27:42 +00:00
4bac9c53da Change SetOutputScaling to set a single level, not left/right levels.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10234}
2015-10-09 09:32:58 +00:00
fd20bb3e80 Revert "Allow to print Java stack traces in Android camera, renderer and media codec."
Reason for revert: It breaks some Android32 bots.

TBR=glaznev@google.com

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

Cr-Commit-Position: refs/heads/master@{#10231}
2015-10-09 01:13:48 +00:00
2b298de100 Reset media codec thread when Encoder/Decoder object is created.
Review URL: https://codereview.webrtc.org/1389373004 .

Cr-Commit-Position: refs/heads/master@{#10230}
2015-10-08 23:22:12 +00:00
eefbc3bbd7 Revert of Remove AudioTrackRenderer (patchset #3 id:40001 of https://codereview.webrtc.org/1399553003/ )
Reason for revert:
Breaks Chrome since its build files were not updated prior to file removal.

Original issue's description:
> - Remove AudioTrackRenderer.
> - Remove AddChannel/RemoveChannel from AudioRenderer interface.
>
> BUG=webrtc:4690
>
> Committed: https://crrev.com/1c0bb386b67835feb5934f503dddfe0912bce3ac
> Cr-Commit-Position: refs/heads/master@{#10226}

TBR=tommi@webrtc.org,solenberg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10228}
2015-10-08 20:10:40 +00:00
f0159a742f Allow to print Java stack traces in Android camera, renderer and media codec.
R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10227}
2015-10-08 19:59:30 +00:00
1c0bb386b6 - Remove AudioTrackRenderer.
- Remove AddChannel/RemoveChannel from AudioRenderer interface.

BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10226}
2015-10-08 19:49:53 +00:00
69f576010e Added parsing of either space or colon for sctp-port.
BUG=https://code.google.com/p/webrtc/issues/detail?id=5039

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

Cr-Commit-Position: refs/heads/master@{#10225}
2015-10-08 17:15:08 +00:00
e76fb36982 Android SurfaceViewRenderer: Add tests for onMeasure()
BUG=webrtc:4742
R=hbos@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10224}
2015-10-08 17:05:34 +00:00
bf2004bc37 Android SurfaceViewRenderer: Only clear image in release() if initialized
This CL is a small bug fix for "Android SurfaceViewRenderer: Allow to re-init after release() has been called" https://codereview.webrtc.org/1389203003/. It is only possible to clear the last image in release() if init() has been called beforehand.

TBR=hbos
BUG=webrtc:4742

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

Cr-Commit-Position: refs/heads/master@{#10223}
2015-10-08 16:58:33 +00:00
ac30642461 Native changes for VideoCapturerAndroid surface texture support
These are the necessary changes in C++ related to the video capturer necessary to capture to a surface texture.
It does not handle scaling / cropping yet though.

BUG=
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10218}
2015-10-08 13:32:45 +00:00
4382d800d2 Android SurfaceViewRenderer: Allow to re-init after release() has been called
This CL makes a thorough reset of all variables in release() and clears the last rendered image so that the SurfaceViewRenderer object can be reinitialized with init() and work properly. This CL also removes an implicit assumption that init() is called before surfaceCreated() - now they can be called in any order.

BUG=webrtc:4742
R=hbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10217}
2015-10-08 12:45:42 +00:00
6ffc3309de Remove references to libpeerconnection.
What used to be the libpeerconnection library is now compiled
statically into the Chromium binary, so clean up references it.

BUG=chromium:482123
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10216}
2015-10-08 12:41:05 +00:00
3d06eca5e3 Add support to Capture to a texture instead of memory.
This adds support for capturing to a texture in the Java part of VideoCapturerAndroid.
After this cl, the C++ also needs modification.

https://codereview.webrtc.org/1375953002/ contains the idea and have a working version where textures can be rendered in local preview.

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

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

Cr-Commit-Position: refs/heads/master@{#10213}
2015-10-08 10:53:46 +00:00
335204c550 Revert of Provide RSA2048 as per RFC (patchset #9 id:200001 of https://codereview.webrtc.org/1329493005/ )
Reason for revert:
Breaks chrome.

Original issue's description:
> provide RSA2048 as per RFC
>
> BUG=webrtc:4972
>
> Committed: https://crrev.com/0df3eb03c9a6a8299d7e18c8c314ca58c2f0681e
> Cr-Commit-Position: refs/heads/master@{#10209}

TBR=hbos@webrtc.org,juberti@google.com,jbauch@webrtc.org,henrikg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4972

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

Cr-Commit-Position: refs/heads/master@{#10210}
2015-10-08 09:30:21 +00:00
0df3eb03c9 provide RSA2048 as per RFC
BUG=webrtc:4972

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

Cr-Commit-Position: refs/heads/master@{#10209}
2015-10-08 09:06:20 +00:00
fddf6e526c Use WebRTC logging in MediaCodec JNI code.
Also enable HW encoder scaling in AppRTCDemo.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10205}
2015-10-07 23:51:20 +00:00
21622a1d19 Add option to print peer connection factory Java stack traces.
R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10204}
2015-10-07 21:50:21 +00:00
91b348c702 Android MediaCodecVideoDecoder: Manage lifetime of texture frames
This CL should be the last one in a series to finally unblock camera texture capture.

The SurfaceTexture.updateTexImage() calls are moved from the video renderers into MediaCodecVideoDecoder, and the destructor of the texture frames will signal MediaCodecVideoDecoder that the frame has returned. This CL also removes the SurfaceTexture from the native handle and only exposes the texture matrix instead, because only the video source should access the SurfaceTexture.

BUG=webrtc:4993
R=glaznev@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10203}
2015-10-07 20:57:17 +00:00
0c4e06b4c6 Use suffixed {uint,int}{8,16,32,64}_t types.
Removes the use of uint8, etc. in favor of uint8_t.

BUG=webrtc:5024
R=henrik.lundin@webrtc.org, henrikg@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10196}
2015-10-07 10:23:32 +00:00
4139c0f1c5 Java binding for RtpSender/RtpReceiver.
The Java PeerConnection maintains a cached list of Java RtpSenders
and RtpReceivers so that the same objects are returned every time
getSenders() or getReceivers() is called. They are disposed of when
PeerConnection.dispose() is called, which will also dispose their
referenced MediaStreamTracks.

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

Cr-Commit-Position: refs/heads/master@{#10189}
2015-10-06 19:29:32 +00:00
0a6c4ca942 Catching more errors when parsing ICE server URLs.
Every malformed URL should now produce an error message in JS, rather than
silently failing and possibly printing a warning message to the console (and
possibly crashing).

Also added some unit tests, and made "ParseIceServers" public.

BUG=445002

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

Cr-Commit-Position: refs/heads/master@{#10186}
2015-10-06 18:38:33 +00:00
09f1350efa Add option to reset Android video renderer first frame flag.
This allows to correctly report first frame event in applications which
use same remote video renderer for multiple calls.

R=wzh@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10176}
2015-10-05 20:01:41 +00:00
6caafbe5b6 Convert uint16_t to int for WebRTC cipher/crypto suite.
This is a follow up CL on https://codereview.webrtc.org/1337673002

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10175}
2015-10-05 19:43:33 +00:00
1b33da1298 SurfaceTextureHelper fixes
Fixed a problem where eglBase.makecurrent() could be called after the context had been released if SurfaceTextureHelper was first created and immedately disconnected.

Add the possibility to inject a thread to use instead of creating a new.

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

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

Cr-Commit-Position: refs/heads/master@{#10174}
2015-10-05 19:06:48 +00:00
418503275c Add ThreadChecker class to ThreadUtils
This class can be used for checking that method calls are made on the correct thread.

R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10173}
2015-10-05 18:49:15 +00:00
e0bce24065 VideoCapturerAndroid: Add custom nativeCreateVideoCapturer()
This CL shouldn't make any functional changes. It adds a new VideoCapturerAndroid.nativeCreateVideoCapturer() instead of always using VideoCapturer.nativeCreateVideoCapturer(). The purpose is to simplify androidvideocapturer_jni and VideoCapturerAndroid.create(). This way, it is possible to use the ctor instead of VideoCapturerAndroid.init() to initialize variables, and they can be made final etc.

R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10171}
2015-10-05 14:22:06 +00:00
bc0938e8e7 Android VideoRendererGui: Make deep copy of incoming texture frames
VideoRendererGui may need to render incoming frames multiple times. We currently call VideoRenderer.renderFrameDone() while we still hold references to the OES texture. This CL makes a deep copy of the OES texture before calling renderFrameDone(). This will truly release the dependency to the incoming frame, so that video textures sources can rely on the renderFrameDone() callback.

This CL is a part of the plan in https://codereview.webrtc.org/1357923002/.

The texture copy doesn't cause any measurable performance difference on a Nexus 5 using VideoRendererGui in a AppRTCDemo loopback call.

BUG=webrtc:4993
TEST=Revert "Enable SurfaceViewRenderer for AppRTCDemo" https://codereview.webrtc.org/1356603004/ and try AppRTCDemo.
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10157}
2015-10-03 15:30:12 +00:00
44bf6f5f67 Android MediaCodecVideoDecoder: Split DecoderOutputBufferInfo into DecodedByteBuffer and DecodedTextureBuffer
This CL separates the types and code paths for textures vs byte buffers in MediaCodecVideoDecoder.dequeueOutputBuffer() and MediaCodecVideoDecoder::DeliverPendingOutputs(). The purpose is to prepare for lifetime management of textures received from the SurfaceTexture.

This CL is a part of the plan in https://codereview.webrtc.org/1357923002/.

BUG=webrtc:4993

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

Cr-Commit-Position: refs/heads/master@{#10156}
2015-10-03 09:08:06 +00:00
7e319372ab Android MediaCodecVideoDecoder: Cleanup to prepare for texture liftime management
This CL should not change the behaviour of the decoder. The purpose is to prepare for lifetime management of textures received from the SurfaceTexture. The main change is to only use exceptions for error signaling in MediaCodecVideoDecoder.dequeueOutputBuffer() and MediaCodecVideoDecoder.releaseOutputBuffer(), not both exceptions and error return values.

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

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

Cr-Commit-Position: refs/heads/master@{#10148}
2015-10-02 13:49:48 +00:00
6781ea49a8 jni/native_handle_impl.h: Move implementation into .cc file
BUG=webrtc:4993
R=hbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10147}
2015-10-02 11:56:13 +00:00
b09b660c53 Remove cricket::VideoFrame::Set/GetElapsedTime()
This CL is a baby step towards consolidating the timestamps in cricket::VideoFrame and webrtc::VideoFrame, so that we can unify the frame classes in the future.

The elapsed time functionality is not really used. If a video sink wants to know the elapsed time since the first frame they can store the first timestamp themselves and calculate the time delta to later frames. This is already done in all video sinks that need the elapsed time. Having redundant timestamps in the frame classes is confusing and error prone.

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#10131}
2015-10-01 10:03:05 +00:00
dfc8f4ff87 Change 'mute' parameter of MediaChannel::SetAudioSend()/SetVideoSend() to 'enable'.
BUG=webrtc:4690

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

Cr-Commit-Position: refs/heads/master@{#10130}
2015-10-01 09:32:41 +00:00
0ecf1b2f21 Android focus problem on rear camera.
On some devices (confirmed Samsung) the focus mode is not configured correctly by default.
The fix explicitly set the focus mode to FOCUS_MODE_CONTINUOUS_VIDEO if this mode is supported.

BUG=webrtc:4991

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

Cr-Commit-Position: refs/heads/master@{#10128}
2015-10-01 07:25:53 +00:00
456696a9c1 Reland Change WebRTC SslCipher to be exposed as number only
This is to revert the change of https://codereview.webrtc.org/1380603005/

TBR=pthatcher@webrtc.org
BUG=523033

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

Cr-Commit-Position: refs/heads/master@{#10126}
2015-10-01 04:49:02 +00:00
27dc29b0df Revert of Change WebRTC SslCipher to be exposed as number only. (patchset #20 id:750001 of https://codereview.webrtc.org/1337673002/ )
Reason for revert:
This broke chromium.fyi bot.

Original issue's description:
> Change WebRTC SslCipher to be exposed as number only.
>
> This makes the SSL exposed as uint16_t which is the IANA value. GetRfcSslCipherName is introduced to handle the conversion to names from ID. IANA value will be used for UMA reporting. Names will still be used for WebRTC stats reporting.
>
> For SRTP, currently it's still string internally but is reported as IANA number.
>
> This is used by the ongoing CL https://codereview.chromium.org/1335023002.
>
> BUG=523033
>
> Committed: https://crrev.com/4fe3c9a77386598db9abd1f0d6983aefee9cc943
> Cr-Commit-Position: refs/heads/master@{#10124}

TBR=juberti@webrtc.org,rsleevi@chromium.org,pthatcher@webrtc.org,davidben@chromium.org,juberti@google.com,davidben@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=523033

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

Cr-Commit-Position: refs/heads/master@{#10125}
2015-10-01 02:23:15 +00:00
4fe3c9a773 Change WebRTC SslCipher to be exposed as number only.
This makes the SSL exposed as uint16_t which is the IANA value. GetRfcSslCipherName is introduced to handle the conversion to names from ID. IANA value will be used for UMA reporting. Names will still be used for WebRTC stats reporting.

For SRTP, currently it's still string internally but is reported as IANA number.

This is used by the ongoing CL https://codereview.chromium.org/1335023002.

BUG=523033

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

Cr-Commit-Position: refs/heads/master@{#10124}
2015-10-01 01:49:17 +00:00
2f8a4cad16 Add OWNERS for ObjC dirs.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#10123}
2015-10-01 00:33:36 +00:00