Commit graph

56 commits

Author SHA1 Message Date
Kári Tristan Helgason
0a1140e3a0 Updating RTCDeviceType with new iOS devices.
Bug: None
Change-Id: I2b5416fda608039c07037244ce69c299f155ffdc
Reviewed-on: https://webrtc-review.googlesource.com/6900
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20238}
2017-10-11 10:06:59 +00:00
Jonas Oreland
bdcee28ee9 TurnCustomizer - an interface for modifying stun messages sent by TurnPort
This patch adds an interface that allows modification of stun messages
sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
and the TurnCustomizer will be invoked by TurnPort before sending
message. This allows user to e.g add custom attributes as described
in rtf5389.

BUG=webrtc:8313

Change-Id: I6f4333e9f8ff7fd20f32677be19285f15e1180b6
Reviewed-on: https://webrtc-review.googlesource.com/7618
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20233}
2017-10-11 07:45:29 +00:00
Taylor Brandstetter
ebe36efad7 Update Java MediaStream when native stream's set of tracks changes.
This will handle the scenario where, for example, the initial
offer/answer only negotiates audio, and video is added later (to the
same stream). Previously, there was absolutely no way to get a handle to
the new track without hacking the SDP. Now, the stream will be updated
after setRemoteDescription finishes.

Bug: webrtc:5677
Change-Id: Iea31bb7744da6b82afdaf44c8f74d721298a9474
Reviewed-on: https://webrtc-review.googlesource.com/6261
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20228}
2017-10-10 17:07:28 +00:00
Daniela
c548aab857 Fix metal unit test on ios11.
Ensure the view is always nil in all tests.

Bug: webrtc:8341
Change-Id: I405ba23a1460a7e26cc95c7537a66b21b1fb9426
Reviewed-on: https://webrtc-review.googlesource.com/6766
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20201}
2017-10-09 10:31:57 +00:00
Guido Urdaneta
604427b875 Revert "TurnCustomizer - an interface for modifying stun messages sent by TurnPort"
This reverts commit b23ed7f1af.

Reason for revert: Breaks Chromium FYI build

Sample error log:

../../remoting/test/fake_port_allocator.cc:52:7: error: no matching constructor for initialization of 'cricket::BasicPortAllocator'
    : BasicPortAllocator(network_manager, socket_factory),
      ^                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/webrtc/p2p/client/basicportallocator.h:32:12: note: candidate constructor not viable: requires single argument 'network_manager', but 2 arguments were provided
  explicit BasicPortAllocator(rtc::NetworkManager* network_manager);
           ^
../../third_party/webrtc/p2p/client/basicportallocator.h:27:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class BasicPortAllocator : public PortAllocator {
      ^
../../third_party/webrtc/p2p/client/basicportallocator.h:29:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:33:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:36:3: note: candidate constructor not viable: requires 5 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,

Original change's description:
> TurnCustomizer - an interface for modifying stun messages sent by TurnPort
> 
> This patch adds an interface that allows modification of stun messages
> sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
> and the TurnCustomizer will be invoked by TurnPort before sending
> message. This allows user to e.g add custom attributes as described
> in rtf5389.
> 
> BUG=webrtc:8313
> 
> Change-Id: Ibf5cc10af84c57288f1eb4c578ca064611a769f1
> Reviewed-on: https://webrtc-review.googlesource.com/4781
> Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20197}

TBR=deadbeef@webrtc.org,sakal@webrtc.org,jonaso@webrtc.org

Change-Id: I624efb22f6e3ceac1b2ff8af1ec47e4cfdde9140
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8313
Reviewed-on: https://webrtc-review.googlesource.com/7680
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20199}
2017-10-09 09:53:59 +00:00
Jonas Oreland
b23ed7f1af TurnCustomizer - an interface for modifying stun messages sent by TurnPort
This patch adds an interface that allows modification of stun messages
sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig
and the TurnCustomizer will be invoked by TurnPort before sending
message. This allows user to e.g add custom attributes as described
in rtf5389.

BUG=webrtc:8313

Change-Id: Ibf5cc10af84c57288f1eb4c578ca064611a769f1
Reviewed-on: https://webrtc-review.googlesource.com/4781
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20197}
2017-10-09 06:35:40 +00:00
Sami Kalliomäki
602dc431b0 Fix some lint warnings on Android.
Bug: webrtc:6597
Change-Id: I215b319b3129949d12b74b11e6ec35eb123a1e5a
Reviewed-on: https://webrtc-review.googlesource.com/6781
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20182}
2017-10-06 11:20:14 +00:00
Anders Carlsson
7e04281870 Injectable software video codecs in Obj-C.
When injecting video codec factories in the Obj-C SDK, use the new
peer connection API that uses webrtc::Video{De,En}CoderFactory classes
and does not automatically add internal software codecs. Instead the
injected factory can support internal VP8 and VP9 codecs through the
included Obj-C classes RTCVideo{De,En}coderVP{8,9}.

When not explicitly injecting any video codec factory, the old code
path is still used and injects only H264 as an external codec and
the internal codec factory is used.

Bug: webrtc:7925
Change-Id: I657d30dfde71da9c0be341e213ab9f97a04caa58
Reviewed-on: https://webrtc-review.googlesource.com/3620
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20175}
2017-10-06 07:36:34 +00:00
Sami Kalliomäki
07c5bfb4d6 Convert FileVideoCapturer to capture VideoFrames.
Bug: webrtc:7749
Change-Id: I0e102888bf3f9d413b9e9282354f7577c52bef59
Reviewed-on: https://webrtc-review.googlesource.com/6920
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20173}
2017-10-06 07:11:53 +00:00
Kári Tristan Helgason
ca95748c73 Add tests for ScopedCFTypeRef.
Copy the chromium pattern of taking Traits as template args to be
able to write a testable implementation of ScopedTypeRef.

Add unit tests for th current implementation.

Bug: webrtc:7825
Change-Id: I26017952c042c8323b9c3841ec309e32d1c04a85
Reviewed-on: https://webrtc-review.googlesource.com/5621
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20165}
2017-10-05 12:36:31 +00:00
Sami Kalliomäki
0ca8b53603 Always copy output byte buffers in HardwareVideoDecoder.
This simplifies the code and ensures we don't starve the decoder if
there are multiple output buffers queued.

Bug: webrtc:7760
Change-Id: I42c31f5045fca96847001260b8796d6756900d0f
Reviewed-on: https://webrtc-review.googlesource.com/5522
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20161}
2017-10-05 11:17:20 +00:00
Sami Kalliomäki
48b3c0272f Add JavaI420Buffer to the API.
This renames I420BufferImpl to JavaI420Buffer and moves it as part of
the API.

Bug: webrtc:7749
Change-Id: I70726f248ba4601b4922996712bdfdafbfa4a1e1
Reviewed-on: https://webrtc-review.googlesource.com/5381
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20145}
2017-10-04 15:27:14 +00:00
Fredrik Solenberg
4332d09028 Reland "Reland "Remove WEBRTC_TRACE.""
This is a reland of 68007e97ec
Original change's description:
> Reland "Remove WEBRTC_TRACE."
> 
> This is a reland of 2209b90449
> Original change's description:
> > Remove WEBRTC_TRACE.
> > 
> > Bug: webrtc:5118
> > Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> > Reviewed-on: https://webrtc-review.googlesource.com/5382
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20114}
> 
> Bug: webrtc:5118
> Change-Id: I2d93fd40fcaa251c363bdcfb1c04b834a3a7f0e9
> Reviewed-on: https://webrtc-review.googlesource.com/6000
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20132}

Bug: webrtc:5118
Change-Id: I3b46406899d043c3260fc3195b524138324f7313
Reviewed-on: https://webrtc-review.googlesource.com/6301
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20144}
2017-10-04 14:40:44 +00:00
Daniela
bff80f3c19 Add availablitity macro to RTCFileVideoCapturer
Otherwise the class triggers -Wunguarded-availability clang error

Bug: webrtc:8338
Change-Id: If789c7c1af4de5b7dc24bee808b90f3835c3171d
Reviewed-on: https://webrtc-review.googlesource.com/6400
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20142}
2017-10-04 14:07:34 +00:00
Fredrik Solenberg
39cefdb3c5 Revert "Reland "Remove WEBRTC_TRACE.""
This reverts commit 68007e97ec.

Reason for revert: More downstream breakages.

Original change's description:
> Reland "Remove WEBRTC_TRACE."
> 
> This is a reland of 2209b90449
> Original change's description:
> > Remove WEBRTC_TRACE.
> > 
> > Bug: webrtc:5118
> > Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> > Reviewed-on: https://webrtc-review.googlesource.com/5382
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20114}
> 
> Bug: webrtc:5118
> Change-Id: I2d93fd40fcaa251c363bdcfb1c04b834a3a7f0e9
> Reviewed-on: https://webrtc-review.googlesource.com/6000
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20132}

TBR=solenberg@webrtc.org,sakal@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I093ee8c5c997c0dd46b3a3ca0e6271e3ea083d82
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:5118
Reviewed-on: https://webrtc-review.googlesource.com/6320
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20133}
2017-10-04 08:49:49 +00:00
Fredrik Solenberg
68007e97ec Reland "Remove WEBRTC_TRACE."
This is a reland of 2209b90449
Original change's description:
> Remove WEBRTC_TRACE.
> 
> Bug: webrtc:5118
> Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> Reviewed-on: https://webrtc-review.googlesource.com/5382
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20114}

Bug: webrtc:5118
Change-Id: I2d93fd40fcaa251c363bdcfb1c04b834a3a7f0e9
Reviewed-on: https://webrtc-review.googlesource.com/6000
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20132}
2017-10-04 07:57:18 +00:00
Brandon Young
0ef90d1f13 Enable uploading vertex array with non-zero stride in Android shader.
Bug: chromium:761472
Change-Id: I1c9ec8d0c2d26f00213750c8433acf61a234bd0a
Reviewed-on: https://webrtc-review.googlesource.com/5601
Commit-Queue: Brandon Young <bpyoung@google.com>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20125}
2017-10-03 19:41:58 +00:00
Fredrik Solenberg
729b9109ca Revert "Remove WEBRTC_TRACE."
This reverts commit 2209b90449.

Reason for revert: breaks Chromium

Original change's description:
> Remove WEBRTC_TRACE.
> 
> Bug: webrtc:5118
> Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> Reviewed-on: https://webrtc-review.googlesource.com/5382
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20114}

TBR=solenberg@webrtc.org,sakal@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: Ie54fc05c1d7895c088cba410ed87a7c9a0701427
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:5118
Reviewed-on: https://webrtc-review.googlesource.com/5980
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20115}
2017-10-03 13:39:55 +00:00
Fredrik Solenberg
2209b90449 Remove WEBRTC_TRACE.
Bug: webrtc:5118
Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
Reviewed-on: https://webrtc-review.googlesource.com/5382
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20114}
2017-10-03 13:20:48 +00:00
Kári Tristan Helgason
e71f367511 Add init for RTCVideoCodecInfo without params.
Bug: webrtc:8321
Change-Id: I4daaa54513991c2a0d4fa579e21ff33e9294ba69
Reviewed-on: https://webrtc-review.googlesource.com/5021
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20101}
2017-10-03 07:35:30 +00:00
Niels Möller
88676bf9ae Delete an unneeded include of trace.h
Bug: webrtc:5118
Change-Id: I6b706075428aa4ca22e37ae5be54431f817af3a6
Reviewed-on: https://webrtc-review.googlesource.com/5362
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20098}
2017-10-03 06:54:40 +00:00
Sami Kalliomäki
208b30936f Fix a bug in HardwareVideoEncoderTest.
Previously, EGL context was always supplied regardless of useEglContext
parameter.

Bug: None
Change-Id: Iaae93f4f52175674862a101837e0f2ae6575d91b
Reviewed-on: https://webrtc-review.googlesource.com/5562
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20088}
2017-10-02 16:46:49 +00:00
Sami Kalliomäki
a265da4082 Android: Fix getting encoder queue in encoder wrapper.
Get the encoder queue in init instead of the constructor. The
constructor is not always called on the same thread as init. The
encoder may also be reinitialized on a different thread.

Bug: webrtc:7760
Change-Id: I32a025a8bdf652ab019ac4c2ffc6be1533008925
Reviewed-on: https://webrtc-review.googlesource.com/5480
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20074}
2017-10-02 12:30:49 +00:00
Sami Kalliomäki
e3044fe12e Add checks for buffer size in MediaCodecVideoEncoder.
This should help users of the library to more easily debug issues.

Bug: None
Change-Id: I85d8101d3b26ccbc34c8beded069461252e61293
Reviewed-on: https://webrtc-review.googlesource.com/4663
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20073}
2017-10-02 12:08:29 +00:00
Sami Kalliomäki
a58f231018 Fix a crash in HardwareVideoDecoder on reinitialization.
Do not post releasing the texture output buffer.

Bug: webrtc:7760
Change-Id: Ie4d7165a24c791a406be75688c814e2b9d9cde8f
Reviewed-on: https://webrtc-review.googlesource.com/5440
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20072}
2017-10-02 12:02:09 +00:00
Bjorn Mellem
d629314396 Return slices of ByteBuffers from getDataY/U/V() in I420Buffers.
I420Buffer implementations (I420BufferImpl and WrappedNativeI420Buffer) rely on
the 'position' of the underlying ByteBuffers to indicate the start of Y, U, and
V channels.  Returning slices prevents callers from altering the state of the
I420Buffer by changing the position.

ByteBuffers are especially prone to accidentally moving the position: relative
read operations (such as get()) increment the position by the size of data read.

BUG=webrtc:8303

Change-Id: I52edce8a3bf46a6c41980ff5110a9480f021f22f
Reviewed-on: https://webrtc-review.googlesource.com/4521
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20050}
2017-09-30 00:11:57 +00:00
Kári Tristan Helgason
a17ddcdecf Add new class to handle releasing CFTypeRefs.
The new class wraps any CoreFoundation Type ref and
automatically releases it when it goes out of scope.
Conceptually similar to std::unique_ptr.

Bug: webrtc:7825
Change-Id: Ie49572b9215fcb5b92b2c0c3e3d52b0b3cf01752
Reviewed-on: https://webrtc-review.googlesource.com/3380
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20045}
2017-09-29 14:01:07 +00:00
Daniela
f328282cbf Fix memory leak in video encoder.
Bug: webrtc:8306
Change-Id: Iadc7a584ccf70a4f1df3f7f7af29e66a3698d93a
Reviewed-on: https://webrtc-review.googlesource.com/4425
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20043}
2017-09-29 13:07:37 +00:00
Sami Kalliomäki
cbc4b1dc41 Android: Optimize apply_rotation in case the rotation is 0.
Previously VideoFrame.Buffers would be converted to I420 if
apply_rotation() is true. With this change the operation is skipped if
the rotation is 0.

Bug: webrtc:7749
Change-Id: I24a1a8801e41d8f415b33fe57fec953b74df7459
Reviewed-on: https://webrtc-review.googlesource.com/4665
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20038}
2017-09-29 11:47:44 +00:00
Sami Kalliomäki
5cd1cfb7c4 Allow passing in a custom native library loader.
All previous initialize methods are deprecated and a new initialize
that uses a builder pattern is added. This gives us full control over
the order of initialization.

Bug: webrtc:7474
Change-Id: I006190e50f2e75c5015f0be75b86d367676db2cc
Reviewed-on: https://webrtc-review.googlesource.com/4160
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20037}
2017-09-29 11:46:38 +00:00
JT Teh
a6368d17c5 Fix occassional hang in iOS 11 when calling VTDecompressionSessionInvalidate.
BUG=webrtc:8302

Change-Id: I426116c621c53a0300f87a2a5dc147578b559ed6
Reviewed-on: https://webrtc-review.googlesource.com/4520
Reviewed-by: Zeke Chin <tkchin@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: JT Teh <jtteh@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20026}
2017-09-28 19:41:06 +00:00
Sami Kalliomäki
27bafec7c1 Revert "Use injectable hardware video decoder/encoder in AppRTCMobile."
This reverts commit 0cbaf1a6f6.

Reason for revert: Makes a test flaky:
https://build.chromium.org/p/client.webrtc/builders/Android32%20%28M%20Nexus5X%29/builds/4603

Original change's description:
> Use injectable hardware video decoder/encoder in AppRTCMobile.
> 
> Also include a small fix for getting the encoder queue.
> 
> Bug: webrtc:7760
> Change-Id: I96dc8ffb363b90382276d88148f81d5f89dca5f2
> Reviewed-on: https://webrtc-review.googlesource.com/2683
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20022}

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

Change-Id: I6cb9a10eadb0eff2b85d5028d684746dc69bccfb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7760
Reviewed-on: https://webrtc-review.googlesource.com/4480
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20024}
2017-09-28 16:31:50 +00:00
Sami Kalliomäki
0cbaf1a6f6 Use injectable hardware video decoder/encoder in AppRTCMobile.
Also include a small fix for getting the encoder queue.

Bug: webrtc:7760
Change-Id: I96dc8ffb363b90382276d88148f81d5f89dca5f2
Reviewed-on: https://webrtc-review.googlesource.com/2683
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20022}
2017-09-28 15:32:49 +00:00
Daniela
cdd1f687cf Fix memory leak in nv12 metal renderer
Bug: webrtc:8308
Change-Id: If6823b2ba7a4a09800bc107985fc52124089277a
Reviewed-on: https://webrtc-review.googlesource.com/4440
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20021}
2017-09-28 15:25:28 +00:00
Rasmus Brandt
9cf9f758fc Detach SequencedTaskChecker in MediaCodecVideoEncoder::Release.
If this is not done, the RTC_DCHECK_CALLED_SEQUENTIALLY might fire
if the encoder is used on a new VideoStreamEncoder. This happens
after VideoSendStream recreations due to changes in the SDP.

BUG=b/66590444

Change-Id: I086370526afbbe2ba629805f97f89e512ba3f472
Reviewed-on: https://webrtc-review.googlesource.com/4360
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20020}
2017-09-28 15:15:21 +00:00
Kári Tristan Helgason
3935c34cbc Add equality method for RTCVideoCodecInfo.
This is useful for various reasons.

Bug: None
Change-Id: I8658f8b19829cc8470789c13ff3af6466f200f00
Reviewed-on: https://webrtc-review.googlesource.com/4383
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20018}
2017-09-28 14:18:51 +00:00
Sami Kalliomäki
cff9ee650e Reland "Improve unit testing for HardwareVideoEncoder and fix bugs."
This is a reland of 7a2bfd22e6
Original change's description:
> Improve unit testing for HardwareVideoEncoder and fix bugs.
> 
> Improves the unit testing for HardwareVideoEncoder and fixes bugs in it.
> The main added feature is support for dynamically switching between
> texture and byte buffer modes.
> 
> Bug: webrtc:7760
> Change-Id: Iaffe6b7700047c7d0f9a7b89a6118f6ff932cd9b
> Reviewed-on: https://webrtc-review.googlesource.com/2682
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#19963}

Bug: webrtc:7760
Change-Id: I605647da456525de8e535cc66cab9d0b3f14240b
Reviewed-on: https://webrtc-review.googlesource.com/3641
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20013}
2017-09-28 10:16:28 +00:00
Magnus Jedvert
02e7a1981a Remove unnecessary video factory references in PeerConnectionFactory
The video codec factories should be owned by the video engine instead
of by the PeerConnectionFactory.

Bug: None
Change-Id: If63d47cef565138d51377af3fc9ea973950c9390
Reviewed-on: https://webrtc-review.googlesource.com/1601
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20002}
2017-09-27 14:41:46 +00:00
Magnus Jedvert
f4810ddfd9 Revert "Android: Generate JNI code for VideoSink and VideoEncoder"
This reverts commit ba78b5a905.

Reason for revert: Breaks external projects.

Original change's description:
> Android: Generate JNI code for VideoSink and VideoEncoder
> 
> This is the first CL to start generating JNI code. It has updated two of
> the most recent classes to use JNI code generation.
> 
> Bug: webrtc:8278
> Change-Id: I1b19ee78c273346ceeaa0401dbdf8696803f16c7
> Reviewed-on: https://webrtc-review.googlesource.com/3820
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#19994}

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

Change-Id: I48e079f3ab9661ae4171a3ae5cca571a75d14810
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8278
Reviewed-on: https://webrtc-review.googlesource.com/4100
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19997}
2017-09-27 11:56:57 +00:00
Magnus Jedvert
ba78b5a905 Android: Generate JNI code for VideoSink and VideoEncoder
This is the first CL to start generating JNI code. It has updated two of
the most recent classes to use JNI code generation.

Bug: webrtc:8278
Change-Id: I1b19ee78c273346ceeaa0401dbdf8696803f16c7
Reviewed-on: https://webrtc-review.googlesource.com/3820
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19994}
2017-09-27 11:25:46 +00:00
Sami Kalliomäki
bc7a1a97e9 Update documentation for getData methods in VideoFrame.I420Buffer.
Bug: webrtc:7749
Change-Id: I8151c9e102340e10d13b3fb946ec5ce307b139b3
No-Try: True
TBR: magjed@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/4020
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19993}
2017-09-27 10:54:56 +00:00
Magnus Jedvert
4b537fd064 Android: Suppress lint warnings in JNI generator header
We are doing some unconventional stuff in jni_generator_helper.h in
order to integrate the Chromium script with WebRTC. Long term, we will
improve this and remove the lint suppressions.

Bug: webrtc:8278
Change-Id: I5d6f0017c4deab4586844647f7cd657641fecbab
Reviewed-on: https://webrtc-review.googlesource.com/3780
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19989}
2017-09-27 09:22:15 +00:00
Magnus Jedvert
50da5559ce Android: Add header for generated JNI code
This header will be included from generated JNI code, and acts as a
bridge between JNI types in WebRTC and Chromium.

Bug: webrtc:8278
Change-Id: I88331d26315aa8b258aaaaa26d82324660d648b5
NOPRESUBMIT: True
Reviewed-on: https://webrtc-review.googlesource.com/3441
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19974}
2017-09-26 15:32:45 +00:00
Sami Kalliomäki
daea5bf2de Revert "Improve unit testing for HardwareVideoEncoder and fix bugs."
This reverts commit 7a2bfd22e6.

Reason for revert: Breaks external test.

Original change's description:
> Improve unit testing for HardwareVideoEncoder and fix bugs.
> 
> Improves the unit testing for HardwareVideoEncoder and fixes bugs in it.
> The main added feature is support for dynamically switching between
> texture and byte buffer modes.
> 
> Bug: webrtc:7760
> Change-Id: Iaffe6b7700047c7d0f9a7b89a6118f6ff932cd9b
> Reviewed-on: https://webrtc-review.googlesource.com/2682
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#19963}

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

Change-Id: If1e283a8429c994ad061c7a8320d76633bd0d66b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7760
Reviewed-on: https://webrtc-review.googlesource.com/3640
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19964}
2017-09-26 08:17:15 +00:00
Sami Kalliomäki
7a2bfd22e6 Improve unit testing for HardwareVideoEncoder and fix bugs.
Improves the unit testing for HardwareVideoEncoder and fixes bugs in it.
The main added feature is support for dynamically switching between
texture and byte buffer modes.

Bug: webrtc:7760
Change-Id: Iaffe6b7700047c7d0f9a7b89a6118f6ff932cd9b
Reviewed-on: https://webrtc-review.googlesource.com/2682
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19963}
2017-09-26 07:30:45 +00:00
Sami Kalliomäki
ef36375582 Return EGL_NO_CONTEXT instead of throwing an exception.
Changes EglBase10.Context.getNativeEglContext to return EGL_NO_CONTEXT
instead of throwing a runtime exception.

Bug: webrtc:8257
Change-Id: I89fe630ada35d247f3a6c00b0cd2d7f0b445afa3
Reviewed-on: https://webrtc-review.googlesource.com/3260
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19953}
2017-09-25 16:08:04 +00:00
Magnus Jedvert
3ff56d044b Android: Add CalledByNative annotation interface
This annotation will be used to annotate Java classes that are
referenced from native code.

Bug: webrtc:8278
Change-Id: Icf020927d377ba04304ddbf92639e6ef174de22c
Reviewed-on: https://webrtc-review.googlesource.com/3300
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19951}
2017-09-25 15:48:54 +00:00
Kári Tristan Helgason
0bf6071c04 Remove internal methods from global namespace.
It's rude to clobber our consumers global namespace.

Bug: None
Change-Id: If8073820fcae6399def1717775fa64bc6e20051c
Reviewed-on: https://webrtc-review.googlesource.com/3165
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19942}
2017-09-25 11:05:10 +00:00
Oleh Prypin
86021d9548 Roll chromium_revision 008fb813c3..fe71bbc1fb (503673:503807) + Android fix
Specify requires_android = true in Android dist_jar targets.
Not specifying it became an error since the commit
"Android: Add proguard and dex options to dist_jar"
https://chromium-review.googlesource.com/673094

Change log: 008fb813c3..fe71bbc1fb
Full diff: 008fb813c3..fe71bbc1fb

Changed dependencies:
* src/base: c18a0c6f24..9529eebc82
* src/build: 59ac1990b6..29038c884d
* src/ios: 17d0800b46..39c4b2fcf7
* src/testing: 1f35ec36f2..cc96d3d66b
* src/third_party: 7e981769b0..302a45ca40
* src/third_party/catapult: b233ea0e0e..aa736cc76e
* src/tools: 92042cc6a9..46c94ba649
DEPS diff: 008fb813c3..fe71bbc1fb/DEPS

No update to Clang.

TBR=kjellander@webrtc.org
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: Icb025a8a8635bb14da08e2ef3c1ac10ce88cfe15
Reviewed-on: https://webrtc-review.googlesource.com/3060
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19933}
2017-09-24 20:59:54 +00:00
Magnus Jedvert
835cc0c646 Remove unnecessary audio references in PeerConnectionFactory
We currently pass in a lot of audio parameters to PeerConnectionFactory
which we never use. This CL removes them.

All these parameters are reference counted, so they are not needed for
lifetime management (unless we do something crazy). Even if we want to
switch from reference counting to std::unique_ptrs in the future, the
voice engine is a more suitable owner than PeerConnectionFactory. The
PeerConnectionFactory already owns a MediaEngine which in turn owns a
VoiceEngine.

Bug: webrtc:7613
Change-Id: I393cf0d29ffa762a3a13475f6fbe00b8565f4c07
Reviewed-on: https://webrtc-review.googlesource.com/1600
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19931}
2017-09-23 14:36:14 +00:00