webrtc/sdk/android
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
..
api/org/webrtc Require 16x16 alignment when using HardwareVideoEncoder for encoding. 2021-10-08 13:15:12 +00:00
instrumentationtests Require 16x16 alignment when using HardwareVideoEncoder for encoding. 2021-10-08 13:15:12 +00:00
native_api Add rtc:SocketFactory as member of jni OwnedFactoryAndThreads 2021-09-21 11:15:30 +00:00
native_unittests Require 16x16 alignment when using HardwareVideoEncoder for encoding. 2021-10-08 13:15:12 +00:00
src Require 16x16 alignment when using HardwareVideoEncoder for encoding. 2021-10-08 13:15:12 +00:00
tests Replace the android support annotation library with androidx's one. 2021-08-24 16:02:17 +00:00
AndroidManifest.xml Roll chromium_revision 4d95e6c77b..71a0e1904e (776481:782339) 2020-06-26 05:33:14 +00:00
BUILD.gn Add rtc:SocketFactory as member of jni OwnedFactoryAndThreads 2021-09-21 11:15:30 +00:00
OWNERS Fix OWNERS according to recent changes to path expressions. 2021-07-30 13:36:20 +00:00
PRESUBMIT.py Reformat python files checked by pylint (part 1/2). 2020-10-30 10:13:11 +00:00
README

This directory holds a Java implementation of the webrtc::PeerConnection API, as
well as the JNI glue C++ code that lets the Java implementation reuse the C++
implementation of the same API.

To build the Java API and related tests, make sure you have a WebRTC checkout
with Android specific parts. This can be used for linux development as well by
configuring gn appropriately, as it is a superset of the webrtc checkout:
fetch --nohooks webrtc_android
gclient sync

You also must generate GN projects with:
--args='target_os="android" target_cpu="arm"'

More information on getting the code, compiling and running the AppRTCMobile
app can be found at:
https://webrtc.org/native-code/android/

To use the Java API, start by looking at the public interface of
org.webrtc.PeerConnection{,Factory} and the org.webrtc.PeerConnectionTest.

To understand the implementation of the API, see the native code in src/jni/pc/.