diff --git a/src/third_party/starboard/rdk/shared/media/gst_media_utils.cc b/src/third_party/starboard/rdk/shared/media/gst_media_utils.cc
index 4f19891..934c5c8 100644
--- a/src/third_party/starboard/rdk/shared/media/gst_media_utils.cc
+++ b/src/third_party/starboard/rdk/shared/media/gst_media_utils.cc
@@ -15,6 +15,7 @@
 //
 // SPDX-License-Identifier: Apache-2.0
 #include <memory>
+#include <map>
 #include <type_traits>
 
 #include <glib.h>
@@ -56,18 +57,14 @@
 }
 
 template <typename C>
-bool GstRegistryHasElementForCodec(C codec) {
+bool GstRegistryHasElementForCodecImpl(C codec) {
   static_assert(std::is_same<C, SbMediaVideoCodec>::value ||
                 std::is_same<C, SbMediaAudioCodec>::value, "Invalid codec");
   auto type = std::is_same<C, SbMediaVideoCodec>::value
                   ? GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO
                   : GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO;
-  UniqueFeatureList parser_factories{gst_element_factory_list_get_elements(
-      GST_ELEMENT_FACTORY_TYPE_PARSER | type, GST_RANK_MARGINAL)};
   UniqueFeatureList decoder_factories{gst_element_factory_list_get_elements(
       GST_ELEMENT_FACTORY_TYPE_DECODER | type, GST_RANK_MARGINAL)};
-  // UniqueFeatureList demuxer_factories{gst_element_factory_list_get_elements(
-  //     GST_ELEMENT_FACTORY_TYPE_DEMUXER, GST_RANK_MARGINAL)};
 
   UniqueFeatureList elements;
   std::vector<std::string> caps;
@@ -93,6 +90,9 @@
     return true;
   }
 
+  UniqueFeatureList parser_factories{gst_element_factory_list_get_elements(
+      GST_ELEMENT_FACTORY_TYPE_PARSER | type, GST_RANK_MARGINAL)};
+
   SB_DLOG(INFO) << "No decoder for codec " << codec << ". Falling back to parsers.";
   // No decoder. Check if there's a parser and a decoder accepting its caps.
   for (auto single_caps : caps) {
@@ -129,6 +129,17 @@
   return false;
 }
 
+template <typename C>
+bool GstRegistryHasElementForCodec(C codec) {
+  static std::map<C, bool> cache;
+  auto it = cache.find(codec);
+  if (it != cache.end())
+    return it->second;
+  bool r = GstRegistryHasElementForCodecImpl(codec);
+  cache[codec] = r;
+  return r;
+}
+
 }  // namespace
 
 bool GstRegistryHasElementForMediaType(SbMediaVideoCodec codec) {
