frei0r: Use static caps instead of converting strings to caps all the time
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 28 Sep 2010 14:20:50 +0000 (16:20 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 28 Sep 2010 14:20:50 +0000 (16:20 +0200)
gst/frei0r/gstfrei0r.c

index 6b8c008..c7a9c71 100644 (file)
 GST_DEBUG_CATEGORY (frei0r_debug);
 #define GST_CAT_DEFAULT frei0r_debug
 
+static GstStaticCaps bgra8888_caps = GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRA);
+static GstStaticCaps rgba8888_caps = GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBA);
+static GstStaticCaps packed32_caps = GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRA " ; "
+    GST_VIDEO_CAPS_RGBA " ; "
+    GST_VIDEO_CAPS_ABGR " ; "
+    GST_VIDEO_CAPS_ARGB " ; "
+    GST_VIDEO_CAPS_BGRx " ; "
+    GST_VIDEO_CAPS_RGBx " ; "
+    GST_VIDEO_CAPS_xBGR " ; "
+    GST_VIDEO_CAPS_xRGB " ; " GST_VIDEO_CAPS_YUV ("AYUV"));
+
 GstCaps *
 gst_frei0r_caps_from_color_model (gint color_model)
 {
   switch (color_model) {
     case F0R_COLOR_MODEL_BGRA8888:
-      return gst_caps_from_string (GST_VIDEO_CAPS_BGRA);
+      return gst_static_caps_get (&bgra8888_caps);
     case F0R_COLOR_MODEL_RGBA8888:
-      return gst_caps_from_string (GST_VIDEO_CAPS_RGBA);
+      return gst_static_caps_get (&rgba8888_caps);
     case F0R_COLOR_MODEL_PACKED32:
-      return gst_caps_from_string (GST_VIDEO_CAPS_BGRA " ; "
-          GST_VIDEO_CAPS_RGBA " ; "
-          GST_VIDEO_CAPS_ABGR " ; "
-          GST_VIDEO_CAPS_ARGB " ; "
-          GST_VIDEO_CAPS_BGRx " ; "
-          GST_VIDEO_CAPS_RGBx " ; "
-          GST_VIDEO_CAPS_xBGR " ; "
-          GST_VIDEO_CAPS_xRGB " ; " GST_VIDEO_CAPS_YUV ("AYUV"));
+      return gst_static_caps_get (&packed32_caps);
     default:
       break;
   }