camera: mediatek: Use token to replace mojo channel manager instance
We want to hide the detail of the camera mojo channel manager and camera
hal also doesn't need it. Use a token to decouple it.
BUG=b:173033342
TEST=emerge cros-camera-hal-mtk
Check preview/take picture/recording on CCA on kukui.
Pass "*Camera3FrameTest/Camera3SingleFrameTest*" on kukui.
Change-Id: I0b3e600a25032d70633b6f3349664498e7c1b09d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2550968
Tested-by: Hsu Wei-Cheng <mojahsu@chromium.org>
Commit-Queue: Hsu Wei-Cheng <mojahsu@chromium.org>
Reviewed-by: Hsu Wei-Cheng <mojahsu@chromium.org>
Reviewed-by: MengHui Lin <menghui.lin@mediatek.com>
diff --git a/camera/hal/mediatek/mtkcam/include/mtkcam/utils/std/Mojo.h b/camera/hal/mediatek/mtkcam/include/mtkcam/utils/std/Mojo.h
index 90d1791..ed25a28 100644
--- a/camera/hal/mediatek/mtkcam/include/mtkcam/utils/std/Mojo.h
+++ b/camera/hal/mediatek/mtkcam/include/mtkcam/utils/std/Mojo.h
@@ -22,9 +22,10 @@
namespace NSCam {
namespace Utils {
-cros::CameraMojoChannelManager* VISIBILITY_PUBLIC getMojoManagerInstance();
+cros::CameraMojoChannelManagerToken* VISIBILITY_PUBLIC getMojoManagerToken();
-void VISIBILITY_PUBLIC setMojoManagerInstance(cros::CameraMojoChannelManager*);
+void VISIBILITY_PUBLIC
+setMojoManagerToken(cros::CameraMojoChannelManagerToken*);
} // namespace Utils
} // namespace NSCam
diff --git a/camera/hal/mediatek/mtkcam/ipc/client/Mediatek3AClient.cpp b/camera/hal/mediatek/mtkcam/ipc/client/Mediatek3AClient.cpp
index edd075e..a804fcf 100644
--- a/camera/hal/mediatek/mtkcam/ipc/client/Mediatek3AClient.cpp
+++ b/camera/hal/mediatek/mtkcam/ipc/client/Mediatek3AClient.cpp
@@ -53,7 +53,7 @@
mBridge = cros::CameraAlgorithmBridge::CreateInstance(
cros::CameraAlgorithmBackend::kVendorCpu,
- NSCam::Utils::getMojoManagerInstance());
+ NSCam::Utils::getMojoManagerToken());
CheckError(!mBridge, VOID_VALUE, "@%s, mBridge is nullptr", __FUNCTION__);
CheckError((mBridge->Initialize(this) != 0), VOID_VALUE,
@@ -90,7 +90,7 @@
mBridge = cros::CameraAlgorithmBridge::CreateInstance(
cros::CameraAlgorithmBackend::kVendorCpu,
- NSCam::Utils::getMojoManagerInstance());
+ NSCam::Utils::getMojoManagerToken());
CheckError(!mBridge, VOID_VALUE, "@%s, mBridge is nullptr", __FUNCTION__);
CheckError((mBridge->Initialize(this) != 0), VOID_VALUE,
"@%s, call mBridge->Initialize fail", __FUNCTION__);
diff --git a/camera/hal/mediatek/mtkcam/main/hal/module/module/entry.cpp b/camera/hal/mediatek/mtkcam/main/hal/module/module/entry.cpp
index e9fcd4c..9434d81 100644
--- a/camera/hal/mediatek/mtkcam/main/hal/module/module/entry.cpp
+++ b/camera/hal/mediatek/mtkcam/main/hal/module/module/entry.cpp
@@ -81,12 +81,12 @@
return 0;
}
-static void set_up(cros::CameraMojoChannelManager* mojo_manager) {
- NSCam::Utils::setMojoManagerInstance(mojo_manager);
+static void set_up(cros::CameraMojoChannelManagerToken* token) {
+ NSCam::Utils::setMojoManagerToken(token);
}
static void tear_down() {
- NSCam::Utils::setMojoManagerInstance(nullptr);
+ NSCam::Utils::setMojoManagerToken(nullptr);
}
static camera_module get_camera_module() {
diff --git a/camera/hal/mediatek/mtkcam/pipeline/hwnode/JpegNode.cpp b/camera/hal/mediatek/mtkcam/pipeline/hwnode/JpegNode.cpp
index 6b21463..6ff6c45 100644
--- a/camera/hal/mediatek/mtkcam/pipeline/hwnode/JpegNode.cpp
+++ b/camera/hal/mediatek/mtkcam/pipeline/hwnode/JpegNode.cpp
@@ -551,7 +551,7 @@
#endif
,
mJpegCompressor(cros::JpegCompressor::GetInstance(
- NSCam::Utils::getMojoManagerInstance())) {
+ NSCam::Utils::getMojoManagerToken())) {
pthread_rwlock_init(&mConfigRWLock, NULL);
mNodeName = "JpegNode"; // default name
MINT32 enable = ::property_get_int32("vendor.jpeg.rotation.enable", 1);
diff --git a/camera/hal/mediatek/mtkcam/utils/std/Mojo.cpp b/camera/hal/mediatek/mtkcam/utils/std/Mojo.cpp
index 38d02be..393f94d 100644
--- a/camera/hal/mediatek/mtkcam/utils/std/Mojo.cpp
+++ b/camera/hal/mediatek/mtkcam/utils/std/Mojo.cpp
@@ -17,7 +17,7 @@
/******************************************************************************
*
*****************************************************************************/
-#include <cros-camera/camera_mojo_channel_manager.h>
+#include <cros-camera/camera_mojo_channel_manager_token.h>
#include <mtkcam/utils/std/Mojo.h>
/******************************************************************************
*
@@ -25,20 +25,20 @@
namespace NSCam {
namespace Utils {
-static cros::CameraMojoChannelManager* gMojoManager = nullptr;
+static cros::CameraMojoChannelManagerToken* gMojoManagerToken = nullptr;
/******************************************************************************
*
******************************************************************************/
-cros::CameraMojoChannelManager* getMojoManagerInstance() {
- return gMojoManager;
+cros::CameraMojoChannelManagerToken* getMojoManagerToken() {
+ return gMojoManagerToken;
}
/******************************************************************************
*
******************************************************************************/
-void setMojoManagerInstance(cros::CameraMojoChannelManager* mojo_manager) {
- gMojoManager = mojo_manager;
+void setMojoManagerToken(cros::CameraMojoChannelManagerToken* token) {
+ gMojoManagerToken = token;
}
}; // namespace Utils