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}
This commit is contained in:
parent
3ca732d12d
commit
5c978cb262
@ -210,11 +210,6 @@ class HardwareVideoEncoder implements VideoEncoder {
|
||||
this.callback = callback;
|
||||
automaticResizeOn = settings.automaticResizeOn;
|
||||
|
||||
if (settings.width % REQUIRED_RESOLUTION_ALIGNMENT != 0
|
||||
|| settings.height % REQUIRED_RESOLUTION_ALIGNMENT != 0) {
|
||||
Logging.e(TAG, "MediaCodec is only tested with resolutions that are 16x16 aligned.");
|
||||
return VideoCodecStatus.ERR_SIZE;
|
||||
}
|
||||
this.width = settings.width;
|
||||
this.height = settings.height;
|
||||
useSurfaceMode = canUseSurface();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user