diff --git a/Android.bp b/Android.bp
index c2f0ee7..756ff91 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4393,6 +4393,7 @@
         "protos/perfetto/metrics/android/binder_metric.proto",
         "protos/perfetto/metrics/android/camera_metric.proto",
         "protos/perfetto/metrics/android/camera_unagg_metric.proto",
+        "protos/perfetto/metrics/android/codec_metrics.proto",
         "protos/perfetto/metrics/android/cpu_metric.proto",
         "protos/perfetto/metrics/android/display_metrics.proto",
         "protos/perfetto/metrics/android/dma_heap_metric.proto",
@@ -4469,6 +4470,7 @@
         "protos/perfetto/metrics/android/binder_metric.proto",
         "protos/perfetto/metrics/android/camera_metric.proto",
         "protos/perfetto/metrics/android/camera_unagg_metric.proto",
+        "protos/perfetto/metrics/android/codec_metrics.proto",
         "protos/perfetto/metrics/android/cpu_metric.proto",
         "protos/perfetto/metrics/android/display_metrics.proto",
         "protos/perfetto/metrics/android/dma_heap_metric.proto",
@@ -4527,6 +4529,7 @@
         "protos/perfetto/metrics/android/binder_metric.proto",
         "protos/perfetto/metrics/android/camera_metric.proto",
         "protos/perfetto/metrics/android/camera_unagg_metric.proto",
+        "protos/perfetto/metrics/android/codec_metrics.proto",
         "protos/perfetto/metrics/android/cpu_metric.proto",
         "protos/perfetto/metrics/android/display_metrics.proto",
         "protos/perfetto/metrics/android/dma_heap_metric.proto",
@@ -10187,6 +10190,7 @@
         "src/trace_processor/metrics/sql/android/android_task_names.sql",
         "src/trace_processor/metrics/sql/android/android_trace_quality.sql",
         "src/trace_processor/metrics/sql/android/android_trusty_workqueues.sql",
+        "src/trace_processor/metrics/sql/android/codec_metrics.sql",
         "src/trace_processor/metrics/sql/android/composer_execution.sql",
         "src/trace_processor/metrics/sql/android/composition_layers.sql",
         "src/trace_processor/metrics/sql/android/counter_span_view_merged.sql",
diff --git a/BUILD b/BUILD
index 28c8e18..ae675d7 100644
--- a/BUILD
+++ b/BUILD
@@ -1842,6 +1842,7 @@
         "src/trace_processor/metrics/sql/android/android_task_names.sql",
         "src/trace_processor/metrics/sql/android/android_trace_quality.sql",
         "src/trace_processor/metrics/sql/android/android_trusty_workqueues.sql",
+        "src/trace_processor/metrics/sql/android/codec_metrics.sql",
         "src/trace_processor/metrics/sql/android/composer_execution.sql",
         "src/trace_processor/metrics/sql/android/composition_layers.sql",
         "src/trace_processor/metrics/sql/android/counter_span_view_merged.sql",
@@ -4016,6 +4017,7 @@
         "protos/perfetto/metrics/android/binder_metric.proto",
         "protos/perfetto/metrics/android/camera_metric.proto",
         "protos/perfetto/metrics/android/camera_unagg_metric.proto",
+        "protos/perfetto/metrics/android/codec_metrics.proto",
         "protos/perfetto/metrics/android/cpu_metric.proto",
         "protos/perfetto/metrics/android/display_metrics.proto",
         "protos/perfetto/metrics/android/dma_heap_metric.proto",
diff --git a/protos/perfetto/metrics/android/BUILD.gn b/protos/perfetto/metrics/android/BUILD.gn
index 90ca5af..a9e9d2c 100644
--- a/protos/perfetto/metrics/android/BUILD.gn
+++ b/protos/perfetto/metrics/android/BUILD.gn
@@ -29,6 +29,7 @@
     "binder_metric.proto",
     "camera_metric.proto",
     "camera_unagg_metric.proto",
+    "codec_metrics.proto",
     "cpu_metric.proto",
     "display_metrics.proto",
     "dma_heap_metric.proto",
diff --git a/protos/perfetto/metrics/android/codec_metrics.proto b/protos/perfetto/metrics/android/codec_metrics.proto
new file mode 100644
index 0000000..d752b19
--- /dev/null
+++ b/protos/perfetto/metrics/android/codec_metrics.proto
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package perfetto.protos;
+
+import "protos/perfetto/metrics/android/cpu_metric.proto";
+
+// These metrices collects various function and thread
+// usage within androd's codec framework. This can give an
+// idea about performance and cpu usage when using codec
+// framework
+message AndroidCodecMetrics {
+
+  // profile details in messages
+  message Detail {
+    // function thread
+    optional string thread_name = 1;
+    // total time
+    optional int64 total_cpu_ns = 2;
+    // CPU time ( time 'Running' on cpu)
+    optional int64 running_cpu_ns = 3;
+  }
+
+  // These are traces and could indicate framework queue latency
+  // buffer-packing, buffer-preprocess, buffer post-process
+  // latency etc. These metrics are monitored to track quality.
+  // Same message can come from different
+  // processes.
+  message CodecFunction {
+    // codec string
+    optional string codec_string = 1;
+    // process_name
+    optional string process_name = 2;
+    // details
+    optional Detail detail = 3;
+  }
+
+  // This message can indicate overall cpu
+  // utilization of codec framework threads.
+  message CpuUsage {
+    // name of process using codec framework
+    optional string process_name = 1;
+    // name of the codec thread
+    optional string thread_name = 2;
+    // total cpu usage of the codec thread
+    optional int64 thread_cpu_us = 3;
+    // can be number of codec framework thread
+    optional uint32 num_threads = 4;
+    // core type data info used by codec thread
+    repeated AndroidCpuMetric.CoreTypeData core_data = 5;
+  }
+
+  repeated CpuUsage cpu_usage = 1;
+  repeated CodecFunction codec_function = 2;
+
+}
\ No newline at end of file
diff --git a/protos/perfetto/metrics/metrics.proto b/protos/perfetto/metrics/metrics.proto
index 1beec18..6e7ef02 100644
--- a/protos/perfetto/metrics/metrics.proto
+++ b/protos/perfetto/metrics/metrics.proto
@@ -22,6 +22,7 @@
 import "protos/perfetto/metrics/android/batt_metric.proto";
 import "protos/perfetto/metrics/android/android_sysui_notifications_blocking_calls_metric.proto";
 import "protos/perfetto/metrics/android/android_blocking_calls_cuj_metric.proto";
+import "protos/perfetto/metrics/android/codec_metrics.proto";
 import "protos/perfetto/metrics/android/cpu_metric.proto";
 import "protos/perfetto/metrics/android/camera_metric.proto";
 import "protos/perfetto/metrics/android/camera_unagg_metric.proto";
@@ -242,6 +243,9 @@
 
   optional AndroidSysUINotificationsBlockingCallsMetric android_sysui_notifications_blocking_calls_metric = 51;
 
+  // Metrics to track codec framework.
+  optional AndroidCodecMetrics codec_metrics = 52;
+
   // Demo extensions.
   extensions 450 to 499;
 
diff --git a/protos/perfetto/metrics/perfetto_merged_metrics.proto b/protos/perfetto/metrics/perfetto_merged_metrics.proto
index 5428e13..3f983bc 100644
--- a/protos/perfetto/metrics/perfetto_merged_metrics.proto
+++ b/protos/perfetto/metrics/perfetto_merged_metrics.proto
@@ -419,6 +419,59 @@
 
 // End of protos/perfetto/metrics/android/cpu_metric.proto
 
+// Begin of protos/perfetto/metrics/android/codec_metrics.proto
+
+// These metrices collects various function and thread
+// usage within androd's codec framework. This can give an
+// idea about performance and cpu usage when using codec
+// framework
+message AndroidCodecMetrics {
+
+  // profile details in messages
+  message Detail {
+    // function thread
+    optional string thread_name = 1;
+    // total time
+    optional int64 total_cpu_ns = 2;
+    // CPU time ( time 'Running' on cpu)
+    optional int64 running_cpu_ns = 3;
+  }
+
+  // These are traces and could indicate framework queue latency
+  // buffer-packing, buffer-preprocess, buffer post-process
+  // latency etc. These metrics are monitored to track quality.
+  // Same message can come from different
+  // processes.
+  message CodecFunction {
+    // codec string
+    optional string codec_string = 1;
+    // process_name
+    optional string process_name = 2;
+    // details
+    optional Detail detail = 3;
+  }
+
+  // This message can indicate overall cpu
+  // utilization of codec framework threads.
+  message CpuUsage {
+    // name of process using codec framework
+    optional string process_name = 1;
+    // name of the codec thread
+    optional string thread_name = 2;
+    // total cpu usage of the codec thread
+    optional int64 thread_cpu_us = 3;
+    // can be number of codec framework thread
+    optional uint32 num_threads = 4;
+    // core type data info used by codec thread
+    repeated AndroidCpuMetric.CoreTypeData core_data = 5;
+  }
+
+  repeated CpuUsage cpu_usage = 1;
+  repeated CodecFunction codec_function = 2;
+
+}
+// End of protos/perfetto/metrics/android/codec_metrics.proto
+
 // Begin of protos/perfetto/metrics/android/display_metrics.proto
 
 message AndroidDisplayMetrics {
@@ -2247,6 +2300,9 @@
 
   optional AndroidSysUINotificationsBlockingCallsMetric android_sysui_notifications_blocking_calls_metric = 51;
 
+  // Metrics to track codec framework.
+  optional AndroidCodecMetrics codec_metrics = 52;
+
   // Demo extensions.
   extensions 450 to 499;
 
diff --git a/python/perfetto/trace_processor/metrics.descriptor b/python/perfetto/trace_processor/metrics.descriptor
index cfe58ff..c8673ba 100644
--- a/python/perfetto/trace_processor/metrics.descriptor
+++ b/python/perfetto/trace_processor/metrics.descriptor
Binary files differ
diff --git a/src/trace_processor/metrics/sql/android/BUILD.gn b/src/trace_processor/metrics/sql/android/BUILD.gn
index 8884dd8..147b688 100644
--- a/src/trace_processor/metrics/sql/android/BUILD.gn
+++ b/src/trace_processor/metrics/sql/android/BUILD.gn
@@ -62,6 +62,7 @@
     "composition_layers.sql",
     "counter_span_view_merged.sql",
     "cpu_info.sql",
+    "codec_metrics.sql",
     "display_metrics.sql",
     "frame_missed.sql",
     "g2d.sql",
diff --git a/src/trace_processor/metrics/sql/android/codec_metrics.sql b/src/trace_processor/metrics/sql/android/codec_metrics.sql
new file mode 100644
index 0000000..831cd8e
--- /dev/null
+++ b/src/trace_processor/metrics/sql/android/codec_metrics.sql
@@ -0,0 +1,197 @@
+--
+-- Copyright 2023 The Android Open Source Project
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--     https://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+SELECT RUN_METRIC('android/android_cpu.sql');
+
+-- Attaching thread proto with media thread name
+DROP VIEW IF EXISTS core_type_proto_per_thread_name;
+CREATE VIEW core_type_proto_per_thread_name AS
+SELECT
+thread.name as thread_name,
+core_type_proto_per_thread.proto AS proto
+FROM core_type_proto_per_thread
+JOIN thread using(utid)
+WHERE thread.name = 'MediaCodec_loop' OR
+      thread.name = 'CodecLooper'
+GROUP BY thread.name;
+
+-- aggregate all cpu the codec threads
+DROP VIEW IF EXISTS codec_per_thread_cpu_use;
+CREATE VIEW codec_per_thread_cpu_use AS
+SELECT
+  upid,
+  process.name AS process_name,
+  thread.name AS thread_name,
+  CAST(SUM(sched.dur) / 1e3 as INT64) AS cpu_time_us,
+  COUNT(DISTINCT utid) AS num_threads
+FROM sched
+JOIN thread USING(utid)
+JOIN process USING(upid)
+WHERE thread.name = 'MediaCodec_loop' OR
+      thread.name = 'CodecLooper'
+GROUP BY process.name, thread.name;
+
+-- All process that has codec thread
+DROP VIEW IF EXISTS android_codec_process;
+CREATE VIEW android_codec_process AS
+SELECT
+  upid,
+  process.name as process_name
+FROM sched
+JOIN thread using(utid)
+JOIN process using(upid)
+WHERE thread.name = 'MediaCodec_loop' OR
+      thread.name = 'CodecLooper'
+GROUP BY process_name;
+
+-- Total cpu for a process
+DROP VIEW IF EXISTS codec_total_per_process_cpu_use;
+CREATE VIEW codec_total_per_process_cpu_use AS
+SELECT
+  upid,
+  process_name,
+  CAST(SUM(sched.dur) / 1e3 as INT64) AS media_process_cpu_time_us
+FROM sched
+JOIN thread using(utid)
+JOIN android_codec_process using(upid)
+GROUP BY process_name;
+
+-- Joining total process with media thread table
+DROP VIEW IF EXISTS codec_per_process_thread_cpu_use;
+CREATE VIEW codec_per_process_thread_cpu_use AS
+SELECT
+  *
+FROM codec_total_per_process_cpu_use
+JOIN codec_per_thread_cpu_use using(process_name);
+
+-- Traces are collected using specific traits in codec framework. These traits
+-- are mapped to actual names of slices and then combined with other tables to
+-- give out the total_cpu and cpu_running time.
+
+-- Utility functions to trim codec trace string
+SELECT CREATE_FUNCTION(
+  -- extract the string demilited by the limiter
+  'EXTRACT_CODEC_STRING(slice_name STRING, limiter STRING)',
+   -- output the result string
+  'STRING',
+   -- delimit with the first occurrence
+  'select case when instr($slice_name, $limiter) > 0 then
+    substr($slice_name, 1, instr($slice_name, $limiter) - 1) else
+    $slice_name end'
+);
+
+-- traits strings from codec framework
+DROP TABLE IF EXISTS trace_trait_table;
+CREATE TABLE trace_trait_table(
+  trace_trait  varchar(100));
+insert into trace_trait_table (trace_trait) values
+  ('MediaCodec'),
+  ('CCodec'),
+  ('C2PooledBlockPool'),
+  ('C2BufferQueueBlockPool'),
+  ('Codec2'),
+  ('ACodec'),
+  ('FrameDecoder');
+
+-- Maps traits to slice strings. Any string with '@' is considered to indicate
+-- the same trace with different information.Hence those strings are delimited
+-- using '@' and considered as part of single trace.
+DROP VIEW IF EXISTS codec_slices;
+CREATE VIEW codec_slices AS
+SELECT
+  DISTINCT EXTRACT_CODEC_STRING(slice.name, '@') as codec_slice_string
+FROM slice
+JOIN trace_trait_table ON slice.name glob  '*' || trace_trait || '*';
+
+-- combine slice and thread info
+DROP VIEW IF EXISTS slice_with_utid;
+CREATE VIEW slice_with_utid AS
+SELECT
+  EXTRACT_CODEC_STRING(slice.name, '@') as codec_string,
+  ts,
+  dur,
+  upid,
+  slice.name as slice_name,
+  slice.id as slice_id, utid,
+  thread.name as thread_name
+FROM slice
+JOIN thread_track ON thread_track.id = slice.track_id
+JOIN thread USING (utid);
+
+-- Combine with thread_state info
+DROP TABLE IF EXISTS slice_thread_state_breakdown;
+CREATE VIRTUAL TABLE slice_thread_state_breakdown
+USING SPAN_LEFT_JOIN(
+  slice_with_utid PARTITIONED utid,
+  thread_state PARTITIONED utid
+);
+
+-- Get cpu_running_time for all the slices of interest
+DROP VIEW IF EXISTS slice_cpu_running;
+CREATE VIEW slice_cpu_running AS
+SELECT
+  codec_string,
+  sum(dur) as cpu_time,
+  sum(case when state = 'Running' then dur else 0 end) as cpu_run_ns,
+  thread_name,
+  process.name as process_name,
+  slice_id,
+  slice_name
+FROM slice_thread_state_breakdown
+LEFT JOIN process using(upid)
+where codec_string in (select codec_slice_string from codec_slices)
+GROUP BY codec_string, thread_name, process_name;
+
+
+-- Generate proto for the trace
+DROP VIEW IF EXISTS metrics_per_slice_type;
+CREATE VIEW metrics_per_slice_type AS
+SELECT
+  process_name,
+  codec_string,
+  AndroidCodecMetrics_Detail(
+    'thread_name', thread_name,
+    'total_cpu_ns', CAST(cpu_time as INT64),
+    'running_cpu_ns', CAST(cpu_run_ns as INT64)
+  ) AS proto
+FROM slice_cpu_running;
+
+-- Generating codec framework cpu metric
+DROP VIEW IF EXISTS codec_metrics_output;
+CREATE VIEW codec_metrics_output AS
+SELECT AndroidCodecMetrics(
+  'cpu_usage', (
+    SELECT RepeatedField(
+      AndroidCodecMetrics_CpuUsage(
+        'process_name', process_name,
+        'thread_name', thread_name,
+        'thread_cpu_us', CAST((cpu_time_us) as INT64),
+        'num_threads', num_threads,
+        'core_data', core_type_proto_per_thread_name.proto
+      )
+    ) FROM codec_per_process_thread_cpu_use
+      JOIN core_type_proto_per_thread_name using(thread_name)
+  ),
+  'codec_function', (
+    SELECT RepeatedField (
+      AndroidCodecMetrics_CodecFunction(
+        'codec_string', codec_string,
+        'process_name', process_name,
+        'detail', metrics_per_slice_type.proto
+      )
+    ) FROM metrics_per_slice_type
+  )
+);
\ No newline at end of file
diff --git a/test/data/codec-framedecoder-trace.pftrace.sha256 b/test/data/codec-framedecoder-trace.pftrace.sha256
new file mode 100644
index 0000000..9f6d046
--- /dev/null
+++ b/test/data/codec-framedecoder-trace.pftrace.sha256
@@ -0,0 +1 @@
+4b5b272aee9527e57c7cc369e0471eff8616ad2c8e40ce30f870f697640b0be2
\ No newline at end of file
diff --git a/test/trace_processor/diff_tests/codecs/codec-framedecoder-trace.out b/test/trace_processor/diff_tests/codecs/codec-framedecoder-trace.out
new file mode 100644
index 0000000..77b814d
--- /dev/null
+++ b/test/trace_processor/diff_tests/codecs/codec-framedecoder-trace.out
@@ -0,0 +1,91 @@
+codec_metrics {
+  cpu_usage {
+    process_name: "/system/bin/mediaserver"
+    thread_name: "CodecLooper"
+    thread_cpu_us: 40782
+    num_threads: 1
+    core_data {
+      type: "bigger"
+      metrics {
+        mcycles: 14
+        runtime_ns: 6151247
+        min_freq_khz: 1996800
+        max_freq_khz: 2400000
+        avg_freq_khz: 2399000
+      }
+    }
+    core_data {
+      type: "little"
+      metrics {
+        mcycles: 60
+        runtime_ns: 34631513
+        min_freq_khz: 1804800
+        max_freq_khz: 1804800
+        avg_freq_khz: 1804000
+      }
+    }
+  }
+  codec_function {
+    codec_string: "C2PooledBlockPool::fetchLinearBlock"
+    process_name: "/system/bin/mediaserver"
+    detail {
+      thread_name: "CodecLooper"
+      total_cpu_ns: 6505730
+      running_cpu_ns: 6224689
+    }
+  }
+  codec_function {
+    codec_string: "C2PooledBlockPool::fetchLinearBlock"
+    process_name: "/system/bin/mediaserver"
+    detail {
+      thread_name: "HwBinder:1465_4"
+      total_cpu_ns: 805417
+      running_cpu_ns: 805417
+    }
+  }
+  codec_function {
+    codec_string: "CCodecBufferChannel::onWorkDone(c2.android.hevc.decoder#264"
+    process_name: "/system/bin/mediaserver"
+    detail {
+      thread_name: "CodecLooper"
+      total_cpu_ns: 34476253
+      running_cpu_ns: 19314740
+    }
+  }
+  codec_function {
+    codec_string: "CCodecBufferChannel::queue(c2.android.hevc.decoder#264"
+    process_name: "/system/bin/mediaserver"
+    detail {
+      thread_name: "ALooper"
+      total_cpu_ns: 6599844
+      running_cpu_ns: 2656718
+    }
+  }
+  codec_function {
+    codec_string: "FrameDecoder::ColorConverter"
+    process_name: "/system/bin/mediaserver"
+    detail {
+      thread_name: "binder:1465_4"
+      total_cpu_ns: 18414272
+      running_cpu_ns: 10807813
+    }
+  }
+  codec_function {
+    codec_string: "FrameDecoder::ExtractFrame"
+    process_name: "/system/bin/mediaserver"
+    detail {
+      thread_name: "binder:1465_4"
+      total_cpu_ns: 226664606
+      running_cpu_ns: 17917404
+    }
+  }
+  codec_function {
+    codec_string: "FrameDecoderBenchmark#frameDecoderBenchmarkTest"
+    process_name: "android.platform.test.scenario"
+    detail {
+      thread_name: "roidJUnitRunner"
+      total_cpu_ns: -1
+      running_cpu_ns: -1
+    }
+  }
+}
diff --git a/test/trace_processor/diff_tests/codecs/tests.py b/test/trace_processor/diff_tests/codecs/tests.py
new file mode 100644
index 0000000..a475b34
--- /dev/null
+++ b/test/trace_processor/diff_tests/codecs/tests.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License a
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from python.generators.diff_tests.testing import Path, DataPath, Metric
+from python.generators.diff_tests.testing import Csv, Json, TextProto
+from python.generators.diff_tests.testing import DiffTestBlueprint
+from python.generators.diff_tests.testing import TestSuite
+
+
+class Codecs(TestSuite):
+
+  def test_codecs_framedecoder_metric(self):
+    return DiffTestBlueprint(
+        trace=DataPath('codec-framedecoder-trace.pftrace'),
+        query=Metric('codec_metrics'),
+        out=Path('codec-framedecoder-trace.out'))
diff --git a/test/trace_processor/diff_tests/include_index.py b/test/trace_processor/diff_tests/include_index.py
index 3e51524..b4d7ded 100644
--- a/test/trace_processor/diff_tests/include_index.py
+++ b/test/trace_processor/diff_tests/include_index.py
@@ -40,6 +40,7 @@
 from diff_tests.chrome.tests_rail_modes import ChromeRailModes
 from diff_tests.chrome.tests_scroll_jank import ChromeScrollJank
 from diff_tests.chrome.tests_touch_gesture import ChromeTouchGesture
+from diff_tests.codecs.tests import Codecs
 from diff_tests.cros.tests import Cros
 from diff_tests.dynamic.tests import Dynamic
 from diff_tests.fs.tests import Fs
@@ -111,6 +112,7 @@
       *ChromeProcesses(index_path, 'chrome', 'ChromeProcesses').fetch(),
       *ChromeArgs(index_path, 'chrome', 'ChromeArgs').fetch(),
       *Chrome(index_path, 'chrome', 'Chrome').fetch(),
+      *Codecs(index_path, 'codecs', 'Codecs').fetch(),
       *Cros(index_path, 'cros', 'Cros').fetch(),
       *Dynamic(index_path, 'dynamic', 'Dynamic').fetch(),
       *EntityStateResidency(index_path, 'power',
