aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-06-28 11:12:35 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-06-28 11:12:35 +0200
commite2d0563de5a89cad3abe2e6750592be813b295bf (patch)
treecb38a11eaa2069a50d5d2f50543c19174580a298
parentecb9a290ddeb6fb90fb2d741b9b4267348512ebf (diff)
Imported Upstream version 1.3.90
-rw-r--r--ChangeLog386
-rw-r--r--NEWS13
-rw-r--r--RELEASE62
-rwxr-xr-xconfig.guess192
-rwxr-xr-xconfig.sub23
-rwxr-xr-xconfigure34
-rw-r--r--configure.ac4
-rw-r--r--docs/gst/gstreamer-docs.sgml6
-rw-r--r--docs/gst/gstreamer-sections.txt128
-rw-r--r--docs/gst/html/GstAllocator.html9
-rw-r--r--docs/gst/html/GstBin.html47
-rw-r--r--docs/gst/html/GstBuffer.html35
-rw-r--r--docs/gst/html/GstBufferList.html10
-rw-r--r--docs/gst/html/GstBufferPool.html8
-rw-r--r--docs/gst/html/GstBus.html59
-rw-r--r--docs/gst/html/GstCaps.html6
-rw-r--r--docs/gst/html/GstCapsFeatures.html7
-rw-r--r--docs/gst/html/GstChildProxy.html12
-rw-r--r--docs/gst/html/GstClock.html7
-rw-r--r--docs/gst/html/GstControlBinding.html6
-rw-r--r--docs/gst/html/GstDateTime.html24
-rw-r--r--docs/gst/html/GstDeviceProviderFactory.html (renamed from docs/gst/html/GstDeviceMonitorFactory.html)275
-rw-r--r--docs/gst/html/GstElement.html49
-rw-r--r--docs/gst/html/GstElementFactory.html26
-rw-r--r--docs/gst/html/GstEvent.html18
-rw-r--r--docs/gst/html/GstGhostPad.html38
-rw-r--r--docs/gst/html/GstMemory.html8
-rw-r--r--docs/gst/html/GstMessage.html28
-rw-r--r--docs/gst/html/GstObject.html36
-rw-r--r--docs/gst/html/GstPad.html191
-rw-r--r--docs/gst/html/GstPlugin.html23
-rw-r--r--docs/gst/html/GstPluginFeature.html23
-rw-r--r--docs/gst/html/GstPreset.html9
-rw-r--r--docs/gst/html/GstQuery.html6
-rw-r--r--docs/gst/html/GstRegistry.html20
-rw-r--r--docs/gst/html/GstSample.html24
-rw-r--r--docs/gst/html/GstStructure.html20
-rw-r--r--docs/gst/html/GstTagList.html29
-rw-r--r--docs/gst/html/GstTagSetter.html6
-rw-r--r--docs/gst/html/GstTaskPool.html8
-rw-r--r--docs/gst/html/GstToc.html28
-rw-r--r--docs/gst/html/GstTypeFindFactory.html5
-rw-r--r--docs/gst/html/api-index-full.html158
-rw-r--r--docs/gst/html/gstreamer-1.0.devhelp280
-rw-r--r--docs/gst/html/gstreamer-GstAtomicQueue.html6
-rw-r--r--docs/gst/html/gstreamer-GstDevice.html42
-rw-r--r--docs/gst/html/gstreamer-GstDeviceMonitor.html753
-rw-r--r--docs/gst/html/gstreamer-GstDeviceProvider.html817
-rw-r--r--docs/gst/html/gstreamer-GstFormat.html13
-rw-r--r--docs/gst/html/gstreamer-GstGlobalDeviceMonitor.html468
-rw-r--r--docs/gst/html/gstreamer-GstInfo.html4
-rw-r--r--docs/gst/html/gstreamer-GstMeta.html6
-rw-r--r--docs/gst/html/gstreamer-GstMiniObject.html20
-rw-r--r--docs/gst/html/gstreamer-GstParse.html6
-rw-r--r--docs/gst/html/gstreamer-GstPoll.html12
-rw-r--r--docs/gst/html/gstreamer-GstTocSetter.html6
-rw-r--r--docs/gst/html/gstreamer-GstTypeFind.html6
-rw-r--r--docs/gst/html/gstreamer-GstUriHandler.html23
-rw-r--r--docs/gst/html/gstreamer-GstUtils.html5
-rw-r--r--docs/gst/html/gstreamer-GstValue.html18
-rw-r--r--docs/gst/html/gstreamer-GstVersion.html2
-rw-r--r--docs/gst/html/gstreamer-device-probing.html12
-rw-r--r--docs/gst/html/gstreamer-hierarchy.html2
-rw-r--r--docs/gst/html/gstreamer-support.html4
-rw-r--r--docs/gst/html/index.html10
-rw-r--r--docs/gst/html/index.sgml128
-rw-r--r--docs/libs/html/GstAdapter.html33
-rw-r--r--docs/libs/html/GstBaseSink.html8
-rw-r--r--docs/libs/html/GstCollectPads.html17
-rw-r--r--docs/libs/html/annotation-glossary.html2
-rw-r--r--docs/libs/html/gstreamer-libs-GstTypeFindHelper.html38
-rw-r--r--docs/libs/html/index.html2
-rw-r--r--docs/libs/html/index.sgml1
-rw-r--r--docs/plugins/gstreamer-plugins.hierarchy2
-rw-r--r--docs/plugins/html/gstreamer-plugins-plugin-coreelements.html2
-rw-r--r--docs/plugins/html/index.html2
-rw-r--r--docs/plugins/inspect/plugin-coreelements.xml2
-rw-r--r--gst/Makefile.am12
-rw-r--r--gst/Makefile.in56
-rw-r--r--gst/gst.h4
-rw-r--r--gst/gst_private.h10
-rw-r--r--gst/gstallocator.c5
-rw-r--r--gst/gstatomicqueue.c4
-rw-r--r--gst/gstbin.c26
-rw-r--r--gst/gstbuffer.c19
-rw-r--r--gst/gstbuffer.h6
-rw-r--r--gst/gstbufferlist.c5
-rw-r--r--gst/gstbufferlist.h2
-rw-r--r--gst/gstbufferpool.c4
-rw-r--r--gst/gstbus.c43
-rw-r--r--gst/gstcaps.c4
-rw-r--r--gst/gstcaps.h4
-rw-r--r--gst/gstcapsfeatures.c5
-rw-r--r--gst/gstchildproxy.c8
-rw-r--r--gst/gstclock.c5
-rw-r--r--gst/gstcontrolbinding.c4
-rw-r--r--gst/gstdatetime.c16
-rw-r--r--gst/gstdevice.c23
-rw-r--r--gst/gstdevicemonitor.c805
-rw-r--r--gst/gstdevicemonitor.h88
-rw-r--r--gst/gstdevicemonitorfactory.c594
-rw-r--r--gst/gstdevicemonitorfactory.h90
-rw-r--r--gst/gstdeviceprovider.c591
-rw-r--r--gst/gstdeviceprovider.h142
-rw-r--r--gst/gstdeviceproviderfactory.c580
-rw-r--r--gst/gstdeviceproviderfactory.h90
-rw-r--r--gst/gstelement.c31
-rw-r--r--gst/gstelement.h3
-rw-r--r--gst/gstelementfactory.c16
-rw-r--r--gst/gstevent.h12
-rw-r--r--gst/gstformat.c7
-rw-r--r--gst/gstghostpad.c25
-rw-r--r--gst/gstglobaldevicemonitor.c501
-rw-r--r--gst/gstglobaldevicemonitor.h105
-rw-r--r--gst/gstinfo.h2
-rw-r--r--gst/gstmemory.c4
-rw-r--r--gst/gstmessage.c20
-rw-r--r--gst/gstmessage.h8
-rw-r--r--gst/gstmeta.c4
-rw-r--r--gst/gstminiobject.c12
-rw-r--r--gst/gstobject.c27
-rw-r--r--gst/gstpad.c40
-rw-r--r--gst/gstpad.h56
-rw-r--r--gst/gstplugin.c6
-rw-r--r--gst/gstplugin.h11
-rw-r--r--gst/gstpluginfeature.c13
-rw-r--r--gst/gstpluginfeature.h2
-rw-r--r--gst/gstpoll.c8
-rw-r--r--gst/gstpreset.c11
-rw-r--r--gst/gstquery.h4
-rw-r--r--gst/gstregistry.c36
-rw-r--r--gst/gstregistrybinary.c4
-rw-r--r--gst/gstregistrychunks.c20
-rw-r--r--gst/gstregistrychunks.h8
-rw-r--r--gst/gstsample.c16
-rw-r--r--gst/gststructure.c14
-rw-r--r--gst/gsttaglist.c19
-rw-r--r--gst/gsttagsetter.c4
-rw-r--r--gst/gsttaskpool.c6
-rw-r--r--gst/gsttoc.c26
-rw-r--r--gst/gsttocsetter.c4
-rw-r--r--gst/gsttypefind.c4
-rw-r--r--gst/gsttypefindfactory.c4
-rw-r--r--gst/gsturi.c20
-rw-r--r--gst/gstutils.c36
-rw-r--r--gst/gstvalue.c16
-rw-r--r--gstreamer.doap10
-rw-r--r--gstreamer.spec2
-rw-r--r--libs/gst/base/gstadapter.c20
-rw-r--r--libs/gst/base/gstbaseparse.c4
-rw-r--r--libs/gst/base/gstbasesink.c6
-rw-r--r--libs/gst/base/gstcollectpads.c8
-rw-r--r--libs/gst/base/gstcollectpads.h3
-rw-r--r--libs/gst/base/gstdataqueue.c26
-rw-r--r--libs/gst/base/gstdataqueue.h11
-rw-r--r--libs/gst/base/gstindex.c4
-rw-r--r--libs/gst/base/gstqueuearray.c18
-rw-r--r--libs/gst/base/gstqueuearray.h3
-rw-r--r--libs/gst/base/gsttypefindhelper.c34
-rw-r--r--plugins/elements/gstelements_private.c15
-rw-r--r--plugins/elements/gstfilesrc.c14
-rw-r--r--po/af.gmobin14454 -> 14454 bytes
-rw-r--r--po/af.po2
-rw-r--r--po/az.gmobin1683 -> 1683 bytes
-rw-r--r--po/az.po2
-rw-r--r--po/be.gmobin4843 -> 4843 bytes
-rw-r--r--po/be.po2
-rw-r--r--po/bg.gmobin42608 -> 42608 bytes
-rw-r--r--po/bg.po2
-rw-r--r--po/ca.gmobin33221 -> 33221 bytes
-rw-r--r--po/ca.po2
-rw-r--r--po/cs.gmobin36164 -> 36164 bytes
-rw-r--r--po/cs.po2
-rw-r--r--po/da.gmobin34921 -> 34921 bytes
-rw-r--r--po/da.po2
-rw-r--r--po/de.gmobin37325 -> 37325 bytes
-rw-r--r--po/de.po2
-rw-r--r--po/el.gmobin43323 -> 43323 bytes
-rw-r--r--po/el.po2
-rw-r--r--po/en_GB.gmobin11028 -> 11028 bytes
-rw-r--r--po/en_GB.po2
-rw-r--r--po/eo.gmobin4307 -> 4307 bytes
-rw-r--r--po/eo.po2
-rw-r--r--po/es.gmobin33418 -> 33418 bytes
-rw-r--r--po/es.po2
-rw-r--r--po/eu.gmobin28949 -> 28949 bytes
-rw-r--r--po/eu.po2
-rw-r--r--po/fi.gmobin31958 -> 31958 bytes
-rw-r--r--po/fi.po2
-rw-r--r--po/fr.gmobin35283 -> 35283 bytes
-rw-r--r--po/fr.po2
-rw-r--r--po/gl.gmobin34937 -> 34937 bytes
-rw-r--r--po/gl.po2
-rw-r--r--po/gstreamer-1.0.pot22
-rw-r--r--po/hr.gmobin31213 -> 31213 bytes
-rw-r--r--po/hr.po2
-rw-r--r--po/hu.gmobin37285 -> 37285 bytes
-rw-r--r--po/hu.po2
-rw-r--r--po/id.gmobin35145 -> 35145 bytes
-rw-r--r--po/id.po2
-rw-r--r--po/it.gmobin33061 -> 33061 bytes
-rw-r--r--po/it.po2
-rw-r--r--po/ja.gmobin16417 -> 16417 bytes
-rw-r--r--po/ja.po2
-rw-r--r--po/lt.gmobin30798 -> 30798 bytes
-rw-r--r--po/lt.po2
-rw-r--r--po/nb.gmobin9881 -> 9881 bytes
-rw-r--r--po/nb.po2
-rw-r--r--po/nl.gmobin36224 -> 36224 bytes
-rw-r--r--po/nl.po2
-rw-r--r--po/pl.gmobin36584 -> 36584 bytes
-rw-r--r--po/pl.po2
-rw-r--r--po/pt_BR.gmobin36400 -> 36400 bytes
-rw-r--r--po/pt_BR.po2
-rw-r--r--po/ro.gmobin32196 -> 32196 bytes
-rw-r--r--po/ro.po2
-rw-r--r--po/ru.gmobin47078 -> 47078 bytes
-rw-r--r--po/ru.po2
-rw-r--r--po/rw.gmobin689 -> 689 bytes
-rw-r--r--po/rw.po2
-rw-r--r--po/sk.gmobin35880 -> 35880 bytes
-rw-r--r--po/sk.po2
-rw-r--r--po/sl.gmobin34967 -> 34967 bytes
-rw-r--r--po/sl.po2
-rw-r--r--po/sq.gmobin12127 -> 12127 bytes
-rw-r--r--po/sq.po2
-rw-r--r--po/sr.gmobin46552 -> 46552 bytes
-rw-r--r--po/sr.po2
-rw-r--r--po/sv.gmobin35236 -> 35236 bytes
-rw-r--r--po/sv.po2
-rw-r--r--po/tr.gmobin11490 -> 11490 bytes
-rw-r--r--po/tr.po2
-rw-r--r--po/uk.gmobin47938 -> 47938 bytes
-rw-r--r--po/uk.po2
-rw-r--r--po/vi.gmobin39397 -> 39397 bytes
-rw-r--r--po/vi.po2
-rw-r--r--po/zh_CN.gmobin25011 -> 25011 bytes
-rw-r--r--po/zh_CN.po2
-rw-r--r--po/zh_TW.gmobin31958 -> 31958 bytes
-rw-r--r--po/zh_TW.po2
-rw-r--r--tests/check/Makefile.am3
-rw-r--r--tests/check/Makefile.in50
-rw-r--r--tests/check/gst/gstbufferlist.c601
-rw-r--r--tests/check/gst/gstcaps.c7
-rw-r--r--tests/check/gst/gstdevice.c561
-rw-r--r--tools/gst-inspect.c16
-rw-r--r--win32/common/config.h8
-rw-r--r--win32/common/gstversion.h2
-rw-r--r--win32/common/libgstreamer.def58
249 files changed, 5729 insertions, 4923 deletions
diff --git a/ChangeLog b/ChangeLog
index c17b25c..4ccde0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,391 @@
+=== release 1.3.90 ===
+
+2014-06-28 10:45:18 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * configure.ac:
+ * docs/plugins/inspect/plugin-coreelements.xml:
+ * gstreamer.doap:
+ * win32/common/config.h:
+ * win32/common/gstversion.h:
+ Release 1.3.90
+
+2014-06-28 10:41:48 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * po/af.po:
+ * po/az.po:
+ * po/be.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/eo.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/gl.po:
+ * po/hr.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/lt.po:
+ * po/nb.po:
+ * po/nl.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ro.po:
+ * po/ru.po:
+ * po/rw.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_TW.po:
+ Update .po files
+
+2014-06-27 10:44:32 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/gstdevicemonitor.c:
+ * tests/check/gst/gstdevice.c:
+ devicemonitor: don't fail when started without any filters
+ Just show all devices then.
+
+2014-06-27 10:44:01 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * gst/gstdeviceproviderfactory.c:
+ deviceproviderfactory: handle NULL classes argument and match any
+
+2014-06-26 21:00:40 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * tests/check/Makefile.am:
+ * tests/check/gst/.gitignore:
+ * tests/check/gst/gstdevice.c:
+ device: Add unit tests
+
+2014-06-26 17:22:25 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/gstdevicemonitor.c:
+ * gst/gstdeviceprovider.c:
+ * gst/gstdeviceproviderfactory.c:
+ * gst/gstmessage.c:
+ devicemonitor: Improve documentation
+
+2014-06-26 17:13:12 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gstdevicemonitor.c:
+ * gst/gstdevicemonitor.h:
+ * gst/gstdeviceprovider.c:
+ * gst/gstdeviceproviderfactory.c:
+ * gst/gstdeviceproviderfactory.h:
+ * win32/common/libgstreamer.def:
+ devicemonitor: Make it possible to add multiple filters
+ Each filter will include a GstCaps and a set of classes to match
+
+2014-06-26 16:31:51 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst/gstdevice.c:
+ device: Add pre-conditions
+
+2014-06-26 15:08:46 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/gst/gstreamer-docs.sgml:
+ * docs/gst/gstreamer-sections.txt:
+ * gst/Makefile.am:
+ * gst/gst.h:
+ * gst/gstdevicemonitor.c:
+ * gst/gstdevicemonitor.h:
+ * gst/gstglobaldevicemonitor.c:
+ * gst/gstglobaldevicemonitor.h:
+ * win32/common/libgstreamer.def:
+ GstDeviceMonitor: Rename from GstGlobalDeviceMonitor
+
+2014-06-26 14:28:09 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * docs/gst/gstreamer-docs.sgml:
+ * docs/gst/gstreamer-sections.txt:
+ * docs/plugins/gstreamer-plugins.hierarchy:
+ * gst/Makefile.am:
+ * gst/gst.h:
+ * gst/gst_private.h:
+ * gst/gstdevice.c:
+ * gst/gstdevicemonitor.c:
+ * gst/gstdevicemonitor.h:
+ * gst/gstdevicemonitorfactory.c:
+ * gst/gstdevicemonitorfactory.h:
+ * gst/gstdeviceprovider.c:
+ * gst/gstdeviceprovider.h:
+ * gst/gstdeviceproviderfactory.c:
+ * gst/gstdeviceproviderfactory.h:
+ * gst/gstglobaldevicemonitor.c:
+ * gst/gstglobaldevicemonitor.h:
+ * gst/gstmessage.c:
+ * gst/gstmessage.h:
+ * gst/gstregistry.c:
+ * gst/gstregistrybinary.c:
+ * gst/gstregistrychunks.c:
+ * gst/gstregistrychunks.h:
+ * tools/gst-inspect.c:
+ * win32/common/libgstreamer.def:
+ DeviceProvider: Rename from DeviceMonitor
+
+2014-06-26 19:31:33 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/base/gstdataqueue.c:
+ * libs/gst/base/gstdataqueue.h:
+ dataqueue: Hide from bindings
+ Other languages have their own data structures that are more convenient to
+ use.
+ https://bugzilla.gnome.org/show_bug.cgi?id=731303
+
+2014-06-26 19:30:52 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/base/gstqueuearray.c:
+ * libs/gst/base/gstqueuearray.h:
+ queuearray: Hide from bindings
+ Other languages have their own data structures that are more convenient to use.
+ https://bugzilla.gnome.org/show_bug.cgi?id=731350
+
+2014-05-28 10:14:45 +0100 Philip Withnall <philip.withnall@collabora.co.uk>
+
+ * gst/gstminiobject.c:
+ miniobject: Add missing (nullable) annotations
+ gst_mini_object_replace() can take NULL mini-objects.
+ https://bugzilla.gnome.org/show_bug.cgi?id=730873
+
+2014-06-26 19:02:06 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/gstmessage.c:
+ message: Application and element messages should not have NULL structures
+ It does not make sense for them.
+
+2014-06-11 16:19:01 -0700 Evan Nemerson <evan@nemerson.com>
+
+ * gst/gstbufferpool.c:
+ * gst/gstelement.c:
+ * gst/gstinfo.h:
+ * gst/gstmessage.c:
+ * gst/gstobject.c:
+ * gst/gstpad.c:
+ * gst/gstpad.h:
+ * gst/gstplugin.h:
+ * gst/gstpreset.c:
+ * gst/gsttaglist.c:
+ introspection: add some missing allow-none annotations to in params
+ https://bugzilla.gnome.org/show_bug.cgi?id=730957
+
+2014-06-11 16:06:19 -0700 Evan Nemerson <evan@nemerson.com>
+
+ * gst/gstbuffer.c:
+ * gst/gstbuffer.h:
+ * gst/gstbufferlist.h:
+ * gst/gstcaps.h:
+ * gst/gstevent.h:
+ * gst/gstmessage.h:
+ * gst/gstobject.c:
+ * gst/gstpreset.c:
+ * gst/gstquery.h:
+ * gst/gsttoc.c:
+ * gst/gstvalue.c:
+ introspection: add nullability annotations to out and inout params
+ https://bugzilla.gnome.org/show_bug.cgi?id=730957
+
+2014-06-11 15:21:34 -0700 Evan Nemerson <evan@nemerson.com>
+
+ * gst/gstallocator.c:
+ * gst/gstatomicqueue.c:
+ * gst/gstbin.c:
+ * gst/gstbuffer.c:
+ * gst/gstbufferlist.c:
+ * gst/gstbus.c:
+ * gst/gstcapsfeatures.c:
+ * gst/gstchildproxy.c:
+ * gst/gstclock.c:
+ * gst/gstcontrolbinding.c:
+ * gst/gstdatetime.c:
+ * gst/gstdevicemonitorfactory.c:
+ * gst/gstelement.c:
+ * gst/gstelement.h:
+ * gst/gstelementfactory.c:
+ * gst/gstformat.c:
+ * gst/gstghostpad.c:
+ * gst/gstmemory.c:
+ * gst/gstmeta.c:
+ * gst/gstminiobject.c:
+ * gst/gstobject.c:
+ * gst/gstpad.c:
+ * gst/gstpad.h:
+ * gst/gstplugin.c:
+ * gst/gstpluginfeature.c:
+ * gst/gstpluginfeature.h:
+ * gst/gstpoll.c:
+ * gst/gstpreset.c:
+ * gst/gstregistry.c:
+ * gst/gstsample.c:
+ * gst/gststructure.c:
+ * gst/gsttaglist.c:
+ * gst/gsttagsetter.c:
+ * gst/gsttaskpool.c:
+ * gst/gsttoc.c:
+ * gst/gsttocsetter.c:
+ * gst/gsttypefind.c:
+ * gst/gsttypefindfactory.c:
+ * gst/gsturi.c:
+ * gst/gstutils.c:
+ * gst/gstvalue.c:
+ introspection: add missing (nullable) annotations to return values
+ Support for (nullable) was added to G-I at the same time as nullable
+ return values. Previous versions of G-I will not mark return values as
+ nullable, even when an (allow-none) annotation is present, so it is
+ not necessary to add (allow-none) annotations for compatibility with
+ older versions of G-I.
+ https://bugzilla.gnome.org/show_bug.cgi?id=730957
+
+2014-06-11 17:15:39 -0700 Evan Nemerson <evan@nemerson.com>
+
+ * libs/gst/base/gstadapter.c:
+ * libs/gst/base/gstcollectpads.c:
+ * libs/gst/base/gstcollectpads.h:
+ base: assorted introspection fixes and additions
+ https://bugzilla.gnome.org/show_bug.cgi?id=731542
+
+2014-06-11 17:12:20 -0700 Evan Nemerson <evan@nemerson.com>
+
+ * libs/gst/base/gstadapter.c:
+ * libs/gst/base/gstbasesink.c:
+ * libs/gst/base/gstcollectpads.c:
+ * libs/gst/base/gstindex.c:
+ * libs/gst/base/gsttypefindhelper.c:
+ base: add (nullable) annotations to return values
+ https://bugzilla.gnome.org/show_bug.cgi?id=731542
+
+2014-06-26 14:08:03 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/gst/gstbufferlist.c:
+ tests: add another buffer list test case
+
+2014-06-26 13:24:08 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * tests/check/gst/gstbufferlist.c:
+ tests: port and re-enable buffer list tests
+ And remove some which don't apply any more.
+
+2014-06-26 11:58:04 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+ * tests/check/gst/gstcaps.c:
+ tests: enhance the gstcaps test_features to also test gst_caps_set_features()
+ Compliments my previous patch for gst_caps_set_features, which would
+ previously assert and leak the old GstCapsFeatures if the caps already
+ had a GstCapsFeatures and you were trying to replace it with a new one.
+
+2014-06-26 11:16:34 +0300 George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+ * gst/gstcaps.c:
+ caps: unset the parent refcount of the old features before freeing them in gst_caps_set_features()
+ Otherwise gst_caps_features_free() asserts and the features structure is leaked
+
+2014-06-16 19:30:06 -0300 Thiago Santos <ts.santos@sisa.samsung.com>
+
+ * libs/gst/base/gstbaseparse.c:
+ baseparse: avoid returning _OK for _NOT_LINKED
+ When the parser receives non-aligned packets it can push a buffer
+ and get a not-linked return while still leaving some data still to
+ be parsed. This remaining data will not form a complete frame and
+ the subclass likely returns _OK and baseparse would take that
+ as the return, while it the element is actually not-linked.
+ This patch fixes this by storing the last flow-return from a push
+ and using that if a parsing operation doesn't result in data being
+ flushed or skipped.
+ https://bugzilla.gnome.org/show_bug.cgi?id=731474
+
+2014-06-25 11:40:57 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * plugins/elements/gstelements_private.c:
+ elements: fix copyright and remove gtk-doc chunk
+ Trivial as it may be, this code was mostly copied from
+ somewhere else. The gtk-doc chunk is not needed, since
+ it's not public API.
+
+2014-06-02 22:07:52 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * plugins/elements/gstfilesrc.c:
+ filesrc: Ignore seek error on non-seekable files
+ This make it works with FIFOs.
+ https://bugzilla.gnome.org/show_bug.cgi?id=731176
+
+2014-06-22 19:36:14 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * configure.ac:
+ Back to development
+
=== release 1.3.3 ===
-2014-06-22 Sebastian Dröge <slomo@coaxion.net>
+2014-06-22 18:07:42 +0200 Sebastian Dröge <sebastian@centricular.com>
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
* configure.ac:
- releasing 1.3.3
+ * docs/plugins/inspect/plugin-coreelements.xml:
+ * gstreamer.doap:
+ * win32/common/config.h:
+ * win32/common/gstversion.h:
+ Release 1.3.3
+
+2014-06-22 17:15:40 +0200 Sebastian Dröge <sebastian@centricular.com>
+
+ * po/af.po:
+ * po/az.po:
+ * po/be.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/eo.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/gl.po:
+ * po/hr.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/lt.po:
+ * po/nb.po:
+ * po/nl.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ro.po:
+ * po/ru.po:
+ * po/rw.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_TW.po:
+ Update .po files
2014-06-22 14:23:03 +0200 Sebastian Dröge <sebastian@centricular.com>
diff --git a/NEWS b/NEWS
index 234351d..92e141b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-This is GStreamer 1.3.3
+This is GStreamer 1.3.90
Changes since 1.2:
@@ -129,7 +129,7 @@ Major changes:
with downstream via caps.
∘ Lots of fixes for coverity warnings all over the place.
∘ Negotiation related performance improvements.
- ∘ 500+ fixed bug reports, and many other bug fixes and other
+ ∘ 800+ fixed bug reports, and many other bug fixes and other
improvements everywhere that had no bug report.
Things to look out for:
@@ -137,6 +137,9 @@ Things to look out for:
element.
• The mfcdec element was removed and replaced by v4l2videodec.
• osxvideosink is only available in OS X 10.6 or newer.
- • The GstDeviceMonitor API will likely change slightly before the
- 1.4.0 release.
-
+ • On Android the namespace of the automatically generated Java class
+ for initialization of GStreamer has changed from com.gstreamer to
+ org.freedesktop.gstreamer to prevent namespace pollution.
+ • On iOS you have to update your gst_ios_init.h and gst_ios_init.m in
+ your projects from the one included in the binaries if you used the
+ GnuTLS GIO module before. The loading mechanism has slightly changed.
diff --git a/RELEASE b/RELEASE
index 0bcf059..abdf83a 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,22 +1,28 @@
-Release notes for GStreamer 1.3.3
+Release notes for GStreamer 1.3.90
-The GStreamer team is pleased to announce the third release of the unstable
-1.3 release series. The 1.3 release series is adding new features on top of
-the 1.0 and 1.2 series and is part of the API and ABI-stable 1.x release
-series of the GStreamer multimedia framework. The unstable 1.3 release series
-will lead to the stable 1.4 release series in the next weeks, and newly added
-API can still change until that point.
+The GStreamer team is pleased to announce the first release candidate of
+the stable 1.4 release series. The 1.4 release series is adding new features
+on top of the 1.0 and 1.2 series and is part of the API and ABI-stable 1.x
+release series of the GStreamer multimedia framework.
-This is hopefully the last 1.3 development release and will be followed by
-the first 1.4.0 release candidate (1.3.90) in 1-2 weeks. Which then hopefully
-is followed by 1.4.0 soonish in early July.
+This release candidate will hopefully shortly be followed by the stable 1.4.0
+release if no bigger regressions or bigger issues are detected, and enough
+testing of the release candidate happened. The new API that was added during
+the 1.3 release series is not expected to change anymore at this point.
-Binaries for Android, iOS, Mac OS X and Windows will be provided separately
-during the unstable 1.3 release series.
+Binaries for Android, iOS, Mac OS X and Windows are provided together with this
+release.
+
+
+The stable 1.4 release series is API and ABI compatible with 1.0.x, 1.2.x and
+any other 1.x release series in the future. Compared to 1.2.x it contains some
+new features and more intrusive changes that were considered too risky as a
+bugfix.
+
This module, gstreamer, only contains core functionality.
@@ -42,25 +48,12 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
Bugs fixed in this release
+ * 730873 : miniobject: Add missing (nullable) annotations
+ * 730957 : Missing nullability annotations
+ * 731303 : dataqueue: add bindings-friendly gst_data_queue_new_full()
+ * 731350 : Add gst_queue_array_new variant which takes a GDestroyNotify
+ * 731542 : base: introspection fixes
* 732007 : Rename GstGlobalDeviceMonitor
- * 703021 : Missing Gst.VERSION_MAJOR, Gst.VERSION_MINOR
- * 709224 : audio/videodecoder: Not returning GST_FLOW_EOS when after segment
- * 710268 : basetransform: cannot answer GST_QUERY_ALLOCATION if its src has ANY caps
- * 727746 : Factor buffer flags-to-string code
- * 729440 : docs: DeviceMonitor missing in generated doc
- * 729701 : baseparse: rate parameter from segment event could not pass to downstream
- * 730718 : POTFILES.in is out of date
- * 730982 : Minor annotation fixes
- * 731302 : gst_data_queue_new documentation is misleading
- * 731349 : queuearray: doesn't expand with initial size of 1, resulting in invalid memory access
- * 731355 : GstFlowCombiner not introspection-friendly
- * 731442 : bytereader: optimize _scan_for_start_code() using pointer access
- * 731541 : minor introspection fixes
- * 731704 : gst_caps_is_any() returns FALSE or flag value, not TRUE or FALSE
- * 731716 : funnel: fix eos handling and unit test case
- * 731756 : gstvalue: Speed up gst_value_intersect/_subtract
- * 731892 : gstvalue: Avoid expensive g_type_check_value_holds calls when dealing with fundamental GType
- * 727611 : bufferpool: Add _set_flushing() and new (active,flushing) state
==== Download ====
@@ -97,18 +90,11 @@ subscribe to the gstreamer-devel list.
Contributors to this release
- * Edward Hervey
* Evan Nemerson
- * Nicolas Dufresne
+ * George Kiagiadakis
* Olivier Crête
* Philip Withnall
- * Piotr Drąg
* Sebastian Dröge
- * Srimanta Panda
- * Sungho Bae
* Thiago Santos
* Tim-Philipp Müller
- * Vincent Penquerc'h
- * Wim Taymans
- * zhouming
  \ No newline at end of file
diff --git a/config.guess b/config.guess
index b79252d..1f5c50c 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-06-10'
+timestamp='2014-03-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
;;
esac
@@ -826,7 +826,7 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
- i*:MSYS*:*)
+ *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
@@ -969,10 +969,10 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- or1k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-${LIBC}
exit ;;
- or32:Linux:*:*)
+ or32:Linux:*:* | or1k*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
@@ -1260,16 +1260,26 @@ EOF
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
@@ -1361,154 +1371,6 @@ EOF
exit ;;
esac
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
cat >&2 <<EOF
$0: unable to guess system type
diff --git a/config.sub b/config.sub
index 9633db7..d654d03 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-08-10'
+timestamp='2014-05-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -265,6 +265,7 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -282,8 +283,10 @@ case $basic_machine in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
@@ -295,8 +298,7 @@ case $basic_machine in
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | open8 \
- | or1k | or32 \
+ | open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
@@ -324,7 +326,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -381,6 +383,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
@@ -400,8 +403,10 @@ case $basic_machine in
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
@@ -413,6 +418,7 @@ case $basic_machine in
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
+ | or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -1374,7 +1380,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1592,9 +1598,6 @@ case $basic_machine in
mips*-*)
os=-elf
;;
- or1k-*)
- os=-elf
- ;;
or32-*)
os=-coff
;;
diff --git a/configure b/configure
index 422ee75..2659fc4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer 1.3.3.
+# Generated by GNU Autoconf 2.69 for GStreamer 1.3.90.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GStreamer'
PACKAGE_TARNAME='gstreamer'
-PACKAGE_VERSION='1.3.3'
-PACKAGE_STRING='GStreamer 1.3.3'
+PACKAGE_VERSION='1.3.90'
+PACKAGE_STRING='GStreamer 1.3.90'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
PACKAGE_URL=''
@@ -1638,7 +1638,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GStreamer 1.3.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer 1.3.90 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1709,7 +1709,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GStreamer 1.3.3:";;
+ short | recursive ) echo "Configuration of GStreamer 1.3.90:";;
esac
cat <<\_ACEOF
@@ -1891,7 +1891,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GStreamer configure 1.3.3
+GStreamer configure 1.3.90
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2664,7 +2664,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GStreamer $as_me 1.3.3, which was
+It was created by GStreamer $as_me 1.3.90, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3645,7 +3645,7 @@ fi
# Define the identity of the package.
PACKAGE='gstreamer'
- VERSION='1.3.3'
+ VERSION='1.3.90'
cat >>confdefs.h <<_ACEOF
@@ -3856,9 +3856,9 @@ fi
- PACKAGE_VERSION_MAJOR=$(echo 1.3.3 | cut -d'.' -f1)
- PACKAGE_VERSION_MINOR=$(echo 1.3.3 | cut -d'.' -f2)
- PACKAGE_VERSION_MICRO=$(echo 1.3.3 | cut -d'.' -f3)
+ PACKAGE_VERSION_MAJOR=$(echo 1.3.90 | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo 1.3.90 | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo 1.3.90 | cut -d'.' -f3)
@@ -3869,7 +3869,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
$as_echo_n "checking nano version... " >&6; }
- NANO=$(echo 1.3.3 | cut -d'.' -f4)
+ NANO=$(echo 1.3.90 | cut -d'.' -f4)
if test x"$NANO" = x || test "x$NANO" = "x0" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8527,10 +8527,10 @@ fi
done
- GST_CURRENT=303
+ GST_CURRENT=390
GST_REVISION=0
- GST_AGE=303
- GST_LIBVERSION=303:0:303
+ GST_AGE=390
+ GST_LIBVERSION=390:0:390
@@ -27564,7 +27564,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GStreamer $as_me 1.3.3, which was
+This file was extended by GStreamer $as_me 1.3.90, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -27630,7 +27630,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GStreamer config.status 1.3.3
+GStreamer config.status 1.3.90
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 3c457aa..217f252 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl initialize autoconf
dnl when going to/from release please set the nano (fourth number) right !
dnl releases only do Wall, git and prerelease does Werror too
dnl
-AC_INIT([GStreamer],[1.3.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
+AC_INIT([GStreamer],[1.3.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
AG_GST_INIT
dnl initialize automake (we require GNU make)
@@ -64,7 +64,7 @@ dnl 1.2.5 => 205
dnl 1.10.9 (who knows) => 1009
dnl
dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 303, 0, 303)
+AS_LIBTOOL(GST, 390, 0, 390)
dnl *** autotools stuff ****
diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml
index c3b38fb..3a2c7af 100644
--- a/docs/gst/gstreamer-docs.sgml
+++ b/docs/gst/gstreamer-docs.sgml
@@ -117,10 +117,10 @@ Windows. It is released under the GNU Library General Public License
<chapter id="gstreamer-device-probing">
<title>GStreamer Device Discovery and Device Probing</title>
- <xi:include href="xml/gstdevice.xml" />
<xi:include href="xml/gstdevicemonitor.xml" />
- <xi:include href="xml/gstdevicemonitorfactory.xml" />
- <xi:include href="xml/gstglobaldevicemonitor.xml" />
+ <xi:include href="xml/gstdevice.xml" />
+ <xi:include href="xml/gstdeviceprovider.xml" />
+ <xi:include href="xml/gstdeviceproviderfactory.xml" />
</chapter>
<chapter id="gstreamer-support">
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 60f84fe..c5d5bb9 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -3353,27 +3353,78 @@ gst_device_get_type
</SECTION>
<SECTION>
+<FILE>gstdeviceprovider</FILE>
+<TITLE>GstDeviceProvider</TITLE>
+GstDeviceProvider
+GstDeviceProviderClass
+gst_device_provider_can_monitor
+gst_device_provider_class_add_metadata
+gst_device_provider_class_add_static_metadata
+gst_device_provider_class_get_metadata
+gst_device_provider_class_set_metadata
+gst_device_provider_class_set_static_metadata
+gst_device_provider_device_add
+gst_device_provider_device_remove
+gst_device_provider_get_bus
+gst_device_provider_get_devices
+gst_device_provider_get_factory
+gst_device_provider_register
+gst_device_provider_start
+gst_device_provider_stop
+
+<SUBSECTION Standard>
+GstDevicePrivate
+GST_DEVICE_PROVIDER
+GST_DEVICE_PROVIDER_CAST
+GST_DEVICE_PROVIDER_CLASS
+GST_DEVICE_PROVIDER_GET_CLASS
+GST_IS_DEVICE_PROVIDER
+GST_IS_DEVICE_PROVIDER_CLASS
+GST_TYPE_DEVICE_PROVIDER
+gst_device_provider_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstdeviceproviderfactory</FILE>
+<TITLE>GstDeviceProviderFactory</TITLE>
+GstDeviceProviderFactory
+GstDeviceProviderFactoryClass
+gst_device_provider_factory_find
+gst_device_provider_factory_get
+gst_device_provider_factory_get_by_name
+gst_device_provider_factory_get_device_provider_type
+gst_device_provider_factory_get_metadata
+gst_device_provider_factory_get_metadata_keys
+gst_device_provider_factory_has_classes
+gst_device_provider_factory_has_classesv
+gst_device_provider_factory_list_get_device_providers
+
+<SUBSECTION Standard>
+GstDeviceProviderPrivate
+GST_DEVICE_PROVIDER_FACTORY
+GST_DEVICE_PROVIDER_FACTORY_CAST
+GST_DEVICE_PROVIDER_FACTORY_CLASS
+GST_TYPE_DEVICE_PROVIDER_FACTORY
+GST_IS_DEVICE_PROVIDER_FACTORY
+GST_IS_DEVICE_PROVIDER_FACTORY_CLASS
+gst_device_provider_factory_get_type
+</SECTION>
+
+<SECTION>
<FILE>gstdevicemonitor</FILE>
<TITLE>GstDeviceMonitor</TITLE>
GstDeviceMonitor
GstDeviceMonitorClass
-gst_device_monitor_can_monitor
-gst_device_monitor_class_add_metadata
-gst_device_monitor_class_add_static_metadata
-gst_device_monitor_class_get_metadata
-gst_device_monitor_class_set_metadata
-gst_device_monitor_class_set_static_metadata
-gst_device_monitor_device_add
-gst_device_monitor_device_remove
+gst_device_monitor_new
gst_device_monitor_get_bus
-gst_device_monitor_get_devices
-gst_device_monitor_get_factory
-gst_device_monitor_register
+gst_device_monitor_add_filter
+gst_device_monitor_remove_filter
gst_device_monitor_start
gst_device_monitor_stop
+gst_device_monitor_get_devices
<SUBSECTION Standard>
-GstDevicePrivate
+GstDeviceMonitorPrivate
GST_DEVICE_MONITOR
GST_DEVICE_MONITOR_CAST
GST_DEVICE_MONITOR_CLASS
@@ -3384,56 +3435,3 @@ GST_TYPE_DEVICE_MONITOR
gst_device_monitor_get_type
</SECTION>
-<SECTION>
-<FILE>gstdevicemonitorfactory</FILE>
-<TITLE>GstDeviceMonitorFactory</TITLE>
-GstDeviceMonitorFactory
-GstDeviceMonitorFactoryClass
-gst_device_monitor_factory_find
-gst_device_monitor_factory_get
-gst_device_monitor_factory_get_by_name
-gst_device_monitor_factory_get_device_monitor_type
-gst_device_monitor_factory_get_metadata
-gst_device_monitor_factory_get_metadata_keys
-gst_device_monitor_factory_has_classes
-gst_device_monitor_factory_has_classesv
-gst_device_monitor_factory_list_get_device_monitors
-
-<SUBSECTION Standard>
-GstDeviceMonitorPrivate
-GST_DEVICE_MONITOR_FACTORY
-GST_DEVICE_MONITOR_FACTORY_CAST
-GST_DEVICE_MONITOR_FACTORY_CLASS
-GST_TYPE_DEVICE_MONITOR_FACTORY
-GST_IS_DEVICE_MONITOR_FACTORY
-GST_IS_DEVICE_MONITOR_FACTORY_CLASS
-gst_device_monitor_factory_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gstglobaldevicemonitor</FILE>
-<TITLE>GstGlobalDeviceMonitor</TITLE>
-GstGlobalDeviceMonitor
-GstGlobalDeviceMonitorClass
-gst_global_device_monitor_get_bus
-gst_global_device_monitor_get_caps_filter
-gst_global_device_monitor_get_classes_filter
-gst_global_device_monitor_get_devices
-gst_global_device_monitor_new
-gst_global_device_monitor_set_caps_filter
-gst_global_device_monitor_set_classes_filter
-gst_global_device_monitor_start
-gst_global_device_monitor_stop
-
-<SUBSECTION Standard>
-GstGlobalDeviceMonitorPrivate
-GST_GLOBAL_DEVICE_MONITOR
-GST_GLOBAL_DEVICE_MONITOR_CAST
-GST_GLOBAL_DEVICE_MONITOR_CLASS
-GST_GLOBAL_DEVICE_MONITOR_GET_CLASS
-GST_IS_GLOBAL_DEVICE_MONITOR
-GST_IS_GLOBAL_DEVICE_MONITOR_CLASS
-GST_TYPE_GLOBAL_DEVICE_MONITOR
-gst_global_device_monitor_get_type
-</SECTION>
-
diff --git a/docs/gst/html/GstAllocator.html b/docs/gst/html/GstAllocator.html
index 83fb747..42eaea1 100644
--- a/docs/gst/html/GstAllocator.html
+++ b/docs/gst/html/GstAllocator.html
@@ -204,10 +204,11 @@ default allocator will be returned.</p>
</div>
<div class="refsect3">
<a name="id-1.3.4.9.2.6"></a><h4>Returns</h4>
-<p> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the allocator with <em class="parameter"><code>name</code></em>
-was not
-registered. Use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> to release the allocator after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when
+the allocator with <em class="parameter"><code>name</code></em>
+was not registered. Use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>
+to release the allocator after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstBin.html b/docs/gst/html/GstBin.html
index 95a7660..89ce7dd 100644
--- a/docs/gst/html/GstBin.html
+++ b/docs/gst/html/GstBin.html
@@ -583,8 +583,9 @@ function recurses into child bins.</p>
</div>
<div class="refsect3">
<a name="id-1.3.6.11.5.8"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given
+name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -622,8 +623,9 @@ element is not found, a recursion is performed on the parent bin.</p>
</div>
<div class="refsect3">
<a name="id-1.3.6.11.6.9"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given
+name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -690,8 +692,9 @@ gst_bin_iterate_elements (<em class="parameter"><code><a class="link" href="GstB
</div>
<div class="refsect3">
<a name="id-1.3.6.11.8.7"></a><h4>Returns</h4>
-<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -719,8 +722,9 @@ This iterator recurses into GstBin children.</p>
</div>
<div class="refsect3">
<a name="id-1.3.6.11.9.7"></a><h4>Returns</h4>
-<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -748,8 +752,9 @@ gst_bin_iterate_sinks (<em class="parameter"><code><a class="link" href="GstBin.
</div>
<div class="refsect3">
<a name="id-1.3.6.11.10.7"></a><h4>Returns</h4>
-<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -780,8 +785,9 @@ of the bin elements and for clock selection.</p>
</div>
<div class="refsect3">
<a name="id-1.3.6.11.11.8"></a><h4>Returns</h4>
-<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -809,8 +815,9 @@ gst_bin_iterate_sources (<em class="parameter"><code><a class="link" href="GstBi
</div>
<div class="refsect3">
<a name="id-1.3.6.11.12.7"></a><h4>Returns</h4>
-<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -848,9 +855,10 @@ of <a class="link" href="GstElement.html" title="GstElement"><span class="type">
</div>
<div class="refsect3">
<a name="id-1.3.6.11.13.7"></a><h4>Returns</h4>
-<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> for all elements
-in the bin implementing the given interface, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
+for all elements in the bin implementing the given interface,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -996,8 +1004,9 @@ pad when it is not needed any longer.</p>
</div>
<div class="refsect3">
<a name="id-1.3.6.11.17.6"></a><h4>Returns</h4>
-<p> unlinked pad of the given direction, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> unlinked pad of the given
+direction, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstBuffer.html b/docs/gst/html/GstBuffer.html
index d26800c..8e49fdf 100644
--- a/docs/gst/html/GstBuffer.html
+++ b/docs/gst/html/GstBuffer.html
@@ -1101,9 +1101,9 @@ default allocator. </p></td>
</div>
<div class="refsect3">
<a name="id-1.3.7.8.19.9"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the memory couldn't
-be allocated. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+the memory couldn't be allocated. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1319,12 +1319,12 @@ buffer memory blocks with <a class="link" href="GstBuffer.html#gst-buffer-resize
<tr>
<td class="parameter_name"><p>offset</p></td>
<td class="parameter_description"><p> a pointer to the offset. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>maxsize</p></td>
<td class="parameter_description"><p> a pointer to the maxsize. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -1420,12 +1420,12 @@ and <em class="parameter"><code>offset</code></em>
<tr>
<td class="parameter_name"><p>offset</p></td>
<td class="parameter_description"><p> a pointer to the offset. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>maxsize</p></td>
<td class="parameter_description"><p> a pointer to the maxsize. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -2954,9 +2954,9 @@ buffer is unreffed, the new is reffed).</p>
<tbody>
<tr>
<td class="parameter_name"><p>obuf</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to be
-replaced. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a pointer to
+a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to be replaced. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>nbuf</p></td>
@@ -3109,9 +3109,10 @@ metadata, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Ma
<div class="refsect3">
<a name="id-1.3.7.8.66.6"></a><h4>Returns</h4>
<p> the metadata for <em class="parameter"><code>api</code></em>
-on <em class="parameter"><code>buffer</code></em>
+on
+<em class="parameter"><code>buffer</code></em>
. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -3236,9 +3237,9 @@ to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.ht
</div>
<div class="refsect3">
<a name="id-1.3.7.8.69.7"></a><h4>Returns</h4>
-<p> The next <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there are
-no more items. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> The next <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when there are no more items. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -3273,8 +3274,8 @@ returned. When <a href="http://library.gnome.org/devel/glib/unstable/glib-Standa
</tr>
<tr>
<td class="parameter_name"><p>meta</p></td>
-<td class="parameter_description"><p>a pointer to a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> a pointer to a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
diff --git a/docs/gst/html/GstBufferList.html b/docs/gst/html/GstBufferList.html
index 771f012..754b495 100644
--- a/docs/gst/html/GstBufferList.html
+++ b/docs/gst/html/GstBufferList.html
@@ -541,8 +541,8 @@ removing or modifying.</p>
<tbody>
<tr>
<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>pointer the buffer</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> pointer the buffer. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>idx</p></td>
@@ -652,10 +652,10 @@ gst_buffer_list_get (<em class="parameter"><code><a class="link" href="GstBuffer
<a name="id-1.3.8.8.15.6"></a><h4>Returns</h4>
<p> the buffer at <em class="parameter"><code>idx</code></em>
in <em class="parameter"><code>group</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there
-is no buffer. The buffer remains valid as long as <em class="parameter"><code>list</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no buffer. The buffer remains valid as
+long as <em class="parameter"><code>list</code></em>
is valid. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
</div>
diff --git a/docs/gst/html/GstBufferPool.html b/docs/gst/html/GstBufferPool.html
index fd3b588..8a51ba6 100644
--- a/docs/gst/html/GstBufferPool.html
+++ b/docs/gst/html/GstBufferPool.html
@@ -560,13 +560,13 @@ used values.</p>
</tr>
<tr>
<td class="parameter_name"><p>allocator</p></td>
-<td class="parameter_description"><p>a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>params</p></td>
-<td class="parameter_description"><p><a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
diff --git a/docs/gst/html/GstBus.html b/docs/gst/html/GstBus.html
index 0a011a7..30f825e 100644
--- a/docs/gst/html/GstBus.html
+++ b/docs/gst/html/GstBus.html
@@ -533,10 +533,10 @@ by the caller.</p>
</div>
<div class="refsect3">
<a name="id-1.3.10.10.7.6"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the bus, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-bus is empty.</p>
+<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the
+bus, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -562,11 +562,12 @@ gst_bus_pop (<em class="parameter"><code><a class="link" href="GstBus.html" titl
</div>
<div class="refsect3">
<a name="id-1.3.10.10.8.6"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the bus, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-bus is empty. The message is taken from the bus and needs to be unreffed
-with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
+<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the
+bus, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty. The message is taken from
+the bus and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after
+usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -609,14 +610,14 @@ enums beyond <a class="link" href="GstMessage.html#GST-MESSAGE-EXTENDED:CAPS"><s
</div>
<div class="refsect3">
<a name="id-1.3.10.10.9.6"></a><h4>Returns</h4>
-<p> the next <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> matching <em class="parameter"><code>type</code></em>
-that is on
-the bus, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty or there is no message matching
+<p> the next <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> matching
<em class="parameter"><code>type</code></em>
-. The message is taken from the bus and needs to be unreffed with
-<a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
+that is on the bus, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty or there
+is no message matching <em class="parameter"><code>type</code></em>
+. The message is taken from the bus
+and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -655,12 +656,12 @@ posted on the bus.</p>
</div>
<div class="refsect3">
<a name="id-1.3.10.10.10.7"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the bus after the
-specified timeout or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty after the timeout expired.
-The message is taken from the bus and needs to be unreffed with
-<a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
+<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the
+bus after the specified timeout or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty
+after the timeout expired. The message is taken from the bus
+and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -708,13 +709,14 @@ matching message was posted on the bus.</p>
</div>
<div class="refsect3">
<a name="id-1.3.10.10.11.7"></a><h4>Returns</h4>
-<p> a <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> matching the filter in <em class="parameter"><code>types</code></em>
-,
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no matching message was found on the bus until the timeout
-expired. The message is taken from the bus and needs to be unreffed
-with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
+<p> a <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> matching the
+filter in <em class="parameter"><code>types</code></em>
+, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no matching message was found on
+the bus until the timeout expired. The message is taken from
+the bus and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after
+usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1273,10 +1275,11 @@ indefinitely.</p></td>
</div>
<div class="refsect3">
<a name="id-1.3.10.10.24.11"></a><h4>Returns</h4>
-<p> the message that was received, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-poll timed out. The message is taken from the bus and needs to be
-unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the message that was received,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the poll timed out. The message is taken from the
+bus and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after
+usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
</div>
diff --git a/docs/gst/html/GstCaps.html b/docs/gst/html/GstCaps.html
index f349c68..3305b5d 100644
--- a/docs/gst/html/GstCaps.html
+++ b/docs/gst/html/GstCaps.html
@@ -2290,9 +2290,9 @@ caps is unreffed, the new is reffed).</p>
<tbody>
<tr>
<td class="parameter_name"><p>old_caps</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> to be
-replaced. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a pointer
+to a <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> to be replaced. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_caps</p></td>
diff --git a/docs/gst/html/GstCapsFeatures.html b/docs/gst/html/GstCapsFeatures.html
index a4d59eb..abe0f17 100644
--- a/docs/gst/html/GstCapsFeatures.html
+++ b/docs/gst/html/GstCapsFeatures.html
@@ -545,9 +545,10 @@ gst_caps_features_from_string (<em class="parameter"><code>const <a href="http:/
</div>
<div class="refsect3">
<a name="id-1.3.12.8.12.7"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstCapsFeatures.html" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the string could
-not be parsed. Free with <a class="link" href="GstCapsFeatures.html#gst-caps-features-free" title="gst_caps_features_free ()"><code class="function">gst_caps_features_free()</code></a> after use. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstCapsFeatures.html" title="GstCapsFeatures"><span class="type">GstCapsFeatures</span></a> or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the string could not be parsed. Free with
+<a class="link" href="GstCapsFeatures.html#gst-caps-features-free" title="gst_caps_features_free ()"><code class="function">gst_caps_features_free()</code></a> after use. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
<p class="since">Since 1.2</p>
</div>
diff --git a/docs/gst/html/GstChildProxy.html b/docs/gst/html/GstChildProxy.html
index 9401406..1c0d65c 100644
--- a/docs/gst/html/GstChildProxy.html
+++ b/docs/gst/html/GstChildProxy.html
@@ -283,10 +283,10 @@ together with <a class="link" href="GstObject.html#gst-object-get-name" title="g
</div>
<div class="refsect3">
<a name="id-1.3.14.11.3.7"></a><h4>Returns</h4>
-<p> the child object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. Unref
-after usage.</p>
+<p> the child object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+not found. Unref after usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -320,10 +320,10 @@ gst_child_proxy_get_child_by_index (<em class="parameter"><code><a class="link"
</div>
<div class="refsect3">
<a name="id-1.3.14.11.4.6"></a><h4>Returns</h4>
-<p> the child object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found (index
-too high). Unref after usage.</p>
+<p> the child object or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+not found (index too high). Unref after usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstClock.html b/docs/gst/html/GstClock.html
index 7d32742..1a5cb3d 100644
--- a/docs/gst/html/GstClock.html
+++ b/docs/gst/html/GstClock.html
@@ -1144,10 +1144,11 @@ not slaved to any master clock.</p>
</div>
<div class="refsect3">
<a name="id-1.3.15.9.27.6"></a><h4>Returns</h4>
-<p> a master <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when this clock is
-not slaved to a master clock. Unref after usage.</p>
+<p> a master <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when this clock is not slaved to a master clock. Unref after
+usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstControlBinding.html b/docs/gst/html/GstControlBinding.html
index 785c237..30d58dd 100644
--- a/docs/gst/html/GstControlBinding.html
+++ b/docs/gst/html/GstControlBinding.html
@@ -239,9 +239,9 @@ gst_control_binding_get_value (<em class="parameter"><code><a class="link" href=
</div>
<div class="refsect3">
<a name="id-1.3.18.9.3.6"></a><h4>Returns</h4>
-<p> the GValue of the property at the given time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-property isn't controlled.</p>
-<p></p>
+<p> the GValue of the property at the given time,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property isn't controlled. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstDateTime.html b/docs/gst/html/GstDateTime.html
index 587cddf..9d700b3 100644
--- a/docs/gst/html/GstDateTime.html
+++ b/docs/gst/html/GstDateTime.html
@@ -1163,8 +1163,9 @@ gst_date_time_new_from_iso8601_string (<em class="parameter"><code>const <a href
</div>
<div class="refsect3">
<a name="id-1.3.20.8.27.7"></a><h4>Returns</h4>
-<p> a newly created <a class="link" href="GstDateTime.html" title="GstDateTime"><span class="type">GstDateTime</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a newly created <a class="link" href="GstDateTime.html" title="GstDateTime"><span class="type">GstDateTime</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1192,10 +1193,11 @@ are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
</div>
<div class="refsect3">
<a name="id-1.3.20.8.28.6"></a><h4>Returns</h4>
-<p> a newly allocated string formatted according to ISO 8601 and
-only including the datetime fields that are valid, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case
-there was an error. The string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
-<p></p>
+<p> a newly allocated string formatted according
+to ISO 8601 and only including the datetime fields that are
+valid, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case there was an error. The string should
+be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -1222,8 +1224,9 @@ gst_date_time_new_from_g_date_time (<em class="parameter"><code><a href="http://
</div>
<div class="refsect3">
<a name="id-1.3.20.8.29.7"></a><h4>Returns</h4>
-<p> a newly created <a class="link" href="GstDateTime.html" title="GstDateTime"><span class="type">GstDateTime</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a newly created <a class="link" href="GstDateTime.html" title="GstDateTime"><span class="type">GstDateTime</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1250,8 +1253,9 @@ gst_date_time_to_g_date_time (<em class="parameter"><code><a class="link" href="
</div>
<div class="refsect3">
<a name="id-1.3.20.8.30.7"></a><h4>Returns</h4>
-<p> a newly created <a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a newly created <a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a>, or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
</div>
diff --git a/docs/gst/html/GstDeviceMonitorFactory.html b/docs/gst/html/GstDeviceProviderFactory.html
index 98745b4..b6a66f8 100644
--- a/docs/gst/html/GstDeviceMonitorFactory.html
+++ b/docs/gst/html/GstDeviceProviderFactory.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GStreamer 1.0 Core Reference Manual: GstDeviceMonitorFactory</title>
+<title>GStreamer 1.0 Core Reference Manual: GstDeviceProviderFactory</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="gstreamer-device-probing.html" title="GStreamer Device Discovery and Device Probing">
-<link rel="prev" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">
-<link rel="next" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">
+<link rel="prev" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">
+<link rel="next" href="gstreamer-support.html" title="GStreamer Core Support">
<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -15,25 +15,25 @@
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
- <a href="#GstDeviceMonitorFactory.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
- <a href="#GstDeviceMonitorFactory.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+ <a href="#GstDeviceProviderFactory.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+ <a href="#GstDeviceProviderFactory.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gstreamer-device-probing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gstreamer-GstDeviceMonitor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gstreamer-GstGlobalDeviceMonitor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gstreamer-GstDeviceProvider.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gstreamer-support.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
-<a name="GstDeviceMonitorFactory"></a><div class="titlepage"></div>
+<a name="GstDeviceProviderFactory"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
-<h2><span class="refentrytitle"><a name="GstDeviceMonitorFactory.top_of_page"></a>GstDeviceMonitorFactory</span></h2>
-<p>GstDeviceMonitorFactory — Create GstDeviceMonitors from a factory</p>
+<h2><span class="refentrytitle"><a name="GstDeviceProviderFactory.top_of_page"></a>GstDeviceProviderFactory</span></h2>
+<p>GstDeviceProviderFactory — Create GstDeviceProviders from a factory</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.functions"></a><h2>Functions</h2>
+<a name="GstDeviceProviderFactory.functions"></a><h2>Functions</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
@@ -42,26 +42,26 @@
<tbody>
<tr>
<td class="function_type">
-<a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="returnvalue">GstDeviceMonitorFactory</span></a> *
+<a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="returnvalue">GstDeviceProviderFactory</span></a> *
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-find" title="gst_device_monitor_factory_find ()">gst_device_monitor_factory_find</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-find" title="gst_device_provider_factory_find ()">gst_device_provider_factory_find</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="returnvalue">GstDeviceMonitor</span></a> *
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="returnvalue">GstDeviceProvider</span></a> *
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get" title="gst_device_monitor_factory_get ()">gst_device_monitor_factory_get</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get" title="gst_device_provider_factory_get ()">gst_device_provider_factory_get</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="returnvalue">GstDeviceMonitor</span></a> *
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="returnvalue">GstDeviceProvider</span></a> *
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-by-name" title="gst_device_monitor_factory_get_by_name ()">gst_device_monitor_factory_get_by_name</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-by-name" title="gst_device_provider_factory_get_by_name ()">gst_device_provider_factory_get_by_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -69,14 +69,14 @@
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-device-monitor-type" title="gst_device_monitor_factory_get_device_monitor_type ()">gst_device_monitor_factory_get_device_monitor_type</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-device-provider-type" title="gst_device_provider_factory_get_device_provider_type ()">gst_device_provider_factory_get_device_provider_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata" title="gst_device_monitor_factory_get_metadata ()">gst_device_monitor_factory_get_metadata</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata" title="gst_device_provider_factory_get_metadata ()">gst_device_provider_factory_get_metadata</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -84,7 +84,7 @@
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata-keys" title="gst_device_monitor_factory_get_metadata_keys ()">gst_device_monitor_factory_get_metadata_keys</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata-keys" title="gst_device_provider_factory_get_metadata_keys ()">gst_device_provider_factory_get_metadata_keys</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -92,7 +92,7 @@
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classes" title="gst_device_monitor_factory_has_classes ()">gst_device_monitor_factory_has_classes</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-has-classes" title="gst_device_provider_factory_has_classes ()">gst_device_provider_factory_has_classes</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -100,7 +100,7 @@
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classesv" title="gst_device_monitor_factory_has_classesv ()">gst_device_monitor_factory_has_classesv</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-has-classesv" title="gst_device_provider_factory_has_classesv ()">gst_device_provider_factory_has_classesv</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -108,14 +108,14 @@
<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
</td>
<td class="function_name">
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-list-get-device-monitors" title="gst_device_monitor_factory_list_get_device_monitors ()">gst_device_monitor_factory_list_get_device_monitors</a> <span class="c_punctuation">()</span>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-list-get-device-providers" title="gst_device_provider_factory_list_get_device_providers ()">gst_device_provider_factory_list_get_device_providers</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.other"></a><h2>Types and Values</h2>
+<a name="GstDeviceProviderFactory.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="name">
@@ -124,48 +124,49 @@
<tbody>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="GstDeviceMonitorFactory.html#GstDeviceMonitorFactory-struct" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a></td>
+<td class="function_name"><a class="link" href="GstDeviceProviderFactory.html#GstDeviceProviderFactory-struct" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="GstDeviceMonitorFactory.html#GstDeviceMonitorFactoryClass" title="GstDeviceMonitorFactoryClass">GstDeviceMonitorFactoryClass</a></td>
+<td class="function_name"><a class="link" href="GstDeviceProviderFactory.html#GstDeviceProviderFactoryClass" title="GstDeviceProviderFactoryClass">GstDeviceProviderFactoryClass</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<a name="GstDeviceProviderFactory.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
<span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
<span class="lineart">╰──</span> <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
<span class="lineart">╰──</span> <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
- <span class="lineart">╰──</span> GstDeviceMonitorFactory
+ <span class="lineart">╰──</span> GstDeviceProviderFactory
</pre>
</div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.includes"></a><h2>Includes</h2>
+<a name="GstDeviceProviderFactory.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/gst.h&gt;
</pre>
</div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.description"></a><h2>Description</h2>
-<p><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> is used to create instances of device monitors. A
-GstDeviceMonitorfactory can be added to a <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> as it is also a
+<a name="GstDeviceProviderFactory.description"></a><h2>Description</h2>
+<p><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> is used to create instances of device providers. A
+GstDeviceProviderfactory can be added to a <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> as it is also a
<a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>.</p>
-<p>Use the <a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-find" title="gst_device_monitor_factory_find ()"><code class="function">gst_device_monitor_factory_find()</code></a> and <code class="function">gst_device_monitor_factory_create()</code>
-functions to create device monitor instances or use <code class="function">gst_device_monitor_factory_make()</code> as a
+<p>Use the <a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-find" title="gst_device_provider_factory_find ()"><code class="function">gst_device_provider_factory_find()</code></a> and
+<code class="function">gst_device_provider_factory_create()</code> functions to create device
+provider instances or use <code class="function">gst_device_provider_factory_make()</code> as a
convenient shortcut.</p>
</div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.functions_details"></a><h2>Functions</h2>
+<a name="GstDeviceProviderFactory.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="gst-device-monitor-factory-find"></a><h3>gst_device_monitor_factory_find ()</h3>
-<pre class="programlisting"><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="returnvalue">GstDeviceMonitorFactory</span></a> *
-gst_device_monitor_factory_find (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>Search for an device monitor factory of the given name. Refs the returned
-device monitor factory; caller is responsible for unreffing.</p>
+<a name="gst-device-provider-factory-find"></a><h3>gst_device_provider_factory_find ()</h3>
+<pre class="programlisting"><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="returnvalue">GstDeviceProviderFactory</span></a> *
+gst_device_provider_factory_find (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>Search for an device provider factory of the given name. Refs the returned
+device provider factory; caller is responsible for unreffing.</p>
<div class="refsect3">
-<a name="id-1.4.4.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -180,21 +181,22 @@ device monitor factory; caller is responsible for unreffing.</p>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.2.6"></a><h4>Returns</h4>
-<p> <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> if found, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<a name="id-1.4.5.8.2.6"></a><h4>Returns</h4>
+<p> <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> if
+found, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-get"></a><h3>gst_device_monitor_factory_get ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="returnvalue">GstDeviceMonitor</span></a> *
-gst_device_monitor_factory_get (<em class="parameter"><code><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> *factory</code></em>);</pre>
-<p>Returns the device monitor of the type defined by the given device
-monitorfactory.</p>
+<a name="gst-device-provider-factory-get"></a><h3>gst_device_provider_factory_get ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="returnvalue">GstDeviceProvider</span></a> *
+gst_device_provider_factory_get (<em class="parameter"><code><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> *factory</code></em>);</pre>
+<p>Returns the device provider of the type defined by the given device
+providerfactory.</p>
<div class="refsect3">
-<a name="id-1.4.4.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.3.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -209,23 +211,23 @@ monitorfactory.</p>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.3.6"></a><h4>Returns</h4>
-<p> the <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-device monitor couldn't be created. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<a name="id-1.4.5.8.3.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+if the device provider couldn't be created. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-get-by-name"></a><h3>gst_device_monitor_factory_get_by_name ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="returnvalue">GstDeviceMonitor</span></a> *
-gst_device_monitor_factory_get_by_name
+<a name="gst-device-provider-factory-get-by-name"></a><h3>gst_device_provider_factory_get_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="returnvalue">GstDeviceProvider</span></a> *
+gst_device_provider_factory_get_by_name
(<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factoryname</code></em>);</pre>
-<p>Returns the device monitor of the type defined by the given device
-monitor factory.</p>
+<p>Returns the device provider of the type defined by the given device
+provider factory.</p>
<div class="refsect3">
-<a name="id-1.4.4.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.4.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -240,24 +242,24 @@ monitor factory.</p>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.4.6"></a><h4>Returns</h4>
-<p> a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unable to
-create device monitor. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<a name="id-1.4.5.8.4.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+if unable to create device provider. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-get-device-monitor-type"></a><h3>gst_device_monitor_factory_get_device_monitor_type ()</h3>
+<a name="gst-device-provider-factory-get-device-provider-type"></a><h3>gst_device_provider_factory_get_device_provider_type ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
-gst_device_monitor_factory_get_device_monitor_type
- (<em class="parameter"><code><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> *factory</code></em>);</pre>
-<p>Get the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for device monitors managed by this factory. The type can
-only be retrieved if the device monitor factory is loaded, which can be
+gst_device_provider_factory_get_device_provider_type
+ (<em class="parameter"><code><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> *factory</code></em>);</pre>
+<p>Get the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for device providers managed by this factory. The type can
+only be retrieved if the device provider factory is loaded, which can be
assured with <a class="link" href="GstPluginFeature.html#gst-plugin-feature-load" title="gst_plugin_feature_load ()"><code class="function">gst_plugin_feature_load()</code></a>.</p>
<div class="refsect3">
-<a name="id-1.4.4.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -272,8 +274,8 @@ assured with <a class="link" href="GstPluginFeature.html#gst-plugin-feature-load
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.5.6"></a><h4>Returns</h4>
-<p> the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for device monitors managed by this factory or 0 if
+<a name="id-1.4.5.8.5.6"></a><h4>Returns</h4>
+<p> the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for device providers managed by this factory or 0 if
the factory is not loaded.</p>
<p></p>
</div>
@@ -281,16 +283,16 @@ the factory is not loaded.</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-get-metadata"></a><h3>gst_device_monitor_factory_get_metadata ()</h3>
+<a name="gst-device-provider-factory-get-metadata"></a><h3>gst_device_provider_factory_get_metadata ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-gst_device_monitor_factory_get_metadata
- (<em class="parameter"><code><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> *factory</code></em>,
+gst_device_provider_factory_get_metadata
+ (<em class="parameter"><code><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> *factory</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
<p>Get the metadata on <em class="parameter"><code>factory</code></em>
with <em class="parameter"><code>key</code></em>
.</p>
<div class="refsect3">
-<a name="id-1.4.4.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.6.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -300,7 +302,7 @@ gst_device_monitor_factory_get_metadata
<tbody>
<tr>
<td class="parameter_name"><p>factory</p></td>
-<td class="parameter_description"><p>a <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
@@ -312,26 +314,26 @@ gst_device_monitor_factory_get_metadata
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.4.5.8.6.6"></a><h4>Returns</h4>
<p> the metadata with <em class="parameter"><code>key</code></em>
on <em class="parameter"><code>factory</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there was no
-metadata with the given <em class="parameter"><code>key</code></em>
-.</p>
-<p></p>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when there was no metadata with the given <em class="parameter"><code>key</code></em>
+. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-get-metadata-keys"></a><h3>gst_device_monitor_factory_get_metadata_keys ()</h3>
+<a name="gst-device-provider-factory-get-metadata-keys"></a><h3>gst_device_provider_factory_get_metadata_keys ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
-gst_device_monitor_factory_get_metadata_keys
- (<em class="parameter"><code><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> *factory</code></em>);</pre>
+gst_device_provider_factory_get_metadata_keys
+ (<em class="parameter"><code><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> *factory</code></em>);</pre>
<p>Get the available keys for the metadata on <em class="parameter"><code>factory</code></em>
.</p>
<div class="refsect3">
-<a name="id-1.4.4.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.7.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -340,31 +342,31 @@ gst_device_monitor_factory_get_metadata_keys
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>factory</p></td>
-<td class="parameter_description"><p>a <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.7.6"></a><h4>Returns</h4>
+<a name="id-1.4.5.8.7.6"></a><h4>Returns</h4>
<p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of key strings, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no
metadata. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][nullable]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-has-classes"></a><h3>gst_device_monitor_factory_has_classes ()</h3>
+<a name="gst-device-provider-factory-has-classes"></a><h3>gst_device_provider_factory_has_classes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_device_monitor_factory_has_classes
- (<em class="parameter"><code><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> *factory</code></em>,
+gst_device_provider_factory_has_classes
+ (<em class="parameter"><code><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> *factory</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classes</code></em>);</pre>
<p>Check if <em class="parameter"><code>factory</code></em>
matches all of the given <em class="parameter"><code>classes</code></em>
</p>
<div class="refsect3">
-<a name="id-1.4.4.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.8.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -374,37 +376,38 @@ gst_device_monitor_factory_has_classes
<tbody>
<tr>
<td class="parameter_name"><p>factory</p></td>
-<td class="parameter_description"><p>a <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>classes</p></td>
-<td class="parameter_description"><p>a "/" separate list of klasses to match, only match if all classes
-are matched</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> a "/" separate list of klasses to match, only match
+if all classes are matched. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.4.5.8.8.6"></a><h4>Returns</h4>
<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>factory</code></em>
-matches.</p>
+matches or if <em class="parameter"><code>classes</code></em>
+is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
<p></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-has-classesv"></a><h3>gst_device_monitor_factory_has_classesv ()</h3>
+<a name="gst-device-provider-factory-has-classesv"></a><h3>gst_device_provider_factory_has_classesv ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_device_monitor_factory_has_classesv
- (<em class="parameter"><code><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> *factory</code></em>,
+gst_device_provider_factory_has_classesv
+ (<em class="parameter"><code><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> *factory</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **classes</code></em>);</pre>
<p>Check if <em class="parameter"><code>factory</code></em>
matches all of the given classes</p>
<div class="refsect3">
-<a name="id-1.4.4.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.9.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -414,20 +417,20 @@ gst_device_monitor_factory_has_classesv
<tbody>
<tr>
<td class="parameter_name"><p>factory</p></td>
-<td class="parameter_description"><p>a <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a></p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>classes</p></td>
-<td class="parameter_description"><p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of
-klasses to match, only match if all classes are matched. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td>
+<td class="parameter_description"><p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array
+of klasses to match, only match if all classes are matched. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.4.5.8.9.6"></a><h4>Returns</h4>
<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>factory</code></em>
matches.</p>
<p></p>
@@ -436,68 +439,56 @@ matches.</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-factory-list-get-device-monitors"></a><h3>gst_device_monitor_factory_list_get_device_monitors ()</h3>
+<a name="gst-device-provider-factory-list-get-device-providers"></a><h3>gst_device_provider_factory_list_get_device_providers ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
-gst_device_monitor_factory_list_get_device_monitors
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classes</code></em>,
- <em class="parameter"><code><a class="link" href="GstPluginFeature.html#GstRank" title="enum GstRank"><span class="type">GstRank</span></a> minrank</code></em>);</pre>
-<p>Get a list of factories that match all of the given <em class="parameter"><code>classes</code></em>
-. Only
-device monitors with a rank greater or equal to <em class="parameter"><code>minrank</code></em>
- will be
-returned. The list of factories is returned by decreasing rank.</p>
+gst_device_provider_factory_list_get_device_providers
+ (<em class="parameter"><code><a class="link" href="GstPluginFeature.html#GstRank" title="enum GstRank"><span class="type">GstRank</span></a> minrank</code></em>);</pre>
+<p>Get a list of factories with a rank greater or equal to <em class="parameter"><code>minrank</code></em>
+.
+The list of factories is returned by decreasing rank.</p>
<div class="refsect3">
-<a name="id-1.4.4.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.4.5.8.10.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>classes</p></td>
-<td class="parameter_description"><p>a "/" separate list of klasses to match, only match if all classes
-are matched</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
+<tbody><tr>
<td class="parameter_name"><p>minrank</p></td>
<td class="parameter_description"><p>Minimum rank</p></td>
<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
+</tr></tbody>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.4.8.10.6"></a><h4>Returns</h4>
-<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-<a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> device monitors. Use <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after
-usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.DeviceMonitorFactory]</span></p>
+<a name="id-1.4.5.8.10.6"></a><h4>Returns</h4>
+<p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> device providers. Use
+<a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.DeviceProviderFactory]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
</div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.other_details"></a><h2>Types and Values</h2>
+<a name="GstDeviceProviderFactory.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
-<a name="GstDeviceMonitorFactory-struct"></a><h3>GstDeviceMonitorFactory</h3>
-<pre class="programlisting">typedef struct _GstDeviceMonitorFactory GstDeviceMonitorFactory;</pre>
-<p>The opaque <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> data structure.</p>
+<a name="GstDeviceProviderFactory-struct"></a><h3>GstDeviceProviderFactory</h3>
+<pre class="programlisting">typedef struct _GstDeviceProviderFactory GstDeviceProviderFactory;</pre>
+<p>The opaque <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> data structure.</p>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="GstDeviceMonitorFactoryClass"></a><h3>GstDeviceMonitorFactoryClass</h3>
-<pre class="programlisting">typedef struct _GstDeviceMonitorFactoryClass GstDeviceMonitorFactoryClass;</pre>
-<p>The opaque <a class="link" href="GstDeviceMonitorFactory.html#GstDeviceMonitorFactoryClass" title="GstDeviceMonitorFactoryClass"><span class="type">GstDeviceMonitorFactoryClass</span></a> data structure.</p>
+<a name="GstDeviceProviderFactoryClass"></a><h3>GstDeviceProviderFactoryClass</h3>
+<pre class="programlisting">typedef struct _GstDeviceProviderFactoryClass GstDeviceProviderFactoryClass;</pre>
+<p>The opaque <a class="link" href="GstDeviceProviderFactory.html#GstDeviceProviderFactoryClass" title="GstDeviceProviderFactoryClass"><span class="type">GstDeviceProviderFactoryClass</span></a> data structure.</p>
<p class="since">Since 1.4</p>
</div>
</div>
<div class="refsect1">
-<a name="GstDeviceMonitorFactory.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a>, <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>, <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>, <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>.</p>
+<a name="GstDeviceProviderFactory.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a>, <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>, <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>, <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>.</p>
</div>
</div>
<div class="footer">
diff --git a/docs/gst/html/GstElement.html b/docs/gst/html/GstElement.html
index f6f3e32..2a148b4 100644
--- a/docs/gst/html/GstElement.html
+++ b/docs/gst/html/GstElement.html
@@ -1466,9 +1466,10 @@ that has subclasses, make sure to pass the g_class parameter of the
</div>
<div class="refsect3">
<a name="id-1.3.21.10.24.7"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> with the given name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-if none was found. No unreferencing is necessary. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> with the
+given name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none was found. No unreferencing is
+necessary. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1816,9 +1817,10 @@ at the templates of <em class="parameter"><code>element</code></em>
</div>
<div class="refsect3">
<a name="id-1.3.21.10.32.7"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to which a link can be made, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-if one cannot be found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to which a link
+can be made, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if one cannot be found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>
+after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1857,9 +1859,9 @@ template for. </p></td>
</div>
<div class="refsect3">
<a name="id-1.3.21.10.33.6"></a><h4>Returns</h4>
-<p> a compatible <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none
-was found. No unreferencing is necessary. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> a compatible <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none was found. No unreferencing is necessary. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1897,9 +1899,9 @@ use <a class="link" href="GstElement.html#gst-element-request-pad" title="gst_el
</div>
<div class="refsect3">
<a name="id-1.3.21.10.34.7"></a><h4>Returns</h4>
-<p> requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-Release after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found,
+otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Release after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1935,10 +1937,10 @@ already-existing (i.e. 'static') pads.</p>
</div>
<div class="refsect3">
<a name="id-1.3.21.10.35.6"></a><h4>Returns</h4>
-<p> the requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-unref after usage.</p>
+<p> the requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if
+found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. unref after usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1989,9 +1991,9 @@ request. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Stand
</div>
<div class="refsect3">
<a name="id-1.3.21.10.36.7"></a><h4>Returns</h4>
-<p> requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-Release after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> requested <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> if found,
+otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Release after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -2976,8 +2978,9 @@ as well.</p>
<div class="refsect3">
<a name="id-1.3.21.10.62.6"></a><h4>Returns</h4>
<p> the name of <em class="parameter"><code>elem</code></em>
-. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage. MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
+after usage. MT safe. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -3131,10 +3134,10 @@ state. Some elements can provide a clock in other states.</div>
</div>
<div class="refsect3">
<a name="id-1.3.21.10.67.7"></a><h4>Returns</h4>
-<p> the GstClock provided by the element or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-if no clock could be provided. Unref after usage.</p>
+<p> the GstClock provided by the
+element or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no clock could be provided. Unref after usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstElementFactory.html b/docs/gst/html/GstElementFactory.html
index 1b2576e..ddb0383 100644
--- a/docs/gst/html/GstElementFactory.html
+++ b/docs/gst/html/GstElementFactory.html
@@ -436,8 +436,9 @@ element factory; caller is responsible for unreffing.</p>
</div>
<div class="refsect3">
<a name="id-1.3.22.8.3.6"></a><h4>Returns</h4>
-<p> <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> if found, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> if found,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -505,10 +506,10 @@ gst_element_factory_get_metadata (<em class="parameter"><code><a class="link" hr
<a name="id-1.3.22.8.5.6"></a><h4>Returns</h4>
<p> the metadata with <em class="parameter"><code>key</code></em>
on <em class="parameter"><code>factory</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there was no
-metadata with the given <em class="parameter"><code>key</code></em>
-.</p>
-<p></p>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when there was no metadata with the given <em class="parameter"><code>key</code></em>
+. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -537,7 +538,7 @@ gst_element_factory_get_metadata_keys (<em class="parameter"><code><a class="lin
<a name="id-1.3.22.8.6.6"></a><h4>Returns</h4>
<p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of key strings, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no
metadata. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][nullable]</span></p>
</div>
</div>
<hr>
@@ -698,9 +699,9 @@ a unique name. </p></td>
</div>
<div class="refsect3">
<a name="id-1.3.22.8.11.6"></a><h4>Returns</h4>
-<p> new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the element couldn't
-be created. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
+<p> new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+if the element couldn't be created. </p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -738,8 +739,9 @@ a unique name. </p></td>
</div>
<div class="refsect3">
<a name="id-1.3.22.8.12.6"></a><h4>Returns</h4>
-<p> new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unable to create element. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
+<p> new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+if unable to create element. </p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstEvent.html b/docs/gst/html/GstEvent.html
index caaead4..8f53e02 100644
--- a/docs/gst/html/GstEvent.html
+++ b/docs/gst/html/GstEvent.html
@@ -1036,9 +1036,9 @@ event is unreffed, the new one is reffed).</p>
<tbody>
<tr>
<td class="parameter_name"><p>old_event</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>
-to be replaced. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a
+pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to be replaced. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_event</p></td>
@@ -1103,9 +1103,9 @@ return the original event.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>old_event</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>
-to be stolen. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a
+pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to be stolen. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr></tbody>
</table></div>
</div>
@@ -1140,9 +1140,9 @@ function is similar to <a class="link" href="GstEvent.html#gst-event-replace" ti
<tbody>
<tr>
<td class="parameter_name"><p>old_event</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>
-to be stolen. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a
+pointer to a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> to be stolen. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_event</p></td>
diff --git a/docs/gst/html/GstGhostPad.html b/docs/gst/html/GstGhostPad.html
index 3ba1110..c1c9ea7 100644
--- a/docs/gst/html/GstGhostPad.html
+++ b/docs/gst/html/GstGhostPad.html
@@ -241,8 +241,9 @@ from the target pad. <em class="parameter"><code>target</code></em>
</div>
<div class="refsect3">
<a name="id-1.3.26.9.2.7"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. </p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -279,8 +280,9 @@ A target can be set on the ghostpad later with the
</div>
<div class="refsect3">
<a name="id-1.3.26.9.3.7"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -324,8 +326,9 @@ from the target pad. The template used on the ghostpad will be <em class="parame
</div>
<div class="refsect3">
<a name="id-1.3.26.9.4.7"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -363,8 +366,9 @@ direction will be taken from the <em class="parameter"><code>templ</code></em>
</div>
<div class="refsect3">
<a name="id-1.3.26.9.5.6"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -431,9 +435,10 @@ gst_ghost_pad_get_target (<em class="parameter"><code><a class="link" href="GstG
</div>
<div class="refsect3">
<a name="id-1.3.26.9.7.6"></a><h4>Returns</h4>
-<p> the target <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the ghostpad
-has no target set. Unref target pad after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the target <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, can be
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the ghostpad has no target set. Unref target pad after
+usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -592,9 +597,9 @@ pad of opposite direction, which is used to link to the target.</p>
</div>
<div class="refsect3">
<a name="id-1.3.26.9.11.7"></a><h4>Returns</h4>
-<p> the target <a class="link" href="GstGhostPad.html#GstProxyPad"><span class="type">GstProxyPad</span></a>, can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-Unref target pad after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the target <a class="link" href="GstGhostPad.html#GstProxyPad"><span class="type">GstProxyPad</span></a>, can
+be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref target pad after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -631,9 +636,8 @@ or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.ht
<div class="refsect3">
<a name="id-1.3.26.9.12.6"></a><h4>Returns</h4>
<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>pad</code></em>
-has no parent. Unref each
-returned pad with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>.</p>
-<p></p>
+has no parent. Unref each returned pad with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstMemory.html b/docs/gst/html/GstMemory.html
index 3dbe344..6fc7e5f 100644
--- a/docs/gst/html/GstMemory.html
+++ b/docs/gst/html/GstMemory.html
@@ -1105,10 +1105,10 @@ mapped copy of <em class="parameter"><code>mem</code></em>
</div>
<div class="refsect3">
<a name="id-1.3.28.8.27.7"></a><h4>Returns</h4>
-<p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> object mapped with <em class="parameter"><code>flags</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when
-a mapping is not possible. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> object mapped
+with <em class="parameter"><code>flags</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when a mapping is not possible. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstMessage.html b/docs/gst/html/GstMessage.html
index 5c7da8e..637c1f0 100644
--- a/docs/gst/html/GstMessage.html
+++ b/docs/gst/html/GstMessage.html
@@ -1277,9 +1277,9 @@ message is unreffed, the new one is reffed).</p>
<tbody>
<tr>
<td class="parameter_name"><p>old_message</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a>
-to be replaced. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a
+pointer to a <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> to be replaced. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_message</p></td>
@@ -2516,8 +2516,8 @@ documented in the element's documentation. The structure field can be <a href="h
</tr>
<tr>
<td class="parameter_name"><p>structure</p></td>
-<td class="parameter_description"><p> The structure for the message. The message
-will take ownership of the structure. </p></td>
+<td class="parameter_description"><p> The structure for the
+message. The message will take ownership of the structure. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
@@ -2561,9 +2561,9 @@ app. The structure field can be <a href="http://library.gnome.org/devel/glib/uns
</tr>
<tr>
<td class="parameter_name"><p>structure</p></td>
-<td class="parameter_description"><p> the structure for the message. The message
-will take ownership of the structure. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> the structure for the
+message. The message will take ownership of the structure. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -4200,7 +4200,7 @@ context or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-M
gst_message_new_device_added (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
<p>Creates a new device-added message. The device-added message is produced by
-<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> or a <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a>. They announce the appearance
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> or a <span class="type">GstlDeviceMonitor</span>. They announce the appearance
of monitored devices.</p>
<div class="refsect3">
<a name="id-1.3.29.8.85.5"></a><h4>Parameters</h4>
@@ -4238,7 +4238,7 @@ of monitored devices.</p>
gst_message_new_device_removed (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
<p>Creates a new device-removed message. The device-removed message is produced
-by <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> or a <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a>. They announce the
+by <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> or a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a>. They announce the
disappearance of monitored devices.</p>
<div class="refsect3">
<a name="id-1.3.29.8.86.5"></a><h4>Parameters</h4>
@@ -4276,7 +4276,7 @@ disappearance of monitored devices.</p>
gst_message_parse_device_added (<em class="parameter"><code><a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> **device</code></em>);</pre>
<p>Parses a device-added message. The device-added message is produced by
-<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> or a <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a>. It announces the appearance
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> or a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a>. It announces the appearance
of monitored devices.</p>
<div class="refsect3">
<a name="id-1.3.29.8.87.5"></a><h4>Parameters</h4>
@@ -4310,7 +4310,7 @@ pointer to the new <a class="link" href="gstreamer-GstDevice.html#GstDevice" tit
gst_message_parse_device_removed (<em class="parameter"><code><a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> **device</code></em>);</pre>
<p>Parses a device-removed message. The device-removed message is produced by
-<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> or a <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a>. It announces the
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> or a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a>. It announces the
disappearance of monitored devices.</p>
<div class="refsect3">
<a name="id-1.3.29.8.88.5"></a><h4>Parameters</h4>
@@ -4682,7 +4682,7 @@ was updated.</p>
<td class="enum_member_name"><p><a name="GST-MESSAGE-DEVICE-ADDED:CAPS"></a>GST_MESSAGE_DEVICE_ADDED</p></td>
<td class="enum_member_description">
<p>Message indicating a <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> was added to
- a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> (Since 1.4)</p>
+ a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> (Since 1.4)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
@@ -4690,7 +4690,7 @@ was updated.</p>
<td class="enum_member_name"><p><a name="GST-MESSAGE-DEVICE-REMOVED:CAPS"></a>GST_MESSAGE_DEVICE_REMOVED</p></td>
<td class="enum_member_description">
<p>Message indicating a <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> was removed
- from a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> (Since 1.4)</p>
+ from a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> (Since 1.4)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
diff --git a/docs/gst/html/GstObject.html b/docs/gst/html/GstObject.html
index d3dc706..e04f559 100644
--- a/docs/gst/html/GstObject.html
+++ b/docs/gst/html/GstObject.html
@@ -804,8 +804,8 @@ retains ownership of the name it sent.</p>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>new name of object</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> new name of object. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -849,10 +849,11 @@ as well.</p>
<div class="refsect3">
<a name="id-1.3.32.10.15.7"></a><h4>Returns</h4>
<p> the name of <em class="parameter"><code>object</code></em>
-. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
+. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
+after usage.</p>
<p>MT safe. This function grabs and releases <em class="parameter"><code>object</code></em>
's LOCK. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -925,11 +926,12 @@ of the parent object so you should <a class="link" href="GstObject.html#gst-obje
<div class="refsect3">
<a name="id-1.3.32.10.17.6"></a><h4>Returns</h4>
<p> parent of <em class="parameter"><code>object</code></em>
-, this can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>object</code></em>
+, this can be
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>object</code></em>
has no parent. unref after usage.</p>
<p>MT safe. Grabs and releases <em class="parameter"><code>object</code></em>
's LOCK. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1253,14 +1255,14 @@ The reference count of <em class="parameter"><code>oldobj</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>oldobj</p></td>
-<td class="parameter_description"><p> pointer to a place of a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to
-replace. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a place of
+a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to replace. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>newobj</p></td>
<td class="parameter_description"><p> a new <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -1551,10 +1553,10 @@ unreferenced again after use.</p>
</div>
<div class="refsect3">
<a name="id-1.3.32.10.34.6"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> for <em class="parameter"><code>property_name</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
-the property is not controlled. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> for
+<em class="parameter"><code>property_name</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property is not controlled. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1630,9 +1632,9 @@ gst_object_get_value (<em class="parameter"><code><a class="link" href="GstObjec
</div>
<div class="refsect3">
<a name="id-1.3.32.10.36.6"></a><h4>Returns</h4>
-<p> the GValue of the property at the given time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-property isn't controlled.</p>
-<p></p>
+<p> the GValue of the property at the given time,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property isn't controlled. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstPad.html b/docs/gst/html/GstPad.html
index 15425b1..a7ffb8b 100644
--- a/docs/gst/html/GstPad.html
+++ b/docs/gst/html/GstPad.html
@@ -1701,6 +1701,11 @@ Can return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-M
</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.3.33.10.11.7"></a><h4>Returns</h4>
+<p> the parent. </p>
+<p><span class="annotation">[nullable]</span></p>
+</div>
</div>
<hr>
<div class="refsect2">
@@ -1728,10 +1733,11 @@ its parent is not an element, return <a href="http://library.gnome.org/devel/gli
</div>
<div class="refsect3">
<a name="id-1.3.33.10.12.6"></a><h4>Returns</h4>
-<p> the parent of the pad. The caller has a
-reference on the parent, so unref when you're finished with it.</p>
+<p> the parent of the pad. The
+caller has a reference on the parent, so unref when you're finished
+with it.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1758,10 +1764,10 @@ gst_pad_get_pad_template (<em class="parameter"><code><a class="link" href="GstP
</div>
<div class="refsect3">
<a name="id-1.3.33.10.13.6"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> from which this pad was
-instantiated, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if this pad has no template. Unref after
-usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> from which
+this pad was instantiated, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if this pad has no
+template. Unref after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1981,11 +1987,12 @@ on the resulting caps.</p>
</div>
<div class="refsect3">
<a name="id-1.3.33.10.19.7"></a><h4>Returns</h4>
-<p> the allowed <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> of the pad link. Unref the
-caps when you no longer need it. This function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when <em class="parameter"><code>pad</code></em>
+<p> the allowed <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> of the
+pad link. Unref the caps when you no longer need it. This
+function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when <em class="parameter"><code>pad</code></em>
has no peer.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -2171,12 +2178,13 @@ from the event.</p>
</div>
<div class="refsect3">
<a name="id-1.3.33.10.25.6"></a><h4>Returns</h4>
-<p> a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> of type <em class="parameter"><code>event_type</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no
-event of <em class="parameter"><code>event_type</code></em>
-was on <em class="parameter"><code>pad</code></em>
+<p> a <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a> of type
+<em class="parameter"><code>event_type</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no event of <em class="parameter"><code>event_type</code></em>
+was on
+<em class="parameter"><code>pad</code></em>
. Unref after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -2211,8 +2219,8 @@ removing or modifying.</p>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>a sticky <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> a sticky <a class="link" href="GstEvent.html" title="GstEvent"><span class="type">GstEvent</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
@@ -2713,8 +2721,8 @@ This function makes a copy of the name so you can safely free the name.</p>
<tbody>
<tr>
<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>the name of the new pad.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the name of the new pad. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>direction</p></td>
@@ -2726,9 +2734,10 @@ This function makes a copy of the name so you can safely free the name.</p>
</div>
<div class="refsect3">
<a name="id-1.3.33.10.49.6"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error.</p>
+<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -2757,16 +2766,17 @@ This function makes a copy of the name so you can safely free the name.</p>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>the name of the element</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the name of the element. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="id-1.3.33.10.50.6"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. </p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -2803,8 +2813,9 @@ This function makes a copy of the name so you can safely free the name.</p>
</div>
<div class="refsect3">
<a name="id-1.3.33.10.51.6"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. </p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -2913,12 +2924,12 @@ error on the bus and return an appropriate <a class="link" href="GstPad.html#Gst
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
@@ -3041,12 +3052,12 @@ post an error on the bus and return an appropriate <a class="link" href="GstPad.
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>list</p></td>
@@ -3293,12 +3304,12 @@ of <em class="parameter"><code>offset</code></em>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>offset</p></td>
@@ -3425,12 +3436,12 @@ will not be used anymore.</p></td>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
@@ -3552,12 +3563,12 @@ will not be used anymore.</p></td>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>peer</p></td>
@@ -3671,12 +3682,12 @@ will not be used anymore.</p></td>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -5144,12 +5155,12 @@ will not be used anymore.</p></td>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>query</p></td>
@@ -5263,12 +5274,12 @@ will not be used anymore.</p></td>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>the parent of <em class="parameter"><code>pad</code></em>
-. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
-<em class="parameter"><code>parent</code></em>
-is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid during the
-execution of this function.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the parent of <em class="parameter"><code>pad</code></em>
+. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a>
+flag is set, <em class="parameter"><code>parent</code></em>
+is guaranteed to be not-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and remain valid
+during the execution of this function. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -5308,10 +5319,10 @@ so unref after use.</p>
</div>
<div class="refsect3">
<a name="id-1.3.33.10.108.8"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the
-pad does not have an iterator function configured. Use
-<a class="link" href="gstreamer-GstIterator.html#gst-iterator-free" title="gst_iterator_free ()"><code class="function">gst_iterator_free()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the pad does not have an iterator function
+configured. Use <a class="link" href="gstreamer-GstIterator.html#gst-iterator-free" title="gst_iterator_free ()"><code class="function">gst_iterator_free()</code></a> after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -5352,9 +5363,8 @@ or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.ht
<div class="refsect3">
<a name="id-1.3.33.10.109.7"></a><h4>Returns</h4>
<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>pad</code></em>
-has no parent. Unref each
-returned pad with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>.</p>
-<p></p>
+has no parent. Unref each returned pad with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -5647,10 +5657,11 @@ contents should not be interpreted.</p>
</div>
<div class="refsect3">
<a name="id-1.3.33.10.115.8"></a><h4>Returns</h4>
-<p> a newly-allocated copy of the stream-id for <em class="parameter"><code>pad</code></em>
-, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> the returned string when no longer needed.</p>
-<p></p>
+<p> a newly-allocated copy of the stream-id for
+<em class="parameter"><code>pad</code></em>
+, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> the returned string when no longer
+needed. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
<p class="since">Since 1.2</p>
</div>
@@ -7939,10 +7950,10 @@ blocking probe.</p>
</tr>
<tr>
<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstPadProbeInfo.data"></a>data</code></em>;</p></td>
-<td class="struct_member_description"><p>type specific data, check the <em class="parameter"><code>type</code></em>
-field to know the datatype.
-This field can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
-<td class="struct_member_annotations"> </td>
+<td class="struct_member_description"><p> type specific data, check the <em class="parameter"><code>type</code></em>
+field to know the
+datatype. This field can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="struct_member_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint64</span> <em class="structfield"><code><a name="GstPadProbeInfo.offset"></a>offset</code></em>;</p></td>
diff --git a/docs/gst/html/GstPlugin.html b/docs/gst/html/GstPlugin.html
index 8ad19b2..d48dc25 100644
--- a/docs/gst/html/GstPlugin.html
+++ b/docs/gst/html/GstPlugin.html
@@ -800,8 +800,9 @@ formatted like "YYYY-MM-DDTHH:MMZ" (e.g. "2012-04-30T09:30Z").</p>
</div>
<div class="refsect3">
<a name="id-1.3.38.8.17.8"></a><h4>Returns</h4>
-<p> the date string of the plugin, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not available.</p>
-<p></p>
+<p> the date string of the plugin, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not
+available. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -855,8 +856,9 @@ stored. This is the case when the registry is getting rebuilt.</p>
</div>
<div class="refsect3">
<a name="id-1.3.38.8.19.6"></a><h4>Returns</h4>
-<p> The cached data as a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> The cached data as a
+<a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1474,12 +1476,13 @@ BSD, MIT/X11, Proprietary, unknown.</p>
</tr>
<tr>
<td class="struct_member_name"><p>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstPluginDesc.release-datetime"></a>release_datetime</code></em>;</p></td>
-<td class="struct_member_description"><p>date time string in ISO 8601 format (or rather, a
-subset thereof), or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Allowed are the following formats:
-"YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with 'T' a separator and 'Z'
-indicating UTC/Zulu time). This field should be set via the
-GST_PACKAGE_RELEASE_DATETIME preprocessor macro.</p></td>
-<td class="struct_member_annotations"> </td>
+<td class="struct_member_description"><p> date time string in ISO 8601
+format (or rather, a subset thereof), or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Allowed are the
+following formats: "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with
+'T' a separator and 'Z' indicating UTC/Zulu time). This field
+should be set via the <code class="literal">GST_PACKAGE_RELEASE_DATETIME</code>
+preprocessor macro. </p></td>
+<td class="struct_member_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
diff --git a/docs/gst/html/GstPluginFeature.html b/docs/gst/html/GstPluginFeature.html
index 24e655d..d371e5e 100644
--- a/docs/gst/html/GstPluginFeature.html
+++ b/docs/gst/html/GstPluginFeature.html
@@ -167,7 +167,7 @@
<span class="lineart">╰──</span> GstPluginFeature
<span class="lineart">├──</span> <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
<span class="lineart">├──</span> <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory">GstTypeFindFactory</a>
- <span class="lineart">╰──</span> <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+ <span class="lineart">╰──</span> <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</pre>
</div>
<div class="refsect1">
@@ -332,7 +332,7 @@ For a nameless plugin feature, this returns <a href="http://library.gnome.org/de
<a name="id-1.3.39.8.6.6"></a><h4>Returns</h4>
<p> the name of <em class="parameter"><code>feature</code></em>
. MT safe. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -358,9 +358,10 @@ gst_plugin_feature_get_plugin (<em class="parameter"><code><a class="link" href=
</div>
<div class="refsect3">
<a name="id-1.3.39.8.7.6"></a><h4>Returns</h4>
-<p> the plugin that provides this feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-Unref with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the plugin that provides this
+feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> when no
+longer needed. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -386,9 +387,10 @@ gst_plugin_feature_get_plugin_name (<em class="parameter"><code><a class="link"
</div>
<div class="refsect3">
<a name="id-1.3.39.8.8.6"></a><h4>Returns</h4>
-<p> the name of the plugin that provides this feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
-the feature is not associated with a plugin.</p>
-<p></p>
+<p> the name of the plugin that provides this
+feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the feature is not associated with a
+plugin. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
<p class="since">Since 1.2</p>
</div>
@@ -441,8 +443,9 @@ feature <span class="gtkdoc opt">=</span> loaded_feature<span class="gtkdoc opt"
</div>
<div class="refsect3">
<a name="id-1.3.39.8.9.9"></a><h4>Returns</h4>
-<p> a reference to the loaded feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a reference to the loaded
+feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstPreset.html b/docs/gst/html/GstPreset.html
index e86a58c..52bdfbc 100644
--- a/docs/gst/html/GstPreset.html
+++ b/docs/gst/html/GstPreset.html
@@ -420,8 +420,8 @@ data <em class="parameter"><code>tag</code></em>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>new value</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> new value. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
@@ -524,8 +524,9 @@ gst_preset_get_app_dir (<em class="parameter"><code><span class="type">void</spa
application.</p>
<div class="refsect3">
<a name="id-1.3.41.8.11.5"></a><h4>Returns</h4>
-<p> the directory or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, don't free or modify the string</p>
-<p></p>
+<p> the directory or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, don't free or modify
+the string. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
</div>
diff --git a/docs/gst/html/GstQuery.html b/docs/gst/html/GstQuery.html
index feee4a6..d49a113 100644
--- a/docs/gst/html/GstQuery.html
+++ b/docs/gst/html/GstQuery.html
@@ -1260,9 +1260,9 @@ query is unreffed, the new one is reffed).</p>
<tbody>
<tr>
<td class="parameter_name"><p>old_query</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>
-to be replaced. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a pointer to a
+<a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> to be replaced. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>new_query</p></td>
diff --git a/docs/gst/html/GstRegistry.html b/docs/gst/html/GstRegistry.html
index e21d466..c3a3819 100644
--- a/docs/gst/html/GstRegistry.html
+++ b/docs/gst/html/GstRegistry.html
@@ -658,10 +658,11 @@ The plugin will be reffed; caller is responsible for unreffing.</p>
</div>
<div class="refsect3">
<a name="id-1.3.43.9.11.6"></a><h4>Returns</h4>
-<p> the plugin with the given name or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-plugin was not found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage.</p>
+<p> the plugin with the given name
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the plugin was not found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after
+usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -701,10 +702,11 @@ gst_registry_find_feature (<em class="parameter"><code><a class="link" href="Gst
</div>
<div class="refsect3">
<a name="id-1.3.43.9.12.6"></a><h4>Returns</h4>
-<p> the pluginfeature with the given name and type
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the plugin was not found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage.</p>
+<p> the pluginfeature with the
+given name and type or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the plugin was not
+found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage.</p>
<p>MT safe. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -875,9 +877,9 @@ If found, plugin is reffed.</p>
</div>
<div class="refsect3">
<a name="id-1.3.43.9.17.6"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> if found, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not.
-<a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> if found, or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstSample.html b/docs/gst/html/GstSample.html
index 1439c5b..faf4644 100644
--- a/docs/gst/html/GstSample.html
+++ b/docs/gst/html/GstSample.html
@@ -161,12 +161,12 @@ gst_sample_get_buffer (<em class="parameter"><code><a class="link" href="GstSamp
<div class="refsect3">
<a name="id-1.3.13.8.2.6"></a><h4>Returns</h4>
<p> the buffer of <em class="parameter"><code>sample</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there
-is no buffer. The buffer remains valid as long as <em class="parameter"><code>sample</code></em>
-is valid.
-If you need to hold on to it for longer than that, take a ref to
-the buffer with <a class="link" href="GstBuffer.html#gst-buffer-ref" title="gst_buffer_ref ()"><code class="function">gst_buffer_ref()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when there is no buffer. The buffer remains valid as long as
+<em class="parameter"><code>sample</code></em>
+is valid. If you need to hold on to it for longer than
+that, take a ref to the buffer with <a class="link" href="GstBuffer.html#gst-buffer-ref" title="gst_buffer_ref ()"><code class="function">gst_buffer_ref()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -194,12 +194,12 @@ gst_sample_get_caps (<em class="parameter"><code><a class="link" href="GstSample
<div class="refsect3">
<a name="id-1.3.13.8.3.6"></a><h4>Returns</h4>
<p> the caps of <em class="parameter"><code>sample</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there
-is no caps. The caps remain valid as long as <em class="parameter"><code>sample</code></em>
-is valid.
-If you need to hold on to the caps for longer than that, take a ref to
-the caps with <a class="link" href="GstCaps.html#gst-caps-ref" title="gst_caps_ref ()"><code class="function">gst_caps_ref()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when there is no caps. The caps remain valid as long as <em class="parameter"><code>sample</code></em>
+is
+valid. If you need to hold on to the caps for longer than that,
+take a ref to the caps with <a class="link" href="GstCaps.html#gst-caps-ref" title="gst_caps_ref ()"><code class="function">gst_caps_ref()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstStructure.html b/docs/gst/html/GstStructure.html
index 93d0934..adabea3 100644
--- a/docs/gst/html/GstStructure.html
+++ b/docs/gst/html/GstStructure.html
@@ -941,9 +941,10 @@ when there are nested <a class="link" href="GstCaps.html" title="GstCaps"><span
</div>
<div class="refsect3">
<a name="id-1.3.45.8.9.8"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the string could
-not be parsed. Free with <a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when the string could not be parsed. Free with
+<a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
<p class="since">Since 1.2</p>
</div>
@@ -2573,9 +2574,9 @@ call to a gst_structure_*() function with the given structure.</p>
</div>
<div class="refsect3">
<a name="id-1.3.45.8.51.7"></a><h4>Returns</h4>
-<p> a pointer to the string or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the field did not exist
-or did not contain a string.</p>
-<p></p>
+<p> a pointer to the string or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the
+field did not exist or did not contain a string. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -3033,9 +3034,10 @@ where parsing ended will be returned.</p>
</div>
<div class="refsect3">
<a name="id-1.3.45.8.61.7"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the string could
-not be parsed. Free with <a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when the string could not be parsed. Free with
+<a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstTagList.html b/docs/gst/html/GstTagList.html
index 9ee85ee..5f648f5 100644
--- a/docs/gst/html/GstTagList.html
+++ b/docs/gst/html/GstTagList.html
@@ -1480,8 +1480,9 @@ gst_tag_list_new_from_string (<em class="parameter"><code>const <a href="http://
</div>
<div class="refsect3">
<a name="id-1.3.47.8.17.6"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error.</p>
-<p></p>
+<p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an
+error. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -1577,9 +1578,10 @@ gst_tag_list_to_string (<em class="parameter"><code>const <a class="link" href="
</div>
<div class="refsect3">
<a name="id-1.3.47.8.21.6"></a><h4>Returns</h4>
-<p> a newly-allocated string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error. The
-string must be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed.</p>
-<p></p>
+<p> a newly-allocated string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of
+an error. The string must be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer
+needed. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -1856,13 +1858,13 @@ copy of the other is returned. If both lists are <a href="http://library.gnome.o
<tbody>
<tr>
<td class="parameter_name"><p>list1</p></td>
-<td class="parameter_description"><p>first list to merge</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> first list to merge. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>list2</p></td>
-<td class="parameter_description"><p>second list to merge</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> second list to merge. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>mode</p></td>
@@ -1875,7 +1877,7 @@ copy of the other is returned. If both lists are <a href="http://library.gnome.o
<div class="refsect3">
<a name="id-1.3.47.8.30.7"></a><h4>Returns</h4>
<p> the new list. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -2295,9 +2297,10 @@ list.</p>
</div>
<div class="refsect3">
<a name="id-1.3.47.8.41.6"></a><h4>Returns</h4>
-<p> The GValue for the specified entry or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-tag wasn't available or the tag doesn't have as many entries. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> The GValue for the specified
+entry or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the tag wasn't available or the tag
+doesn't have as many entries. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstTagSetter.html b/docs/gst/html/GstTagSetter.html
index 16181dd..dbba0dd 100644
--- a/docs/gst/html/GstTagSetter.html
+++ b/docs/gst/html/GstTagSetter.html
@@ -525,9 +525,9 @@ modified or freed.</p>
</div>
<div class="refsect3">
<a name="id-1.3.48.9.9.7"></a><h4>Returns</h4>
-<p> a current snapshot of the taglist used in the
-setter or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is used. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> a current snapshot of the
+taglist used in the setter or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is used. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstTaskPool.html b/docs/gst/html/GstTaskPool.html
index 9756e54..82cd57e 100644
--- a/docs/gst/html/GstTaskPool.html
+++ b/docs/gst/html/GstTaskPool.html
@@ -241,11 +241,11 @@ gst_task_pool_push (<em class="parameter"><code><a class="link" href="GstTaskPoo
</div>
<div class="refsect3">
<a name="id-1.3.50.8.5.6"></a><h4>Returns</h4>
-<p> a pointer that should be used for the
-gst_task_pool_join function. This pointer can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, you must
-check <em class="parameter"><code>error</code></em>
+<p> a pointer that should be used
+for the gst_task_pool_join function. This pointer can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, you
+must check <em class="parameter"><code>error</code></em>
to detect errors. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/GstToc.html b/docs/gst/html/GstToc.html
index 5ca256b..6585653 100644
--- a/docs/gst/html/GstToc.html
+++ b/docs/gst/html/GstToc.html
@@ -438,9 +438,9 @@ with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><c
</div>
<div class="refsect3">
<a name="id-1.3.51.9.5.6"></a><h4>Returns</h4>
-<p> newly allocated <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> in case of success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise;
-free it when done with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>.</p>
-<p></p>
+<p> newly allocated <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> in case of success,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise; free it when done with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -712,9 +712,10 @@ gst_toc_entry_new (<em class="parameter"><code><a class="link" href="GstToc.html
</div>
<div class="refsect3">
<a name="id-1.3.51.9.17.6"></a><h4>Returns</h4>
-<p> newly allocated <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> in case of success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise;
-free it when done with <a class="link" href="GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>.</p>
-<p></p>
+<p> newly allocated <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> in case of
+success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise; free it when done with
+<a class="link" href="GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -756,10 +757,11 @@ gst_toc_find_entry (<em class="parameter"><code>const <a class="link" href="GstT
</div>
<div class="refsect3">
<a name="id-1.3.51.9.19.6"></a><h4>Returns</h4>
-<p> <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> with specified <em class="parameter"><code>uid</code></em>
+<p> <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> with specified
+<em class="parameter"><code>uid</code></em>
from the <em class="parameter"><code>toc</code></em>
, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -938,13 +940,15 @@ storages.</p>
</tr>
<tr>
<td class="parameter_name"><p>start</p></td>
-<td class="parameter_description"><p> the storage for the start value, leave <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not need. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+<td class="parameter_description"><p> the storage for the start value, leave
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not need. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>stop</p></td>
-<td class="parameter_description"><p> the storage for the stop value, leave <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not need. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+<td class="parameter_description"><p> the storage for the stop value, leave
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not need. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
diff --git a/docs/gst/html/GstTypeFindFactory.html b/docs/gst/html/GstTypeFindFactory.html
index 48d636a..fe55760 100644
--- a/docs/gst/html/GstTypeFindFactory.html
+++ b/docs/gst/html/GstTypeFindFactory.html
@@ -251,9 +251,8 @@ a 0-length list.</p>
</div>
<div class="refsect3">
<a name="id-1.3.54.8.3.6"></a><h4>Returns</h4>
-<p> a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of extensions associated with this factory. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span></p>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of extensions associated with this factory. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/api-index-full.html b/docs/gst/html/api-index-full.html
index f7bb4a7..87b350a 100644
--- a/docs/gst/html/api-index-full.html
+++ b/docs/gst/html/api-index-full.html
@@ -1789,11 +1789,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file-with-ts" title="gst_debug_bin_to_dot_file_with_ts ()">gst_debug_bin_to_dot_file_with_ts</a>, function in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
+<a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS" title="GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()">GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS" title="GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()">GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
+<a class="link" href="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file-with-ts" title="gst_debug_bin_to_dot_file_with_ts ()">gst_debug_bin_to_dot_file_with_ts</a>, function in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
</dt>
<dd></dd>
<dt>
@@ -1981,11 +1981,19 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#GstDeviceMonitorFactory-struct" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>, struct in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider">GstDeviceProvider</a>, struct in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass">GstDeviceProviderClass</a>, struct in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstDeviceProviderFactory.html#GstDeviceProviderFactory-struct" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>, struct in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#GstDeviceMonitorFactoryClass" title="GstDeviceMonitorFactoryClass">GstDeviceMonitorFactoryClass</a>, struct in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="GstDeviceProviderFactory.html#GstDeviceProviderFactoryClass" title="GstDeviceProviderFactoryClass">GstDeviceProviderFactoryClass</a>, struct in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
@@ -2009,95 +2017,123 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-can-monitor" title="gst_device_monitor_can_monitor ()">gst_device_monitor_can_monitor</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-add-filter" title="gst_device_monitor_add_filter ()">gst_device_monitor_add_filter</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-bus" title="gst_device_monitor_get_bus ()">gst_device_monitor_get_bus</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-metadata" title="gst_device_monitor_class_add_metadata ()">gst_device_monitor_class_add_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices" title="gst_device_monitor_get_devices ()">gst_device_monitor_get_devices</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-static-metadata" title="gst_device_monitor_class_add_static_metadata ()">gst_device_monitor_class_add_static_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-new" title="gst_device_monitor_new ()">gst_device_monitor_new</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-get-metadata" title="gst_device_monitor_class_get_metadata ()">gst_device_monitor_class_get_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-remove-filter" title="gst_device_monitor_remove_filter ()">gst_device_monitor_remove_filter</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-metadata" title="gst_device_monitor_class_set_metadata ()">gst_device_monitor_class_set_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" title="gst_device_monitor_start ()">gst_device_monitor_start</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-static-metadata" title="gst_device_monitor_class_set_static_metadata ()">gst_device_monitor_class_set_static_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop" title="gst_device_monitor_stop ()">gst_device_monitor_stop</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-add" title="gst_device_monitor_device_add ()">gst_device_monitor_device_add</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-can-monitor" title="gst_device_provider_can_monitor ()">gst_device_provider_can_monitor</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-remove" title="gst_device_monitor_device_remove ()">gst_device_monitor_device_remove</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-metadata" title="gst_device_provider_class_add_metadata ()">gst_device_provider_class_add_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-find" title="gst_device_monitor_factory_find ()">gst_device_monitor_factory_find</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-static-metadata" title="gst_device_provider_class_add_static_metadata ()">gst_device_provider_class_add_static_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get" title="gst_device_monitor_factory_get ()">gst_device_monitor_factory_get</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-get-metadata" title="gst_device_provider_class_get_metadata ()">gst_device_provider_class_get_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-by-name" title="gst_device_monitor_factory_get_by_name ()">gst_device_monitor_factory_get_by_name</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-metadata" title="gst_device_provider_class_set_metadata ()">gst_device_provider_class_set_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-device-monitor-type" title="gst_device_monitor_factory_get_device_monitor_type ()">gst_device_monitor_factory_get_device_monitor_type</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-static-metadata" title="gst_device_provider_class_set_static_metadata ()">gst_device_provider_class_set_static_metadata</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata" title="gst_device_monitor_factory_get_metadata ()">gst_device_monitor_factory_get_metadata</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-device-add" title="gst_device_provider_device_add ()">gst_device_provider_device_add</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata-keys" title="gst_device_monitor_factory_get_metadata_keys ()">gst_device_monitor_factory_get_metadata_keys</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-device-remove" title="gst_device_provider_device_remove ()">gst_device_provider_device_remove</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classes" title="gst_device_monitor_factory_has_classes ()">gst_device_monitor_factory_has_classes</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-find" title="gst_device_provider_factory_find ()">gst_device_provider_factory_find</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classesv" title="gst_device_monitor_factory_has_classesv ()">gst_device_monitor_factory_has_classesv</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get" title="gst_device_provider_factory_get ()">gst_device_provider_factory_get</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstDeviceMonitorFactory.html#gst-device-monitor-factory-list-get-device-monitors" title="gst_device_monitor_factory_list_get_device_monitors ()">gst_device_monitor_factory_list_get_device_monitors</a>, function in <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-by-name" title="gst_device_provider_factory_get_by_name ()">gst_device_provider_factory_get_by_name</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-bus" title="gst_device_monitor_get_bus ()">gst_device_monitor_get_bus</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-device-provider-type" title="gst_device_provider_factory_get_device_provider_type ()">gst_device_provider_factory_get_device_provider_type</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices" title="gst_device_monitor_get_devices ()">gst_device_monitor_get_devices</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata" title="gst_device_provider_factory_get_metadata ()">gst_device_provider_factory_get_metadata</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-factory" title="gst_device_monitor_get_factory ()">gst_device_monitor_get_factory</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata-keys" title="gst_device_provider_factory_get_metadata_keys ()">gst_device_provider_factory_get_metadata_keys</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-register" title="gst_device_monitor_register ()">gst_device_monitor_register</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-has-classes" title="gst_device_provider_factory_has_classes ()">gst_device_provider_factory_has_classes</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" title="gst_device_monitor_start ()">gst_device_monitor_start</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-has-classesv" title="gst_device_provider_factory_has_classesv ()">gst_device_provider_factory_has_classesv</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop" title="gst_device_monitor_stop ()">gst_device_monitor_stop</a>, function in <a class="link" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">GstDeviceMonitor</a>
+<a class="link" href="GstDeviceProviderFactory.html#gst-device-provider-factory-list-get-device-providers" title="gst_device_provider_factory_list_get_device_providers ()">gst_device_provider_factory_list_get_device_providers</a>, function in <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-get-bus" title="gst_device_provider_get_bus ()">gst_device_provider_get_bus</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-get-devices" title="gst_device_provider_get_devices ()">gst_device_provider_get_devices</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-get-factory" title="gst_device_provider_get_factory ()">gst_device_provider_get_factory</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-register" title="gst_device_provider_register ()">gst_device_provider_register</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-start" title="gst_device_provider_start ()">gst_device_provider_start</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-stop" title="gst_device_provider_stop ()">gst_device_provider_stop</a>, function in <a class="link" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">GstDeviceProvider</a>
</dt>
<dd></dd>
<dt>
@@ -3120,50 +3156,6 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>, struct in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitorClass" title="struct GstGlobalDeviceMonitorClass">GstGlobalDeviceMonitorClass</a>, struct in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-bus" title="gst_global_device_monitor_get_bus ()">gst_global_device_monitor_get_bus</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-caps-filter" title="gst_global_device_monitor_get_caps_filter ()">gst_global_device_monitor_get_caps_filter</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-classes-filter" title="gst_global_device_monitor_get_classes_filter ()">gst_global_device_monitor_get_classes_filter</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-devices" title="gst_global_device_monitor_get_devices ()">gst_global_device_monitor_get_devices</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-new" title="gst_global_device_monitor_new ()">gst_global_device_monitor_new</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-caps-filter" title="gst_global_device_monitor_set_caps_filter ()">gst_global_device_monitor_set_caps_filter</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-classes-filter" title="gst_global_device_monitor_set_classes_filter ()">gst_global_device_monitor_set_classes_filter</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-start" title="gst_global_device_monitor_start ()">gst_global_device_monitor_start</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-stop" title="gst_global_device_monitor_stop ()">gst_global_device_monitor_stop</a>, function in <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gstreamer-GstUtils.html#gst-guint64-to-gdouble" title="gst_guint64_to_gdouble()">gst_guint64_to_gdouble</a>, macro in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
</dt>
<dd></dd>
@@ -4530,15 +4522,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstPad.html#gst-pad-is-active" title="gst_pad_is_active ()">gst_pad_is_active</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="GstPad.html#GST-PAD-IS-ACTIVE:CAPS" title="GST_PAD_IS_ACTIVE()">GST_PAD_IS_ACTIVE</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstPad.html#GST-PAD-IS-BLOCKED:CAPS" title="GST_PAD_IS_BLOCKED()">GST_PAD_IS_BLOCKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-is-active" title="gst_pad_is_active ()">gst_pad_is_active</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
</dt>
<dd></dd>
<dt>
@@ -4546,7 +4534,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstPad.html#GST-PAD-IS-BLOCKING:CAPS" title="GST_PAD_IS_BLOCKING()">GST_PAD_IS_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#GST-PAD-IS-BLOCKED:CAPS" title="GST_PAD_IS_BLOCKED()">GST_PAD_IS_BLOCKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
</dt>
<dd></dd>
<dt>
@@ -4554,6 +4542,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="GstPad.html#GST-PAD-IS-BLOCKING:CAPS" title="GST_PAD_IS_BLOCKING()">GST_PAD_IS_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="GstPad.html#GST-PAD-IS-EOS:CAPS" title="GST_PAD_IS_EOS()">GST_PAD_IS_EOS</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
</dt>
<dd></dd>
@@ -4566,11 +4558,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstPad.html#gst-pad-is-linked" title="gst_pad_is_linked ()">gst_pad_is_linked</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#GST-PAD-IS-LINKED:CAPS" title="GST_PAD_IS_LINKED()">GST_PAD_IS_LINKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstPad.html#GST-PAD-IS-LINKED:CAPS" title="GST_PAD_IS_LINKED()">GST_PAD_IS_LINKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-is-linked" title="gst_pad_is_linked ()">gst_pad_is_linked</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
</dt>
<dd></dd>
<dt>
@@ -5398,11 +5390,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstPoll.html#gst-poll-fd-init" title="gst_poll_fd_init ()">gst_poll_fd_init</a>, function in <a class="link" href="gstreamer-GstPoll.html" title="GstPoll">GstPoll</a>
+<a class="link" href="gstreamer-GstPoll.html#GST-POLL-FD-INIT:CAPS" title="GST_POLL_FD_INIT">GST_POLL_FD_INIT</a>, macro in <a class="link" href="gstreamer-GstPoll.html" title="GstPoll">GstPoll</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstPoll.html#GST-POLL-FD-INIT:CAPS" title="GST_POLL_FD_INIT">GST_POLL_FD_INIT</a>, macro in <a class="link" href="gstreamer-GstPoll.html" title="GstPoll">GstPoll</a>
+<a class="link" href="gstreamer-GstPoll.html#gst-poll-fd-init" title="gst_poll_fd_init ()">gst_poll_fd_init</a>, function in <a class="link" href="gstreamer-GstPoll.html" title="GstPoll">GstPoll</a>
</dt>
<dd></dd>
<dt>
@@ -6277,11 +6269,11 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstElement.html#GST-STATE:CAPS" title="GST_STATE()">GST_STATE</a>, macro in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
+<a class="link" href="GstElement.html#GstState" title="enum GstState">GstState</a>, enum in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstElement.html#GstState" title="enum GstState">GstState</a>, enum in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
+<a class="link" href="GstElement.html#GST-STATE:CAPS" title="GST_STATE()">GST_STATE</a>, macro in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
</dt>
<dd></dd>
<dt>
diff --git a/docs/gst/html/gstreamer-1.0.devhelp2 b/docs/gst/html/gstreamer-1.0.devhelp2
index 04523e3..5e1b79f 100644
--- a/docs/gst/html/gstreamer-1.0.devhelp2
+++ b/docs/gst/html/gstreamer-1.0.devhelp2
@@ -65,10 +65,10 @@
<sub name="GstVersion" link="gstreamer-GstVersion.html"/>
</sub>
<sub name="GStreamer Device Discovery and Device Probing" link="gstreamer-device-probing.html">
- <sub name="GstDevice" link="gstreamer-GstDevice.html"/>
<sub name="GstDeviceMonitor" link="gstreamer-GstDeviceMonitor.html"/>
- <sub name="GstDeviceMonitorFactory" link="GstDeviceMonitorFactory.html"/>
- <sub name="GstGlobalDeviceMonitor" link="gstreamer-GstGlobalDeviceMonitor.html"/>
+ <sub name="GstDevice" link="gstreamer-GstDevice.html"/>
+ <sub name="GstDeviceProvider" link="gstreamer-GstDeviceProvider.html"/>
+ <sub name="GstDeviceProviderFactory" link="GstDeviceProviderFactory.html"/>
</sub>
<sub name="GStreamer Core Support" link="gstreamer-support.html">
<sub name="GstInfo" link="gstreamer-GstInfo.html"/>
@@ -2023,6 +2023,15 @@
<keyword type="macro" name="GST_VERSION_MICRO" link="gstreamer-GstVersion.html#GST-VERSION-MICRO:CAPS"/>
<keyword type="macro" name="GST_VERSION_NANO" link="gstreamer-GstVersion.html#GST-VERSION-NANO:CAPS"/>
<keyword type="macro" name="GST_CHECK_VERSION()" link="gstreamer-GstVersion.html#GST-CHECK-VERSION:CAPS"/>
+ <keyword type="function" name="gst_device_monitor_new ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-new" since="1.4"/>
+ <keyword type="function" name="gst_device_monitor_get_bus ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-bus" since="1.4"/>
+ <keyword type="function" name="gst_device_monitor_add_filter ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-add-filter" since="1.4"/>
+ <keyword type="function" name="gst_device_monitor_remove_filter ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-remove-filter" since="1.4"/>
+ <keyword type="function" name="gst_device_monitor_start ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" since="1.4"/>
+ <keyword type="function" name="gst_device_monitor_stop ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop" since="1.4"/>
+ <keyword type="function" name="gst_device_monitor_get_devices ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices" since="1.4"/>
+ <keyword type="struct" name="struct GstDeviceMonitor" link="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" since="1.4"/>
+ <keyword type="struct" name="struct GstDeviceMonitorClass" link="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" since="1.4"/>
<keyword type="function" name="gst_device_create_element ()" link="gstreamer-GstDevice.html#gst-device-create-element" since="1.4"/>
<keyword type="function" name="gst_device_get_caps ()" link="gstreamer-GstDevice.html#gst-device-get-caps" since="1.4"/>
<keyword type="function" name="gst_device_get_display_name ()" link="gstreamer-GstDevice.html#gst-device-get-display-name" since="1.4"/>
@@ -2031,44 +2040,33 @@
<keyword type="function" name="gst_device_reconfigure_element ()" link="gstreamer-GstDevice.html#gst-device-reconfigure-element" since="1.4"/>
<keyword type="struct" name="struct GstDevice" link="gstreamer-GstDevice.html#GstDevice" since="1.4"/>
<keyword type="struct" name="struct GstDeviceClass" link="gstreamer-GstDevice.html#GstDeviceClass" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_can_monitor ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-can-monitor"/>
- <keyword type="function" name="gst_device_monitor_class_add_metadata ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-metadata"/>
- <keyword type="function" name="gst_device_monitor_class_add_static_metadata ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-static-metadata" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_class_get_metadata ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-get-metadata" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_class_set_metadata ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-metadata" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_class_set_static_metadata ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-static-metadata" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_device_add ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-add" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_device_remove ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-remove" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_get_bus ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-bus" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_get_devices ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_get_factory ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-factory" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_register ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-register" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_start ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_stop ()" link="gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop" since="1.4"/>
- <keyword type="struct" name="struct GstDeviceMonitor" link="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" since="1.4"/>
- <keyword type="struct" name="struct GstDeviceMonitorClass" link="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_find ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-find" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_get ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_get_by_name ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-by-name" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_get_device_monitor_type ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-device-monitor-type" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_get_metadata ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_get_metadata_keys ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata-keys" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_has_classes ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classes" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_has_classesv ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classesv" since="1.4"/>
- <keyword type="function" name="gst_device_monitor_factory_list_get_device_monitors ()" link="GstDeviceMonitorFactory.html#gst-device-monitor-factory-list-get-device-monitors" since="1.4"/>
- <keyword type="struct" name="GstDeviceMonitorFactory" link="GstDeviceMonitorFactory.html#GstDeviceMonitorFactory-struct"/>
- <keyword type="struct" name="GstDeviceMonitorFactoryClass" link="GstDeviceMonitorFactory.html#GstDeviceMonitorFactoryClass" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_get_bus ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-bus" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_get_caps_filter ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-caps-filter" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_get_classes_filter ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-classes-filter" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_get_devices ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-devices" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_new ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-new" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_set_caps_filter ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-caps-filter" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_set_classes_filter ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-classes-filter" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_start ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-start" since="1.4"/>
- <keyword type="function" name="gst_global_device_monitor_stop ()" link="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-stop" since="1.4"/>
- <keyword type="struct" name="struct GstGlobalDeviceMonitor" link="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" since="1.4"/>
- <keyword type="struct" name="struct GstGlobalDeviceMonitorClass" link="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitorClass" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_can_monitor ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-can-monitor"/>
+ <keyword type="function" name="gst_device_provider_class_add_metadata ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-metadata"/>
+ <keyword type="function" name="gst_device_provider_class_add_static_metadata ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-static-metadata" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_class_get_metadata ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-class-get-metadata" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_class_set_metadata ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-metadata" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_class_set_static_metadata ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-static-metadata" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_device_add ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-device-add" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_device_remove ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-device-remove" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_get_bus ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-get-bus" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_get_devices ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-get-devices" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_get_factory ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-get-factory" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_register ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-register" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_start ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-start" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_stop ()" link="gstreamer-GstDeviceProvider.html#gst-device-provider-stop" since="1.4"/>
+ <keyword type="struct" name="struct GstDeviceProvider" link="gstreamer-GstDeviceProvider.html#GstDeviceProvider" since="1.4"/>
+ <keyword type="struct" name="struct GstDeviceProviderClass" link="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_find ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-find" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_get ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-get" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_get_by_name ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-get-by-name" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_get_device_provider_type ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-get-device-provider-type" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_get_metadata ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_get_metadata_keys ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata-keys" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_has_classes ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-has-classes" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_has_classesv ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-has-classesv" since="1.4"/>
+ <keyword type="function" name="gst_device_provider_factory_list_get_device_providers ()" link="GstDeviceProviderFactory.html#gst-device-provider-factory-list-get-device-providers" since="1.4"/>
+ <keyword type="struct" name="GstDeviceProviderFactory" link="GstDeviceProviderFactory.html#GstDeviceProviderFactory-struct"/>
+ <keyword type="struct" name="GstDeviceProviderFactoryClass" link="GstDeviceProviderFactory.html#GstDeviceProviderFactoryClass" since="1.4"/>
<keyword type="macro" name="GST_STR_NULL()" link="gstreamer-GstInfo.html#GST-STR-NULL:CAPS"/>
<keyword type="macro" name="GST_DEBUG_PAD_NAME()" link="gstreamer-GstInfo.html#GST-DEBUG-PAD-NAME:CAPS"/>
<keyword type="macro" name="GST_FUNCTION" link="gstreamer-GstInfo.html#GST-FUNCTION:CAPS"/>
diff --git a/docs/gst/html/gstreamer-GstAtomicQueue.html b/docs/gst/html/gstreamer-GstAtomicQueue.html
index 5226a8f..872ce88 100644
--- a/docs/gst/html/gstreamer-GstAtomicQueue.html
+++ b/docs/gst/html/gstreamer-GstAtomicQueue.html
@@ -258,9 +258,9 @@ gst_atomic_queue_peek (<em class="parameter"><code><a class="link" href="gstream
<div class="refsect3">
<a name="id-1.3.5.8.6.6"></a><h4>Returns</h4>
<p> the head element of <em class="parameter"><code>queue</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when
-the queue is empty. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the queue is empty. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/gstreamer-GstDevice.html b/docs/gst/html/gstreamer-GstDevice.html
index a212aed..4cc7a12 100644
--- a/docs/gst/html/gstreamer-GstDevice.html
+++ b/docs/gst/html/gstreamer-GstDevice.html
@@ -6,8 +6,8 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="gstreamer-device-probing.html" title="GStreamer Device Discovery and Device Probing">
-<link rel="prev" href="gstreamer-device-probing.html" title="GStreamer Device Discovery and Device Probing">
-<link rel="next" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">
+<link rel="prev" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">
+<link rel="next" href="gstreamer-GstDeviceProvider.html" title="GstDeviceProvider">
<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -20,8 +20,8 @@
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gstreamer-device-probing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gstreamer-device-probing.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gstreamer-GstDeviceMonitor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gstreamer-GstDeviceMonitor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gstreamer-GstDeviceProvider.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gstreamer-GstDevice"></a><div class="titlepage"></div>
@@ -125,8 +125,8 @@
<p><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> are objects representing a device, they contain
relevant metadata about the device, such as its class and the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a>
representing the media types it can produce or handle.</p>
-<p><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> are created by <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> objects which can be
-aggregated by <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> objects.</p>
+<p><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> are created by <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> objects which can be
+aggregated by <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> objects.</p>
</div>
<div class="refsect1">
<a name="gstreamer-GstDevice.functions_details"></a><h2>Functions</h2>
@@ -138,7 +138,7 @@ gst_device_create_element (<em class="parameter"><code><a class="link" href="gst
<p>Creates the element with all of the required paramaters set to use
this device.</p>
<div class="refsect3">
-<a name="id-1.4.2.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.4.3.8.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -161,7 +161,7 @@ create a unique name. </p></td>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.2.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.4.3.8.2.6"></a><h4>Returns</h4>
<p> a new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> configured to use this device. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
@@ -174,7 +174,7 @@ create a unique name. </p></td>
gst_device_get_caps (<em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
<p>Getter for the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> that this device supports.</p>
<div class="refsect3">
-<a name="id-1.4.2.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.4.3.8.3.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -189,7 +189,7 @@ gst_device_get_caps (<em class="parameter"><code><a class="link" href="gstreamer
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.2.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.4.3.8.3.6"></a><h4>Returns</h4>
<p> The <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> supported by this device. Unref with
<a class="link" href="GstCaps.html#gst-caps-unref" title="gst_caps_unref ()"><code class="function">gst_caps_unref()</code></a> when done.</p>
<p></p>
@@ -203,7 +203,7 @@ gst_device_get_caps (<em class="parameter"><code><a class="link" href="gstreamer
gst_device_get_display_name (<em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
<p>Gets the user-friendly name of the device.</p>
<div class="refsect3">
-<a name="id-1.4.2.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.4.3.8.4.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -218,7 +218,7 @@ gst_device_get_display_name (<em class="parameter"><code><a class="link" href="g
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.2.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.4.3.8.4.6"></a><h4>Returns</h4>
<p> The device name. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
<p></p>
</div>
@@ -233,7 +233,7 @@ gst_device_has_classes (<em class="parameter"><code><a class="link" href="gstrea
<p>Check if <em class="parameter"><code>device</code></em>
matches all of the given classes</p>
<div class="refsect3">
-<a name="id-1.4.2.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.4.3.8.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -256,7 +256,7 @@ all classes are matched</p></td>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.2.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.4.3.8.5.6"></a><h4>Returns</h4>
<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>device</code></em>
matches.</p>
<p></p>
@@ -272,7 +272,7 @@ gst_device_has_classesv (<em class="parameter"><code><a class="link" href="gstre
<p>Check if <em class="parameter"><code>factory</code></em>
matches all of the given classes</p>
<div class="refsect3">
-<a name="id-1.4.2.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.4.3.8.6.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -295,7 +295,7 @@ classes are matched. </p></td>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.2.8.6.6"></a><h4>Returns</h4>
+<a name="id-1.4.3.8.6.6"></a><h4>Returns</h4>
<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>device</code></em>
matches.</p>
<p></p>
@@ -314,7 +314,7 @@ using <a class="link" href="gstreamer-GstDevice.html#gst-device-create-element"
<p>Note: This should only be implemented for elements can change their
device in the PLAYING state.</p>
<div class="refsect3">
-<a name="id-1.4.2.8.7.6"></a><h4>Parameters</h4>
+<a name="id-1.4.3.8.7.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -336,7 +336,7 @@ device in the PLAYING state.</p>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.2.8.7.7"></a><h4>Returns</h4>
+<a name="id-1.4.3.8.7.7"></a><h4>Returns</h4>
<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the element could be reconfigured to use this device,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
<p></p>
@@ -354,7 +354,7 @@ device in the PLAYING state.</p>
</pre>
<p>A device object.</p>
<div class="refsect3">
-<a name="id-1.4.2.9.2.5"></a><h4>Members</h4>
+<a name="id-1.4.3.9.2.5"></a><h4>Members</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
@@ -382,7 +382,7 @@ device in the PLAYING state.</p>
</pre>
<p>The class structure for a <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> object.</p>
<div class="refsect3">
-<a name="id-1.4.2.9.3.5"></a><h4>Members</h4>
+<a name="id-1.4.3.9.3.5"></a><h4>Members</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
@@ -416,7 +416,7 @@ for <a class="link" href="gstreamer-GstDevice.html#gst-device-reconfigure-elemen
</div>
<div class="refsect1">
<a name="gstreamer-GstDevice.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p>
+<p><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p>
</div>
</div>
<div class="footer">
diff --git a/docs/gst/html/gstreamer-GstDeviceMonitor.html b/docs/gst/html/gstreamer-GstDeviceMonitor.html
index eff937b..cdb9369 100644
--- a/docs/gst/html/gstreamer-GstDeviceMonitor.html
+++ b/docs/gst/html/gstreamer-GstDeviceMonitor.html
@@ -6,8 +6,8 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="gstreamer-device-probing.html" title="GStreamer Device Discovery and Device Probing">
-<link rel="prev" href="gstreamer-GstDevice.html" title="GstDevice">
-<link rel="next" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">
+<link rel="prev" href="gstreamer-device-probing.html" title="GStreamer Device Discovery and Device Probing">
+<link rel="next" href="gstreamer-GstDevice.html" title="GstDevice">
<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -20,8 +20,8 @@
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gstreamer-device-probing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gstreamer-GstDevice.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="GstDeviceMonitorFactory.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gstreamer-device-probing.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gstreamer-GstDevice.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gstreamer-GstDeviceMonitor"></a><div class="titlepage"></div>
@@ -42,65 +42,10 @@
<tbody>
<tr>
<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-can-monitor" title="gst_device_monitor_can_monitor ()">gst_device_monitor_can_monitor</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-metadata" title="gst_device_monitor_class_add_metadata ()">gst_device_monitor_class_add_metadata</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-static-metadata" title="gst_device_monitor_class_add_static_metadata ()">gst_device_monitor_class_add_static_metadata</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-get-metadata" title="gst_device_monitor_class_get_metadata ()">gst_device_monitor_class_get_metadata</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-metadata" title="gst_device_monitor_class_set_metadata ()">gst_device_monitor_class_set_metadata</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-static-metadata" title="gst_device_monitor_class_set_static_metadata ()">gst_device_monitor_class_set_static_metadata</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-add" title="gst_device_monitor_device_add ()">gst_device_monitor_device_add</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="returnvalue">GstDeviceMonitor</span></a> *
</td>
<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-remove" title="gst_device_monitor_device_remove ()">gst_device_monitor_device_remove</a> <span class="c_punctuation">()</span>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-new" title="gst_device_monitor_new ()">gst_device_monitor_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -113,18 +58,18 @@
</tr>
<tr>
<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
</td>
<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices" title="gst_device_monitor_get_devices ()">gst_device_monitor_get_devices</a> <span class="c_punctuation">()</span>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-add-filter" title="gst_device_monitor_add_filter ()">gst_device_monitor_add_filter</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
-<a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="returnvalue">GstDeviceMonitorFactory</span></a> *
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-factory" title="gst_device_monitor_get_factory ()">gst_device_monitor_get_factory</a> <span class="c_punctuation">()</span>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-remove-filter" title="gst_device_monitor_remove_filter ()">gst_device_monitor_remove_filter</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
@@ -132,23 +77,23 @@
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-register" title="gst_device_monitor_register ()">gst_device_monitor_register</a> <span class="c_punctuation">()</span>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" title="gst_device_monitor_start ()">gst_device_monitor_start</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+<span class="returnvalue">void</span>
</td>
<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" title="gst_device_monitor_start ()">gst_device_monitor_start</a> <span class="c_punctuation">()</span>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop" title="gst_device_monitor_stop ()">gst_device_monitor_stop</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
-<span class="returnvalue">void</span>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
</td>
<td class="function_name">
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop" title="gst_device_monitor_stop ()">gst_device_monitor_stop</a> <span class="c_punctuation">()</span>
+<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices" title="gst_device_monitor_get_devices ()">gst_device_monitor_get_devices</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
@@ -185,139 +130,172 @@
</div>
<div class="refsect1">
<a name="gstreamer-GstDeviceMonitor.description"></a><h2>Description</h2>
-<p>A <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> subclass is provided by a plugin that handles devices
-if there is a way to programatically list connected devices. It can also
-optionally provide updates to the list of connected devices.</p>
-<p>Each <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> subclass is a singleton, a plugin should
-normally provide a single subclass for all devices.</p>
-<p>Applications would normally use a <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> to monitor devices
-from all revelant monitors.</p>
+<p>Applications should create a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> when they want
+to probe, list and monitor devices of a specific type. The
+<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> will create the appropriate
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> objects and manage them. It will then post
+messages on its <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> for devices that have been added and
+removed.</p>
+<p>The device monitor will monitor all devices matching the filters that
+the application has set.</p>
+<p>The basic use pattern of a device monitor is as follows:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static</span> gboolean
+<span class="function">my_bus_func</span> <span class="gtkdoc opt">(</span>GstBus <span class="gtkdoc opt">*</span> bus<span class="gtkdoc opt">,</span> GstMessage <span class="gtkdoc opt">*</span> message<span class="gtkdoc opt">,</span> gpointer user_data<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ GstDevice <span class="gtkdoc opt">*</span>device<span class="gtkdoc opt">;</span>
+ gchar name<span class="gtkdoc opt">;</span>
+
+ <span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)) {</span>
+ <span class="keyword">case</span> GST_MESSAGE_DEVICE_ADDED<span class="gtkdoc opt">:</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-parse-device-added">gst_message_parse_device_added</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">, &amp;</span>device<span class="gtkdoc opt">);</span>
+ name <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstDevice.html#gst-device-get-display-name">gst_device_get_display_name</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;Device added: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> name<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span> <span class="gtkdoc opt">(</span>name<span class="gtkdoc opt">);</span>
+ <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+ <span class="keyword">case</span> GST_MESSAGE_DEVICE_REMOVED<span class="gtkdoc opt">:</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-parse-device-removed">gst_message_parse_device_removed</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">, &amp;</span>device<span class="gtkdoc opt">);</span>
+ name <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstDevice.html#gst-device-get-display-name">gst_device_get_display_name</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;Device removed: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> name<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span> <span class="gtkdoc opt">(</span>name<span class="gtkdoc opt">);</span>
+ <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+ <span class="keyword">default</span><span class="gtkdoc opt">:</span>
+ <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+ <span class="gtkdoc opt">}</span>
+
+ <span class="keyword">return</span> G_SOURCE_CONTINUE<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span>
+
+GstDeviceMonitor <span class="gtkdoc opt">*</span>
+<span class="function">setup_raw_video_source_device_monitor</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">) {</span>
+ GstDeviceMonitor <span class="gtkdoc opt">*</span>monitor<span class="gtkdoc opt">;</span>
+ GstBus <span class="gtkdoc opt">*</span>bus<span class="gtkdoc opt">;</span>
+ GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">;</span>
+
+ monitor <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstDeviceMonitor.html#gst-device-monitor-new">gst_device_monitor_new</a></span> <span class="gtkdoc opt">();</span>
+
+ bus <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-bus">gst_device_monitor_get_bus</a></span> <span class="gtkdoc opt">(</span>monitor<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html#gst-bus-add-watch">gst_bus_add_watch</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">,</span> my_bus_func<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">);</span>
+
+ caps <span class="gtkdoc opt">=</span> <span class="function">gst_caps_new_simple_empty</span> <span class="gtkdoc opt">(</span><span class="string">&quot;video/x-raw&quot;</span><span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstDeviceMonitor.html#gst-device-monitor-add-filter">gst_device_monitor_add_filter</a></span> <span class="gtkdoc opt">(</span>monitor<span class="gtkdoc opt">,</span> <span class="string">&quot;Video/Source&quot;</span><span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
+
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstDeviceMonitor.html#gst-device-monitor-start">gst_device_monitor_start</a></span> <span class="gtkdoc opt">(</span>monitor<span class="gtkdoc opt">);</span>
+
+ <span class="keyword">return</span> monitor<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p></p>
</div>
<div class="refsect1">
<a name="gstreamer-GstDeviceMonitor.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="gst-device-monitor-can-monitor"></a><h3>gst_device_monitor_can_monitor ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_device_monitor_can_monitor (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>If this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the device monitor can monitor if
-devices are added or removed. Otherwise, it can only do static probing.</p>
-<div class="refsect3">
-<a name="id-1.4.3.8.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
+<a name="gst-device-monitor-new"></a><h3>gst_device_monitor_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="returnvalue">GstDeviceMonitor</span></a> *
+gst_device_monitor_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Create a new <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p>
<div class="refsect3">
-<a name="id-1.4.3.8.2.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> support monitoring, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
-<p></p>
+<a name="id-1.4.2.8.2.5"></a><h4>Returns</h4>
+<p> a new device monitor. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
+<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-class-add-metadata"></a><h3>gst_device_monitor_class_add_metadata ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_device_monitor_class_add_metadata (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a> *klass</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Set <em class="parameter"><code>key</code></em>
- with <em class="parameter"><code>value</code></em>
- as metadata in <em class="parameter"><code>klass</code></em>
-.</p>
+<a name="gst-device-monitor-get-bus"></a><h3>gst_device_monitor_get_bus ()</h3>
+<pre class="programlisting"><a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
+gst_device_monitor_get_bus (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
+<p>Gets the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> of this <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p>
<div class="refsect3">
-<a name="id-1.4.3.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.4.2.8.3.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>klass</p></td>
-<td class="parameter_description"><p>class to set metadata for</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>the key to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>the value to set</p></td>
+<tbody><tr>
+<td class="parameter_name"><p>monitor</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
+</tr></tbody>
</table></div>
</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-device-monitor-class-add-static-metadata"></a><h3>gst_device_monitor_class_add_static_metadata ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_device_monitor_class_add_static_metadata
- (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a> *klass</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Set <em class="parameter"><code>key</code></em>
- with <em class="parameter"><code>value</code></em>
- as metadata in <em class="parameter"><code>klass</code></em>
-.</p>
-<p>Same as <a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-metadata" title="gst_device_monitor_class_add_metadata ()"><code class="function">gst_device_monitor_class_add_metadata()</code></a>, but <em class="parameter"><code>value</code></em>
- must be a static string
-or an inlined string, as it will not be copied. (GStreamer plugins will
-be made resident once loaded, so this function can be used even from
-dynamically loaded plugins.)</p>
<div class="refsect3">
-<a name="id-1.4.3.8.4.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>klass</p></td>
-<td class="parameter_description"><p>class to set metadata for</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>the key to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>the value to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
+<a name="id-1.4.2.8.3.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-class-get-metadata"></a><h3>gst_device_monitor_class_get_metadata ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-gst_device_monitor_class_get_metadata (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a> *klass</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>Get metadata with <em class="parameter"><code>key</code></em>
- in <em class="parameter"><code>klass</code></em>
-.</p>
+<a name="gst-device-monitor-add-filter"></a><h3>gst_device_monitor_add_filter ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gst_device_monitor_add_filter (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classes</code></em>,
+ <em class="parameter"><code><a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>Adds a filter for which <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> will be monitored, any device that matches
+all classes and the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> will be returned.</p>
+<p>Filters must be added before the <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> is started.</p>
<div class="refsect3">
-<a name="id-1.4.3.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.4.2.8.4.6"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -326,39 +304,41 @@ gst_device_monitor_class_get_metadata (<em class="parameter"><code><a class="lin
</colgroup>
<tbody>
<tr>
-<td class="parameter_name"><p>klass</p></td>
-<td class="parameter_description"><p>class to get metadata for</p></td>
+<td class="parameter_name"><p>monitor</p></td>
+<td class="parameter_description"><p>a device monitor</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>the key to get</p></td>
+<td class="parameter_name"><p>classes</p></td>
+<td class="parameter_description"><p>device classes to use as filter or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for any class</p></td>
<td class="parameter_annotations"> </td>
</tr>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p> the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> to filter or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for ANY. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.3.8.5.6"></a><h4>Returns</h4>
-<p> the metadata for <em class="parameter"><code>key</code></em>
-.</p>
+<a name="id-1.4.2.8.4.7"></a><h4>Returns</h4>
+<p> The id of the new filter or <code class="literal">0</code> if no provider matched the filter's
+classes.</p>
<p></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-class-set-metadata"></a><h3>gst_device_monitor_class_set_metadata ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_device_monitor_class_set_metadata (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a> *klass</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
-<p>Sets the detailed information for a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a>.</p>
-<div class="note">This function is for use in _class_init functions only.</div>
+<a name="gst-device-monitor-remove-filter"></a><h3>gst_device_monitor_remove_filter ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_device_monitor_remove_filter (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> filter_id</code></em>);</pre>
+<p>Removes a filter from the <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> using the id that was returned
+by <a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-add-filter" title="gst_device_monitor_add_filter ()"><code class="function">gst_device_monitor_add_filter()</code></a>.</p>
<div class="refsect3">
-<a name="id-1.4.3.8.6.6"></a><h4>Parameters</h4>
+<a name="id-1.4.2.8.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -367,176 +347,63 @@ gst_device_monitor_class_set_metadata (<em class="parameter"><code><a class="lin
</colgroup>
<tbody>
<tr>
-<td class="parameter_name"><p>klass</p></td>
-<td class="parameter_description"><p>class to set metadata for</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>longname</p></td>
-<td class="parameter_description"><p>The long English name of the device monitor. E.g. "File Sink"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>classification</p></td>
-<td class="parameter_description"><p>String describing the type of device monitor, as an unordered list
-separated with slashes ('/'). See draft-klass.txt of the design docs
-for more details and common types. E.g: "Sink/File"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>description</p></td>
-<td class="parameter_description"><p>Sentence describing the purpose of the device monitor.
-E.g: "Write stream to a file"</p></td>
+<td class="parameter_name"><p>monitor</p></td>
+<td class="parameter_description"><p>a device monitor</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td class="parameter_name"><p>author</p></td>
-<td class="parameter_description"><p>Name and contact details of the author(s). Use \n to separate
-multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</p></td>
+<td class="parameter_name"><p>filter_id</p></td>
+<td class="parameter_description"><p>the id of the filter</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-device-monitor-class-set-static-metadata"></a><h3>gst_device_monitor_class_set_static_metadata ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_device_monitor_class_set_static_metadata
- (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a> *klass</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
-<p>Sets the detailed information for a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a>.</p>
-<div class="note">This function is for use in _class_init functions only.</div>
-<p>Same as <a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-metadata" title="gst_device_monitor_class_set_metadata ()"><code class="function">gst_device_monitor_class_set_metadata()</code></a>, but <em class="parameter"><code>longname</code></em>
-, <em class="parameter"><code>classification</code></em>
-,
-<em class="parameter"><code>description</code></em>
-, and <em class="parameter"><code>author</code></em>
- must be static strings or inlined strings, as
-they will not be copied. (GStreamer plugins will be made resident once
-loaded, so this function can be used even from dynamically loaded plugins.)</p>
<div class="refsect3">
-<a name="id-1.4.3.8.7.7"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>klass</p></td>
-<td class="parameter_description"><p>class to set metadata for</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>longname</p></td>
-<td class="parameter_description"><p>The long English name of the element. E.g. "File Sink"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>classification</p></td>
-<td class="parameter_description"><p>String describing the type of element, as an unordered list
-separated with slashes ('/'). See draft-klass.txt of the design docs
-for more details and common types. E.g: "Sink/File"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>description</p></td>
-<td class="parameter_description"><p>Sentence describing the purpose of the element.
-E.g: "Write stream to a file"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>author</p></td>
-<td class="parameter_description"><p>Name and contact details of the author(s). Use \n to separate
-multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
+<a name="id-1.4.2.8.5.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> of the filter id was valid, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
+<p></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-device-add"></a><h3>gst_device_monitor_device_add ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_device_monitor_device_add (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
-<p>Posts a message on the monitor's <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to inform applications that
-a new device has been added.</p>
-<p>This is for use by subclasses.</p>
+<a name="gst-device-monitor-start"></a><h3>gst_device_monitor_start ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_device_monitor_start (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
+<p>Starts monitoring the devices, one this has succeeded, the
+<a class="link" href="GstMessage.html#GST-MESSAGE-DEVICE-ADDED:CAPS"><code class="literal">GST_MESSAGE_DEVICE_ADDED</code></a> and <a class="link" href="GstMessage.html#GST-MESSAGE-DEVICE-REMOVED:CAPS"><code class="literal">GST_MESSAGE_DEVICE_REMOVED</code></a> messages
+will be emitted on the bus when the list of devices changes.</p>
<div class="refsect3">
-<a name="id-1.4.3.8.8.6"></a><h4>Parameters</h4>
+<a name="id-1.4.2.8.6.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
-<tbody>
-<tr>
+<tbody><tr>
<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
+<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>device</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> that has been added. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
+</tr></tbody>
</table></div>
</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-device-monitor-device-remove"></a><h3>gst_device_monitor_device_remove ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_device_monitor_device_remove (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
-<p>Posts a message on the monitor's <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to inform applications that
-a device has been removed.</p>
-<p>This is for use by subclasses.</p>
<div class="refsect3">
-<a name="id-1.4.3.8.9.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>device</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> that has been removed</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
+<a name="id-1.4.2.8.6.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device monitoring could be started</p>
+<p></p>
</div>
<p class="since">Since 1.4</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-device-monitor-get-bus"></a><h3>gst_device_monitor_get_bus ()</h3>
-<pre class="programlisting"><a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
-gst_device_monitor_get_bus (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Gets the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> of this <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p>
+<a name="gst-device-monitor-stop"></a><h3>gst_device_monitor_stop ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_monitor_stop (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
+<p>Stops monitoring the devices.</p>
<div class="refsect3">
-<a name="id-1.4.3.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.4.2.8.7.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -545,16 +412,11 @@ gst_device_monitor_get_bus (<em class="parameter"><code><a class="link" href="gs
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
+<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
-<div class="refsect3">
-<a name="id-1.4.3.8.10.6"></a><h4>Returns</h4>
-<p> a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
<p class="since">Since 1.4</p>
</div>
<hr>
@@ -562,10 +424,10 @@ gst_device_monitor_get_bus (<em class="parameter"><code><a class="link" href="gs
<a name="gst-device-monitor-get-devices"></a><h3>gst_device_monitor_get_devices ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
gst_device_monitor_get_devices (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Gets a list of devices that this monitor understands. This may actually
+<p>Gets a list of devices from all of the relevant monitors. This may actually
probe the hardware if the monitor is not currently started.</p>
<div class="refsect3">
-<a name="id-1.4.3.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.4.2.8.8.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
@@ -574,192 +436,42 @@ probe the hardware if the monitor is not currently started.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
+<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
-<a name="id-1.4.3.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.4.2.8.8.6"></a><h4>Returns</h4>
<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
<a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstDevice]</span></p>
</div>
<p class="since">Since 1.4</p>
</div>
-<hr>
-<div class="refsect2">
-<a name="gst-device-monitor-get-factory"></a><h3>gst_device_monitor_get_factory ()</h3>
-<pre class="programlisting"><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="returnvalue">GstDeviceMonitorFactory</span></a> *
-gst_device_monitor_get_factory (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Retrieves the factory that was used to create this device monitor.</p>
-<div class="refsect3">
-<a name="id-1.4.3.8.12.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> to request the device monitor factory of.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.3.8.12.6"></a><h4>Returns</h4>
-<p> the <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> used for creating this
-device monitor. no refcounting is needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-device-monitor-register"></a><h3>gst_device_monitor_register ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_device_monitor_register (<em class="parameter"><code><a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> *plugin</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
-<p>Create a new device monitorfactory capable of instantiating objects of the
-<em class="parameter"><code>type</code></em>
- and add the factory to <em class="parameter"><code>plugin</code></em>
-.</p>
-<div class="refsect3">
-<a name="id-1.4.3.8.13.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>plugin</p></td>
-<td class="parameter_description"><p> <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> to register the device monitor with, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for
-a static device monitor. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>name of device monitors of this type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rank</p></td>
-<td class="parameter_description"><p>rank of device monitor (higher rank means more importance when autoplugging)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>GType of device monitor to register</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.3.8.13.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if the registering succeeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on error</p>
-<p></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-device-monitor-start"></a><h3>gst_device_monitor_start ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_device_monitor_start (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Starts monitoring the devices. This will cause <span class="type">GST_MESSAGE_DEVICE</span> messages
-to be posted on the monitor's bus when devices are added or removed from
-the system.</p>
-<p>Since the <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> is a singleton,
-<a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" title="gst_device_monitor_start ()"><code class="function">gst_device_monitor_start()</code></a> may already have been called by another
-user of the object, <a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop" title="gst_device_monitor_stop ()"><code class="function">gst_device_monitor_stop()</code></a> needs to be called the same
-number of times.</p>
-<div class="refsect3">
-<a name="id-1.4.3.8.14.6"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.3.8.14.7"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device monitoring could be started</p>
-<p></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-device-monitor-stop"></a><h3>gst_device_monitor_stop ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_device_monitor_stop (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Decreases the use-count by one. If the use count reaches zero, this
-<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> will stop monitoring the devices. This needs to be
-called the same number of times that <a class="link" href="gstreamer-GstDeviceMonitor.html#gst-device-monitor-start" title="gst_device_monitor_start ()"><code class="function">gst_device_monitor_start()</code></a> was called.</p>
-<div class="refsect3">
-<a name="id-1.4.3.8.15.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since 1.4</p>
-</div>
</div>
<div class="refsect1">
<a name="gstreamer-GstDeviceMonitor.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstDeviceMonitor"></a><h3>struct GstDeviceMonitor</h3>
<pre class="programlisting">struct GstDeviceMonitor {
- GstObject parent;
-
- /* Protected by the Object lock */
- GList *devices;
+ GstObject parent;
};
</pre>
-<p>The structure of the base <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p>
+<p>Opaque device monitor object structure.</p>
<div class="refsect3">
-<a name="id-1.4.3.9.2.5"></a><h4>Members</h4>
+<a name="id-1.4.2.9.2.5"></a><h4>Members</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
-<tbody>
-<tr>
+<tbody><tr>
<td class="struct_member_name"><p><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> <em class="structfield"><code><a name="GstDeviceMonitor.parent"></a>parent</code></em>;</p></td>
-<td class="struct_member_description"><p>The parent <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a></p></td>
+<td class="struct_member_description"><p>the parent <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> structure</p></td>
<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstDeviceMonitor.devices"></a>devices</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of the <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> objects</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
+</tr></tbody>
</table></div>
</div>
<p class="since">Since 1.4</p>
@@ -768,56 +480,23 @@ called the same number of times that <a class="link" href="gstreamer-GstDeviceMo
<div class="refsect2">
<a name="GstDeviceMonitorClass"></a><h3>struct GstDeviceMonitorClass</h3>
<pre class="programlisting">struct GstDeviceMonitorClass {
- GstObjectClass parent_class;
-
- GstDeviceMonitorFactory *factory;
-
- GList* (*probe) (GstDeviceMonitor * monitor);
-
- gboolean (*start) (GstDeviceMonitor * monitor);
- void (*stop) (GstDeviceMonitor * monitor);
+ GstObjectClass parent_class;
};
</pre>
-<p>The structure of the base <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass" title="struct GstDeviceMonitorClass"><span class="type">GstDeviceMonitorClass</span></a></p>
+<p>Opaque device monitor class structure.</p>
<div class="refsect3">
-<a name="id-1.4.3.9.3.5"></a><h4>Members</h4>
+<a name="id-1.4.2.9.3.5"></a><h4>Members</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
-<tbody>
-<tr>
+<tbody><tr>
<td class="struct_member_name"><p><a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstDeviceMonitorClass.parent-class"></a>parent_class</code></em>;</p></td>
<td class="struct_member_description"><p>the parent <a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> structure</p></td>
<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> *<em class="structfield"><code><a name="GstDeviceMonitorClass.factory"></a>factory</code></em>;</p></td>
-<td class="struct_member_description"><p>a pointer to the <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory"><span class="type">GstDeviceMonitorFactory</span></a> that creates this
-monitor</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstDeviceMonitorClass.probe"></a>probe</code></em> ()</p></td>
-<td class="struct_member_description"><p>Returns a list of devices that are currently available.
-This should never block.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstDeviceMonitorClass.start"></a>start</code></em> ()</p></td>
-<td class="struct_member_description"><p>Starts monitoring for new devices. Only subclasses that can know
-that devices have been added or remove need to implement this method.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstDeviceMonitorClass.stop"></a>stop</code></em> ()</p></td>
-<td class="struct_member_description"><p>Stops monitoring for new devices. Only subclasses that implement
-the <code class="function">start()</code> method need to implement this method.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
+</tr></tbody>
</table></div>
</div>
<p class="since">Since 1.4</p>
@@ -825,7 +504,7 @@ the <code class="function">start()</code> method need to implement this method.<
</div>
<div class="refsect1">
<a name="gstreamer-GstDeviceMonitor.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a>, <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a></p>
+<p><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a>, <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p>
</div>
</div>
<div class="footer">
diff --git a/docs/gst/html/gstreamer-GstDeviceProvider.html b/docs/gst/html/gstreamer-GstDeviceProvider.html
new file mode 100644
index 0000000..ec8033c
--- /dev/null
+++ b/docs/gst/html/gstreamer-GstDeviceProvider.html
@@ -0,0 +1,817 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GStreamer 1.0 Core Reference Manual: GstDeviceProvider</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="gstreamer-device-probing.html" title="GStreamer Device Discovery and Device Probing">
+<link rel="prev" href="gstreamer-GstDevice.html" title="GstDevice">
+<link rel="next" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+ <a href="#gstreamer-GstDeviceProvider.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+ <a href="#gstreamer-GstDeviceProvider.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="gstreamer-device-probing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gstreamer-GstDevice.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GstDeviceProviderFactory.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gstreamer-GstDeviceProvider"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-GstDeviceProvider.top_of_page"></a>GstDeviceProvider</span></h2>
+<p>GstDeviceProvider — A device provider</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-can-monitor" title="gst_device_provider_can_monitor ()">gst_device_provider_can_monitor</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-metadata" title="gst_device_provider_class_add_metadata ()">gst_device_provider_class_add_metadata</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-static-metadata" title="gst_device_provider_class_add_static_metadata ()">gst_device_provider_class_add_static_metadata</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-get-metadata" title="gst_device_provider_class_get_metadata ()">gst_device_provider_class_get_metadata</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-metadata" title="gst_device_provider_class_set_metadata ()">gst_device_provider_class_set_metadata</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-static-metadata" title="gst_device_provider_class_set_static_metadata ()">gst_device_provider_class_set_static_metadata</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-device-add" title="gst_device_provider_device_add ()">gst_device_provider_device_add</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-device-remove" title="gst_device_provider_device_remove ()">gst_device_provider_device_remove</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-get-bus" title="gst_device_provider_get_bus ()">gst_device_provider_get_bus</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-get-devices" title="gst_device_provider_get_devices ()">gst_device_provider_get_devices</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="returnvalue">GstDeviceProviderFactory</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-get-factory" title="gst_device_provider_get_factory ()">gst_device_provider_get_factory</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-register" title="gst_device_provider_register ()">gst_device_provider_register</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-start" title="gst_device_provider_start ()">gst_device_provider_start</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-stop" title="gst_device_provider_stop ()">gst_device_provider_stop</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider">GstDeviceProvider</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass">GstDeviceProviderClass</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/gst.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.description"></a><h2>Description</h2>
+<p>A <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> subclass is provided by a plugin that handles devices
+if there is a way to programatically list connected devices. It can also
+optionally provide updates to the list of connected devices.</p>
+<p>Each <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> subclass is a singleton, a plugin should
+normally provide a single subclass for all devices.</p>
+<p>Applications would normally use a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> to monitor devices
+from all relevant providers.</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-device-provider-can-monitor"></a><h3>gst_device_provider_can_monitor ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_device_provider_can_monitor (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-class-add-metadata"></a><h3>gst_device_provider_class_add_metadata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_provider_class_add_metadata
+ (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a> *klass</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>Set <em class="parameter"><code>key</code></em>
+ with <em class="parameter"><code>value</code></em>
+ as metadata in <em class="parameter"><code>klass</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>klass</p></td>
+<td class="parameter_description"><p>class to set metadata for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-class-add-static-metadata"></a><h3>gst_device_provider_class_add_static_metadata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_provider_class_add_static_metadata
+ (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a> *klass</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>Set <em class="parameter"><code>key</code></em>
+ with <em class="parameter"><code>value</code></em>
+ as metadata in <em class="parameter"><code>klass</code></em>
+.</p>
+<p>Same as <a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-metadata" title="gst_device_provider_class_add_metadata ()"><code class="function">gst_device_provider_class_add_metadata()</code></a>, but <em class="parameter"><code>value</code></em>
+ must be a static string
+or an inlined string, as it will not be copied. (GStreamer plugins will
+be made resident once loaded, so this function can be used even from
+dynamically loaded plugins.)</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>klass</p></td>
+<td class="parameter_description"><p>class to set metadata for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-class-get-metadata"></a><h3>gst_device_provider_class_get_metadata ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_device_provider_class_get_metadata
+ (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a> *klass</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>Get metadata with <em class="parameter"><code>key</code></em>
+ in <em class="parameter"><code>klass</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>klass</p></td>
+<td class="parameter_description"><p>class to get metadata for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key to get</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.8.5.6"></a><h4>Returns</h4>
+<p> the metadata for <em class="parameter"><code>key</code></em>
+.</p>
+<p></p>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-class-set-metadata"></a><h3>gst_device_provider_class_set_metadata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_provider_class_set_metadata
+ (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a> *klass</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
+<p>Sets the detailed information for a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a>.</p>
+<div class="note">This function is for use in _class_init functions only.</div>
+<div class="refsect3">
+<a name="id-1.4.4.8.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>klass</p></td>
+<td class="parameter_description"><p>class to set metadata for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>longname</p></td>
+<td class="parameter_description"><p>The long English name of the device provider. E.g. "File Sink"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>classification</p></td>
+<td class="parameter_description"><p>String describing the type of device provider, as an
+unordered list separated with slashes ('/'). See draft-klass.txt of the
+design docs
+for more details and common types. E.g: "Sink/File"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>description</p></td>
+<td class="parameter_description"><p>Sentence describing the purpose of the device provider.
+E.g: "Write stream to a file"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>author</p></td>
+<td class="parameter_description"><p>Name and contact details of the author(s). Use \n to separate
+multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-class-set-static-metadata"></a><h3>gst_device_provider_class_set_static_metadata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_provider_class_set_static_metadata
+ (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a> *klass</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
+<p>Sets the detailed information for a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a>.</p>
+<div class="note">This function is for use in _class_init functions only.</div>
+<p>Same as <a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-metadata" title="gst_device_provider_class_set_metadata ()"><code class="function">gst_device_provider_class_set_metadata()</code></a>, but <em class="parameter"><code>longname</code></em>
+, <em class="parameter"><code>classification</code></em>
+,
+<em class="parameter"><code>description</code></em>
+, and <em class="parameter"><code>author</code></em>
+ must be static strings or inlined strings, as
+they will not be copied. (GStreamer plugins will be made resident once
+loaded, so this function can be used even from dynamically loaded plugins.)</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.7.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>klass</p></td>
+<td class="parameter_description"><p>class to set metadata for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>longname</p></td>
+<td class="parameter_description"><p>The long English name of the element. E.g. "File Sink"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>classification</p></td>
+<td class="parameter_description"><p>String describing the type of element, as an unordered list
+separated with slashes ('/'). See draft-klass.txt of the design docs
+for more details and common types. E.g: "Sink/File"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>description</p></td>
+<td class="parameter_description"><p>Sentence describing the purpose of the element.
+E.g: "Write stream to a file"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>author</p></td>
+<td class="parameter_description"><p>Name and contact details of the author(s). Use \n to separate
+multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-device-add"></a><h3>gst_device_provider_device_add ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_provider_device_add (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>,
+ <em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
+<p>Posts a message on the provider's <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to inform applications that
+a new device has been added.</p>
+<p>This is for use by subclasses.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.8.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>provider</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p> a <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> that has been added. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-device-remove"></a><h3>gst_device_provider_device_remove ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_provider_device_remove (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>,
+ <em class="parameter"><code><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> *device</code></em>);</pre>
+<p>Posts a message on the provider's <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to inform applications that
+a device has been removed.</p>
+<p>This is for use by subclasses.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.9.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>provider</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> that has been removed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-get-bus"></a><h3>gst_device_provider_get_bus ()</h3>
+<pre class="programlisting"><a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
+gst_device_provider_get_bus (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>);</pre>
+<p>Gets the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> of this <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>provider</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.8.10.6"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-get-devices"></a><h3>gst_device_provider_get_devices ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gst_device_provider_get_devices (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>);</pre>
+<p>Gets a list of devices that this provider understands. This may actually
+probe the hardware if the provider is not currently started.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>provider</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.8.11.6"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstDevice]</span></p>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-get-factory"></a><h3>gst_device_provider_get_factory ()</h3>
+<pre class="programlisting"><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="returnvalue">GstDeviceProviderFactory</span></a> *
+gst_device_provider_get_factory (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>);</pre>
+<p>Retrieves the factory that was used to create this device provider.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>provider</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> to request the device provider factory of.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.8.12.6"></a><h4>Returns</h4>
+<p> the <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> used for
+creating this device provider. no refcounting is needed. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-register"></a><h3>gst_device_provider_register ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_device_provider_register (<em class="parameter"><code><a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> *plugin</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
+<p>Create a new device providerfactory capable of instantiating objects of the
+<em class="parameter"><code>type</code></em>
+ and add the factory to <em class="parameter"><code>plugin</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p> <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> to register the device provider with, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for
+a static device provider. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>name of device providers of this type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rank</p></td>
+<td class="parameter_description"><p>rank of device provider (higher rank means more importance when autoplugging)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>GType of device provider to register</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.8.13.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if the registering succeeded, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on error</p>
+<p></p>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-start"></a><h3>gst_device_provider_start ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_device_provider_start (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>);</pre>
+<p>Starts providering the devices. This will cause <span class="type">GST_MESSAGE_DEVICE</span> messages
+to be posted on the provider's bus when devices are added or removed from
+the system.</p>
+<p>Since the <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> is a singleton,
+<a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-start" title="gst_device_provider_start ()"><code class="function">gst_device_provider_start()</code></a> may already have been called by another
+user of the object, <a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-stop" title="gst_device_provider_stop ()"><code class="function">gst_device_provider_stop()</code></a> needs to be called the same
+number of times.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.14.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>provider</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.4.4.8.14.7"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device providering could be started</p>
+<p></p>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-device-provider-stop"></a><h3>gst_device_provider_stop ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_device_provider_stop (<em class="parameter"><code><a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> *provider</code></em>);</pre>
+<p>Decreases the use-count by one. If the use count reaches zero, this
+<a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a> will stop providering the devices. This needs to be
+called the same number of times that <a class="link" href="gstreamer-GstDeviceProvider.html#gst-device-provider-start" title="gst_device_provider_start ()"><code class="function">gst_device_provider_start()</code></a> was called.</p>
+<div class="refsect3">
+<a name="id-1.4.4.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>provider</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstDeviceProvider"></a><h3>struct GstDeviceProvider</h3>
+<pre class="programlisting">struct GstDeviceProvider {
+ GstObject parent;
+
+ /* Protected by the Object lock */
+ GList *devices;
+};
+</pre>
+<p>The structure of the base <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProvider" title="struct GstDeviceProvider"><span class="type">GstDeviceProvider</span></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.9.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> <em class="structfield"><code><a name="GstDeviceProvider.parent"></a>parent</code></em>;</p></td>
+<td class="struct_member_description"><p>The parent <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstDeviceProvider.devices"></a>devices</code></em>;</p></td>
+<td class="struct_member_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of the <a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a> objects</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDeviceProviderClass"></a><h3>struct GstDeviceProviderClass</h3>
+<pre class="programlisting">struct GstDeviceProviderClass {
+ GstObjectClass parent_class;
+
+ GstDeviceProviderFactory *factory;
+
+ GList* (*probe) (GstDeviceProvider * provider);
+
+ gboolean (*start) (GstDeviceProvider * provider);
+ void (*stop) (GstDeviceProvider * provider);
+};
+</pre>
+<p>The structure of the base <a class="link" href="gstreamer-GstDeviceProvider.html#GstDeviceProviderClass" title="struct GstDeviceProviderClass"><span class="type">GstDeviceProviderClass</span></a></p>
+<div class="refsect3">
+<a name="id-1.4.4.9.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstDeviceProviderClass.parent-class"></a>parent_class</code></em>;</p></td>
+<td class="struct_member_description"><p>the parent <a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> structure</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> *<em class="structfield"><code><a name="GstDeviceProviderClass.factory"></a>factory</code></em>;</p></td>
+<td class="struct_member_description"><p>a pointer to the <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory"><span class="type">GstDeviceProviderFactory</span></a> that creates this
+provider</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstDeviceProviderClass.probe"></a>probe</code></em> ()</p></td>
+<td class="struct_member_description"><p>Returns a list of devices that are currently available.
+This should never block.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstDeviceProviderClass.start"></a>start</code></em> ()</p></td>
+<td class="struct_member_description"><p>Starts monitoring for new devices. Only subclasses that can know
+that devices have been added or remove need to implement this method.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstDeviceProviderClass.stop"></a>stop</code></em> ()</p></td>
+<td class="struct_member_description"><p>Stops monitoring for new devices. Only subclasses that implement
+the <code class="function">start()</code> method need to implement this method.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstDeviceProvider.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a>, <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.20</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/gst/html/gstreamer-GstFormat.html b/docs/gst/html/gstreamer-GstFormat.html
index 29b6001..b7c5508 100644
--- a/docs/gst/html/gstreamer-GstFormat.html
+++ b/docs/gst/html/gstreamer-GstFormat.html
@@ -164,9 +164,9 @@ gst_format_get_name (<em class="parameter"><code><a class="link" href="gstreamer
</div>
<div class="refsect3">
<a name="id-1.3.25.8.2.6"></a><h4>Returns</h4>
-<p> a reference to the static name of the format or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
-the format is unknown.</p>
-<p></p>
+<p> a reference to the static name of the format
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the format is unknown. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
@@ -323,9 +323,10 @@ gst_format_get_details (<em class="parameter"><code><a class="link" href="gstrea
<div class="refsect3">
<a name="id-1.3.25.8.7.6"></a><h4>Returns</h4>
<p> The <a class="link" href="gstreamer-GstFormat.html#GstFormatDefinition" title="struct GstFormatDefinition"><span class="type">GstFormatDefinition</span></a> for <em class="parameter"><code>format</code></em>
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure.</p>
-<p>MT safe.</p>
-<p></p>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+on failure.</p>
+<p>MT safe. </p>
+<p><span class="annotation">[nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/gstreamer-GstGlobalDeviceMonitor.html b/docs/gst/html/gstreamer-GstGlobalDeviceMonitor.html
deleted file mode 100644
index 4647794..0000000
--- a/docs/gst/html/gstreamer-GstGlobalDeviceMonitor.html
+++ /dev/null
@@ -1,468 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GStreamer 1.0 Core Reference Manual: GstGlobalDeviceMonitor</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
-<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
-<link rel="up" href="gstreamer-device-probing.html" title="GStreamer Device Discovery and Device Probing">
-<link rel="prev" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">
-<link rel="next" href="gstreamer-support.html" title="GStreamer Core Support">
-<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
- <a href="#gstreamer-GstGlobalDeviceMonitor.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
- <a href="#gstreamer-GstGlobalDeviceMonitor.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
-</td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="gstreamer-device-probing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="GstDeviceMonitorFactory.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gstreamer-support.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gstreamer-GstGlobalDeviceMonitor"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gstreamer-GstGlobalDeviceMonitor.top_of_page"></a>GstGlobalDeviceMonitor</span></h2>
-<p>GstGlobalDeviceMonitor — A global device monitor and prober</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="functions_return">
-<col class="functions_name">
-</colgroup>
-<tbody>
-<tr>
-<td class="function_type">
-<a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-bus" title="gst_global_device_monitor_get_bus ()">gst_global_device_monitor_get_bus</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="GstCaps.html" title="GstCaps"><span class="returnvalue">GstCaps</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-caps-filter" title="gst_global_device_monitor_get_caps_filter ()">gst_global_device_monitor_get_caps_filter</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-classes-filter" title="gst_global_device_monitor_get_classes_filter ()">gst_global_device_monitor_get_classes_filter</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-devices" title="gst_global_device_monitor_get_devices ()">gst_global_device_monitor_get_devices</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="returnvalue">GstGlobalDeviceMonitor</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-new" title="gst_global_device_monitor_new ()">gst_global_device_monitor_new</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-caps-filter" title="gst_global_device_monitor_set_caps_filter ()">gst_global_device_monitor_set_caps_filter</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-classes-filter" title="gst_global_device_monitor_set_classes_filter ()">gst_global_device_monitor_set_classes_filter</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-start" title="gst_global_device_monitor_start ()">gst_global_device_monitor_start</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-stop" title="gst_global_device_monitor_stop ()">gst_global_device_monitor_stop</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="name">
-<col class="description">
-</colgroup>
-<tbody>
-<tr>
-<td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor">GstGlobalDeviceMonitor</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitorClass" title="struct GstGlobalDeviceMonitorClass">GstGlobalDeviceMonitorClass</a></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">
-</pre>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.includes"></a><h2>Includes</h2>
-<pre class="synopsis">#include &lt;gst/gst.h&gt;
-</pre>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.description"></a><h2>Description</h2>
-<p>Applications should create a <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> when they want
-to probe, list and monitor devices of a specific type. The
-<a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> will create the appropriate
-<a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a> objects and manage them. It will then post
-messages on its <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> for devices that have been added and
-removed.</p>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.functions_details"></a><h2>Functions</h2>
-<div class="refsect2">
-<a name="gst-global-device-monitor-get-bus"></a><h3>gst_global_device_monitor_get_bus ()</h3>
-<pre class="programlisting"><a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
-gst_global_device_monitor_get_bus (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Gets the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> of this <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a></p>
-<div class="refsect3">
-<a name="id-1.4.5.8.2.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.5.8.2.6"></a><h4>Returns</h4>
-<p> a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-get-caps-filter"></a><h3>gst_global_device_monitor_get_caps_filter ()</h3>
-<pre class="programlisting"><a class="link" href="GstCaps.html" title="GstCaps"><span class="returnvalue">GstCaps</span></a> *
-gst_global_device_monitor_get_caps_filter
- (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Get the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> filter set by <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-caps-filter" title="gst_global_device_monitor_set_caps_filter ()"><code class="function">gst_global_device_monitor_set_caps_filter()</code></a>.</p>
-<div class="refsect3">
-<a name="id-1.4.5.8.3.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>a global device monitor</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.5.8.3.6"></a><h4>Returns</h4>
-<p> the filter caps that are active (or ANY caps). </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-get-classes-filter"></a><h3>gst_global_device_monitor_get_classes_filter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
-gst_global_device_monitor_get_classes_filter
- (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Return the type (device classes) filter active for device filtering.</p>
-<div class="refsect3">
-<a name="id-1.4.5.8.4.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>the global device monitor</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.5.8.4.6"></a><h4>Returns</h4>
-<p> string of device classes that are being filtered.</p>
-<p></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-get-devices"></a><h3>gst_global_device_monitor_get_devices ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
-gst_global_device_monitor_get_devices (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Gets a list of devices from all of the relevant monitors. This may actually
-probe the hardware if the global monitor is not currently started.</p>
-<div class="refsect3">
-<a name="id-1.4.5.8.5.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.5.8.5.6"></a><h4>Returns</h4>
-<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-<a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstDevice]</span></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-new"></a><h3>gst_global_device_monitor_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="returnvalue">GstGlobalDeviceMonitor</span></a> *
-gst_global_device_monitor_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Create a new <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a></p>
-<div class="refsect3">
-<a name="id-1.4.5.8.6.5"></a><h4>Returns</h4>
-<p> a new global device monitor. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-set-caps-filter"></a><h3>gst_global_device_monitor_set_caps_filter ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_global_device_monitor_set_caps_filter
- (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>,
- <em class="parameter"><code><a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Set caps to use as filter for devices. By default ANY caps are used,
-meaning no caps filter is active.</p>
-<div class="refsect3">
-<a name="id-1.4.5.8.7.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>the global device monitor</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>caps to filter</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-set-classes-filter"></a><h3>gst_global_device_monitor_set_classes_filter ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_global_device_monitor_set_classes_filter
- (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classes</code></em>);</pre>
-<p>Filter devices monitored by device class, e.g. in case you are only
-interested in a certain type of device like audio devices or
-video sources.</p>
-<div class="refsect3">
-<a name="id-1.4.5.8.8.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>the global device monitor</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>classes</p></td>
-<td class="parameter_description"><p>device classes to use as filter</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-start"></a><h3>gst_global_device_monitor_start ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_global_device_monitor_start (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Starts monitoring the devices, one this has succeeded, the
-<a class="link" href="GstMessage.html#GST-MESSAGE-DEVICE-ADDED:CAPS"><code class="literal">GST_MESSAGE_DEVICE_ADDED</code></a> and <a class="link" href="GstMessage.html#GST-MESSAGE-DEVICE-REMOVED:CAPS"><code class="literal">GST_MESSAGE_DEVICE_REMOVED</code></a> messages
-will be emitted on the bus when the list of devices changes.</p>
-<div class="refsect3">
-<a name="id-1.4.5.8.9.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="id-1.4.5.8.9.6"></a><h4>Returns</h4>
-<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the device monitoring could be started</p>
-<p></p>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-global-device-monitor-stop"></a><h3>gst_global_device_monitor_stop ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-gst_global_device_monitor_stop (<em class="parameter"><code><a class="link" href="gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor" title="struct GstGlobalDeviceMonitor"><span class="type">GstGlobalDeviceMonitor</span></a> *monitor</code></em>);</pre>
-<p>Stops monitoring the devices.</p>
-<div class="refsect3">
-<a name="id-1.4.5.8.10.5"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>monitor</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.other_details"></a><h2>Types and Values</h2>
-<div class="refsect2">
-<a name="GstGlobalDeviceMonitor"></a><h3>struct GstGlobalDeviceMonitor</h3>
-<pre class="programlisting">struct GstGlobalDeviceMonitor {
- GstObject parent;
-};
-</pre>
-<p>Opaque global device monitor object structure.</p>
-<div class="refsect3">
-<a name="id-1.4.5.9.2.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody><tr>
-<td class="struct_member_name"><p><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> <em class="structfield"><code><a name="GstGlobalDeviceMonitor.parent"></a>parent</code></em>;</p></td>
-<td class="struct_member_description"><p>the parent <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> structure</p></td>
-<td class="struct_member_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstGlobalDeviceMonitorClass"></a><h3>struct GstGlobalDeviceMonitorClass</h3>
-<pre class="programlisting">struct GstGlobalDeviceMonitorClass {
- GstObjectClass parent_class;
-};
-</pre>
-<p>Opaque global device monitor class structure.</p>
-<div class="refsect3">
-<a name="id-1.4.5.9.3.5"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody><tr>
-<td class="struct_member_name"><p><a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstGlobalDeviceMonitorClass.parent-class"></a>parent_class</code></em>;</p></td>
-<td class="struct_member_description"><p>the parent <a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> structure</p></td>
-<td class="struct_member_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since 1.4</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstGlobalDeviceMonitor.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gstreamer-GstDevice.html#GstDevice" title="struct GstDevice"><span class="type">GstDevice</span></a>, <a class="link" href="gstreamer-GstDeviceMonitor.html#GstDeviceMonitor" title="struct GstDeviceMonitor"><span class="type">GstDeviceMonitor</span></a></p>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.20</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/gst/html/gstreamer-GstInfo.html b/docs/gst/html/gstreamer-GstInfo.html
index 870d8cf..69a5724 100644
--- a/docs/gst/html/gstreamer-GstInfo.html
+++ b/docs/gst/html/gstreamer-GstInfo.html
@@ -731,8 +731,8 @@ strings.</p>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>The string to check.</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> The string to check. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
diff --git a/docs/gst/html/gstreamer-GstMeta.html b/docs/gst/html/gstreamer-GstMeta.html
index 08771dd..cdd40e0 100644
--- a/docs/gst/html/gstreamer-GstMeta.html
+++ b/docs/gst/html/gstreamer-GstMeta.html
@@ -674,9 +674,9 @@ gst_meta_get_info (<em class="parameter"><code>const <a href="http://library.gno
<div class="refsect3">
<a name="id-1.3.30.8.15.6"></a><h4>Returns</h4>
<p> a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> with <em class="parameter"><code>impl</code></em>
-, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no such
-metainfo exists. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+, or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no such metainfo exists. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
</div>
diff --git a/docs/gst/html/gstreamer-GstMiniObject.html b/docs/gst/html/gstreamer-GstMiniObject.html
index c0dc9dd..ce411db 100644
--- a/docs/gst/html/gstreamer-GstMiniObject.html
+++ b/docs/gst/html/gstreamer-GstMiniObject.html
@@ -1110,8 +1110,9 @@ gst_mini_object_get_qdata (<em class="parameter"><code><a class="link" href="gst
</div>
<div class="refsect3">
<a name="id-1.3.31.8.27.6"></a><h4>Returns</h4>
-<p> The user data pointer set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> The user data pointer set, or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1148,8 +1149,9 @@ any was set).</p>
</div>
<div class="refsect3">
<a name="id-1.3.31.8.28.6"></a><h4>Returns</h4>
-<p> The user data pointer set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> The user data pointer set, or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1177,14 +1179,14 @@ The reference count of <em class="parameter"><code>olddata</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>olddata</p></td>
-<td class="parameter_description"><p> pointer to a pointer to a mini-object to
-be replaced. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> pointer to a pointer to a
+mini-object to be replaced. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>newdata</p></td>
-<td class="parameter_description"><p>pointer to new mini-object</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> pointer to new mini-object. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
diff --git a/docs/gst/html/gstreamer-GstParse.html b/docs/gst/html/gstreamer-GstParse.html
index 82dc026..2e3e55b 100644
--- a/docs/gst/html/gstreamer-GstParse.html
+++ b/docs/gst/html/gstreamer-GstParse.html
@@ -419,9 +419,9 @@ for unlinked source or sink pads within the bin</p></td>
</div>
<div class="refsect3">
<a name="id-1.3.36.9.7.6"></a><h4>Returns</h4>
-<p> a newly-created bin,
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error occurred. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gst.Bin]</span></p>
+<p> a
+newly-created bin, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error occurred. </p>
+<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gst.Bin][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/gstreamer-GstPoll.html b/docs/gst/html/gstreamer-GstPoll.html
index 6d7981d..0695c6d 100644
--- a/docs/gst/html/gstreamer-GstPoll.html
+++ b/docs/gst/html/gstreamer-GstPoll.html
@@ -645,9 +645,9 @@ is possible to restart or flush a call to <a class="link" href="gstreamer-GstPol
</div>
<div class="refsect3">
<a name="id-1.3.40.8.12.7"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error.
-Free with <a class="link" href="gstreamer-GstPoll.html#gst-poll-free" title="gst_poll_free ()"><code class="function">gst_poll_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. Free with <a class="link" href="gstreamer-GstPoll.html#gst-poll-free" title="gst_poll_free ()"><code class="function">gst_poll_free()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -662,9 +662,9 @@ performed from different threads. </p>
<p>Free-function: gst_poll_free</p>
<div class="refsect3">
<a name="id-1.3.40.8.13.7"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an error.
-Free with <a class="link" href="gstreamer-GstPoll.html#gst-poll-free" title="gst_poll_free ()"><code class="function">gst_poll_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a new <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in
+case of an error. Free with <a class="link" href="gstreamer-GstPoll.html#gst-poll-free" title="gst_poll_free ()"><code class="function">gst_poll_free()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/gstreamer-GstTocSetter.html b/docs/gst/html/gstreamer-GstTocSetter.html
index ba9eb04..2e02eda 100644
--- a/docs/gst/html/gstreamer-GstTocSetter.html
+++ b/docs/gst/html/gstreamer-GstTocSetter.html
@@ -167,9 +167,9 @@ modified without making it writable first.</p>
</div>
<div class="refsect3">
<a name="id-1.3.52.8.3.6"></a><h4>Returns</h4>
-<p> TOC set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>
-when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> TOC set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref with
+<a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a> when no longer needed. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/gstreamer-GstTypeFind.html b/docs/gst/html/gstreamer-GstTypeFind.html
index 4a6d6d1..eecb363 100644
--- a/docs/gst/html/gstreamer-GstTypeFind.html
+++ b/docs/gst/html/gstreamer-GstTypeFind.html
@@ -192,9 +192,9 @@ gst_type_find_peek (<em class="parameter"><code><a class="link" href="gstreamer-
</div>
<div class="refsect3">
<a name="id-1.3.53.8.3.6"></a><h4>Returns</h4>
-<p> the requested data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-if that data is not available. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span></p>
+<p> the
+requested data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if that data is not available. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/gstreamer-GstUriHandler.html b/docs/gst/html/gstreamer-GstUriHandler.html
index 2dd0b09..45524b4 100644
--- a/docs/gst/html/gstreamer-GstUriHandler.html
+++ b/docs/gst/html/gstreamer-GstUriHandler.html
@@ -600,11 +600,13 @@ modified.</p>
</div>
<div class="refsect3">
<a name="id-1.3.55.9.14.6"></a><h4>Returns</h4>
-<p> the supported protocols.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the <em class="parameter"><code>handler</code></em>
-isn't implemented properly, or the <em class="parameter"><code>handler</code></em>
-doesn't support any protocols. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span></p>
+<p> the
+supported protocols. Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the <em class="parameter"><code>handler</code></em>
+isn't
+implemented properly, or the <em class="parameter"><code>handler</code></em>
+doesn't support any
+protocols. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][nullable]</span></p>
</div>
</div>
<hr>
@@ -630,11 +632,12 @@ gst_uri_handler_get_uri (<em class="parameter"><code><a class="link" href="gstre
</div>
<div class="refsect3">
<a name="id-1.3.55.9.15.6"></a><h4>Returns</h4>
-<p> the URI currently handled by the <em class="parameter"><code>handler</code></em>
-.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there are no URI currently handled. The
-returned string must be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the URI currently handled by
+the <em class="parameter"><code>handler</code></em>
+. Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there are no URI currently
+handled. The returned string must be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no
+longer needed. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/gst/html/gstreamer-GstUtils.html b/docs/gst/html/gstreamer-GstUtils.html
index cf6545f..000a253 100644
--- a/docs/gst/html/gstreamer-GstUtils.html
+++ b/docs/gst/html/gstreamer-GstUtils.html
@@ -2963,8 +2963,9 @@ will always be passed as second argument. </p></td>
</div>
<div class="refsect3">
<a name="id-1.3.56.8.78.8"></a><h4>Returns</h4>
-<p> The address of the found element or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if nothing was found. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+<p> The address of the found
+element or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if nothing was found. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][nullable]</span></p>
</div>
</div>
</div>
diff --git a/docs/gst/html/gstreamer-GstValue.html b/docs/gst/html/gstreamer-GstValue.html
index beabfd8..7ed2d08 100644
--- a/docs/gst/html/gstreamer-GstValue.html
+++ b/docs/gst/html/gstreamer-GstValue.html
@@ -2931,7 +2931,7 @@ getting back this string later on using <a class="link" href="gstreamer-GstValue
<a name="id-1.3.57.8.77.7"></a><h4>Returns</h4>
<p> the serialization for <em class="parameter"><code>value</code></em>
or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none exists. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -3165,10 +3165,11 @@ Note that this means subtraction as in sets, not as in mathematics.</p>
<tbody>
<tr>
<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p> the destination value for the result if the
-subtraction is not empty. May be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, in which case the resulting set
-will not be computed, which can give a fair speedup. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
+<td class="parameter_description"><p> the destination value
+for the result if the subtraction is not empty. May be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>,
+in which case the resulting set will not be computed, which can
+give a fair speedup. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>minuend</p></td>
@@ -3250,9 +3251,10 @@ is placed in <em class="parameter"><code>dest</code></em>
<tbody>
<tr>
<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p> a uninitialized <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> that will hold the calculated
-intersection value. May be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the resulting set if not needed. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+<td class="parameter_description"><p> a uninitialized <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> that will hold the calculated
+intersection value. May be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the resulting set if not
+needed. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>value1</p></td>
diff --git a/docs/gst/html/gstreamer-GstVersion.html b/docs/gst/html/gstreamer-GstVersion.html
index 6d0d122..b7fa1bd 100644
--- a/docs/gst/html/gstreamer-GstVersion.html
+++ b/docs/gst/html/gstreamer-GstVersion.html
@@ -104,7 +104,7 @@ GStreamer you are currently linked against.</p>
<hr>
<div class="refsect2">
<a name="GST-VERSION-MICRO:CAPS"></a><h3>GST_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_VERSION_MICRO (3)
+<pre class="programlisting">#define GST_VERSION_MICRO (90)
</pre>
<p>The micro version of GStreamer at compile time:</p>
</div>
diff --git a/docs/gst/html/gstreamer-device-probing.html b/docs/gst/html/gstreamer-device-probing.html
index e17f19f..3fb1e83 100644
--- a/docs/gst/html/gstreamer-device-probing.html
+++ b/docs/gst/html/gstreamer-device-probing.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="prev" href="gstreamer-GstVersion.html" title="GstVersion">
-<link rel="next" href="gstreamer-GstDevice.html" title="GstDevice">
+<link rel="next" href="gstreamer-GstDeviceMonitor.html" title="GstDeviceMonitor">
<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -17,23 +17,23 @@
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="gstreamer-GstVersion.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gstreamer-GstDevice.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-GstDeviceMonitor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h1 class="title">
<a name="gstreamer-device-probing"></a>GStreamer Device Discovery and Device Probing</h1></div></div></div>
<div class="toc"><dl class="toc">
<dt>
-<span class="refentrytitle"><a href="gstreamer-GstDevice.html">GstDevice</a></span><span class="refpurpose"> — Object representing a device</span>
+<span class="refentrytitle"><a href="gstreamer-GstDeviceMonitor.html">GstDeviceMonitor</a></span><span class="refpurpose"> — A device monitor and prober</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gstreamer-GstDeviceMonitor.html">GstDeviceMonitor</a></span><span class="refpurpose"> — A device monitor and prober</span>
+<span class="refentrytitle"><a href="gstreamer-GstDevice.html">GstDevice</a></span><span class="refpurpose"> — Object representing a device</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="GstDeviceMonitorFactory.html">GstDeviceMonitorFactory</a></span><span class="refpurpose"> — Create GstDeviceMonitors from a factory</span>
+<span class="refentrytitle"><a href="gstreamer-GstDeviceProvider.html">GstDeviceProvider</a></span><span class="refpurpose"> — A device provider</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gstreamer-GstGlobalDeviceMonitor.html">GstGlobalDeviceMonitor</a></span><span class="refpurpose"> — A global device monitor and prober</span>
+<span class="refentrytitle"><a href="GstDeviceProviderFactory.html">GstDeviceProviderFactory</a></span><span class="refpurpose"> — Create GstDeviceProviders from a factory</span>
</dt>
</dl></div>
</div>
diff --git a/docs/gst/html/gstreamer-hierarchy.html b/docs/gst/html/gstreamer-hierarchy.html
index bf059b8..a3edae0 100644
--- a/docs/gst/html/gstreamer-hierarchy.html
+++ b/docs/gst/html/gstreamer-hierarchy.html
@@ -34,7 +34,7 @@
<span class="lineart">├──</span> <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
<span class="lineart">│</span> <span class="lineart">├──</span> <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
<span class="lineart">│</span> <span class="lineart">├──</span> <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory">GstTypeFindFactory</a>
- <span class="lineart">│</span> <span class="lineart">╰──</span> <a class="link" href="GstDeviceMonitorFactory.html" title="GstDeviceMonitorFactory">GstDeviceMonitorFactory</a>
+ <span class="lineart">│</span> <span class="lineart">╰──</span> <a class="link" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">GstDeviceProviderFactory</a>
<span class="lineart">├──</span> <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
<span class="lineart">│</span> <span class="lineart">╰──</span> <a class="link" href="GstBin.html" title="GstBin">GstBin</a>
<span class="lineart">│</span> <span class="lineart">╰──</span> <a class="link" href="GstPipeline.html" title="GstPipeline">GstPipeline</a>
diff --git a/docs/gst/html/gstreamer-support.html b/docs/gst/html/gstreamer-support.html
index 8a16b85..10e9cff 100644
--- a/docs/gst/html/gstreamer-support.html
+++ b/docs/gst/html/gstreamer-support.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
-<link rel="prev" href="gstreamer-GstGlobalDeviceMonitor.html" title="GstGlobalDeviceMonitor">
+<link rel="prev" href="GstDeviceProviderFactory.html" title="GstDeviceProviderFactory">
<link rel="next" href="gstreamer-GstInfo.html" title="GstInfo">
<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="gstreamer-GstGlobalDeviceMonitor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GstDeviceProviderFactory.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gstreamer-GstInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index 7005ffe..ca88beb 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Core Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Core 1.0 (1.3.3)
+ for GStreamer Core 1.0 (1.3.90)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</a>.
</p></div>
@@ -223,16 +223,16 @@ to GStreamer</span>
<dt><span class="chapter"><a href="gstreamer-device-probing.html">GStreamer Device Discovery and Device Probing</a></span></dt>
<dd><dl>
<dt>
-<span class="refentrytitle"><a href="gstreamer-GstDevice.html">GstDevice</a></span><span class="refpurpose"> — Object representing a device</span>
+<span class="refentrytitle"><a href="gstreamer-GstDeviceMonitor.html">GstDeviceMonitor</a></span><span class="refpurpose"> — A device monitor and prober</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gstreamer-GstDeviceMonitor.html">GstDeviceMonitor</a></span><span class="refpurpose"> — A device monitor and prober</span>
+<span class="refentrytitle"><a href="gstreamer-GstDevice.html">GstDevice</a></span><span class="refpurpose"> — Object representing a device</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="GstDeviceMonitorFactory.html">GstDeviceMonitorFactory</a></span><span class="refpurpose"> — Create GstDeviceMonitors from a factory</span>
+<span class="refentrytitle"><a href="gstreamer-GstDeviceProvider.html">GstDeviceProvider</a></span><span class="refpurpose"> — A device provider</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gstreamer-GstGlobalDeviceMonitor.html">GstGlobalDeviceMonitor</a></span><span class="refpurpose"> — A global device monitor and prober</span>
+<span class="refentrytitle"><a href="GstDeviceProviderFactory.html">GstDeviceProviderFactory</a></span><span class="refpurpose"> — Create GstDeviceProviders from a factory</span>
</dt>
</dl></dd>
<dt><span class="chapter"><a href="gstreamer-support.html">GStreamer Core Support</a></span></dt>
diff --git a/docs/gst/html/index.sgml b/docs/gst/html/index.sgml
index 938a309..e900fea 100644
--- a/docs/gst/html/index.sgml
+++ b/docs/gst/html/index.sgml
@@ -2465,6 +2465,24 @@
<ANCHOR id="GST-VERSION-NANO:CAPS" href="gstreamer-1.0/gstreamer-GstVersion.html#GST-VERSION-NANO:CAPS">
<ANCHOR id="GST-CHECK-VERSION:CAPS" href="gstreamer-1.0/gstreamer-GstVersion.html#GST-CHECK-VERSION:CAPS">
<ANCHOR id="gstreamer-GstVersion.other_details" href="gstreamer-1.0/gstreamer-GstVersion.html#gstreamer-GstVersion.other_details">
+<ANCHOR id="gstreamer-GstDeviceMonitor" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html">
+<ANCHOR id="gstreamer-GstDeviceMonitor.functions" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.functions">
+<ANCHOR id="gstreamer-GstDeviceMonitor.other" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.other">
+<ANCHOR id="gstreamer-GstDeviceMonitor.object-hierarchy" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.object-hierarchy">
+<ANCHOR id="gstreamer-GstDeviceMonitor.includes" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.includes">
+<ANCHOR id="gstreamer-GstDeviceMonitor.description" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.description">
+<ANCHOR id="gstreamer-GstDeviceMonitor.functions_details" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.functions_details">
+<ANCHOR id="gst-device-monitor-new" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-new">
+<ANCHOR id="gst-device-monitor-get-bus" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-bus">
+<ANCHOR id="gst-device-monitor-add-filter" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-add-filter">
+<ANCHOR id="gst-device-monitor-remove-filter" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-remove-filter">
+<ANCHOR id="gst-device-monitor-start" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-start">
+<ANCHOR id="gst-device-monitor-stop" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop">
+<ANCHOR id="gst-device-monitor-get-devices" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices">
+<ANCHOR id="gstreamer-GstDeviceMonitor.other_details" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.other_details">
+<ANCHOR id="GstDeviceMonitor" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#GstDeviceMonitor">
+<ANCHOR id="GstDeviceMonitorClass" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass">
+<ANCHOR id="gstreamer-GstDeviceMonitor.see-also" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.see-also">
<ANCHOR id="gstreamer-GstDevice" href="gstreamer-1.0/gstreamer-GstDevice.html">
<ANCHOR id="gstreamer-GstDevice.functions" href="gstreamer-1.0/gstreamer-GstDevice.html#gstreamer-GstDevice.functions">
<ANCHOR id="gstreamer-GstDevice.other" href="gstreamer-1.0/gstreamer-GstDevice.html#gstreamer-GstDevice.other">
@@ -2482,71 +2500,51 @@
<ANCHOR id="GstDevice" href="gstreamer-1.0/gstreamer-GstDevice.html#GstDevice">
<ANCHOR id="GstDeviceClass" href="gstreamer-1.0/gstreamer-GstDevice.html#GstDeviceClass">
<ANCHOR id="gstreamer-GstDevice.see-also" href="gstreamer-1.0/gstreamer-GstDevice.html#gstreamer-GstDevice.see-also">
-<ANCHOR id="gstreamer-GstDeviceMonitor" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html">
-<ANCHOR id="gstreamer-GstDeviceMonitor.functions" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.functions">
-<ANCHOR id="gstreamer-GstDeviceMonitor.other" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.other">
-<ANCHOR id="gstreamer-GstDeviceMonitor.object-hierarchy" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.object-hierarchy">
-<ANCHOR id="gstreamer-GstDeviceMonitor.includes" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.includes">
-<ANCHOR id="gstreamer-GstDeviceMonitor.description" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.description">
-<ANCHOR id="gstreamer-GstDeviceMonitor.functions_details" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.functions_details">
-<ANCHOR id="gst-device-monitor-can-monitor" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-can-monitor">
-<ANCHOR id="gst-device-monitor-class-add-metadata" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-metadata">
-<ANCHOR id="gst-device-monitor-class-add-static-metadata" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-add-static-metadata">
-<ANCHOR id="gst-device-monitor-class-get-metadata" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-get-metadata">
-<ANCHOR id="gst-device-monitor-class-set-metadata" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-metadata">
-<ANCHOR id="gst-device-monitor-class-set-static-metadata" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-class-set-static-metadata">
-<ANCHOR id="gst-device-monitor-device-add" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-add">
-<ANCHOR id="gst-device-monitor-device-remove" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-device-remove">
-<ANCHOR id="gst-device-monitor-get-bus" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-bus">
-<ANCHOR id="gst-device-monitor-get-devices" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-devices">
-<ANCHOR id="gst-device-monitor-get-factory" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-get-factory">
-<ANCHOR id="gst-device-monitor-register" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-register">
-<ANCHOR id="gst-device-monitor-start" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-start">
-<ANCHOR id="gst-device-monitor-stop" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gst-device-monitor-stop">
-<ANCHOR id="gstreamer-GstDeviceMonitor.other_details" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.other_details">
-<ANCHOR id="GstDeviceMonitor" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#GstDeviceMonitor">
-<ANCHOR id="GstDeviceMonitorClass" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#GstDeviceMonitorClass">
-<ANCHOR id="gstreamer-GstDeviceMonitor.see-also" href="gstreamer-1.0/gstreamer-GstDeviceMonitor.html#gstreamer-GstDeviceMonitor.see-also">
-<ANCHOR id="GstDeviceMonitorFactory" href="gstreamer-1.0/GstDeviceMonitorFactory.html">
-<ANCHOR id="GstDeviceMonitorFactory.functions" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.functions">
-<ANCHOR id="GstDeviceMonitorFactory.other" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.other">
-<ANCHOR id="GstDeviceMonitorFactory.object-hierarchy" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.object-hierarchy">
-<ANCHOR id="GstDeviceMonitorFactory.includes" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.includes">
-<ANCHOR id="GstDeviceMonitorFactory.description" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.description">
-<ANCHOR id="GstDeviceMonitorFactory.functions_details" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.functions_details">
-<ANCHOR id="gst-device-monitor-factory-find" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-find">
-<ANCHOR id="gst-device-monitor-factory-get" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-get">
-<ANCHOR id="gst-device-monitor-factory-get-by-name" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-by-name">
-<ANCHOR id="gst-device-monitor-factory-get-device-monitor-type" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-device-monitor-type">
-<ANCHOR id="gst-device-monitor-factory-get-metadata" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata">
-<ANCHOR id="gst-device-monitor-factory-get-metadata-keys" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-get-metadata-keys">
-<ANCHOR id="gst-device-monitor-factory-has-classes" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classes">
-<ANCHOR id="gst-device-monitor-factory-has-classesv" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-has-classesv">
-<ANCHOR id="gst-device-monitor-factory-list-get-device-monitors" href="gstreamer-1.0/GstDeviceMonitorFactory.html#gst-device-monitor-factory-list-get-device-monitors">
-<ANCHOR id="GstDeviceMonitorFactory.other_details" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.other_details">
-<ANCHOR id="GstDeviceMonitorFactory-struct" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory-struct">
-<ANCHOR id="GstDeviceMonitorFactoryClass" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactoryClass">
-<ANCHOR id="GstDeviceMonitorFactory.see-also" href="gstreamer-1.0/GstDeviceMonitorFactory.html#GstDeviceMonitorFactory.see-also">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.functions" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.functions">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.other" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.other">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.object-hierarchy" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.object-hierarchy">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.includes" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.includes">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.description" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.description">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.functions_details" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.functions_details">
-<ANCHOR id="gst-global-device-monitor-get-bus" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-bus">
-<ANCHOR id="gst-global-device-monitor-get-caps-filter" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-caps-filter">
-<ANCHOR id="gst-global-device-monitor-get-classes-filter" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-classes-filter">
-<ANCHOR id="gst-global-device-monitor-get-devices" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-get-devices">
-<ANCHOR id="gst-global-device-monitor-new" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-new">
-<ANCHOR id="gst-global-device-monitor-set-caps-filter" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-caps-filter">
-<ANCHOR id="gst-global-device-monitor-set-classes-filter" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-set-classes-filter">
-<ANCHOR id="gst-global-device-monitor-start" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-start">
-<ANCHOR id="gst-global-device-monitor-stop" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gst-global-device-monitor-stop">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.other_details" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.other_details">
-<ANCHOR id="GstGlobalDeviceMonitor" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitor">
-<ANCHOR id="GstGlobalDeviceMonitorClass" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#GstGlobalDeviceMonitorClass">
-<ANCHOR id="gstreamer-GstGlobalDeviceMonitor.see-also" href="gstreamer-1.0/gstreamer-GstGlobalDeviceMonitor.html#gstreamer-GstGlobalDeviceMonitor.see-also">
+<ANCHOR id="gstreamer-GstDeviceProvider" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html">
+<ANCHOR id="gstreamer-GstDeviceProvider.functions" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.functions">
+<ANCHOR id="gstreamer-GstDeviceProvider.other" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.other">
+<ANCHOR id="gstreamer-GstDeviceProvider.object-hierarchy" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.object-hierarchy">
+<ANCHOR id="gstreamer-GstDeviceProvider.includes" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.includes">
+<ANCHOR id="gstreamer-GstDeviceProvider.description" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.description">
+<ANCHOR id="gstreamer-GstDeviceProvider.functions_details" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.functions_details">
+<ANCHOR id="gst-device-provider-can-monitor" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-can-monitor">
+<ANCHOR id="gst-device-provider-class-add-metadata" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-metadata">
+<ANCHOR id="gst-device-provider-class-add-static-metadata" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-class-add-static-metadata">
+<ANCHOR id="gst-device-provider-class-get-metadata" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-class-get-metadata">
+<ANCHOR id="gst-device-provider-class-set-metadata" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-metadata">
+<ANCHOR id="gst-device-provider-class-set-static-metadata" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-class-set-static-metadata">
+<ANCHOR id="gst-device-provider-device-add" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-device-add">
+<ANCHOR id="gst-device-provider-device-remove" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-device-remove">
+<ANCHOR id="gst-device-provider-get-bus" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-get-bus">
+<ANCHOR id="gst-device-provider-get-devices" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-get-devices">
+<ANCHOR id="gst-device-provider-get-factory" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-get-factory">
+<ANCHOR id="gst-device-provider-register" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-register">
+<ANCHOR id="gst-device-provider-start" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-start">
+<ANCHOR id="gst-device-provider-stop" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gst-device-provider-stop">
+<ANCHOR id="gstreamer-GstDeviceProvider.other_details" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.other_details">
+<ANCHOR id="GstDeviceProvider" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#GstDeviceProvider">
+<ANCHOR id="GstDeviceProviderClass" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#GstDeviceProviderClass">
+<ANCHOR id="gstreamer-GstDeviceProvider.see-also" href="gstreamer-1.0/gstreamer-GstDeviceProvider.html#gstreamer-GstDeviceProvider.see-also">
+<ANCHOR id="GstDeviceProviderFactory" href="gstreamer-1.0/GstDeviceProviderFactory.html">
+<ANCHOR id="GstDeviceProviderFactory.functions" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.functions">
+<ANCHOR id="GstDeviceProviderFactory.other" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.other">
+<ANCHOR id="GstDeviceProviderFactory.object-hierarchy" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.object-hierarchy">
+<ANCHOR id="GstDeviceProviderFactory.includes" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.includes">
+<ANCHOR id="GstDeviceProviderFactory.description" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.description">
+<ANCHOR id="GstDeviceProviderFactory.functions_details" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.functions_details">
+<ANCHOR id="gst-device-provider-factory-find" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-find">
+<ANCHOR id="gst-device-provider-factory-get" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-get">
+<ANCHOR id="gst-device-provider-factory-get-by-name" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-get-by-name">
+<ANCHOR id="gst-device-provider-factory-get-device-provider-type" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-get-device-provider-type">
+<ANCHOR id="gst-device-provider-factory-get-metadata" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata">
+<ANCHOR id="gst-device-provider-factory-get-metadata-keys" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-get-metadata-keys">
+<ANCHOR id="gst-device-provider-factory-has-classes" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-has-classes">
+<ANCHOR id="gst-device-provider-factory-has-classesv" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-has-classesv">
+<ANCHOR id="gst-device-provider-factory-list-get-device-providers" href="gstreamer-1.0/GstDeviceProviderFactory.html#gst-device-provider-factory-list-get-device-providers">
+<ANCHOR id="GstDeviceProviderFactory.other_details" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.other_details">
+<ANCHOR id="GstDeviceProviderFactory-struct" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory-struct">
+<ANCHOR id="GstDeviceProviderFactoryClass" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactoryClass">
+<ANCHOR id="GstDeviceProviderFactory.see-also" href="gstreamer-1.0/GstDeviceProviderFactory.html#GstDeviceProviderFactory.see-also">
<ANCHOR id="gstreamer-GstInfo" href="gstreamer-1.0/gstreamer-GstInfo.html">
<ANCHOR id="gstreamer-GstInfo.functions" href="gstreamer-1.0/gstreamer-GstInfo.html#gstreamer-GstInfo.functions">
<ANCHOR id="gstreamer-GstInfo.other" href="gstreamer-1.0/gstreamer-GstInfo.html#gstreamer-GstInfo.other">
diff --git a/docs/libs/html/GstAdapter.html b/docs/libs/html/GstAdapter.html
index ec95464..59df4de 100644
--- a/docs/libs/html/GstAdapter.html
+++ b/docs/libs/html/GstAdapter.html
@@ -453,7 +453,7 @@ as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/h
<a name="id-1.2.4.8.8.5.8"></a><h4>Returns</h4>
<p> a pointer to the first <em class="parameter"><code>size</code></em>
bytes of data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][nullable]</span></p>
</div>
</div>
<hr>
@@ -714,7 +714,7 @@ gst_adapter_take (<em class="parameter"><code><a class="link" href="GstAdapter.h
<a name="id-1.2.4.8.8.12.8"></a><h4>Returns</h4>
<p> oven-fresh hot data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>nbytes</code></em>
bytes are not available. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=nbytes][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=nbytes][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][nullable]</span></p>
</div>
</div>
<hr>
@@ -762,12 +762,12 @@ usage.</p>
</div>
<div class="refsect3">
<a name="id-1.2.4.8.8.13.9"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em>
-of
-the adapter, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>nbytes</code></em>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the first
+<em class="parameter"><code>nbytes</code></em>
+of the adapter, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>nbytes</code></em>
bytes are not available.
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -818,12 +818,12 @@ usage.</p>
</div>
<div class="refsect3">
<a name="id-1.2.4.8.8.14.10"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em>
-of
-the adapter, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>nbytes</code></em>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html"><span class="type">GstBuffer</span></a> containing the first
+<em class="parameter"><code>nbytes</code></em>
+of the adapter, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>nbytes</code></em>
bytes are not available.
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
<p class="since">Since 1.2</p>
</div>
@@ -865,12 +865,11 @@ buffer in the list before freeing the list after usage.</p>
</div>
<div class="refsect3">
<a name="id-1.2.4.8.8.15.7"></a><h4>Returns</h4>
-<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of buffers
-containing the first <em class="parameter"><code>nbytes</code></em>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+buffers containing the first <em class="parameter"><code>nbytes</code></em>
of the adapter, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>nbytes</code></em>
-bytes
-are not available. </p>
-<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Buffer][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+bytes are not available. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Buffer][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -1206,8 +1205,8 @@ the last scanned position.</p></td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>pointer to uint32 to return matching data</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> pointer to uint32 to return matching data. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
diff --git a/docs/libs/html/GstBaseSink.html b/docs/libs/html/GstBaseSink.html
index d8ed1a6..1ef778a 100644
--- a/docs/libs/html/GstBaseSink.html
+++ b/docs/libs/html/GstBaseSink.html
@@ -1234,10 +1234,10 @@ rendering. This property can be used to generate thumbnails.</p>
</div>
<div class="refsect3">
<a name="id-1.2.4.5.9.20.8"></a><h4>Returns</h4>
-<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a>. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage.
-This function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no buffer has arrived in the sink yet
-or when the sink is not in PAUSED or PLAYING. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html"><span class="type">GstSample</span></a>. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after
+usage. This function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no buffer has arrived in the
+sink yet or when the sink is not in PAUSED or PLAYING. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
diff --git a/docs/libs/html/GstCollectPads.html b/docs/libs/html/GstCollectPads.html
index b6bdea9..7f97307 100644
--- a/docs/libs/html/GstCollectPads.html
+++ b/docs/libs/html/GstCollectPads.html
@@ -1049,9 +1049,9 @@ started.</p>
</tr>
<tr>
<td class="parameter_name"><p>destroy_notify</p></td>
-<td class="parameter_description"><p>function to be called before the returned <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a>
-structure is freed</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> function to be called before the returned
+<a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> structure is freed. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>lock</p></td>
@@ -1063,9 +1063,9 @@ structure is freed</p></td>
</div>
<div class="refsect3">
<a name="id-1.2.4.12.8.18.11"></a><h4>Returns</h4>
-<p> a new <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> to identify the new pad. Or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-if wrong parameters are supplied.</p>
-<p></p>
+<p> a new <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> to identify the
+new pad. Or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if wrong parameters are supplied. </p>
+<p><span class="annotation">[nullable][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
@@ -1985,8 +1985,9 @@ in waiting or non-waiting mode</p></td>
</colgroup>
<tbody><tr>
<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *<em class="structfield"><code><a name="GstCollectPads-struct.data"></a>data</code></em>;</p></td>
-<td class="struct_member_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> managed by this <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>.</p></td>
-<td class="struct_member_annotations"> </td>
+<td class="struct_member_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> managed
+by this <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>. </p></td>
+<td class="struct_member_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstBase.CollectData]</span></td>
</tr></tbody>
</table></div>
</div>
diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html
index b8fb2a1..38502b6 100644
--- a/docs/libs/html/annotation-glossary.html
+++ b/docs/libs/html/annotation-glossary.html
@@ -53,6 +53,8 @@
<dt><span class="glossterm"><a name="annotation-glossterm-out%20caller-allocates"></a>out caller-allocates</span></dt>
<dd class="glossdef"><p>Out parameter, where caller must allocate storage.</p></dd>
<a name="glsS"></a><h3 class="title">S</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt>
+<dd class="glossdef"><p>The callback is valid until first called.</p></dd>
<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
<a name="glsT"></a><h3 class="title">T</h3>
diff --git a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
index af1cf7e..4407349 100644
--- a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
+++ b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
@@ -141,9 +141,9 @@ gst_type_find_helper (<em class="parameter"><code><a href="http://gstreamer.free
</div>
<div class="refsect3">
<a name="id-1.2.4.14.7.2.7"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data stream.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> matches the data stream. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data
+stream. Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> matches the data stream. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -193,10 +193,10 @@ caps, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Mac
</div>
<div class="refsect3">
<a name="id-1.2.4.14.7.3.8"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-if no type could be found. The caller should free the caps returned
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no type could be found. The caller should free the caps
+returned with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -236,11 +236,11 @@ returned.</p>
</div>
<div class="refsect3">
<a name="id-1.2.4.14.7.4.8"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to <em class="parameter"><code>extension</code></em>
-, or
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no type could be found. The caller should free the caps
-returned with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to
+<em class="parameter"><code>extension</code></em>
+, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no type could be found. The caller should free
+the caps returned with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -299,10 +299,10 @@ caps, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Mac
</div>
<div class="refsect3">
<a name="id-1.2.4.14.7.5.8"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-if no type could be found. The caller should free the caps returned
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no type could be found. The caller should free the caps
+returned with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
<hr>
@@ -438,9 +438,9 @@ caps, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Mac
</div>
<div class="refsect3">
<a name="id-1.2.4.14.7.7.8"></a><h4>Returns</h4>
-<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data stream.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> matches the data stream. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+<p> the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> corresponding to the data
+stream. Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> matches the data stream. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][nullable]</span></p>
</div>
</div>
</div>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index cd3556a..58f29c0 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Library Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Library 1.0 (1.3.3)
+ for GStreamer Library 1.0 (1.3.90)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/</a>.
</p></div>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index 70354d7..b5b3c04 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -824,6 +824,7 @@
<ANCHOR id="annotation-glossterm-in" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-in">
<ANCHOR id="annotation-glossterm-out" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-out">
<ANCHOR id="annotation-glossterm-out caller-allocates" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-out caller-allocates">
+<ANCHOR id="annotation-glossterm-scope async" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-scope async">
<ANCHOR id="annotation-glossterm-scope call" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-scope call">
<ANCHOR id="annotation-glossterm-transfer container" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer container">
<ANCHOR id="annotation-glossterm-transfer floating" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer floating">
diff --git a/docs/plugins/gstreamer-plugins.hierarchy b/docs/plugins/gstreamer-plugins.hierarchy
index 9195eb1..c65606e 100644
--- a/docs/plugins/gstreamer-plugins.hierarchy
+++ b/docs/plugins/gstreamer-plugins.hierarchy
@@ -36,7 +36,7 @@ GObject
GstPadTemplate
GstPlugin
GstPluginFeature
- GstDeviceMonitorFactory
+ GstDeviceProviderFactory
GstElementFactory
GstTypeFindFactory
GstRegistry
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
index 834c3f3..498f137 100644
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
+++ b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
@@ -41,7 +41,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>1.3.3</td>
+<td>1.3.90</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index ead4d8e..b7d72d1 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Core Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Core Plugins 1.0 (1.3.3)
+ for GStreamer Core Plugins 1.0 (1.3.90)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/</a>.
</p></div>
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index 8f8ef79..d151b96 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -3,7 +3,7 @@
<description>GStreamer core elements</description>
<filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
<basename>libgstcoreelements.so</basename>
- <version>1.3.3</version>
+ <version>1.3.90</version>
<license>LGPL</license>
<source>gstreamer</source>
<package>GStreamer source release</package>
diff --git a/gst/Makefile.am b/gst/Makefile.am
index 86d226e..2e2a79c 100644
--- a/gst/Makefile.am
+++ b/gst/Makefile.am
@@ -72,15 +72,15 @@ libgstreamer_@GST_API_VERSION@_la_SOURCES = \
gstdatetime.c \
gstdebugutils.c \
gstdevice.c \
- gstdevicemonitor.c \
- gstdevicemonitorfactory.c \
+ gstdeviceprovider.c \
+ gstdeviceproviderfactory.c \
gstelement.c \
gstelementfactory.c \
gsterror.c \
gstevent.c \
gstformat.c \
gstghostpad.c \
- gstglobaldevicemonitor.c \
+ gstdevicemonitor.c \
gstinfo.c \
gstiterator.c \
gstatomicqueue.c \
@@ -177,14 +177,14 @@ gst_headers = \
gstelement.h \
gstelementmetadata.h \
gstdevice.h \
- gstdevicemonitor.h \
- gstdevicemonitorfactory.h \
+ gstdeviceprovider.h \
+ gstdeviceproviderfactory.h \
gstelementfactory.h \
gsterror.h \
gstevent.h \
gstformat.h \
gstghostpad.h \
- gstglobaldevicemonitor.h \
+ gstdevicemonitor.h \
gstinfo.h \
gstiterator.h \
gstatomicqueue.h \
diff --git a/gst/Makefile.in b/gst/Makefile.in
index eb59429..85f129d 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -175,9 +175,9 @@ am__libgstreamer_@GST_API_VERSION@_la_SOURCES_DIST = gst.c gstobject.c \
gstbufferpool.c gstbus.c gstcaps.c gstcapsfeatures.c \
gstchildproxy.c gstclock.c gstcontext.c gstcontrolbinding.c \
gstcontrolsource.c gstdatetime.c gstdebugutils.c gstdevice.c \
- gstdevicemonitor.c gstdevicemonitorfactory.c gstelement.c \
+ gstdeviceprovider.c gstdeviceproviderfactory.c gstelement.c \
gstelementfactory.c gsterror.c gstevent.c gstformat.c \
- gstghostpad.c gstglobaldevicemonitor.c gstinfo.c gstiterator.c \
+ gstghostpad.c gstdevicemonitor.c gstinfo.c gstiterator.c \
gstatomicqueue.c gstmessage.c gstmeta.c gstmemory.c \
gstminiobject.c gstpad.c gstpadtemplate.c gstparamspecs.c \
gstpipeline.c gstplugin.c gstpluginfeature.c gstpluginloader.c \
@@ -208,15 +208,15 @@ am_libgstreamer_@GST_API_VERSION@_la_OBJECTS = \
libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo \
libgstreamer_@GST_API_VERSION@_la-gstdebugutils.lo \
libgstreamer_@GST_API_VERSION@_la-gstdevice.lo \
- libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo \
- libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.lo \
+ libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.lo \
+ libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.lo \
libgstreamer_@GST_API_VERSION@_la-gstelement.lo \
libgstreamer_@GST_API_VERSION@_la-gstelementfactory.lo \
libgstreamer_@GST_API_VERSION@_la-gsterror.lo \
libgstreamer_@GST_API_VERSION@_la-gstevent.lo \
libgstreamer_@GST_API_VERSION@_la-gstformat.lo \
libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo \
- libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.lo \
+ libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo \
libgstreamer_@GST_API_VERSION@_la-gstinfo.lo \
libgstreamer_@GST_API_VERSION@_la-gstiterator.lo \
libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.lo \
@@ -701,15 +701,15 @@ libgstreamer_@GST_API_VERSION@_la_SOURCES = \
gstdatetime.c \
gstdebugutils.c \
gstdevice.c \
- gstdevicemonitor.c \
- gstdevicemonitorfactory.c \
+ gstdeviceprovider.c \
+ gstdeviceproviderfactory.c \
gstelement.c \
gstelementfactory.c \
gsterror.c \
gstevent.c \
gstformat.c \
gstghostpad.c \
- gstglobaldevicemonitor.c \
+ gstdevicemonitor.c \
gstinfo.c \
gstiterator.c \
gstatomicqueue.c \
@@ -808,14 +808,14 @@ gst_headers = \
gstelement.h \
gstelementmetadata.h \
gstdevice.h \
- gstdevicemonitor.h \
- gstdevicemonitorfactory.h \
+ gstdeviceprovider.h \
+ gstdeviceproviderfactory.h \
gstelementfactory.h \
gsterror.h \
gstevent.h \
gstformat.h \
gstghostpad.h \
- gstglobaldevicemonitor.h \
+ gstdevicemonitor.h \
gstinfo.h \
gstiterator.h \
gstatomicqueue.h \
@@ -988,7 +988,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdebugutils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevice.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelement.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelementfactory.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstenumtypes.Plo@am__quote@
@@ -996,7 +997,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstevent.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstformat.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstghostpad.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstinfo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstiterator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmemory.Plo@am__quote@
@@ -1186,19 +1186,19 @@ libgstreamer_@GST_API_VERSION@_la-gstdevice.lo: gstdevice.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdevice.lo `test -f 'gstdevice.c' || echo '$(srcdir)/'`gstdevice.c
-libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo: gstdevicemonitor.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo `test -f 'gstdevicemonitor.c' || echo '$(srcdir)/'`gstdevicemonitor.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdevicemonitor.c' object='libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.lo: gstdeviceprovider.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.lo `test -f 'gstdeviceprovider.c' || echo '$(srcdir)/'`gstdeviceprovider.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdeviceprovider.c' object='libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo `test -f 'gstdevicemonitor.c' || echo '$(srcdir)/'`gstdevicemonitor.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdeviceprovider.lo `test -f 'gstdeviceprovider.c' || echo '$(srcdir)/'`gstdeviceprovider.c
-libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.lo: gstdevicemonitorfactory.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.lo `test -f 'gstdevicemonitorfactory.c' || echo '$(srcdir)/'`gstdevicemonitorfactory.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdevicemonitorfactory.c' object='libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.lo: gstdeviceproviderfactory.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.lo `test -f 'gstdeviceproviderfactory.c' || echo '$(srcdir)/'`gstdeviceproviderfactory.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdeviceproviderfactory.c' object='libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdevicemonitorfactory.lo `test -f 'gstdevicemonitorfactory.c' || echo '$(srcdir)/'`gstdevicemonitorfactory.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdeviceproviderfactory.lo `test -f 'gstdeviceproviderfactory.c' || echo '$(srcdir)/'`gstdeviceproviderfactory.c
libgstreamer_@GST_API_VERSION@_la-gstelement.lo: gstelement.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstelement.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelement.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstelement.lo `test -f 'gstelement.c' || echo '$(srcdir)/'`gstelement.c
@@ -1242,12 +1242,12 @@ libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo: gstghostpad.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo `test -f 'gstghostpad.c' || echo '$(srcdir)/'`gstghostpad.c
-libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.lo: gstglobaldevicemonitor.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.lo `test -f 'gstglobaldevicemonitor.c' || echo '$(srcdir)/'`gstglobaldevicemonitor.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstglobaldevicemonitor.c' object='libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo: gstdevicemonitor.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo `test -f 'gstdevicemonitor.c' || echo '$(srcdir)/'`gstdevicemonitor.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdevicemonitor.c' object='libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstglobaldevicemonitor.lo `test -f 'gstglobaldevicemonitor.c' || echo '$(srcdir)/'`gstglobaldevicemonitor.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdevicemonitor.lo `test -f 'gstdevicemonitor.c' || echo '$(srcdir)/'`gstdevicemonitor.c
libgstreamer_@GST_API_VERSION@_la-gstinfo.lo: gstinfo.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstinfo.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstinfo.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstinfo.lo `test -f 'gstinfo.c' || echo '$(srcdir)/'`gstinfo.c
diff --git a/gst/gst.h b/gst/gst.h
index 9b20ba1..6532809 100644
--- a/gst/gst.h
+++ b/gst/gst.h
@@ -43,13 +43,13 @@
#include <gst/gstdatetime.h>
#include <gst/gstdebugutils.h>
#include <gst/gstdevice.h>
-#include <gst/gstdevicemonitor.h>
+#include <gst/gstdeviceprovider.h>
#include <gst/gstelement.h>
#include <gst/gstelementmetadata.h>
#include <gst/gsterror.h>
#include <gst/gstevent.h>
#include <gst/gstghostpad.h>
-#include <gst/gstglobaldevicemonitor.h>
+#include <gst/gstdevicemonitor.h>
#include <gst/gstinfo.h>
#include <gst/gstiterator.h>
#include <gst/gstmessage.h>
diff --git a/gst/gst_private.h b/gst/gst_private.h
index e85d5c5..b25707c 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -54,8 +54,8 @@ extern const char g_log_domain_gstreamer[];
/* for GstElement */
#include "gstelement.h"
-/* for GstDeviceMonitor */
-#include "gstdevicemonitor.h"
+/* for GstDeviceProvider */
+#include "gstdeviceprovider.h"
/* for GstToc */
#include "gsttoc.h"
@@ -399,19 +399,19 @@ struct _GstElementFactoryClass {
gpointer _gst_reserved[GST_PADDING];
};
-struct _GstDeviceMonitorFactory {
+struct _GstDeviceProviderFactory {
GstPluginFeature feature;
/* <private> */
GType type; /* unique GType the device factory or 0 if not loaded */
- volatile GstDeviceMonitor *monitor;
+ volatile GstDeviceProvider *provider;
gpointer metadata;
gpointer _gst_reserved[GST_PADDING];
};
-struct _GstDeviceMonitorFactoryClass {
+struct _GstDeviceProviderFactoryClass {
GstPluginFeatureClass parent;
/* <private> */
diff --git a/gst/gstallocator.c b/gst/gstallocator.c
index cbcb1e4..c6763e1 100644
--- a/gst/gstallocator.c
+++ b/gst/gstallocator.c
@@ -221,8 +221,9 @@ gst_allocator_register (const gchar * name, GstAllocator * allocator)
* Find a previously registered allocator with @name. When @name is %NULL, the
* default allocator will be returned.
*
- * Returns: (transfer full): a #GstAllocator or %NULL when the allocator with @name was not
- * registered. Use gst_object_unref() to release the allocator after usage.
+ * Returns: (transfer full) (nullable): a #GstAllocator or %NULL when
+ * the allocator with @name was not registered. Use gst_object_unref()
+ * to release the allocator after usage.
*/
GstAllocator *
gst_allocator_find (const gchar * name)
diff --git a/gst/gstatomicqueue.c b/gst/gstatomicqueue.c
index 72ad2e3..a80089c 100644
--- a/gst/gstatomicqueue.c
+++ b/gst/gstatomicqueue.c
@@ -214,8 +214,8 @@ gst_atomic_queue_unref (GstAtomicQueue * queue)
*
* Peek the head element of the queue without removing it from the queue.
*
- * Returns: (transfer none): the head element of @queue or %NULL when
- * the queue is empty.
+ * Returns: (transfer none) (nullable): the head element of @queue or
+ * %NULL when the queue is empty.
*/
gpointer
gst_atomic_queue_peek (GstAtomicQueue * queue)
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 77bbc3e..634b6e4 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -1633,7 +1633,8 @@ no_function:
*
* MT safe. Caller owns returned value.
*
- * Returns: (transfer full): a #GstIterator of #GstElement, or %NULL
+ * Returns: (transfer full) (nullable): a #GstIterator of #GstElement,
+ * or %NULL
*/
GstIterator *
gst_bin_iterate_elements (GstBin * bin)
@@ -1673,7 +1674,8 @@ iterate_child_recurse (GstIterator * it, const GValue * item)
*
* MT safe. Caller owns returned value.
*
- * Returns: (transfer full): a #GstIterator of #GstElement, or %NULL
+ * Returns: (transfer full) (nullable): a #GstIterator of #GstElement,
+ * or %NULL
*/
GstIterator *
gst_bin_iterate_recurse (GstBin * bin)
@@ -1730,7 +1732,8 @@ sink_iterator_filter (const GValue * vchild, GValue * vbin)
*
* MT safe. Caller owns returned value.
*
- * Returns: (transfer full): a #GstIterator of #GstElement, or %NULL
+ * Returns: (transfer full) (nullable): a #GstIterator of #GstElement,
+ * or %NULL
*/
GstIterator *
gst_bin_iterate_sinks (GstBin * bin)
@@ -1790,7 +1793,8 @@ src_iterator_filter (const GValue * vchild, GValue * vbin)
*
* MT safe. Caller owns returned value.
*
- * Returns: (transfer full): a #GstIterator of #GstElement, or %NULL
+ * Returns: (transfer full) (nullable): a #GstIterator of #GstElement,
+ * or %NULL
*/
GstIterator *
gst_bin_iterate_sources (GstBin * bin)
@@ -2166,7 +2170,8 @@ gst_bin_sort_iterator_new (GstBin * bin)
*
* MT safe. Caller owns returned value.
*
- * Returns: (transfer full): a #GstIterator of #GstElement, or %NULL
+ * Returns: (transfer full) (nullable): a #GstIterator of #GstElement,
+ * or %NULL
*/
GstIterator *
gst_bin_iterate_sorted (GstBin * bin)
@@ -4126,7 +4131,8 @@ compare_name (const GValue * velement, const gchar * name)
*
* MT safe. Caller owns returned reference.
*
- * Returns: (transfer full): the #GstElement with the given name, or %NULL
+ * Returns: (transfer full) (nullable): the #GstElement with the given
+ * name, or %NULL
*/
GstElement *
gst_bin_get_by_name (GstBin * bin, const gchar * name)
@@ -4169,7 +4175,8 @@ gst_bin_get_by_name (GstBin * bin, const gchar * name)
*
* MT safe. Caller owns returned reference.
*
- * Returns: (transfer full): the #GstElement with the given name, or %NULL
+ * Returns: (transfer full) (nullable): the #GstElement with the given
+ * name, or %NULL
*/
GstElement *
gst_bin_get_by_name_recurse_up (GstBin * bin, const gchar * name)
@@ -4269,8 +4276,9 @@ gst_bin_get_by_interface (GstBin * bin, GType iface)
*
* MT safe. Caller owns returned value.
*
- * Returns: (transfer full): a #GstIterator of #GstElement for all elements
- * in the bin implementing the given interface, or %NULL
+ * Returns: (transfer full) (nullable): a #GstIterator of #GstElement
+ * for all elements in the bin implementing the given interface,
+ * or %NULL
*/
GstIterator *
gst_bin_iterate_all_by_interface (GstBin * bin, GType iface)
diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c
index 8aef1c2..24efc56 100644
--- a/gst/gstbuffer.c
+++ b/gst/gstbuffer.c
@@ -650,8 +650,8 @@ gst_buffer_new (void)
*
* MT safe.
*
- * Returns: (transfer full): a new #GstBuffer, or %NULL if the memory couldn't
- * be allocated.
+ * Returns: (transfer full) (nullable): a new #GstBuffer, or %NULL if
+ * the memory couldn't be allocated.
*/
GstBuffer *
gst_buffer_new_allocate (GstAllocator * allocator, gsize size,
@@ -1235,8 +1235,8 @@ gst_buffer_is_all_memory_writable (GstBuffer * buffer)
/**
* gst_buffer_get_sizes:
* @buffer: a #GstBuffer.
- * @offset: (out): a pointer to the offset
- * @maxsize: (out): a pointer to the maxsize
+ * @offset: (out) (allow-none): a pointer to the offset
+ * @maxsize: (out) (allow-none): a pointer to the maxsize
*
* Get the total size of the memory blocks in @b.
*
@@ -1273,8 +1273,8 @@ gst_buffer_get_size (GstBuffer * buffer)
* @buffer: a #GstBuffer.
* @idx: an index
* @length: a length
- * @offset: (out): a pointer to the offset
- * @maxsize: (out): a pointer to the maxsize
+ * @offset: (out) (allow-none): a pointer to the offset
+ * @maxsize: (out) (allow-none): a pointer to the maxsize
*
* Get the total size of @length memory blocks stating from @idx in @buffer.
*
@@ -1934,7 +1934,8 @@ gst_buffer_append_region (GstBuffer * buf1, GstBuffer * buf2, gssize offset,
* Get the metadata for @api on buffer. When there is no such
* metadata, %NULL is returned.
*
- * Returns: (transfer none): the metadata for @api on @buffer.
+ * Returns: (transfer none) (nullable): the metadata for @api on
+ * @buffer.
*/
GstMeta *
gst_buffer_get_meta (GstBuffer * buffer, GType api)
@@ -2063,8 +2064,8 @@ gst_buffer_remove_meta (GstBuffer * buffer, GstMeta * meta)
*
* @state will be updated with an opaque state pointer
*
- * Returns: (transfer none): The next #GstMeta or %NULL when there are
- * no more items.
+ * Returns: (transfer none) (nullable): The next #GstMeta or %NULL
+ * when there are no more items.
*/
GstMeta *
gst_buffer_iterate_meta (GstBuffer * buffer, gpointer * state)
diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h
index 0ebf142..643db7d 100644
--- a/gst/gstbuffer.h
+++ b/gst/gstbuffer.h
@@ -457,8 +457,8 @@ gboolean gst_buffer_copy_into (GstBuffer *dest, GstBuffer *src
/**
* gst_buffer_replace:
- * @obuf: (inout) (transfer full): pointer to a pointer to a #GstBuffer to be
- * replaced.
+ * @obuf: (inout) (transfer full) (nullable): pointer to a pointer to
+ * a #GstBuffer to be replaced.
* @nbuf: (transfer none) (allow-none): pointer to a #GstBuffer that will
* replace the buffer pointed to by @obuf.
*
@@ -496,7 +496,7 @@ GstBuffer* gst_buffer_append (GstBuffer *buf1, GstBuffer *buf
/**
* GstBufferForeachMetaFunc:
* @buffer: a #GstBuffer
- * @meta: a pointer to a #GstMeta
+ * @meta: (out) (nullable): a pointer to a #GstMeta
* @user_data: user data passed to gst_buffer_foreach_meta()
*
* A function that will be called from gst_buffer_foreach_meta(). The @meta
diff --git a/gst/gstbufferlist.c b/gst/gstbufferlist.c
index dca866c..7b8558c 100644
--- a/gst/gstbufferlist.c
+++ b/gst/gstbufferlist.c
@@ -227,8 +227,9 @@ gst_buffer_list_foreach (GstBufferList * list, GstBufferListFunc func,
*
* Get the buffer at @idx.
*
- * Returns: (transfer none): the buffer at @idx in @group or %NULL when there
- * is no buffer. The buffer remains valid as long as @list is valid.
+ * Returns: (transfer none) (nullable): the buffer at @idx in @group
+ * or %NULL when there is no buffer. The buffer remains valid as
+ * long as @list is valid.
*/
GstBuffer *
gst_buffer_list_get (GstBufferList * list, guint idx)
diff --git a/gst/gstbufferlist.h b/gst/gstbufferlist.h
index df8c455..e5ddb08 100644
--- a/gst/gstbufferlist.h
+++ b/gst/gstbufferlist.h
@@ -38,7 +38,7 @@ typedef struct _GstBufferList GstBufferList;
/**
* GstBufferListFunc:
- * @buffer: pointer the buffer
+ * @buffer: (out) (nullable): pointer the buffer
* @idx: the index of @buffer
* @user_data: user data passed to gst_buffer_list_foreach()
*
diff --git a/gst/gstbufferpool.c b/gst/gstbufferpool.c
index 6c14ce4..92f6648 100644
--- a/gst/gstbufferpool.c
+++ b/gst/gstbufferpool.c
@@ -823,8 +823,8 @@ gst_buffer_pool_config_set_params (GstStructure * config, GstCaps * caps,
/**
* gst_buffer_pool_config_set_allocator:
* @config: a #GstBufferPool configuration
- * @allocator: a #GstAllocator
- * @params: #GstAllocationParams
+ * @allocator: (allow-none): a #GstAllocator
+ * @params: (allow-none): #GstAllocationParams
*
* Set the @allocator and @params on @config.
*
diff --git a/gst/gstbus.c b/gst/gstbus.c
index 69cf6b9..0d784e1 100644
--- a/gst/gstbus.c
+++ b/gst/gstbus.c
@@ -467,10 +467,11 @@ gst_bus_set_flushing (GstBus * bus, gboolean flushing)
* @timeout is #GST_CLOCK_TIME_NONE, this function will block forever until a
* matching message was posted on the bus.
*
- * Returns: (transfer full): a #GstMessage matching the filter in @types,
- * or %NULL if no matching message was found on the bus until the timeout
- * expired. The message is taken from the bus and needs to be unreffed
- * with gst_message_unref() after usage.
+ * Returns: (transfer full) (nullable): a #GstMessage matching the
+ * filter in @types, or %NULL if no matching message was found on
+ * the bus until the timeout expired. The message is taken from
+ * the bus and needs to be unreffed with gst_message_unref() after
+ * usage.
*
* MT safe.
*/
@@ -568,10 +569,10 @@ beach:
* #GST_CLOCK_TIME_NONE, this function will block forever until a message was
* posted on the bus.
*
- * Returns: (transfer full): the #GstMessage that is on the bus after the
- * specified timeout or %NULL if the bus is empty after the timeout expired.
- * The message is taken from the bus and needs to be unreffed with
- * gst_message_unref() after usage.
+ * Returns: (transfer full) (nullable): the #GstMessage that is on the
+ * bus after the specified timeout or %NULL if the bus is empty
+ * after the timeout expired. The message is taken from the bus
+ * and needs to be unreffed with gst_message_unref() after usage.
*
* MT safe.
*/
@@ -594,10 +595,10 @@ gst_bus_timed_pop (GstBus * bus, GstClockTime timeout)
* the bus, all messages will be discarded. It is not possible to use message
* enums beyond #GST_MESSAGE_EXTENDED in the @events mask.
*
- * Returns: (transfer full): the next #GstMessage matching @type that is on
- * the bus, or %NULL if the bus is empty or there is no message matching
- * @type. The message is taken from the bus and needs to be unreffed with
- * gst_message_unref() after usage.
+ * Returns: (transfer full) (nullable): the next #GstMessage matching
+ * @type that is on the bus, or %NULL if the bus is empty or there
+ * is no message matching @type. The message is taken from the bus
+ * and needs to be unreffed with gst_message_unref() after usage.
*
* MT safe.
*/
@@ -616,9 +617,10 @@ gst_bus_pop_filtered (GstBus * bus, GstMessageType types)
*
* Get a message from the bus.
*
- * Returns: (transfer full): the #GstMessage that is on the bus, or %NULL if the
- * bus is empty. The message is taken from the bus and needs to be unreffed
- * with gst_message_unref() after usage.
+ * Returns: (transfer full) (nullable): the #GstMessage that is on the
+ * bus, or %NULL if the bus is empty. The message is taken from
+ * the bus and needs to be unreffed with gst_message_unref() after
+ * usage.
*
* MT safe.
*/
@@ -638,8 +640,8 @@ gst_bus_pop (GstBus * bus)
* on the bus' message queue. A reference is returned, and needs to be unreffed
* by the caller.
*
- * Returns: (transfer full): the #GstMessage that is on the bus, or %NULL if the
- * bus is empty.
+ * Returns: (transfer full) (nullable): the #GstMessage that is on the
+ * bus, or %NULL if the bus is empty.
*
* MT safe.
*/
@@ -1054,9 +1056,10 @@ poll_destroy_timeout (GstBusPollData * poll_data)
* better handled by setting up an asynchronous bus watch and doing things
* from there.
*
- * Returns: (transfer full): the message that was received, or %NULL if the
- * poll timed out. The message is taken from the bus and needs to be
- * unreffed with gst_message_unref() after usage.
+ * Returns: (transfer full) (nullable): the message that was received,
+ * or %NULL if the poll timed out. The message is taken from the
+ * bus and needs to be unreffed with gst_message_unref() after
+ * usage.
*/
GstMessage *
gst_bus_poll (GstBus * bus, GstMessageType events, GstClockTime timeout)
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index 4525ead..51f7ae4 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -901,8 +901,10 @@ gst_caps_set_features (GstCaps * caps, guint index, GstCapsFeatures * features)
if (features)
gst_caps_features_set_parent_refcount (features, &GST_CAPS_REFCOUNT (caps));
- if (old)
+ if (old) {
+ gst_caps_features_set_parent_refcount (old, NULL);
gst_caps_features_free (old);
+ }
}
/**
diff --git a/gst/gstcaps.h b/gst/gstcaps.h
index e29da34..2acf84c 100644
--- a/gst/gstcaps.h
+++ b/gst/gstcaps.h
@@ -288,8 +288,8 @@ gst_caps_copy (const GstCaps * caps)
/**
* gst_caps_replace:
- * @old_caps: (inout) (transfer full): pointer to a pointer to a #GstCaps to be
- * replaced.
+ * @old_caps: (inout) (transfer full) (nullable): pointer to a pointer
+ * to a #GstCaps to be replaced.
* @new_caps: (transfer none) (allow-none): pointer to a #GstCaps that will
* replace the caps pointed to by @ocaps.
*
diff --git a/gst/gstcapsfeatures.c b/gst/gstcapsfeatures.c
index e1e8f90..dade216 100644
--- a/gst/gstcapsfeatures.c
+++ b/gst/gstcapsfeatures.c
@@ -471,8 +471,9 @@ priv_gst_caps_features_append_to_gstring (const GstCapsFeatures * features,
*
* Free-function: gst_caps_features_free
*
- * Returns: (transfer full): a new #GstCapsFeatures or %NULL when the string could
- * not be parsed. Free with gst_caps_features_free() after use.
+ * Returns: (transfer full) (nullable): a new #GstCapsFeatures or
+ * %NULL when the string could not be parsed. Free with
+ * gst_caps_features_free() after use.
*
* Since: 1.2
*/
diff --git a/gst/gstchildproxy.c b/gst/gstchildproxy.c
index a83356a..f2a2595 100644
--- a/gst/gstchildproxy.c
+++ b/gst/gstchildproxy.c
@@ -108,8 +108,8 @@ gst_child_proxy_default_get_child_by_name (GstChildProxy * parent,
* together with gst_object_get_name(). If the interface is to be used with
* #GObjects, this methods needs to be overridden.
*
- * Returns: (transfer full): the child object or %NULL if not found. Unref
- * after usage.
+ * Returns: (transfer full) (nullable): the child object or %NULL if
+ * not found. Unref after usage.
*
* MT safe.
*/
@@ -129,8 +129,8 @@ gst_child_proxy_get_child_by_name (GstChildProxy * parent, const gchar * name)
*
* Fetches a child by its number.
*
- * Returns: (transfer full): the child object or %NULL if not found (index
- * too high). Unref after usage.
+ * Returns: (transfer full) (nullable): the child object or %NULL if
+ * not found (index too high). Unref after usage.
*
* MT safe.
*/
diff --git a/gst/gstclock.c b/gst/gstclock.c
index 9f5b6fd..d413dff 100644
--- a/gst/gstclock.c
+++ b/gst/gstclock.c
@@ -1204,8 +1204,9 @@ not_supported:
* Get the master clock that @clock is slaved to or %NULL when the clock is
* not slaved to any master clock.
*
- * Returns: (transfer full): a master #GstClock or %NULL when this clock is
- * not slaved to a master clock. Unref after usage.
+ * Returns: (transfer full) (nullable): a master #GstClock or %NULL
+ * when this clock is not slaved to a master clock. Unref after
+ * usage.
*
* MT safe.
*/
diff --git a/gst/gstcontrolbinding.c b/gst/gstcontrolbinding.c
index 4981c89..9e02a47 100644
--- a/gst/gstcontrolbinding.c
+++ b/gst/gstcontrolbinding.c
@@ -259,8 +259,8 @@ gst_control_binding_sync_values (GstControlBinding * binding,
*
* Gets the value for the given controlled property at the requested time.
*
- * Returns: the GValue of the property at the given time, or %NULL if the
- * property isn't controlled.
+ * Returns: (nullable): the GValue of the property at the given time,
+ * or %NULL if the property isn't controlled.
*/
GValue *
gst_control_binding_get_value (GstControlBinding * binding,
diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c
index d21cca4..8c0eda5 100644
--- a/gst/gstdatetime.c
+++ b/gst/gstdatetime.c
@@ -76,7 +76,8 @@ static void gst_date_time_free (GstDateTime * datetime);
*
* Free-function: gst_date_time_unref
*
- * Returns: (transfer full): a newly created #GstDateTime, or %NULL on error
+ * Returns: (transfer full) (nullable): a newly created #GstDateTime,
+ * or %NULL on error
*/
GstDateTime *
gst_date_time_new_from_g_date_time (GDateTime * dt)
@@ -104,7 +105,8 @@ gst_date_time_new_from_g_date_time (GDateTime * dt)
*
* Free-function: g_date_time_unref
*
- * Returns: (transfer full): a newly created #GDateTime, or %NULL on error
+ * Returns: (transfer full) (nullable): a newly created #GDateTime, or
+ * %NULL on error
*/
GDateTime *
gst_date_time_to_g_date_time (GstDateTime * datetime)
@@ -725,9 +727,10 @@ done:
* are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
* 2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100
*
- * Returns: a newly allocated string formatted according to ISO 8601 and
- * only including the datetime fields that are valid, or %NULL in case
- * there was an error. The string should be freed with g_free().
+ * Returns: (nullable): a newly allocated string formatted according
+ * to ISO 8601 and only including the datetime fields that are
+ * valid, or %NULL in case there was an error. The string should
+ * be freed with g_free().
*/
gchar *
gst_date_time_to_iso8601_string (GstDateTime * datetime)
@@ -749,7 +752,8 @@ gst_date_time_to_iso8601_string (GstDateTime * datetime)
*
* Free-function: gst_date_time_unref
*
- * Returns: (transfer full): a newly created #GstDateTime, or %NULL on error
+ * Returns: (transfer full) (nullable): a newly created #GstDateTime,
+ * or %NULL on error
*/
GstDateTime *
gst_date_time_new_from_iso8601_string (const gchar * string)
diff --git a/gst/gstdevice.c b/gst/gstdevice.c
index 9119ba9..08404bb 100644
--- a/gst/gstdevice.c
+++ b/gst/gstdevice.c
@@ -22,13 +22,13 @@
/**
* SECTION:gstdevice
* @short_description: Object representing a device
- * @see_also: #GstDeviceMonitor
+ * @see_also: #GstDeviceProvider
*
* #GstDevice are objects representing a device, they contain
* relevant metadata about the device, such as its class and the #GstCaps
* representing the media types it can produce or handle.
*
- * #GstDevice are created by #GstDeviceMonitor objects which can be
+ * #GstDevice are created by #GstDeviceProvider objects which can be
* aggregated by #GstGlobalDeviceMonitor objects.
*
* Since: 1.4
@@ -190,6 +190,8 @@ gst_device_create_element (GstDevice * device, const gchar * name)
{
GstDeviceClass *klass = GST_DEVICE_GET_CLASS (device);
+ g_return_val_if_fail (GST_IS_DEVICE (device), NULL);
+
if (klass->create_element)
return klass->create_element (device, name);
else
@@ -210,6 +212,8 @@ gst_device_create_element (GstDevice * device, const gchar * name)
GstCaps *
gst_device_get_caps (GstDevice * device)
{
+ g_return_val_if_fail (GST_IS_DEVICE (device), NULL);
+
if (device->priv->caps)
return gst_caps_ref (device->priv->caps);
else
@@ -229,6 +233,8 @@ gst_device_get_caps (GstDevice * device)
gchar *
gst_device_get_display_name (GstDevice * device)
{
+ g_return_val_if_fail (GST_IS_DEVICE (device), NULL);
+
return
g_strdup (device->priv->display_name ? device->priv->display_name : "");
}
@@ -239,7 +245,7 @@ gst_device_get_display_name (GstDevice * device)
*
* Gets the "class" of a device. This is a "/" separated list of
* classes that represent this device. They are a subset of the
- * classes of the #GstDeviceMonitor that produced this device.
+ * classes of the #GstDeviceProvider that produced this device.
*
* Returns: The device class. Free with g_free() after use.
*
@@ -248,6 +254,8 @@ gst_device_get_display_name (GstDevice * device)
gchar *
gst_device_get_device_class (GstDevice * device)
{
+ g_return_val_if_fail (GST_IS_DEVICE (device), NULL);
+
if (device->priv->device_class != NULL)
return g_strdup (device->priv->device_class);
else
@@ -276,6 +284,8 @@ gst_device_reconfigure_element (GstDevice * device, GstElement * element)
{
GstDeviceClass *klass = GST_DEVICE_GET_CLASS (device);
+ g_return_val_if_fail (GST_IS_DEVICE (device), FALSE);
+
if (klass->reconfigure_element)
return klass->reconfigure_element (device, element);
else
@@ -299,6 +309,8 @@ gst_device_has_classesv (GstDevice * device, gchar ** classes)
{
g_return_val_if_fail (GST_IS_DEVICE (device), FALSE);
+ if (!classes)
+ return TRUE;
for (; classes[0]; classes++) {
const gchar *found;
@@ -340,6 +352,11 @@ gst_device_has_classes (GstDevice * device, const gchar * classes)
gchar **classesv;
gboolean res;
+ g_return_val_if_fail (GST_IS_DEVICE (device), FALSE);
+
+ if (!classes)
+ return TRUE;
+
classesv = g_strsplit (classes, "/", 0);
res = gst_device_has_classesv (device, classesv);
diff --git a/gst/gstdevicemonitor.c b/gst/gstdevicemonitor.c
index 6fabe11..e193661 100644
--- a/gst/gstdevicemonitor.c
+++ b/gst/gstdevicemonitor.c
@@ -1,7 +1,7 @@
/* GStreamer
- * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com>
+ * Copyright (C) 2013 Olivier Crete <olivier.crete@collabora.com>
*
- * gstdevicemonitor.c: Device probing and monitoring
+ * gstdevicemonitor.c: device monitor
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -22,321 +22,228 @@
/**
* SECTION:gstdevicemonitor
* @short_description: A device monitor and prober
- * @see_also: #GstDevice, #GstGlobalDeviceMonitor
- *
- * A #GstDeviceMonitor subclass is provided by a plugin that handles devices
- * if there is a way to programatically list connected devices. It can also
- * optionally provide updates to the list of connected devices.
- *
- * Each #GstDeviceMonitor subclass is a singleton, a plugin should
- * normally provide a single subclass for all devices.
- *
- * Applications would normally use a #GstGlobalDeviceMonitor to monitor devices
- * from all revelant monitors.
+ * @see_also: #GstDevice, #GstDeviceProvider
+ *
+ * Applications should create a #GstDeviceMonitor when they want
+ * to probe, list and monitor devices of a specific type. The
+ * #GstDeviceMonitor will create the appropriate
+ * #GstDeviceProvider objects and manage them. It will then post
+ * messages on its #GstBus for devices that have been added and
+ * removed.
+ *
+ * The device monitor will monitor all devices matching the filters that
+ * the application has set.
+ *
+ *
+ * The basic use pattern of a device monitor is as follows:
+ * |[
+ * static gboolean
+ * my_bus_func (GstBus * bus, GstMessage * message, gpointer user_data)
+ * {
+ * GstDevice *device;
+ * gchar name;
+ *
+ * switch (GST_MESSAGE_TYPE (message)) {
+ * case GST_MESSAGE_DEVICE_ADDED:
+ * gst_message_parse_device_added (message, &device);
+ * name = gst_device_get_display_name (device);
+ * g_print("Device added: %s\n", name);
+ * g_free (name);
+ * break;
+ * case GST_MESSAGE_DEVICE_REMOVED:
+ * gst_message_parse_device_removed (message, &device);
+ * name = gst_device_get_display_name (device);
+ * g_print("Device removed: %s\n", name);
+ * g_free (name);
+ * break;
+ * default:
+ * break;
+ * }
+ *
+ * return G_SOURCE_CONTINUE;
+ * }
+ *
+ * GstDeviceMonitor *
+ * setup_raw_video_source_device_monitor (void) {
+ * GstDeviceMonitor *monitor;
+ * GstBus *bus;
+ * GstCaps *caps;
+ *
+ * monitor = gst_device_monitor_new ();
+ *
+ * bus = gst_device_monitor_get_bus (monitor);
+ * gst_bus_add_watch (bus, my_bus_func, NULL);
+ * gst_object_unref (bus);
+ *
+ * caps = gst_caps_new_simple_empty ("video/x-raw");
+ * gst_device_monitor_add_filter (monitor, "Video/Source", caps);
+ * gst_caps_unref (caps);
+ *
+ * gst_device_monitor_start (monitor);
+ *
+ * return monitor;
+ * }
+ * ]|
*
* Since: 1.4
*/
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "gst_private.h"
-
#include "gstdevicemonitor.h"
-#include "gstelementmetadata.h"
-#include "gstquark.h"
-
struct _GstDeviceMonitorPrivate
{
+ gboolean started;
+
GstBus *bus;
- GMutex start_lock;
+ GPtrArray *providers;
+ guint cookie;
- gboolean started_count;
-};
+ GPtrArray *filters;
-/* this is used in gstelementfactory.c:gst_element_register() */
-GQuark __gst_devicemonitorclass_factory = 0;
+ guint last_id;
+};
-static void gst_device_monitor_class_init (GstDeviceMonitorClass * klass);
-static void gst_device_monitor_init (GstDeviceMonitor * element);
-static void gst_device_monitor_base_class_init (gpointer g_class);
-static void gst_device_monitor_base_class_finalize (gpointer g_class);
-static void gst_device_monitor_dispose (GObject * object);
-static void gst_device_monitor_finalize (GObject * object);
-static gpointer gst_device_monitor_parent_class = NULL;
+G_DEFINE_TYPE (GstDeviceMonitor, gst_device_monitor, GST_TYPE_OBJECT);
-GType
-gst_device_monitor_get_type (void)
-{
- static volatile gsize gst_device_monitor_type = 0;
-
- if (g_once_init_enter (&gst_device_monitor_type)) {
- GType _type;
- static const GTypeInfo element_info = {
- sizeof (GstDeviceMonitorClass),
- gst_device_monitor_base_class_init,
- gst_device_monitor_base_class_finalize,
- (GClassInitFunc) gst_device_monitor_class_init,
- NULL,
- NULL,
- sizeof (GstDeviceMonitor),
- 0,
- (GInstanceInitFunc) gst_device_monitor_init,
- NULL
- };
-
- _type = g_type_register_static (GST_TYPE_OBJECT, "GstDeviceMonitor",
- &element_info, G_TYPE_FLAG_ABSTRACT);
-
- __gst_devicemonitorclass_factory =
- g_quark_from_static_string ("GST_DEVICEMONITORCLASS_FACTORY");
- g_once_init_leave (&gst_device_monitor_type, _type);
- }
- return gst_device_monitor_type;
-}
+static void gst_device_monitor_dispose (GObject * object);
-static void
-gst_device_monitor_base_class_init (gpointer g_class)
+struct DeviceFilter
{
- GstDeviceMonitorClass *klass = GST_DEVICE_MONITOR_CLASS (g_class);
+ guint id;
- /* Copy the element details here so elements can inherit the
- * details from their base class and classes only need to set
- * the details in class_init instead of base_init */
- klass->metadata =
- klass->metadata ? gst_structure_copy (klass->metadata) :
- gst_structure_new_empty ("metadata");
-
- klass->factory = g_type_get_qdata (G_TYPE_FROM_CLASS (klass),
- __gst_devicemonitorclass_factory);
-}
+ gchar **classesv;
+ GstCaps *caps;
+};
static void
-gst_device_monitor_base_class_finalize (gpointer g_class)
+device_filter_free (struct DeviceFilter *filter)
{
- GstDeviceMonitorClass *klass = GST_DEVICE_MONITOR_CLASS (g_class);
+ g_strfreev (filter->classesv);
+ gst_caps_unref (filter->caps);
- gst_structure_free (klass->metadata);
+ g_slice_free (struct DeviceFilter, filter);
}
static void
gst_device_monitor_class_init (GstDeviceMonitorClass * klass)
{
- GObjectClass *gobject_class = (GObjectClass *) klass;
-
- gst_device_monitor_parent_class = g_type_class_peek_parent (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
g_type_class_add_private (klass, sizeof (GstDeviceMonitorPrivate));
- gobject_class->dispose = gst_device_monitor_dispose;
- gobject_class->finalize = gst_device_monitor_finalize;
+ object_class->dispose = gst_device_monitor_dispose;
}
static void
-gst_device_monitor_init (GstDeviceMonitor * monitor)
+bus_sync_message (GstBus * bus, GstMessage * message,
+ GstDeviceMonitor * monitor)
{
- monitor->priv = G_TYPE_INSTANCE_GET_PRIVATE (monitor,
- GST_TYPE_DEVICE_MONITOR, GstDeviceMonitorPrivate);
-
- g_mutex_init (&monitor->priv->start_lock);
+ GstMessageType type = GST_MESSAGE_TYPE (message);
- monitor->priv->bus = gst_bus_new ();
- gst_bus_set_flushing (monitor->priv->bus, TRUE);
-}
+ if (type == GST_MESSAGE_DEVICE_ADDED || type == GST_MESSAGE_DEVICE_REMOVED) {
+ gboolean matches;
+ GstDevice *device;
+ if (type == GST_MESSAGE_DEVICE_ADDED)
+ gst_message_parse_device_added (message, &device);
+ else
+ gst_message_parse_device_removed (message, &device);
-static void
-gst_device_monitor_dispose (GObject * object)
-{
- GstDeviceMonitor *monitor = GST_DEVICE_MONITOR (object);
-
- gst_object_replace ((GstObject **) & monitor->priv->bus, NULL);
+ GST_OBJECT_LOCK (monitor);
+ if (monitor->priv->filters->len) {
+ guint i;
+
+ for (i = 0; i < monitor->priv->filters->len; i++) {
+ struct DeviceFilter *filter =
+ g_ptr_array_index (monitor->priv->filters, i);
+ GstCaps *caps;
+
+ caps = gst_device_get_caps (device);
+ matches = gst_caps_can_intersect (filter->caps, caps) &&
+ gst_device_has_classesv (device, filter->classesv);
+ gst_caps_unref (caps);
+ if (matches)
+ break;
+ }
+ } else {
+ matches = TRUE;
+ }
+ GST_OBJECT_UNLOCK (monitor);
- GST_OBJECT_LOCK (monitor);
- g_list_free_full (monitor->devices, (GDestroyNotify) gst_object_unparent);
- monitor->devices = NULL;
- GST_OBJECT_UNLOCK (monitor);
+ gst_object_unref (device);
- G_OBJECT_CLASS (gst_device_monitor_parent_class)->dispose (object);
+ if (matches)
+ gst_bus_post (monitor->priv->bus, gst_message_ref (message));
+ }
}
+
static void
-gst_device_monitor_finalize (GObject * object)
+gst_device_monitor_init (GstDeviceMonitor * self)
{
- GstDeviceMonitor *monitor = GST_DEVICE_MONITOR (object);
-
- g_mutex_clear (&monitor->priv->start_lock);
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
+ GST_TYPE_DEVICE_MONITOR, GstDeviceMonitorPrivate);
- G_OBJECT_CLASS (gst_device_monitor_parent_class)->finalize (object);
-}
+ self->priv->bus = gst_bus_new ();
+ gst_bus_set_flushing (self->priv->bus, TRUE);
-/**
- * gst_device_monitor_class_add_metadata:
- * @klass: class to set metadata for
- * @key: the key to set
- * @value: the value to set
- *
- * Set @key with @value as metadata in @klass.
- */
-void
-gst_device_monitor_class_add_metadata (GstDeviceMonitorClass * klass,
- const gchar * key, const gchar * value)
-{
- g_return_if_fail (GST_IS_DEVICE_MONITOR_CLASS (klass));
- g_return_if_fail (key != NULL);
- g_return_if_fail (value != NULL);
+ self->priv->providers = g_ptr_array_new ();
+ self->priv->filters = g_ptr_array_new_with_free_func (
+ (GDestroyNotify) device_filter_free);
- gst_structure_set ((GstStructure *) klass->metadata,
- key, G_TYPE_STRING, value, NULL);
+ self->priv->last_id = 1;
}
-/**
- * gst_device_monitor_class_add_static_metadata:
- * @klass: class to set metadata for
- * @key: the key to set
- * @value: the value to set
- *
- * Set @key with @value as metadata in @klass.
- *
- * Same as gst_device_monitor_class_add_metadata(), but @value must be a static string
- * or an inlined string, as it will not be copied. (GStreamer plugins will
- * be made resident once loaded, so this function can be used even from
- * dynamically loaded plugins.)
- *
- * Since: 1.4
- */
-void
-gst_device_monitor_class_add_static_metadata (GstDeviceMonitorClass * klass,
- const gchar * key, const gchar * value)
+
+static void
+gst_device_monitor_remove (GstDeviceMonitor * self, guint i)
{
- GValue val = G_VALUE_INIT;
+ GstDeviceProvider *provider = g_ptr_array_index (self->priv->providers, i);
+ GstBus *bus;
- g_return_if_fail (GST_IS_DEVICE_MONITOR_CLASS (klass));
- g_return_if_fail (key != NULL);
- g_return_if_fail (value != NULL);
+ g_ptr_array_remove_index_fast (self->priv->providers, i);
- g_value_init (&val, G_TYPE_STRING);
- g_value_set_static_string (&val, value);
- gst_structure_take_value ((GstStructure *) klass->metadata, key, &val);
-}
+ bus = gst_device_provider_get_bus (provider);
+ g_signal_handlers_disconnect_by_func (bus, bus_sync_message, self);
+ gst_object_unref (bus);
-/**
- * gst_device_monitor_class_set_metadata:
- * @klass: class to set metadata for
- * @longname: The long English name of the device monitor. E.g. "File Sink"
- * @classification: String describing the type of device monitor, as an unordered list
- * separated with slashes ('/'). See draft-klass.txt of the design docs
- * for more details and common types. E.g: "Sink/File"
- * @description: Sentence describing the purpose of the device monitor.
- * E.g: "Write stream to a file"
- * @author: Name and contact details of the author(s). Use \n to separate
- * multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"
- *
- * Sets the detailed information for a #GstDeviceMonitorClass.
- * <note>This function is for use in _class_init functions only.</note>
- *
- * Since: 1.4
- */
-void
-gst_device_monitor_class_set_metadata (GstDeviceMonitorClass * klass,
- const gchar * longname, const gchar * classification,
- const gchar * description, const gchar * author)
-{
- g_return_if_fail (GST_IS_DEVICE_MONITOR_CLASS (klass));
- g_return_if_fail (longname != NULL && *longname != '\0');
- g_return_if_fail (classification != NULL && *classification != '\0');
- g_return_if_fail (description != NULL && *description != '\0');
- g_return_if_fail (author != NULL && *author != '\0');
-
- gst_structure_id_set ((GstStructure *) klass->metadata,
- GST_QUARK (ELEMENT_METADATA_LONGNAME), G_TYPE_STRING, longname,
- GST_QUARK (ELEMENT_METADATA_KLASS), G_TYPE_STRING, classification,
- GST_QUARK (ELEMENT_METADATA_DESCRIPTION), G_TYPE_STRING, description,
- GST_QUARK (ELEMENT_METADATA_AUTHOR), G_TYPE_STRING, author, NULL);
+ gst_object_unref (provider);
}
-/**
- * gst_device_monitor_class_set_static_metadata:
- * @klass: class to set metadata for
- * @longname: The long English name of the element. E.g. "File Sink"
- * @classification: String describing the type of element, as an unordered list
- * separated with slashes ('/'). See draft-klass.txt of the design docs
- * for more details and common types. E.g: "Sink/File"
- * @description: Sentence describing the purpose of the element.
- * E.g: "Write stream to a file"
- * @author: Name and contact details of the author(s). Use \n to separate
- * multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"
- *
- * Sets the detailed information for a #GstDeviceMonitorClass.
- * <note>This function is for use in _class_init functions only.</note>
- *
- * Same as gst_device_monitor_class_set_metadata(), but @longname, @classification,
- * @description, and @author must be static strings or inlined strings, as
- * they will not be copied. (GStreamer plugins will be made resident once
- * loaded, so this function can be used even from dynamically loaded plugins.)
- *
- * Since: 1.4
- */
-void
-gst_device_monitor_class_set_static_metadata (GstDeviceMonitorClass * klass,
- const gchar * longname, const gchar * classification,
- const gchar * description, const gchar * author)
+static void
+gst_device_monitor_dispose (GObject * object)
{
- GstStructure *s = (GstStructure *) klass->metadata;
- GValue val = G_VALUE_INIT;
+ GstDeviceMonitor *self = GST_DEVICE_MONITOR (object);
- g_return_if_fail (GST_IS_DEVICE_MONITOR_CLASS (klass));
- g_return_if_fail (longname != NULL && *longname != '\0');
- g_return_if_fail (classification != NULL && *classification != '\0');
- g_return_if_fail (description != NULL && *description != '\0');
- g_return_if_fail (author != NULL && *author != '\0');
+ g_return_if_fail (self->priv->started == FALSE);
- g_value_init (&val, G_TYPE_STRING);
-
- g_value_set_static_string (&val, longname);
- gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_LONGNAME), &val);
-
- g_value_set_static_string (&val, classification);
- gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_KLASS), &val);
-
- g_value_set_static_string (&val, description);
- gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_DESCRIPTION),
- &val);
+ if (self->priv->providers) {
+ while (self->priv->providers->len)
+ gst_device_monitor_remove (self, self->priv->providers->len - 1);
+ g_ptr_array_unref (self->priv->providers);
+ self->priv->providers = NULL;
+ }
- g_value_set_static_string (&val, author);
- gst_structure_id_take_value (s, GST_QUARK (ELEMENT_METADATA_AUTHOR), &val);
-}
+ g_clear_pointer (&self->priv->filters, (GDestroyNotify) g_ptr_array_unref);
-/**
- * gst_device_monitor_class_get_metadata:
- * @klass: class to get metadata for
- * @key: the key to get
- *
- * Get metadata with @key in @klass.
- *
- * Returns: the metadata for @key.
- *
- * Since: 1.4
- */
-const gchar *
-gst_device_monitor_class_get_metadata (GstDeviceMonitorClass * klass,
- const gchar * key)
-{
- g_return_val_if_fail (GST_IS_DEVICE_MONITOR_CLASS (klass), NULL);
- g_return_val_if_fail (key != NULL, NULL);
+ gst_object_replace ((GstObject **) & self->priv->bus, NULL);
- return gst_structure_get_string ((GstStructure *) klass->metadata, key);
+ G_OBJECT_CLASS (gst_device_monitor_parent_class)->dispose (object);
}
/**
* gst_device_monitor_get_devices:
- * @monitor: A #GstDeviceMonitor
+ * @monitor: A #GstDeviceProvider
*
- * Gets a list of devices that this monitor understands. This may actually
+ * Gets a list of devices from all of the relevant monitors. This may actually
* probe the hardware if the monitor is not currently started.
*
* Returns: (transfer full) (element-type GstDevice): a #GList of
@@ -348,26 +255,71 @@ gst_device_monitor_class_get_metadata (GstDeviceMonitorClass * klass,
GList *
gst_device_monitor_get_devices (GstDeviceMonitor * monitor)
{
- GstDeviceMonitorClass *klass;
GList *devices = NULL;
- gboolean started;
- GList *item;
+ guint i;
+ guint cookie;
g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), NULL);
- klass = GST_DEVICE_MONITOR_GET_CLASS (monitor);
- g_mutex_lock (&monitor->priv->start_lock);
- started = (monitor->priv->started_count > 0);
+ GST_OBJECT_LOCK (monitor);
+
+ if (monitor->priv->filters->len == 0) {
+ GST_OBJECT_UNLOCK (monitor);
+ GST_WARNING_OBJECT (monitor, "No filters have been set");
+ return FALSE;
+ }
+
+ if (monitor->priv->providers->len == 0) {
+ GST_OBJECT_UNLOCK (monitor);
+ GST_WARNING_OBJECT (monitor, "No providers match the current filters");
+ return FALSE;
+ }
+
+again:
+
+ g_list_free_full (devices, gst_object_unref);
+ devices = NULL;
+
+ cookie = monitor->priv->cookie;
+
+ for (i = 0; i < monitor->priv->providers->len; i++) {
+ GList *tmpdev;
+ GstDeviceProvider *provider =
+ gst_object_ref (g_ptr_array_index (monitor->priv->providers, i));
+ GList *item;
- if (started) {
- GST_OBJECT_LOCK (monitor);
- for (item = monitor->devices; item; item = item->next)
- devices = g_list_prepend (devices, gst_object_ref (item->data));
GST_OBJECT_UNLOCK (monitor);
- } else if (klass->probe)
- devices = klass->probe (monitor);
- g_mutex_unlock (&monitor->priv->start_lock);
+ tmpdev = gst_device_provider_get_devices (provider);
+
+ GST_OBJECT_LOCK (monitor);
+
+ for (item = tmpdev; item; item = item->next) {
+ GstDevice *dev = GST_DEVICE (item->data);
+ GstCaps *caps = gst_device_get_caps (dev);
+ guint j;
+
+ for (j = 0; j < monitor->priv->filters->len; j++) {
+ struct DeviceFilter *filter =
+ g_ptr_array_index (monitor->priv->filters, j);
+ if (gst_caps_can_intersect (filter->caps, caps) &&
+ gst_device_has_classesv (dev, filter->classesv)) {
+ devices = g_list_prepend (devices, gst_object_ref (dev));
+ break;
+ }
+ }
+ gst_caps_unref (caps);
+ }
+
+ g_list_free_full (tmpdev, gst_object_unref);
+ gst_object_unref (provider);
+
+
+ if (monitor->priv->cookie != cookie)
+ goto again;
+ }
+
+ GST_OBJECT_UNLOCK (monitor);
return devices;
}
@@ -376,14 +328,9 @@ gst_device_monitor_get_devices (GstDeviceMonitor * monitor)
* gst_device_monitor_start:
* @monitor: A #GstDeviceMonitor
*
- * Starts monitoring the devices. This will cause #GST_MESSAGE_DEVICE messages
- * to be posted on the monitor's bus when devices are added or removed from
- * the system.
- *
- * Since the #GstDeviceMonitor is a singleton,
- * gst_device_monitor_start() may already have been called by another
- * user of the object, gst_device_monitor_stop() needs to be called the same
- * number of times.
+ * Starts monitoring the devices, one this has succeeded, the
+ * %GST_MESSAGE_DEVICE_ADDED and %GST_MESSAGE_DEVICE_REMOVED messages
+ * will be emitted on the bus when the list of devices changes.
*
* Returns: %TRUE if the device monitoring could be started
*
@@ -393,195 +340,273 @@ gst_device_monitor_get_devices (GstDeviceMonitor * monitor)
gboolean
gst_device_monitor_start (GstDeviceMonitor * monitor)
{
- GstDeviceMonitorClass *klass;
- gboolean ret = FALSE;
+ guint i;
g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), FALSE);
- klass = GST_DEVICE_MONITOR_GET_CLASS (monitor);
- g_mutex_lock (&monitor->priv->start_lock);
+ GST_OBJECT_LOCK (monitor);
- if (monitor->priv->started_count > 0) {
- ret = TRUE;
- goto started;
+ if (monitor->priv->filters->len == 0) {
+ GST_OBJECT_UNLOCK (monitor);
+ GST_WARNING_OBJECT (monitor, "No filters have been set, will expose all "
+ "devices found");
+ gst_device_monitor_add_filter (monitor, NULL, NULL);
+ GST_OBJECT_LOCK (monitor);
}
- if (klass->start)
- ret = klass->start (monitor);
-
- if (ret) {
- monitor->priv->started_count++;
- gst_bus_set_flushing (monitor->priv->bus, FALSE);
+ if (monitor->priv->providers->len == 0) {
+ GST_OBJECT_UNLOCK (monitor);
+ GST_WARNING_OBJECT (monitor, "No providers match the current filters");
+ return FALSE;
}
-started:
+ gst_bus_set_flushing (monitor->priv->bus, FALSE);
- g_mutex_unlock (&monitor->priv->start_lock);
+ for (i = 0; i < monitor->priv->providers->len; i++) {
+ GstDeviceProvider *provider =
+ g_ptr_array_index (monitor->priv->providers, i);
- return ret;
+ if (gst_device_provider_can_monitor (provider)) {
+ if (!gst_device_provider_start (provider)) {
+ gst_bus_set_flushing (monitor->priv->bus, TRUE);
+
+ for (; i != 0; i--)
+ gst_device_provider_stop (g_ptr_array_index (monitor->priv->providers,
+ i - 1));
+
+ GST_OBJECT_UNLOCK (monitor);
+ return FALSE;
+ }
+ }
+ }
+
+ monitor->priv->started = TRUE;
+ GST_OBJECT_UNLOCK (monitor);
+
+ return TRUE;
}
/**
* gst_device_monitor_stop:
- * @monitor: A #GstDeviceMonitor
+ * @monitor: A #GstDeviceProvider
*
- * Decreases the use-count by one. If the use count reaches zero, this
- * #GstDeviceMonitor will stop monitoring the devices. This needs to be
- * called the same number of times that gst_device_monitor_start() was called.
+ * Stops monitoring the devices.
*
* Since: 1.4
*/
-
void
gst_device_monitor_stop (GstDeviceMonitor * monitor)
{
- GstDeviceMonitorClass *klass;
+ guint i;
g_return_if_fail (GST_IS_DEVICE_MONITOR (monitor));
- klass = GST_DEVICE_MONITOR_GET_CLASS (monitor);
- g_mutex_lock (&monitor->priv->start_lock);
+ gst_bus_set_flushing (monitor->priv->bus, TRUE);
- if (monitor->priv->started_count == 1) {
- gst_bus_set_flushing (monitor->priv->bus, TRUE);
- if (klass->stop)
- klass->stop (monitor);
- GST_OBJECT_LOCK (monitor);
- g_list_free_full (monitor->devices, (GDestroyNotify) gst_object_unparent);
- monitor->devices = NULL;
- GST_OBJECT_UNLOCK (monitor);
- } else if (monitor->priv->started_count < 1) {
- g_critical ("Trying to stop a GstDeviceMonitor %s which is already stopped",
- GST_OBJECT_NAME (monitor));
+ GST_OBJECT_LOCK (monitor);
+ for (i = 0; i < monitor->priv->providers->len; i++) {
+ GstDeviceProvider *provider =
+ g_ptr_array_index (monitor->priv->providers, i);
+
+ if (gst_device_provider_can_monitor (provider))
+ gst_device_provider_stop (provider);
}
+ monitor->priv->started = FALSE;
+ GST_OBJECT_UNLOCK (monitor);
- monitor->priv->started_count--;
- g_mutex_unlock (&monitor->priv->start_lock);
}
-
/**
- * gst_device_monitor_get_factory:
- * @monitor: a #GstDeviceMonitor to request the device monitor factory of.
+ * gst_device_monitor_add_filter:
+ * @monitor: a device monitor
+ * @classes: device classes to use as filter or %NULL for any class
+ * @caps: (allow-none): the #GstCaps to filter or %NULL for ANY
*
- * Retrieves the factory that was used to create this device monitor.
+ * Adds a filter for which #GstDevice will be monitored, any device that matches
+ * all classes and the #GstCaps will be returned.
*
- * Returns: (transfer none): the #GstDeviceMonitorFactory used for creating this
- * device monitor. no refcounting is needed.
+ * Filters must be added before the #GstDeviceMonitor is started.
+ *
+ * Returns: The id of the new filter or %0 if no provider matched the filter's
+ * classes.
*
* Since: 1.4
*/
-GstDeviceMonitorFactory *
-gst_device_monitor_get_factory (GstDeviceMonitor * monitor)
+guint
+gst_device_monitor_add_filter (GstDeviceMonitor * monitor,
+ const gchar * classes, GstCaps * caps)
{
- g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), NULL);
-
- return GST_DEVICE_MONITOR_GET_CLASS (monitor)->factory;
-}
+ GList *factories = NULL;
+ struct DeviceFilter *filter;
+ guint id = 0;
+ gboolean matched = FALSE;
-/**
- * gst_device_monitor_can_monitor:
- * @monitor: a #GstDeviceMonitor
- *
- * If this function returns %TRUE, then the device monitor can monitor if
- * devices are added or removed. Otherwise, it can only do static probing.
- *
- * Returns: %TRUE if the #GstDeviceMonitor support monitoring, %FALSE otherwise
- */
-gboolean
-gst_device_monitor_can_monitor (GstDeviceMonitor * monitor)
-{
- GstDeviceMonitorClass *klass;
+ g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), 0);
+ g_return_val_if_fail (!monitor->priv->started, 0);
- g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), FALSE);
- klass = GST_DEVICE_MONITOR_GET_CLASS (monitor);
+ GST_OBJECT_LOCK (monitor);
- if (klass->start)
- return TRUE;
+ filter = g_slice_new0 (struct DeviceFilter);
+ filter->id = monitor->priv->last_id++;
+ if (caps)
+ filter->caps = gst_caps_ref (caps);
else
- return FALSE;
+ filter->caps = gst_caps_new_any ();
+ if (classes)
+ filter->classesv = g_strsplit (classes, "/", 0);
+
+ factories = gst_device_provider_factory_list_get_device_providers (1);
+
+ while (factories) {
+ GstDeviceProviderFactory *factory = factories->data;
+
+
+ if (gst_device_provider_factory_has_classesv (factory, filter->classesv)) {
+ GstDeviceProvider *provider;
+
+ provider = gst_device_provider_factory_get (factory);
+
+ if (provider) {
+ guint i;
+
+ for (i = 0; i < monitor->priv->providers->len; i++) {
+ if (g_ptr_array_index (monitor->priv->providers, i) == provider) {
+ gst_object_unref (provider);
+ provider = NULL;
+ matched = TRUE;
+ break;
+ }
+ }
+ }
+
+ if (provider) {
+ GstBus *bus = gst_device_provider_get_bus (provider);
+
+ matched = TRUE;
+ gst_bus_enable_sync_message_emission (bus);
+ g_signal_connect (bus, "sync-message",
+ G_CALLBACK (bus_sync_message), monitor);
+ gst_object_unref (bus);
+ g_ptr_array_add (monitor->priv->providers, provider);
+ monitor->priv->cookie++;
+ }
+ }
+
+ factories = g_list_remove (factories, factory);
+ gst_object_unref (factory);
+ }
+
+ /* Ensure there is no leak here */
+ g_assert (factories == NULL);
+
+ if (matched) {
+ id = filter->id;
+ g_ptr_array_add (monitor->priv->filters, filter);
+ } else {
+ device_filter_free (filter);
+ }
+
+ GST_OBJECT_UNLOCK (monitor);
+
+ return id;
}
/**
- * gst_device_monitor_get_bus:
- * @monitor: a #GstDeviceMonitor
+ * gst_device_monitor_remove_filter:
+ * @monitor: a device monitor
+ * @filter_id: the id of the filter
*
- * Gets the #GstBus of this #GstDeviceMonitor
+ * Removes a filter from the #GstDeviceMonitor using the id that was returned
+ * by gst_device_monitor_add_filter().
*
- * Returns: (transfer full): a #GstBus
+ * Returns: %TRUE of the filter id was valid, %FALSE otherwise
*
* Since: 1.4
*/
-GstBus *
-gst_device_monitor_get_bus (GstDeviceMonitor * monitor)
+gboolean
+gst_device_monitor_remove_filter (GstDeviceMonitor * monitor, guint filter_id)
{
- g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), NULL);
+ guint i, j;
+ gboolean removed = FALSE;
- return gst_object_ref (monitor->priv->bus);
+ g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), FALSE);
+ g_return_val_if_fail (!monitor->priv->started, FALSE);
+ g_return_val_if_fail (filter_id > 0, FALSE);
+
+ GST_OBJECT_LOCK (monitor);
+ for (i = 0; i < monitor->priv->filters->len; i++) {
+ struct DeviceFilter *filter = g_ptr_array_index (monitor->priv->filters, i);
+
+ if (filter->id == filter_id) {
+ g_ptr_array_remove_index (monitor->priv->filters, i);
+ removed = TRUE;
+ break;
+ }
+ }
+
+ if (removed) {
+ for (i = 0; i < monitor->priv->providers->len; i++) {
+ GstDeviceProvider *provider =
+ g_ptr_array_index (monitor->priv->providers, i);
+ GstDeviceProviderFactory *factory =
+ gst_device_provider_get_factory (provider);
+ gboolean valid = FALSE;
+
+ for (j = 0; j < monitor->priv->filters->len; j++) {
+ struct DeviceFilter *filter =
+ g_ptr_array_index (monitor->priv->filters, j);
+
+ if (gst_device_provider_factory_has_classesv (factory,
+ filter->classesv)) {
+ valid = TRUE;
+ break;
+ }
+ }
+
+ if (!valid) {
+ monitor->priv->cookie++;
+ gst_device_monitor_remove (monitor, i);
+ i--;
+ }
+ }
+ }
+
+ GST_OBJECT_UNLOCK (monitor);
+
+ return removed;
}
+
+
/**
- * gst_device_monitor_device_add:
- * @monitor: a #GstDeviceMonitor
- * @device: (transfer full): a #GstDevice that has been added
+ * gst_device_monitor_new:
*
- * Posts a message on the monitor's #GstBus to inform applications that
- * a new device has been added.
+ * Create a new #GstDeviceMonitor
*
- * This is for use by subclasses.
+ * Returns: (transfer full): a new device monitor.
*
* Since: 1.4
*/
-void
-gst_device_monitor_device_add (GstDeviceMonitor * monitor, GstDevice * device)
+GstDeviceMonitor *
+gst_device_monitor_new (void)
{
- GstMessage *message;
-
- if (!gst_object_set_parent (GST_OBJECT (device), GST_OBJECT (monitor))) {
- GST_WARNING_OBJECT (monitor, "Could not parent device %p to monitor,"
- " it already has a parent", device);
- return;
- }
-
- GST_OBJECT_LOCK (monitor);
- monitor->devices = g_list_prepend (monitor->devices, gst_object_ref (device));
- GST_OBJECT_UNLOCK (monitor);
-
- message = gst_message_new_device_added (GST_OBJECT (monitor), device);
- gst_bus_post (monitor->priv->bus, message);
- gst_object_unref (device);
+ return g_object_new (GST_TYPE_DEVICE_MONITOR, NULL);
}
-
/**
- * gst_device_monitor_device_remove:
- * @monitor: a #GstDeviceMonitor
- * @device: a #GstDevice that has been removed
+ * gst_device_monitor_get_bus:
+ * @monitor: a #GstDeviceProvider
*
- * Posts a message on the monitor's #GstBus to inform applications that
- * a device has been removed.
+ * Gets the #GstBus of this #GstDeviceMonitor
*
- * This is for use by subclasses.
+ * Returns: (transfer full): a #GstBus
*
* Since: 1.4
*/
-void
-gst_device_monitor_device_remove (GstDeviceMonitor * monitor,
- GstDevice * device)
+GstBus *
+gst_device_monitor_get_bus (GstDeviceMonitor * monitor)
{
- GstMessage *message;
- GList *item;
-
- GST_OBJECT_LOCK (monitor);
- item = g_list_find (monitor->devices, device);
- if (item) {
- monitor->devices = g_list_delete_link (monitor->devices, item);
- }
- GST_OBJECT_UNLOCK (monitor);
+ g_return_val_if_fail (GST_IS_DEVICE_MONITOR (monitor), NULL);
- message = gst_message_new_device_removed (GST_OBJECT (monitor), device);
- g_signal_emit_by_name (device, "removed");
- gst_bus_post (monitor->priv->bus, message);
- if (item)
- gst_object_unparent (GST_OBJECT (device));
+ return gst_object_ref (monitor->priv->bus);
}
diff --git a/gst/gstdevicemonitor.h b/gst/gstdevicemonitor.h
index f5c3307..2df07e4 100644
--- a/gst/gstdevicemonitor.h
+++ b/gst/gstdevicemonitor.h
@@ -1,7 +1,7 @@
/* GStreamer
- * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com>
+ * Copyright (C) 2013 Olivier Crete <olivier.crete@collabora.com>
*
- * gstdevicemonitor.h: Device probing and monitoring
+ * gstdevicemonitor.c: Device monitor
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -19,19 +19,20 @@
* Boston, MA 02111-1307, USA.
*/
-#include <gst/gstdevicemonitorfactory.h>
-
#ifndef __GST_DEVICE_MONITOR_H__
#define __GST_DEVICE_MONITOR_H__
-#include <gst/gstelement.h>
+#include <gst/gstobject.h>
+#include <gst/gstdevice.h>
+#include <gst/gstdeviceprovider.h>
+#include <gst/gstdeviceproviderfactory.h>
G_BEGIN_DECLS
typedef struct _GstDeviceMonitor GstDeviceMonitor;
-typedef struct _GstDeviceMonitorClass GstDeviceMonitorClass;
typedef struct _GstDeviceMonitorPrivate GstDeviceMonitorPrivate;
+typedef struct _GstDeviceMonitorClass GstDeviceMonitorClass;
#define GST_TYPE_DEVICE_MONITOR (gst_device_monitor_get_type())
#define GST_IS_DEVICE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DEVICE_MONITOR))
@@ -41,21 +42,16 @@ typedef struct _GstDeviceMonitorPrivate GstDeviceMonitorPrivate;
#define GST_DEVICE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE_MONITOR, GstDeviceMonitorClass))
#define GST_DEVICE_MONITOR_CAST(obj) ((GstDeviceMonitor *)(obj))
-
/**
* GstDeviceMonitor:
- * @parent: The parent #GstObject
- * @devices: a #GList of the #GstDevice objects
+ * @parent: the parent #GstObject structure
*
- * The structure of the base #GstDeviceMonitor
+ * Opaque device monitor object structure.
*
* Since: 1.4
*/
struct _GstDeviceMonitor {
- GstObject parent;
-
- /* Protected by the Object lock */
- GList *devices;
+ GstObject parent;
/*< private >*/
@@ -67,75 +63,37 @@ struct _GstDeviceMonitor {
/**
* GstDeviceMonitorClass:
* @parent_class: the parent #GstObjectClass structure
- * @factory: a pointer to the #GstDeviceMonitorFactory that creates this
- * monitor
- * @probe: Returns a list of devices that are currently available.
- * This should never block.
- * @start: Starts monitoring for new devices. Only subclasses that can know
- * that devices have been added or remove need to implement this method.
- * @stop: Stops monitoring for new devices. Only subclasses that implement
- * the start() method need to implement this method.
*
- * The structure of the base #GstDeviceMonitorClass
+ * Opaque device monitor class structure.
*
* Since: 1.4
*/
-
struct _GstDeviceMonitorClass {
- GstObjectClass parent_class;
-
- GstDeviceMonitorFactory *factory;
-
- GList* (*probe) (GstDeviceMonitor * monitor);
-
- gboolean (*start) (GstDeviceMonitor * monitor);
- void (*stop) (GstDeviceMonitor * monitor);
-
- /*< private >*/
- gpointer metadata;
+ GstObjectClass parent_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
-GType gst_device_monitor_get_type (void);
-
+GType gst_device_monitor_get_type (void);
-GList * gst_device_monitor_get_devices (GstDeviceMonitor * monitor);
+GstDeviceMonitor * gst_device_monitor_new (void);
-gboolean gst_device_monitor_start (GstDeviceMonitor * monitor);
-void gst_device_monitor_stop (GstDeviceMonitor * monitor);
+GstBus * gst_device_monitor_get_bus (GstDeviceMonitor * monitor);
-gboolean gst_device_monitor_can_monitor (GstDeviceMonitor * monitor);
+GList * gst_device_monitor_get_devices (GstDeviceMonitor * monitor);
-GstBus * gst_device_monitor_get_bus (GstDeviceMonitor * monitor);
-void gst_device_monitor_device_add (GstDeviceMonitor * monitor,
- GstDevice * device);
-void gst_device_monitor_device_remove (GstDeviceMonitor * monitor,
- GstDevice * device);
+gboolean gst_device_monitor_start (GstDeviceMonitor * monitor);
+void gst_device_monitor_stop (GstDeviceMonitor * monitor);
-/* device monitor class meta data */
-void gst_device_monitor_class_set_metadata (GstDeviceMonitorClass *klass,
- const gchar *longname,
- const gchar *classification,
- const gchar *description,
- const gchar *author);
-void gst_device_monitor_class_set_static_metadata (GstDeviceMonitorClass *klass,
- const gchar *longname,
- const gchar *classification,
- const gchar *description,
- const gchar *author);
-void gst_device_monitor_class_add_metadata (GstDeviceMonitorClass * klass,
- const gchar * key, const gchar * value);
-void gst_device_monitor_class_add_static_metadata (GstDeviceMonitorClass * klass,
- const gchar * key, const gchar * value);
-const gchar * gst_device_monitor_class_get_metadata (GstDeviceMonitorClass * klass,
- const gchar * key);
-/* factory management */
-GstDeviceMonitorFactory * gst_device_monitor_get_factory (GstDeviceMonitor * monitor);
+guint gst_device_monitor_add_filter (GstDeviceMonitor * monitor,
+ const gchar * classes,
+ GstCaps * caps);
+gboolean gst_device_monitor_remove_filter (GstDeviceMonitor * monitor,
+ guint filter_id);
G_END_DECLS
diff --git a/gst/gstdevicemonitorfactory.c b/gst/gstdevicemonitorfactory.c
deleted file mode 100644
index f8c9826..0000000
--- a/gst/gstdevicemonitorfactory.c
+++ /dev/null
@@ -1,594 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
- * 2000 Wim Taymans <wtay@chello.be>
- * 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
- *
- * gstdevicemonitorfactory.c: GstDeviceMonitorFactory object, support routines
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstdevicemonitorfactory
- * @short_description: Create GstDeviceMonitors from a factory
- * @see_also: #GstDeviceMonitor, #GstPlugin, #GstPluginFeature, #GstPadTemplate.
- *
- * #GstDeviceMonitorFactory is used to create instances of device monitors. A
- * GstDeviceMonitorfactory can be added to a #GstPlugin as it is also a
- * #GstPluginFeature.
- *
- * Use the gst_device_monitor_factory_find() and gst_device_monitor_factory_create()
- * functions to create device monitor instances or use gst_device_monitor_factory_make() as a
- * convenient shortcut.
- *
- * Since: 1.4
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "gst_private.h"
-
-#include "gstdevicemonitorfactory.h"
-#include "gst.h"
-
-#include "glib-compat-private.h"
-
-GST_DEBUG_CATEGORY_STATIC (device_monitor_factory_debug);
-#define GST_CAT_DEFAULT device_monitor_factory_debug
-
-static void gst_device_monitor_factory_finalize (GObject * object);
-static void gst_device_monitor_factory_cleanup (GstDeviceMonitorFactory *
- factory);
-
-/* static guint gst_device_monitor_factory_signals[LAST_SIGNAL] = { 0 }; */
-
-/* this is defined in gstelement.c */
-extern GQuark __gst_devicemonitorclass_factory;
-
-#define _do_init \
-{ \
- GST_DEBUG_CATEGORY_INIT (device_monitor_factory_debug, "GST_DEVICE_MONITOR_FACTORY", \
- GST_DEBUG_BOLD | GST_DEBUG_FG_WHITE | GST_DEBUG_BG_RED, \
- "device monitor factories keep information about installed device monitors"); \
-}
-
-G_DEFINE_TYPE_WITH_CODE (GstDeviceMonitorFactory, gst_device_monitor_factory,
- GST_TYPE_PLUGIN_FEATURE, _do_init);
-
-static void
-gst_device_monitor_factory_class_init (GstDeviceMonitorFactoryClass * klass)
-{
- GObjectClass *gobject_class = (GObjectClass *) klass;
-
- gobject_class->finalize = gst_device_monitor_factory_finalize;
-}
-
-static void
-gst_device_monitor_factory_init (GstDeviceMonitorFactory * factory)
-{
-}
-
-static void
-gst_device_monitor_factory_finalize (GObject * object)
-{
- GstDeviceMonitorFactory *factory = GST_DEVICE_MONITOR_FACTORY (object);
- GstDeviceMonitor *monitor;
-
- gst_device_monitor_factory_cleanup (factory);
-
- monitor = g_atomic_pointer_get (&factory->monitor);
- if (monitor)
- gst_object_unref (monitor);
-
- G_OBJECT_CLASS (gst_device_monitor_factory_parent_class)->finalize (object);
-}
-
-/**
- * gst_device_monitor_factory_find:
- * @name: name of factory to find
- *
- * Search for an device monitor factory of the given name. Refs the returned
- * device monitor factory; caller is responsible for unreffing.
- *
- * Returns: (transfer full): #GstDeviceMonitorFactory if found, %NULL otherwise
- *
- * Since: 1.4
- */
-GstDeviceMonitorFactory *
-gst_device_monitor_factory_find (const gchar * name)
-{
- GstPluginFeature *feature;
-
- g_return_val_if_fail (name != NULL, NULL);
-
- feature = gst_registry_find_feature (gst_registry_get (), name,
- GST_TYPE_DEVICE_MONITOR_FACTORY);
- if (feature)
- return GST_DEVICE_MONITOR_FACTORY (feature);
-
- /* this isn't an error, for instance when you query if an device monitor factory is
- * present */
- GST_LOG ("no such device monitor factory \"%s\"", name);
-
- return NULL;
-}
-
-static void
-gst_device_monitor_factory_cleanup (GstDeviceMonitorFactory * factory)
-{
- if (factory->metadata) {
- gst_structure_free ((GstStructure *) factory->metadata);
- factory->metadata = NULL;
- }
- if (factory->type) {
- factory->type = G_TYPE_INVALID;
- }
-}
-
-#define CHECK_METADATA_FIELD(klass, name, key) \
- G_STMT_START { \
- const gchar *metafield = gst_device_monitor_class_get_metadata (klass, key); \
- if (G_UNLIKELY (metafield == NULL || *metafield == '\0')) { \
- g_warning ("Device monitor factory metadata for '%s' has no valid %s field", name, key); \
- goto detailserror; \
- } \
- } G_STMT_END;
-
-/**
- * gst_device_monitor_register:
- * @plugin: (allow-none): #GstPlugin to register the device monitor with, or %NULL for
- * a static device monitor.
- * @name: name of device monitors of this type
- * @rank: rank of device monitor (higher rank means more importance when autoplugging)
- * @type: GType of device monitor to register
- *
- * Create a new device monitorfactory capable of instantiating objects of the
- * @type and add the factory to @plugin.
- *
- * Returns: %TRUE, if the registering succeeded, %FALSE on error
- *
- * Since: 1.4
- */
-gboolean
-gst_device_monitor_register (GstPlugin * plugin, const gchar * name, guint rank,
- GType type)
-{
- GstPluginFeature *existing_feature;
- GstRegistry *registry;
- GstDeviceMonitorFactory *factory;
- GstDeviceMonitorClass *klass;
-
- g_return_val_if_fail (name != NULL, FALSE);
- g_return_val_if_fail (g_type_is_a (type, GST_TYPE_DEVICE_MONITOR), FALSE);
-
- registry = gst_registry_get ();
-
- /* check if feature already exists, if it exists there is no need to update it
- * when the registry is getting updated, outdated plugins and all their
- * features are removed and readded.
- */
- existing_feature = gst_registry_lookup_feature (registry, name);
- if (existing_feature) {
- GST_DEBUG_OBJECT (registry, "update existing feature %p (%s)",
- existing_feature, name);
- factory = GST_DEVICE_MONITOR_FACTORY_CAST (existing_feature);
- factory->type = type;
- existing_feature->loaded = TRUE;
- g_type_set_qdata (type, __gst_devicemonitorclass_factory, factory);
- gst_object_unref (existing_feature);
- return TRUE;
- }
-
- factory =
- GST_DEVICE_MONITOR_FACTORY_CAST (g_object_newv
- (GST_TYPE_DEVICE_MONITOR_FACTORY, 0, NULL));
- gst_plugin_feature_set_name (GST_PLUGIN_FEATURE_CAST (factory), name);
- GST_LOG_OBJECT (factory, "Created new device monitorfactory for type %s",
- g_type_name (type));
-
- /* provide info needed during class structure setup */
- g_type_set_qdata (type, __gst_devicemonitorclass_factory, factory);
- klass = GST_DEVICE_MONITOR_CLASS (g_type_class_ref (type));
-
- CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_LONGNAME);
- CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_KLASS);
- CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_DESCRIPTION);
- CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_AUTHOR);
-
- factory->type = type;
- factory->metadata = gst_structure_copy ((GstStructure *) klass->metadata);
-
- if (plugin && plugin->desc.name) {
- GST_PLUGIN_FEATURE_CAST (factory)->plugin_name = plugin->desc.name;
- GST_PLUGIN_FEATURE_CAST (factory)->plugin = plugin;
- g_object_add_weak_pointer ((GObject *) plugin,
- (gpointer *) & GST_PLUGIN_FEATURE_CAST (factory)->plugin);
- } else {
- GST_PLUGIN_FEATURE_CAST (factory)->plugin_name = "NULL";
- GST_PLUGIN_FEATURE_CAST (factory)->plugin = NULL;
- }
- gst_plugin_feature_set_rank (GST_PLUGIN_FEATURE_CAST (factory), rank);
- GST_PLUGIN_FEATURE_CAST (factory)->loaded = TRUE;
-
- gst_registry_add_feature (registry, GST_PLUGIN_FEATURE_CAST (factory));
-
- return TRUE;
-
- /* ERRORS */
-detailserror:
- {
- gst_device_monitor_factory_cleanup (factory);
- return FALSE;
- }
-}
-
-/**
- * gst_device_monitor_factory_get:
- * @factory: factory to instantiate
- *
- * Returns the device monitor of the type defined by the given device
- * monitorfactory.
- *
- * Returns: (transfer full): the #GstDeviceMonitor or %NULL if the
- * device monitor couldn't be created
- *
- * Since: 1.4
- */
-GstDeviceMonitor *
-gst_device_monitor_factory_get (GstDeviceMonitorFactory * factory)
-{
- GstDeviceMonitor *device_monitor;
- GstDeviceMonitorClass *oclass;
- GstDeviceMonitorFactory *newfactory;
-
- g_return_val_if_fail (factory != NULL, NULL);
-
- newfactory =
- GST_DEVICE_MONITOR_FACTORY (gst_plugin_feature_load (GST_PLUGIN_FEATURE
- (factory)));
-
- if (newfactory == NULL)
- goto load_failed;
-
- factory = newfactory;
-
- GST_INFO ("getting device monitor \"%s\"", GST_OBJECT_NAME (factory));
-
- if (factory->type == 0)
- goto no_type;
-
- device_monitor = g_atomic_pointer_get (&newfactory->monitor);
- if (device_monitor)
- return gst_object_ref (device_monitor);
-
- /* create an instance of the device monitor, cast so we don't assert on NULL
- * also set name as early as we can
- */
- device_monitor = GST_DEVICE_MONITOR_CAST (g_object_newv (factory->type, 0,
- NULL));
- if (G_UNLIKELY (device_monitor == NULL))
- goto no_device_monitor;
-
- /* fill in the pointer to the factory in the device monitor class. The
- * class will not be unreffed currently.
- * Be thread safe as there might be 2 threads creating the first instance of
- * an device monitor at the same moment
- */
- oclass = GST_DEVICE_MONITOR_GET_CLASS (device_monitor);
- if (!g_atomic_pointer_compare_and_exchange (&oclass->factory, NULL, factory))
- gst_object_unref (factory);
-
- gst_object_ref_sink (device_monitor);
-
- /* We use an atomic to make sure we don't create two in parallel */
- if (!g_atomic_pointer_compare_and_exchange (&newfactory->monitor, NULL,
- device_monitor)) {
- gst_object_unref (device_monitor);
-
- device_monitor = g_atomic_pointer_get (&newfactory->monitor);
- }
-
- GST_DEBUG ("created device monitor \"%s\"", GST_OBJECT_NAME (factory));
-
- return gst_object_ref (device_monitor);
-
- /* ERRORS */
-load_failed:
- {
- GST_WARNING_OBJECT (factory,
- "loading plugin containing feature %s returned NULL!",
- GST_OBJECT_NAME (factory));
- return NULL;
- }
-no_type:
- {
- GST_WARNING_OBJECT (factory, "factory has no type");
- gst_object_unref (factory);
- return NULL;
- }
-no_device_monitor:
- {
- GST_WARNING_OBJECT (factory, "could not create device monitor");
- gst_object_unref (factory);
- return NULL;
- }
-}
-
-/**
- * gst_device_monitor_factory_get_by_name:
- * @factoryname: a named factory to instantiate
- *
- * Returns the device monitor of the type defined by the given device
- * monitor factory.
- *
- * Returns: (transfer full): a #GstDeviceMonitor or %NULL if unable to
- * create device monitor
- *
- * Since: 1.4
- */
-GstDeviceMonitor *
-gst_device_monitor_factory_get_by_name (const gchar * factoryname)
-{
- GstDeviceMonitorFactory *factory;
- GstDeviceMonitor *device_monitor;
-
- g_return_val_if_fail (factoryname != NULL, NULL);
- g_return_val_if_fail (gst_is_initialized (), NULL);
-
- GST_LOG ("gstdevicemonitorfactory: get_by_name \"%s\"", factoryname);
-
- factory = gst_device_monitor_factory_find (factoryname);
- if (factory == NULL)
- goto no_factory;
-
- GST_LOG_OBJECT (factory, "found factory %p", factory);
- device_monitor = gst_device_monitor_factory_get (factory);
- if (device_monitor == NULL)
- goto create_failed;
-
- gst_object_unref (factory);
- return device_monitor;
-
- /* ERRORS */
-no_factory:
- {
- GST_INFO ("no such device monitor factory \"%s\"!", factoryname);
- return NULL;
- }
-create_failed:
- {
- GST_INFO_OBJECT (factory, "couldn't create instance!");
- gst_object_unref (factory);
- return NULL;
- }
-}
-
-/**
- * gst_device_monitor_factory_get_device_monitor_type:
- * @factory: factory to get managed #GType from
- *
- * Get the #GType for device monitors managed by this factory. The type can
- * only be retrieved if the device monitor factory is loaded, which can be
- * assured with gst_plugin_feature_load().
- *
- * Returns: the #GType for device monitors managed by this factory or 0 if
- * the factory is not loaded.
- *
- * Since: 1.4
- */
-GType
-gst_device_monitor_factory_get_device_monitor_type (GstDeviceMonitorFactory *
- factory)
-{
- g_return_val_if_fail (GST_IS_DEVICE_MONITOR_FACTORY (factory), 0);
-
- return factory->type;
-}
-
-/**
- * gst_device_monitor_factory_get_metadata:
- * @factory: a #GstDeviceMonitorFactory
- * @key: a key
- *
- * Get the metadata on @factory with @key.
- *
- * Returns: the metadata with @key on @factory or %NULL when there was no
- * metadata with the given @key.
- *
- * Since: 1.4
- */
-const gchar *
-gst_device_monitor_factory_get_metadata (GstDeviceMonitorFactory * factory,
- const gchar * key)
-{
- return gst_structure_get_string ((GstStructure *) factory->metadata, key);
-}
-
-/**
- * gst_device_monitor_factory_get_metadata_keys:
- * @factory: a #GstDeviceMonitorFactory
- *
- * Get the available keys for the metadata on @factory.
- *
- * Returns: (transfer full) (element-type utf8) (array zero-terminated=1):
- * a %NULL-terminated array of key strings, or %NULL when there is no
- * metadata. Free with g_strfreev() when no longer needed.
- *
- * Since: 1.4
- */
-gchar **
-gst_device_monitor_factory_get_metadata_keys (GstDeviceMonitorFactory * factory)
-{
- GstStructure *metadata;
- gchar **arr;
- gint i, num;
-
- g_return_val_if_fail (GST_IS_DEVICE_MONITOR_FACTORY (factory), NULL);
-
- metadata = (GstStructure *) factory->metadata;
- if (metadata == NULL)
- return NULL;
-
- num = gst_structure_n_fields (metadata);
- if (num == 0)
- return NULL;
-
- arr = g_new (gchar *, num + 1);
- for (i = 0; i < num; ++i) {
- arr[i] = g_strdup (gst_structure_nth_field_name (metadata, i));
- }
- arr[i] = NULL;
- return arr;
-}
-
-/**
- * gst_device_monitor_factory_has_classesv:
- * @factory: a #GstDeviceMonitorFactory
- * @classes: (array zero-terminated=1): a %NULL terminated array of
- * klasses to match, only match if all classes are matched
- *
- * Check if @factory matches all of the given classes
- *
- * Returns: %TRUE if @factory matches.
- *
- * Since: 1.4
- */
-gboolean
-gst_device_monitor_factory_has_classesv (GstDeviceMonitorFactory * factory,
- gchar ** classes)
-{
- const gchar *klass;
-
- g_return_val_if_fail (GST_IS_DEVICE_MONITOR_FACTORY (factory), FALSE);
-
- klass = gst_device_monitor_factory_get_metadata (factory,
- GST_ELEMENT_METADATA_KLASS);
-
- if (klass == NULL) {
- GST_ERROR_OBJECT (factory,
- "device monitor factory is missing klass identifiers");
- return FALSE;
- }
-
- for (; classes[0]; classes++) {
- const gchar *found;
- guint len;
-
- if (classes[0] == '\0')
- continue;
-
- found = strstr (klass, classes[0]);
-
- if (!found)
- return FALSE;
- if (found != klass && *(found - 1) != '/')
- return FALSE;
-
- len = strlen (classes[0]);
- if (found[len] != 0 && found[len] != '/')
- return FALSE;
- }
-
- return TRUE;
-}
-
-/**
- * gst_device_monitor_factory_has_classes:
- * @factory: a #GstDeviceMonitorFactory
- * @classes: a "/" separate list of klasses to match, only match if all classes
- * are matched
- *
- * Check if @factory matches all of the given @classes
- *
- * Returns: %TRUE if @factory matches.
- *
- * Since: 1.4
- */
-gboolean
-gst_device_monitor_factory_has_classes (GstDeviceMonitorFactory * factory,
- const gchar * classes)
-{
- gchar **classesv;
- gboolean res;
-
- classesv = g_strsplit (classes, "/", 0);
-
- res = gst_device_monitor_factory_has_classesv (factory, classesv);
-
- g_strfreev (classesv);
-
- return res;
-}
-
-typedef struct
-{
- const char *classes;
- GstRank minrank;
-} FilterData;
-
-static gboolean
-device_monitor_filter (GstPluginFeature * feature, FilterData * data)
-{
- gboolean res;
-
- /* we only care about device monitor factories */
- if (G_UNLIKELY (!GST_IS_DEVICE_MONITOR_FACTORY (feature)))
- return FALSE;
-
- res = (gst_plugin_feature_get_rank (feature) >= data->minrank) &&
- gst_device_monitor_factory_has_classes (GST_DEVICE_MONITOR_FACTORY_CAST
- (feature), data->classes);
-
- return res;
-}
-
-/**
- * gst_device_monitor_factory_list_get_device_monitors:
- * @classes: a "/" separate list of klasses to match, only match if all classes
- * are matched
- * @minrank: Minimum rank
- *
- * Get a list of factories that match all of the given @classes. Only
- * device monitors with a rank greater or equal to @minrank will be
- * returned. The list of factories is returned by decreasing rank.
- *
- * Returns: (transfer full) (element-type Gst.DeviceMonitorFactory): a #GList of
- * #GstDeviceMonitorFactory device monitors. Use gst_plugin_feature_list_free() after
- * usage.
- *
- * Since: 1.4
- */
-GList *gst_device_monitor_factory_list_get_device_monitors
- (const gchar * classes, GstRank minrank)
-{
- GList *result;
- FilterData data;
-
- /* prepare type */
- data.classes = classes;
- data.minrank = minrank;
-
- /* get the feature list using the filter */
- result = gst_registry_feature_filter (gst_registry_get (),
- (GstPluginFeatureFilter) device_monitor_filter, FALSE, &data);
-
- /* sort on rank and name */
- result = g_list_sort (result, gst_plugin_feature_rank_compare_func);
-
- return result;
-}
diff --git a/gst/gstdevicemonitorfactory.h b/gst/gstdevicemonitorfactory.h
deleted file mode 100644
index 02bf04a..0000000
--- a/gst/gstdevicemonitorfactory.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
- * 2000,2004 Wim Taymans <wim@fluendo.com>
- * 2012 Olivier Crete <olivier.crete@collabora.com>
- *
- * gstdevicemonitorfactory.h: Header for GstDeviceMonitorFactory
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-
-#ifndef __GST_DEVICE_MONITOR_FACTORY_H__
-#define __GST_DEVICE_MONITOR_FACTORY_H__
-
-/**
- * GstDeviceMonitorFactory:
- *
- * The opaque #GstDeviceMonitorFactory data structure.
- *
- * Since: 1.4
- */
-
-/**
- * GstDeviceMonitorFactoryClass:
- *
- * The opaque #GstDeviceMonitorFactoryClass data structure.
- *
- * Since: 1.4
- */
-typedef struct _GstDeviceMonitorFactory GstDeviceMonitorFactory;
-typedef struct _GstDeviceMonitorFactoryClass GstDeviceMonitorFactoryClass;
-
-#include <gst/gstconfig.h>
-#include <gst/gstplugin.h>
-#include <gst/gstpluginfeature.h>
-#include <gst/gstdevicemonitor.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_DEVICE_MONITOR_FACTORY (gst_device_monitor_factory_get_type())
-#define GST_DEVICE_MONITOR_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DEVICE_MONITOR_FACTORY,\
- GstDeviceMonitorFactory))
-#define GST_DEVICE_MONITOR_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DEVICE_MONITOR_FACTORY,\
- GstDeviceMonitorFactoryClass))
-#define GST_IS_DEVICE_MONITOR_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DEVICE_MONITOR_FACTORY))
-#define GST_IS_DEVICE_MONITOR_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DEVICE_MONITOR_FACTORY))
-#define GST_DEVICE_MONITOR_FACTORY_CAST(obj) ((GstDeviceMonitorFactory *)(obj))
-
-GType gst_device_monitor_factory_get_type (void);
-
-GstDeviceMonitorFactory * gst_device_monitor_factory_find (const gchar *name);
-
-GType gst_device_monitor_factory_get_device_monitor_type (GstDeviceMonitorFactory *factory);
-
-const gchar * gst_device_monitor_factory_get_metadata (GstDeviceMonitorFactory *factory, const gchar *key);
-gchar ** gst_device_monitor_factory_get_metadata_keys (GstDeviceMonitorFactory *factory);
-
-GstDeviceMonitor* gst_device_monitor_factory_get (GstDeviceMonitorFactory *factory) G_GNUC_MALLOC;
-GstDeviceMonitor* gst_device_monitor_factory_get_by_name (const gchar *factoryname) G_GNUC_MALLOC;
-
-gboolean gst_device_monitor_register (GstPlugin *plugin, const gchar *name,
- guint rank,
- GType type);
-
-gboolean gst_device_monitor_factory_has_classesv (GstDeviceMonitorFactory * factory,
- gchar ** classes);
-
-gboolean gst_device_monitor_factory_has_classes (GstDeviceMonitorFactory *factory,
- const gchar * classes);
-
-GList * gst_device_monitor_factory_list_get_device_monitors (const gchar *classes,
- GstRank minrank) G_GNUC_MALLOC;
-
-G_END_DECLS
-
-#endif /* __GST_DEVICE_MONITOR_FACTORY_H__ */
diff --git a/gst/gstdeviceprovider.c b/gst/gstdeviceprovider.c
new file mode 100644
index 0000000..ea91200
--- /dev/null
+++ b/gst/gstdeviceprovider.c
@@ -0,0 +1,591 @@
+/* GStreamer
+ * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com>
+ *
+ * gstdeviceprovider.c: Device probing and monitoring
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstdeviceprovider
+ * @short_description: A device provider
+ * @see_also: #GstDevice, #GstDeviceMonitor
+ *
+ * A #GstDeviceProvider subclass is provided by a plugin that handles devices
+ * if there is a way to programatically list connected devices. It can also
+ * optionally provide updates to the list of connected devices.
+ *
+ * Each #GstDeviceProvider subclass is a singleton, a plugin should
+ * normally provide a single subclass for all devices.
+ *
+ * Applications would normally use a #GstDeviceMonitor to monitor devices
+ * from all relevant providers.
+ *
+ * Since: 1.4
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gst_private.h"
+
+#include "gstdeviceprovider.h"
+
+#include "gstelementmetadata.h"
+#include "gstquark.h"
+
+struct _GstDeviceProviderPrivate
+{
+ GstBus *bus;
+
+ GMutex start_lock;
+
+ gboolean started_count;
+};
+
+/* this is used in gstelementfactory.c:gst_element_register() */
+GQuark __gst_deviceproviderclass_factory = 0;
+
+static void gst_device_provider_class_init (GstDeviceProviderClass * klass);
+static void gst_device_provider_init (GstDeviceProvider * element);
+static void gst_device_provider_base_class_init (gpointer g_class);
+static void gst_device_provider_base_class_finalize (gpointer g_class);
+static void gst_device_provider_dispose (GObject * object);
+static void gst_device_provider_finalize (GObject * object);
+
+static gpointer gst_device_provider_parent_class = NULL;
+
+GType
+gst_device_provider_get_type (void)
+{
+ static volatile gsize gst_device_provider_type = 0;
+
+ if (g_once_init_enter (&gst_device_provider_type)) {
+ GType _type;
+ static const GTypeInfo element_info = {
+ sizeof (GstDeviceProviderClass),
+ gst_device_provider_base_class_init,
+ gst_device_provider_base_class_finalize,
+ (GClassInitFunc) gst_device_provider_class_init,
+ NULL,
+ NULL,
+ sizeof (GstDeviceProvider),
+ 0,
+ (GInstanceInitFunc) gst_device_provider_init,
+ NULL
+ };
+
+ _type = g_type_register_static (GST_TYPE_OBJECT, "GstDeviceProvider",
+ &element_info, G_TYPE_FLAG_ABSTRACT);
+
+ __gst_deviceproviderclass_factory =
+ g_quark_from_static_string ("GST_DEVICEPROVIDERCLASS_FACTORY");
+ g_once_init_leave (&gst_device_provider_type, _type);
+ }
+ return gst_device_provider_type;
+}
+
+static void
+gst_device_provider_base_class_init (gpointer g_class)
+{
+ GstDeviceProviderClass *klass = GST_DEVICE_PROVIDER_CLASS (g_class);
+
+ /* Copy the element details here so elements can inherit the
+ * details from their base class and classes only need to set
+ * the details in class_init instead of base_init */
+ klass->metadata =
+ klass->metadata ? gst_structure_copy (klass->metadata) :
+ gst_structure_new_empty ("metadata");
+
+ klass->factory = g_type_get_qdata (G_TYPE_FROM_CLASS (klass),
+ __gst_deviceproviderclass_factory);
+}
+
+static void
+gst_device_provider_base_class_finalize (gpointer g_class)
+{
+ GstDeviceProviderClass *klass = GST_DEVICE_PROVIDER_CLASS (g_class);
+
+ gst_structure_free (klass->metadata);
+}
+
+static void
+gst_device_provider_class_init (GstDeviceProviderClass * klass)
+{
+ GObjectClass *gobject_class = (GObjectClass *) klass;
+
+ gst_device_provider_parent_class = g_type_class_peek_parent (klass);
+
+ g_type_class_add_private (klass, sizeof (GstDeviceProviderPrivate));
+
+ gobject_class->dispose = gst_device_provider_dispose;
+ gobject_class->finalize = gst_device_provider_finalize;
+}
+
+static void
+gst_device_provider_init (GstDeviceProvider * provider)
+{
+ provider->priv = G_TYPE_INSTANCE_GET_PRIVATE (provider,
+ GST_TYPE_DEVICE_PROVIDER, GstDeviceProviderPrivate);
+
+ g_mutex_init (&provider->priv->start_lock);
+
+ provider->priv->bus = gst_bus_new ();
+ gst_bus_set_flushing (provider->priv->bus, TRUE);
+}
+
+
+static void
+gst_device_provider_dispose (GObject * object)
+{
+ GstDeviceProvider *provider = GST_DEVICE_PROVIDER (object);
+
+ gst_object_replace ((GstObject **) & provider->priv->bus, NULL);
+
+ GST_OBJECT_LOCK (provider);
+ g_list_free_full (provider->devices, (GDestroyNotify) gst_object_unparent);
+ provider->devices = NULL;
+ GST_OBJECT_UNLOCK (provider);
+
+ G_OBJECT_CLASS (gst_device_provider_parent_class)->dispose (object);
+}
+
+static void
+gst_device_provider_finalize (GObject * object)
+{
+ GstDeviceProvider *provider = GST_DEVICE_PROVIDER (object);
+
+ g_mutex_clear (&provider->priv->start_lock);
+
+ G_OBJECT_CLASS (gst_device_provider_parent_class)->finalize (object);
+}
+
+/**
+ * gst_device_provider_class_add_metadata:
+ * @klass: class to set metadata for
+ * @key: the key to set
+ * @value: the value to set
+ *
+ * Set @key with @value as metadata in @klass.
+ */
+void
+gst_device_provider_class_add_metadata (GstDeviceProviderClass * klass,
+ const gchar * key, const gchar * value)
+{
+ g_return_if_fail (GST_IS_DEVICE_PROVIDER_CLASS (klass));
+ g_return_if_fail (key != NULL);
+ g_return_if_fail (value != NULL);
+
+ gst_structure_set ((GstStructure *) klass->metadata,
+ key, G_TYPE_STRING, value, NULL);
+}
+
+/**
+ * gst_device_provider_class_add_static_metadata:
+ * @klass: class to set metadata for
+ * @key: the key to set
+ * @value: the value to set
+ *
+ * Set @key with @value as metadata in @klass.
+ *
+ * Same as gst_device_provider_class_add_metadata(), but @value must be a static string
+ * or an inlined string, as it will not be copied. (GStreamer plugins will
+ * be made resident once loaded, so this function can be used even from
+ * dynamically loaded plugins.)
+ *
+ * Since: 1.4
+ */
+void
+gst_device_provider_class_add_static_metadata (GstDeviceProviderClass * klass,
+ const gchar * key, const gchar * value)
+{
+ GValue val = G_VALUE_INIT;
+
+ g_return_if_fail (GST_IS_DEVICE_PROVIDER_CLASS (klass));
+ g_return_if_fail (key != NULL);
+ g_return_if_fail (value != NULL);
+
+ g_value_init (&val, G_TYPE_STRING);
+ g_value_set_static_string (&val, value);
+ gst_structure_take_value ((GstStructure *) klass->metadata, key, &val);
+}
+
+/**
+ * gst_device_provider_class_set_metadata:
+ * @klass: class to set metadata for
+ * @longname: The long English name of the device provider. E.g. "File Sink"
+ * @classification: String describing the type of device provider, as an
+ * unordered list separated with slashes ('/'). See draft-klass.txt of the
+ * design docs
+ * for more details and common types. E.g: "Sink/File"
+ * @description: Sentence describing the purpose of the device provider.
+ * E.g: "Write stream to a file"
+ * @author: Name and contact details of the author(s). Use \n to separate
+ * multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"
+ *
+ * Sets the detailed information for a #GstDeviceProviderClass.
+ * <note>This function is for use in _class_init functions only.</note>
+ *
+ * Since: 1.4
+ */
+void
+gst_device_provider_class_set_metadata (GstDeviceProviderClass * klass,
+ const gchar * longname, const gchar * classification,
+ const gchar * description, const gchar * author)
+{
+ g_return_if_fail (GST_IS_DEVICE_PROVIDER_CLASS (klass));
+ g_return_if_fail (longname != NULL && *longname != '\0');
+ g_return_if_fail (classification != NULL && *classification != '\0');
+ g_return_if_fail (description != NULL && *description != '\0');
+ g_return_if_fail (author != NULL && *author != '\0');
+
+ gst_structure_id_set ((GstStructure *) klass->metadata,
+ GST_QUARK (ELEMENT_METADATA_LONGNAME), G_TYPE_STRING, longname,
+ GST_QUARK (ELEMENT_METADATA_KLASS), G_TYPE_STRING, classification,
+ GST_QUARK (ELEMENT_METADATA_DESCRIPTION), G_TYPE_STRING, description,
+ GST_QUARK (ELEMENT_METADATA_AUTHOR), G_TYPE_STRING, author, NULL);
+}
+
+/**
+ * gst_device_provider_class_set_static_metadata:
+ * @klass: class to set metadata for
+ * @longname: The long English name of the element. E.g. "File Sink"
+ * @classification: String describing the type of element, as an unordered list
+ * separated with slashes ('/'). See draft-klass.txt of the design docs
+ * for more details and common types. E.g: "Sink/File"
+ * @description: Sentence describing the purpose of the element.
+ * E.g: "Write stream to a file"
+ * @author: Name and contact details of the author(s). Use \n to separate
+ * multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"
+ *
+ * Sets the detailed information for a #GstDeviceProviderClass.
+ * <note>This function is for use in _class_init functions only.</note>
+ *
+ * Same as gst_device_provider_class_set_metadata(), but @longname, @classification,
+ * @description, and @author must be static strings or inlined strings, as
+ * they will not be copied. (GStreamer plugins will be made resident once
+ * loaded, so this function can be used even from dynamically loaded plugins.)
+ *
+ * Since: 1.4
+ */
+void
+gst_device_provider_class_set_static_metadata (GstDeviceProviderClass * klass,
+ const gchar * longname, const gchar * classification,
+ const gchar * description, const gchar * author)
+{
+ GstStructure *s = (GstStructure *) klass->metadata;
+ GValue val = G_VALUE_INIT;
+
+ g_return_if_fail (GST_IS_DEVICE_PROVIDER_CLASS (klass));
+ g_return_if_fail (longname != NULL && *longname != '\0');
+ g_return_if_fail (classification != NULL && *classification != '\0');
+ g_return_if_fail (description != NULL && *description != '\0');
+ g_return_if_fail (author != NULL && *author != '\0');
+
+ g_value_init (&val, G_TYPE_STRING);
+
+ g_value_set_static_string (&val, longname);
+ gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_LONGNAME), &val);
+
+ g_value_set_static_string (&val, classification);
+ gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_KLASS), &val);
+
+ g_value_set_static_string (&val, description);
+ gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_DESCRIPTION),
+ &val);
+
+ g_value_set_static_string (&val, author);
+ gst_structure_id_take_value (s, GST_QUARK (ELEMENT_METADATA_AUTHOR), &val);
+}
+
+/**
+ * gst_device_provider_class_get_metadata:
+ * @klass: class to get metadata for
+ * @key: the key to get
+ *
+ * Get metadata with @key in @klass.
+ *
+ * Returns: the metadata for @key.
+ *
+ * Since: 1.4
+ */
+const gchar *
+gst_device_provider_class_get_metadata (GstDeviceProviderClass * klass,
+ const gchar * key)
+{
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER_CLASS (klass), NULL);
+ g_return_val_if_fail (key != NULL, NULL);
+
+ return gst_structure_get_string ((GstStructure *) klass->metadata, key);
+}
+
+/**
+ * gst_device_provider_get_devices:
+ * @provider: A #GstDeviceProvider
+ *
+ * Gets a list of devices that this provider understands. This may actually
+ * probe the hardware if the provider is not currently started.
+ *
+ * Returns: (transfer full) (element-type GstDevice): a #GList of
+ * #GstDevice
+ *
+ * Since: 1.4
+ */
+
+GList *
+gst_device_provider_get_devices (GstDeviceProvider * provider)
+{
+ GstDeviceProviderClass *klass;
+ GList *devices = NULL;
+ gboolean started;
+ GList *item;
+
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER (provider), NULL);
+ klass = GST_DEVICE_PROVIDER_GET_CLASS (provider);
+
+ g_mutex_lock (&provider->priv->start_lock);
+ started = (provider->priv->started_count > 0);
+
+ if (started) {
+ GST_OBJECT_LOCK (provider);
+ for (item = provider->devices; item; item = item->next)
+ devices = g_list_prepend (devices, gst_object_ref (item->data));
+ GST_OBJECT_UNLOCK (provider);
+ } else if (klass->probe)
+ devices = klass->probe (provider);
+
+ g_mutex_unlock (&provider->priv->start_lock);
+
+ return devices;
+}
+
+/**
+ * gst_device_provider_start:
+ * @provider: A #GstDeviceProvider
+ *
+ * Starts providering the devices. This will cause #GST_MESSAGE_DEVICE messages
+ * to be posted on the provider's bus when devices are added or removed from
+ * the system.
+ *
+ * Since the #GstDeviceProvider is a singleton,
+ * gst_device_provider_start() may already have been called by another
+ * user of the object, gst_device_provider_stop() needs to be called the same
+ * number of times.
+ *
+ * Returns: %TRUE if the device providering could be started
+ *
+ * Since: 1.4
+ */
+
+gboolean
+gst_device_provider_start (GstDeviceProvider * provider)
+{
+ GstDeviceProviderClass *klass;
+ gboolean ret = FALSE;
+
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER (provider), FALSE);
+ klass = GST_DEVICE_PROVIDER_GET_CLASS (provider);
+
+ g_mutex_lock (&provider->priv->start_lock);
+
+ if (provider->priv->started_count > 0) {
+ ret = TRUE;
+ goto started;
+ }
+
+ if (klass->start)
+ ret = klass->start (provider);
+
+ if (ret) {
+ provider->priv->started_count++;
+ gst_bus_set_flushing (provider->priv->bus, FALSE);
+ }
+
+started:
+
+ g_mutex_unlock (&provider->priv->start_lock);
+
+ return ret;
+}
+
+/**
+ * gst_device_provider_stop:
+ * @provider: A #GstDeviceProvider
+ *
+ * Decreases the use-count by one. If the use count reaches zero, this
+ * #GstDeviceProvider will stop providering the devices. This needs to be
+ * called the same number of times that gst_device_provider_start() was called.
+ *
+ * Since: 1.4
+ */
+
+void
+gst_device_provider_stop (GstDeviceProvider * provider)
+{
+ GstDeviceProviderClass *klass;
+
+ g_return_if_fail (GST_IS_DEVICE_PROVIDER (provider));
+ klass = GST_DEVICE_PROVIDER_GET_CLASS (provider);
+
+ g_mutex_lock (&provider->priv->start_lock);
+
+ if (provider->priv->started_count == 1) {
+ gst_bus_set_flushing (provider->priv->bus, TRUE);
+ if (klass->stop)
+ klass->stop (provider);
+ GST_OBJECT_LOCK (provider);
+ g_list_free_full (provider->devices, (GDestroyNotify) gst_object_unparent);
+ provider->devices = NULL;
+ GST_OBJECT_UNLOCK (provider);
+ } else if (provider->priv->started_count < 1) {
+ g_critical
+ ("Trying to stop a GstDeviceProvider %s which is already stopped",
+ GST_OBJECT_NAME (provider));
+ }
+
+ provider->priv->started_count--;
+ g_mutex_unlock (&provider->priv->start_lock);
+}
+
+
+/**
+ * gst_device_provider_get_factory:
+ * @provider: a #GstDeviceProvider to request the device provider factory of.
+ *
+ * Retrieves the factory that was used to create this device provider.
+ *
+ * Returns: (transfer none): the #GstDeviceProviderFactory used for
+ * creating this device provider. no refcounting is needed.
+ *
+ * Since: 1.4
+ */
+GstDeviceProviderFactory *
+gst_device_provider_get_factory (GstDeviceProvider * provider)
+{
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER (provider), NULL);
+
+ return GST_DEVICE_PROVIDER_GET_CLASS (provider)->factory;
+}
+
+/**
+ * gst_device_provider_can_provider:
+ * @provider: a #GstDeviceProvider
+ *
+ * If this function returns %TRUE, then the device provider can provider if
+ * devices are added or removed. Otherwise, it can only do static probing.
+ *
+ * Returns: %TRUE if the #GstDeviceProvider support providering, %FALSE otherwise
+ */
+gboolean
+gst_device_provider_can_monitor (GstDeviceProvider * provider)
+{
+ GstDeviceProviderClass *klass;
+
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER (provider), FALSE);
+ klass = GST_DEVICE_PROVIDER_GET_CLASS (provider);
+
+ if (klass->start)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/**
+ * gst_device_provider_get_bus:
+ * @provider: a #GstDeviceProvider
+ *
+ * Gets the #GstBus of this #GstDeviceProvider
+ *
+ * Returns: (transfer full): a #GstBus
+ *
+ * Since: 1.4
+ */
+GstBus *
+gst_device_provider_get_bus (GstDeviceProvider * provider)
+{
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER (provider), NULL);
+
+ return gst_object_ref (provider->priv->bus);
+}
+
+/**
+ * gst_device_provider_device_add:
+ * @provider: a #GstDeviceProvider
+ * @device: (transfer full): a #GstDevice that has been added
+ *
+ * Posts a message on the provider's #GstBus to inform applications that
+ * a new device has been added.
+ *
+ * This is for use by subclasses.
+ *
+ * Since: 1.4
+ */
+void
+gst_device_provider_device_add (GstDeviceProvider * provider,
+ GstDevice * device)
+{
+ GstMessage *message;
+
+ if (!gst_object_set_parent (GST_OBJECT (device), GST_OBJECT (provider))) {
+ GST_WARNING_OBJECT (provider, "Could not parent device %p to provider,"
+ " it already has a parent", device);
+ return;
+ }
+
+ GST_OBJECT_LOCK (provider);
+ provider->devices = g_list_prepend (provider->devices,
+ gst_object_ref (device));
+ GST_OBJECT_UNLOCK (provider);
+
+ message = gst_message_new_device_added (GST_OBJECT (provider), device);
+ gst_bus_post (provider->priv->bus, message);
+ gst_object_unref (device);
+}
+
+
+/**
+ * gst_device_provider_device_remove:
+ * @provider: a #GstDeviceProvider
+ * @device: a #GstDevice that has been removed
+ *
+ * Posts a message on the provider's #GstBus to inform applications that
+ * a device has been removed.
+ *
+ * This is for use by subclasses.
+ *
+ * Since: 1.4
+ */
+void
+gst_device_provider_device_remove (GstDeviceProvider * provider,
+ GstDevice * device)
+{
+ GstMessage *message;
+ GList *item;
+
+ GST_OBJECT_LOCK (provider);
+ item = g_list_find (provider->devices, device);
+ if (item) {
+ provider->devices = g_list_delete_link (provider->devices, item);
+ }
+ GST_OBJECT_UNLOCK (provider);
+
+ message = gst_message_new_device_removed (GST_OBJECT (provider), device);
+ g_signal_emit_by_name (device, "removed");
+ gst_bus_post (provider->priv->bus, message);
+ if (item)
+ gst_object_unparent (GST_OBJECT (device));
+}
diff --git a/gst/gstdeviceprovider.h b/gst/gstdeviceprovider.h
new file mode 100644
index 0000000..6370afc
--- /dev/null
+++ b/gst/gstdeviceprovider.h
@@ -0,0 +1,142 @@
+/* GStreamer
+ * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com>
+ *
+ * gstdeviceprovider.h: Device probing and monitoring
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/gstdeviceproviderfactory.h>
+
+
+#ifndef __GST_DEVICE_PROVIDER_H__
+#define __GST_DEVICE_PROVIDER_H__
+
+#include <gst/gstelement.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstDeviceProvider GstDeviceProvider;
+typedef struct _GstDeviceProviderClass GstDeviceProviderClass;
+typedef struct _GstDeviceProviderPrivate GstDeviceProviderPrivate;
+
+#define GST_TYPE_DEVICE_PROVIDER (gst_device_provider_get_type())
+#define GST_IS_DEVICE_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DEVICE_PROVIDER))
+#define GST_IS_DEVICE_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DEVICE_PROVIDER))
+#define GST_DEVICE_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DEVICE_PROVIDER, GstDeviceProviderClass))
+#define GST_DEVICE_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DEVICE_PROVIDER, GstDeviceProvider))
+#define GST_DEVICE_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE_PROVIDER, GstDeviceProviderClass))
+#define GST_DEVICE_PROVIDER_CAST(obj) ((GstDeviceProvider *)(obj))
+
+
+/**
+ * GstDeviceProvider:
+ * @parent: The parent #GstObject
+ * @devices: a #GList of the #GstDevice objects
+ *
+ * The structure of the base #GstDeviceProvider
+ *
+ * Since: 1.4
+ */
+struct _GstDeviceProvider {
+ GstObject parent;
+
+ /* Protected by the Object lock */
+ GList *devices;
+
+ /*< private >*/
+
+ GstDeviceProviderPrivate *priv;
+
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstDeviceProviderClass:
+ * @parent_class: the parent #GstObjectClass structure
+ * @factory: a pointer to the #GstDeviceProviderFactory that creates this
+ * provider
+ * @probe: Returns a list of devices that are currently available.
+ * This should never block.
+ * @start: Starts monitoring for new devices. Only subclasses that can know
+ * that devices have been added or remove need to implement this method.
+ * @stop: Stops monitoring for new devices. Only subclasses that implement
+ * the start() method need to implement this method.
+ *
+ * The structure of the base #GstDeviceProviderClass
+ *
+ * Since: 1.4
+ */
+
+struct _GstDeviceProviderClass {
+ GstObjectClass parent_class;
+
+ GstDeviceProviderFactory *factory;
+
+ GList* (*probe) (GstDeviceProvider * provider);
+
+ gboolean (*start) (GstDeviceProvider * provider);
+ void (*stop) (GstDeviceProvider * provider);
+
+ /*< private >*/
+ gpointer metadata;
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_device_provider_get_type (void);
+
+
+GList * gst_device_provider_get_devices (GstDeviceProvider * provider);
+
+gboolean gst_device_provider_start (GstDeviceProvider * provider);
+void gst_device_provider_stop (GstDeviceProvider * provider);
+
+gboolean gst_device_provider_can_monitor (GstDeviceProvider * provider);
+
+GstBus * gst_device_provider_get_bus (GstDeviceProvider * provider);
+
+void gst_device_provider_device_add (GstDeviceProvider * provider,
+ GstDevice * device);
+void gst_device_provider_device_remove (GstDeviceProvider * provider,
+ GstDevice * device);
+
+
+/* device provider class meta data */
+void gst_device_provider_class_set_metadata (GstDeviceProviderClass *klass,
+ const gchar *longname,
+ const gchar *classification,
+ const gchar *description,
+ const gchar *author);
+void gst_device_provider_class_set_static_metadata (GstDeviceProviderClass *klass,
+ const gchar *longname,
+ const gchar *classification,
+ const gchar *description,
+ const gchar *author);
+void gst_device_provider_class_add_metadata (GstDeviceProviderClass * klass,
+ const gchar * key, const gchar * value);
+void gst_device_provider_class_add_static_metadata (GstDeviceProviderClass * klass,
+ const gchar * key, const gchar * value);
+const gchar * gst_device_provider_class_get_metadata (GstDeviceProviderClass * klass,
+ const gchar * key);
+
+/* factory management */
+GstDeviceProviderFactory * gst_device_provider_get_factory (GstDeviceProvider * provider);
+
+G_END_DECLS
+
+#endif /* __GST_DEVICE_PROVIDER_H__ */
diff --git a/gst/gstdeviceproviderfactory.c b/gst/gstdeviceproviderfactory.c
new file mode 100644
index 0000000..3ea0703
--- /dev/null
+++ b/gst/gstdeviceproviderfactory.c
@@ -0,0 +1,580 @@
+/* GStreamer
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ * 2000 Wim Taymans <wtay@chello.be>
+ * 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
+ *
+ * gstdeviceproviderfactory.c: GstDeviceProviderFactory object, support routines
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstdeviceproviderfactory
+ * @short_description: Create GstDeviceProviders from a factory
+ * @see_also: #GstDeviceProvider, #GstPlugin, #GstPluginFeature, #GstPadTemplate.
+ *
+ * #GstDeviceProviderFactory is used to create instances of device providers. A
+ * GstDeviceProviderfactory can be added to a #GstPlugin as it is also a
+ * #GstPluginFeature.
+ *
+ * Use the gst_device_provider_factory_find() and
+ * gst_device_provider_factory_create() functions to create device
+ * provider instances or use gst_device_provider_factory_make() as a
+ * convenient shortcut.
+ *
+ * Since: 1.4
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gst_private.h"
+
+#include "gstdeviceproviderfactory.h"
+#include "gst.h"
+
+#include "glib-compat-private.h"
+
+GST_DEBUG_CATEGORY_STATIC (device_provider_factory_debug);
+#define GST_CAT_DEFAULT device_provider_factory_debug
+
+static void gst_device_provider_factory_finalize (GObject * object);
+static void gst_device_provider_factory_cleanup (GstDeviceProviderFactory *
+ factory);
+
+/* static guint gst_device_provider_factory_signals[LAST_SIGNAL] = { 0 }; */
+
+/* this is defined in gstelement.c */
+extern GQuark __gst_deviceproviderclass_factory;
+
+#define _do_init \
+{ \
+ GST_DEBUG_CATEGORY_INIT (device_provider_factory_debug, "GST_DEVICE_PROVIDER_FACTORY", \
+ GST_DEBUG_BOLD | GST_DEBUG_FG_WHITE | GST_DEBUG_BG_RED, \
+ "device provider factories keep information about installed device providers"); \
+}
+
+G_DEFINE_TYPE_WITH_CODE (GstDeviceProviderFactory, gst_device_provider_factory,
+ GST_TYPE_PLUGIN_FEATURE, _do_init);
+
+static void
+gst_device_provider_factory_class_init (GstDeviceProviderFactoryClass * klass)
+{
+ GObjectClass *gobject_class = (GObjectClass *) klass;
+
+ gobject_class->finalize = gst_device_provider_factory_finalize;
+}
+
+static void
+gst_device_provider_factory_init (GstDeviceProviderFactory * factory)
+{
+}
+
+static void
+gst_device_provider_factory_finalize (GObject * object)
+{
+ GstDeviceProviderFactory *factory = GST_DEVICE_PROVIDER_FACTORY (object);
+ GstDeviceProvider *provider;
+
+ gst_device_provider_factory_cleanup (factory);
+
+ provider = g_atomic_pointer_get (&factory->provider);
+ if (provider)
+ gst_object_unref (provider);
+
+ G_OBJECT_CLASS (gst_device_provider_factory_parent_class)->finalize (object);
+}
+
+/**
+ * gst_device_provider_factory_find:
+ * @name: name of factory to find
+ *
+ * Search for an device provider factory of the given name. Refs the returned
+ * device provider factory; caller is responsible for unreffing.
+ *
+ * Returns: (transfer full) (nullable): #GstDeviceProviderFactory if
+ * found, %NULL otherwise
+ *
+ * Since: 1.4
+ */
+GstDeviceProviderFactory *
+gst_device_provider_factory_find (const gchar * name)
+{
+ GstPluginFeature *feature;
+
+ g_return_val_if_fail (name != NULL, NULL);
+
+ feature = gst_registry_find_feature (gst_registry_get (), name,
+ GST_TYPE_DEVICE_PROVIDER_FACTORY);
+ if (feature)
+ return GST_DEVICE_PROVIDER_FACTORY (feature);
+
+ /* this isn't an error, for instance when you query if an device provider factory is
+ * present */
+ GST_LOG ("no such device provider factory \"%s\"", name);
+
+ return NULL;
+}
+
+static void
+gst_device_provider_factory_cleanup (GstDeviceProviderFactory * factory)
+{
+ if (factory->metadata) {
+ gst_structure_free ((GstStructure *) factory->metadata);
+ factory->metadata = NULL;
+ }
+ if (factory->type) {
+ factory->type = G_TYPE_INVALID;
+ }
+}
+
+#define CHECK_METADATA_FIELD(klass, name, key) \
+ G_STMT_START { \
+ const gchar *metafield = gst_device_provider_class_get_metadata (klass, key); \
+ if (G_UNLIKELY (metafield == NULL || *metafield == '\0')) { \
+ g_warning ("Device provider factory metadata for '%s' has no valid %s field", name, key); \
+ goto detailserror; \
+ } \
+ } G_STMT_END;
+
+/**
+ * gst_device_provider_register:
+ * @plugin: (allow-none): #GstPlugin to register the device provider with, or %NULL for
+ * a static device provider.
+ * @name: name of device providers of this type
+ * @rank: rank of device provider (higher rank means more importance when autoplugging)
+ * @type: GType of device provider to register
+ *
+ * Create a new device providerfactory capable of instantiating objects of the
+ * @type and add the factory to @plugin.
+ *
+ * Returns: %TRUE, if the registering succeeded, %FALSE on error
+ *
+ * Since: 1.4
+ */
+gboolean
+gst_device_provider_register (GstPlugin * plugin, const gchar * name,
+ guint rank, GType type)
+{
+ GstPluginFeature *existing_feature;
+ GstRegistry *registry;
+ GstDeviceProviderFactory *factory;
+ GstDeviceProviderClass *klass;
+
+ g_return_val_if_fail (name != NULL, FALSE);
+ g_return_val_if_fail (g_type_is_a (type, GST_TYPE_DEVICE_PROVIDER), FALSE);
+
+ registry = gst_registry_get ();
+
+ /* check if feature already exists, if it exists there is no need to update it
+ * when the registry is getting updated, outdated plugins and all their
+ * features are removed and readded.
+ */
+ existing_feature = gst_registry_lookup_feature (registry, name);
+ if (existing_feature) {
+ GST_DEBUG_OBJECT (registry, "update existing feature %p (%s)",
+ existing_feature, name);
+ factory = GST_DEVICE_PROVIDER_FACTORY_CAST (existing_feature);
+ factory->type = type;
+ existing_feature->loaded = TRUE;
+ g_type_set_qdata (type, __gst_deviceproviderclass_factory, factory);
+ gst_object_unref (existing_feature);
+ return TRUE;
+ }
+
+ factory =
+ GST_DEVICE_PROVIDER_FACTORY_CAST (g_object_newv
+ (GST_TYPE_DEVICE_PROVIDER_FACTORY, 0, NULL));
+ gst_plugin_feature_set_name (GST_PLUGIN_FEATURE_CAST (factory), name);
+ GST_LOG_OBJECT (factory, "Created new device providerfactory for type %s",
+ g_type_name (type));
+
+ /* provide info needed during class structure setup */
+ g_type_set_qdata (type, __gst_deviceproviderclass_factory, factory);
+ klass = GST_DEVICE_PROVIDER_CLASS (g_type_class_ref (type));
+
+ CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_LONGNAME);
+ CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_KLASS);
+ CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_DESCRIPTION);
+ CHECK_METADATA_FIELD (klass, name, GST_ELEMENT_METADATA_AUTHOR);
+
+ factory->type = type;
+ factory->metadata = gst_structure_copy ((GstStructure *) klass->metadata);
+
+ if (plugin && plugin->desc.name) {
+ GST_PLUGIN_FEATURE_CAST (factory)->plugin_name = plugin->desc.name;
+ GST_PLUGIN_FEATURE_CAST (factory)->plugin = plugin;
+ g_object_add_weak_pointer ((GObject *) plugin,
+ (gpointer *) & GST_PLUGIN_FEATURE_CAST (factory)->plugin);
+ } else {
+ GST_PLUGIN_FEATURE_CAST (factory)->plugin_name = "NULL";
+ GST_PLUGIN_FEATURE_CAST (factory)->plugin = NULL;
+ }
+ gst_plugin_feature_set_rank (GST_PLUGIN_FEATURE_CAST (factory), rank);
+ GST_PLUGIN_FEATURE_CAST (factory)->loaded = TRUE;
+
+ gst_registry_add_feature (registry, GST_PLUGIN_FEATURE_CAST (factory));
+
+ return TRUE;
+
+ /* ERRORS */
+detailserror:
+ {
+ gst_device_provider_factory_cleanup (factory);
+ return FALSE;
+ }
+}
+
+/**
+ * gst_device_provider_factory_get:
+ * @factory: factory to instantiate
+ *
+ * Returns the device provider of the type defined by the given device
+ * providerfactory.
+ *
+ * Returns: (transfer full) (nullable): the #GstDeviceProvider or %NULL
+ * if the device provider couldn't be created
+ *
+ * Since: 1.4
+ */
+GstDeviceProvider *
+gst_device_provider_factory_get (GstDeviceProviderFactory * factory)
+{
+ GstDeviceProvider *device_provider;
+ GstDeviceProviderClass *oclass;
+ GstDeviceProviderFactory *newfactory;
+
+ g_return_val_if_fail (factory != NULL, NULL);
+
+ newfactory =
+ GST_DEVICE_PROVIDER_FACTORY (gst_plugin_feature_load (GST_PLUGIN_FEATURE
+ (factory)));
+
+ if (newfactory == NULL)
+ goto load_failed;
+
+ factory = newfactory;
+
+ GST_INFO ("getting device provider \"%s\"", GST_OBJECT_NAME (factory));
+
+ if (factory->type == 0)
+ goto no_type;
+
+ device_provider = g_atomic_pointer_get (&newfactory->provider);
+ if (device_provider)
+ return gst_object_ref (device_provider);
+
+ /* create an instance of the device provider, cast so we don't assert on NULL
+ * also set name as early as we can
+ */
+ device_provider = GST_DEVICE_PROVIDER_CAST (g_object_newv (factory->type, 0,
+ NULL));
+ if (G_UNLIKELY (device_provider == NULL))
+ goto no_device_provider;
+
+ /* fill in the pointer to the factory in the device provider class. The
+ * class will not be unreffed currently.
+ * Be thread safe as there might be 2 threads creating the first instance of
+ * an device provider at the same moment
+ */
+ oclass = GST_DEVICE_PROVIDER_GET_CLASS (device_provider);
+ if (!g_atomic_pointer_compare_and_exchange (&oclass->factory, NULL, factory))
+ gst_object_unref (factory);
+
+ gst_object_ref_sink (device_provider);
+
+ /* We use an atomic to make sure we don't create two in parallel */
+ if (!g_atomic_pointer_compare_and_exchange (&newfactory->provider, NULL,
+ device_provider)) {
+ gst_object_unref (device_provider);
+
+ device_provider = g_atomic_pointer_get (&newfactory->provider);
+ }
+
+ GST_DEBUG ("created device provider \"%s\"", GST_OBJECT_NAME (factory));
+
+ return gst_object_ref (device_provider);
+
+ /* ERRORS */
+load_failed:
+ {
+ GST_WARNING_OBJECT (factory,
+ "loading plugin containing feature %s returned NULL!",
+ GST_OBJECT_NAME (factory));
+ return NULL;
+ }
+no_type:
+ {
+ GST_WARNING_OBJECT (factory, "factory has no type");
+ gst_object_unref (factory);
+ return NULL;
+ }
+no_device_provider:
+ {
+ GST_WARNING_OBJECT (factory, "could not create device provider");
+ gst_object_unref (factory);
+ return NULL;
+ }
+}
+
+/**
+ * gst_device_provider_factory_get_by_name:
+ * @factoryname: a named factory to instantiate
+ *
+ * Returns the device provider of the type defined by the given device
+ * provider factory.
+ *
+ * Returns: (transfer full) (nullable): a #GstDeviceProvider or %NULL
+ * if unable to create device provider
+ *
+ * Since: 1.4
+ */
+GstDeviceProvider *
+gst_device_provider_factory_get_by_name (const gchar * factoryname)
+{
+ GstDeviceProviderFactory *factory;
+ GstDeviceProvider *device_provider;
+
+ g_return_val_if_fail (factoryname != NULL, NULL);
+ g_return_val_if_fail (gst_is_initialized (), NULL);
+
+ GST_LOG ("gstdeviceproviderfactory: get_by_name \"%s\"", factoryname);
+
+ factory = gst_device_provider_factory_find (factoryname);
+ if (factory == NULL)
+ goto no_factory;
+
+ GST_LOG_OBJECT (factory, "found factory %p", factory);
+ device_provider = gst_device_provider_factory_get (factory);
+ if (device_provider == NULL)
+ goto create_failed;
+
+ gst_object_unref (factory);
+ return device_provider;
+
+ /* ERRORS */
+no_factory:
+ {
+ GST_INFO ("no such device provider factory \"%s\"!", factoryname);
+ return NULL;
+ }
+create_failed:
+ {
+ GST_INFO_OBJECT (factory, "couldn't create instance!");
+ gst_object_unref (factory);
+ return NULL;
+ }
+}
+
+/**
+ * gst_device_provider_factory_get_device_provider_type:
+ * @factory: factory to get managed #GType from
+ *
+ * Get the #GType for device providers managed by this factory. The type can
+ * only be retrieved if the device provider factory is loaded, which can be
+ * assured with gst_plugin_feature_load().
+ *
+ * Returns: the #GType for device providers managed by this factory or 0 if
+ * the factory is not loaded.
+ *
+ * Since: 1.4
+ */
+GType
+gst_device_provider_factory_get_device_provider_type (GstDeviceProviderFactory *
+ factory)
+{
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER_FACTORY (factory), 0);
+
+ return factory->type;
+}
+
+/**
+ * gst_device_provider_factory_get_metadata:
+ * @factory: a #GstDeviceProviderFactory
+ * @key: a key
+ *
+ * Get the metadata on @factory with @key.
+ *
+ * Returns: (nullable): the metadata with @key on @factory or %NULL
+ * when there was no metadata with the given @key.
+ *
+ * Since: 1.4
+ */
+const gchar *
+gst_device_provider_factory_get_metadata (GstDeviceProviderFactory * factory,
+ const gchar * key)
+{
+ return gst_structure_get_string ((GstStructure *) factory->metadata, key);
+}
+
+/**
+ * gst_device_provider_factory_get_metadata_keys:
+ * @factory: a #GstDeviceProviderFactory
+ *
+ * Get the available keys for the metadata on @factory.
+ *
+ * Returns: (transfer full) (element-type utf8) (array zero-terminated=1) (nullable):
+ * a %NULL-terminated array of key strings, or %NULL when there is no
+ * metadata. Free with g_strfreev() when no longer needed.
+ *
+ * Since: 1.4
+ */
+gchar **
+gst_device_provider_factory_get_metadata_keys (GstDeviceProviderFactory *
+ factory)
+{
+ GstStructure *metadata;
+ gchar **arr;
+ gint i, num;
+
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER_FACTORY (factory), NULL);
+
+ metadata = (GstStructure *) factory->metadata;
+ if (metadata == NULL)
+ return NULL;
+
+ num = gst_structure_n_fields (metadata);
+ if (num == 0)
+ return NULL;
+
+ arr = g_new (gchar *, num + 1);
+ for (i = 0; i < num; ++i) {
+ arr[i] = g_strdup (gst_structure_nth_field_name (metadata, i));
+ }
+ arr[i] = NULL;
+ return arr;
+}
+
+/**
+ * gst_device_provider_factory_has_classesv:
+ * @factory: a #GstDeviceProviderFactory
+ * @classes: (array zero-terminated=1) (allow-none): a %NULL terminated array
+ * of klasses to match, only match if all classes are matched
+ *
+ * Check if @factory matches all of the given classes
+ *
+ * Returns: %TRUE if @factory matches.
+ *
+ * Since: 1.4
+ */
+gboolean
+gst_device_provider_factory_has_classesv (GstDeviceProviderFactory * factory,
+ gchar ** classes)
+{
+ const gchar *klass;
+
+ g_return_val_if_fail (GST_IS_DEVICE_PROVIDER_FACTORY (factory), FALSE);
+
+ klass = gst_device_provider_factory_get_metadata (factory,
+ GST_ELEMENT_METADATA_KLASS);
+
+ if (klass == NULL) {
+ GST_ERROR_OBJECT (factory,
+ "device provider factory is missing klass identifiers");
+ return FALSE;
+ }
+
+ for (; classes != NULL && classes[0] != NULL; classes++) {
+ const gchar *found;
+ guint len;
+
+ if (classes[0] == '\0')
+ continue;
+
+ found = strstr (klass, classes[0]);
+
+ if (!found)
+ return FALSE;
+ if (found != klass && *(found - 1) != '/')
+ return FALSE;
+
+ len = strlen (classes[0]);
+ if (found[len] != 0 && found[len] != '/')
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * gst_device_provider_factory_has_classes:
+ * @factory: a #GstDeviceProviderFactory
+ * @classes: (allow-none): a "/" separate list of klasses to match, only match
+ * if all classes are matched
+ *
+ * Check if @factory matches all of the given @classes
+ *
+ * Returns: %TRUE if @factory matches or if @classes is %NULL.
+ *
+ * Since: 1.4
+ */
+gboolean
+gst_device_provider_factory_has_classes (GstDeviceProviderFactory * factory,
+ const gchar * classes)
+{
+ gchar **classesv;
+ gboolean res;
+
+ if (classes == NULL)
+ return TRUE;
+
+ classesv = g_strsplit (classes, "/", 0);
+
+ res = gst_device_provider_factory_has_classesv (factory, classesv);
+
+ g_strfreev (classesv);
+
+ return res;
+}
+
+static gboolean
+device_provider_filter (GstPluginFeature * feature, GstRank * minrank)
+{
+ /* we only care about device provider factories */
+ if (G_UNLIKELY (!GST_IS_DEVICE_PROVIDER_FACTORY (feature)))
+ return FALSE;
+
+ return (gst_plugin_feature_get_rank (feature) >= *minrank);
+}
+
+/**
+ * gst_device_provider_factory_list_get_device_providers:
+ * @minrank: Minimum rank
+ *
+ * Get a list of factories with a rank greater or equal to @minrank.
+ * The list of factories is returned by decreasing rank.
+ *
+ * Returns: (transfer full) (element-type Gst.DeviceProviderFactory):
+ * a #GList of #GstDeviceProviderFactory device providers. Use
+ * gst_plugin_feature_list_free() after usage.
+ *
+ * Since: 1.4
+ */
+GList *
+gst_device_provider_factory_list_get_device_providers (GstRank minrank)
+{
+ GList *result;
+
+ /* get the feature list using the filter */
+ result = gst_registry_feature_filter (gst_registry_get (),
+ (GstPluginFeatureFilter) device_provider_filter, FALSE, &minrank);
+
+ /* sort on rank and name */
+ result = g_list_sort (result, gst_plugin_feature_rank_compare_func);
+
+ return result;
+}
diff --git a/gst/gstdeviceproviderfactory.h b/gst/gstdeviceproviderfactory.h
new file mode 100644
index 0000000..edda736
--- /dev/null
+++ b/gst/gstdeviceproviderfactory.h
@@ -0,0 +1,90 @@
+/* GStreamer
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ * 2000,2004 Wim Taymans <wim@fluendo.com>
+ * 2012 Olivier Crete <olivier.crete@collabora.com>
+ *
+ * gstdeviceproviderfactory.h: Header for GstDeviceProviderFactory
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+
+
+#ifndef __GST_DEVICE_PROVIDER_FACTORY_H__
+#define __GST_DEVICE_PROVIDER_FACTORY_H__
+
+/**
+ * GstDeviceProviderFactory:
+ *
+ * The opaque #GstDeviceProviderFactory data structure.
+ *
+ * Since: 1.4
+ */
+
+/**
+ * GstDeviceProviderFactoryClass:
+ *
+ * The opaque #GstDeviceProviderFactoryClass data structure.
+ *
+ * Since: 1.4
+ */
+typedef struct _GstDeviceProviderFactory GstDeviceProviderFactory;
+typedef struct _GstDeviceProviderFactoryClass GstDeviceProviderFactoryClass;
+
+#include <gst/gstconfig.h>
+#include <gst/gstplugin.h>
+#include <gst/gstpluginfeature.h>
+#include <gst/gstdeviceprovider.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_DEVICE_PROVIDER_FACTORY (gst_device_provider_factory_get_type())
+#define GST_DEVICE_PROVIDER_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DEVICE_PROVIDER_FACTORY,\
+ GstDeviceProviderFactory))
+#define GST_DEVICE_PROVIDER_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DEVICE_PROVIDER_FACTORY,\
+ GstDeviceProviderFactoryClass))
+#define GST_IS_DEVICE_PROVIDER_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DEVICE_PROVIDER_FACTORY))
+#define GST_IS_DEVICE_PROVIDER_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DEVICE_PROVIDER_FACTORY))
+#define GST_DEVICE_PROVIDER_FACTORY_CAST(obj) ((GstDeviceProviderFactory *)(obj))
+
+GType gst_device_provider_factory_get_type (void);
+
+GstDeviceProviderFactory * gst_device_provider_factory_find (const gchar *name);
+
+GType gst_device_provider_factory_get_device_provider_type (GstDeviceProviderFactory *factory);
+
+const gchar * gst_device_provider_factory_get_metadata (GstDeviceProviderFactory *factory, const gchar *key);
+gchar ** gst_device_provider_factory_get_metadata_keys (GstDeviceProviderFactory *factory);
+
+GstDeviceProvider* gst_device_provider_factory_get (GstDeviceProviderFactory *factory) G_GNUC_MALLOC;
+GstDeviceProvider* gst_device_provider_factory_get_by_name (const gchar *factoryname) G_GNUC_MALLOC;
+
+gboolean gst_device_provider_register (GstPlugin *plugin, const gchar *name,
+ guint rank,
+ GType type);
+
+gboolean gst_device_provider_factory_has_classesv (GstDeviceProviderFactory * factory,
+ gchar ** classes);
+
+gboolean gst_device_provider_factory_has_classes (GstDeviceProviderFactory *factory,
+ const gchar * classes);
+
+GList * gst_device_provider_factory_list_get_device_providers (
+ GstRank minrank) G_GNUC_MALLOC;
+
+G_END_DECLS
+
+#endif /* __GST_DEVICE_PROVIDER_FACTORY_H__ */
diff --git a/gst/gstelement.c b/gst/gstelement.c
index 25870f5..3fbe7fe 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -342,8 +342,8 @@ gst_element_release_request_pad (GstElement * element, GstPad * pad)
* <note>An element is only required to provide a clock in the PAUSED
* state. Some elements can provide a clock in other states.</note>
*
- * Returns: (transfer full): the GstClock provided by the element or %NULL
- * if no clock could be provided. Unref after usage.
+ * Returns: (transfer full) (nullable): the GstClock provided by the
+ * element or %NULL if no clock could be provided. Unref after usage.
*
* MT safe.
*/
@@ -583,8 +583,8 @@ gst_element_set_index (GstElement * element, GstIndex * index)
*
* Gets the index from the element.
*
- * Returns: (transfer full): a #GstIndex or %NULL when no index was set on the
- * element. unref after usage.
+ * Returns: (transfer full) (nullable): a #GstIndex or %NULL when no
+ * index was set on the element. unref after usage.
*
* MT safe.
*/
@@ -865,8 +865,8 @@ pad_compare_name (GstPad * pad1, const gchar * name)
* Retrieves a pad from @element by name. This version only retrieves
* already-existing (i.e. 'static') pads.
*
- * Returns: (transfer full): the requested #GstPad if found, otherwise %NULL.
- * unref after usage.
+ * Returns: (transfer full) (nullable): the requested #GstPad if
+ * found, otherwise %NULL. unref after usage.
*
* MT safe.
*/
@@ -978,8 +978,8 @@ _gst_element_request_pad (GstElement * element, GstPadTemplate * templ,
* This method is slow and will be deprecated in the future. New code should
* use gst_element_request_pad() with the requested template.
*
- * Returns: (transfer full): requested #GstPad if found, otherwise %NULL.
- * Release after usage.
+ * Returns: (transfer full) (nullable): requested #GstPad if found,
+ * otherwise %NULL. Release after usage.
*/
GstPad *
gst_element_get_request_pad (GstElement * element, const gchar * name)
@@ -1083,8 +1083,8 @@ gst_element_get_request_pad (GstElement * element, const gchar * name)
*
* The pad should be released with gst_element_release_request_pad().
*
- * Returns: (transfer full): requested #GstPad if found, otherwise %NULL.
- * Release after usage.
+ * Returns: (transfer full) (nullable): requested #GstPad if found,
+ * otherwise %NULL. Release after usage.
*/
GstPad *
gst_element_request_pad (GstElement * element,
@@ -1396,8 +1396,9 @@ gst_element_class_get_pad_template_list (GstElementClass * element_class)
* that has subclasses, make sure to pass the g_class parameter of the
* #GInstanceInitFunc here.</note>
*
- * Returns: (transfer none): the #GstPadTemplate with the given name, or %NULL
- * if none was found. No unreferencing is necessary.
+ * Returns: (transfer none) (nullable): the #GstPadTemplate with the
+ * given name, or %NULL if none was found. No unreferencing is
+ * necessary.
*/
GstPadTemplate *
gst_element_class_get_pad_template (GstElementClass *
@@ -1730,12 +1731,12 @@ gst_element_post_message (GstElement * element, GstMessage * message)
/**
* _gst_element_error_printf:
- * @format: the printf-like format to use, or %NULL
+ * @format: (allow-none): the printf-like format to use, or %NULL
*
* This function is only used internally by the gst_element_error() macro.
*
- * Returns: (transfer full): a newly allocated string, or %NULL if the format
- * was %NULL or ""
+ * Returns: (transfer full) (nullable): a newly allocated string, or
+ * %NULL if the format was %NULL or ""
*
* MT safe.
*/
diff --git a/gst/gstelement.h b/gst/gstelement.h
index 408d10c..bdd7215 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -694,7 +694,8 @@ GType gst_element_get_type (void);
* For a nameless element, this returns %NULL, which you can safely g_free()
* as well.
*
- * Returns: (transfer full): the name of @elem. g_free() after usage. MT safe.
+ * Returns: (transfer full) (nullable): the name of @elem. g_free()
+ * after usage. MT safe.
*
*/
#define gst_element_get_name(elem) gst_object_get_name(GST_OBJECT_CAST(elem))
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index aa0c5af..b1f737b 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -123,7 +123,8 @@ gst_element_factory_finalize (GObject * object)
* Search for an element factory of the given name. Refs the returned
* element factory; caller is responsible for unreffing.
*
- * Returns: (transfer full): #GstElementFactory if found, %NULL otherwise
+ * Returns: (transfer full) (nullable): #GstElementFactory if found,
+ * %NULL otherwise
*/
GstElementFactory *
gst_element_factory_find (const gchar * name)
@@ -335,8 +336,8 @@ detailserror:
* It will be given the name supplied, since all elements require a name as
* their first argument.
*
- * Returns: (transfer floating): new #GstElement or %NULL if the element couldn't
- * be created
+ * Returns: (transfer floating) (nullable): new #GstElement or %NULL
+ * if the element couldn't be created
*/
GstElement *
gst_element_factory_create (GstElementFactory * factory, const gchar * name)
@@ -422,7 +423,8 @@ no_element:
* consisting of the element factory name and a number.
* If name is given, it will be given the name supplied.
*
- * Returns: (transfer floating): new #GstElement or %NULL if unable to create element
+ * Returns: (transfer floating) (nullable): new #GstElement or %NULL
+ * if unable to create element
*/
GstElement *
gst_element_factory_make (const gchar * factoryname, const gchar * name)
@@ -500,8 +502,8 @@ gst_element_factory_get_element_type (GstElementFactory * factory)
*
* Get the metadata on @factory with @key.
*
- * Returns: the metadata with @key on @factory or %NULL when there was no
- * metadata with the given @key.
+ * Returns: (nullable): the metadata with @key on @factory or %NULL
+ * when there was no metadata with the given @key.
*/
const gchar *
gst_element_factory_get_metadata (GstElementFactory * factory,
@@ -516,7 +518,7 @@ gst_element_factory_get_metadata (GstElementFactory * factory,
*
* Get the available keys for the metadata on @factory.
*
- * Returns: (transfer full) (element-type utf8) (array zero-terminated=1):
+ * Returns: (transfer full) (element-type utf8) (array zero-terminated=1) (nullable):
* a %NULL-terminated array of key strings, or %NULL when there is no
* metadata. Free with g_strfreev() when no longer needed.
*/
diff --git a/gst/gstevent.h b/gst/gstevent.h
index 2ee38eb..db3cb51 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -275,8 +275,8 @@ GST_EXPORT GType _gst_event_type;
#define gst_event_make_writable(ev) GST_EVENT_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (ev)))
/**
* gst_event_replace:
- * @old_event: (inout) (transfer full): pointer to a pointer to a #GstEvent
- * to be replaced.
+ * @old_event: (inout) (transfer full) (nullable): pointer to a
+ * pointer to a #GstEvent to be replaced.
* @new_event: (allow-none) (transfer none): pointer to a #GstEvent that will
* replace the event pointed to by @old_event.
*
@@ -301,8 +301,8 @@ gst_event_replace (GstEvent **old_event, GstEvent *new_event)
/**
* gst_event_steal:
- * @old_event: (inout) (transfer full): pointer to a pointer to a #GstEvent
- * to be stolen.
+ * @old_event: (inout) (transfer full) (nullable): pointer to a
+ * pointer to a #GstEvent to be stolen.
*
* Atomically replace the #GstEvent pointed to by @old_event with %NULL and
* return the original event.
@@ -321,8 +321,8 @@ gst_event_steal (GstEvent **old_event)
/**
* gst_event_take:
- * @old_event: (inout) (transfer full): pointer to a pointer to a #GstEvent
- * to be stolen.
+ * @old_event: (inout) (transfer full) (nullable): pointer to a
+ * pointer to a #GstEvent to be stolen.
* @new_event: (allow-none) (transfer full): pointer to a #GstEvent that will
* replace the event pointed to by @old_event.
*
diff --git a/gst/gstformat.c b/gst/gstformat.c
index 69600cd..aeae6c6 100644
--- a/gst/gstformat.c
+++ b/gst/gstformat.c
@@ -85,8 +85,8 @@ _priv_gst_format_initialize (void)
*
* Get a printable name for the given format. Do not modify or free.
*
- * Returns: a reference to the static name of the format or %NULL if
- * the format is unknown.
+ * Returns: (nullable): a reference to the static name of the format
+ * or %NULL if the format is unknown.
*/
const gchar *
gst_format_get_name (GstFormat format)
@@ -225,7 +225,8 @@ gst_formats_contains (const GstFormat * formats, GstFormat format)
*
* Get details about the given format.
*
- * Returns: The #GstFormatDefinition for @format or %NULL on failure.
+ * Returns: (nullable): The #GstFormatDefinition for @format or %NULL
+ * on failure.
*
* MT safe.
*/
diff --git a/gst/gstghostpad.c b/gst/gstghostpad.c
index cac0d51..082aa15 100644
--- a/gst/gstghostpad.c
+++ b/gst/gstghostpad.c
@@ -79,8 +79,8 @@ static GstPad *gst_proxy_pad_get_target (GstPad * pad);
*
* Invoke the default iterate internal links function of the proxy pad.
*
- * Returns: a #GstIterator of #GstPad, or %NULL if @pad has no parent. Unref each
- * returned pad with gst_object_unref().
+ * Returns: (nullable): a #GstIterator of #GstPad, or %NULL if @pad
+ * has no parent. Unref each returned pad with gst_object_unref().
*/
GstIterator *
gst_proxy_pad_iterate_internal_links_default (GstPad * pad, GstObject * parent)
@@ -208,8 +208,8 @@ gst_proxy_pad_get_target (GstPad * pad)
* The internal pad of a #GstGhostPad is the internally used
* pad of opposite direction, which is used to link to the target.
*
- * Returns: (transfer full): the target #GstProxyPad, can be %NULL.
- * Unref target pad after usage.
+ * Returns: (transfer full) (nullable): the target #GstProxyPad, can
+ * be %NULL. Unref target pad after usage.
*/
GstProxyPad *
gst_proxy_pad_get_internal (GstProxyPad * pad)
@@ -653,7 +653,8 @@ construct_failed:
*
* The created ghostpad will not have a padtemplate.
*
- * Returns: (transfer full): a new #GstPad, or %NULL in case of an error.
+ * Returns: (transfer full) (nullable): a new #GstPad, or %NULL in
+ * case of an error.
*/
GstPad *
gst_ghost_pad_new_no_target (const gchar * name, GstPadDirection dir)
@@ -679,7 +680,8 @@ gst_ghost_pad_new_no_target (const gchar * name, GstPadDirection dir)
*
* Will ref the target.
*
- * Returns: (transfer floating): a new #GstPad, or %NULL in case of an error.
+ * Returns: (transfer floating) (nullable): a new #GstPad, or %NULL in
+ * case of an error.
*/
GstPad *
gst_ghost_pad_new (const gchar * name, GstPad * target)
@@ -719,7 +721,8 @@ set_target_failed:
*
* Will ref the target.
*
- * Returns: (transfer full): a new #GstPad, or %NULL in case of an error.
+ * Returns: (transfer full) (nullable): a new #GstPad, or %NULL in
+ * case of an error.
*/
GstPad *
@@ -761,7 +764,8 @@ set_target_failed:
* Create a new ghostpad based on @templ, without setting a target. The
* direction will be taken from the @templ.
*
- * Returns: (transfer full): a new #GstPad, or %NULL in case of an error.
+ * Returns: (transfer full) (nullable): a new #GstPad, or %NULL in
+ * case of an error.
*/
GstPad *
gst_ghost_pad_new_no_target_from_template (const gchar * name,
@@ -783,8 +787,9 @@ gst_ghost_pad_new_no_target_from_template (const gchar * name,
*
* Get the target pad of @gpad. Unref target pad after usage.
*
- * Returns: (transfer full): the target #GstPad, can be %NULL if the ghostpad
- * has no target set. Unref target pad after usage.
+ * Returns: (transfer full) (nullable): the target #GstPad, can be
+ * %NULL if the ghostpad has no target set. Unref target pad after
+ * usage.
*/
GstPad *
gst_ghost_pad_get_target (GstGhostPad * gpad)
diff --git a/gst/gstglobaldevicemonitor.c b/gst/gstglobaldevicemonitor.c
deleted file mode 100644
index 68900ef..0000000
--- a/gst/gstglobaldevicemonitor.c
+++ /dev/null
@@ -1,501 +0,0 @@
-/* GStreamer
- * Copyright (C) 2013 Olivier Crete <olivier.crete@collabora.com>
- *
- * gstglobaldevicemonitor.c: Global device monitor
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstglobaldevicemonitor
- * @short_description: A global device monitor and prober
- * @see_also: #GstDevice, #GstDeviceMonitor
- *
- * Applications should create a #GstGlobalDeviceMonitor when they want
- * to probe, list and monitor devices of a specific type. The
- * #GstGlobalDeviceMonitor will create the appropriate
- * #GstDeviceMonitor objects and manage them. It will then post
- * messages on its #GstBus for devices that have been added and
- * removed.
- *
- * Since: 1.4
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "gst_private.h"
-#include "gstglobaldevicemonitor.h"
-
-struct _GstGlobalDeviceMonitorPrivate
-{
- gboolean started;
-
- GstBus *bus;
-
- GPtrArray *monitors;
- guint cookie;
-
- GstCaps *caps;
- gchar *classes;
-};
-
-
-G_DEFINE_TYPE (GstGlobalDeviceMonitor, gst_global_device_monitor,
- GST_TYPE_OBJECT);
-
-static void gst_global_device_monitor_dispose (GObject * object);
-
-static void
-gst_global_device_monitor_class_init (GstGlobalDeviceMonitorClass * klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (GstGlobalDeviceMonitorPrivate));
-
- object_class->dispose = gst_global_device_monitor_dispose;
-}
-
-static void
-bus_sync_message (GstBus * bus, GstMessage * message,
- GstGlobalDeviceMonitor * monitor)
-{
- GstMessageType type = GST_MESSAGE_TYPE (message);
-
- if (type == GST_MESSAGE_DEVICE_ADDED || type == GST_MESSAGE_DEVICE_REMOVED) {
- gboolean matches;
- GstCaps *caps;
- GstDevice *device;
-
- if (type == GST_MESSAGE_DEVICE_ADDED)
- gst_message_parse_device_added (message, &device);
- else
- gst_message_parse_device_removed (message, &device);
-
- GST_OBJECT_LOCK (monitor);
- caps = gst_device_get_caps (device);
- matches = gst_caps_can_intersect (monitor->priv->caps, caps) &&
- gst_device_has_classes (device, monitor->priv->classes);
- gst_caps_unref (caps);
- GST_OBJECT_UNLOCK (monitor);
-
- if (matches)
- gst_bus_post (monitor->priv->bus, gst_message_ref (message));
- }
-}
-
-
-static void
-gst_global_device_monitor_init (GstGlobalDeviceMonitor * self)
-{
- GList *factories;
-
- self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
- GST_TYPE_GLOBAL_DEVICE_MONITOR, GstGlobalDeviceMonitorPrivate);
-
- self->priv->bus = gst_bus_new ();
- gst_bus_set_flushing (self->priv->bus, TRUE);
-
- self->priv->monitors = g_ptr_array_new ();
- self->priv->caps = gst_caps_new_any ();
- self->priv->classes = g_strdup ("");
-
- factories =
- gst_device_monitor_factory_list_get_device_monitors (self->priv->classes,
- 1);
-
- while (factories) {
- GstDeviceMonitorFactory *factory = factories->data;
- GstDeviceMonitor *monitor;
-
- factories = g_list_remove (factories, factory);
-
- monitor = gst_device_monitor_factory_get (factory);
- if (monitor) {
- GstBus *bus = gst_device_monitor_get_bus (monitor);
-
- gst_bus_enable_sync_message_emission (bus);
- g_signal_connect (bus, "sync-message",
- G_CALLBACK (bus_sync_message), self);
- g_ptr_array_add (self->priv->monitors, monitor);
- }
-
- gst_object_unref (factory);
- }
-}
-
-
-static void
-gst_global_device_monitor_remove (GstGlobalDeviceMonitor * self, guint i)
-{
- GstDeviceMonitor *monitor = g_ptr_array_index (self->priv->monitors, i);
- GstBus *bus;
-
- g_ptr_array_remove_index_fast (self->priv->monitors, i);
-
- bus = gst_device_monitor_get_bus (monitor);
- g_signal_handlers_disconnect_by_func (bus, bus_sync_message, self);
- gst_object_unref (bus);
-
- gst_object_unref (monitor);
-}
-
-static void
-gst_global_device_monitor_dispose (GObject * object)
-{
- GstGlobalDeviceMonitor *self = GST_GLOBAL_DEVICE_MONITOR (object);
-
- g_return_if_fail (self->priv->started == FALSE);
-
- if (self->priv->monitors) {
- while (self->priv->monitors->len)
- gst_global_device_monitor_remove (self, self->priv->monitors->len - 1);
- g_ptr_array_unref (self->priv->monitors);
- self->priv->monitors = NULL;
- }
-
- gst_caps_replace (&self->priv->caps, NULL);
- g_free (self->priv->classes);
- gst_object_replace ((GstObject **) & self->priv->bus, NULL);
-
- G_OBJECT_CLASS (gst_global_device_monitor_parent_class)->dispose (object);
-}
-
-/**
- * gst_global_device_monitor_get_devices:
- * @monitor: A #GstDeviceMonitor
- *
- * Gets a list of devices from all of the relevant monitors. This may actually
- * probe the hardware if the global monitor is not currently started.
- *
- * Returns: (transfer full) (element-type GstDevice): a #GList of
- * #GstDevice
- *
- * Since: 1.4
- */
-
-GList *
-gst_global_device_monitor_get_devices (GstGlobalDeviceMonitor * monitor)
-{
- GList *devices = NULL;
- guint i;
- guint cookie;
-
- g_return_val_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor), NULL);
-
- GST_OBJECT_LOCK (monitor);
-
-again:
-
- g_list_free_full (devices, gst_object_unref);
- devices = NULL;
-
- cookie = monitor->priv->cookie;
-
- for (i = 0; i < monitor->priv->monitors->len; i++) {
- GList *tmpdev;
- GstDeviceMonitor *device_monitor =
- gst_object_ref (g_ptr_array_index (monitor->priv->monitors, i));
- GList *item;
-
- GST_OBJECT_UNLOCK (monitor);
-
- tmpdev = gst_device_monitor_get_devices (device_monitor);
-
- for (item = tmpdev; item; item = item->next) {
- GstDevice *dev = GST_DEVICE (item->data);
- GstCaps *caps = gst_device_get_caps (dev);
-
- if (gst_caps_can_intersect (monitor->priv->caps, caps) &&
- gst_device_has_classes (dev, monitor->priv->classes))
- devices = g_list_prepend (devices, gst_object_ref (dev));
- gst_caps_unref (caps);
- }
-
- g_list_free_full (tmpdev, gst_object_unref);
- gst_object_unref (device_monitor);
-
- GST_OBJECT_LOCK (monitor);
-
- if (monitor->priv->cookie != cookie)
- goto again;
- }
-
- GST_OBJECT_UNLOCK (monitor);
-
- return devices;
-}
-
-/**
- * gst_global_device_monitor_start:
- * @monitor: A #GstGlobalDeviceMonitor
- *
- * Starts monitoring the devices, one this has succeeded, the
- * %GST_MESSAGE_DEVICE_ADDED and %GST_MESSAGE_DEVICE_REMOVED messages
- * will be emitted on the bus when the list of devices changes.
- *
- * Returns: %TRUE if the device monitoring could be started
- *
- * Since: 1.4
- */
-
-gboolean
-gst_global_device_monitor_start (GstGlobalDeviceMonitor * monitor)
-{
- guint i;
-
- g_return_val_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor), FALSE);
-
- GST_OBJECT_LOCK (monitor);
-
- if (monitor->priv->monitors->len == 0) {
- GST_OBJECT_UNLOCK (monitor);
- return FALSE;
- }
-
- gst_bus_set_flushing (monitor->priv->bus, FALSE);
-
- for (i = 0; i < monitor->priv->monitors->len; i++) {
- if (!gst_device_monitor_start (g_ptr_array_index (monitor->priv->monitors,
- i))) {
- gst_bus_set_flushing (monitor->priv->bus, TRUE);
-
- for (; i != 0; i--)
- gst_device_monitor_stop (g_ptr_array_index (monitor->priv->monitors,
- i - 1));
-
- GST_OBJECT_UNLOCK (monitor);
- return FALSE;
- }
- }
-
- monitor->priv->started = TRUE;
- GST_OBJECT_UNLOCK (monitor);
-
- return TRUE;
-}
-
-/**
- * gst_global_device_monitor_stop:
- * @monitor: A #GstDeviceMonitor
- *
- * Stops monitoring the devices.
- *
- * Since: 1.4
- */
-void
-gst_global_device_monitor_stop (GstGlobalDeviceMonitor * monitor)
-{
- guint i;
-
- g_return_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor));
-
- gst_bus_set_flushing (monitor->priv->bus, TRUE);
-
- GST_OBJECT_LOCK (monitor);
- for (i = 0; i < monitor->priv->monitors->len; i++)
- gst_device_monitor_stop (g_ptr_array_index (monitor->priv->monitors, i));
- monitor->priv->started = FALSE;
- GST_OBJECT_UNLOCK (monitor);
-
-}
-
-/**
- * gst_global_device_monitor_set_classes_filter:
- * @monitor: the global device monitor
- * @classes: device classes to use as filter
- *
- * Filter devices monitored by device class, e.g. in case you are only
- * interested in a certain type of device like audio devices or
- * video sources.
- *
- * Since: 1.4
- */
-void
-gst_global_device_monitor_set_classes_filter (GstGlobalDeviceMonitor * monitor,
- const gchar * classes)
-{
- GList *factories = NULL;
- guint i;
-
- g_return_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor));
- g_return_if_fail (!monitor->priv->started);
-
- GST_OBJECT_LOCK (monitor);
- if (!strcmp (monitor->priv->classes, classes)) {
- GST_OBJECT_UNLOCK (monitor);
- return;
- }
-
- g_free (monitor->priv->classes);
- monitor->priv->classes = g_strdup (classes);
-
- factories = gst_device_monitor_factory_list_get_device_monitors (classes, 1);
-
- for (i = 0; i < monitor->priv->monitors->len; i++) {
- GstDeviceMonitor *dev_monitor;
- GstDeviceMonitorFactory *f;
- GList *item;
-
- dev_monitor = g_ptr_array_index (monitor->priv->monitors, i);
- f = gst_device_monitor_get_factory (dev_monitor);
-
- item = g_list_find (factories, f);
-
- if (item) {
- /* If the item is in our list, then remove it from the list of factories,
- * we don't have it to re-create it later
- */
- factories = g_list_remove_link (factories, item);
- gst_object_unref (f);
- } else {
- /* If it's not in our list, them remove it from the list of monitors.
- */
-
- monitor->priv->cookie++;
- gst_global_device_monitor_remove (monitor, i);
- i--;
- }
- }
-
- while (factories) {
- GstDeviceMonitorFactory *factory = factories->data;
- GstDeviceMonitor *device_monitor;
-
- factories = g_list_remove (factories, factory);
-
- device_monitor = gst_device_monitor_factory_get (factory);
- if (device_monitor) {
- GstBus *bus = gst_device_monitor_get_bus (device_monitor);
-
- gst_bus_enable_sync_message_emission (bus);
- g_signal_connect (bus, "sync-message",
- G_CALLBACK (bus_sync_message), monitor);
- gst_object_unref (bus);
- g_ptr_array_add (monitor->priv->monitors, device_monitor);
- monitor->priv->cookie++;
- }
-
- gst_object_unref (factory);
- }
-
- GST_OBJECT_UNLOCK (monitor);
-}
-
-/**
- * gst_global_device_monitor_get_classes_filter:
- * @monitor: the global device monitor
- *
- * Return the type (device classes) filter active for device filtering.
- *
- * Returns: string of device classes that are being filtered.
- *
- * Since: 1.4
- */
-gchar *
-gst_global_device_monitor_get_classes_filter (GstGlobalDeviceMonitor * monitor)
-{
- gchar *res;
-
- g_return_val_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor), 0);
-
- GST_OBJECT_LOCK (monitor);
- res = g_strdup (monitor->priv->classes);
- GST_OBJECT_UNLOCK (monitor);
-
- return res;
-}
-
-/**
- * gst_global_device_monitor_set_caps_filter:
- * @monitor: the global device monitor
- * @caps: caps to filter
- *
- * Set caps to use as filter for devices. By default ANY caps are used,
- * meaning no caps filter is active.
- *
- * Since: 1.4
- */
-void
-gst_global_device_monitor_set_caps_filter (GstGlobalDeviceMonitor * monitor,
- GstCaps * caps)
-{
- g_return_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor));
- g_return_if_fail (GST_IS_CAPS (caps));
-
- GST_OBJECT_LOCK (monitor);
- gst_caps_replace (&monitor->priv->caps, caps);
- GST_OBJECT_UNLOCK (monitor);
-}
-
-/**
- * gst_global_device_monitor_get_caps_filter:
- * @monitor: a global device monitor
- *
- * Get the #GstCaps filter set by gst_global_device_monitor_set_caps_filter().
- *
- * Returns: (transfer full): the filter caps that are active (or ANY caps)
- *
- * Since: 1.4
- */
-GstCaps *
-gst_global_device_monitor_get_caps_filter (GstGlobalDeviceMonitor * monitor)
-{
- GstCaps *res;
-
- g_return_val_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor), NULL);
-
- GST_OBJECT_LOCK (monitor);
- res = gst_caps_ref (monitor->priv->caps);
- GST_OBJECT_UNLOCK (monitor);
-
- return res;
-}
-
-/**
- * gst_global_device_monitor_new:
- *
- * Create a new #GstGlobalDeviceMonitor
- *
- * Returns: (transfer full): a new global device monitor.
- *
- * Since: 1.4
- */
-GstGlobalDeviceMonitor *
-gst_global_device_monitor_new (void)
-{
- return g_object_new (GST_TYPE_GLOBAL_DEVICE_MONITOR, NULL);
-}
-
-/**
- * gst_global_device_monitor_get_bus:
- * @monitor: a #GstDeviceMonitor
- *
- * Gets the #GstBus of this #GstGlobalDeviceMonitor
- *
- * Returns: (transfer full): a #GstBus
- *
- * Since: 1.4
- */
-GstBus *
-gst_global_device_monitor_get_bus (GstGlobalDeviceMonitor * monitor)
-{
- g_return_val_if_fail (GST_IS_GLOBAL_DEVICE_MONITOR (monitor), NULL);
-
- return gst_object_ref (monitor->priv->bus);
-}
diff --git a/gst/gstglobaldevicemonitor.h b/gst/gstglobaldevicemonitor.h
deleted file mode 100644
index b92fd40..0000000
--- a/gst/gstglobaldevicemonitor.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/* GStreamer
- * Copyright (C) 2013 Olivier Crete <olivier.crete@collabora.com>
- *
- * gstglobaldevicemonitor.c: Global device monitor
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-#ifndef __GST_GLOBAL_DEVICE_MONITOR_H__
-#define __GST_GLOBAL_DEVICE_MONITOR_H__
-
-#include <gst/gstobject.h>
-#include <gst/gstdevice.h>
-#include <gst/gstdevicemonitor.h>
-#include <gst/gstdevicemonitorfactory.h>
-
-G_BEGIN_DECLS
-
-typedef struct _GstGlobalDeviceMonitor GstGlobalDeviceMonitor;
-typedef struct _GstGlobalDeviceMonitorPrivate GstGlobalDeviceMonitorPrivate;
-typedef struct _GstGlobalDeviceMonitorClass GstGlobalDeviceMonitorClass;
-
-#define GST_TYPE_GLOBAL_DEVICE_MONITOR (gst_global_device_monitor_get_type())
-#define GST_IS_GLOBAL_DEVICE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GLOBAL_DEVICE_MONITOR))
-#define GST_IS_GLOBAL_DEVICE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GLOBAL_DEVICE_MONITOR))
-#define GST_GLOBAL_DEVICE_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_GLOBAL_DEVICE_MONITOR, GstGlobalDeviceMonitorClass))
-#define GST_GLOBAL_DEVICE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GLOBAL_DEVICE_MONITOR, GstGlobalDeviceMonitor))
-#define GST_GLOBAL_DEVICE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GLOBAL_DEVICE_MONITOR, GstGlobalDeviceMonitorClass))
-#define GST_GLOBAL_DEVICE_MONITOR_CAST(obj) ((GstGlobalDeviceMonitor *)(obj))
-
-/**
- * GstGlobalDeviceMonitor:
- * @parent: the parent #GstObject structure
- *
- * Opaque global device monitor object structure.
- *
- * Since: 1.4
- */
-struct _GstGlobalDeviceMonitor {
- GstObject parent;
-
- /*< private >*/
-
- GstGlobalDeviceMonitorPrivate *priv;
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
-/**
- * GstGlobalDeviceMonitorClass:
- * @parent_class: the parent #GstObjectClass structure
- *
- * Opaque global device monitor class structure.
- *
- * Since: 1.4
- */
-struct _GstGlobalDeviceMonitorClass {
- GstObjectClass parent_class;
-
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
-GType gst_global_device_monitor_get_type (void);
-
-GstGlobalDeviceMonitor * gst_global_device_monitor_new (void);
-
-GstBus * gst_global_device_monitor_get_bus (GstGlobalDeviceMonitor * monitor);
-
-GList * gst_global_device_monitor_get_devices (GstGlobalDeviceMonitor * monitor);
-
-
-gboolean gst_global_device_monitor_start (GstGlobalDeviceMonitor * monitor);
-
-void gst_global_device_monitor_stop (GstGlobalDeviceMonitor * monitor);
-
-
-void gst_global_device_monitor_set_classes_filter (GstGlobalDeviceMonitor * monitor,
- const gchar * classes);
-
-gchar * gst_global_device_monitor_get_classes_filter (GstGlobalDeviceMonitor * monitor);
-
-
-void gst_global_device_monitor_set_caps_filter (GstGlobalDeviceMonitor * monitor,
- GstCaps * caps);
-
-GstCaps * gst_global_device_monitor_get_caps_filter (GstGlobalDeviceMonitor * monitor);
-
-G_END_DECLS
-
-#endif /* __GST_GLOBAL_DEVICE_MONITOR_H__ */
diff --git a/gst/gstinfo.h b/gst/gstinfo.h
index 319e841..5c802bd 100644
--- a/gst/gstinfo.h
+++ b/gst/gstinfo.h
@@ -197,7 +197,7 @@ struct _GstDebugCategory {
/**
* GST_STR_NULL:
- * @str: The string to check.
+ * @str: (allow-none): The string to check.
*
* Macro to use when a string must not be %NULL, but may be %NULL. If the string
* is %NULL, "(NULL)" is printed instead.
diff --git a/gst/gstmemory.c b/gst/gstmemory.c
index c29fccd..9e97d1e 100644
--- a/gst/gstmemory.c
+++ b/gst/gstmemory.c
@@ -225,8 +225,8 @@ gst_memory_resize (GstMemory * mem, gssize offset, gsize size)
* This function takes ownership of old @mem and returns a reference to a new
* #GstMemory.
*
- * Returns: (transfer full): a #GstMemory object mapped with @flags or %NULL when
- * a mapping is not possible.
+ * Returns: (transfer full) (nullable): a #GstMemory object mapped
+ * with @flags or %NULL when a mapping is not possible.
*/
GstMemory *
gst_memory_make_mapped (GstMemory * mem, GstMapInfo * info, GstMapFlags flags)
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 5014016..f4b3ded 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -256,8 +256,8 @@ gst_message_init (GstMessageImpl * message, GstMessageType type,
* gst_message_new_custom:
* @type: The #GstMessageType to distinguish messages
* @src: The object originating the message.
- * @structure: (transfer full): the structure for the message. The message
- * will take ownership of the structure.
+ * @structure: (transfer full) (allow-none): the structure for the
+ * message. The message will take ownership of the structure.
*
* Create a new custom-typed message. This can be used for anything not
* handled by other message-specific functions to pass a message to the
@@ -779,14 +779,16 @@ gst_message_new_segment_done (GstObject * src, GstFormat format,
GstMessage *
gst_message_new_application (GstObject * src, GstStructure * structure)
{
+ g_return_val_if_fail (structure != NULL, NULL);
+
return gst_message_new_custom (GST_MESSAGE_APPLICATION, src, structure);
}
/**
* gst_message_new_element:
* @src: (transfer none): The object originating the message.
- * @structure: (transfer full): The structure for the message. The message
- * will take ownership of the structure.
+ * @structure: (transfer full): The structure for the
+ * message. The message will take ownership of the structure.
*
* Create a new element-specific message. This is meant as a generic way of
* allowing one-way communication from an element to an application, for example
@@ -800,6 +802,8 @@ gst_message_new_application (GstObject * src, GstStructure * structure)
GstMessage *
gst_message_new_element (GstObject * src, GstStructure * structure)
{
+ g_return_val_if_fail (structure != NULL, NULL);
+
return gst_message_new_custom (GST_MESSAGE_ELEMENT, src, structure);
}
@@ -2336,7 +2340,7 @@ gst_message_parse_have_context (GstMessage * message, GstContext ** context)
* @device: (transfer none): The new #GstDevice
*
* Creates a new device-added message. The device-added message is produced by
- * #GstDeviceMonitor or a #GstGlobalDeviceMonitor. They announce the appearance
+ * #GstDeviceProvider or a #GstlDeviceMonitor. They announce the appearance
* of monitored devices.
*
* Returns: a newly allocated #GstMessage
@@ -2366,7 +2370,7 @@ gst_message_new_device_added (GstObject * src, GstDevice * device)
* pointer to the new #GstDevice, or %NULL
*
* Parses a device-added message. The device-added message is produced by
- * #GstDeviceMonitor or a #GstGlobalDeviceMonitor. It announces the appearance
+ * #GstDeviceProvider or a #GstDeviceMonitor. It announces the appearance
* of monitored devices.
*
* Since: 1.4
@@ -2388,7 +2392,7 @@ gst_message_parse_device_added (GstMessage * message, GstDevice ** device)
* @device: (transfer none): The removed #GstDevice
*
* Creates a new device-removed message. The device-removed message is produced
- * by #GstDeviceMonitor or a #GstGlobalDeviceMonitor. They announce the
+ * by #GstDeviceProvider or a #GstDeviceMonitor. They announce the
* disappearance of monitored devices.
*
* Returns: a newly allocated #GstMessage
@@ -2418,7 +2422,7 @@ gst_message_new_device_removed (GstObject * src, GstDevice * device)
* pointer to the removed #GstDevice, or %NULL
*
* Parses a device-removed message. The device-removed message is produced by
- * #GstDeviceMonitor or a #GstGlobalDeviceMonitor. It announces the
+ * #GstDeviceProvider or a #GstDeviceMonitor. It announces the
* disappearance of monitored devices.
*
* Since: 1.4
diff --git a/gst/gstmessage.h b/gst/gstmessage.h
index 7433edc..7d4282e 100644
--- a/gst/gstmessage.h
+++ b/gst/gstmessage.h
@@ -105,9 +105,9 @@ typedef struct _GstMessage GstMessage;
* filter for GST_MESSAGE_EXTENDED and then check the result for the
* specific type. (Since 1.4)
* @GST_MESSAGE_DEVICE_ADDED: Message indicating a #GstDevice was added to
- * a #GstDeviceMonitor (Since 1.4)
+ * a #GstDeviceProvider (Since 1.4)
* @GST_MESSAGE_DEVICE_REMOVED: Message indicating a #GstDevice was removed
- * from a #GstDeviceMonitor (Since 1.4)
+ * from a #GstDeviceProvider (Since 1.4)
* @GST_MESSAGE_ANY: mask for all of the above messages.
*
* The different message types that are available.
@@ -404,8 +404,8 @@ gst_message_copy (const GstMessage * msg)
#define gst_message_make_writable(msg) GST_MESSAGE_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (msg)))
/**
* gst_message_replace:
- * @old_message: (inout) (transfer full): pointer to a pointer to a #GstMessage
- * to be replaced.
+ * @old_message: (inout) (transfer full) (nullable): pointer to a
+ * pointer to a #GstMessage to be replaced.
* @new_message: (allow-none) (transfer none): pointer to a #GstMessage that will
* replace the message pointed to by @old_message.
*
diff --git a/gst/gstmeta.c b/gst/gstmeta.c
index 0e0aca1..1269c56 100644
--- a/gst/gstmeta.c
+++ b/gst/gstmeta.c
@@ -205,8 +205,8 @@ gst_meta_register (GType api, const gchar * impl, gsize size,
* Lookup a previously registered meta info structure by its implementation name
* @impl.
*
- * Returns: (transfer none): a #GstMetaInfo with @impl, or %NULL when no such
- * metainfo exists.
+ * Returns: (transfer none) (nullable): a #GstMetaInfo with @impl, or
+ * %NULL when no such metainfo exists.
*/
const GstMetaInfo *
gst_meta_get_info (const gchar * impl)
diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c
index bece06a..d65bd02 100644
--- a/gst/gstminiobject.c
+++ b/gst/gstminiobject.c
@@ -469,9 +469,9 @@ gst_mini_object_unref (GstMiniObject * mini_object)
/**
* gst_mini_object_replace:
- * @olddata: (inout) (transfer full): pointer to a pointer to a mini-object to
- * be replaced
- * @newdata: pointer to new mini-object
+ * @olddata: (inout) (transfer full) (nullable): pointer to a pointer to a
+ * mini-object to be replaced
+ * @newdata: (allow-none): pointer to new mini-object
*
* Atomically modifies a pointer to point to a new mini-object.
* The reference count of @olddata is decreased and the reference count of
@@ -691,7 +691,8 @@ gst_mini_object_set_qdata (GstMiniObject * object, GQuark quark,
* This function gets back user data pointers stored via
* gst_mini_object_set_qdata().
*
- * Returns: (transfer none): The user data pointer set, or %NULL
+ * Returns: (transfer none) (nullable): The user data pointer set, or
+ * %NULL
*/
gpointer
gst_mini_object_get_qdata (GstMiniObject * object, GQuark quark)
@@ -721,7 +722,8 @@ gst_mini_object_get_qdata (GstMiniObject * object, GQuark quark)
* and removes the data from @object without invoking its destroy() function (if
* any was set).
*
- * Returns: (transfer full): The user data pointer set, or %NULL
+ * Returns: (transfer full) (nullable): The user data pointer set, or
+ * %NULL
*/
gpointer
gst_mini_object_steal_qdata (GstMiniObject * object, GQuark quark)
diff --git a/gst/gstobject.c b/gst/gstobject.c
index b997db6..5691bec 100644
--- a/gst/gstobject.c
+++ b/gst/gstobject.c
@@ -310,9 +310,9 @@ gst_object_ref_sink (gpointer object)
/**
* gst_object_replace:
- * @oldobj: (inout) (transfer full): pointer to a place of a #GstObject to
- * replace
- * @newobj: (transfer none): a new #GstObject
+ * @oldobj: (inout) (transfer full) (nullable): pointer to a place of
+ * a #GstObject to replace
+ * @newobj: (transfer none) (allow-none): a new #GstObject
*
* Atomically modifies a pointer to point to a new object.
* The reference count of @oldobj is decreased and the reference count of
@@ -588,7 +588,7 @@ had_parent:
/**
* gst_object_set_name:
* @object: a #GstObject
- * @name: new name of object
+ * @name: (allow-none): new name of object
*
* Sets the name of @object, or gives @object a guaranteed unique
* name (if @name is %NULL).
@@ -649,7 +649,8 @@ had_parent:
*
* Free-function: g_free
*
- * Returns: (transfer full): the name of @object. g_free() after usage.
+ * Returns: (transfer full) (nullable): the name of @object. g_free()
+ * after usage.
*
* MT safe. This function grabs and releases @object's LOCK.
*/
@@ -724,8 +725,8 @@ had_parent:
* Returns the parent of @object. This function increases the refcount
* of the parent object so you should gst_object_unref() it after usage.
*
- * Returns: (transfer full): parent of @object, this can be %NULL if @object
- * has no parent. unref after usage.
+ * Returns: (transfer full) (nullable): parent of @object, this can be
+ * %NULL if @object has no parent. unref after usage.
*
* MT safe. Grabs and releases @object's LOCK.
*/
@@ -992,8 +993,8 @@ gst_object_get_path_string (GstObject * object)
*
* Searches the list of properties under control.
*
- * Returns: a #GstControlBinding or %NULL if the property is not being
- * controlled.
+ * Returns: (nullable): a #GstControlBinding or %NULL if the property
+ * is not being controlled.
*/
static GstControlBinding *
gst_object_find_control_binding (GstObject * self, const gchar * name)
@@ -1210,8 +1211,8 @@ gst_object_add_control_binding (GstObject * object, GstControlBinding * binding)
* Gets the corresponding #GstControlBinding for the property. This should be
* unreferenced again after use.
*
- * Returns: (transfer full): the #GstControlBinding for @property_name or %NULL if
- * the property is not controlled.
+ * Returns: (transfer full) (nullable): the #GstControlBinding for
+ * @property_name or %NULL if the property is not controlled.
*/
GstControlBinding *
gst_object_get_control_binding (GstObject * object, const gchar * property_name)
@@ -1271,8 +1272,8 @@ gst_object_remove_control_binding (GstObject * object,
*
* Gets the value for the given controlled property at the requested time.
*
- * Returns: the GValue of the property at the given time, or %NULL if the
- * property isn't controlled.
+ * Returns: (nullable): the GValue of the property at the given time,
+ * or %NULL if the property isn't controlled.
*/
GValue *
gst_object_get_value (GstObject * object, const gchar * property_name,
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 09ce750..28170ac 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -766,7 +766,7 @@ gst_pad_get_property (GObject * object, guint prop_id,
/**
* gst_pad_new:
- * @name: the name of the new pad.
+ * @name: (allow-none): the name of the new pad.
* @direction: the #GstPadDirection of the pad.
*
* Creates a new pad with the given name in the given direction.
@@ -774,7 +774,8 @@ gst_pad_get_property (GObject * object, guint prop_id,
* will be assigned.
* This function makes a copy of the name so you can safely free the name.
*
- * Returns: (transfer floating): a new #GstPad, or %NULL in case of an error.
+ * Returns: (transfer floating) (nullable): a new #GstPad, or %NULL in
+ * case of an error.
*
* MT safe.
*/
@@ -788,14 +789,15 @@ gst_pad_new (const gchar * name, GstPadDirection direction)
/**
* gst_pad_new_from_template:
* @templ: the pad template to use
- * @name: the name of the element
+ * @name: (allow-none): the name of the element
*
* Creates a new pad with the given name from the given template.
* If name is %NULL, a guaranteed unique name (across all pads)
* will be assigned.
* This function makes a copy of the name so you can safely free the name.
*
- * Returns: (transfer floating): a new #GstPad, or %NULL in case of an error.
+ * Returns: (transfer floating) (nullable): a new #GstPad, or %NULL in
+ * case of an error.
*/
GstPad *
gst_pad_new_from_template (GstPadTemplate * templ, const gchar * name)
@@ -816,7 +818,8 @@ gst_pad_new_from_template (GstPadTemplate * templ, const gchar * name)
* will be assigned.
* This function makes a copy of the name so you can safely free the name.
*
- * Returns: (transfer floating): a new #GstPad, or %NULL in case of an error.
+ * Returns: (transfer floating) (nullable): a new #GstPad, or %NULL in
+ * case of an error.
*/
GstPad *
gst_pad_new_from_static_template (GstStaticPadTemplate * templ,
@@ -2458,9 +2461,9 @@ gst_pad_set_pad_template (GstPad * pad, GstPadTemplate * templ)
*
* Gets the template for @pad.
*
- * Returns: (transfer full): the #GstPadTemplate from which this pad was
- * instantiated, or %NULL if this pad has no template. Unref after
- * usage.
+ * Returns: (transfer full) (nullable): the #GstPadTemplate from which
+ * this pad was instantiated, or %NULL if this pad has no
+ * template. Unref after usage.
*/
GstPadTemplate *
gst_pad_get_pad_template (GstPad * pad)
@@ -2584,9 +2587,9 @@ gst_pad_get_peer (GstPad * pad)
* calling gst_pad_query_caps() on @pad and its peer. The caller owns a reference
* on the resulting caps.
*
- * Returns: (transfer full): the allowed #GstCaps of the pad link. Unref the
- * caps when you no longer need it. This function returns %NULL when @pad
- * has no peer.
+ * Returns: (transfer full) (nullable): the allowed #GstCaps of the
+ * pad link. Unref the caps when you no longer need it. This
+ * function returns %NULL when @pad has no peer.
*
* MT safe.
*/
@@ -2641,8 +2644,8 @@ no_peer:
*
* The caller must free this iterator after use with gst_iterator_free().
*
- * Returns: a #GstIterator of #GstPad, or %NULL if @pad has no parent. Unref each
- * returned pad with gst_object_unref().
+ * Returns: (nullable): a #GstIterator of #GstPad, or %NULL if @pad
+ * has no parent. Unref each returned pad with gst_object_unref().
*/
GstIterator *
gst_pad_iterate_internal_links_default (GstPad * pad, GstObject * parent)
@@ -2707,9 +2710,9 @@ no_parent:
*
* Free-function: gst_iterator_free
*
- * Returns: (transfer full): a new #GstIterator of #GstPad or %NULL when the
- * pad does not have an iterator function configured. Use
- * gst_iterator_free() after usage.
+ * Returns: (transfer full) (nullable): a new #GstIterator of #GstPad
+ * or %NULL when the pad does not have an iterator function
+ * configured. Use gst_iterator_free() after usage.
*/
GstIterator *
gst_pad_iterate_internal_links (GstPad * pad)
@@ -5348,8 +5351,9 @@ gst_pad_get_element_private (GstPad * pad)
* Returns a new reference of the sticky event of type @event_type
* from the event.
*
- * Returns: (transfer full): a #GstEvent of type @event_type or %NULL when no
- * event of @event_type was on @pad. Unref after usage.
+ * Returns: (transfer full) (nullable): a #GstEvent of type
+ * @event_type or %NULL when no event of @event_type was on
+ * @pad. Unref after usage.
*/
GstEvent *
gst_pad_get_sticky_event (GstPad * pad, GstEventType event_type, guint idx)
diff --git a/gst/gstpad.h b/gst/gstpad.h
index bfb8b1a..2ac335c 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -251,9 +251,9 @@ typedef gboolean (*GstPadActivateModeFunction) (GstPad *pad, GstObject *parent,
/**
* GstPadChainFunction:
* @pad: the sink #GstPad that performed the chain.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
* @buffer: the #GstBuffer that is chained, not %NULL.
*
* A function that will be called on sinkpads when chaining buffers.
@@ -274,9 +274,9 @@ typedef GstFlowReturn (*GstPadChainFunction) (GstPad *pad, GstObject *parent,
/**
* GstPadChainListFunction:
* @pad: the sink #GstPad that performed the chain.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
* @list: the #GstBufferList that is chained, not %NULL.
*
* A function that will be called on sinkpads when chaining buffer lists.
@@ -297,9 +297,9 @@ typedef GstFlowReturn (*GstPadChainListFunction) (GstPad *pad, GstObject *paren
/**
* GstPadGetRangeFunction:
* @pad: the src #GstPad to perform the getrange on.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
* @offset: the offset of the range
* @length: the length of the range
* @buffer: a memory location to hold the result buffer, cannot be %NULL.
@@ -348,9 +348,9 @@ typedef GstFlowReturn (*GstPadGetRangeFunction) (GstPad *pad, GstObject *parent
/**
* GstPadEventFunction:
* @pad: the #GstPad to handle the event.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
* @event: the #GstEvent to handle.
*
* Function signature to handle an event for the pad.
@@ -365,9 +365,9 @@ typedef gboolean (*GstPadEventFunction) (GstPad *pad, GstObject *parent,
/**
* GstPadIterIntLinkFunction:
* @pad: The #GstPad to query.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
*
* The signature of the internal pad link iterator function.
*
@@ -382,9 +382,9 @@ typedef GstIterator* (*GstPadIterIntLinkFunction) (GstPad *pad, Gst
/**
* GstPadQueryFunction:
* @pad: the #GstPad to query.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
* @query: the #GstQuery object to execute
*
* The signature of the query function.
@@ -399,9 +399,9 @@ typedef gboolean (*GstPadQueryFunction) (GstPad *pad, GstObject *parent,
/**
* GstPadLinkFunction:
* @pad: the #GstPad that is linked.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
* @peer: the peer #GstPad of the link
*
* Function signature to handle a new link on the pad.
@@ -412,9 +412,9 @@ typedef GstPadLinkReturn (*GstPadLinkFunction) (GstPad *pad, GstObject *parent,
/**
* GstPadUnlinkFunction:
* @pad: the #GstPad that is linked.
- * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
- * @parent is guaranteed to be not-%NULL and remain valid during the
- * execution of this function.
+ * @parent: (allow-none): the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
+ * flag is set, @parent is guaranteed to be not-%NULL and remain valid
+ * during the execution of this function.
*
* Function signature to handle a unlinking the pad prom its peer.
*/
@@ -524,8 +524,8 @@ typedef enum
* GstPadProbeInfo:
* @type: the current probe type
* @id: the id of the probe
- * @data: type specific data, check the @type field to know the datatype.
- * This field can be %NULL.
+ * @data: (allow-none): type specific data, check the @type field to know the
+ * datatype. This field can be %NULL.
* @offset: offset of pull probe, this field is valid when @type contains
* #GST_PAD_PROBE_TYPE_PULL
* @size: size of pull probe, this field is valid when @type contains
@@ -581,7 +581,7 @@ typedef GstPadProbeReturn (*GstPadProbeCallback) (GstPad *pad, GstPadProbeIn
/**
* GstPadStickyEventsForeachFunction:
* @pad: the #GstPad.
- * @event: a sticky #GstEvent.
+ * @event: (allow-none): a sticky #GstEvent.
* @user_data: the #gpointer to optional user data.
*
* Callback used by gst_pad_sticky_events_foreach().
@@ -1186,6 +1186,8 @@ GstPad* gst_pad_new_from_static_template (GstStaticPadTemplate *templ, const g
* Can return %NULL if the pad did not have a parent.
*
* MT safe.
+ *
+ * Returns: (nullable): the parent
*/
#define gst_pad_get_parent(pad) gst_object_get_parent (GST_OBJECT_CAST (pad))
diff --git a/gst/gstplugin.c b/gst/gstplugin.c
index 9bfacc1..c9c286a 100644
--- a/gst/gstplugin.c
+++ b/gst/gstplugin.c
@@ -1006,7 +1006,8 @@ gst_plugin_get_origin (GstPlugin * plugin)
*
* There may be plugins that do not have a valid release date set on them.
*
- * Returns: the date string of the plugin, or %NULL if not available.
+ * Returns: (nullable): the date string of the plugin, or %NULL if not
+ * available.
*/
const gchar *
gst_plugin_get_release_date_string (GstPlugin * plugin)
@@ -1039,7 +1040,8 @@ gst_plugin_is_loaded (GstPlugin * plugin)
* Gets the plugin specific data cache. If it is %NULL there is no cached data
* stored. This is the case when the registry is getting rebuilt.
*
- * Returns: (transfer none): The cached data as a #GstStructure or %NULL.
+ * Returns: (transfer none) (nullable): The cached data as a
+ * #GstStructure or %NULL.
*/
const GstStructure *
gst_plugin_get_cache_data (GstPlugin * plugin)
diff --git a/gst/gstplugin.h b/gst/gstplugin.h
index 500be30..6e49332 100644
--- a/gst/gstplugin.h
+++ b/gst/gstplugin.h
@@ -145,11 +145,12 @@ typedef gboolean (*GstPluginInitFullFunc) (GstPlugin *plugin, gpointer user_data
* @source: source module plugin belongs to
* @package: shipped package plugin belongs to
* @origin: URL to provider of plugin
- * @release_datetime: date time string in ISO 8601 format (or rather, a
- * subset thereof), or %NULL. Allowed are the following formats:
- * "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with 'T' a separator and 'Z'
- * indicating UTC/Zulu time). This field should be set via the
- * GST_PACKAGE_RELEASE_DATETIME preprocessor macro.
+ * @release_datetime: (allow-none): date time string in ISO 8601
+ * format (or rather, a subset thereof), or %NULL. Allowed are the
+ * following formats: "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with
+ * 'T' a separator and 'Z' indicating UTC/Zulu time). This field
+ * should be set via the %GST_PACKAGE_RELEASE_DATETIME
+ * preprocessor macro.
*
* A plugin should export a variable of this type called plugin_desc. The plugin
* loader will use the data provided there to initialize the plugin.
diff --git a/gst/gstpluginfeature.c b/gst/gstpluginfeature.c
index 6672f7b..ef24eaf 100644
--- a/gst/gstpluginfeature.c
+++ b/gst/gstpluginfeature.c
@@ -90,7 +90,8 @@ gst_plugin_feature_finalize (GObject * object)
* feature = loaded_feature;
* ]|
*
- * Returns: (transfer full): a reference to the loaded feature, or %NULL on error
+ * Returns: (transfer full) (nullable): a reference to the loaded
+ * feature, or %NULL on error
*/
GstPluginFeature *
gst_plugin_feature_load (GstPluginFeature * feature)
@@ -185,8 +186,9 @@ gst_plugin_feature_get_rank (GstPluginFeature * feature)
*
* Get the plugin that provides this feature.
*
- * Returns: (transfer full): the plugin that provides this feature, or %NULL.
- * Unref with gst_object_unref() when no longer needed.
+ * Returns: (transfer full) (nullable): the plugin that provides this
+ * feature, or %NULL. Unref with gst_object_unref() when no
+ * longer needed.
*/
GstPlugin *
gst_plugin_feature_get_plugin (GstPluginFeature * feature)
@@ -205,8 +207,9 @@ gst_plugin_feature_get_plugin (GstPluginFeature * feature)
*
* Get the name of the plugin that provides this feature.
*
- * Returns: the name of the plugin that provides this feature, or %NULL if
- * the feature is not associated with a plugin.
+ * Returns: (nullable): the name of the plugin that provides this
+ * feature, or %NULL if the feature is not associated with a
+ * plugin.
*
* Since: 1.2
*/
diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h
index bc01969..08abb73 100644
--- a/gst/gstpluginfeature.h
+++ b/gst/gstpluginfeature.h
@@ -75,7 +75,7 @@ typedef enum {
* Returns the name of @feature.
* For a nameless plugin feature, this returns %NULL.
*
- * Returns: (transfer none): the name of @feature. MT safe.
+ * Returns: (transfer none) (nullable): the name of @feature. MT safe.
*
*/
#define gst_plugin_feature_get_name(feature) GST_OBJECT_NAME(feature)
diff --git a/gst/gstpoll.c b/gst/gstpoll.c
index 6694a87..34f93f4 100644
--- a/gst/gstpoll.c
+++ b/gst/gstpoll.c
@@ -545,8 +545,8 @@ gst_poll_collect_winsock_events (GstPoll * set)
*
* Free-function: gst_poll_free
*
- * Returns: (transfer full): a new #GstPoll, or %NULL in case of an error.
- * Free with gst_poll_free().
+ * Returns: (transfer full) (nullable): a new #GstPoll, or %NULL in
+ * case of an error. Free with gst_poll_free().
*/
GstPoll *
gst_poll_new (gboolean controllable)
@@ -617,8 +617,8 @@ no_socket_pair:
*
* Free-function: gst_poll_free
*
- * Returns: (transfer full): a new #GstPoll, or %NULL in case of an error.
- * Free with gst_poll_free().
+ * Returns: (transfer full) (nullable): a new #GstPoll, or %NULL in
+ * case of an error. Free with gst_poll_free().
*/
GstPoll *
gst_poll_new_timer (void)
diff --git a/gst/gstpreset.c b/gst/gstpreset.c
index 19f0fbb..27db9ec 100644
--- a/gst/gstpreset.c
+++ b/gst/gstpreset.c
@@ -116,9 +116,9 @@ static gboolean gst_preset_default_save_presets_file (GstPreset * preset);
/*
* preset_get_paths:
* @preset: a #GObject that implements #GstPreset
- * @preset_user_path: location for path or %NULL
- * @preset_app_path: location for path or %NULL
- * @preset_system_path: location for path or %NULL
+ * @preset_user_path: (out) (allow-none): location for path or %NULL
+ * @preset_app_path: (out) (allow-none): location for path or %NULL
+ * @preset_system_path: (out) (allow-none): location for path or %NULL
*
* Fetch the preset_path for user local, application specific and system wide
* settings. Don't free after use.
@@ -1069,7 +1069,7 @@ gst_preset_delete_preset (GstPreset * preset, const gchar * name)
* @preset: a #GObject that implements #GstPreset
* @name: preset name
* @tag: meta data item name
- * @value: new value
+ * @value: (allow-none): new value
*
* Sets a new @value for an existing meta data item or adds a new item. Meta
* data @tag names can be something like e.g. "comment". Supplying %NULL for the
@@ -1141,7 +1141,8 @@ gst_preset_set_app_dir (const gchar * app_dir)
* Gets the directory for application specific presets if set by the
* application.
*
- * Returns: the directory or %NULL, don't free or modify the string
+ * Returns: (nullable): the directory or %NULL, don't free or modify
+ * the string
*/
const gchar *
gst_preset_get_app_dir (void)
diff --git a/gst/gstquery.h b/gst/gstquery.h
index 3750a19..18a075c 100644
--- a/gst/gstquery.h
+++ b/gst/gstquery.h
@@ -276,8 +276,8 @@ gst_query_copy (const GstQuery * q)
#define gst_query_make_writable(q) GST_QUERY_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (q)))
/**
* gst_query_replace:
- * @old_query: (inout) (transfer full): pointer to a pointer to a #GstQuery
- * to be replaced.
+ * @old_query: (inout) (transfer full) (nullable): pointer to a pointer to a
+ * #GstQuery to be replaced.
* @new_query: (allow-none) (transfer none): pointer to a #GstQuery that will
* replace the query pointed to by @old_query.
*
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index 2838737..73fdf0e 100644
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
@@ -127,7 +127,7 @@
#include "gstinfo.h"
#include "gsterror.h"
#include "gstregistry.h"
-#include "gstdevicemonitorfactory.h"
+#include "gstdeviceproviderfactory.h"
#include "gstpluginloader.h"
@@ -166,7 +166,7 @@ struct _GstRegistryPrivate
guint32 efl_cookie;
GList *typefind_factory_list;
guint32 tfl_cookie;
- GList *device_monitor_factory_list;
+ GList *device_provider_factory_list;
guint32 dmfl_cookie;
};
@@ -317,10 +317,10 @@ gst_registry_finalize (GObject * object)
gst_plugin_feature_list_free (registry->priv->typefind_factory_list);
}
- if (registry->priv->device_monitor_factory_list) {
+ if (registry->priv->device_provider_factory_list) {
GST_DEBUG_OBJECT (registry,
- "Cleaning up cached device monitor factory list");
- gst_plugin_feature_list_free (registry->priv->device_monitor_factory_list);
+ "Cleaning up cached device provider factory list");
+ gst_plugin_feature_list_free (registry->priv->device_provider_factory_list);
}
G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -789,20 +789,20 @@ gst_registry_get_typefind_factory_list (GstRegistry * registry)
static GList *
-gst_registry_get_device_monitor_factory_list (GstRegistry * registry)
+gst_registry_get_device_provider_factory_list (GstRegistry * registry)
{
GList *list;
GST_OBJECT_LOCK (registry);
gst_registry_get_feature_list_or_create (registry,
- &registry->priv->device_monitor_factory_list,
- &registry->priv->dmfl_cookie, GST_TYPE_DEVICE_MONITOR_FACTORY);
+ &registry->priv->device_provider_factory_list,
+ &registry->priv->dmfl_cookie, GST_TYPE_DEVICE_PROVIDER_FACTORY);
/* Return reffed copy */
list =
gst_plugin_feature_list_copy (registry->
- priv->device_monitor_factory_list);
+ priv->device_provider_factory_list);
GST_OBJECT_UNLOCK (registry);
@@ -868,8 +868,9 @@ gst_registry_plugin_name_filter (GstPlugin * plugin, const gchar * name)
* Find the plugin with the given name in the registry.
* The plugin will be reffed; caller is responsible for unreffing.
*
- * Returns: (transfer full): the plugin with the given name or %NULL if the
- * plugin was not found. gst_object_unref() after usage.
+ * Returns: (transfer full) (nullable): the plugin with the given name
+ * or %NULL if the plugin was not found. gst_object_unref() after
+ * usage.
*
* MT safe.
*/
@@ -902,8 +903,9 @@ gst_registry_find_plugin (GstRegistry * registry, const gchar * name)
*
* Find the pluginfeature with the given name and type in the registry.
*
- * Returns: (transfer full): the pluginfeature with the given name and type
- * or %NULL if the plugin was not found. gst_object_unref() after usage.
+ * Returns: (transfer full) (nullable): the pluginfeature with the
+ * given name and type or %NULL if the plugin was not
+ * found. gst_object_unref() after usage.
*
* MT safe.
*/
@@ -951,8 +953,8 @@ gst_registry_get_feature_list (GstRegistry * registry, GType type)
return gst_registry_get_element_factory_list (registry);
else if (type == GST_TYPE_TYPE_FIND_FACTORY)
return gst_registry_get_typefind_factory_list (registry);
- else if (type == GST_TYPE_DEVICE_MONITOR_FACTORY)
- return gst_registry_get_device_monitor_factory_list (registry);
+ else if (type == GST_TYPE_DEVICE_PROVIDER_FACTORY)
+ return gst_registry_get_device_provider_factory_list (registry);
data.type = type;
data.name = NULL;
@@ -1055,8 +1057,8 @@ gst_registry_lookup_bn (GstRegistry * registry, const char *basename)
* Look up a plugin in the given registry with the given filename.
* If found, plugin is reffed.
*
- * Returns: (transfer full): the #GstPlugin if found, or %NULL if not.
- * gst_object_unref() after usage.
+ * Returns: (transfer full) (nullable): the #GstPlugin if found, or
+ * %NULL if not. gst_object_unref() after usage.
*/
GstPlugin *
gst_registry_lookup (GstRegistry * registry, const char *filename)
diff --git a/gst/gstregistrybinary.c b/gst/gstregistrybinary.c
index ee4a7a0..7b8556e 100644
--- a/gst/gstregistrybinary.c
+++ b/gst/gstregistrybinary.c
@@ -56,7 +56,7 @@
#include <gst/gstelement.h>
#include <gst/gsttypefind.h>
#include <gst/gsttypefindfactory.h>
-#include <gst/gstdevicemonitorfactory.h>
+#include <gst/gstdeviceproviderfactory.h>
#include <gst/gsturi.h>
#include <gst/gstinfo.h>
#include <gst/gstenumtypes.h>
@@ -526,7 +526,7 @@ priv_gst_registry_binary_read_cache (GstRegistry * registry,
/* make sure these types exist */
GST_TYPE_ELEMENT_FACTORY;
GST_TYPE_TYPE_FIND_FACTORY;
- GST_TYPE_DEVICE_MONITOR_FACTORY;
+ GST_TYPE_DEVICE_PROVIDER_FACTORY;
#ifndef GST_DISABLE_GST_DEBUG
timer = g_timer_new ();
diff --git a/gst/gstregistrychunks.c b/gst/gstregistrychunks.c
index fcacd6b..f854865 100644
--- a/gst/gstregistrychunks.c
+++ b/gst/gstregistrychunks.c
@@ -33,7 +33,7 @@
#include <gst/gstelement.h>
#include <gst/gsttypefind.h>
#include <gst/gsttypefindfactory.h>
-#include <gst/gstdevicemonitorfactory.h>
+#include <gst/gstdeviceproviderfactory.h>
#include <gst/gsturi.h>
#include <gst/gstinfo.h>
#include <gst/gstenumtypes.h>
@@ -333,17 +333,17 @@ gst_registry_chunks_save_feature (GList ** list, GstPluginFeature * feature)
} else {
gst_registry_chunks_save_const_string (list, "");
}
- } else if (GST_IS_DEVICE_MONITOR_FACTORY (feature)) {
- GstRegistryChunkDeviceMonitorFactory *tff;
- GstDeviceMonitorFactory *factory = GST_DEVICE_MONITOR_FACTORY (feature);
+ } else if (GST_IS_DEVICE_PROVIDER_FACTORY (feature)) {
+ GstRegistryChunkDeviceProviderFactory *tff;
+ GstDeviceProviderFactory *factory = GST_DEVICE_PROVIDER_FACTORY (feature);
/* Initialize with zeroes because of struct padding and
* valgrind complaining about copying unitialized memory
*/
- tff = g_slice_new0 (GstRegistryChunkDeviceMonitorFactory);
+ tff = g_slice_new0 (GstRegistryChunkDeviceProviderFactory);
chk =
gst_registry_chunks_make_data (tff,
- sizeof (GstRegistryChunkDeviceMonitorFactory));
+ sizeof (GstRegistryChunkDeviceProviderFactory));
pf = (GstRegistryChunkPluginFeature *) tff;
@@ -668,16 +668,16 @@ gst_registry_chunks_load_feature (GstRegistry * registry, gchar ** in,
factory->extensions[i - 1] = str;
}
}
- } else if (GST_IS_DEVICE_MONITOR_FACTORY (feature)) {
- GstRegistryChunkDeviceMonitorFactory *dmf;
- GstDeviceMonitorFactory *factory = GST_DEVICE_MONITOR_FACTORY (feature);
+ } else if (GST_IS_DEVICE_PROVIDER_FACTORY (feature)) {
+ GstRegistryChunkDeviceProviderFactory *dmf;
+ GstDeviceProviderFactory *factory = GST_DEVICE_PROVIDER_FACTORY (feature);
const gchar *meta_data_str;
align (*in);
GST_DEBUG
("Reading/casting for GstRegistryChunkPluginFeature at address %p",
*in);
- unpack_element (*in, dmf, GstRegistryChunkDeviceMonitorFactory, end, fail);
+ unpack_element (*in, dmf, GstRegistryChunkDeviceProviderFactory, end, fail);
pf = (GstRegistryChunkPluginFeature *) dmf;
diff --git a/gst/gstregistrychunks.h b/gst/gstregistrychunks.h
index e2c86ba..57ced70 100644
--- a/gst/gstregistrychunks.h
+++ b/gst/gstregistrychunks.h
@@ -132,15 +132,15 @@ typedef struct _GstRegistryChunkTypeFindFactory
} GstRegistryChunkTypeFindFactory;
/*
- * GstRegistryChunkDeviceMonitorFactory:
+ * GstRegistryChunkDeviceProviderFactory:
*
- * A structure containing the device monitor factory fields
+ * A structure containing the device provider factory fields
*/
-typedef struct _GstRegistryChunkDeviceMonitorFactory
+typedef struct _GstRegistryChunkDeviceProviderFactory
{
GstRegistryChunkPluginFeature plugin_feature;
-} GstRegistryChunkDeviceMonitorFactory;
+} GstRegistryChunkDeviceProviderFactory;
/*
* GstRegistryChunkPadTemplate:
diff --git a/gst/gstsample.c b/gst/gstsample.c
index 76b76bd..ce8228a 100644
--- a/gst/gstsample.c
+++ b/gst/gstsample.c
@@ -143,10 +143,10 @@ had_parent:
*
* Get the buffer associated with @sample
*
- * Returns: (transfer none): the buffer of @sample or %NULL when there
- * is no buffer. The buffer remains valid as long as @sample is valid.
- * If you need to hold on to it for longer than that, take a ref to
- * the buffer with gst_buffer_ref().
+ * Returns: (transfer none) (nullable): the buffer of @sample or %NULL
+ * when there is no buffer. The buffer remains valid as long as
+ * @sample is valid. If you need to hold on to it for longer than
+ * that, take a ref to the buffer with gst_buffer_ref().
*/
GstBuffer *
gst_sample_get_buffer (GstSample * sample)
@@ -162,10 +162,10 @@ gst_sample_get_buffer (GstSample * sample)
*
* Get the caps associated with @sample
*
- * Returns: (transfer none): the caps of @sample or %NULL when there
- * is no caps. The caps remain valid as long as @sample is valid.
- * If you need to hold on to the caps for longer than that, take a ref to
- * the caps with gst_caps_ref().
+ * Returns: (transfer none) (nullable): the caps of @sample or %NULL
+ * when there is no caps. The caps remain valid as long as @sample is
+ * valid. If you need to hold on to the caps for longer than that,
+ * take a ref to the caps with gst_caps_ref().
*/
GstCaps *
gst_sample_get_caps (GstSample * sample)
diff --git a/gst/gststructure.c b/gst/gststructure.c
index 5013860..91f3ab3 100644
--- a/gst/gststructure.c
+++ b/gst/gststructure.c
@@ -1585,8 +1585,8 @@ gst_structure_get_double (const GstStructure * structure,
* The string should not be modified, and remains valid until the next
* call to a gst_structure_*() function with the given structure.
*
- * Returns: a pointer to the string or %NULL when the field did not exist
- * or did not contain a string.
+ * Returns: (nullable): a pointer to the string or %NULL when the
+ * field did not exist or did not contain a string.
*/
const gchar *
gst_structure_get_string (const GstStructure * structure,
@@ -2374,8 +2374,9 @@ priv_gst_structure_parse_fields (gchar * str, gchar ** end,
*
* Free-function: gst_structure_free
*
- * Returns: (transfer full): a new #GstStructure or %NULL when the string could
- * not be parsed. Free with gst_structure_free() after use.
+ * Returns: (transfer full) (nullable): a new #GstStructure or %NULL
+ * when the string could not be parsed. Free with
+ * gst_structure_free() after use.
*
* Since: 1.2
*/
@@ -2396,8 +2397,9 @@ gst_structure_new_from_string (const gchar * string)
*
* Free-function: gst_structure_free
*
- * Returns: (transfer full): a new #GstStructure or %NULL when the string could
- * not be parsed. Free with gst_structure_free() after use.
+ * Returns: (transfer full) (nullable): a new #GstStructure or %NULL
+ * when the string could not be parsed. Free with
+ * gst_structure_free() after use.
*/
GstStructure *
gst_structure_from_string (const gchar * string, gchar ** end)
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index c96cb56..be502c3 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -844,8 +844,9 @@ gst_tag_list_get_scope (const GstTagList * list)
*
* Serializes a tag list to a string.
*
- * Returns: a newly-allocated string, or %NULL in case of an error. The
- * string must be freed with g_free() when no longer needed.
+ * Returns: (nullable): a newly-allocated string, or %NULL in case of
+ * an error. The string must be freed with g_free() when no longer
+ * needed.
*/
gchar *
gst_tag_list_to_string (const GstTagList * list)
@@ -861,7 +862,8 @@ gst_tag_list_to_string (const GstTagList * list)
*
* Deserializes a tag list.
*
- * Returns: a new #GstTagList, or %NULL in case of an error.
+ * Returns: (nullable): a new #GstTagList, or %NULL in case of an
+ * error.
*/
GstTagList *
gst_tag_list_new_from_string (const gchar * str)
@@ -1131,8 +1133,8 @@ gst_tag_list_insert (GstTagList * into, const GstTagList * from,
/**
* gst_tag_list_merge:
- * @list1: first list to merge
- * @list2: second list to merge
+ * @list1: (allow-none): first list to merge
+ * @list2: (allow-none): second list to merge
* @mode: the mode to use
*
* Merges the two given lists into a new list. If one of the lists is %NULL, a
@@ -1140,7 +1142,7 @@ gst_tag_list_insert (GstTagList * into, const GstTagList * from,
*
* Free-function: gst_tag_list_unref
*
- * Returns: (transfer full): the new list
+ * Returns: (transfer full) (nullable): the new list
*/
GstTagList *
gst_tag_list_merge (const GstTagList * list1, const GstTagList * list2,
@@ -1424,8 +1426,9 @@ gst_tag_list_foreach (const GstTagList * list, GstTagForeachFunc func,
* Gets the value that is at the given index for the given tag in the given
* list.
*
- * Returns: (transfer none): The GValue for the specified entry or %NULL if the
- * tag wasn't available or the tag doesn't have as many entries
+ * Returns: (transfer none) (nullable): The GValue for the specified
+ * entry or %NULL if the tag wasn't available or the tag
+ * doesn't have as many entries
*/
const GValue *
gst_tag_list_get_value_index (const GstTagList * list, const gchar * tag,
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index b2955d6..7ed457e 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -340,8 +340,8 @@ gst_tag_setter_add_tag_value (GstTagSetter * setter,
*
* This function is not thread-safe.
*
- * Returns: (transfer none): a current snapshot of the taglist used in the
- * setter or %NULL if none is used.
+ * Returns: (transfer none) (nullable): a current snapshot of the
+ * taglist used in the setter or %NULL if none is used.
*/
const GstTagList *
gst_tag_setter_get_tag_list (GstTagSetter * setter)
diff --git a/gst/gsttaskpool.c b/gst/gsttaskpool.c
index d7ff344..20b8aa4 100644
--- a/gst/gsttaskpool.c
+++ b/gst/gsttaskpool.c
@@ -223,9 +223,9 @@ gst_task_pool_cleanup (GstTaskPool * pool)
*
* Start the execution of a new thread from @pool.
*
- * Returns: (transfer none): a pointer that should be used for the
- * gst_task_pool_join function. This pointer can be %NULL, you must
- * check @error to detect errors.
+ * Returns: (transfer none) (nullable): a pointer that should be used
+ * for the gst_task_pool_join function. This pointer can be %NULL, you
+ * must check @error to detect errors.
*/
gpointer
gst_task_pool_push (GstTaskPool * pool, GstTaskPoolFunction func,
diff --git a/gst/gsttoc.c b/gst/gsttoc.c
index bee13cb..be99cb1 100644
--- a/gst/gsttoc.c
+++ b/gst/gsttoc.c
@@ -360,7 +360,8 @@ gst_toc_entry_find_sub_entry (const GstTocEntry * entry, const gchar * uid)
*
* Find #GstTocEntry with given @uid in the @toc.
*
- * Returns: (transfer none): #GstTocEntry with specified @uid from the @toc, or %NULL if not found.
+ * Returns: (transfer none) (nullable): #GstTocEntry with specified
+ * @uid from the @toc, or %NULL if not found.
*/
GstTocEntry *
gst_toc_find_entry (const GstToc * toc, const gchar * uid)
@@ -393,8 +394,9 @@ gst_toc_find_entry (const GstToc * toc, const gchar * uid)
*
* Copy #GstTocEntry with all subentries (deep copy).
*
- * Returns: newly allocated #GstTocEntry in case of success, %NULL otherwise;
- * free it when done with gst_toc_entry_unref().
+ * Returns: (nullable): newly allocated #GstTocEntry in case of
+ * success, %NULL otherwise; free it when done with
+ * gst_toc_entry_unref().
*/
static GstTocEntry *
gst_toc_entry_copy (const GstTocEntry * entry)
@@ -437,8 +439,8 @@ gst_toc_entry_copy (const GstTocEntry * entry)
*
* Copy #GstToc with all subentries (deep copy).
*
- * Returns: newly allocated #GstToc in case of success, %NULL otherwise;
- * free it when done with gst_toc_unref().
+ * Returns: (nullable): newly allocated #GstToc in case of success,
+ * %NULL otherwise; free it when done with gst_toc_unref().
*/
static GstToc *
gst_toc_copy (const GstToc * toc)
@@ -492,8 +494,10 @@ gst_toc_entry_set_start_stop_times (GstTocEntry * entry, gint64 start,
/**
* gst_toc_entry_get_start_stop_times:
* @entry: #GstTocEntry to get values from.
- * @start: (out): the storage for the start value, leave %NULL if not need.
- * @stop: (out): the storage for the stop value, leave %NULL if not need.
+ * @start: (out) (allow-none): the storage for the start value, leave
+ * %NULL if not need.
+ * @stop: (out) (allow-none): the storage for the stop value, leave
+ * %NULL if not need.
*
* Get @start and @stop values from the @entry and write them into appropriate
* storages.
@@ -538,10 +542,10 @@ gst_toc_entry_set_loop (GstTocEntry * entry, GstTocLoopType loop_type,
/**
* gst_toc_entry_get_loop:
* @entry: #GstTocEntry to get values from.
- * @loop_type: (out): the storage for the loop_type value, leave %NULL if not
- * need.
- * @repeat_count: (out): the storage for the repeat_count value, leave %NULL if
- * not need.
+ * @loop_type: (out) (allow-none): the storage for the loop_type
+ * value, leave %NULL if not need.
+ * @repeat_count: (out) (allow-none): the storage for the repeat_count
+ * value, leave %NULL if not need.
*
* Get @loop_type and @repeat_count values from the @entry and write them into
* appropriate storages. Loops are e.g. used by sampled instruments. GStreamer
diff --git a/gst/gsttocsetter.c b/gst/gsttocsetter.c
index 42839d2..f5c7ea5 100644
--- a/gst/gsttocsetter.c
+++ b/gst/gsttocsetter.c
@@ -128,8 +128,8 @@ gst_toc_setter_reset (GstTocSetter * setter)
* modified without making it writable first.
*
*
- * Returns: (transfer full): TOC set, or %NULL. Unref with gst_toc_unref()
- * when no longer needed
+ * Returns: (transfer full) (nullable): TOC set, or %NULL. Unref with
+ * gst_toc_unref() when no longer needed
*/
GstToc *
gst_toc_setter_get_toc (GstTocSetter * setter)
diff --git a/gst/gsttypefind.c b/gst/gsttypefind.c
index 1fcbea1..ddcbfda 100644
--- a/gst/gsttypefind.c
+++ b/gst/gsttypefind.c
@@ -119,8 +119,8 @@ gst_type_find_register (GstPlugin * plugin, const gchar * name, guint rank,
* the stream. The returned memory is valid until the typefinding function
* returns and must not be freed.
*
- * Returns: (transfer none) (array length=size): the requested data, or %NULL
- * if that data is not available.
+ * Returns: (transfer none) (array length=size) (nullable): the
+ * requested data, or %NULL if that data is not available.
*/
const guint8 *
gst_type_find_peek (GstTypeFind * find, gint64 offset, guint size)
diff --git a/gst/gsttypefindfactory.c b/gst/gsttypefindfactory.c
index c216eb3..8a1b239 100644
--- a/gst/gsttypefindfactory.c
+++ b/gst/gsttypefindfactory.c
@@ -177,8 +177,8 @@ gst_type_find_factory_get_caps (GstTypeFindFactory * factory)
* copy it using g_strdupv(). This function may return %NULL to indicate
* a 0-length list.
*
- * Returns: (transfer none) (array zero-terminated=1) (element-type utf8): a
- * %NULL-terminated array of extensions associated with this factory
+ * Returns: (transfer none) (array zero-terminated=1) (element-type utf8) (nullable):
+ * a %NULL-terminated array of extensions associated with this factory
*/
const gchar *const *
gst_type_find_factory_get_extensions (GstTypeFindFactory * factory)
diff --git a/gst/gsturi.c b/gst/gsturi.c
index 00a496f..eb8cdcc 100644
--- a/gst/gsturi.c
+++ b/gst/gsturi.c
@@ -233,9 +233,9 @@ unescape_character (const char *scanner)
* Characters are encoded in PERCENTxy form, where xy is the ASCII hex code
* for character 16x+y.
*
- * Return value: a newly allocated string with the unescaped equivalents,
- * or %NULL if @escaped_string contained one of the characters
- * in @illegal_characters.
+ * Return value: (nullable): a newly allocated string with the
+ * unescaped equivalents, or %NULL if @escaped_string contained one of
+ * the characters in @illegal_characters.
**/
static char *
unescape_string (const gchar * escaped_string, const gchar * illegal_characters)
@@ -664,9 +664,10 @@ gst_uri_handler_get_uri_type (GstURIHandler * handler)
* Gets the list of protocols supported by @handler. This list may not be
* modified.
*
- * Returns: (transfer none) (element-type utf8): the supported protocols.
- * Returns %NULL if the @handler isn't implemented properly, or the @handler
- * doesn't support any protocols.
+ * Returns: (transfer none) (element-type utf8) (nullable): the
+ * supported protocols. Returns %NULL if the @handler isn't
+ * implemented properly, or the @handler doesn't support any
+ * protocols.
*/
const gchar *const *
gst_uri_handler_get_protocols (GstURIHandler * handler)
@@ -692,9 +693,10 @@ gst_uri_handler_get_protocols (GstURIHandler * handler)
*
* Gets the currently handled URI.
*
- * Returns: (transfer full): the URI currently handled by the @handler.
- * Returns %NULL if there are no URI currently handled. The
- * returned string must be freed with g_free() when no longer needed.
+ * Returns: (transfer full) (nullable): the URI currently handled by
+ * the @handler. Returns %NULL if there are no URI currently
+ * handled. The returned string must be freed with g_free() when no
+ * longer needed.
*/
gchar *
gst_uri_handler_get_uri (GstURIHandler * handler)
diff --git a/gst/gstutils.c b/gst/gstutils.c
index c411631..2aacbdc 100644
--- a/gst/gstutils.c
+++ b/gst/gstutils.c
@@ -773,8 +773,8 @@ gst_element_create_all_pads (GstElement * element)
* Retrieves a pad template from @element that is compatible with @compattempl.
* Pads from compatible templates can be linked together.
*
- * Returns: (transfer none): a compatible #GstPadTemplate, or %NULL if none
- * was found. No unreferencing is necessary.
+ * Returns: (transfer none) (nullable): a compatible #GstPadTemplate,
+ * or %NULL if none was found. No unreferencing is necessary.
*/
GstPadTemplate *
gst_element_get_compatible_pad_template (GstElement * element,
@@ -850,8 +850,8 @@ gst_element_get_compatible_pad_template (GstElement * element,
* #GST_PAD_REQUEST, requests a new pad. Can return %NULL for #GST_PAD_SOMETIMES
* templates.
*
- * Returns: (transfer full): the #GstPad, or NULL if one could not be found
- * or created.
+ * Returns: (transfer full) (nullable): the #GstPad, or %NULL if one
+ * could not be found or created.
*/
static GstPad *
gst_element_get_pad_from_template (GstElement * element, GstPadTemplate * templ)
@@ -891,7 +891,8 @@ gst_element_get_pad_from_template (GstElement * element, GstPadTemplate * templ)
* Requests a pad from @element. The returned pad should be unlinked and
* compatible with @templ. Might return an existing pad, or request a new one.
*
- * Returns: a #GstPad, or %NULL if one could not be found or created.
+ * Returns: (nullable): a #GstPad, or %NULL if one could not be found
+ * or created.
*/
static GstPad *
gst_element_request_compatible_pad (GstElement * element,
@@ -984,8 +985,9 @@ gst_pad_check_link (GstPad * srcpad, GstPad * sinkpad)
* and if none can be found, it will request a compatible REQUEST pad by looking
* at the templates of @element.
*
- * Returns: (transfer full): the #GstPad to which a link can be made, or %NULL
- * if one cannot be found. gst_object_unref() after usage.
+ * Returns: (transfer full) (nullable): the #GstPad to which a link
+ * can be made, or %NULL if one cannot be found. gst_object_unref()
+ * after usage.
*/
GstPad *
gst_element_get_compatible_pad (GstElement * element, GstPad * pad,
@@ -2311,8 +2313,9 @@ gst_pad_use_fixed_caps (GstPad * pad)
* Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
* its parent is not an element, return %NULL.
*
- * Returns: (transfer full): the parent of the pad. The caller has a
- * reference on the parent, so unref when you're finished with it.
+ * Returns: (transfer full) (nullable): the parent of the pad. The
+ * caller has a reference on the parent, so unref when you're finished
+ * with it.
*
* MT safe.
*/
@@ -2957,7 +2960,8 @@ element_find_unlinked_pad (GstElement * element, GstPadDirection direction)
* owns a reference to it and should use gst_object_unref() on the
* pad when it is not needed any longer.
*
- * Returns: (transfer full): unlinked pad of the given direction, %NULL.
+ * Returns: (transfer full) (nullable): unlinked pad of the given
+ * direction, %NULL.
*/
GstPad *
gst_bin_find_unlinked_pad (GstBin * bin, GstPadDirection direction)
@@ -3017,8 +3021,8 @@ gst_bin_find_unlinked_pad (GstBin * bin, GstPadDirection direction)
* and want them all ghosted, you will have to create the ghost pads
* yourself).
*
- * Returns: (transfer floating) (type Gst.Bin): a newly-created bin,
- * or %NULL if an error occurred.
+ * Returns: (transfer floating) (type Gst.Bin) (nullable): a
+ * newly-created bin, or %NULL if an error occurred.
*/
GstElement *
gst_parse_bin_from_description (const gchar * bin_description,
@@ -3159,7 +3163,8 @@ gst_util_get_timestamp (void)
*
* The complexity of this search function is O(log (num_elements)).
*
- * Returns: (transfer none): The address of the found element or %NULL if nothing was found
+ * Returns: (transfer none) (nullable): The address of the found
+ * element or %NULL if nothing was found
*/
gpointer
gst_util_array_binary_search (gpointer array, guint num_elements,
@@ -3778,8 +3783,9 @@ gst_pad_create_stream_id (GstPad * pad, GstElement * parent,
* The returned stream-id string should be treated as an opaque string, its
* contents should not be interpreted.
*
- * Returns: a newly-allocated copy of the stream-id for @pad, or %NULL.
- * g_free() the returned string when no longer needed.
+ * Returns: (nullable): a newly-allocated copy of the stream-id for
+ * @pad, or %NULL. g_free() the returned string when no longer
+ * needed.
*
* Since: 1.2
*/
diff --git a/gst/gstvalue.c b/gst/gstvalue.c
index f088cca..77e6fa1 100644
--- a/gst/gstvalue.c
+++ b/gst/gstvalue.c
@@ -4785,8 +4785,10 @@ gst_value_can_intersect (const GValue * value1, const GValue * value2)
/**
* gst_value_intersect:
- * @dest: (out caller-allocates) (transfer full): a uninitialized #GValue that will hold the calculated
- * intersection value. May be %NULL if the resulting set if not needed.
+ * @dest: (out caller-allocates) (transfer full) (allow-none):
+ * a uninitialized #GValue that will hold the calculated
+ * intersection value. May be %NULL if the resulting set if not
+ * needed.
* @value1: a value to intersect
* @value2: another value to intersect
*
@@ -4870,9 +4872,10 @@ gst_value_register_intersect_func (GType type1, GType type2,
/**
* gst_value_subtract:
- * @dest: (out caller-allocates): the destination value for the result if the
- * subtraction is not empty. May be %NULL, in which case the resulting set
- * will not be computed, which can give a fair speedup.
+ * @dest: (out caller-allocates) (allow-none): the destination value
+ * for the result if the subtraction is not empty. May be %NULL,
+ * in which case the resulting set will not be computed, which can
+ * give a fair speedup.
* @minuend: the value to subtract from
* @subtrahend: the value to subtract
*
@@ -5059,7 +5062,8 @@ gst_value_move (GValue * dest, GValue * src)
*
* Free-function: g_free
*
- * Returns: (transfer full): the serialization for @value or %NULL if none exists
+ * Returns: (transfer full) (nullable): the serialization for @value
+ * or %NULL if none exists
*/
gchar *
gst_value_serialize (const GValue * value)
diff --git a/gstreamer.doap b/gstreamer.doap
index 55f6dc2..b993d33 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,6 +40,16 @@ hierarchy, and a set of media-agnostic core elements.
<release>
<Version>
+ <revision>1.3.90</revision>
+ <branch>1.3</branch>
+ <name></name>
+ <created>2014-06-28</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.3.90.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.3.3</revision>
<branch>1.3</branch>
<name></name>
diff --git a/gstreamer.spec b/gstreamer.spec
index 34a57d0..c926f5c 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -4,7 +4,7 @@
%define _glib2 2.32.0
Name: %{gstreamer}
-Version: 1.3.3
+Version: 1.3.90
Release: 1
Summary: GStreamer streaming media framework runtime
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c
index 3d23fdb..fc1582b 100644
--- a/libs/gst/base/gstadapter.c
+++ b/libs/gst/base/gstadapter.c
@@ -425,7 +425,7 @@ gst_adapter_try_to_merge_up (GstAdapter * adapter, gsize size)
*
* Returns %NULL if @size bytes are not available.
*
- * Returns: (transfer none) (array length=size) (element-type guint8):
+ * Returns: (transfer none) (array length=size) (element-type guint8) (nullable):
* a pointer to the first @size bytes of data, or %NULL
*/
gconstpointer
@@ -708,7 +708,7 @@ gst_adapter_take_internal (GstAdapter * adapter, gsize nbytes)
*
* Free-function: g_free
*
- * Returns: (transfer full) (array length=nbytes) (element-type guint8):
+ * Returns: (transfer full) (array length=nbytes) (element-type guint8) (nullable):
* oven-fresh hot data, or %NULL if @nbytes bytes are not available
*/
gpointer
@@ -758,8 +758,8 @@ gst_adapter_take (GstAdapter * adapter, gsize nbytes)
*
* Free-function: gst_buffer_unref
*
- * Returns: (transfer full): a #GstBuffer containing the first @nbytes of
- * the adapter, or %NULL if @nbytes bytes are not available.
+ * Returns: (transfer full) (nullable): a #GstBuffer containing the first
+ * @nbytes of the adapter, or %NULL if @nbytes bytes are not available.
* gst_buffer_unref() when no longer needed.
*
* Since: 1.2
@@ -840,8 +840,8 @@ done:
*
* Free-function: gst_buffer_unref
*
- * Returns: (transfer full): a #GstBuffer containing the first @nbytes of
- * the adapter, or %NULL if @nbytes bytes are not available.
+ * Returns: (transfer full) (nullable): a #GstBuffer containing the first
+ * @nbytes of the adapter, or %NULL if @nbytes bytes are not available.
* gst_buffer_unref() when no longer needed.
*/
GstBuffer *
@@ -917,9 +917,9 @@ done:
* Caller owns returned list and contained buffers. gst_buffer_unref() each
* buffer in the list before freeing the list after usage.
*
- * Returns: (element-type Gst.Buffer) (transfer full): a #GList of buffers
- * containing the first @nbytes of the adapter, or %NULL if @nbytes bytes
- * are not available
+ * Returns: (element-type Gst.Buffer) (transfer full) (nullable): a #GList of
+ * buffers containing the first @nbytes of the adapter, or %NULL if @nbytes
+ * bytes are not available
*/
GList *
gst_adapter_take_list (GstAdapter * adapter, gsize nbytes)
@@ -1165,7 +1165,7 @@ gst_adapter_prev_dts_at_offset (GstAdapter * adapter, gsize offset,
* @offset: offset into the adapter data from which to start scanning, returns
* the last scanned position.
* @size: number of bytes to scan from offset
- * @value: pointer to uint32 to return matching data
+ * @value: (out) (allow-none): pointer to uint32 to return matching data
*
* Scan for pattern @pattern with applied mask @mask in the adapter data,
* starting from offset @offset. If a match is found, the value that matched
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index c3e63e1..fb31c9e 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -2716,6 +2716,7 @@ gst_base_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
GstBaseParseClass *bclass;
GstBaseParse *parse;
GstFlowReturn ret = GST_FLOW_OK;
+ GstFlowReturn old_ret = GST_FLOW_OK;
GstBuffer *tmpbuf = NULL;
guint fsize = 1;
gint skip = -1;
@@ -2902,8 +2903,11 @@ gst_base_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
if (skip == 0 && flush == 0) {
GST_LOG_OBJECT (parse, "nothing skipped and no frames finished, "
"breaking to get more data");
+ /* ignore this return as it produced no data */
+ ret = old_ret;
goto done;
}
+ old_ret = ret;
}
done:
diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c
index b6fc1fc..bcd1e55 100644
--- a/libs/gst/base/gstbasesink.c
+++ b/libs/gst/base/gstbasesink.c
@@ -904,9 +904,9 @@ gst_base_sink_get_ts_offset (GstBaseSink * sink)
*
* Free-function: gst_sample_unref
*
- * Returns: (transfer full): a #GstSample. gst_sample_unref() after usage.
- * This function returns %NULL when no buffer has arrived in the sink yet
- * or when the sink is not in PAUSED or PLAYING.
+ * Returns: (transfer full) (nullable): a #GstSample. gst_sample_unref() after
+ * usage. This function returns %NULL when no buffer has arrived in the
+ * sink yet or when the sink is not in PAUSED or PLAYING.
*/
GstSample *
gst_base_sink_get_last_sample (GstBaseSink * sink)
diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c
index 8f97b71..bebaf12 100644
--- a/libs/gst/base/gstcollectpads.c
+++ b/libs/gst/base/gstcollectpads.c
@@ -576,8 +576,8 @@ gst_collect_pads_set_flush_function (GstCollectPads * pads,
* @pads: the collectpads to use
* @pad: (transfer none): the pad to add
* @size: the size of the returned #GstCollectData structure
- * @destroy_notify: function to be called before the returned #GstCollectData
- * structure is freed
+ * @destroy_notify: (scope async): function to be called before the returned
+ * #GstCollectData structure is freed
* @lock: whether to lock this pad in usual waiting state
*
* Add a pad to the collection of collect pads. The pad has to be
@@ -606,8 +606,8 @@ gst_collect_pads_set_flush_function (GstCollectPads * pads,
*
* MT safe.
*
- * Returns: a new #GstCollectData to identify the new pad. Or %NULL
- * if wrong parameters are supplied.
+ * Returns: (nullable) (transfer none): a new #GstCollectData to identify the
+ * new pad. Or %NULL if wrong parameters are supplied.
*/
GstCollectData *
gst_collect_pads_add_pad (GstCollectPads * pads, GstPad * pad, guint size,
diff --git a/libs/gst/base/gstcollectpads.h b/libs/gst/base/gstcollectpads.h
index 0ba2dee..9d56614 100644
--- a/libs/gst/base/gstcollectpads.h
+++ b/libs/gst/base/gstcollectpads.h
@@ -279,7 +279,8 @@ typedef void (*GstCollectPadsFlushFunction) (GstCollectPads *pads, gpointer user
/**
* GstCollectPads:
- * @data: #GList of #GstCollectData managed by this #GstCollectPads.
+ * @data: (element-type GstBase.CollectData): #GList of #GstCollectData managed
+ * by this #GstCollectPads.
*
* Collectpads object.
*/
diff --git a/libs/gst/base/gstdataqueue.c b/libs/gst/base/gstdataqueue.c
index e34b265..6f61062 100644
--- a/libs/gst/base/gstdataqueue.c
+++ b/libs/gst/base/gstdataqueue.c
@@ -142,7 +142,7 @@ gst_data_queue_class_init (GstDataQueueClass * klass)
/* signals */
/**
- * GstDataQueue::empty:
+ * GstDataQueue::empty: (skip)
* @queue: the queue instance
*
* Reports that the queue became empty (empty).
@@ -156,7 +156,7 @@ gst_data_queue_class_init (GstDataQueueClass * klass)
g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
/**
- * GstDataQueue::full:
+ * GstDataQueue::full: (skip)
* @queue: the queue instance
*
* Reports that the queue became full (full).
@@ -312,7 +312,7 @@ gst_data_queue_locked_is_full (GstDataQueue * queue)
}
/**
- * gst_data_queue_flush:
+ * gst_data_queue_flush: (skip)
* @queue: a #GstDataQueue.
*
* Flushes all the contents of the @queue. Any call to #gst_data_queue_push and
@@ -331,7 +331,7 @@ gst_data_queue_flush (GstDataQueue * queue)
}
/**
- * gst_data_queue_is_empty:
+ * gst_data_queue_is_empty: (skip)
* @queue: a #GstDataQueue.
*
* Queries if there are any items in the @queue.
@@ -354,7 +354,7 @@ gst_data_queue_is_empty (GstDataQueue * queue)
}
/**
- * gst_data_queue_is_full:
+ * gst_data_queue_is_full: (skip)
* @queue: a #GstDataQueue.
*
* Queries if @queue is full. This check will be done using the
@@ -378,7 +378,7 @@ gst_data_queue_is_full (GstDataQueue * queue)
}
/**
- * gst_data_queue_set_flushing:
+ * gst_data_queue_set_flushing: (skip)
* @queue: a #GstDataQueue.
* @flushing: a #gboolean stating if the queue will be flushing or not.
*
@@ -426,7 +426,7 @@ gst_data_queue_push_force_unlocked (GstDataQueue * queue,
}
/**
- * gst_data_queue_push_force:
+ * gst_data_queue_push_force: (skip)
* @queue: a #GstDataQueue.
* @item: a #GstDataQueueItem.
*
@@ -474,7 +474,7 @@ flushing:
}
/**
- * gst_data_queue_push:
+ * gst_data_queue_push: (skip)
* @queue: a #GstDataQueue.
* @item: a #GstDataQueueItem.
*
@@ -558,7 +558,7 @@ _gst_data_queue_wait_non_empty (GstDataQueue * queue)
}
/**
- * gst_data_queue_pop:
+ * gst_data_queue_pop: (skip)
* @queue: a #GstDataQueue.
* @item: pointer to store the returned #GstDataQueueItem.
*
@@ -628,7 +628,7 @@ is_of_type (gconstpointer a, gconstpointer b)
}
/**
- * gst_data_queue_peek:
+ * gst_data_queue_peek: (skip)
* @queue: a #GstDataQueue.
* @item: pointer to store the returned #GstDataQueueItem.
*
@@ -683,7 +683,7 @@ flushing:
}
/**
- * gst_data_queue_drop_head:
+ * gst_data_queue_drop_head: (skip)
* @queue: The #GstDataQueue to drop an item from.
* @type: The #GType of the item to drop.
*
@@ -731,7 +731,7 @@ done:
}
/**
- * gst_data_queue_limits_changed:
+ * gst_data_queue_limits_changed: (skip)
* @queue: The #GstDataQueue
*
* Inform the queue that the limits for the fullness check have changed and that
@@ -755,7 +755,7 @@ gst_data_queue_limits_changed (GstDataQueue * queue)
}
/**
- * gst_data_queue_get_level:
+ * gst_data_queue_get_level: (skip)
* @queue: The #GstDataQueue
* @level: the location to store the result
*
diff --git a/libs/gst/base/gstdataqueue.h b/libs/gst/base/gstdataqueue.h
index 7350c42..17c859c 100644
--- a/libs/gst/base/gstdataqueue.h
+++ b/libs/gst/base/gstdataqueue.h
@@ -43,7 +43,7 @@ typedef struct _GstDataQueueItem GstDataQueueItem;
typedef struct _GstDataQueuePrivate GstDataQueuePrivate;
/**
- * GstDataQueueItem:
+ * GstDataQueueItem: (skip)
* @object: the #GstMiniObject to queue.
* @size: the size in bytes of the miniobject.
* @duration: the duration in #GstClockTime of the miniobject. Can not be
@@ -72,7 +72,7 @@ struct _GstDataQueueItem
};
/**
- * GstDataQueueSize:
+ * GstDataQueueSize: (skip)
* @visible: number of buffers
* @bytes: number of bytes
* @time: amount of time
@@ -87,7 +87,7 @@ struct _GstDataQueueSize
};
/**
- * GstDataQueueCheckFullFunction:
+ * GstDataQueueCheckFullFunction: (skip)
* @queue: a #GstDataQueue.
* @visible: The number of visible items currently in the queue.
* @bytes: The amount of bytes currently in the queue.
@@ -106,7 +106,7 @@ typedef void (*GstDataQueueFullCallback) (GstDataQueue * queue, gpointer checkda
typedef void (*GstDataQueueEmptyCallback) (GstDataQueue * queue, gpointer checkdata);
/**
- * GstDataQueue:
+ * GstDataQueue: (skip)
* @object: the parent structure
*
* Opaque #GstDataQueue structure.
@@ -120,6 +120,9 @@ struct _GstDataQueue
gpointer _gst_reserved[GST_PADDING];
};
+/**
+ * GstDataQueueClass: (skip)
+ */
struct _GstDataQueueClass
{
GObjectClass parent_class;
diff --git a/libs/gst/base/gstindex.c b/libs/gst/base/gstindex.c
index b614d2c..272f0e7 100644
--- a/libs/gst/base/gstindex.c
+++ b/libs/gst/base/gstindex.c
@@ -918,7 +918,7 @@ gst_index_compare_func (gconstpointer a, gconstpointer b, gpointer user_data)
*
* Finds the given format/value in the index
*
- * Returns: the entry associated with the value or %NULL if the
+ * Returns: (nullable): the entry associated with the value or %NULL if the
* value was not found.
*/
GstIndexEntry *
@@ -949,7 +949,7 @@ gst_index_get_assoc_entry (GstIndex * index, gint id,
* Finds the given format/value in the index with the given
* compare function and user_data.
*
- * Returns: the entry associated with the value or %NULL if the
+ * Returns: (nullable): the entry associated with the value or %NULL if the
* value was not found.
*/
GstIndexEntry *
diff --git a/libs/gst/base/gstqueuearray.c b/libs/gst/base/gstqueuearray.c
index d37535d..5ff03fd 100644
--- a/libs/gst/base/gstqueuearray.c
+++ b/libs/gst/base/gstqueuearray.c
@@ -44,7 +44,7 @@ struct _GstQueueArray
};
/**
- * gst_queue_array_new:
+ * gst_queue_array_new: (skip)
* @initial_size: Initial size of the new queue
*
* Allocates a new #GstQueueArray object with an initial
@@ -70,7 +70,7 @@ gst_queue_array_new (guint initial_size)
/**
- * gst_queue_array_free:
+ * gst_queue_array_free: (skip)
* @array: a #GstQueueArray object
*
* Frees queue @array and all memory associated to it.
@@ -85,7 +85,7 @@ gst_queue_array_free (GstQueueArray * array)
}
/**
- * gst_queue_array_pop_head:
+ * gst_queue_array_pop_head: (skip)
* @array: a #GstQueueArray object
*
* Returns and head of the queue @array and removes
@@ -111,7 +111,7 @@ gst_queue_array_pop_head (GstQueueArray * array)
}
/**
- * gst_queue_array_peek_head:
+ * gst_queue_array_peek_head: (skip)
* @array: a #GstQueueArray object
*
* Returns and head of the queue @array and does not
@@ -131,7 +131,7 @@ gst_queue_array_peek_head (GstQueueArray * array)
}
/**
- * gst_queue_array_push_tail:
+ * gst_queue_array_push_tail: (skip)
* @array: a #GstQueueArray object
* @data: object to push
*
@@ -183,7 +183,7 @@ gst_queue_array_push_tail (GstQueueArray * array, gpointer data)
}
/**
- * gst_queue_array_is_empty:
+ * gst_queue_array_is_empty: (skip)
* @array: a #GstQueueArray object
*
* Checks if the queue @array is empty.
@@ -199,7 +199,7 @@ gst_queue_array_is_empty (GstQueueArray * array)
}
/**
- * gst_queue_array_drop_element:
+ * gst_queue_array_drop_element: (skip)
* @array: a #GstQueueArray object
* @idx: index to drop
*
@@ -285,7 +285,7 @@ gst_queue_array_drop_element (GstQueueArray * array, guint idx)
}
/**
- * gst_queue_array_find:
+ * gst_queue_array_find: (skip)
* @array: a #GstQueueArray object
* @func: (allow-none): comparison function, or %NULL to find @data by value
* @data: data for comparison function
@@ -325,7 +325,7 @@ gst_queue_array_find (GstQueueArray * array, GCompareFunc func, gpointer data)
}
/**
- * gst_queue_array_get_length:
+ * gst_queue_array_get_length: (skip)
* @array: a #GstQueueArray object
*
* Returns the length of the queue @array
diff --git a/libs/gst/base/gstqueuearray.h b/libs/gst/base/gstqueuearray.h
index b640886..bfe89e7 100644
--- a/libs/gst/base/gstqueuearray.h
+++ b/libs/gst/base/gstqueuearray.h
@@ -24,6 +24,9 @@
#ifndef __GST_QUEUE_ARRAY_H__
#define __GST_QUEUE_ARRAY_H__
+/**
+ * GstQueueArray: (skip)
+ */
typedef struct _GstQueueArray GstQueueArray;
GstQueueArray * gst_queue_array_new (guint initial_size);
diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c
index 1a0d327..b2fb21c 100644
--- a/libs/gst/base/gsttypefindhelper.c
+++ b/libs/gst/base/gsttypefindhelper.c
@@ -75,8 +75,8 @@ typedef struct
* for performance reasons, but mostly because pointers returned by us need
* to stay valid until typefinding has finished)
*
- * Returns: address of the data or %NULL if buffer does not cover the
- * requested range.
+ * Returns: (nullable): address of the data or %NULL if buffer does not cover
+ * the requested range.
*/
static const guint8 *
helper_find_peek (gpointer data, gint64 offset, guint size)
@@ -269,8 +269,8 @@ helper_find_get_length (gpointer data)
*
* Free-function: gst_caps_unref
*
- * Returns: (transfer full): the #GstCaps corresponding to the data stream.
- * Returns %NULL if no #GstCaps matches the data stream.
+ * Returns: (transfer full) (nullable): the #GstCaps corresponding to the data
+ * stream. Returns %NULL if no #GstCaps matches the data stream.
*/
GstCaps *
gst_type_find_helper_get_range (GstObject * obj, GstObject * parent,
@@ -388,8 +388,8 @@ gst_type_find_helper_get_range (GstObject * obj, GstObject * parent,
*
* Free-function: gst_caps_unref
*
- * Returns: (transfer full): the #GstCaps corresponding to the data stream.
- * Returns %NULL if no #GstCaps matches the data stream.
+ * Returns: (transfer full) (nullable): the #GstCaps corresponding to the data
+ * stream. Returns %NULL if no #GstCaps matches the data stream.
*/
GstCaps *
@@ -426,8 +426,8 @@ typedef struct
*
* Get data pointer within a buffer.
*
- * Returns: address inside the buffer or %NULL if buffer does not cover the
- * requested range.
+ * Returns: (nullable): address inside the buffer or %NULL if buffer does not
+ * cover the requested range.
*/
static const guint8 *
buf_helper_find_peek (gpointer data, gint64 off, guint size)
@@ -499,9 +499,9 @@ buf_helper_find_suggest (gpointer data, GstTypeFindProbability probability,
*
* Free-function: gst_caps_unref
*
- * Returns: (transfer full): the #GstCaps corresponding to the data, or %NULL
- * if no type could be found. The caller should free the caps returned
- * with gst_caps_unref().
+ * Returns: (transfer full) (nullable): the #GstCaps corresponding to the data,
+ * or %NULL if no type could be found. The caller should free the caps
+ * returned with gst_caps_unref().
*/
GstCaps *
gst_type_find_helper_for_data (GstObject * obj, const guint8 * data, gsize size,
@@ -570,9 +570,9 @@ gst_type_find_helper_for_data (GstObject * obj, const guint8 * data, gsize size,
*
* Free-function: gst_caps_unref
*
- * Returns: (transfer full): the #GstCaps corresponding to the data, or %NULL
- * if no type could be found. The caller should free the caps returned
- * with gst_caps_unref().
+ * Returns: (transfer full) (nullable): the #GstCaps corresponding to the data,
+ * or %NULL if no type could be found. The caller should free the caps
+ * returned with gst_caps_unref().
*/
GstCaps *
gst_type_find_helper_for_buffer (GstObject * obj, GstBuffer * buf,
@@ -607,9 +607,9 @@ gst_type_find_helper_for_buffer (GstObject * obj, GstBuffer * buf,
*
* Free-function: gst_caps_unref
*
- * Returns: (transfer full): the #GstCaps corresponding to @extension, or
- * %NULL if no type could be found. The caller should free the caps
- * returned with gst_caps_unref().
+ * Returns: (transfer full) (nullable): the #GstCaps corresponding to
+ * @extension, or %NULL if no type could be found. The caller should free
+ * the caps returned with gst_caps_unref().
*/
GstCaps *
gst_type_find_helper_for_extension (GstObject * obj, const gchar * extension)
diff --git a/plugins/elements/gstelements_private.c b/plugins/elements/gstelements_private.c
index 6c304b4..2364741 100644
--- a/plugins/elements/gstelements_private.c
+++ b/plugins/elements/gstelements_private.c
@@ -1,4 +1,7 @@
/* GStreamer
+ * Copyright (C) 2011 David Schleef <ds@schleef.org>
+ * Copyright (C) 2011 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+ * Copyright (C) 2014 Tim-Philipp Müller <tim@centricular.com>
* Copyright (C) 2014 Vincent Penquerc'h <vincent@collabora.co.uk>
*
* gstelements_private.c: Shared code for core elements
@@ -26,17 +29,7 @@
#include "gst/gst.h"
#include "gstelements_private.h"
-/**
- * gst_buffer_get_flags_string:
- * @buffer: a #GstBuffer
- * Returns: A newly allocated string
- *
- * Returns a newly allocated string describing the flags on this buffer.
- * The string must be freed using g_free() when done.
- *
- * Since: 1.4
- */
-
+/* Returns a newly allocated string describing the flags on this buffer */
char *
gst_buffer_get_flags_string (GstBuffer * buffer)
{
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index dd4e811..3141883 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -480,14 +480,16 @@ gst_file_src_start (GstBaseSrc * basesrc)
g_strerror (errno));
src->seekable = FALSE;
} else {
+ res = lseek (src->fd, 0, SEEK_SET);
+
+ if (res < 0) {
+ /* We really don't like not being able to go back to 0 */
+ src->seekable = FALSE;
+ goto lseek_wonky;
+ }
+
src->seekable = TRUE;
}
- res = lseek (src->fd, 0, SEEK_SET);
- if (res < 0) {
- /* We really don't like not being able to go back to 0 */
- src->seekable = FALSE;
- goto lseek_wonky;
- }
}
/* We can only really do seeking on regular files - for other file types, we
diff --git a/po/af.gmo b/po/af.gmo
index 3d9b5f4..6708b41 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 2b96e93..7cc88ce 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.9.7\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2005-12-05 11:45+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index 5f064da..01772d7 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 6cadef6..1c447e4 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.8.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2004-03-19 18:40+0200\n"
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/be.gmo b/po/be.gmo
index 8dadaf2..709c304 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index 8ee9cd3..9097360 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.9.7\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2006-01-18 22:26+0200\n"
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
"Language-Team: Belarusian <i18n@mova.org>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index f458001..aa78608 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 0875d43..341b07e 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2011-04-26 22:40+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index 3357b1f..f7f5cf2 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 82cb9cd..018d302 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-11-04 19:41+0100\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index 93f9073..dc299cf 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 8ce734e..11b4129 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-03-09 11:07+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
diff --git a/po/da.gmo b/po/da.gmo
index b5e2b77..af2258d 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 7b9044e..6af5f54 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2013-12-08 12:41+0100\n"
"Last-Translator: Mogens Jaeger <mogensjaeger@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.gmo b/po/de.gmo
index 49b888f..00f620e 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index d9ecdd2..a7d5532 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-22 20:48+0100\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
diff --git a/po/el.gmo b/po/el.gmo
index 3665af0..5b9b115 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 72aaa7d..44d0dc6 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-11-29 11:14+0200\n"
"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 5e85ea5..c00d007 100644
--- a/po/en_GB.gmo
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index f97597f..096a9be 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2004-04-26 10:36-0400\n"
"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
"Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index 7d42007..105388b 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 637a2d7..dcffaa1 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2011-06-04 21:11+0100\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
diff --git a/po/es.gmo b/po/es.gmo
index 23327a9..10ddae7 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 051ac39..507378b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2011-10-02 15:45+0200\n"
"Last-Translator: Jorge González González <aloriel@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index 955e903..6d0241b 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 07e5fcc..dfcf573 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-03-25 13:10+0100\n"
"Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
diff --git a/po/fi.gmo b/po/fi.gmo
index 6e7e85f..8ca64f5 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 87223ce..d1ce7c1 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-11-17 23:10+0200\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index 9cbb429..b1d271c 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index c24997b..8411d5b 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2012-12-05 19:31+0100\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index 148ca3e..7a6266a 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 0b2900a..1fa2742 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2012-12-15 03:29+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gstreamer-1.0.pot b/po/gstreamer-1.0.pot
index df059d6..f13028c 100644
--- a/po/gstreamer-1.0.pot
+++ b/po/gstreamer-1.0.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gstreamer 1.3.3\n"
+"Project-Id-Version: gstreamer 1.3.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -310,7 +310,7 @@ msgstr ""
msgid "Selected clock cannot be used in pipeline."
msgstr ""
-#: gst/gstregistry.c:1691
+#: gst/gstregistry.c:1693
#, c-format
msgid "Error writing registry cache to %s: %s"
msgstr ""
@@ -1013,17 +1013,17 @@ msgstr ""
msgid "No URI handler for the %s protocol found"
msgstr ""
-#: gst/gsturi.c:762
+#: gst/gsturi.c:764
#, c-format
msgid "URI scheme '%s' not supported"
msgstr ""
-#: gst/gstutils.c:2352 tools/gst-launch.c:321
+#: gst/gstutils.c:2355 tools/gst-launch.c:321
#, c-format
msgid "ERROR: from element %s: %s\n"
msgstr ""
-#: gst/gstutils.c:2354 tools/gst-launch.c:323 tools/gst-launch.c:650
+#: gst/gstutils.c:2357 tools/gst-launch.c:323 tools/gst-launch.c:650
#, c-format
msgid ""
"Additional debug info:\n"
@@ -1152,7 +1152,7 @@ msgstr ""
msgid "Could not create temp file \"%s\"."
msgstr ""
-#: plugins/elements/gstdownloadbuffer.c:933 plugins/elements/gstfilesrc.c:517
+#: plugins/elements/gstdownloadbuffer.c:933 plugins/elements/gstfilesrc.c:519
#: plugins/elements/gstqueue2.c:1504
#, c-format
msgid "Could not open file \"%s\" for reading."
@@ -1186,21 +1186,21 @@ msgstr ""
msgid "Error while writing to file \"%s\"."
msgstr ""
-#: plugins/elements/gstfilesrc.c:505
+#: plugins/elements/gstfilesrc.c:507
msgid "No file name specified for reading."
msgstr ""
-#: plugins/elements/gstfilesrc.c:526
+#: plugins/elements/gstfilesrc.c:528
#, c-format
msgid "Could not get info on \"%s\"."
msgstr ""
-#: plugins/elements/gstfilesrc.c:532
+#: plugins/elements/gstfilesrc.c:534
#, c-format
msgid "\"%s\" is a directory."
msgstr ""
-#: plugins/elements/gstfilesrc.c:538
+#: plugins/elements/gstfilesrc.c:540
#, c-format
msgid "File \"%s\" is a socket."
msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index 7046cf0..7721dc0 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 04e5a8f..c2ca4a7 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2012-05-25 16:47+0200\n"
"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index 61abc40..6174c9b 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index a250118..952ff33 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-23 21:08+0200\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.gmo b/po/id.gmo
index 71f3b78..5fd22f7 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 1ac9005..5c76538 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-31 22:06+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
diff --git a/po/it.gmo b/po/it.gmo
index 0de2f8c..9a5353d 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 600aca7..c4c49d0 100644
--- a/po/it.po
+++ b/po/it.po
@@ -106,7 +106,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-10-25 10:03+0200\n"
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index 54767d4..a7292c2 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index ea30d5b..dc66f1e 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.0.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2013-08-20 14:56+0900\n"
"Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index bda011e..24bdb9d 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 1d1c006..3bd2a9f 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-07-16 00:50+0300\n"
"Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index 577d0b0..645f4d2 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index de61396..a00dff5 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-10-24 21:36+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index 1b249b0..8f07ecc 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index c431c47..d97ce91 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-22 00:46+0200\n"
"Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index c5f12b8..211dd22 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 3109a3a..543d674 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-22 18:22+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 8b32f92..e161a6b 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index ed8bd83..b98ecf1 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,7 +17,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2013-12-29 18:20-0200\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
diff --git a/po/ro.gmo b/po/ro.gmo
index 28a69ec..a5bb6ab 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index ac96689..2ed1f20 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-08-16 01:10+0300\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
diff --git a/po/ru.gmo b/po/ru.gmo
index c0526f4..12e3da5 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index aae3e94..38eb830 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-22 20:12+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
diff --git a/po/rw.gmo b/po/rw.gmo
index a950b0c..2252930 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index ee27537..19ec760 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.8\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2005-04-04 10:55-0700\n"
"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index 90ebaf1..e3e0878 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 1798634..09a9ad7 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-01-30 10:24+0100\n"
"Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index cd3ae59..e50eb83 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index bad2716..52aa7ba 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-04-09 22:38+0100\n"
"Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.gmo b/po/sq.gmo
index eee0ded..c32b4ed 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 56ac08a..85224ac 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.4\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2004-08-07 23:46+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: Albanian <begraj@hotmail.com>\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index 4d34c6c..e9354cd 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 2740459..a81de8f 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-06-18 20:12+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index da07fdf..9d06afe 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index d5dfbcc..b346b3e 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-04 12:11+0100\n"
"Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index a06a3de..664e7c3 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 64c707a..15c84ae 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2004-04-03 03:14+0300\n"
"Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 4be5465..02a01df 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 6b91ac3..85f0d1b 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-05-22 07:45+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
diff --git a/po/vi.gmo b/po/vi.gmo
index e47237f..9d2f7c8 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index d766b0f..bb7024f 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-1.2.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2013-12-11 08:08+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 1a92185..5a7b2e5 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 1b4b7ba..408054f 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.25.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2010-02-02 18:58+0800\n"
"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 14908bb..9b020c8 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index cc1990d..b2e4f6e 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -27,7 +27,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 1.3.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2014-06-22 17:12+0200\n"
+"POT-Creation-Date: 2014-06-28 10:24+0200\n"
"PO-Revision-Date: 2014-06-08 00:22+0800\n"
"Last-Translator: Wen Liao <wen.cf83@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index e197999..f188b1a 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -105,7 +105,7 @@ check_PROGRAMS = \
gst/gstatomicqueue \
gst/gstbuffer \
gst/gstbufferlist \
- gst/gstbufferpool \
+ gst/gstbufferpool \
gst/gstmeta \
gst/gstmemory \
gst/gstbus \
@@ -113,6 +113,7 @@ check_PROGRAMS = \
gst/gstcapsfeatures \
$(CXX_CHECKS) \
gst/gstdatetime \
+ gst/gstdevice \
gst/gstinfo \
gst/gstiterator \
gst/gstmessage \
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 739acca..09d3319 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -88,7 +88,8 @@ check_PROGRAMS = $(am__EXEEXT_1) gst/gstatomicqueue$(EXEEXT) \
gst/gstbufferpool$(EXEEXT) gst/gstmeta$(EXEEXT) \
gst/gstmemory$(EXEEXT) gst/gstbus$(EXEEXT) \
gst/gstcaps$(EXEEXT) gst/gstcapsfeatures$(EXEEXT) \
- $(am__EXEEXT_2) gst/gstdatetime$(EXEEXT) gst/gstinfo$(EXEEXT) \
+ $(am__EXEEXT_2) gst/gstdatetime$(EXEEXT) \
+ gst/gstdevice$(EXEEXT) gst/gstinfo$(EXEEXT) \
gst/gstiterator$(EXEEXT) gst/gstmessage$(EXEEXT) \
gst/gstminiobject$(EXEEXT) gst/gstobject$(EXEEXT) \
gst/gstpad$(EXEEXT) gst/gstparamspecs$(EXEEXT) \
@@ -409,6 +410,12 @@ gst_gstdatetime_LDADD = $(LDADD)
gst_gstdatetime_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1)
+gst_gstdevice_SOURCES = gst/gstdevice.c
+gst_gstdevice_OBJECTS = gst/gstdevice.$(OBJEXT)
+gst_gstdevice_LDADD = $(LDADD)
+gst_gstdevice_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+ $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+ $(am__DEPENDENCIES_1)
gst_gstelement_SOURCES = gst/gstelement.c
gst_gstelement_OBJECTS = gst/gstelement.$(OBJEXT)
gst_gstelement_LDADD = $(LDADD)
@@ -830,12 +837,13 @@ SOURCES = elements/capsfilter.c elements/fakesink.c elements/fakesrc.c \
gst/gstbufferpool.c gst/gstbus.c gst/gstcaps.c \
gst/gstcapsfeatures.c gst/gstchildproxy.c gst/gstclock.c \
gst/gstcontext.c gst/gstcontroller.c $(gst_gstcpp_SOURCES) \
- gst/gstdatetime.c gst/gstelement.c gst/gstelementfactory.c \
- gst/gstevent.c gst/gstghostpad.c gst/gstinfo.c \
- gst/gstiterator.c gst/gstmemory.c gst/gstmessage.c \
- gst/gstmeta.c gst/gstminiobject.c gst/gstobject.c gst/gstpad.c \
- gst/gstparamspecs.c gst/gstpipeline.c gst/gstplugin.c \
- gst/gstpoll.c gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
+ gst/gstdatetime.c gst/gstdevice.c gst/gstelement.c \
+ gst/gstelementfactory.c gst/gstevent.c gst/gstghostpad.c \
+ gst/gstinfo.c gst/gstiterator.c gst/gstmemory.c \
+ gst/gstmessage.c gst/gstmeta.c gst/gstminiobject.c \
+ gst/gstobject.c gst/gstpad.c gst/gstparamspecs.c \
+ gst/gstpipeline.c gst/gstplugin.c gst/gstpoll.c \
+ gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
gst/gstsegment.c gst/gststructure.c gst/gstsystemclock.c \
gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
@@ -862,13 +870,13 @@ DIST_SOURCES = elements/capsfilter.c elements/fakesink.c \
gst/gstbufferlist.c gst/gstbufferpool.c gst/gstbus.c \
gst/gstcaps.c gst/gstcapsfeatures.c gst/gstchildproxy.c \
gst/gstclock.c gst/gstcontext.c gst/gstcontroller.c \
- $(gst_gstcpp_SOURCES) gst/gstdatetime.c gst/gstelement.c \
- gst/gstelementfactory.c gst/gstevent.c gst/gstghostpad.c \
- gst/gstinfo.c gst/gstiterator.c gst/gstmemory.c \
- gst/gstmessage.c gst/gstmeta.c gst/gstminiobject.c \
- gst/gstobject.c gst/gstpad.c gst/gstparamspecs.c \
- gst/gstpipeline.c gst/gstplugin.c gst/gstpoll.c \
- gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
+ $(gst_gstcpp_SOURCES) gst/gstdatetime.c gst/gstdevice.c \
+ gst/gstelement.c gst/gstelementfactory.c gst/gstevent.c \
+ gst/gstghostpad.c gst/gstinfo.c gst/gstiterator.c \
+ gst/gstmemory.c gst/gstmessage.c gst/gstmeta.c \
+ gst/gstminiobject.c gst/gstobject.c gst/gstpad.c \
+ gst/gstparamspecs.c gst/gstpipeline.c gst/gstplugin.c \
+ gst/gstpoll.c gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
gst/gstsegment.c gst/gststructure.c gst/gstsystemclock.c \
gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
@@ -1818,6 +1826,12 @@ gst/gstdatetime.$(OBJEXT): gst/$(am__dirstamp) \
gst/gstdatetime$(EXEEXT): $(gst_gstdatetime_OBJECTS) $(gst_gstdatetime_DEPENDENCIES) $(EXTRA_gst_gstdatetime_DEPENDENCIES) gst/$(am__dirstamp)
@rm -f gst/gstdatetime$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(gst_gstdatetime_OBJECTS) $(gst_gstdatetime_LDADD) $(LIBS)
+gst/gstdevice.$(OBJEXT): gst/$(am__dirstamp) \
+ gst/$(DEPDIR)/$(am__dirstamp)
+
+gst/gstdevice$(EXEEXT): $(gst_gstdevice_OBJECTS) $(gst_gstdevice_DEPENDENCIES) $(EXTRA_gst_gstdevice_DEPENDENCIES) gst/$(am__dirstamp)
+ @rm -f gst/gstdevice$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(gst_gstdevice_OBJECTS) $(gst_gstdevice_LDADD) $(LIBS)
gst/gstelement.$(OBJEXT): gst/$(am__dirstamp) \
gst/$(DEPDIR)/$(am__dirstamp)
@@ -2241,6 +2255,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstcontroller.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstcpp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstdatetime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstdevice.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstelement.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstelementfactory.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstevent.Po@am__quote@
@@ -2674,6 +2689,13 @@ gst/gstdatetime.log: gst/gstdatetime$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstdevice.log: gst/gstdevice$(EXEEXT)
+ @p='gst/gstdevice$(EXEEXT)'; \
+ b='gst/gstdevice'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
gst/gstinfo.log: gst/gstinfo$(EXEEXT)
@p='gst/gstinfo$(EXEEXT)'; \
b='gst/gstinfo'; \
diff --git a/tests/check/gst/gstbufferlist.c b/tests/check/gst/gstbufferlist.c
index 8af3db0..f20599b 100644
--- a/tests/check/gst/gstbufferlist.c
+++ b/tests/check/gst/gstbufferlist.c
@@ -25,8 +25,6 @@
#include <gst/gstbufferlist.h>
#include <string.h>
-#define TIMESTAMP 42
-
static GstBufferList *list;
static void
@@ -42,40 +40,6 @@ cleanup (void)
list = NULL;
}
-#if 0
-static GstBuffer *
-buffer_from_string (const gchar * str)
-{
- gsize size;
- GstBuffer *buf;
- gpointer data;
-
- size = strlen (str);
- buf = gst_buffer_new_and_alloc (size);
- GST_BUFFER_TIMESTAMP (buf) = TIMESTAMP;
-
- data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
- memcpy (data, str, size);
- gst_buffer_unmap (buf, data, size);
-
- return buf;
-}
-
-static void
-check_buffer (GstBuffer * buf, gsize size, const gchar * data)
-{
- gchar *bdata;
- gsize bsize, csize, msize;
-
- bdata = gst_buffer_map (buf, &bsize, &msize, GST_MAP_READ);
- csize = size ? size : bsize;
- GST_DEBUG ("%lu %lu %lu", bsize, csize, msize);
- fail_unless (bsize == csize);
- fail_unless (memcmp (bdata, data, csize) == 0);
- gst_buffer_unmap (buf, bdata, bsize);
-}
-#endif
-
GST_START_TEST (test_add_and_iterate)
{
GstBuffer *buf1;
@@ -131,10 +95,8 @@ GST_START_TEST (test_remove)
GST_END_TEST;
-#if 0
GST_START_TEST (test_make_writable)
{
- GstBufferListIterator *it;
GstBufferList *wlist;
GstBuffer *buf1;
GstBuffer *buf2;
@@ -142,69 +104,62 @@ GST_START_TEST (test_make_writable)
GstBuffer *buf;
/* add buffers to list */
- it = gst_buffer_list_iterate (list);
- gst_buffer_list_iterator_add_group (it);
- buf1 = gst_buffer_new_and_alloc (1);
- gst_buffer_list_iterator_add (it, buf1);
- gst_buffer_list_iterator_add_group (it);
- buf2 = gst_buffer_new_and_alloc (2);
- gst_buffer_list_iterator_add (it, buf2);
- buf3 = gst_buffer_new_and_alloc (3);
- gst_buffer_list_iterator_add (it, buf3);
- gst_buffer_list_iterator_free (it);
+ buf1 = gst_buffer_new_allocate (NULL, 1, NULL);
+ gst_buffer_list_add (list, buf1);
+
+ buf2 = gst_buffer_new_allocate (NULL, 2, NULL);
+ buf3 = gst_buffer_new_allocate (NULL, 3, NULL);
+ gst_buffer_list_add (list, gst_buffer_append (buf2, buf3));
/* making it writable with refcount 1 returns the same list */
wlist = gst_buffer_list_make_writable (list);
fail_unless (wlist == list);
- it = gst_buffer_list_iterate (list);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- buf = gst_buffer_list_iterator_next (it);
+ fail_unless_equals_int (gst_buffer_list_length (list), 2);
+ buf = gst_buffer_list_get (list, 0);
fail_unless (buf == buf1);
ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 1);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- buf = gst_buffer_list_iterator_next (it);
+ fail_unless_equals_int (gst_buffer_get_size (buf), 1);
+ buf = gst_buffer_list_get (list, 1);
fail_unless (buf == buf2);
ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 1);
- buf = gst_buffer_list_iterator_next (it);
- fail_unless (buf == buf3);
- ASSERT_BUFFER_REFCOUNT (buf3, "buf3", 1);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_if (gst_buffer_list_iterator_next_group (it));
- gst_buffer_list_iterator_free (it);
+ fail_unless_equals_int (gst_buffer_n_memory (buf), 2);
/* making it writable with refcount 2 returns a copy of the list with
* increased refcount on the buffers in the list */
gst_buffer_list_ref (list);
- fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (list) == 2);
+ fail_unless_equals_int (GST_MINI_OBJECT_REFCOUNT_VALUE (list), 2);
wlist = gst_buffer_list_make_writable (list);
- fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (list) == 1);
- fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (wlist) == 1);
+ fail_unless_equals_int (GST_MINI_OBJECT_REFCOUNT_VALUE (list), 1);
+ fail_unless_equals_int (GST_MINI_OBJECT_REFCOUNT_VALUE (wlist), 1);
fail_unless (wlist != list);
- it = gst_buffer_list_iterate (wlist);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- buf = gst_buffer_list_iterator_next (it);
+ /* check list */
+ fail_unless_equals_int (gst_buffer_list_length (list), 2);
+ buf = gst_buffer_list_get (list, 0);
+ fail_unless (buf == buf1);
+ ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 2);
+ fail_unless_equals_int (gst_buffer_get_size (buf), 1);
+ buf = gst_buffer_list_get (list, 1);
+ fail_unless (buf == buf2);
+ ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 2);
+ fail_unless_equals_int (gst_buffer_n_memory (buf), 2);
+ /* check wlist */
+ fail_unless_equals_int (gst_buffer_list_length (wlist), 2);
+ buf = gst_buffer_list_get (wlist, 0);
fail_unless (buf == buf1);
ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 2);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- buf = gst_buffer_list_iterator_next (it);
+ fail_unless_equals_int (gst_buffer_get_size (buf), 1);
+ buf = gst_buffer_list_get (wlist, 1);
fail_unless (buf == buf2);
ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 2);
- buf = gst_buffer_list_iterator_next (it);
- fail_unless (buf == buf3);
- ASSERT_BUFFER_REFCOUNT (buf3, "buf3", 2);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_if (gst_buffer_list_iterator_next_group (it));
- gst_buffer_list_iterator_free (it);
+ fail_unless_equals_int (gst_buffer_n_memory (buf), 2);
gst_buffer_list_unref (wlist);
+ /* list will be unrefed in cleanup hook */
}
GST_END_TEST;
GST_START_TEST (test_copy)
{
- GstBufferListIterator *it;
GstBufferList *list_copy;
GstBuffer *buf1;
GstBuffer *buf2;
@@ -212,401 +167,115 @@ GST_START_TEST (test_copy)
GstBuffer *buf;
/* add buffers to the list */
- it = gst_buffer_list_iterate (list);
- gst_buffer_list_iterator_add_group (it);
- buf1 = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, buf1);
- gst_buffer_list_iterator_add_group (it);
- buf2 = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, buf2);
- buf3 = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, buf3);
- gst_buffer_list_iterator_free (it);
+ buf1 = gst_buffer_new_allocate (NULL, 1, NULL);
+ gst_buffer_list_add (list, buf1);
+
+ buf2 = gst_buffer_new_allocate (NULL, 2, NULL);
+ buf3 = gst_buffer_new_allocate (NULL, 3, NULL);
+ gst_buffer_list_add (list, gst_buffer_append (buf2, buf3));
/* make a copy */
list_copy = gst_buffer_list_copy (list);
fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (list) == 1);
fail_unless (GST_MINI_OBJECT_REFCOUNT_VALUE (list_copy) == 1);
fail_unless (list_copy != list);
- it = gst_buffer_list_iterate (list_copy);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- buf = gst_buffer_list_iterator_next (it);
+ fail_unless_equals_int (gst_buffer_list_length (list_copy), 2);
+ buf = gst_buffer_list_get (list_copy, 0);
fail_unless (buf == buf1);
ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 2);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- buf = gst_buffer_list_iterator_next (it);
- fail_unless (buf == buf2);
- ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 2);
- buf = gst_buffer_list_iterator_next (it);
- fail_unless (buf == buf3);
- ASSERT_BUFFER_REFCOUNT (buf3, "buf3", 2);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_if (gst_buffer_list_iterator_next_group (it));
- gst_buffer_list_iterator_free (it);
- gst_buffer_list_unref (list_copy);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_steal)
-{
- GstBufferListIterator *it;
- GstBuffer *buf1;
- GstBuffer *buf2;
- GstBuffer *buf3;
- GstBuffer *buf;
-
- /* add buffers to the list */
- it = gst_buffer_list_iterate (list);
- gst_buffer_list_iterator_add_group (it);
- buf1 = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, buf1);
- gst_buffer_list_iterator_add_group (it);
- buf2 = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, buf2);
- buf3 = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, buf3);
- gst_buffer_list_iterator_free (it);
-
- /* check some error handling */
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (NULL)));
- fail_unless (buf == NULL);
- it = gst_buffer_list_iterate (list);
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (it)));
- fail_unless (buf == NULL);
-
- /* steal the first buffer */
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (it)));
- fail_unless (gst_buffer_list_iterator_next_group (it));
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (it)));
- fail_unless (gst_buffer_list_iterator_next (it) == buf1);
- buf = gst_buffer_list_iterator_steal (it);
- fail_unless (buf == buf1);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
- gst_buffer_unref (buf);
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (it)));
- fail_unless (buf == NULL);
-
- /* steal the second buffer */
- fail_unless (gst_buffer_list_iterator_next_group (it));
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (it)));
- fail_unless (gst_buffer_list_iterator_next (it) == buf2);
- buf = gst_buffer_list_iterator_steal (it);
+ fail_unless_equals_int (gst_buffer_get_size (buf1), 1);
+ buf = gst_buffer_list_get (list_copy, 1);
fail_unless (buf == buf2);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
- gst_buffer_unref (buf);
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (it)));
-
- /* steal the third buffer */
- fail_unless (gst_buffer_list_iterator_next (it) == buf3);
- buf = gst_buffer_list_iterator_steal (it);
- fail_unless (buf == buf3);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
- gst_buffer_unref (buf);
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_steal (it)));
-
- gst_buffer_list_iterator_free (it);
-
- /* iterate again when all buffers have been stolen */
- it = gst_buffer_list_iterate (list);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_if (gst_buffer_list_iterator_next_group (it));
- gst_buffer_list_iterator_free (it);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_take)
-{
- GstBufferListIterator *it;
- GstBuffer *buf1;
- GstBuffer *buf2;
- GstBuffer *buf3;
- GstBuffer *buf;
-
- /* add buffers to the list */
- it = gst_buffer_list_iterate (list);
- gst_buffer_list_iterator_add_group (it);
- buf1 = gst_buffer_new ();
- gst_buffer_ref (buf1);
- gst_buffer_list_iterator_add (it, buf1);
- gst_buffer_list_iterator_add_group (it);
- buf2 = gst_buffer_new ();
- gst_buffer_ref (buf2);
- gst_buffer_list_iterator_add (it, buf2);
- buf3 = gst_buffer_new ();
- gst_buffer_ref (buf3);
- gst_buffer_list_iterator_add (it, buf3);
- gst_buffer_list_iterator_free (it);
-
- /* check some error handling */
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (NULL, NULL));
- it = gst_buffer_list_iterate (list);
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, NULL));
- buf = gst_buffer_new ();
- gst_buffer_ref (buf);
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (NULL, buf));
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 2);
-
- /* replace the first buffer */
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, buf));
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 2);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, buf));
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 2);
- fail_unless (gst_buffer_list_iterator_next (it) == buf1);
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, NULL));
- ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 2);
- gst_buffer_list_iterator_take (it, buf);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 2);
- ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 1);
- gst_buffer_unref (buf1);
-
- /* replace the first buffer again, with itself */
- gst_buffer_ref (buf);
- gst_buffer_list_iterator_take (it, buf);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 2);
-
- /* replace the second buffer */
- gst_buffer_ref (buf);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, buf));
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 3);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 2);
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, buf));
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 3);
- ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 2);
- fail_unless (gst_buffer_list_iterator_next (it) == buf2);
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, NULL));
ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 2);
- gst_buffer_list_iterator_take (it, buf);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 3);
- ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 1);
- gst_buffer_unref (buf2);
-
- /* replace the third buffer */
- gst_buffer_ref (buf);
- fail_unless (gst_buffer_list_iterator_next (it) == buf3);
- ASSERT_BUFFER_REFCOUNT (buf3, "buf3", 2);
- gst_buffer_list_iterator_take (it, buf);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 4);
- ASSERT_BUFFER_REFCOUNT (buf3, "buf3", 1);
- gst_buffer_unref (buf3);
- fail_if (gst_buffer_list_iterator_next_group (it));
- ASSERT_CRITICAL (gst_buffer_list_iterator_take (it, buf));
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 4);
- gst_buffer_unref (buf);
-
- gst_buffer_list_iterator_free (it);
-}
-
-GST_END_TEST;
-
-static gpointer do_data_func_data;
-static gboolean notified;
-
-static GstBuffer *
-do_data_func (GstBuffer * buffer, gpointer data)
-{
- do_data_func_data = data;
- fail_if (notified);
-
- return buffer;
-}
-
-static GstBuffer *
-do_func_null (GstBuffer * buffer)
-{
- gst_buffer_unref (buffer);
-
- return NULL;
-}
-
-GST_START_TEST (test_do)
-{
- GstBufferListIterator *it;
- GstBuffer *buf1;
- GstBuffer *buf;
- gchar *data;
-
- /* error handling */
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_do (NULL, NULL, NULL)));
- fail_unless (buf == NULL);
- fail_unless (buf == NULL);
- it = gst_buffer_list_iterate (list);
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_do (it, NULL, NULL)));
- fail_unless (buf == NULL);
- fail_unless (buf == NULL);
-
- /* add buffers to the list */
- gst_buffer_list_iterator_add_group (it);
- buf1 = gst_buffer_new ();
- gst_buffer_ref (buf1);
- gst_buffer_list_iterator_add (it, buf1);
- gst_buffer_list_iterator_add_group (it);
- gst_buffer_list_iterator_free (it);
-
- /* call do-function */
- it = gst_buffer_list_iterate (list);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- ASSERT_CRITICAL ((buf =
- gst_buffer_list_iterator_do (it,
- (GstBufferListDoFunction) gst_buffer_ref, NULL)));
- fail_unless (buf == NULL);
- data = (char *) "data";
- ASSERT_CRITICAL ((buf = gst_buffer_list_iterator_do (it, do_data_func,
- data)));
- fail_unless (buf == NULL);
- fail_unless (do_data_func_data != data);
- buf = gst_buffer_list_iterator_next (it);
- fail_unless (buf == buf1);
- ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 2);
- buf =
- gst_buffer_list_iterator_do (it, (GstBufferListDoFunction) gst_buffer_ref,
- NULL);
- fail_unless (buf == buf1);
- ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 3);
- gst_buffer_unref (buf);
- buf = gst_buffer_list_iterator_do (it, do_data_func, data);
- fail_unless (buf == buf1);
- fail_unless (do_data_func_data == data);
-
- /* do-function that return a new buffer replaces the buffer in the list */
- ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 2);
- buf = gst_buffer_list_iterator_do (it,
- (GstBufferListDoFunction) gst_mini_object_make_writable, NULL);
- fail_unless (buf != buf1);
- ASSERT_BUFFER_REFCOUNT (buf, "buf", 1);
- ASSERT_BUFFER_REFCOUNT (buf, "buf1", 1);
- gst_buffer_replace (&buf1, buf);
+ fail_unless_equals_int (gst_buffer_get_size (buf2), 5);
+ fail_unless_equals_int (gst_buffer_n_memory (buf2), 2);
- /* do-function that return NULL removes the buffer from the list */
- ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 2);
- fail_unless (gst_buffer_list_iterator_do (it,
- (GstBufferListDoFunction) do_func_null, NULL) == NULL);
- ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 1);
- ASSERT_CRITICAL ((buf =
- gst_buffer_list_iterator_do (it,
- (GstBufferListDoFunction) gst_buffer_ref, NULL)));
- fail_unless (buf == NULL);
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- gst_buffer_list_iterator_free (it);
- it = gst_buffer_list_iterate (list);
- fail_unless (gst_buffer_list_iterator_next_group (it));
- fail_unless (gst_buffer_list_iterator_next (it) == NULL);
- fail_if (gst_buffer_list_iterator_next_group (it));
- gst_buffer_list_iterator_free (it);
- gst_buffer_unref (buf1);
+ gst_buffer_list_unref (list_copy);
}
GST_END_TEST;
typedef struct
{
- GstBuffer *buf[3][3];
+ GstBuffer *buf[2];
guint iter;
} ForeachData;
-static GstBufferListItem
-foreach_func1 (GstBuffer ** buffer, guint group, guint idx, ForeachData * data)
+static gboolean
+foreach_func1 (GstBuffer ** buffer, guint idx, ForeachData * data)
{
fail_unless (buffer != NULL);
- fail_unless (*buffer == data->buf[group][idx]);
+ fail_unless (GST_IS_BUFFER (*buffer));
+ fail_unless (*buffer == data->buf[idx]);
data->iter++;
- return GST_BUFFER_LIST_CONTINUE;
+ return TRUE;
}
-static GstBufferListItem
-foreach_func2 (GstBuffer ** buffer, guint group, guint idx, ForeachData * data)
+static gboolean
+foreach_func3 (GstBuffer ** buffer, guint idx, ForeachData * data)
{
fail_unless (idx == 0);
fail_unless (buffer != NULL);
- fail_unless (*buffer == data->buf[group][idx]);
+ fail_unless (GST_IS_BUFFER (*buffer));
+ fail_unless (*buffer == data->buf[idx]);
data->iter++;
- return GST_BUFFER_LIST_SKIP_GROUP;
+ return FALSE;
}
-static GstBufferListItem
-foreach_func3 (GstBuffer ** buffer, guint group, guint idx, ForeachData * data)
+static gboolean
+foreach_func4 (GstBuffer ** buffer, guint idx, ForeachData * data)
{
- fail_unless (group == 0);
fail_unless (idx == 0);
fail_unless (buffer != NULL);
- fail_unless (*buffer == data->buf[group][idx]);
-
- data->iter++;
-
- return GST_BUFFER_LIST_END;
-}
+ fail_unless (GST_IS_BUFFER (*buffer));
+ fail_unless (*buffer == data->buf[data->iter]);
-static GstBufferListItem
-foreach_func4 (GstBuffer ** buffer, guint group, guint idx, ForeachData * data)
-{
- fail_unless (idx == 0);
- fail_unless (buffer != NULL);
- fail_unless (*buffer == data->buf[group][idx]);
+ /* remove first */
+ if (*buffer == data->buf[0]) {
+ gst_buffer_unref (*buffer);
+ *buffer = NULL;
+ }
- gst_buffer_unref (*buffer);
- *buffer = NULL;
data->iter++;
- return GST_BUFFER_LIST_SKIP_GROUP;
+ return TRUE;
}
-static GstBufferListItem
-foreach_func5 (GstBuffer ** buffer, guint group, guint idx, ForeachData * data)
+static gboolean
+foreach_func5 (GstBuffer ** buffer, guint idx, ForeachData * data)
{
fail_unless (buffer != NULL);
+ fail_unless (GST_IS_BUFFER (*buffer));
data->iter++;
- return GST_BUFFER_LIST_CONTINUE;
+ return TRUE;
}
GST_START_TEST (test_foreach)
{
- GstBufferListIterator *it;
+ GstBuffer *buf2, *buf3;
ForeachData data;
/* add buffers to the list */
- it = gst_buffer_list_iterate (list);
- gst_buffer_list_iterator_add_group (it);
- data.buf[0][0] = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, data.buf[0][0]);
- gst_buffer_list_iterator_add_group (it);
- data.buf[1][0] = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, data.buf[1][0]);
- data.buf[1][1] = gst_buffer_new ();
- gst_buffer_list_iterator_add (it, data.buf[1][1]);
- gst_buffer_list_iterator_free (it);
-
- fail_unless (gst_buffer_list_get (list, 0, 0) == data.buf[0][0]);
- fail_unless (gst_buffer_list_get (list, 0, 1) == NULL);
- fail_unless (gst_buffer_list_get (list, 1, 0) == data.buf[1][0]);
- fail_unless (gst_buffer_list_get (list, 1, 1) == data.buf[1][1]);
- fail_unless (gst_buffer_list_get (list, 1, 2) == NULL);
- fail_unless (gst_buffer_list_get (list, 2, 0) == NULL);
- fail_unless (gst_buffer_list_get (list, 2, 1) == NULL);
- fail_unless (gst_buffer_list_get (list, 3, 3) == NULL);
+ data.buf[0] = gst_buffer_new_allocate (NULL, 1, NULL);
+ gst_buffer_list_add (list, data.buf[0]);
+
+ buf2 = gst_buffer_new_allocate (NULL, 2, NULL);
+ buf3 = gst_buffer_new_allocate (NULL, 3, NULL);
+ data.buf[1] = gst_buffer_append (buf2, buf3);
+ gst_buffer_list_add (list, data.buf[1]);
+
+ fail_unless (gst_buffer_list_get (list, 0) == data.buf[0]);
+ fail_unless (gst_buffer_list_get (list, 1) == data.buf[1]);
/* iterate everything */
data.iter = 0;
gst_buffer_list_foreach (list, (GstBufferListFunc) foreach_func1, &data);
- fail_unless (data.iter == 3);
-
- /* iterate only the first buffer of groups */
- data.iter = 0;
- gst_buffer_list_foreach (list, (GstBufferListFunc) foreach_func2, &data);
fail_unless (data.iter == 2);
/* iterate only the first buffer */
@@ -614,17 +283,13 @@ GST_START_TEST (test_foreach)
gst_buffer_list_foreach (list, (GstBufferListFunc) foreach_func3, &data);
fail_unless (data.iter == 1);
- /* remove the first buffer of each group */
+ /* remove the first buffer */
data.iter = 0;
gst_buffer_list_foreach (list, (GstBufferListFunc) foreach_func4, &data);
fail_unless (data.iter == 2);
- fail_unless (gst_buffer_list_get (list, 0, 0) == NULL);
- fail_unless (gst_buffer_list_get (list, 0, 1) == NULL);
- fail_unless (gst_buffer_list_get (list, 1, 0) == data.buf[1][1]);
- fail_unless (gst_buffer_list_get (list, 1, 1) == NULL);
- fail_unless (gst_buffer_list_get (list, 1, 2) == NULL);
- fail_unless (gst_buffer_list_get (list, 2, 0) == NULL);
+ fail_unless (gst_buffer_list_get (list, 0) == data.buf[1]);
+ fail_unless_equals_int (gst_buffer_list_length (list), 1);
/* iterate everything, just one more buffer now */
data.iter = 0;
@@ -634,43 +299,84 @@ GST_START_TEST (test_foreach)
GST_END_TEST;
-GST_START_TEST (test_list)
+/* make sure everything is fine if we exceed the pre-allocated size */
+GST_START_TEST (test_expand_and_remove)
{
- GstBufferListIterator *it;
- GList *l = NULL;
- gint i;
-
- for (i = 0; i < 10; i++) {
- gchar name[10];
- g_snprintf (name, 10, "%d", i);
- l = g_list_append (l, buffer_from_string (name));
+ GPtrArray *arr;
+ GstBuffer *buf;
+ guint i, idx, num, counter = 0;
+
+ gst_buffer_list_unref (list);
+
+ arr = g_ptr_array_new ();
+
+ list = gst_buffer_list_new_sized (1);
+
+ for (i = 0; i < 250; ++i) {
+ num = ++counter;
+ buf = gst_buffer_new_allocate (NULL, num, NULL);
+ gst_buffer_list_add (list, buf);
+ g_ptr_array_add (arr, GINT_TO_POINTER (num));
}
- /* add buffers to the list */
- it = gst_buffer_list_iterate (list);
- gst_buffer_list_iterator_add_group (it);
- gst_buffer_list_iterator_add_list (it, l);
+ for (i = 0; i < 250; ++i) {
+ num = ++counter;
+ buf = gst_buffer_new_allocate (NULL, num, NULL);
+ idx = g_random_int_range (0, gst_buffer_list_length (list));
+ gst_buffer_list_insert (list, idx, buf);
+ g_ptr_array_insert (arr, idx, GINT_TO_POINTER (num));
+ }
- /* add a buffer */
- gst_buffer_list_iterator_add (it, buffer_from_string ("10"));
+ /* make sure the list looks like it should */
+ fail_unless_equals_int (arr->len, gst_buffer_list_length (list));
+ for (i = 0; i < arr->len; ++i) {
+ buf = gst_buffer_list_get (list, i);
+ num = gst_buffer_get_size (buf);
+ fail_unless_equals_int (num, GPOINTER_TO_INT (g_ptr_array_index (arr, i)));
+ }
+
+ for (i = 0; i < 44; ++i) {
+ num = g_random_int_range (1, 5);
+ idx = g_random_int_range (0, gst_buffer_list_length (list) - num);
+ gst_buffer_list_remove (list, idx, num);
+ g_ptr_array_remove_range (arr, idx, num);
+ }
+
+ /* make sure the list still looks like it should */
+ fail_unless_equals_int (arr->len, gst_buffer_list_length (list));
+ for (i = 0; i < arr->len; ++i) {
+ buf = gst_buffer_list_get (list, i);
+ num = gst_buffer_get_size (buf);
+ fail_unless_equals_int (num, GPOINTER_TO_INT (g_ptr_array_index (arr, i)));
+ }
- /* add another list */
- l = g_list_append (NULL, buffer_from_string ("11"));
- gst_buffer_list_iterator_add_list (it, l);
+ for (i = 0; i < 500; ++i) {
+ num = ++counter;
+ buf = gst_buffer_new_allocate (NULL, num, NULL);
+ gst_buffer_list_add (list, buf);
+ g_ptr_array_add (arr, GINT_TO_POINTER (num));
+ }
- for (i = 0; i < 12; i++) {
- GstBuffer *buf;
- gchar name[10];
+ for (i = 0; i < 500; ++i) {
+ num = ++counter;
+ buf = gst_buffer_new_allocate (NULL, num, NULL);
+ idx = g_random_int_range (0, gst_buffer_list_length (list));
+ gst_buffer_list_insert (list, idx, buf);
+ g_ptr_array_insert (arr, idx, GINT_TO_POINTER (num));
+ }
- buf = gst_buffer_list_get (list, 0, i);
- g_snprintf (name, 10, "%d", i);
- check_buffer (buf, 0, name);
+ /* make sure the list still looks like it should */
+ fail_unless_equals_int (arr->len, gst_buffer_list_length (list));
+ for (i = 0; i < arr->len; ++i) {
+ buf = gst_buffer_list_get (list, i);
+ num = gst_buffer_get_size (buf);
+ fail_unless_equals_int (num, GPOINTER_TO_INT (g_ptr_array_index (arr, i)));
}
- gst_buffer_list_iterator_free (it);
+
+ g_ptr_array_unref (arr);
}
GST_END_TEST;
-#endif
static Suite *
gst_buffer_list_suite (void)
@@ -682,15 +388,10 @@ gst_buffer_list_suite (void)
tcase_add_checked_fixture (tc_chain, setup, cleanup);
tcase_add_test (tc_chain, test_add_and_iterate);
tcase_add_test (tc_chain, test_remove);
-#if 0
tcase_add_test (tc_chain, test_make_writable);
tcase_add_test (tc_chain, test_copy);
- tcase_add_test (tc_chain, test_steal);
- tcase_add_test (tc_chain, test_take);
- tcase_add_test (tc_chain, test_do);
tcase_add_test (tc_chain, test_foreach);
- tcase_add_test (tc_chain, test_list);
-#endif
+ tcase_add_test (tc_chain, test_expand_and_remove);
return s;
}
diff --git a/tests/check/gst/gstcaps.c b/tests/check/gst/gstcaps.c
index b1a1352..e529406 100644
--- a/tests/check/gst/gstcaps.c
+++ b/tests/check/gst/gstcaps.c
@@ -1129,6 +1129,13 @@ GST_START_TEST (test_features)
gst_caps_unref (c2);
gst_caps_unref (c1);
+
+ c1 = gst_caps_from_string ("video/x-raw");
+ f1 = gst_caps_get_features (c1, 0);
+ f2 = gst_caps_features_new ("memory:dmabuf", NULL);
+ gst_caps_set_features (c1, 0, f2);
+
+ gst_caps_unref (c1);
}
GST_END_TEST;
diff --git a/tests/check/gst/gstdevice.c b/tests/check/gst/gstdevice.c
new file mode 100644
index 0000000..c59d43b
--- /dev/null
+++ b/tests/check/gst/gstdevice.c
@@ -0,0 +1,561 @@
+/* GStreamer
+ * Copyright (C) 2014 Collabora
+ * Author: Olivier Crete <olivier.crete@collabora.com>
+ *
+ * gstdevice.c: Unit test for GstDevice
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/check/gstcheck.h>
+#include <gst/gst.h>
+
+typedef struct _GstTestDevice
+{
+ GstDevice parent;
+} GstTestDevice;
+
+typedef struct _GstTestDeviceClass
+{
+ GstDeviceClass parent_class;
+} GstTestDeviceClass;
+
+GType gst_test_device_get_type (void);
+
+
+G_DEFINE_TYPE (GstTestDevice, gst_test_device, GST_TYPE_DEVICE)
+
+ static GstElement *gst_test_device_create_element (GstDevice * device,
+ const gchar * name)
+{
+ return gst_bin_new (name);
+}
+
+static gboolean
+gst_test_device_reconfigure_element (GstDevice * device, GstElement * element)
+{
+ if (!strcmp (GST_ELEMENT_NAME (element), "reconfigurable"))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static void
+gst_test_device_class_init (GstTestDeviceClass * klass)
+{
+ GstDeviceClass *dclass = GST_DEVICE_CLASS (klass);
+
+ dclass->create_element = gst_test_device_create_element;
+ dclass->reconfigure_element = gst_test_device_reconfigure_element;
+}
+
+static void
+gst_test_device_init (GstTestDevice * self)
+{
+}
+
+#define DEVICE_CLASS "Test0/Test1/Test2/Test3/Test4/TestDev"
+#define DISPLAY_NAME "Test device"
+
+static GstDevice *
+test_device_new (void)
+{
+ GstCaps *caps = gst_caps_new_empty_simple ("video/test");
+ GstDevice *device = g_object_new (gst_test_device_get_type (), "caps", caps,
+ "display-name", DISPLAY_NAME, "device-class", DEVICE_CLASS, NULL);
+
+ gst_caps_unref (caps);
+
+ return device;
+}
+
+GST_START_TEST (test_device)
+{
+ GstDevice *device = test_device_new ();
+ GstCaps *caps;
+ gchar *display_name;
+ gchar *device_class;
+ GstCaps *compare_caps = gst_caps_new_empty_simple ("video/test");
+ GstElement *element;
+
+ caps = gst_device_get_caps (device);
+ display_name = gst_device_get_display_name (device);
+ device_class = gst_device_get_device_class (device);
+
+ fail_unless_equals_string (DISPLAY_NAME, display_name);
+ fail_unless_equals_string (DEVICE_CLASS, device_class);
+ gst_check_caps_equal (caps, compare_caps);
+
+ g_free (display_name);
+ g_free (device_class);
+ gst_caps_unref (caps);
+
+ fail_unless (gst_device_has_classes (device, "Test1"));
+ fail_unless (gst_device_has_classes (device, "Test2/Test1"));
+
+ element = gst_device_create_element (device, "reconfigurable");
+ fail_unless (GST_IS_BIN (element));
+
+ fail_unless (gst_device_reconfigure_element (device, element));
+
+ gst_element_set_name (element, "no-no");
+
+ fail_unless (!gst_device_reconfigure_element (device, element));
+
+ gst_object_unref (element);
+
+ gst_caps_unref (compare_caps);
+ gst_object_unref (device);
+}
+
+GST_END_TEST;
+
+
+typedef struct _GstTestDeviceProvider
+{
+ GstDeviceProvider parent;
+
+} GstTestDeviceProvider;
+
+typedef struct _GstTestDeviceProviderClass
+{
+ GstDeviceProviderClass parent_class;
+} GstTestDeviceProviderClass;
+
+GType gst_test_device_provider_get_type (void);
+
+
+G_DEFINE_TYPE (GstTestDeviceProvider, gst_test_device_provider,
+ GST_TYPE_DEVICE_PROVIDER)
+
+
+ static GList *devices = NULL;
+
+ static GList *gst_test_device_provider_probe (GstDeviceProvider * provider)
+{
+ GList *devs;
+
+ devs = g_list_copy (devices);
+ g_list_foreach (devs, (GFunc) gst_object_ref, NULL);
+
+ return devs;
+}
+
+static void
+gst_test_device_provider_class_init (GstTestDeviceProviderClass * klass)
+{
+ GstDeviceProviderClass *dpclass = GST_DEVICE_PROVIDER_CLASS (klass);
+
+ dpclass->probe = gst_test_device_provider_probe;
+
+ gst_device_provider_class_set_static_metadata (dpclass,
+ "Test Device Provider", "Test0/Test1/Test2/Test3/TestProvider",
+ "List but does NOT monitor test devices",
+ "Olivier Crete <olivier.crete@collabora.com>");
+}
+
+static void
+gst_test_device_provider_init (GstTestDeviceProvider * self)
+{
+}
+
+static void
+register_test_device_provider (void)
+{
+ gst_device_provider_register (NULL, "testdeviceprovider", 1,
+ gst_test_device_provider_get_type ());
+}
+
+GST_START_TEST (test_device_provider_factory)
+{
+ GstDeviceProvider *dp, *dp2;
+ GList *factories;
+ GstDeviceProviderFactory *f;
+
+ register_test_device_provider ();
+
+ factories = gst_device_provider_factory_list_get_device_providers (1);
+
+ fail_unless (factories != NULL);
+
+ f = gst_device_provider_factory_find ("testdeviceprovider");
+ fail_unless (f != NULL);
+
+ gst_plugin_feature_list_free (factories);
+
+ fail_unless (gst_device_provider_factory_has_classes (f, "Test2"));
+ fail_unless (gst_device_provider_factory_has_classes (f, "Test2/Test0"));
+ fail_unless (!gst_device_provider_factory_has_classes (f,
+ "Test2/TestN/Test0"));
+ fail_unless (!gst_device_provider_factory_has_classes (f, "TestN"));
+ fail_unless (!gst_device_provider_factory_has_classes (f, "Test"));
+
+ dp = gst_device_provider_factory_get (f);
+
+ gst_object_unref (f);
+
+ dp2 = gst_device_provider_factory_get_by_name ("testdeviceprovider");
+
+ fail_unless_equals_pointer (dp, dp2);
+
+ gst_object_unref (dp);
+ gst_object_unref (dp2);
+
+ dp2 = gst_device_provider_factory_get_by_name ("testdeviceprovider");
+ fail_unless_equals_pointer (dp, dp2);
+ gst_object_unref (dp2);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_device_provider)
+{
+ GstDeviceProvider *dp;
+ GList *devs;
+ GstBus *bus;
+
+ register_test_device_provider ();
+
+ dp = gst_device_provider_factory_get_by_name ("testdeviceprovider");
+
+ fail_unless (gst_device_provider_get_devices (dp) == NULL);
+
+ devices = g_list_append (NULL, test_device_new ());
+
+ devs = gst_device_provider_get_devices (dp);
+ fail_unless (g_list_length (devs) == 1);
+ fail_unless_equals_pointer (devs->data, devices->data);
+ g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
+
+ fail_if (gst_device_provider_can_monitor (dp));
+ fail_if (gst_device_provider_start (dp));
+
+ bus = gst_device_provider_get_bus (dp);
+ fail_unless (GST_IS_BUS (bus));
+ gst_object_unref (bus);
+
+ g_list_free_full (devices, (GDestroyNotify) gst_object_unref);
+ gst_object_unref (dp);
+}
+
+GST_END_TEST;
+
+typedef struct _GstTestDeviceProviderMonitor
+{
+ GstDeviceProvider parent;
+
+} GstTestDeviceProviderMonitor;
+
+typedef struct _GstTestDeviceProviderMonitorClass
+{
+ GstDeviceProviderClass parent_class;
+} GstTestDeviceProviderMonitorClass;
+
+GType gst_test_device_provider_monitor_get_type (void);
+
+
+G_DEFINE_TYPE (GstTestDeviceProviderMonitor, gst_test_device_provider_monitor,
+ GST_TYPE_DEVICE_PROVIDER)
+
+
+ static gboolean
+ gst_test_device_provider_monitor_start (GstDeviceProvider * monitor)
+{
+ return TRUE;
+}
+
+static void
+gst_test_device_provider_monitor_class_init (GstTestDeviceProviderMonitorClass *
+ klass)
+{
+ GstDeviceProviderClass *dpclass = GST_DEVICE_PROVIDER_CLASS (klass);
+
+ dpclass->probe = gst_test_device_provider_probe;
+ dpclass->start = gst_test_device_provider_monitor_start;
+
+ gst_device_provider_class_set_static_metadata (dpclass,
+ "Test Device Provider Monitor",
+ "Test0/Test1/Test2/Test4/TestProviderMonitor",
+ "List and monitors Test devices",
+ "Olivier Crete <olivier.crete@collabora.com>");
+}
+
+static void
+gst_test_device_provider_monitor_init (GstTestDeviceProviderMonitor * self)
+{
+}
+
+static void
+register_test_device_provider_monitor (void)
+{
+ gst_device_provider_register (NULL, "testdeviceprovidermonitor", 2,
+ gst_test_device_provider_monitor_get_type ());
+}
+
+
+GST_START_TEST (test_device_provider_monitor)
+{
+ GstDeviceProvider *dp;
+ GList *devs;
+ GstBus *bus;
+ GstDevice *mydev;
+ GstDevice *dev;
+ GstMessage *msg;
+
+ register_test_device_provider_monitor ();
+
+ devices = g_list_append (NULL, test_device_new ());
+
+ dp = gst_device_provider_factory_get_by_name ("testdeviceprovidermonitor");
+
+ bus = gst_device_provider_get_bus (dp);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg == NULL);
+
+ fail_unless (gst_device_provider_can_monitor (dp));
+ fail_unless (gst_device_provider_start (dp));
+
+ fail_unless (gst_device_provider_get_devices (dp) == NULL);
+
+ devs = gst_device_provider_get_devices (dp);
+ fail_unless (devs == NULL);
+
+ mydev = test_device_new ();
+ fail_unless (g_object_is_floating (mydev));
+ ASSERT_OBJECT_REFCOUNT (mydev, "dev", 1);
+
+ gst_device_provider_device_add (dp, mydev);
+ fail_unless (!g_object_is_floating (mydev));
+ ASSERT_OBJECT_REFCOUNT (mydev, "dev", 2);
+
+ devs = gst_device_provider_get_devices (dp);
+ ASSERT_OBJECT_REFCOUNT (mydev, "dev", 3);
+
+ fail_unless_equals_int (g_list_length (devs), 1);
+ fail_unless_equals_pointer (devs->data, mydev);
+ g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
+
+ ASSERT_OBJECT_REFCOUNT (mydev, "dev", 2);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg != NULL);
+
+ fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_DEVICE_ADDED);
+
+ gst_message_parse_device_added (msg, &dev);
+ fail_unless_equals_pointer (dev, mydev);
+ gst_object_unref (dev);
+ gst_message_unref (msg);
+
+ ASSERT_OBJECT_REFCOUNT (mydev, "dev", 1);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg == NULL);
+
+ gst_device_provider_device_remove (dp, mydev);
+ devs = gst_device_provider_get_devices (dp);
+ fail_unless (devs == NULL);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg != NULL);
+
+ fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_DEVICE_REMOVED);
+
+ gst_message_parse_device_removed (msg, &dev);
+ fail_unless_equals_pointer (dev, mydev);
+ ASSERT_OBJECT_REFCOUNT (mydev, "dev", 2);
+ gst_object_unref (dev);
+ gst_message_unref (msg);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg == NULL);
+
+ gst_device_provider_stop (dp);
+ gst_object_unref (bus);
+ ASSERT_OBJECT_REFCOUNT (dp, "monitor", 2);
+ gst_object_unref (dp);
+
+ /* Is singleton, so system keeps a ref */
+ ASSERT_OBJECT_REFCOUNT (dp, "monitor", 1);
+
+ g_list_free_full (devices, (GDestroyNotify) gst_object_unref);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_device_monitor)
+{
+ GstDeviceProvider *dp, *dp2;
+ GstDeviceMonitor *mon;
+ GList *devs;
+ guint id, id2;
+ GstDevice *mydev;
+ GstMessage *msg;
+ GstBus *bus;
+ GstDevice *dev;
+
+ register_test_device_provider ();
+ register_test_device_provider_monitor ();
+
+ dp = gst_device_provider_factory_get_by_name ("testdeviceprovider");
+ dp2 = gst_device_provider_factory_get_by_name ("testdeviceprovidermonitor");
+
+ mon = gst_device_monitor_new ();
+
+ devices = g_list_append (NULL, test_device_new ());
+
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (devs == NULL);
+
+ id = gst_device_monitor_add_filter (mon, "TestProvider", NULL);
+ fail_unless (id > 0);
+
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (devs == NULL);
+
+ fail_unless (gst_device_monitor_add_filter (mon, "TestDevice", NULL) == 0);
+ ASSERT_CRITICAL (gst_device_monitor_remove_filter (mon, 0));
+
+ fail_unless (gst_device_monitor_remove_filter (mon, id));
+
+ id = gst_device_monitor_add_filter (mon, "Test3", NULL);
+ fail_unless (id > 0);
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (g_list_length (devs) == 1);
+ fail_unless_equals_pointer (devs->data, devices->data);
+ g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
+
+ id2 = gst_device_monitor_add_filter (mon, "Test1", NULL);
+ fail_unless (id2 > 0);
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (g_list_length (devs) == 2);
+ fail_unless_equals_pointer (devs->data, devices->data);
+ fail_unless_equals_pointer (devs->next->data, devices->data);
+ g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
+
+ fail_unless (gst_device_monitor_remove_filter (mon, id));
+
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (g_list_length (devs) == 2);
+ fail_unless_equals_pointer (devs->data, devices->data);
+ fail_unless_equals_pointer (devs->next->data, devices->data);
+ g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
+
+
+ fail_unless (gst_device_monitor_start (mon));
+
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (g_list_length (devs) == 1);
+ fail_unless_equals_pointer (devs->data, devices->data);
+ g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
+
+ gst_device_monitor_stop (mon);
+
+ fail_unless (gst_device_monitor_remove_filter (mon, id2));
+
+ id = gst_device_monitor_add_filter (mon, "Test4", NULL);
+ fail_unless (id > 0);
+
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (g_list_length (devs) == 1);
+ fail_unless_equals_pointer (devs->data, devices->data);
+ g_list_free_full (devs, (GDestroyNotify) gst_object_unref);
+
+ fail_unless (gst_device_monitor_start (mon));
+
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (devs == NULL);
+
+ bus = gst_device_monitor_get_bus (mon);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg == NULL);
+
+ mydev = test_device_new ();
+ gst_device_provider_device_add (dp2, mydev);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg != NULL);
+
+ fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_DEVICE_ADDED);
+
+ gst_message_parse_device_added (msg, &dev);
+ fail_unless_equals_pointer (dev, mydev);
+ gst_object_unref (dev);
+ gst_message_unref (msg);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg == NULL);
+
+ gst_device_provider_device_remove (dp2, mydev);
+ devs = gst_device_monitor_get_devices (mon);
+ fail_unless (devs == NULL);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg != NULL);
+
+ fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_DEVICE_REMOVED);
+
+ gst_message_parse_device_removed (msg, &dev);
+ fail_unless_equals_pointer (dev, mydev);
+ gst_object_unref (dev);
+ gst_message_unref (msg);
+
+ msg = gst_bus_pop (bus);
+ fail_unless (msg == NULL);
+
+
+ gst_device_monitor_stop (mon);
+
+ gst_object_unref (bus);
+ gst_object_unref (mon);
+
+ gst_object_unref (dp);
+ gst_object_unref (dp2);
+ g_list_free_full (devices, (GDestroyNotify) gst_object_unref);
+
+ /* should work fine without any filters */
+ mon = gst_device_monitor_new ();
+ fail_unless (gst_device_monitor_start (mon));
+ gst_device_monitor_stop (mon);
+ gst_object_unref (mon);
+}
+
+GST_END_TEST;
+
+
+static Suite *
+gst_device_suite (void)
+{
+ Suite *s = suite_create ("GstDevice");
+ TCase *tc_chain = tcase_create ("device tests");
+
+ suite_add_tcase (s, tc_chain);
+ tcase_add_test (tc_chain, test_device);
+ tcase_add_test (tc_chain, test_device_provider_factory);
+ tcase_add_test (tc_chain, test_device_provider);
+ tcase_add_test (tc_chain, test_device_provider_monitor);
+ tcase_add_test (tc_chain, test_device_monitor);
+
+ return s;
+}
+
+GST_CHECK_MAIN (gst_device);
diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
index 543bd1a..992f4ff 100644
--- a/tools/gst-inspect.c
+++ b/tools/gst-inspect.c
@@ -1139,7 +1139,7 @@ print_plugin_features (GstPlugin * plugin)
gint num_features = 0;
gint num_elements = 0;
gint num_typefinders = 0;
- gint num_devmonitors = 0;
+ gint num_devproviders = 0;
gint num_other = 0;
origlist = features =
@@ -1180,14 +1180,14 @@ print_plugin_features (GstPlugin * plugin)
gst_plugin_feature_get_name (feature));
num_typefinders++;
- } else if (GST_IS_DEVICE_MONITOR_FACTORY (feature)) {
- GstDeviceMonitorFactory *factory;
+ } else if (GST_IS_DEVICE_PROVIDER_FACTORY (feature)) {
+ GstDeviceProviderFactory *factory;
- factory = GST_DEVICE_MONITOR_FACTORY (feature);
+ factory = GST_DEVICE_PROVIDER_FACTORY (feature);
n_print (" %s: %s\n", GST_OBJECT_NAME (factory),
- gst_device_monitor_factory_get_metadata (factory,
+ gst_device_provider_factory_get_metadata (factory,
GST_ELEMENT_METADATA_LONGNAME));
- num_devmonitors++;
+ num_devproviders++;
} else if (feature) {
n_print (" %s (%s)\n", gst_object_get_name (GST_OBJECT (feature)),
g_type_name (G_OBJECT_TYPE (feature)));
@@ -1205,8 +1205,8 @@ print_plugin_features (GstPlugin * plugin)
n_print (" +-- %d elements\n", num_elements);
if (num_typefinders > 0)
n_print (" +-- %d typefinders\n", num_typefinders);
- if (num_devmonitors > 0)
- n_print (" +-- %d device monitors\n", num_devmonitors);
+ if (num_devproviders > 0)
+ n_print (" +-- %d device providers\n", num_devproviders);
if (num_other > 0)
n_print (" +-- %d other objects\n", num_other);
diff --git a/win32/common/config.h b/win32/common/config.h
index c3e90cd..7746853 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -62,7 +62,7 @@
#define GST_PACKAGE_ORIGIN "Unknown package origin"
/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2014-06-22"
+#define GST_PACKAGE_RELEASE_DATETIME "2014-06-28"
/* Define if static plugins should be built */
#undef GST_PLUGIN_BUILD_STATIC
@@ -354,7 +354,7 @@
#define PACKAGE_NAME "GStreamer"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 1.3.3"
+#define PACKAGE_STRING "GStreamer 1.3.90"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gstreamer"
@@ -363,7 +363,7 @@
#undef PACKAGE_URL
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.3.3"
+#define PACKAGE_VERSION "1.3.90"
/* directory where plugins are located */
#ifdef _DEBUG
@@ -401,7 +401,7 @@
#undef USE_POISONING
/* Version number of package */
-#define VERSION "1.3.3"
+#define VERSION "1.3.90"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/gstversion.h b/win32/common/gstversion.h
index e04dc96..26cc9bb 100644
--- a/win32/common/gstversion.h
+++ b/win32/common/gstversion.h
@@ -57,7 +57,7 @@ G_BEGIN_DECLS
*
* The micro version of GStreamer at compile time:
*/
-#define GST_VERSION_MICRO (3)
+#define GST_VERSION_MICRO (90)
/**
* GST_VERSION_NANO:
*
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index fc74f2f..2fda6b6 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -415,31 +415,39 @@ EXPORTS
gst_device_get_type
gst_device_has_classes
gst_device_has_classesv
- gst_device_monitor_can_monitor
- gst_device_monitor_class_add_metadata
- gst_device_monitor_class_add_static_metadata
- gst_device_monitor_class_get_metadata
- gst_device_monitor_class_set_metadata
- gst_device_monitor_class_set_static_metadata
- gst_device_monitor_device_add
- gst_device_monitor_device_remove
- gst_device_monitor_factory_find
- gst_device_monitor_factory_get
- gst_device_monitor_factory_get_by_name
- gst_device_monitor_factory_get_device_monitor_type
- gst_device_monitor_factory_get_metadata
- gst_device_monitor_factory_get_metadata_keys
- gst_device_monitor_factory_get_type
- gst_device_monitor_factory_has_classes
- gst_device_monitor_factory_has_classesv
- gst_device_monitor_factory_list_get_device_monitors
+ gst_device_monitor_add_filter
gst_device_monitor_get_bus
gst_device_monitor_get_devices
- gst_device_monitor_get_factory
gst_device_monitor_get_type
- gst_device_monitor_register
+ gst_device_monitor_new
+ gst_device_monitor_remove_filter
gst_device_monitor_start
gst_device_monitor_stop
+ gst_device_provider_can_monitor
+ gst_device_provider_class_add_metadata
+ gst_device_provider_class_add_static_metadata
+ gst_device_provider_class_get_metadata
+ gst_device_provider_class_set_metadata
+ gst_device_provider_class_set_static_metadata
+ gst_device_provider_device_add
+ gst_device_provider_device_remove
+ gst_device_provider_factory_find
+ gst_device_provider_factory_get
+ gst_device_provider_factory_get_by_name
+ gst_device_provider_factory_get_device_provider_type
+ gst_device_provider_factory_get_metadata
+ gst_device_provider_factory_get_metadata_keys
+ gst_device_provider_factory_get_type
+ gst_device_provider_factory_has_classes
+ gst_device_provider_factory_has_classesv
+ gst_device_provider_factory_list_get_device_providers
+ gst_device_provider_get_bus
+ gst_device_provider_get_devices
+ gst_device_provider_get_factory
+ gst_device_provider_get_type
+ gst_device_provider_register
+ gst_device_provider_start
+ gst_device_provider_stop
gst_device_reconfigure_element
gst_double_range_get_type
gst_element_abort_state
@@ -605,16 +613,6 @@ EXPORTS
gst_ghost_pad_new_no_target
gst_ghost_pad_new_no_target_from_template
gst_ghost_pad_set_target
- gst_global_device_monitor_get_bus
- gst_global_device_monitor_get_caps_filter
- gst_global_device_monitor_get_classes_filter
- gst_global_device_monitor_get_devices
- gst_global_device_monitor_get_type
- gst_global_device_monitor_new
- gst_global_device_monitor_set_caps_filter
- gst_global_device_monitor_set_classes_filter
- gst_global_device_monitor_start
- gst_global_device_monitor_stop
gst_init
gst_init_check
gst_init_get_option_group