Commit graph

85 commits

Author SHA1 Message Date
Alex Leung
5b6891afdd Add MediaTek H264 and VP8 HW Codec Support with field trial
Bug: webrtc:8761
Change-Id: I06cdff086b624afaf3533ced3e5e4eaf3a862720
Reviewed-on: https://webrtc-review.googlesource.com/39980
Commit-Queue: Alex Leung <alexleung@google.com>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21699}
2018-01-19 19:58:03 +00:00
Jonas Oreland
e662d0ecf0 Extend Android SDK to enable adding custom PortAllocator
This patch exposes the network_thread so that
a custom PortAllocator can use it instead of e.g
creating own thread.

Bug: webrtc:8640
Change-Id: I705629e4f1a4d0a4fed7d53a774ba9564ba076fe
Reviewed-on: https://webrtc-review.googlesource.com/39925
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21643}
2018-01-16 14:52:14 +00:00
Sami Kalliomäki
6f247e944c Add a method for getting the native factory from PeerConnectionFactory.
Bug: webrtc:8662
Change-Id: Icfe09e82737e1b700e469afde00c4f0923bbeb42
Reviewed-on: https://webrtc-review.googlesource.com/39516
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21628}
2018-01-16 08:43:12 +00:00
Oleh Prypin
e78824ecd0 Suppress ErrorProne StringSplitter warnings
Bug: webrtc:8750
Change-Id: I1ff1bae680659f804c72eab5d14cf9c8c5046b90
Reviewed-on: https://webrtc-review.googlesource.com/39660
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21625}
2018-01-16 08:14:42 +00:00
Sami Kalliomäki
ce5c19add1 Move ownership of PeerConnectionObserver from Java to C++.
New OwnedPeerConnection takes ownership of the observer. This is done
to allow NativePeerConnectionFactory to return a capsulated object.

Bug: webrtc:8662
Change-Id: Ie876f7b9a1a17ebcfbe51537f712a32ab1a7cbfb
Reviewed-on: https://webrtc-review.googlesource.com/35300
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21610}
2018-01-15 09:52:38 +00:00
Sam Zackrisson
aa6b24f23c Delete DefaultAudioProcessingFactory in the Java layer
This removes the DefaultAudioProcessingFactory, PostProcessingFactory and DefaultAudioProcessingFactoryTest classes and leaves the interface AudioProcessingFactory without any default implementation (as the default APM is already created by the PeerConnectionFactory JNI).

Bug: webrtc:8701
Change-Id: I259108afbc5b24cab5161485f45af4236f775c18
Reviewed-on: https://webrtc-review.googlesource.com/37220
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21577}
2018-01-11 12:51:01 +00:00
Sami Kalliomäki
84804b08fd Make getNativePeerConnection public.
Bug: webrtc:8662
Change-Id: Id23b5e047a2c479bef1c4dd7985c3199c6310eb6
Reviewed-on: https://webrtc-review.googlesource.com/35720
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21547}
2018-01-10 13:04:11 +00:00
Honghai Zhang
0e894c3889 Update NetworkMonitor so that it can be started from java code.
BUG=b/69623057

Change-Id: I30e0d23e82f5feeadc05e5fc9a4b87e7d3e2da8c
Reviewed-on: https://webrtc-review.googlesource.com/31752
Commit-Queue: Honghai Zhang <honghaiz@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21473}
2018-01-02 15:59:30 +00:00
Magnus Jedvert
84d8ae5df7 Android: Use scoped java refs
We currently use raw jobject in our code mixed with sporadic
ScopedLocalRefFrame. This CL moves every jobject into a scoped object,
either local, global, or a parameter. Also, this CL uses the JNI
generation script to generate declaration stubs for the Java->C++
functions so that it no longer becomes possible to mistype them
without getting compilation errors.

TBR=brandt@webrtc.org

Bug: webrtc:8278,webrtc:6969
Change-Id: Ic7bac74a89c11180177d65041086d7db1cdfb516
Reviewed-on: https://webrtc-review.googlesource.com/34655
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21387}
2017-12-20 15:46:06 +00:00
Magnus Jedvert
1212f1e227 Android: One JNI file per Java file
This CL does the following:
 * Split out MediaStream JNI code from peerconnection.cc to mediastream.h/mediastream.cc.
 * Split out RtpSender JNI code from peerconnection.cc to rtpsender.h/rtpsender.cc.
 * Split out TurnCustomizer JNI code from peerconnection.cc to turncustomizer.h/turncustomizer.cc.
 * Add missing instanceof function to WrappedNativeVideoDecoder.java.
 * Move some PeerConnectionFactory JNI declarations from pc/video.cc to peerconnectionfactory.cc.
 * Add declaration to video.h for the JNI functions that depend on EglBase14_jni.h.
 * Use a scoped object to store the global Java MediaStream objects that also call dispose.

Bug: webrtc:8278
Change-Id: I3c56a599b8bcbc8f34e5c5a7b9c9fe1d192ff3f3
Reviewed-on: https://webrtc-review.googlesource.com/34645
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21380}
2017-12-20 11:30:26 +00:00
Sami Kalliomäki
1ece1edddc Android: Allow injecting native PeerConnection.
This allows application to construct PeerConnection object in JNI and
pass that to Android API. API for wrapping Java PeerConnection Observers
is exposed for convenience.

Bug: webrtc:8662
Change-Id: Id110b92e6bb5ab00661cd50616d05c3e18a1697d
Reviewed-on: https://webrtc-review.googlesource.com/34520
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21379}
2017-12-20 11:27:56 +00:00
Sami Kalliomäki
e8b26cd86b Android: Deprecate peerconnection constraints.
C++ API allows passing all configuration through RTCConfiguration
object. This adds all values previously passed through PC constraints
to Java RTCConfiguration object and deprecates API that takes PC
contraints.

Using the deprecated API overrides the values in RTCConfigration
object.

Bug: webrtc:8663, webrtc:8662
Change-Id: I128432c3caba74403513fb1347ff58830c643885
Reviewed-on: https://webrtc-review.googlesource.com/33460
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21357}
2017-12-19 12:23:20 +00:00
Sami Kalliomäki
20b294c28e Android: Re-enable videoprocessor integration tests.
The problem was that the encoder was feeded with frames that had 0 as
a timestamp. This confused the encoder. H264 high profile support
clause was also wrong and is corrected.

Bug: webrtc:8601
Change-Id: Ic5a893b4b7573e694f865b63620843b2c9aa489f
Reviewed-on: https://webrtc-review.googlesource.com/32300
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21234}
2017-12-13 08:59:30 +00:00
Magnus Jedvert
9060eb1528 Android: Generate JNI code for remaining classes in sdk/android
Bug: webrtc:8278
Change-Id: I20a4388ab347d8745d0edde808f7a0b610f077f9
Reviewed-on: https://webrtc-review.googlesource.com/31484
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21227}
2017-12-12 12:36:17 +00:00
Magnus Jedvert
655e1967ea Android: Generate JNI code for MediaCodecVideoEncoder/Decoder
Bug: webrtc:8278
Change-Id: I19cff18b5d110720ea50d16254ddc4377adc3dbe
Reviewed-on: https://webrtc-review.googlesource.com/31261
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21204}
2017-12-11 12:38:15 +00:00
Magnus Jedvert
3863153267 Android: Generate JNI code for jni_helper, RtpSender, and VideoEncoderFactory
Bug: webrtc:8278
Change-Id: I6111e562cc5a8fe6c595fcb8dfd5202d46a08806
Reviewed-on: https://webrtc-review.googlesource.com/28622
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21140}
2017-12-07 15:18:57 +00:00
Magnus Jedvert
ba700f642b Android: Generate JNI code for RtpReceiver and PeerConnection.Observer
Bug: webrtc:8278
Change-Id: Ief62c37dd6820c2eb1ce94e37e0a61dd8726caae
Reviewed-on: https://webrtc-review.googlesource.com/28621
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21035}
2017-12-04 13:29:59 +00:00
Sami Kalliomäki
b9f3f9bdd7 Make EglBase an interface.
Bug: webrtc:8084
Change-Id: I50f57f81fe7148e2ed262e0672d5ab3a4f0f251e
Reviewed-on: https://webrtc-review.googlesource.com/26960
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21026}
2017-12-04 08:41:38 +00:00
Magnus Jedvert
bba8e9eb85 Reland "Android: Generate JNI code for stats"
This reverts commit 43d069a2cd.

Reason for revert: Include fix for local reference overflow.

Original change's description:
> Revert "Android: Generate JNI code for stats"
>
> This reverts commit aede67a199.
>
> Reason for revert: Causes error:
> JNI ERROR (app bug): local reference table overflow (max=512)'
>
> Original change's description:
> > Android: Generate JNI code for stats
> >
> > This CL also unifies the functions for converting from C++ to Java, and
> > generates the boiler plate for converting C++ vectors to Java arrays.
> >
> > Bug: webrtc:8278
> > Change-Id: I262e9162beae8a64ba0e8b6a27e1081207b03961
> > Reviewed-on: https://webrtc-review.googlesource.com/26020
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20918}
>
> TBR=magjed@webrtc.org,sakal@webrtc.org
>
> Change-Id: Ieb26ed8577bd489a4dd4f7542d16a7d0e11f409f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:8278
> Reviewed-on: https://webrtc-review.googlesource.com/26900
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20926}

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

Change-Id: I6f7097f308098e7922fbf0bed577bd69da4e1c61
Bug: webrtc:8278
Reviewed-on: https://webrtc-review.googlesource.com/26901
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20951}
2017-11-30 11:40:51 +00:00
Magnus Jedvert
43d069a2cd Revert "Android: Generate JNI code for stats"
This reverts commit aede67a199.

Reason for revert: Causes error:
JNI ERROR (app bug): local reference table overflow (max=512)'

Original change's description:
> Android: Generate JNI code for stats
> 
> This CL also unifies the functions for converting from C++ to Java, and
> generates the boiler plate for converting C++ vectors to Java arrays.
> 
> Bug: webrtc:8278
> Change-Id: I262e9162beae8a64ba0e8b6a27e1081207b03961
> Reviewed-on: https://webrtc-review.googlesource.com/26020
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20918}

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

Change-Id: Ieb26ed8577bd489a4dd4f7542d16a7d0e11f409f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8278
Reviewed-on: https://webrtc-review.googlesource.com/26900
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20926}
2017-11-29 10:09:10 +00:00
Magnus Jedvert
aede67a199 Android: Generate JNI code for stats
This CL also unifies the functions for converting from C++ to Java, and
generates the boiler plate for converting C++ vectors to Java arrays.

Bug: webrtc:8278
Change-Id: I262e9162beae8a64ba0e8b6a27e1081207b03961
Reviewed-on: https://webrtc-review.googlesource.com/26020
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20918}
2017-11-28 17:27:58 +00:00
Magnus Jedvert
4fa5da54d5 Android: Generate JNI code for MediaStreamTrack
Bug: webrtc:8278
Change-Id: Id5ac6ecd4f65bed4ae4b2953ef58ebc390508d21
Reviewed-on: https://webrtc-review.googlesource.com/25963
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20910}
2017-11-28 13:14:08 +00:00
Magnus Jedvert
6a0345b3b0 Android: Generate JNI code for MediaStream
Bug: webrtc:8278
Change-Id: I48d0615f3db3f22e7179a2d7c59b970a33678ada
Reviewed-on: https://webrtc-review.googlesource.com/25962
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20891}
2017-11-27 11:58:32 +00:00
Magnus Jedvert
80610c4fd1 Android: Generate JNI code for IceCandidate
Bug: webrtc:8278
Change-Id: I4facd1f6babd6e8a9b35c86b6ad7420e52321f49
Reviewed-on: https://webrtc-review.googlesource.com/25960
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20888}
2017-11-27 11:17:02 +00:00
Magnus Jedvert
c4c8876f70 Android: Generate JNI code for RTCStats
Bug: webrtc:8278
Change-Id: I183cec54ec3e97894db7f26e365eb9941a1ab458
Reviewed-on: https://webrtc-review.googlesource.com/25660
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20879}
2017-11-24 18:38:40 +00:00
Magnus Jedvert
7bd6cccb40 Android: Generate JNI code for DataChannel
Bug: webrtc:8278
Change-Id: I107c839656500971cbd3da7557e14776759c318a
Reviewed-on: https://webrtc-review.googlesource.com/25820
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20873}
2017-11-24 15:41:29 +00:00
Sami Kalliomäki
3e189a6dc3 Remove static library loading from WebRTC Android SDK.
Bug: webrtc:7474
Change-Id: Ie75a5c12638be82d7bd91073744946ac21c48155
Reviewed-on: https://webrtc-review.googlesource.com/22962
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20865}
2017-11-24 11:46:39 +00:00
Magnus Jedvert
3ecdd0f02a Android: Generate JNI code for MediaConstraints
Also improves ownership model by using std::unique_ptr in a couple of
places instead of raw pointers.

Bug: webrtc:8278
Change-Id: I0429ec3c416b5baa1ffa21dad71e0d64b004c446
Reviewed-on: https://webrtc-review.googlesource.com/25020
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20863}
2017-11-24 11:03:19 +00:00
Sami Kalliomäki
6196feb2ed Fix a bug where all wrapped codecs were considered software codecs.
This is not the case for fallback codecs.

Bug: webrtc:7925
Change-Id: I5039d8879923a2db1e7c08bb5640763dd20ea8e7
Reviewed-on: https://webrtc-review.googlesource.com/24863
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20861}
2017-11-24 10:30:59 +00:00
Magnus Jedvert
1f2a3e7058 Android: Clean up JNI generated code
It's now possible to generate JNI code for constructors and enums
correctly. This CL cleans that up.

Bug: webrtc:8278,webrtc:8551,webrtc:8556
Change-Id: I2284a30139cbb186c80713eb6113eda5659c16ad
Reviewed-on: https://webrtc-review.googlesource.com/25622
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20860}
2017-11-24 10:08:58 +00:00
Sami Kalliomäki
aea1d1ad3f Android: Fix leaking software video codec instances.
Previously, wrapped native codec instances would leak the native object
if it was never used. This change fixes it by changing getNative method
to createNative.

Also fixes "Video codec hardware acceleration" setting in AppRTCMobile.

Bug: webrtc:7925
Change-Id: I53f6dc1dd5e37dea8d14278423122dede17719c5
Reviewed-on: https://webrtc-review.googlesource.com/24881
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20859}
2017-11-24 09:41:39 +00:00
Sami Kalliomäki
ed1023db0e Android: Disable internal tracer by default.
This is a debug feature and should be disabled by default. Any client
that needs this functionality should call setEnableInternalTracer.

Bug: webrtc:8553
Change-Id: I78d718ebb95fc5cb8c464327b5b36e385ccfa9c0
Reviewed-on: https://webrtc-review.googlesource.com/24540
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20814}
2017-11-21 11:53:57 +00:00
Magnus Jedvert
4eb0188cb6 Android: Generate JNI code for VideoDecoder
Bug: webrtc:8278
Change-Id: I985fa63b0c5a9cdd0fb1817730646bcd4b30288a
Reviewed-on: https://webrtc-review.googlesource.com/24221
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20803}
2017-11-20 22:48:02 +00:00
Magnus Jedvert
cada60193d Reland "Android: Generate JNI code for androidnetworkmonitor_jni"
This reverts commit 522c1bc6bb.

Reason for revert: Reland with a temporary fix.

Original change's description:
> Revert "Android: Generate JNI code for androidnetworkmonitor_jni"
> 
> This reverts commit 768e1c0ea1.
> 
> Reason for revert: Breaks AppRTCMobile.
> 
> Original change's description:
> > Android: Generate JNI code for androidnetworkmonitor_jni
> > 
> > Bug: webrtc:8278
> > Change-Id: I8447b2de5ec2610760f7112b6f86e54d94325322
> > Reviewed-on: https://webrtc-review.googlesource.com/24520
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20796}
> 
> TBR=magjed@webrtc.org,sakal@webrtc.org
> 
> Change-Id: I45f8d19abd81386872b7c095ac7eca21fa06077c
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:8278,webrtc:8556
> Reviewed-on: https://webrtc-review.googlesource.com/24622
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20800}

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

Change-Id: I7cc404993addb17f0397127a10aac67476ef6ff4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8278, webrtc:8556
Reviewed-on: https://webrtc-review.googlesource.com/24623
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20801}
2017-11-20 20:56:00 +00:00
Magnus Jedvert
522c1bc6bb Revert "Android: Generate JNI code for androidnetworkmonitor_jni"
This reverts commit 768e1c0ea1.

Reason for revert: Breaks AppRTCMobile.

Original change's description:
> Android: Generate JNI code for androidnetworkmonitor_jni
> 
> Bug: webrtc:8278
> Change-Id: I8447b2de5ec2610760f7112b6f86e54d94325322
> Reviewed-on: https://webrtc-review.googlesource.com/24520
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20796}

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

Change-Id: I45f8d19abd81386872b7c095ac7eca21fa06077c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8278,webrtc:8556
Reviewed-on: https://webrtc-review.googlesource.com/24622
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20800}
2017-11-20 20:51:50 +00:00
Magnus Jedvert
768e1c0ea1 Android: Generate JNI code for androidnetworkmonitor_jni
Bug: webrtc:8278
Change-Id: I8447b2de5ec2610760f7112b6f86e54d94325322
Reviewed-on: https://webrtc-review.googlesource.com/24520
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20796}
2017-11-20 16:00:39 +00:00
Magnus Jedvert
202be3957d Android: Generate JNI code for androidvideotracksource
Bug: webrtc:8278
Change-Id: I43b53c68ebaf2c3f9c27ea7ef510d7b016c1df93
Reviewed-on: https://webrtc-review.googlesource.com/23243
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20795}
2017-11-20 15:25:59 +00:00
Magnus Jedvert
986a79cf3d Android: Annotate and generate JNI code for Metrics.java
Bug: webrtc:8278
Change-Id: I54caee1acb483d7554afd6c0958f1929a78d6a56
Reviewed-on: https://webrtc-review.googlesource.com/22720
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20753}
2017-11-18 17:06:29 +00:00
Magnus Jedvert
c040daec11 Android: Allow SurfaceTextureHelper.textureToYuv to be used for RGB frames
TBR=sakal@webrtc.org

Bug: b/69162554
Change-Id: I342777a1cc961346a3e61408d02fbc6a16b7b633
Reviewed-on: https://webrtc-review.googlesource.com/24101
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20748}
2017-11-18 11:07:28 +00:00
Magnus Jedvert
6062f372c7 Android: Fix warnings
TBR=sakal@webrtc.org

Bug: webrtc:6597,webrtc:8534
Change-Id: I39f96d9e0e6d604051b1cc13368dd44fc82b30b0
Reviewed-on: https://webrtc-review.googlesource.com/23622
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20719}
2017-11-16 18:25:33 +00:00
Anders Carlsson
1e1dd77604 Implement equals() and hashCode() for VideoCodecInfo.
To be able to compare VideoCodecInfos in a nice way in Java and still
use the correct criteria for comparing H264 codec infos.

A similar thing was done for Obj-C here:
https://webrtc-review.googlesource.com/c/src/+/4383

Bug: webrtc:7925
Change-Id: I43f532d4efa557fc8fe25a82eebc35072b91e6db
Reviewed-on: https://webrtc-review.googlesource.com/23240
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20716}
2017-11-16 16:52:24 +00:00
Anders Carlsson
c3fedccf01 VideoEncoderFallback for Android.
Expose VideoEncoderSoftwareFallbackWrapper in Java.

Bug: webrtc:7925
Change-Id: I1e1f7bc0469527f6f6a3b7051535896c3f02611c
Reviewed-on: https://webrtc-review.googlesource.com/22960
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20698}
2017-11-16 08:34:28 +00:00
Sami Kalliomäki
4e3832124f Do not initialize internal tracer if it has already been initialized.
Bug: b/68989834
Change-Id: I7bb02d58cef5c14c6433d1fc7a95b46ff2b27f6f
Reviewed-on: https://webrtc-review.googlesource.com/23280
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20696}
2017-11-16 08:28:53 +00:00
Bjorn Mellem
c48badaed6 Revert "Make HardwareVideo*Factory ctors that take fallbackToSoftware public."
This reverts commit 64534fd917.

Reason for revert: no longer necessary.

Original change's description:
> Make HardwareVideo*Factory ctors that take fallbackToSoftware public.
> 
> https://webrtc-review.googlesource.com/c/src/+/17480 changed the default behavior of HardwareVideoEncoderFactory and HardwareVideoDecoderFactory without providing any way to maintain the previous behavior.  This breaks current users.
> 
> Making these constructors public at least gives existing users a way to maintain the previous behavior.
> 
> Bug: webrtc:7925
> Change-Id: Id8f0ec25026592f5e9096ac5f39fdda22993ff09
> Reviewed-on: https://webrtc-review.googlesource.com/22763
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20675}

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

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

Bug: webrtc:7925
Change-Id: Ia467337a3916371a619e1d238e1dd03aa0e19261
Reviewed-on: https://webrtc-review.googlesource.com/23380
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20695}
2017-11-16 08:22:33 +00:00
Magnus Jedvert
c2ac3c663f Android: Annotate and generate JNI code for VideoFrame.java
This CL also merged native_handle_impl.cc and videoframe_jni.cc to keep
all JNI code for the same Java class in the same file, and also renames
this file to jni/videoframe.cc.

The classes AndroidVideoBufferFactory and JavaVideoFrameFactory are
now unnecessary since we cache everything and can be simplified to
global static functions instead.

Bug: webrtc:8278
Change-Id: I03d7b0bbde64cfb407cd6210478ddf9d5599cd8c
Reviewed-on: https://webrtc-review.googlesource.com/22923
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20677}
2017-11-14 18:44:47 +00:00
Bjorn Mellem
64534fd917 Make HardwareVideo*Factory ctors that take fallbackToSoftware public.
https://webrtc-review.googlesource.com/c/src/+/17480 changed the default behavior of HardwareVideoEncoderFactory and HardwareVideoDecoderFactory without providing any way to maintain the previous behavior.  This breaks current users.

Making these constructors public at least gives existing users a way to maintain the previous behavior.

Bug: webrtc:7925
Change-Id: Id8f0ec25026592f5e9096ac5f39fdda22993ff09
Reviewed-on: https://webrtc-review.googlesource.com/22763
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20675}
2017-11-14 17:11:26 +00:00
Magnus Jedvert
6199a3731d Android: Annotate and generate JNI code for SurfaceTextureHelper.java
Bug: webrtc:8278
Change-Id: I96966e3e7f589a1dde8d4c8079d3fdd1e32bc023
Reviewed-on: https://webrtc-review.googlesource.com/22721
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20673}
2017-11-14 13:41:06 +00:00
Anders Carlsson
6cb76506fe Android: Don't create VP9 encoder/decoder when not supported.
In the SoftwareVideoCodecFactories, don't try to create VP9 encoder or
decoder if WebRTC was built without support for it.

Bug: None
Change-Id: I09b87fdcf798c763310af4998dbea8011843010d
Reviewed-on: https://webrtc-review.googlesource.com/22924
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20672}
2017-11-14 13:18:16 +00:00
Anders Carlsson
dc1b9f179a Injectable software codecs for Android.
This is similar to https://webrtc-review.googlesource.com/c/src/+/3620
for iOS.

Using the new WebRtcMediaEngineFactory::Create API, the built-in
software video codecs are no longer appended to the injected codecs.

To be able to use the software codecs, they are exposed as Java
classes through SoftwareVideoEncoderFactory etc.

There is also a new DefaultVideoEncoderFactory used by AppRTCMobile.
This factory tries to use hardware implementations where available,
but falls back to using the injected software codecs.

The HardwareVideoEncoderFactory is temporarily also falling back on
the software codecs in its default configuration in order to
maintain backwards compatibility.

Bug: webrtc:7925
Change-Id: I3e8c5ed492ccd160aca968986ad217d7978a951c
Reviewed-on: https://webrtc-review.googlesource.com/17480
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20647}
2017-11-13 11:59:28 +00:00
Sami Kalliomäki
8ebac24511 Fix a crash in EglRenderer.removeFrameListener.
The crash occured if removeFrameListener was called after releasing
the EglRenderer.

Bug: b/69040588
Change-Id: I90acc3b280d2009e5f13bb8836a288eb20c7d1d0
Reviewed-on: https://webrtc-review.googlesource.com/21380
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20620}
2017-11-09 13:13:42 +00:00