summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Lin <garylse@google.com>2022-07-21 19:35:25 +0800
committerGary Lin <garylse@google.com>2022-08-02 00:41:42 +0000
commita8888f75bba282a1ff9587ee32e0a7379f7fdda1 (patch)
tree1e3f61e0e8bd85532e5733f1a9ae7163fac995a6
parent23fd5bd08ad499b14cbb945c25dd9f2671ca36ab (diff)
downloadcamera-a8888f75bba282a1ff9587ee32e0a7379f7fdda1.tar.gz
Inherit RT scheduling policy from camera device session binder caller
The change inherits RT scheduling policy from binder caller, which reduces scheduling time for request injection. Bug: 240390679 Test: camera test checklist Test: GCA framedrop test Change-Id: If4cad4e790e05ab34f2ef353ad1bcd8327fbe324
-rw-r--r--common/hal/aidl_service/aidl_camera_device_session.cc7
-rw-r--r--common/hal/aidl_service/aidl_camera_device_session.h3
2 files changed, 10 insertions, 0 deletions
diff --git a/common/hal/aidl_service/aidl_camera_device_session.cc b/common/hal/aidl_service/aidl_camera_device_session.cc
index 9af6de1..49d8282 100644
--- a/common/hal/aidl_service/aidl_camera_device_session.cc
+++ b/common/hal/aidl_service/aidl_camera_device_session.cc
@@ -19,6 +19,7 @@
//#define LOG_NDEBUG 0
#include "aidl_camera_device_session.h"
+#include <android/binder_ibinder_platform.h>
#include <cutils/properties.h>
#include <cutils/trace.h>
#include <log/log.h>
@@ -798,6 +799,12 @@ ScopedAStatus AidlCameraDeviceSession::isReconfigurationRequired(
return ScopedAStatus::ok();
}
+::ndk::SpAIBinder AidlCameraDeviceSession::createBinder() {
+ auto binder = BnCameraDeviceSession::createBinder();
+ AIBinder_setInheritRt(binder.get(), true);
+ return binder;
+}
+
} // namespace implementation
} // namespace device
} // namespace camera
diff --git a/common/hal/aidl_service/aidl_camera_device_session.h b/common/hal/aidl_service/aidl_camera_device_session.h
index e14604d..3423d8f 100644
--- a/common/hal/aidl_service/aidl_camera_device_session.h
+++ b/common/hal/aidl_service/aidl_camera_device_session.h
@@ -113,6 +113,9 @@ class AidlCameraDeviceSession : public BnCameraDeviceSession {
AidlCameraDeviceSession() = default;
+ protected:
+ ::ndk::SpAIBinder createBinder() override;
+
private:
static constexpr uint32_t kRequestMetadataQueueSizeBytes = 1 << 20; // 1MB
static constexpr uint32_t kResultMetadataQueueSizeBytes = 1 << 20; // 1MB