diff --git a/Android.bp b/Android.bp deleted file mode 100644 index db4d39f80741d4d4d4e8dabfb0d28e9c8b156eef..0000000000000000000000000000000000000000 --- a/Android.bp +++ /dev/null @@ -1,32 +0,0 @@ -cc_library_shared { - name: "libv4l2_codec2_arcva_factory", - vendor_available: true, - product_variables: { - arc: { - srcs: ["C2ArcVideoAcceleratorFactory.cpp"], - - shared_libs: [ - "libarcbridge", - "libarcbridgeservice", - "libarcvideobridge", - "libbinder", - "libchrome", - "liblog", - "libmojo", - "libutils", - ], - - // -Wno-unused-parameter is needed for libchrome/base codes - cflags: [ - "-Wall", - "-Werror", - "-Wno-unused-parameter", - "-std=c++14", - ], - }, - }, - clang: true, - export_include_dirs: [ - "include", - ], -} diff --git a/Android.mk b/Android.mk index cfb8442f15d975b5c706f00015214ff1c54f4164..81eb24a2a2cca8c50c7cd85347b7f68e71706e5a 100644 --- a/Android.mk +++ b/Android.mk @@ -56,7 +56,7 @@ LOCAL_SRC_FILES := $(filter-out C2VDAAdaptor.cpp, $(LOCAL_SRC_FILES)) LOCAL_SHARED_LIBRARIES += libarcbridge \ libarcbridgeservice \ libmojo \ - libv4l2_codec2_arcva_factory \ + libcodec2_arcva_factory \ endif # ifneq (,$(findstring cheets_,$(TARGET_PRODUCT))) diff --git a/C2ArcVideoAcceleratorFactory.cpp b/C2ArcVideoAcceleratorFactory.cpp deleted file mode 100644 index 07997d1f572dc4e39bd595e39d199f10f5c8b8df..0000000000000000000000000000000000000000 --- a/C2ArcVideoAcceleratorFactory.cpp +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// #define LOG_NDEBUG 0 -#define LOG_TAG "C2ArcVideoAcceleratorFactory" - -#include <C2ArcVideoAcceleratorFactory.h> - -#include <base/bind.h> -#include <binder/IServiceManager.h> -#include <mojo/edk/embedder/embedder.h> -#include <mojo/public/cpp/bindings/interface_request.h> -#include <mojo/public/cpp/system/handle.h> -#include <utils/Log.h> - -namespace android { - -ANDROID_SINGLETON_STATIC_INSTANCE(C2ArcVideoAcceleratorFactory) - -bool C2ArcVideoAcceleratorFactory::createVideoDecodeAccelerator( - ::arc::mojom::VideoDecodeAcceleratorRequest request) { - if (!mRemoteFactory) { - ALOGE("Factory is not ready"); - return false; - } - mRemoteFactory->CreateDecodeAccelerator(std::move(request)); - return true; -} - -bool C2ArcVideoAcceleratorFactory::createVideoEncodeAccelerator( - ::arc::mojom::VideoEncodeAcceleratorRequest request) { - if (!mRemoteFactory) { - ALOGE("Factory is not ready"); - return false; - } - mRemoteFactory->CreateEncodeAccelerator(std::move(request)); - return true; -} - -bool C2ArcVideoAcceleratorFactory::createVideoProtectedBufferAllocator( - ::arc::mojom::VideoProtectedBufferAllocatorRequest request) { - if (!mRemoteFactory) { - ALOGE("Factory is not ready"); - return false; - } - mRemoteFactory->CreateProtectedBufferAllocator(std::move(request)); - return true; -} - -int32_t C2ArcVideoAcceleratorFactory::hostVersion() const { - return mHostVersion; -} - -C2ArcVideoAcceleratorFactory::C2ArcVideoAcceleratorFactory() : mHostVersion(0) { - sp<IBinder> binder = - defaultServiceManager()->getService(String16("android.os.IArcVideoBridge")); - if (binder == nullptr) { - ALOGE("Failed to find IArcVideoBridge service"); - return; - } - mArcVideoBridge = interface_cast<IArcVideoBridge>(binder); - mHostVersion = mArcVideoBridge->hostVersion(); - if (mHostVersion < 4) { - ALOGW("HostVersion(%d) is outdated", mHostVersion); - return; - } - - ALOGV("HostVersion: %d", mHostVersion); - - ::arc::MojoBootstrapResult bootstrapResult = - mArcVideoBridge->bootstrapVideoAcceleratorFactory(); - if (!bootstrapResult.is_valid()) { - ALOGE("bootstrapVideoAcceleratorFactory returns invalid result"); - return; - } - mojo::edk::ScopedPlatformHandle handle( - mojo::edk::PlatformHandle(bootstrapResult.releaseFd().release())); - ALOGV("SetParentPipeHandle(fd=%d)", handle.get().handle); - mojo::edk::SetParentPipeHandle(std::move(handle)); - mojo::ScopedMessagePipeHandle server_pipe = - mojo::edk::CreateChildMessagePipe(bootstrapResult.releaseToken()); - mRemoteFactory.Bind(mojo::InterfacePtrInfo<::arc::mojom::VideoAcceleratorFactory>( - std::move(server_pipe), 7u)); -} - -} // namespace android diff --git a/C2VDAAdaptorProxy.cpp b/C2VDAAdaptorProxy.cpp index 2c44e6b5926bf046888f97cc0a6d8aeda8883bba..4c493d15af93831c8cbcfe36aab963e73dcd8410 100644 --- a/C2VDAAdaptorProxy.cpp +++ b/C2VDAAdaptorProxy.cpp @@ -64,7 +64,7 @@ bool C2VDAAdaptorProxy::establishChannel() { } void C2VDAAdaptorProxy::establishChannelOnMojoThread(std::shared_ptr<::arc::Future<bool>> future) { - C2ArcVideoAcceleratorFactory& factory = ::android::C2ArcVideoAcceleratorFactory::getInstance(); + auto& factory = ::android::GetC2ArcVideoAcceleratorFactory(); if (!factory.createVideoDecodeAccelerator(mojo::MakeRequest(&mVDAPtr))) { future->set(false); diff --git a/include/C2ArcVideoAcceleratorFactory.h b/include/C2ArcVideoAcceleratorFactory.h deleted file mode 100644 index 9cdaf370c7b03b575f7aa81170b718b8a3eff96f..0000000000000000000000000000000000000000 --- a/include/C2ArcVideoAcceleratorFactory.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef ANDROID_C2_ARC_VIDEO_ACCELERATOR_FACTORY_H -#define ANDROID_C2_ARC_VIDEO_ACCELERATOR_FACTORY_H - -#include <media/arcvideobridge/IArcVideoBridge.h> -#include <utils/Singleton.h> - -#include <components/arc/common/video.mojom.h> -#include <components/arc/common/video_decode_accelerator.mojom.h> -#include <components/arc/common/video_encode_accelerator.mojom.h> - -namespace android { -// Helper class to create message pipe to the ArcVideoAccelerator. -// This class should only be used in the Mojo thread. -class C2ArcVideoAcceleratorFactory : public Singleton<C2ArcVideoAcceleratorFactory> { -public: - bool createVideoDecodeAccelerator(::arc::mojom::VideoDecodeAcceleratorRequest request); - bool createVideoEncodeAccelerator(::arc::mojom::VideoEncodeAcceleratorRequest request); - bool createVideoProtectedBufferAllocator( - ::arc::mojom::VideoProtectedBufferAllocatorRequest request); - int32_t hostVersion() const; - -private: - C2ArcVideoAcceleratorFactory(); - - uint32_t mHostVersion; - sp<IArcVideoBridge> mArcVideoBridge; - ::arc::mojom::VideoAcceleratorFactoryPtr mRemoteFactory; - - friend class Singleton<C2ArcVideoAcceleratorFactory>; -}; -} // namespace android - -#endif // ANDROID_C2_ARC_VIDEO_ACCELERATOR_FACTORY_H