aboutsummaryrefslogtreecommitdiff
path: root/C2ArcVideoAcceleratorFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'C2ArcVideoAcceleratorFactory.cpp')
-rw-r--r--C2ArcVideoAcceleratorFactory.cpp87
1 files changed, 0 insertions, 87 deletions
diff --git a/C2ArcVideoAcceleratorFactory.cpp b/C2ArcVideoAcceleratorFactory.cpp
deleted file mode 100644
index 07997d1..0000000
--- 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