From 831664294c53efac69d23c714cae1250ad066a8e Mon Sep 17 00:00:00 2001 From: Sergey Silkin Date: Fri, 3 Feb 2023 16:43:34 +0100 Subject: [PATCH] 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 Commit-Queue: Sergey Silkin Cr-Commit-Position: refs/heads/main@{#39303} --- sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java | 1 - 1 file changed, 1 deletion(-) diff --git a/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java b/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java index 42a3ccfbfd..32656c5464 100644 --- a/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java +++ b/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java @@ -488,7 +488,6 @@ class HardwareVideoEncoder implements VideoEncoder { @Override public ScalingSettings getScalingSettings() { - encodeThreadChecker.checkIsOnValidThread(); if (automaticResizeOn) { if (codecType == VideoCodecMimeType.VP8) { final int kLowVp8QpThreshold = 29;