From 35f4783d906bfa559d76bce18c83bfe6ac1056b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Grzesik?= <bgrzesik@google.com> Date: Tue, 7 Mar 2023 09:42:37 +0000 Subject: [PATCH] service: Uprev Codec 2.0 VNDK to 1.2 This CL uprevs Codec 2.0 VNDK version 1.2 to take advantage of asynchronous graphic buffer fetching from buffer queue in following patches. Bug: 268301611 Bug: 268305422 Bug: 270329448 Bug: 238710012 Bug: 238390060 Bug: 270331759 Bug: 238709912 Test: CtsMediaCodecTestCases Test: CtsMediaDecoderTestCases Test: CtsMediaV2TestCases Test: GtsExoPlayerTestCases com.google.android.exoplayer.gts.CommonEncryptionDrmTest#cencSchemeTypeV* Change-Id: Icad6d78c3f36d365749af787f2b3bab3edc54d3e (cherry picked from commit d1454490efa1865cd9fd33bd13237f9ef919823b) --- plugin_store/C2VdaBqBlockPool.cpp | 10 ++++++++++ .../v4l2_codec2/plugin_store/C2VdaBqBlockPool.h | 4 ++++ service/Android.bp | 6 +++--- ...> android.hardware.media.c2@1.2-service-v4l2-32.rc} | 2 +- ...> android.hardware.media.c2@1.2-service-v4l2-64.rc} | 2 +- service/service.cpp | 6 +++--- 6 files changed, 22 insertions(+), 8 deletions(-) rename service/{android.hardware.media.c2@1.0-service-v4l2-32.rc => android.hardware.media.c2@1.2-service-v4l2-32.rc} (57%) rename service/{android.hardware.media.c2@1.0-service-v4l2-64.rc => android.hardware.media.c2@1.2-service-v4l2-64.rc} (57%) diff --git a/plugin_store/C2VdaBqBlockPool.cpp b/plugin_store/C2VdaBqBlockPool.cpp index d53f4a0..3356885 100644 --- a/plugin_store/C2VdaBqBlockPool.cpp +++ b/plugin_store/C2VdaBqBlockPool.cpp @@ -918,6 +918,16 @@ c2_status_t C2VdaBqBlockPool::fetchGraphicBlock( return C2_NO_INIT; } +c2_status_t C2VdaBqBlockPool::fetchGraphicBlock(uint32_t width, uint32_t height, uint32_t format, + C2MemoryUsage usage, + std::shared_ptr<C2GraphicBlock>* block, + C2Fence* fence) { + if (mImpl) { + return mImpl->fetchGraphicBlock(width, height, format, usage, block); + } + return C2_NO_INIT; +} + void C2VdaBqBlockPool::setRenderCallback( const C2BufferQueueBlockPool::OnRenderCallback& renderCallback) { if (mImpl) { diff --git a/plugin_store/include/v4l2_codec2/plugin_store/C2VdaBqBlockPool.h b/plugin_store/include/v4l2_codec2/plugin_store/C2VdaBqBlockPool.h index fde6299..addc23d 100644 --- a/plugin_store/include/v4l2_codec2/plugin_store/C2VdaBqBlockPool.h +++ b/plugin_store/include/v4l2_codec2/plugin_store/C2VdaBqBlockPool.h @@ -55,6 +55,10 @@ public: C2MemoryUsage usage, std::shared_ptr<C2GraphicBlock>* block /* nonnull */) override; + c2_status_t fetchGraphicBlock(uint32_t width, uint32_t height, uint32_t format, + C2MemoryUsage usage, std::shared_ptr<C2GraphicBlock>* block, + C2Fence* fence) override; + void setRenderCallback(const C2BufferQueueBlockPool::OnRenderCallback& renderCallback = C2BufferQueueBlockPool::OnRenderCallback()) override; void configureProducer(const android::sp<HGraphicBufferProducer>& producer) override; diff --git a/service/Android.bp b/service/Android.bp index c901a02..a690f08 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -8,7 +8,7 @@ package { } cc_binary { - name: "android.hardware.media.c2@1.0-service-v4l2", + name: "android.hardware.media.c2@1.2-service-v4l2", defaults: [ "hidl_defaults", @@ -37,11 +37,11 @@ cc_binary { multilib: { lib32: { suffix: "-32", - init_rc: ["android.hardware.media.c2@1.0-service-v4l2-32.rc"], + init_rc: ["android.hardware.media.c2@1.2-service-v4l2-32.rc"], }, lib64: { suffix: "-64", - init_rc: ["android.hardware.media.c2@1.0-service-v4l2-64.rc"], + init_rc: ["android.hardware.media.c2@1.2-service-v4l2-64.rc"], }, }, } diff --git a/service/android.hardware.media.c2@1.0-service-v4l2-32.rc b/service/android.hardware.media.c2@1.2-service-v4l2-32.rc similarity index 57% rename from service/android.hardware.media.c2@1.0-service-v4l2-32.rc rename to service/android.hardware.media.c2@1.2-service-v4l2-32.rc index e4ddbc3..4fe0ccb 100644 --- a/service/android.hardware.media.c2@1.0-service-v4l2-32.rc +++ b/service/android.hardware.media.c2@1.2-service-v4l2-32.rc @@ -1,4 +1,4 @@ -service android-hardware-media-c2-v4l2-hal-1-0 /vendor/bin/hw/android.hardware.media.c2@1.0-service-v4l2-32 +service android-hardware-media-c2-v4l2-hal-1-2 /vendor/bin/hw/android.hardware.media.c2@1.2-service-v4l2-32 class hal user media group mediadrm drmrpc diff --git a/service/android.hardware.media.c2@1.0-service-v4l2-64.rc b/service/android.hardware.media.c2@1.2-service-v4l2-64.rc similarity index 57% rename from service/android.hardware.media.c2@1.0-service-v4l2-64.rc rename to service/android.hardware.media.c2@1.2-service-v4l2-64.rc index 454953b..9869c6b 100644 --- a/service/android.hardware.media.c2@1.0-service-v4l2-64.rc +++ b/service/android.hardware.media.c2@1.2-service-v4l2-64.rc @@ -1,4 +1,4 @@ -service android-hardware-media-c2-v4l2-hal-1-0 /vendor/bin/hw/android.hardware.media.c2@1.0-service-v4l2-64 +service android-hardware-media-c2-v4l2-hal-1-2 /vendor/bin/hw/android.hardware.media.c2@1.2-service-v4l2-64 class hal user media group mediadrm drmrpc diff --git a/service/service.cpp b/service/service.cpp index 616e641..6917354 100644 --- a/service/service.cpp +++ b/service/service.cpp @@ -5,9 +5,9 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "android.hardware.media.c2@1.0-service-v4l2" -#include <base/logging.h> #include <C2Component.h> -#include <codec2/hidl/1.0/ComponentStore.h> +#include <base/logging.h> +#include <codec2/hidl/1.2/ComponentStore.h> #include <hidl/HidlTransportSupport.h> #include <log/log.h> #include <minijail.h> @@ -39,7 +39,7 @@ int main(int /* argc */, char** /* argv */) { // Create IComponentStore service. { - using namespace ::android::hardware::media::c2::V1_0; + using namespace ::android::hardware::media::c2::V1_2; ALOGD("Instantiating Codec2's V4L2 IComponentStore service..."); android::sp<IComponentStore> store( -- GitLab