gstelementfactory: Add MEDIA_HARDWARE klass classifier
authorPhilippe Normand <philn@igalia.com>
Fri, 5 Oct 2018 10:19:46 +0000 (12:19 +0200)
committerPhilippe Normand <philn@igalia.com>
Fri, 12 Oct 2018 09:08:47 +0000 (10:08 +0100)
The Harware factory type classifier allows elements (decoders and encoders,
mostly) to advertize they rely on hardware devices to perform encoding or
decoding operations. This classifier can be used by applications to filter and
select only the elements that use hardware devices, for instance to ensure
zero-copy support is enabled for a specific pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=796921

docs/gst/gstreamer-sections.txt
gst/gstelementfactory.h

index ecc6b04..6c130a6 100644 (file)
@@ -1051,6 +1051,7 @@ GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE
 GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA
 GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE
 GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO
+GST_ELEMENT_FACTORY_TYPE_MEDIA_HARDWARE
 GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY
 GST_ELEMENT_FACTORY_TYPE_MUXER
 GST_ELEMENT_FACTORY_TYPE_PARSER
index c66dd30..505d975 100644 (file)
@@ -111,6 +111,7 @@ gboolean                gst_element_register                    (GstPlugin *plug
  * @GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE: Elements handling image media types
  * @GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE: Elements handling subtitle media types
  * @GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA: Elements handling metadata media types
+ * @GST_ELEMENT_FACTORY_TYPE_MEDIA_HARDWARE: Elements interacting with hardware devices, you may need to put the element in "READY" state to test if the hardware is present in the system (Since 1.16)
  *
  * The type of #GstElementFactory to filter.
  *
@@ -142,7 +143,7 @@ typedef guint64 GstElementFactoryListType;
 #define  GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE    ((GstElementFactoryListType)(G_GUINT64_CONSTANT (1) << 51))
 #define  GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE ((GstElementFactoryListType)(G_GUINT64_CONSTANT (1) << 52))
 #define  GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA ((GstElementFactoryListType)(G_GUINT64_CONSTANT (1) << 53))
-
+#define  GST_ELEMENT_FACTORY_TYPE_MEDIA_HARDWARE ((GstElementFactoryListType)(G_GUINT64_CONSTANT (1) << 54))
 /**
  * GST_ELEMENT_FACTORY_TYPE_ANY: (value 562949953421311) (type GstElementFactoryListType)
  *
@@ -209,6 +210,7 @@ typedef guint64 GstElementFactoryListType;
 #define GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE           "Image"
 #define GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE        "Subtitle"
 #define GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA        "Metadata"
+#define GST_ELEMENT_FACTORY_KLASS_MEDIA_HARDWARE        "Hardware"
 
 GST_API
 gboolean      gst_element_factory_list_is_type      (GstElementFactory *factory,