Loading media/module/codecserviceregistrant/CodecServiceRegistrant.cpp +48 −42 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ using ::android::hardware::hidl_string; using ::android::hardware::Return; using ::android::sp; using ::ndk::ScopedAStatus; namespace c2_hidl_V1_0 = ::android::hardware::media::c2::V1_0; namespace c2_hidl = ::android::hardware::media::c2::V1_2; namespace c2_aidl = ::aidl::android::hardware::media::c2; Loading Loading @@ -734,6 +735,46 @@ bool ionPropertiesDefined() { } // unnamed namespace static android::sp<c2_hidl_V1_0::IComponentStore> getDeclaredHidlSwcodec( const std::shared_ptr<C2ComponentStore>& store) { using ::android::hidl::manager::V1_2::IServiceManager; using namespace ::android::hardware::media::c2; int platformVersion = android_get_device_api_level(); // STOPSHIP: Remove code name checking once platform version bumps up to 35. std::string codeName = android::base::GetProperty("ro.build.version.codename", ""); if (codeName == "VanillaIceCream") { platformVersion = __ANDROID_API_V__; } IServiceManager::Transport transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_2::IComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (platformVersion < __ANDROID_API_S__) { LOG(ERROR) << "We don't expect V1.2::IComponentStore to be declared on this device"; } return ::android::sp<V1_2::utils::ComponentStore>::make(store); } transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_1::IComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (platformVersion != __ANDROID_API_R__) { LOG(ERROR) << "We don't expect V1.1::IComponentStore to be declared on this device"; } return ::android::sp<V1_1::utils::ComponentStore>::make(store); } transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_0::IComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (platformVersion != __ANDROID_API_Q__) { LOG(ERROR) << "We don't expect V1.0::IComponentStore to be declared on this device"; } return ::android::sp<V1_0::utils::ComponentStore>::make(store); } return nullptr; } extern "C" void RegisterCodecServices() { const bool aidlSelected = c2_aidl::utils::IsSelected(); constexpr int kThreadCount = 64; Loading @@ -751,33 +792,6 @@ extern "C" void RegisterCodecServices() { using namespace ::android::hardware::media::c2; int platformVersion = android_get_device_api_level(); // STOPSHIP: Remove code name checking once platform version bumps up to 35. std::string codeName = android::base::GetProperty("ro.build.version.codename", ""); if (codeName == "VanillaIceCream") { platformVersion = __ANDROID_API_V__; } android::sp<V1_0::IComponentStore> hidlStore; std::shared_ptr<c2_aidl::IComponentStore> aidlStore; const char *hidlVer = "(unknown)"; if (aidlSelected) { aidlStore = ::ndk::SharedRefBase::make<c2_aidl::utils::ComponentStore>(store); } else if (platformVersion >= __ANDROID_API_S__) { hidlStore = ::android::sp<V1_2::utils::ComponentStore>::make(store); hidlVer = "1.2"; } else if (platformVersion == __ANDROID_API_R__) { hidlStore = ::android::sp<V1_1::utils::ComponentStore>::make(store); hidlVer = "1.1"; } else if (platformVersion == __ANDROID_API_Q__) { hidlStore = ::android::sp<V1_0::utils::ComponentStore>::make(store); hidlVer = "1.0"; } else { // platformVersion < __ANDROID_API_Q__ LOG(ERROR) << "The platform version " << platformVersion << " is not supported."; return; } if (!ionPropertiesDefined()) { using IComponentStore = ::android::hardware::media::c2::V1_0::IComponentStore; Loading Loading @@ -823,10 +837,9 @@ extern "C" void RegisterCodecServices() { std::string(c2_aidl::IComponentStore::descriptor) + "/software"; if (__builtin_available(android __ANDROID_API_S__, *)) { if (AServiceManager_isDeclared(aidlServiceName.c_str())) { if (!aidlStore) { aidlStore = ::ndk::SharedRefBase::make<c2_aidl::utils::ComponentStore>( std::shared_ptr<c2_aidl::IComponentStore> aidlStore = ::ndk::SharedRefBase::make<c2_aidl::utils::ComponentStore>( std::make_shared<H2C2ComponentStore>(nullptr)); } binder_exception_t ex = AServiceManager_addService( aidlStore->asBinder().get(), aidlServiceName.c_str()); if (ex == EX_NONE) { Loading @@ -837,22 +850,15 @@ extern "C" void RegisterCodecServices() { } } android::sp<V1_0::IComponentStore> hidlStore = getDeclaredHidlSwcodec(store); // If the software component store isn't declared in the manifest, we don't // need to create the service and register it. using ::android::hidl::manager::V1_2::IServiceManager; IServiceManager::Transport transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_2::utils::ComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (!hidlStore) { hidlStore = ::android::sp<V1_2::utils::ComponentStore>::make( std::make_shared<H2C2ComponentStore>(nullptr)); hidlVer = "1.2"; } if (hidlStore) { if (hidlStore->registerAsService("software") == android::OK) { registered = true; } else { LOG(ERROR) << "Cannot register software Codec2 v" << hidlVer << " service."; LOG(ERROR) << "Cannot register software Codec2 " << hidlStore->descriptor << " service."; } } else { LOG(INFO) << "The HIDL software Codec2 service is deprecated" Loading Loading
media/module/codecserviceregistrant/CodecServiceRegistrant.cpp +48 −42 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ using ::android::hardware::hidl_string; using ::android::hardware::Return; using ::android::sp; using ::ndk::ScopedAStatus; namespace c2_hidl_V1_0 = ::android::hardware::media::c2::V1_0; namespace c2_hidl = ::android::hardware::media::c2::V1_2; namespace c2_aidl = ::aidl::android::hardware::media::c2; Loading Loading @@ -734,6 +735,46 @@ bool ionPropertiesDefined() { } // unnamed namespace static android::sp<c2_hidl_V1_0::IComponentStore> getDeclaredHidlSwcodec( const std::shared_ptr<C2ComponentStore>& store) { using ::android::hidl::manager::V1_2::IServiceManager; using namespace ::android::hardware::media::c2; int platformVersion = android_get_device_api_level(); // STOPSHIP: Remove code name checking once platform version bumps up to 35. std::string codeName = android::base::GetProperty("ro.build.version.codename", ""); if (codeName == "VanillaIceCream") { platformVersion = __ANDROID_API_V__; } IServiceManager::Transport transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_2::IComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (platformVersion < __ANDROID_API_S__) { LOG(ERROR) << "We don't expect V1.2::IComponentStore to be declared on this device"; } return ::android::sp<V1_2::utils::ComponentStore>::make(store); } transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_1::IComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (platformVersion != __ANDROID_API_R__) { LOG(ERROR) << "We don't expect V1.1::IComponentStore to be declared on this device"; } return ::android::sp<V1_1::utils::ComponentStore>::make(store); } transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_0::IComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (platformVersion != __ANDROID_API_Q__) { LOG(ERROR) << "We don't expect V1.0::IComponentStore to be declared on this device"; } return ::android::sp<V1_0::utils::ComponentStore>::make(store); } return nullptr; } extern "C" void RegisterCodecServices() { const bool aidlSelected = c2_aidl::utils::IsSelected(); constexpr int kThreadCount = 64; Loading @@ -751,33 +792,6 @@ extern "C" void RegisterCodecServices() { using namespace ::android::hardware::media::c2; int platformVersion = android_get_device_api_level(); // STOPSHIP: Remove code name checking once platform version bumps up to 35. std::string codeName = android::base::GetProperty("ro.build.version.codename", ""); if (codeName == "VanillaIceCream") { platformVersion = __ANDROID_API_V__; } android::sp<V1_0::IComponentStore> hidlStore; std::shared_ptr<c2_aidl::IComponentStore> aidlStore; const char *hidlVer = "(unknown)"; if (aidlSelected) { aidlStore = ::ndk::SharedRefBase::make<c2_aidl::utils::ComponentStore>(store); } else if (platformVersion >= __ANDROID_API_S__) { hidlStore = ::android::sp<V1_2::utils::ComponentStore>::make(store); hidlVer = "1.2"; } else if (platformVersion == __ANDROID_API_R__) { hidlStore = ::android::sp<V1_1::utils::ComponentStore>::make(store); hidlVer = "1.1"; } else if (platformVersion == __ANDROID_API_Q__) { hidlStore = ::android::sp<V1_0::utils::ComponentStore>::make(store); hidlVer = "1.0"; } else { // platformVersion < __ANDROID_API_Q__ LOG(ERROR) << "The platform version " << platformVersion << " is not supported."; return; } if (!ionPropertiesDefined()) { using IComponentStore = ::android::hardware::media::c2::V1_0::IComponentStore; Loading Loading @@ -823,10 +837,9 @@ extern "C" void RegisterCodecServices() { std::string(c2_aidl::IComponentStore::descriptor) + "/software"; if (__builtin_available(android __ANDROID_API_S__, *)) { if (AServiceManager_isDeclared(aidlServiceName.c_str())) { if (!aidlStore) { aidlStore = ::ndk::SharedRefBase::make<c2_aidl::utils::ComponentStore>( std::shared_ptr<c2_aidl::IComponentStore> aidlStore = ::ndk::SharedRefBase::make<c2_aidl::utils::ComponentStore>( std::make_shared<H2C2ComponentStore>(nullptr)); } binder_exception_t ex = AServiceManager_addService( aidlStore->asBinder().get(), aidlServiceName.c_str()); if (ex == EX_NONE) { Loading @@ -837,22 +850,15 @@ extern "C" void RegisterCodecServices() { } } android::sp<V1_0::IComponentStore> hidlStore = getDeclaredHidlSwcodec(store); // If the software component store isn't declared in the manifest, we don't // need to create the service and register it. using ::android::hidl::manager::V1_2::IServiceManager; IServiceManager::Transport transport = android::hardware::defaultServiceManager1_2()->getTransport( V1_2::utils::ComponentStore::descriptor, "software"); if (transport == IServiceManager::Transport::HWBINDER) { if (!hidlStore) { hidlStore = ::android::sp<V1_2::utils::ComponentStore>::make( std::make_shared<H2C2ComponentStore>(nullptr)); hidlVer = "1.2"; } if (hidlStore) { if (hidlStore->registerAsService("software") == android::OK) { registered = true; } else { LOG(ERROR) << "Cannot register software Codec2 v" << hidlVer << " service."; LOG(ERROR) << "Cannot register software Codec2 " << hidlStore->descriptor << " service."; } } else { LOG(INFO) << "The HIDL software Codec2 service is deprecated" Loading