456 Commits

Author SHA1 Message Date
Kári Tristan Helgason
17c11ec37c Fix building RTCCameraVideoCapturereTests with iOS 11 SDK.
The iOS 11 SDK adds nullability annotations to several framework functions
and in this it added the _Nonnull specifier to a protocol method that
we implement. We were passing nil to that method in a test.
The warning is now fixed by passing a mock object instead of nil.

Bug: webrtc:7883
Change-Id: I9f64b0c59750629ca3969400aa725729bb10541b
Reviewed-on: https://chromium-review.googlesource.com/549927
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18780}
2017-06-27 11:01:47 +00:00
Anders Carlsson
121ea329ba Notify delegates about audio glitches in real time
Bug: webrtc:7819
Change-Id: I72ec77d216ce386dd45aef68eeac833b3a75b670
Reviewed-on: https://chromium-review.googlesource.com/543239
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18778}
2017-06-27 09:43:27 +00:00
Sami Kalliomäki
93ad1f7f1b Reland C++ wrapper for VideoDecoder and VideoDecoderFactory interfaces.
This reverts commit 37a23504980bbd06fa9b1709357ce6a33afada30.

Reason for revert: Fix compilation error on release builds.

Original change's description:
> Revert "C++ wrapper for VideoDecoder and VideoDecoderFactory interfaces."
> 
> This reverts commit ef4342f21ba9448138fc7d22482f3210cb20fd7e.
> 
> Reason for revert: Breaks chromium.webrtc.fyi
> 
> Original change's description:
> > C++ wrapper for VideoDecoder and VideoDecoderFactory interfaces.
> > 
> > Bug: webrtc:7760
> > Change-Id: I136aff9bcfb9244bb45ec552b5443f4a06b87c27
> > Reviewed-on: https://chromium-review.googlesource.com/535475
> > Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18773}
> 
> TBR=magjed@webrtc.org,sakal@webrtc.org
> 
> Change-Id: I45810b9f3573074bb52539aa63843d59865c02f2
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7760
> Reviewed-on: https://chromium-review.googlesource.com/549337
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18776}

TBR=magjed@webrtc.org,sakal@webrtc.org

Change-Id: Id38836a1cb63ff265af6562a0512818acb8afb0a
Bug: webrtc:7760
Reviewed-on: https://chromium-review.googlesource.com/549338
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18777}
2017-06-27 08:26:00 +00:00
Sami Kalliomäki
37a2350498 Revert "C++ wrapper for VideoDecoder and VideoDecoderFactory interfaces."
This reverts commit ef4342f21ba9448138fc7d22482f3210cb20fd7e.

Reason for revert: Breaks chromium.webrtc.fyi

Original change's description:
> C++ wrapper for VideoDecoder and VideoDecoderFactory interfaces.
> 
> Bug: webrtc:7760
> Change-Id: I136aff9bcfb9244bb45ec552b5443f4a06b87c27
> Reviewed-on: https://chromium-review.googlesource.com/535475
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18773}

TBR=magjed@webrtc.org,sakal@webrtc.org

Change-Id: I45810b9f3573074bb52539aa63843d59865c02f2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7760
Reviewed-on: https://chromium-review.googlesource.com/549337
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18776}
2017-06-27 07:35:42 +00:00
Sami Kalliomäki
ef4342f21b C++ wrapper for VideoDecoder and VideoDecoderFactory interfaces.
Bug: webrtc:7760
Change-Id: I136aff9bcfb9244bb45ec552b5443f4a06b87c27
Reviewed-on: https://chromium-review.googlesource.com/535475
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18773}
2017-06-27 07:15:00 +00:00
magjed
587ff11208 Revert of Disable RTCVideoRenderFrameCallbackNV12 test (patchset #1 id:20001 of https://codereview.webrtc.org/2951273002/ )
Reason for revert:
Test has been fixed.

Original issue's description:
> Disable RTCVideoRenderFrameCallbackNV12 test
>
> It has been crashing on trybots
>
> BUG=webrtc:7863
> TBR=magjed@webrtc.org
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2951273002
> Cr-Commit-Position: refs/heads/master@{#18720}
> Committed: 4d25a0554a

TBR=kjellander@webrtc.org,oprypin@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7863

Review-Url: https://codereview.webrtc.org/2959673002
Cr-Commit-Position: refs/heads/master@{#18758}
2017-06-26 10:11:51 +00:00
Bjorn Mellem
852a560088 Fix some bugs in the HardwareVideoDecoder.
This change preserves rotation through the decoder, rather than requiring
callers to keep track of rotation.  The test now uses a non-zero rotation
to ensure it is preserved.

Commit 3814524 inadvertently reverted several changes that weren't merged
properly before submit.  In particular, it clobbered some log messages,
comments, and error codes.  This change fixes those mistakes.

BUG=webrtc:7760

Change-Id: If529ee59fc56de7937e362dc15591295e2cf9f79
Reviewed-on: https://chromium-review.googlesource.com/546415
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18752}
2017-06-26 06:11:21 +00:00
Anders Carlsson
e5960ce737 Revert "Revert "Revert "Revert "Support more formats in RTCVideoFrame""""
This reverts commit 1cfeb435427a2fa677a495e34c882096efc193d0.

Reason for revert: Fix unit test

Original change's description:
> Revert "Revert "Revert "Support more formats in RTCVideoFrame"""
> 
> This reverts commit 7583390d1a3a7c4e9a77da0d77250abac0c34d1d.
> 
> Reason for revert: Breaks unit tests
> 
> Original change's description:
> > Revert "Revert "Support more formats in RTCVideoFrame""
> > 
> > This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4.
> > 
> > Reason for revert: Include obc_corevideoframebuffer target
> > 
> > Original change's description:
> > > Revert "Support more formats in RTCVideoFrame"
> > > 
> > > This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34.
> > > 
> > > Reason for revert: Broke external clients
> > > 
> > > Original change's description:
> > > > Support more formats in RTCVideoFrame
> > > > 
> > > > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in
> > > > RTCVideoFrame.
> > > > 
> > > > Bug: webrtc:7785
> > > > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677
> > > > Reviewed-on: https://chromium-review.googlesource.com/536773
> > > > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#18691}
> > > 
> > > TBR=magjed@webrtc.org,andersc@webrtc.org
> > > 
> > > Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: webrtc:7785
> > > Reviewed-on: https://chromium-review.googlesource.com/542837
> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#18697}
> > 
> > TBR=magjed@webrtc.org,andersc@webrtc.org
> > 
> > Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: webrtc:7785
> > Reviewed-on: https://chromium-review.googlesource.com/542838
> > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18716}
> 
> TBR=magjed@webrtc.org,andersc@webrtc.org
> 
> Change-Id: Id12f33698eb02041607cb9a5c54f37f01bfac5b1
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7785
> Reviewed-on: https://chromium-review.googlesource.com/544840
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18718}

TBR=magjed@webrtc.org,andersc@webrtc.org

Change-Id: I184303ecba8db91ef7de709f982a295a2efe92eb
Bug: webrtc:7785
Reviewed-on: https://chromium-review.googlesource.com/544841
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18731}
2017-06-23 10:59:41 +00:00
yuweih
23cc468ddf Return WrappedI444Buffer in VP9Impl
This CL allows VP9Impl to return a WrappedI444Buffer if the image format is
VPX_IMG_FMT_I444.

Needs to be checked in after Chromium CL 2876363003 is checked in.

BUG=webrtc:7506

Review-Url: https://codereview.webrtc.org/2927943003
Cr-Commit-Position: refs/heads/master@{#18727}
2017-06-23 03:28:06 +00:00
oprypin
4d25a0554a Disable RTCVideoRenderFrameCallbackNV12 test
It has been crashing on trybots

BUG=webrtc:7863
TBR=magjed@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2951273002
Cr-Commit-Position: refs/heads/master@{#18720}
2017-06-22 15:19:01 +00:00
Anders Carlsson
1cfeb43542 Revert "Revert "Revert "Support more formats in RTCVideoFrame"""
This reverts commit 7583390d1a3a7c4e9a77da0d77250abac0c34d1d.

Reason for revert: Breaks unit tests

Original change's description:
> Revert "Revert "Support more formats in RTCVideoFrame""
> 
> This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4.
> 
> Reason for revert: Include obc_corevideoframebuffer target
> 
> Original change's description:
> > Revert "Support more formats in RTCVideoFrame"
> > 
> > This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34.
> > 
> > Reason for revert: Broke external clients
> > 
> > Original change's description:
> > > Support more formats in RTCVideoFrame
> > > 
> > > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in
> > > RTCVideoFrame.
> > > 
> > > Bug: webrtc:7785
> > > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677
> > > Reviewed-on: https://chromium-review.googlesource.com/536773
> > > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#18691}
> > 
> > TBR=magjed@webrtc.org,andersc@webrtc.org
> > 
> > Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: webrtc:7785
> > Reviewed-on: https://chromium-review.googlesource.com/542837
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18697}
> 
> TBR=magjed@webrtc.org,andersc@webrtc.org
> 
> Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7785
> Reviewed-on: https://chromium-review.googlesource.com/542838
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18716}

TBR=magjed@webrtc.org,andersc@webrtc.org

Change-Id: Id12f33698eb02041607cb9a5c54f37f01bfac5b1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7785
Reviewed-on: https://chromium-review.googlesource.com/544840
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18718}
2017-06-22 13:06:45 +00:00
Anders Carlsson
7583390d1a Revert "Revert "Support more formats in RTCVideoFrame""
This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4.

Reason for revert: Include obc_corevideoframebuffer target

Original change's description:
> Revert "Support more formats in RTCVideoFrame"
> 
> This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34.
> 
> Reason for revert: Broke external clients
> 
> Original change's description:
> > Support more formats in RTCVideoFrame
> > 
> > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in
> > RTCVideoFrame.
> > 
> > Bug: webrtc:7785
> > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677
> > Reviewed-on: https://chromium-review.googlesource.com/536773
> > Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18691}
> 
> TBR=magjed@webrtc.org,andersc@webrtc.org
> 
> Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7785
> Reviewed-on: https://chromium-review.googlesource.com/542837
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18697}

TBR=magjed@webrtc.org,andersc@webrtc.org

Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7785
Reviewed-on: https://chromium-review.googlesource.com/542838
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18716}
2017-06-22 12:23:03 +00:00
oprypin
451975206a Enable more unittests on iOS, and disable those that fail on simulator
Tests enabled:
* modules_unittests
* ortc_unittests
* rtc_media_unittests
* rtc_unittests
* video_capture_tests
* video_engine_tests

BUG=webrtc:5566,webrtc:4752,webrtc:5568,webrtc:5569

Review-Url: https://codereview.webrtc.org/2938193002
Cr-Commit-Position: refs/heads/master@{#18710}
2017-06-22 08:47:20 +00:00
hansknoechel92
1b2469b878 Fix AVFoundation framework import
When building the WebRTC project for iOS, the build will fail on Xcode 9
because of a missing framework-header (AVFoundation). This pull-request
will add the missing "#import <AVFoundation/AVFoundation.h>" line to the
"RTCCameraVideoCapturer" class.

BUG=webrtc:7846

Review-Url: https://codereview.webrtc.org/2944753002
Cr-Commit-Position: refs/heads/master@{#18698}
2017-06-21 10:44:05 +00:00
Anders Carlsson
0789dab2cb Revert "Support more formats in RTCVideoFrame"
This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34.

Reason for revert: Broke external clients

Original change's description:
> Support more formats in RTCVideoFrame
> 
> Implement Obj-C version of webrtc::VideoFrameBuffer and use that in
> RTCVideoFrame.
> 
> Bug: webrtc:7785
> Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677
> Reviewed-on: https://chromium-review.googlesource.com/536773
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18691}

TBR=magjed@webrtc.org,andersc@webrtc.org

Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7785
Reviewed-on: https://chromium-review.googlesource.com/542837
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18697}
2017-06-21 08:41:37 +00:00
Anders Carlsson
bd2220a9c4 Support more formats in RTCVideoFrame
Implement Obj-C version of webrtc::VideoFrameBuffer and use that in
RTCVideoFrame.

Bug: webrtc:7785
Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677
Reviewed-on: https://chromium-review.googlesource.com/536773
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18691}
2017-06-21 06:30:23 +00:00
Bjorn Mellem
38145241a2 Create VideoDecoderFactory interface and implementation.
The implementation creates an Android hardware video decoder.  It is built
around the same patterns as the HardwareVideoEncoderFactory.

This change pulls some shared code and constants into a common "utils" class.

Finally, adds an instrumentation test for the HardwareVideoDecoder.

BUG=webrtc:7760

Change-Id: Iea6eaae7727925743cb54f7c3153a6c07d62f55d
Reviewed-on: https://chromium-review.googlesource.com/536254
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18686}
2017-06-20 18:37:30 +00:00
Bjorn Mellem
b080b46df4 Create a hardware VideoDecoder implementation using Android MediaCodec.
BUG=webrtc:7760

Change-Id: Ieae3852d22cadf24cf4184ae985062918a85f02c
Reviewed-on: https://chromium-review.googlesource.com/536237
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18685}
2017-06-20 18:04:08 +00:00
Daniela
a9b848abc9 Bugfix:setting capture framerate always defaults to 30fps.
Bug: webrtc:7777
Change-Id: Ia8db06eea29d271fe8a74db203b68cabd4fa5939
Reviewed-on: https://chromium-review.googlesource.com/539641
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18673}
2017-06-20 07:50:39 +00:00
Emad Omara
cadd306857 Fix test break by the recent changes in IcerServer
Bug: webrtc:6973
Change-Id: I43ab49831fc3fe653eb26739a1ef3a60c73b9ffd
Reviewed-on: https://chromium-review.googlesource.com/540286
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Commit-Queue: Emad Omara <emadomara@google.com>
Cr-Commit-Position: refs/heads/master@{#18670}
2017-06-19 22:48:53 +00:00
Magnus Jedvert
3352ce92f9 Android: Modular WebRTC follow-up
This CL cleans up parts from https://codereview.webrtc.org/2939203002/.

Bug: webrtc:7613
Change-Id: I96d1a2cc91174f43d3cae2cb41b2e0fe7142e3e9
Reviewed-on: https://chromium-review.googlesource.com/539456
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18665}
2017-06-19 16:05:53 +00:00
Anders Carlsson
bfe45c29c5 Use uint8 pointer instead of std::vector in NV12Scale.
To prepare for landing 536773.

Bug: webrtc:7785
Change-Id: I841218dca3fb9d83f362f7f2b9076f3f189e7c15
Reviewed-on: https://chromium-review.googlesource.com/539577
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18662}
2017-06-19 15:08:48 +00:00
Magnus Jedvert
3093ef193e Android JNI: Clean up AndroidVideoTrackSource and NativeHandleImpl
I'm preparing adding support for Java VideoFrames in
AndroidVideoTrackSource. I split out small unrelated clean-ups into this
CL in order to make the big CL more focused.

Bug: webrtc:7749
Change-Id: Ib261ab8eb055898b39307d4e78935bf60d323820
Reviewed-on: https://chromium-review.googlesource.com/539638
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18660}
2017-06-19 14:46:08 +00:00
ilnik
04f4d126f8 Implement timing frames.
Timing information is gathered in EncodedImage,
starting at encoders. Then it's sent using RTP header extension. In the
end, it's gathered at the GenericDecoder. Actual reporting and tests
will be in the next CLs.

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2911193002
Cr-Commit-Position: refs/heads/master@{#18659}
2017-06-19 14:18:55 +00:00
Daniela
1f7476f7a3 Remove explicit draw call on MTKView.
Bug: webrtc:7852
Change-Id: I21dc1446d6c456c8750a1d80bd1facddfff50ab8
Reviewed-on: https://chromium-review.googlesource.com/539336
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18657}
2017-06-19 13:08:04 +00:00
zhihuang
af6293517f Support building WebRTC without audio and video for Android
This CL makes the WebRTC Java Wrapper more modular and allows the android
users to build WebRTC without audio and video(DataChannel only).

The BUILD file in sdk/android/ is modified to support modular WebRTC.

The peerconnection_jni.cc is split into peerconnection_jni.cc, video_jni.cc,
video_renderer_jni.cc and ownedfactoryandthreads.h/cc.

Add new modular build targets to JNI layer: audio_jni, video_jni,
null_audio_jni, null_video_jni. The users can link with different
targets to for different WebRTC functionalities.

This is split from CL: https://codereview.webrtc.org/2854123003/

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

Review-Url: https://codereview.webrtc.org/2939203002
Cr-Commit-Position: refs/heads/master@{#18647}
2017-06-18 05:31:24 +00:00
Emad Omara
dab1d2d34e Enable SNI in ssl adapter.
Bug: webrtc:6973
Change-Id: I13d28cf41c586880bd7fea523005233921794cdf
Reviewed-on: https://chromium-review.googlesource.com/523024
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Justin Uberti <juberti@chromium.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Emad Omara <emadomara@google.com>
Cr-Commit-Position: refs/heads/master@{#18640}
2017-06-16 23:30:48 +00:00
Bjorn Mellem
9fbbdc2fef Create the VideoEncoderFactory and implement it.
Adds the VideoEncoderFactory interface and implements it for use with HardwareVideoEncoder.  This uses MediaCodecVideoEncoder's initialization code as an example.

BUG=webrtc:7760

Change-Id: I9fbc93ce9ac4ad866750a4386c4f15e800a3073e
Reviewed-on: https://chromium-review.googlesource.com/530063
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18636}
2017-06-16 16:46:30 +00:00
henrika
af35f833b7 Reduces sensitivity in audio-glitch detector for iOS
Bug: b/38018041
Change-Id: I8490a8ab51db14d3f4f42e128e47303e3710f63f
Reviewed-on: https://chromium-review.googlesource.com/536755
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18629}
2017-06-16 12:09:10 +00:00
Sami Kalliomäki
bc061b4280 Create AndroidVideoBuffer and allow renderers to consume it.
Bug: webrtc:7760
Change-Id: I3e3fddf48090ae27b226c65ddbb51f2c3d8dc544
Reviewed-on: https://chromium-review.googlesource.com/535638
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18624}
2017-06-16 08:31:37 +00:00
glaznev
3fc2350ef9 Support H.264 high profile encoding on Exynos devices.
Guarded by field trial - similar to high profile encoder.
If high profile is requested, but device do not support it
then fallback to baseline profile.

BUG=b/34816463

Review-Url: https://codereview.webrtc.org/2936313002
Cr-Commit-Position: refs/heads/master@{#18619}
2017-06-15 23:24:37 +00:00
zhihuang
38ede13042 Support building WebRTC without audio and video.
This CL makes the WebRTC more modular and allows the users to build
WebRTC without audio and video(DataChannel only).

The BUILD files in call/, logging/, media/ and pc/ are modified to
support modular WebRTC.

The dependencies on Call and RtcEventLog are removed from the
PeerConnection. Instead of being created internally, they would be
passed in by the PeerConnectionFactory.

Add the CreateModularPeerConnectionFactory function which allow the
users to create a PeerConnectionFactory with the modules they need.
If the users want to build WebRTC without audio and video, they can
pass in null pointers for modules they don't need. (MediaEngine,
VideoEncoderFactory etc.)

BUG=webrtc:7613

Review-Url: https://codereview.webrtc.org/2854123003
Cr-Commit-Position: refs/heads/master@{#18617}
2017-06-15 19:52:32 +00:00
Magnus Jedvert
62faaabce9 Android: Add functionality for wrapping C++ I420 buffers to Java
This functionality is needed when sending C++ I420 buffers to Java
VideoSinks or Java encoders.

Bug: webrtc:7749
Change-Id: Ied783470b90b9d2e0cb5930795f35de4a296d499
Reviewed-on: https://chromium-review.googlesource.com/532961
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18597}
2017-06-14 17:37:15 +00:00
glaznev
cca0f6cc68 Support H.264 high profile decoding on Exynos devices.
Tested on Galaxy S5, S6, S7 and S8

BUG=b/34816463

Review-Url: https://codereview.webrtc.org/2942463002
Cr-Commit-Position: refs/heads/master@{#18596}
2017-06-14 17:20:54 +00:00
Magnus Jedvert
386e49690a Revert "Revert "Update webrtc/sdk/objc to new VideoFrameBuffer interface""
This reverts commit 5b383c0ebd586b973d6bf14624cece61d2fc590c.

Reason for revert: External code updated.

Original change's description:
> Revert "Update webrtc/sdk/objc to new VideoFrameBuffer interface"
> 
> This reverts commit b008b45f1e609556a04c1aabb4e8ed6a894265af.
> 
> Reason for revert: Breaks external clients.
> 
> Original change's description:
> > Update webrtc/sdk/objc to new VideoFrameBuffer interface
> > 
> > More thorough refactoring work is planned for RTCVideoFrame (see webrtc:7785), and this CL just unblocks removing the old interface from webrtc::VideoFrameBuffer.
> > 
> > Bug: webrtc:7632,webrtc:7785
> > Change-Id: I351536c5ca454c2acd8944bbc2ebb1d1439dc50c
> > Reviewed-on: https://chromium-review.googlesource.com/530231
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18553}
> 
> TBR=magjed@webrtc.org,andersc@webrtc.org
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7632,webrtc:7785
> 
> Change-Id: Ib5c6fcb939175c67c3ac7b3df7cea0f7c2bb0af0
> Reviewed-on: https://chromium-review.googlesource.com/533013
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18557}

TBR=tterriberry@mozilla.com,magjed@webrtc.org,webrtc-reviews@webrtc.org,andersc@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:7632, webrtc:7785
Change-Id: I8d37428d093486b52e05e9c5992382247049ff61
Reviewed-on: https://chromium-review.googlesource.com/535645
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18594}
2017-06-14 14:57:39 +00:00
Sami Kalliomäki
26ecfcc1c1 Remove timeStampMs from EncodedImage.
This field shouldn't have been in the class in the first place.

Bug: webrtc:7760
Change-Id: If3c1d24f18a643249da1ed072bdfe06a37a7da12
Reviewed-on: https://chromium-review.googlesource.com/535539
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18593}
2017-06-14 14:23:46 +00:00
Bjorn Mellem
5c4eebb62b Implement org.webrtc.VideoEncoder using the android MediaCodec.
BUG=webrtc:7760

Change-Id: I22134fe616d5c5b77148c80f01f1ea1119ae786c
Reviewed-on: https://chromium-review.googlesource.com/526074
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18573}
2017-06-13 16:07:29 +00:00
henrika
7be7883a01 Adds detection of audio glitches for playout on iOS (reland)
Second attempt to land https://chromium-review.googlesource.com/c/522563/

TBR: minyue
Bug: b/38018041
Change-Id: I938f4a490b6357cd1ac7b34fe445215a746fab43
Reviewed-on: https://chromium-review.googlesource.com/533214
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18572}
2017-06-13 16:00:18 +00:00
Henrik Andreasson
6e286cba7e Revert "Adds detection of audio glitches for playout on iOS. "
This reverts commit 33e4e65706c56f6df65bb4ceb07464f5ec4269ea.

Reason for revert: breaks https://build.chromium.org/p/client.webrtc/builders/iOS%20API%20Framework%20Builder

Original change's description:
> Adds detection of audio glitches for playout on iOS. 
> 
> Bug: b/38018041
> Change-Id: If6b53d3909a52333543c8aade500fd4c26b47255
> Reviewed-on: https://chromium-review.googlesource.com/522563
> Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
> Reviewed-by: Minyue Li <minyue@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18570}

TBR=henrika@webrtc.org,minyue@webrtc.org

Change-Id: I3dd354d83a1f0ac1b5cab643147ae9c1672f342b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/38018041
Reviewed-on: https://chromium-review.googlesource.com/533533
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18571}
2017-06-13 15:21:06 +00:00
henrika
33e4e65706 Adds detection of audio glitches for playout on iOS.
Bug: b/38018041
Change-Id: If6b53d3909a52333543c8aade500fd4c26b47255
Reviewed-on: https://chromium-review.googlesource.com/522563
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18570}
2017-06-13 15:09:44 +00:00
mbonadei
7339712256 Removing backward compatible header
I have updated downstream projects and now it is safe to remove this
header.

BUG=webrtc:7647
NOTRY=True

Review-Url: https://codereview.webrtc.org/2935933002
Cr-Commit-Position: refs/heads/master@{#18561}
2017-06-13 11:25:37 +00:00
Anders Carlsson
fc309750a9 Access UIApplication on main thread
Track UIApplication applicationState changes from a C++ class. Uses
NSNotificationCenter to access changes on the main thread and exposes
a local variable that can be checked from any thread.

This fixes a runtime warning on iOS 11 beta.

My Objective-C++ is a little rusty so please check if this follows
the conventions for C++ code in the project. It also changes the
interface exposed by RTCUIApplication.h, not sure if that has impact
on any public APIs that needs to be documented somewhere?

Bug: webrtc:7773
Change-Id: I9c8ba090ef9f28d812114026a906cef742192c39
Reviewed-on: https://chromium-review.googlesource.com/527442
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Kári Tristan Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18558}
2017-06-13 09:37:47 +00:00
Magnus Jedvert
5b383c0ebd Revert "Update webrtc/sdk/objc to new VideoFrameBuffer interface"
This reverts commit b008b45f1e609556a04c1aabb4e8ed6a894265af.

Reason for revert: Breaks external clients.

Original change's description:
> Update webrtc/sdk/objc to new VideoFrameBuffer interface
> 
> More thorough refactoring work is planned for RTCVideoFrame (see webrtc:7785), and this CL just unblocks removing the old interface from webrtc::VideoFrameBuffer.
> 
> Bug: webrtc:7632,webrtc:7785
> Change-Id: I351536c5ca454c2acd8944bbc2ebb1d1439dc50c
> Reviewed-on: https://chromium-review.googlesource.com/530231
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18553}

TBR=magjed@webrtc.org,andersc@webrtc.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7632,webrtc:7785

Change-Id: Ib5c6fcb939175c67c3ac7b3df7cea0f7c2bb0af0
Reviewed-on: https://chromium-review.googlesource.com/533013
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18557}
2017-06-13 09:14:46 +00:00
Magnus Jedvert
b008b45f1e Update webrtc/sdk/objc to new VideoFrameBuffer interface
More thorough refactoring work is planned for RTCVideoFrame (see webrtc:7785), and this CL just unblocks removing the old interface from webrtc::VideoFrameBuffer.

Bug: webrtc:7632,webrtc:7785
Change-Id: I351536c5ca454c2acd8944bbc2ebb1d1439dc50c
Reviewed-on: https://chromium-review.googlesource.com/530231
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18553}
2017-06-13 08:38:28 +00:00
adam.fedor
42742a56ef Fall-back to OpenGL renderer if mac hardware doesn't support Metal
BUG=webrtc:7782

Review-Url: https://codereview.webrtc.org/2927983002
Cr-Commit-Position: refs/heads/master@{#18539}
2017-06-12 14:32:02 +00:00
perkj
39a41d92dd Split rtc_task_queue target. Add separate target for sequenced_task_checker and weak_ptr.
This is to make it possible to override the rtc_task_queue target only.

BUG=none

Review-Url: https://codereview.webrtc.org/2931273002
Cr-Commit-Position: refs/heads/master@{#18534}
2017-06-12 12:53:35 +00:00
Magnus Jedvert
c276ecf5c4 Update Android video buffers to new VideoFrameBuffer interface
This is a follow-up cleanup for CL
https://codereview.webrtc.org/2847383002/.

Bug: webrtc:7632
Change-Id: I1e17358c70a12c75e8732fee5bbab6a552c4e6c3
Reviewed-on: https://chromium-review.googlesource.com/524063
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18532}
2017-06-12 09:29:52 +00:00
Magnus Jedvert
461c94054a ObjC: Rename VideoToolbox/decoder.cc to VideoToolbox/decoder.mm
This decoder is only used for iOS/Mac and it will simplify to make it
ObjC++ instead of C++, similar to how the encoder is .mm already.

Bug: None
Change-Id: I13f62f018432e9c23e7277eea29258a73e1590e1
Reviewed-on: https://chromium-review.googlesource.com/529084
Reviewed-by: Kári Tristan Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18513}
2017-06-09 13:25:25 +00:00
adam.fedor
fee994c367 Ensure the openGLContext is current before trying to reshape the viewport
Make sure to call ensureGLContext before calling OpenGL functions

BUG=webrtc:7751

Review-Url: https://codereview.webrtc.org/2916583005
Cr-Commit-Position: refs/heads/master@{#18511}
2017-06-09 12:16:10 +00:00
Magnus Jedvert
9932e255ea ObjC: Marshal all VideoTrackSource methods to the signaling thread
This CL makes sure the real VideoTrackSourceInterface implementation is
destroyed on the signaling thread and marshals all method calls to the
signaling thread. This is done using VideoTrackSourceProxy.

Bug: webrtc:7767
Change-Id: Iba3b67bb32a684ba289bc8b9981585ea58084359
Reviewed-on: https://chromium-review.googlesource.com/526634
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18476}
2017-06-07 14:53:41 +00:00