Revert "Revert "Revert "Remove unused modules made for non-Treble OMX"""
This reverts commit 620e4667dc41e17e365615fda4507fa9f7267ca0, which was
made originally for b/67990472.
Bug: 69110957
diff --git a/services/mediacodec/main_codecservice.cpp b/services/mediacodec/main_codecservice.cpp
index 6bb3fa2..79d6da5 100644
--- a/services/mediacodec/main_codecservice.cpp
+++ b/services/mediacodec/main_codecservice.cpp
@@ -15,12 +15,22 @@
** limitations under the License.
*/
+#include <fcntl.h>
+#include <sys/prctl.h>
+#include <sys/wait.h>
+#include <binder/IPCThreadState.h>
+#include <binder/ProcessState.h>
+#include <binder/IServiceManager.h>
+#include <cutils/properties.h>
+
+#include <string>
+
#include <android-base/logging.h>
// from LOCAL_C_INCLUDES
+#include "MediaCodecService.h"
#include "minijail.h"
-#include <binder/ProcessState.h>
#include <hidl/HidlTransportSupport.h>
#include <media/stagefright/omx/1.0/Omx.h>
#include <media/stagefright/omx/1.0/OmxStore.h>
@@ -36,11 +46,10 @@
int main(int argc __unused, char** argv)
{
LOG(INFO) << "mediacodecservice starting";
-
-#ifdef USE_VNDBINDER
- android::ProcessState::initWithDriver("/dev/vndbinder");
- android::ProcessState::self()->startThreadPool();
-#endif // USE_VNDBINDER
+ bool treble = property_get_bool("persist.media.treble_omx", true);
+ if (treble) {
+ android::ProcessState::initWithDriver("/dev/vndbinder");
+ }
signal(SIGPIPE, SIG_IGN);
SetUpMinijail(kSystemSeccompPolicyPath, kVendorSeccompPolicyPath);
@@ -48,22 +57,29 @@
strcpy(argv[0], "media.codec");
::android::hardware::configureRpcThreadpool(64, false);
+ sp<ProcessState> proc(ProcessState::self());
- using namespace ::android::hardware::media::omx::V1_0;
- sp<IOmxStore> omxStore = new implementation::OmxStore();
- if (omxStore == nullptr) {
- LOG(ERROR) << "Cannot create IOmxStore HAL service.";
- } else if (omxStore->registerAsService() != OK) {
- LOG(ERROR) << "Cannot register IOmxStore HAL service.";
- }
- sp<IOmx> omx = new implementation::Omx();
- if (omx == nullptr) {
- LOG(ERROR) << "Cannot create IOmx HAL service.";
- } else if (omx->registerAsService() != OK) {
- LOG(ERROR) << "Cannot register IOmx HAL service.";
+ if (treble) {
+ using namespace ::android::hardware::media::omx::V1_0;
+ sp<IOmxStore> omxStore = new implementation::OmxStore();
+ if (omxStore == nullptr) {
+ LOG(ERROR) << "Cannot create IOmxStore HAL service.";
+ } else if (omxStore->registerAsService() != OK) {
+ LOG(ERROR) << "Cannot register IOmxStore HAL service.";
+ }
+ sp<IOmx> omx = new implementation::Omx();
+ if (omx == nullptr) {
+ LOG(ERROR) << "Cannot create IOmx HAL service.";
+ } else if (omx->registerAsService() != OK) {
+ LOG(ERROR) << "Cannot register IOmx HAL service.";
+ } else {
+ LOG(INFO) << "Treble OMX service created.";
+ }
} else {
- LOG(INFO) << "IOmx HAL service created.";
+ MediaCodecService::instantiate();
+ LOG(INFO) << "Non-Treble OMX service created.";
}
- ::android::hardware::joinRpcThreadpool();
+ ProcessState::self()->startThreadPool();
+ IPCThreadState::self()->joinThreadPool();
}