diff --git a/plugin_store/C2VdaBqBlockPool.cpp b/plugin_store/C2VdaBqBlockPool.cpp
index d53f4a01c94fc38d902c5dbdc6ba3d8bf01d957d..335688547c593fb5061c8934c13932037c094e2f 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 fde62998a16aa7b9ddb147affa9d6fe0df3f1aeb..addc23df1871e62be150156ee0810f258ce4a94b 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 c901a0223d4970e0f513c8022d1b1f6734c95b4f..a690f0850284d3fe34b16a37e202cf423f2892e6 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 e4ddbc3a19a1c7e5e7828632c8c9357eac285161..4fe0ccbed8c7ad47e570a90f5631f3e38347b713 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 454953b8dfd181c7f15474c5ebea3a1f28f7abcb..9869c6b6b41b2cd10d3e0d71ec779fea3d97fce7 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 e12ce084cd5c55404927645eed0c51f4b864a71d..e76e5835a4e9f45bdb0ef8311060b4345f600119 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(