202 Commits

Author SHA1 Message Date
Linus Nilsson
df4bc33e11 Allow EglBase instances to share EGLConnection.
This enables clients of EglBase to keep using it but
share underlying EGLContext with other clients.
go/meet-android-eglcontext-reduction

Bug: b/225229697
Change-Id: I42719f25be7db169c39878b57a5f1487e3c1894e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301941
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Linus Nilsson <lnilsson@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39961}
2023-04-27 19:59:05 +00:00
Sergey Silkin
0421294df0 Enable RTC mode in Google HW AV1 encoder
Bug: b/274179852
Change-Id: Id987fa8b73468532304f856bc97d40238f93b266
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/302180
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39921}
2023-04-21 16:38:06 +00:00
Sergey Silkin
88429d572b Account for stride when calculating buffer size
https://webrtc-review.googlesource.com/c/src/+/240680 made encoder aware of stride and slice height of input buffer but calculation of buffer size passed to queueInputBuffer() was not updated.

Bug: webrtc:13427
Change-Id: Iba8687f56eda148ac67b331d35c45317a4ec5c59
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301321
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39895}
2023-04-19 10:10:32 +00:00
Sergey Silkin
6cf12bbe32 Fetch encoded QP before releasing output buffer
Before this change we first released output frame buffer in the code path which prepends config buffer to a keyframe and then called getOutputFormat(index). getOutputFormat(index) throws an exception if index points to a released buffer. This change rearranges calls such that getOutputFormat(index) always executed before releaseOutputBuffer(index).

Bug: webrtc:15015
Change-Id: Ia64f5d8e7483aeeb316d1a71c0cb79233f4bbee9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301364
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39874}
2023-04-17 12:31:32 +00:00
Sergey Silkin
89facfc421 Fix potential null pointer access in HardwareVideoEncoder
There was no check for null in the code that prepends config buffer to key frame buffer. It is not a requirement for codec to deliver config buffer. Some codecs probably do not do that.

Bug: none
Change-Id: Id9c57efc5d1de5f569fa773313da4db3cd8b074c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299900
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39807}
2023-04-11 13:50:41 +00:00
Sergey Silkin
910b225d82 Fetch encoded QP from MediaCodec encoders
It is a part of "encoding statistics" feature [1] available in Android SDK 33. Local testing revealed that for HW VP8/9 encoders we get QP in range [0,64] which is not what WebRTC quality scaler expects. Exclude VP8/9 encoders for now.

[1] https://developer.android.com/reference/android/media/MediaFormat#VIDEO_ENCODING_STATISTICS_LEVEL_1

Bug: webrtc:15015
Change-Id: I8af2fd96afb34e18cb3e2cc3562b10149324c16e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298306
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39722}
2023-03-30 10:19:22 +00:00
Sergey Silkin
2d1fa4713f Use MediaCodec API keys and values directly
Replace locally-defined keys and values with constants from MediaCodec API (MediaFormat.KEY_..., etc). Value of a constant field is resolved at compile time according to 13.1.1 [1]. I.e., it is safe to reference a constant field not available in older API (MediaCodec API ignores unrecognized MediaFormat.KEY_ values).

[1] https://docs.oracle.com/javase/specs/jls/se20/html/jls-13.html#jls-13.1

Bug: none
Change-Id: I3c63cfd67cc22db1b957f908508b434d36d88806
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298940
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Linus Nilsson <lnilsson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39668}
2023-03-24 13:59:54 +00:00
Sergey Silkin
0af2bc639a Add H265 to VideoCodecMimeType
This enables testing HW H265 codecs on devices where the support is available.

Bug: b/261160916, webrtc:14852
Change-Id: I32d102fcf483ea4ba46d6f5161342dbb584e7cc9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298040
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39591}
2023-03-17 15:28:11 +00:00
Sergey Silkin
a02f90691e Remove resolution alignment requirement (part 2)
https://webrtc-review.googlesource.com/c/src/+/296340 removed hard resolution alignment requirement from HardwareVideoEncoder.initEncode(). This CL removes the hard resolution alignment requirement from HardwareVideoEncoder.resetCodec().

Bug: webrtc:13089
Change-Id: Ia9fcd4d6a7ea16509ec3f12c3c78a76d1eb6c6f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/296520
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39498}
2023-03-07 17:18:55 +00:00
Sergey Silkin
5c978cb262 Remove resolution alignment requirement
This partially reverts https://webrtc-review.googlesource.com/c/src/+/229460. HW encoder wrapper still requires 16x16 alignment but InitEncode() doesn't fail if input resolution doesn't satisfy this requirement.

If encoder can't handle 16x16 then it should return error from MediaCodec.configure(). Many HW encoder can handle resolutions not multiple of 16. Having strict requirement for resolution alignment in InitEncode() blocks usage and testing of these encoders.

This change doesn't affect WebRTC in Chrome Android since RTC encoder wrapper requires 16x16 alignment: https://source.chromium.org/chromium/chromium/src/+/main:media/gpu/android/android_video_encode_accelerator.cc;drc=4abbb981443d7403566ef8aff05fdaca1e837da3;l=494

Bug: webrtc:13089
Change-Id: I0c39908bbcd7d0740a9ee8afa022ba443ffdb4de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/296340
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39487}
2023-03-06 16:51:03 +00:00
Sergey Silkin
831664294c Allow getScalingSettings to be called from any thread
Scaling settings is a static property of the encoder wrapper. It has no any dependencies on underlaying HW codec and can be fetched from any thread.

getScalingSettings is called from VideoEncoderWrapper ctor [1]. Presence of checkIsOnValidThread() in getScalingSettings caused capturing of thread [2]. That required all following codec calls to be done from the thread that created the codec.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/sdk/android/src/jni/video_encoder_wrapper.cc;drc=c05a1be5b49f5c03b6955b05bcbf47609e1b0381;l=41

[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/rtc_base/java/src/org/webrtc/ThreadUtils.java;l=30

Bug: b/261160916, webrtc:14852
Change-Id: I7bb18bc8e3b371d83ccd44d4a5a096f716c0a0e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291807
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39303}
2023-02-13 15:14:42 +00:00
Ranveer Aggarwal
a0e090ff5a Added an API to disable VolumeLogger on Android.
Change-Id: Ib16c9e02fe18e1d6628f2192a21c53515753bcde
Bug: webrtc:14321
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270621
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37693}
2022-08-05 06:59:37 +00:00
Björn Terelius
7534ebd2bf Revert "Reland "Reland "Delete old Android ADM."""
This reverts commit db30009304ab97a5fde02977ed1239aa249e2656.

Reason for revert: ... and it's out again :(
 
Original change's description:
> Reland "Reland "Delete old Android ADM.""
>
> This reverts commit 38a28603fd7b2eec46a362105b225dd6f08b4137.
>
> Reason for revert: Attempt to reland, now that WebRTC dependency cycle has been broken.
>
> Original change's description:
> > Revert "Reland "Delete old Android ADM.""
> >
> > This reverts commit 6e4d7e606c4327eaa9298193e22794fcb9b30218.
> >
> > Reason for revert: Still breaks downstream build (though in a different way this time)
> >
> > Original change's description:
> > > Reland "Delete old Android ADM."
> > >
> > > This is a reland of commit 4ec3e9c98873520b3171d40ab0426b2f05edbbd2
> > >
> > > Original change's description:
> > > > Delete old Android ADM.
> > > >
> > > > The schedule move Android ADM code to sdk directory have been around
> > > > for several years, but the old code still not delete.
> > > >
> > > > Bug: webrtc:7452
> > > > Change-Id: I0f75c680f71f0b2ce614de6cbd9f124c2a59d453
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264620
> > > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > > > Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> > > > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/main@{#37174}
> > >
> > > Bug: webrtc:7452
> > > Change-Id: Icabad23e72c8258a854b7809a93811161517266c
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265872
> > > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > > Commit-Queue: Björn Terelius <terelius@webrtc.org>
> > > Cr-Commit-Position: refs/heads/main@{#37236}
> >
> > Bug: webrtc:7452
> > Change-Id: Ide8fbd55fadd7aed9989053afff7c63c04f1320f
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266023
> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> > Commit-Queue: Björn Terelius <terelius@webrtc.org>
> > Owners-Override: Björn Terelius <terelius@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37242}
>
> Bug: webrtc:7452
> Change-Id: I6946d0fc28cf4c08387e451e6a07765f7410ce7c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266980
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37356}

Bug: webrtc:7452
Change-Id: I1ef4004e89c8bea322bda0dc697a7ba45abeffcc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267067
Owners-Override: Björn Terelius <terelius@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37359}
2022-06-28 14:37:43 +00:00
Björn Terelius
db30009304 Reland "Reland "Delete old Android ADM.""
This reverts commit 38a28603fd7b2eec46a362105b225dd6f08b4137.

Reason for revert: Attempt to reland, now that WebRTC dependency cycle has been broken.

Original change's description:
> Revert "Reland "Delete old Android ADM.""
>
> This reverts commit 6e4d7e606c4327eaa9298193e22794fcb9b30218.
>
> Reason for revert: Still breaks downstream build (though in a different way this time)
>
> Original change's description:
> > Reland "Delete old Android ADM."
> >
> > This is a reland of commit 4ec3e9c98873520b3171d40ab0426b2f05edbbd2
> >
> > Original change's description:
> > > Delete old Android ADM.
> > >
> > > The schedule move Android ADM code to sdk directory have been around
> > > for several years, but the old code still not delete.
> > >
> > > Bug: webrtc:7452
> > > Change-Id: I0f75c680f71f0b2ce614de6cbd9f124c2a59d453
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264620
> > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > > Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> > > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > > Cr-Commit-Position: refs/heads/main@{#37174}
> >
> > Bug: webrtc:7452
> > Change-Id: Icabad23e72c8258a854b7809a93811161517266c
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265872
> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > Commit-Queue: Björn Terelius <terelius@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37236}
>
> Bug: webrtc:7452
> Change-Id: Ide8fbd55fadd7aed9989053afff7c63c04f1320f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266023
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Owners-Override: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37242}

Bug: webrtc:7452
Change-Id: I6946d0fc28cf4c08387e451e6a07765f7410ce7c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266980
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37356}
2022-06-28 12:58:23 +00:00
Björn Terelius
38a28603fd Revert "Reland "Delete old Android ADM.""
This reverts commit 6e4d7e606c4327eaa9298193e22794fcb9b30218.

Reason for revert: Still breaks downstream build (though in a different way this time)

Original change's description:
> Reland "Delete old Android ADM."
>
> This is a reland of commit 4ec3e9c98873520b3171d40ab0426b2f05edbbd2
>
> Original change's description:
> > Delete old Android ADM.
> >
> > The schedule move Android ADM code to sdk directory have been around
> > for several years, but the old code still not delete.
> >
> > Bug: webrtc:7452
> > Change-Id: I0f75c680f71f0b2ce614de6cbd9f124c2a59d453
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264620
> > Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> > Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37174}
>
> Bug: webrtc:7452
> Change-Id: Icabad23e72c8258a854b7809a93811161517266c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265872
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37236}

Bug: webrtc:7452
Change-Id: Ide8fbd55fadd7aed9989053afff7c63c04f1320f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266023
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Owners-Override: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37242}
2022-06-16 16:07:49 +00:00
Sergey Silkin
7517fb639b Switch to getInput/OutputBuffer
Use getInput/OutputBuffer(index) instead of getInput/OutputBuffers() in
Android MediaCodec video encoder and decoder wrappers.

getInput/OutputBuffers(index) are available from SDK 21 which is the minimum required version in WebRTC: https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/sdk/android/AndroidManifest.xml

Bug: b/234879577
Change-Id: I79fd234b104420ae3544229e8c62d7db2344cd01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265804
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37241}
2022-06-16 15:55:09 +00:00
Yaowen Guo
6e4d7e606c Reland "Delete old Android ADM."
This is a reland of commit 4ec3e9c98873520b3171d40ab0426b2f05edbbd2

Original change's description:
> Delete old Android ADM.
>
> The schedule move Android ADM code to sdk directory have been around
> for several years, but the old code still not delete.
>
> Bug: webrtc:7452
> Change-Id: I0f75c680f71f0b2ce614de6cbd9f124c2a59d453
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264620
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37174}

Bug: webrtc:7452
Change-Id: Icabad23e72c8258a854b7809a93811161517266c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265872
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37236}
2022-06-16 13:22:29 +00:00
Erik Språng
7dbfad613c Revert "Delete old Android ADM."
This reverts commit 4ec3e9c98873520b3171d40ab0426b2f05edbbd2.

Reason for revert: Causes downstream build error.

Original change's description:
> Delete old Android ADM.
>
> The schedule move Android ADM code to sdk directory have been around
> for several years, but the old code still not delete.
>
> Bug: webrtc:7452
> Change-Id: I0f75c680f71f0b2ce614de6cbd9f124c2a59d453
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264620
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37174}

Bug: webrtc:7452
Change-Id: If094e0a3ef5a3d340cbd5dfa0a8a88c3e97ba0bf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265393
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37180}
2022-06-10 15:10:04 +00:00
Yaowen Guo
4ec3e9c988 Delete old Android ADM.
The schedule move Android ADM code to sdk directory have been around
for several years, but the old code still not delete.

Bug: webrtc:7452
Change-Id: I0f75c680f71f0b2ce614de6cbd9f124c2a59d453
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264620
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37174}
2022-06-10 08:55:04 +00:00
Saúl Ibarra Corretgé
a14e6ed09a Catch SecurityException when opening camera
A managed device might have camera access restricted, which results in
the following crash:

Caused by android.os.ServiceSpecificException: validateClientPermissionsLocked:1044: Callers from device user 0 are not currently allowed to connect to camera "1"
       at android.os.Parcel.createException(Parcel.java:2085)
       at android.os.Parcel.readException(Parcel.java:2039)
       at android.os.Parcel.readException(Parcel.java:1987)
       at android.hardware.ICameraService$Stub$Proxy.connectDevice(ICameraService.java:624)
       at android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:389)
       at android.hardware.camera2.CameraManager.openCameraForUid(CameraManager.java:588)
       at android.hardware.camera2.CameraManager.openCamera(CameraManager.java:516)
       at org.webrtc.Camera2Session.openCamera(Camera2Session.java:359)
       at org.webrtc.Camera2Session.start(Camera2Session.java:322)
       at org.webrtc.Camera2Session.<init>(Camera2Session.java:298)
       at org.webrtc.Camera2Session.create(Camera2Session.java:276)
       at org.webrtc.Camera2Capturer.createCameraSession(Camera2Capturer.java:35)
       at org.webrtc.CameraCapturer$5.run(CameraCapturer.java:272)
       at android.os.Handler.handleCallback(Handler.java:883)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loop(Looper.java:214)
       at android.os.HandlerThread.run(HandlerThread.java:67)

Change-Id: I5e7b8d238e9381d1f8a4fe9858e8eb480d578fa0
Bug: webrtc:13950
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258363
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36513}
2022-04-11 07:26:08 +00:00
Saúl Ibarra Corretgé
775ce76b66 Don't swallow UnsatisfiedLinkError
When loading the library fails, the user will be faced with this error:

java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals()

With no context, however.

Bug: webrtc:13619
Change-Id: I88565f085773ad1e8c2f5742d7fdba96fb6043d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253960
Reviewed-by: Christoffer Jansson <jansson@google.com>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36150}
2022-03-08 14:38:01 +00:00
Xavier Lepaul
0f50cc2849 Remove checks for SDK <= 21
WebRTC’s minSdk is 21, so all those checks are dead code.

Change-Id: I26497fd92259b66d9e5ac6afbb393adf4d904c77
Bug: webrtc:13780
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253124
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Linus Nilsson <lnilsson@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36140}
2022-03-07 09:56:42 +00:00
Byoungchan Lee
0b06552ab3 Android: Respect input buffer layout of MediaFormat
On Android, MediaCodec can request a specific layout of the input buffer.
One can use the stride and slice height to calculate the layout from
the Encoder's MediaFormat. The current code assumes
a specific layout, which is a problematic in Android 12.
Fix this by honoring the stride and slice-height.

Bug: webrtc:13427
Change-Id: I2d3e429309e3add3ae668e0390460b51e6a49eb9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/240680
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#36033}
2022-02-21 09:52:54 +00:00
Sergey Silkin
44fd6e35d3 Return name of underlaying HW codec
Bug: none
Change-Id: I2c6943b91a6d58b884270a029bcf210e4d5c7a91
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251782
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36015}
2022-02-16 12:21:53 +00:00
Olov Brändström
092d776b7b Make WebRtcAudioRecord save timestamps
Add timestamps to audio_record_jni DataIsRecorded() function, and make
WebRtcAudioRecord find and send the time stamp to that function.

This CL is an continuation of
https://webrtc-review.googlesource.com/c/src/+/249085

Bug: webrtc:13609
Change-Id: I63ab89f1215893cbe1d11d9d8948f5639fc5cdfe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249951
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Minyue Li <minyue@google.com>
Commit-Queue: Olov Brändström <brandstrom@google.com>
Cr-Commit-Position: refs/heads/main@{#35933}
2022-02-07 13:30:54 +00:00
Fabian Bergmark
c276aee4ed Throw EGL errors to GLExceptions.
Bug: webrtc:13359
Change-Id: I1528fcd4cd0a5fc243baccd61fc4032cd0db4004
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/237141
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35313}
2021-11-04 15:08:58 +00:00
Jiwon Jung
5a79d28eba Require 16x16 alignment when using HardwareVideoEncoder for encoding.
It seems the Android CTS tests only verify that 16x16 aligned resolutions
are supported.

This change checks the validity of input frame's size when initialing
or encoding processes are about to start using H/W MediaCodec.

This change has additional APIs to retrieve
|requested_resolution_alignment| and |apply_alignment_to_all_simulcast_layers|
from JAVA VideoEncoder class and its inherited classes. HardwareVideoEncoder
using MediaCodec has values of 16 and true for above variables.

Bug: webrtc:13089
Change-Id: I0c4ebf94eb36da29c2e384a3edf85b82e779b7f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229460
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35169}
2021-10-08 13:15:12 +00:00
Sergey Silkin
6b19d8273b Replace AV1X with AV1
* Replace "AV1X" with "AV1";
* Keep mapping of "AV1X" payload name to kVideoCodecAv1 to not break
support of injectable "AV1X".

Bug: webrtc:13166
Change-Id: I9a50481209209f3857bbf28f4ed529ee6972377e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231560
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34987}
2021-09-14 08:29:02 +00:00
Saúl Ibarra Corretgé
260400d37f Fix NPE when setting the camera2 stabilization mode
Fatal Exception: java.lang.NullPointerException: Attempt to get length of null array
       at org.webrtc.Camera2Session$CaptureSessionCallback.chooseStabilizationMode(Camera2Session.java:234)
       at org.webrtc.Camera2Session$CaptureSessionCallback.onConfigured(Camera2Session.java:172)
       at android.hardware.camera2.impl.CallbackProxies$SessionStateCallbackProxy.lambda$onConfigured$0(CallbackProxies.java:53)
       at android.hardware.camera2.impl.-$$Lambda$CallbackProxies$SessionStateCallbackProxy$soW0qC12Osypoky6AfL3P2-TeDw.run(-.java:4)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:193)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Bug: webrtc:13032
Change-Id: Ifb6ef920b700ca03d37c64803c0b34230785846f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227292
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34874}
2021-08-30 12:25:15 +00:00
Saúl Ibarra Corretgé
424b420a22 Fix NPE when accessing Android camera focus modes
Looks like getSupportedFocusModes() may return null, despite the documentation stating otherwise.

Bug: webrtc:13032
Change-Id: I0119b8a97be9ef4340c3e93f16e2dcaa899f2f3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227288
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34873}
2021-08-30 12:21:35 +00:00
Saúl Ibarra Corretgé
cd0a4f5ff5 Handle camera2 session creation errors
openCamera may throw IllegalArgumentException:
    https://developer.android.com/reference/android/hardware/camera2/CameraManager#openCamera(java.lang.String,%20android.hardware.camera2.CameraDevice.StateCallback,%20android.os.Handler)

Bug: webrtc:13032
Change-Id: I9d094691ca38f9baf312168cd67c323fd4ed5d37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227293
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34871}
2021-08-30 10:52:55 +00:00
Saúl Ibarra Corretgé
27edde3182 Handle camera1 session creation errors more gracefully
Specifically, defer getting the camera index so the error can be
reported instead of crashing:

Fatal Exception: java.lang.IllegalArgumentException: No such camera: Camera 1, Facing front, Orientation 270
       at org.webrtc.Camera1Enumerator.getCameraIndex(Camera1Enumerator.java:170)
       at org.webrtc.Camera1Capturer.createCameraSession(Camera1Capturer.java:31)
       at org.webrtc.CameraCapturer$5.run(CameraCapturer.java:272)
       at android.os.Handler.handleCallback(Handler.java:790)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:214)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Bug: webrtc:13032
Change-Id: Ida6bc65046770c11c2b3ee832906e8454cec10df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227290
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34855}
2021-08-25 17:04:40 +00:00
Saúl Ibarra Corretgé
68952fed31 Handle camera2 session start error
getCameraCharacteristics() may throw IllegalArgumentException:

Fatal Exception: java.lang.IllegalArgumentException: supportsCameraApi:2569: Unknown camera ID 1
       at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:1119)
       at android.hardware.camera2.CameraManager.getCameraCharacteristics(CameraManager.java:531)
       at org.webrtc.Camera2Session.start(Camera2Session.java:304)
       at org.webrtc.Camera2Session.<init>(Camera2Session.java:296)
       at org.webrtc.Camera2Session.create(Camera2Session.java:274)
       at org.webrtc.Camera2Capturer.createCameraSession(Camera2Capturer.java:35)
       at org.webrtc.CameraCapturer$5.run(CameraCapturer.java:272)
       at android.os.Handler.handleCallback(Handler.java:883)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loop(Looper.java:237)
       at android.os.HandlerThread.run(HandlerThread.java:67)

Bug: webrtc:13032
Change-Id: I30b6d6da40bc90a94c0c3c79f9dff523182d3da4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227289
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34854}
2021-08-25 17:01:51 +00:00
Saúl Ibarra Corretgé
0f549f908c Catch RuntimeException on Camera.setDisplayOrientation
Bug: webrtc:13032
Change-Id: I3736e61b8f49ae058851d7f5d60858454e5d5b09
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227287
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34853}
2021-08-25 15:30:51 +00:00
Saúl Ibarra Corretgé
c5cb7f1fad Fix NPE if no compatible capture format was found
Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'int org.webrtc.CameraEnumerationAndroid$CaptureFormat.width' on a null object reference
       at org.webrtc.Camera2Session$CameraStateCallback.onOpened(Camera2Session.java:122)
       at android.hardware.camera2.impl.CameraDeviceImpl$1.run(CameraDeviceImpl.java:151)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:246)
       at android.os.HandlerThread.run(HandlerThread.java:67)


Fix NPE when setting the camera2 stabilization mode

Fatal Exception: java.lang.NullPointerException: Attempt to get length of null array
       at org.webrtc.Camera2Session$CaptureSessionCallback.chooseStabilizationMode(Camera2Session.java:234)
       at org.webrtc.Camera2Session$CaptureSessionCallback.onConfigured(Camera2Session.java:172)
       at android.hardware.camera2.impl.CallbackProxies$SessionStateCallbackProxy.lambda$onConfigured$0(CallbackProxies.java:53)
       at android.hardware.camera2.impl.-$$Lambda$CallbackProxies$SessionStateCallbackProxy$soW0qC12Osypoky6AfL3P2-TeDw.run(-.java:4)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:193)
       at android.os.HandlerThread.run(HandlerThread.java:65)

Bug: webrtc:13032
Change-Id: I6edd9f0061c445f90ab0881d78183077f89e391f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227294
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34851}
2021-08-25 13:35:11 +00:00
Byoungchan Lee
02334e07c5 Replace the android support annotation library with androidx's one.
This change does not affect downstream dependencies as androidx.annotation
is fully compatible with android.support.annotation.

Bug: webrtc:11962
Change-Id: I714b473df8d0fee8000ddf3a9beca7c5613db5ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226881
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34839}
2021-08-24 16:02:17 +00:00
Sergey Silkin
1db921e6f3 Non-integer frame rate in Android HW encoder
Bug: webrtc:10812
Change-Id: I4443dcfea851114bd5fbb10f11ca8a51cda12da8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229025
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34813}
2021-08-19 21:54:22 +00:00
Sergey Silkin
c68796e260 Calculate frame timestamps based on target frame rate
Before this change HardwareVideoEncoder used capture time as frame
timestamp passed to HW encoder. That led to buffer overshoots with
HW encoders which infer frame rate from timestamps when frames were
dropped before encoding (i.e., frame rate decreases according to frame
timestamps) or when FramerateBitrateAdjuster was used.

Fixed this by using synthetic monotonically increasing timestamps
calculated based on target frame rate provided by bitrate adjuster.

Bug: webrtc:12982
Change-Id: I2454cd4e574bbea1cb9855ced4d998104845415c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228902
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34810}
2021-08-19 19:10:32 +00:00
Artem Titov
d7ac581045 Use backticks not vertical bars to denote variables in comments for /sdk
Bug: webrtc:12338
Change-Id: Ifaad29ccb63b0f2f3aeefb77dae061ebc7f87e6c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227024
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34561}
2021-07-27 14:39:06 +00:00
Sergey Silkin
1b63db956f Move AV1X-AV1 mapping to VideoCodecTypeMime
AV1X->AV1 mapping added to SdpVideoFormatToVideoCodecInfo in
https://webrtc-review.googlesource.com/c/src/+/215586 results in
discrepancy of codec name between SDP and VideoCodecInfo. That violates
VideoCodecInfo design and breaks downstream projects.

This CL moves the mapping from VideoCodecInfoToSdpVideoFormat and
SdpVideoFormatToVideoCodecInfo to VideoCodecTypeMime.

Bug: b/181690054
Change-Id: I2a76524c29b082241f2ec72a60a209ce9b0c7c5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221205
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34230}
2021-06-04 15:38:48 +00:00
Yura Yaroshevich
3fb51d2783 Reland "Expose AV1 encoder&decoder from Android SDK."
This is a reland of fedd5029c584e9dc1352434b62a30cd8af2889d8

Original change's description:
> Expose AV1 encoder&decoder from Android SDK.
>
> Bug: None
> Change-Id: Ie32be36da498d4bed2a3cf51aa6abc8838e42da1
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212024
> Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
> Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#33743}

Bug: None
Change-Id: Ibfc7b860bd2314cf997444c7ab0d94d2b186e576
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215586
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
Cr-Commit-Position: refs/heads/master@{#33882}
2021-04-30 09:12:11 +00:00
Björn Terelius
dd36198ae8 Revert "Expose AV1 encoder&decoder from Android SDK."
This reverts commit fedd5029c584e9dc1352434b62a30cd8af2889d8.

Reason for revert: Speculative revert due to crashes in downstream tests on Android.

Original change's description:
> Expose AV1 encoder&decoder from Android SDK.
>
> Bug: None
> Change-Id: Ie32be36da498d4bed2a3cf51aa6abc8838e42da1
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212024
> Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
> Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#33743}

TBR=alessiob@webrtc.org,mflodman@webrtc.org,yura.yaroshevich@gmail.com,xalep@webrtc.org

Change-Id: I76171087d1998b9d7573c2b86b1cf9ed65154bbf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215324
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33753}
2021-04-16 07:40:23 +00:00
Yura Yaroshevich
fedd5029c5 Expose AV1 encoder&decoder from Android SDK.
Bug: None
Change-Id: Ie32be36da498d4bed2a3cf51aa6abc8838e42da1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212024
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
Cr-Commit-Position: refs/heads/master@{#33743}
2021-04-15 15:12:21 +00:00
Raman Budny
2ee9415a8c AndroidVideoDecoder: Ignore format updates with zero dimensions
Sometimes c2.qti.vp8.decoder reports format updates with zero frame
width / height right after initialization, that leads to the
precondition check failure made by SurfaceTextureHelper.setTextureSize.
This patch makes AndroidVideoDecoder.reformat to ignore such format
updates so as to continue to use this HW decoder.
It seems to be safe because this decoder singals one more format update
with valid dimensions soon and continue to operate in normal mode.

Bug: webrtc:12492
Change-Id: I5155166637bd2d4247d31e608d714e687e0ad1df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208222
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33332}
2021-02-24 11:37:32 +00:00
Sami Kalliomäki
bdf78cb5bb Bug fixes to EglBase10Impl.getNativeEglContext.
- Use matching config to avoid EGL_BAD_MATCH.
 - Use the same display in both eglMakeCurrent calls to avoid
   EGL_BAD_ACCESS on subsequent calls because the context was not
   successfully unbound.

Bug: webrtc:12471
Change-Id: Ifdf4bd94cdfd14b683959b8703d75a2a46ec1226
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207861
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33279}
2021-02-16 11:41:24 +00:00
Sami Kalliomäki
a33f41bf58 Support getNativeEglContext in EglBase10Impl.
Bug: webrtc:12471
Change-Id: Iac969b4985b4db02c18f07c4b5ec2a787e312560
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207434
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33271}
2021-02-15 16:52:40 +00:00
Sami Kalliomäki
6e509f9167 Handle case createShader throws an exception.
Ensures the state of the class remains correct even if an unhandled
exception is thrown from this method.

Bug: b/176214704
Change-Id: I94504bb8aa4bd2dba45d116d5fa13da070a3b60f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201621
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32963}
2021-01-13 15:50:12 +00:00
philipel
360da05ed1 Remove webrtc::VideoDecoder::PrefersLateDecoding.
This is just general cleanup.

The assumed behavior is late decoding, and this function is not used to make any decision (except in the deprecated jitter buffer).

Bug: webrtc:12271
Change-Id: Ifb48186d55903f068f25e44c5f73e7a724f6f456
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/200804
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32940}
2021-01-11 18:02:25 +00:00
Ivo Creusen
c25a3a3a1e Use low latency mode on Android O and later.
This CL makes it possible to use a low-latency mode on Android O and later. This should help to reduce the audio latency. The feature is disabled by default and needs to be enabled when creating the audio device module.

Bug: webrtc:12284
Change-Id: Idf41146aa0bc1206e9a2e28e4101d85c3e4eaefc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196741
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32854}
2020-12-17 10:29:21 +00:00
Gaurav Vaish
69662a99d3 Add API Level guard for allowedCapturePolicy
AudioAttributes::getAllowedCapturePolicy was added in API Level 29.
Update WebRtcAudioTrack to add API Level check before using the API.

Bug: webrtc:12250
Change-Id: Ica6604eb1d7fa736a0e64729a022eefcfb7b3020
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195941
Commit-Queue: Gaurav Vaish <gvaish@chromium.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32735}
2020-12-01 22:59:25 +00:00