summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-05-10 15:45:18 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-05-10 15:45:18 +0000
commitf10a0c44ff9e28735d55e83cef21d961b0361ce6 (patch)
tree82021c0095cb8c75d88ea62c54b3a52a049b1cb0
parentaa17636cc34ef1630006d98878569eef93a2a340 (diff)
parent81a3f7b6b6f7472711b56dd84a721ad1ff8c20fb (diff)
downloadav-busytown-mac-infra-release.tar.gz
Snap for 11819167 from 81a3f7b6b6f7472711b56dd84a721ad1ff8c20fb to busytown-mac-infra-releasebusytown-mac-infra-release
Change-Id: Iea112697389aa68c524cc9577efc6e2eb9c1df8a
-rw-r--r--media/eco/Android.bp55
-rw-r--r--media/eco/ECOData.cpp4
-rw-r--r--media/eco/ECOService.cpp3
-rw-r--r--media/eco/ECOServiceStatsProvider.cpp5
-rw-r--r--media/eco/ECOSession.cpp21
-rw-r--r--media/eco/OWNERS3
-rw-r--r--media/eco/include/eco/ECOData.h2
-rw-r--r--media/eco/include/eco/ECOService.h15
-rw-r--r--media/eco/include/eco/ECOServiceInfoListener.h5
-rw-r--r--media/eco/include/eco/ECOServiceStatsProvider.h5
-rw-r--r--media/eco/include/eco/ECOSession.h5
-rw-r--r--media/eco/tests/Android.bp36
-rw-r--r--media/eco/tests/EcoServiceTest.cpp2
-rw-r--r--media/eco/tests/EcoSessionTest.cpp1
-rw-r--r--media/eco/tests/FakeECOServiceInfoListener.cpp2
-rw-r--r--media/eco/tests/FakeECOServiceInfoListener.h1
-rw-r--r--media/eco/tests/FakeECOServiceStatsProvider.cpp2
-rw-r--r--media/eco/tests/FakeECOServiceStatsProvider.h1
18 files changed, 103 insertions, 65 deletions
diff --git a/media/eco/Android.bp b/media/eco/Android.bp
index 18bc547..7fcb676 100644
--- a/media/eco/Android.bp
+++ b/media/eco/Android.bp
@@ -3,15 +3,57 @@ package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
-filegroup {
+aidl_interface {
name: "libmedia_ecoservice_aidl",
+ vendor_available: true,
+ owner: "google",
+ local_include_dir: "aidl",
srcs: [
"aidl/android/media/eco/IECOService.aidl",
"aidl/android/media/eco/IECOSession.aidl",
"aidl/android/media/eco/IECOServiceStatsProvider.aidl",
"aidl/android/media/eco/IECOServiceInfoListener.aidl",
],
- path: "aidl",
+ unstable: true,
+ backend: {
+ cpp: {
+ enabled: true,
+ additional_shared_libraries: [
+ "libmedia_ecoservice_ecodata",
+ "libbinder_ndk",
+ ],
+ },
+ ndk: {
+ enabled: false,
+ },
+ java: {
+ enabled: false,
+ },
+ rust: {
+ enabled: false,
+ },
+ },
+}
+
+cc_library {
+ name: "libmedia_ecoservice_ecodata",
+ vendor_available: true,
+
+ srcs: [
+ "ECOData.cpp",
+ ],
+
+ export_include_dirs: [
+ "include",
+ ],
+
+ shared_libs: [
+ "libbase",
+ "libbinder",
+ "libbinder_ndk",
+ "liblog",
+ "libutils",
+ ],
}
cc_library_shared {
@@ -19,8 +61,6 @@ cc_library_shared {
vendor_available: true,
srcs: [
- ":libmedia_ecoservice_aidl",
- "ECOData.cpp",
"ECODebug.cpp",
"ECOService.cpp",
"ECOSession.cpp",
@@ -48,9 +88,13 @@ cc_library_shared {
export_include_dirs: [
"include",
],
-
+ whole_static_libs: [
+ "libmedia_ecoservice_ecodata",
+ "libmedia_ecoservice_aidl-cpp",
+ ],
shared_libs: [
"libbinder",
+ "libbinder_ndk",
"libcutils",
"liblog",
"libutils",
@@ -58,6 +102,7 @@ cc_library_shared {
],
export_shared_lib_headers: [
"libbinder",
+ "libbinder_ndk",
],
sanitize: {
diff --git a/media/eco/ECOData.cpp b/media/eco/ECOData.cpp
index 189e609..3d7b533 100644
--- a/media/eco/ECOData.cpp
+++ b/media/eco/ECOData.cpp
@@ -416,6 +416,10 @@ std::string ECOData::debugString() const {
return s;
}
+std::string ECOData::toString() const {
+ return debugString();
+}
+
} // namespace eco
} // namespace media
} // namespace android
diff --git a/media/eco/ECOService.cpp b/media/eco/ECOService.cpp
index e95dee5..434485f 100644
--- a/media/eco/ECOService.cpp
+++ b/media/eco/ECOService.cpp
@@ -19,7 +19,6 @@
#include "eco/ECOService.h"
-#include <binder/BinderService.h>
#include <cutils/atomic.h>
#include <inttypes.h>
#include <pthread.h>
@@ -158,4 +157,4 @@ status_t ECOService::dump(int fd, const Vector<String16>& args) {
} // namespace eco
} // namespace media
-} // namespace android \ No newline at end of file
+} // namespace android
diff --git a/media/eco/ECOServiceStatsProvider.cpp b/media/eco/ECOServiceStatsProvider.cpp
index 8ca7ef0..90f1a23 100644
--- a/media/eco/ECOServiceStatsProvider.cpp
+++ b/media/eco/ECOServiceStatsProvider.cpp
@@ -18,6 +18,9 @@
#define LOG_TAG "ECOServiceStatsProvider"
#include <eco/ECOServiceStatsProvider.h>
+#include <binder/IServiceManager.h>
+#include <utils/Timers.h>
+
namespace android {
namespace media {
namespace eco {
@@ -32,7 +35,7 @@ ECOServiceStatsProvider::ECOServiceStatsProvider(
mECOSession(session),
mProviderName(name) {
ALOGD("%s, construct with w: %d, h: %d, isCameraRecording: %d, ProviderName:%s",
- __func__, width, height, isCameraRecording, name);
+ __func__, mWidth, mHeight, isCameraRecording, name);
}
Status ECOServiceStatsProvider::getType(int32_t* _aidl_return) {
diff --git a/media/eco/ECOSession.cpp b/media/eco/ECOSession.cpp
index 1a2e910..db85571 100644
--- a/media/eco/ECOSession.cpp
+++ b/media/eco/ECOSession.cpp
@@ -19,13 +19,14 @@
//#define DEBUG_ECO_SESSION
#include "eco/ECOSession.h"
-#include <binder/BinderService.h>
+#include <android/binder_ibinder.h>
#include <cutils/atomic.h>
#include <inttypes.h>
#include <pthread.h>
#include <stdio.h>
#include <sys/types.h>
#include <utils/Log.h>
+#include <utils/Timers.h>
#include <algorithm>
#include <climits>
@@ -381,8 +382,8 @@ Status ECOSession::addStatsProvider(
return STATUS_ERROR(ERROR_PERMISSION_DENIED, "Failed to get provider name");
}
- ECOLOGV("Try to add stats provider name: %s uid: %d pid %d", ::android::String8(name).string(),
- IPCThreadState::self()->getCallingUid(), IPCThreadState::self()->getCallingPid());
+ ECOLOGV("Try to add stats provider name: %s uid: %d pid %d", ::android::String8(name).c_str(),
+ AIBinder_getCallingUid(), AIBinder_getCallingPid());
if (provider == nullptr) {
ECOLOGE("%s: provider must not be null", __FUNCTION__);
@@ -397,10 +398,10 @@ Status ECOSession::addStatsProvider(
mProvider->getName(&name);
String8 errorMsg = String8::format(
"ECOService 1.0 only supports one stats provider, current provider: %s",
- ::android::String8(name).string());
- ECOLOGE("%s", errorMsg.string());
+ ::android::String8(name).c_str());
+ ECOLOGE("%s", errorMsg.c_str());
*status = false;
- return STATUS_ERROR(ERROR_ALREADY_EXISTS, errorMsg.string());
+ return STATUS_ERROR(ERROR_ALREADY_EXISTS, errorMsg.c_str());
}
// TODO: Handle the provider config.
@@ -482,8 +483,8 @@ Status ECOSession::addInfoListener(
return STATUS_ERROR(ERROR_ILLEGAL_ARGUMENT, "listener config is not valid");
}
- ECOLOGD("Info listener name: %s uid: %d pid %d", ::android::String8(name).string(),
- IPCThreadState::self()->getCallingUid(), IPCThreadState::self()->getCallingPid());
+ ECOLOGD("Info listener name: %s uid: %d pid %d", ::android::String8(name).c_str(),
+ AIBinder_getCallingUid(), AIBinder_getCallingPid());
mListener = listener;
mListenerName = name;
@@ -556,10 +557,10 @@ status_t ECOSession::dump(int fd, const Vector<String16>& /*args*/) {
mWidth, mHeight, mIsCameraRecording, mTargetBitrateBps, mCodecType, mCodecProfile,
mCodecLevel);
if (mProvider != nullptr) {
- dprintf(fd, "Provider: %s \n", ::android::String8(mProviderName).string());
+ dprintf(fd, "Provider: %s \n", ::android::String8(mProviderName).c_str());
}
if (mListener != nullptr) {
- dprintf(fd, "Listener: %s \n", ::android::String8(mListenerName).string());
+ dprintf(fd, "Listener: %s \n", ::android::String8(mListenerName).c_str());
}
dprintf(fd, "\n===================\n\n");
diff --git a/media/eco/OWNERS b/media/eco/OWNERS
index 73a70e2..8c78725 100644
--- a/media/eco/OWNERS
+++ b/media/eco/OWNERS
@@ -1 +1,4 @@
derekpang@google.com
+kyslov@google.com
+arifdikici@google.com
+dichenzhang@google.com
diff --git a/media/eco/include/eco/ECOData.h b/media/eco/include/eco/ECOData.h
index cb42982..737235a 100644
--- a/media/eco/include/eco/ECOData.h
+++ b/media/eco/include/eco/ECOData.h
@@ -161,6 +161,8 @@ public:
// Dump the ECOData as a string.
std::string debugString() const;
+ std::string toString() const;
+
protected:
// ValueType. This must match the index in ECODataValueType.
enum ValueType {
diff --git a/media/eco/include/eco/ECOService.h b/media/eco/include/eco/ECOService.h
index f83edff..d0d732a 100644
--- a/media/eco/include/eco/ECOService.h
+++ b/media/eco/include/eco/ECOService.h
@@ -18,7 +18,8 @@
#define ANDROID_MEDIA_ECO_SERVICE_H_
#include <android/media/eco/BnECOService.h>
-#include <binder/BinderService.h>
+#include <binder/IServiceManager.h>
+#include <utils/Mutex.h>
#include <list>
@@ -49,10 +50,8 @@ using android::media::eco::ECOSession;
* ECOServiceStatsProvider and ECOServiceInfoListener should remove themselves from ECOSession.
* Then ECOService will safely destroy the ECOSession.
*/
-class ECOService : public BinderService<ECOService>,
- public BnECOService,
+class ECOService : public BnECOService,
public virtual IBinder::DeathRecipient {
- friend class BinderService<ECOService>;
public:
ECOService();
@@ -66,6 +65,14 @@ public:
virtual Status getSessions(::std::vector<sp<IBinder>>* _aidl_return);
+ static status_t instantiate() {
+ bool allowIsolated = false;
+ int dumpFlags = IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT;
+ sp<IServiceManager> sm(defaultServiceManager());
+ return sm->addService(String16(getServiceName()), new ECOService(), allowIsolated,
+ dumpFlags);
+ }
+
// Implementation of BinderService<T>
static char const* getServiceName() { return "media.ecoservice"; }
diff --git a/media/eco/include/eco/ECOServiceInfoListener.h b/media/eco/include/eco/ECOServiceInfoListener.h
index 8a08a69..86d379f 100644
--- a/media/eco/include/eco/ECOServiceInfoListener.h
+++ b/media/eco/include/eco/ECOServiceInfoListener.h
@@ -19,7 +19,6 @@
#include <android/media/eco/BnECOServiceInfoListener.h>
#include <android/media/eco/IECOSession.h>
-#include <binder/BinderService.h>
#include <condition_variable>
#include <memory>
@@ -37,10 +36,8 @@ using ::android::binder::Status;
/**
* ECOServiceInfoListener interface class.
*/
-class ECOServiceInfoListener : public BinderService<IECOServiceInfoListener>,
- public BnECOServiceInfoListener,
+class ECOServiceInfoListener : public BnECOServiceInfoListener,
public virtual IBinder::DeathRecipient {
- friend class BinderService<IECOServiceInfoListener>;
public:
// Create a ECOServiceInfoListener with specifed width, height and isCameraRecording.
diff --git a/media/eco/include/eco/ECOServiceStatsProvider.h b/media/eco/include/eco/ECOServiceStatsProvider.h
index ed0ca7d..c81f0b8 100644
--- a/media/eco/include/eco/ECOServiceStatsProvider.h
+++ b/media/eco/include/eco/ECOServiceStatsProvider.h
@@ -20,7 +20,6 @@
#include <android/media/eco/BnECOServiceStatsProvider.h>
#include <android/media/eco/IECOSession.h>
#include <android/media/eco/IECOService.h>
-#include <binder/BinderService.h>
#include <condition_variable>
#include <memory>
@@ -39,10 +38,8 @@ using ::android::binder::Status;
/**
* ECOServiceStatsProvider interface class.
*/
-class ECOServiceStatsProvider : public BinderService<IECOServiceStatsProvider>,
- public BnECOServiceStatsProvider,
+class ECOServiceStatsProvider : public BnECOServiceStatsProvider,
public virtual IBinder::DeathRecipient {
- friend class BinderService<IECOServiceStatsProvider>;
public:
virtual ~ECOServiceStatsProvider() {}
diff --git a/media/eco/include/eco/ECOSession.h b/media/eco/include/eco/ECOSession.h
index 90f9d94..9fb0bdc 100644
--- a/media/eco/include/eco/ECOSession.h
+++ b/media/eco/include/eco/ECOSession.h
@@ -19,7 +19,6 @@
#include <android/media/eco/BnECOSession.h>
#include <android/media/eco/IECOServiceStatsProvider.h>
-#include <binder/BinderService.h>
#include <condition_variable>
#include <deque>
@@ -47,10 +46,8 @@ using ::android::binder::Status;
* it only supports resolution of up to 720P and only for camera recording use case. Also, it only
* supports encoder as the provider and camera as listener.
*/
-class ECOSession : public BinderService<ECOSession>,
- public BnECOSession,
+class ECOSession : public BnECOSession,
public virtual IBinder::DeathRecipient {
- friend class BinderService<ECOSession>;
public:
virtual ~ECOSession();
diff --git a/media/eco/tests/Android.bp b/media/eco/tests/Android.bp
index 70390cc..99c93cd 100644
--- a/media/eco/tests/Android.bp
+++ b/media/eco/tests/Android.bp
@@ -1,22 +1,18 @@
package {
+ default_team: "trendy_team_android_media_audio_framework",
// See: http://go/android-license-faq
default_applicable_licenses: ["Android-Apache-2.0"],
}
-cc_defaults{
- name : "libmedia_ecoservice_tests_defaults",
- cflags : [
+cc_defaults {
+ name: "libmedia_ecoservice_tests_defaults",
+ cflags: [
"-Wall",
"-Werror",
],
-}
-
-cc_test {
- name: "EcoDataTest",
- defaults: ["libmedia_ecoservice_tests_defaults"],
- srcs: ["EcoDataTest.cpp"],
shared_libs: [
"libbinder",
+ "libbinder_ndk",
"libcutils",
"libutils",
"liblog",
@@ -25,20 +21,18 @@ cc_test {
}
cc_test {
+ name: "EcoDataTest",
+ defaults: ["libmedia_ecoservice_tests_defaults"],
+ srcs: ["EcoDataTest.cpp"],
+}
+
+cc_test {
name: "EcoSessionTest",
defaults: ["libmedia_ecoservice_tests_defaults"],
srcs: [
"EcoSessionTest.cpp",
"FakeECOServiceStatsProvider.cpp",
"FakeECOServiceInfoListener.cpp",
- ],
-
- shared_libs: [
- "libbinder",
- "libcutils",
- "libutils",
- "liblog",
- "libmedia_ecoservice",
],
}
@@ -50,13 +44,5 @@ cc_test {
"EcoServiceTest.cpp",
"FakeECOServiceStatsProvider.cpp",
"FakeECOServiceInfoListener.cpp",
- ],
-
- shared_libs: [
- "libbinder",
- "libcutils",
- "libutils",
- "liblog",
- "libmedia_ecoservice",
],
}
diff --git a/media/eco/tests/EcoServiceTest.cpp b/media/eco/tests/EcoServiceTest.cpp
index dc589dd..df54c53 100644
--- a/media/eco/tests/EcoServiceTest.cpp
+++ b/media/eco/tests/EcoServiceTest.cpp
@@ -22,12 +22,14 @@
#include <android-base/unique_fd.h>
#include <binder/Parcel.h>
#include <binder/Parcelable.h>
+#include <binder/IServiceManager.h>
#include <cutils/ashmem.h>
#include <gtest/gtest.h>
#include <math.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <utils/Log.h>
+#include <utils/Timers.h>
#include "FakeECOServiceInfoListener.h"
#include "FakeECOServiceStatsProvider.h"
diff --git a/media/eco/tests/EcoSessionTest.cpp b/media/eco/tests/EcoSessionTest.cpp
index 33a449d..5c8826f 100644
--- a/media/eco/tests/EcoSessionTest.cpp
+++ b/media/eco/tests/EcoSessionTest.cpp
@@ -28,6 +28,7 @@
#include <stdlib.h>
#include <sys/mman.h>
#include <utils/Log.h>
+#include <utils/Timers.h>
#include "FakeECOServiceInfoListener.h"
#include "FakeECOServiceStatsProvider.h"
diff --git a/media/eco/tests/FakeECOServiceInfoListener.cpp b/media/eco/tests/FakeECOServiceInfoListener.cpp
index 2a4a285..10a6851 100644
--- a/media/eco/tests/FakeECOServiceInfoListener.cpp
+++ b/media/eco/tests/FakeECOServiceInfoListener.cpp
@@ -20,8 +20,6 @@
#include "FakeECOServiceInfoListener.h"
#include <android-base/unique_fd.h>
-#include <binder/IPCThreadState.h>
-#include <binder/IServiceManager.h>
#include <binder/Parcel.h>
#include <binder/Parcelable.h>
#include <cutils/ashmem.h>
diff --git a/media/eco/tests/FakeECOServiceInfoListener.h b/media/eco/tests/FakeECOServiceInfoListener.h
index 9974b63..7c23275 100644
--- a/media/eco/tests/FakeECOServiceInfoListener.h
+++ b/media/eco/tests/FakeECOServiceInfoListener.h
@@ -19,7 +19,6 @@
#include <android-base/unique_fd.h>
#include <android/media/eco/BnECOServiceInfoListener.h>
#include <android/media/eco/IECOSession.h>
-#include <binder/BinderService.h>
#include <binder/Parcel.h>
#include <binder/Parcelable.h>
#include <cutils/ashmem.h>
diff --git a/media/eco/tests/FakeECOServiceStatsProvider.cpp b/media/eco/tests/FakeECOServiceStatsProvider.cpp
index 883a830..4bf0ca4 100644
--- a/media/eco/tests/FakeECOServiceStatsProvider.cpp
+++ b/media/eco/tests/FakeECOServiceStatsProvider.cpp
@@ -20,8 +20,6 @@
#include "FakeECOServiceStatsProvider.h"
#include <android-base/unique_fd.h>
-#include <binder/IPCThreadState.h>
-#include <binder/IServiceManager.h>
#include <binder/Parcel.h>
#include <binder/Parcelable.h>
#include <cutils/ashmem.h>
diff --git a/media/eco/tests/FakeECOServiceStatsProvider.h b/media/eco/tests/FakeECOServiceStatsProvider.h
index 0f60d02..bf14a53 100644
--- a/media/eco/tests/FakeECOServiceStatsProvider.h
+++ b/media/eco/tests/FakeECOServiceStatsProvider.h
@@ -18,7 +18,6 @@
#include <android-base/unique_fd.h>
#include <android/media/eco/BnECOServiceStatsProvider.h>
-#include <binder/BinderService.h>
#include <binder/Parcel.h>
#include <binder/Parcelable.h>
#include <cutils/ashmem.h>