diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-06-28 11:12:35 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-06-28 11:12:35 +0200 |
commit | e2d0563de5a89cad3abe2e6750592be813b295bf (patch) | |
tree | cb38a11eaa2069a50d5d2f50543c19174580a298 | |
parent | ecb9a290ddeb6fb90fb2d741b9b4267348512ebf (diff) |
Imported Upstream version 1.3.90
249 files changed, 5729 insertions, 4923 deletions
@@ -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> @@ -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. @@ -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 @@ -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 ;; @@ -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 <gst/gst.h> </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">, &</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">"Device added: %s</span><span class="gtkdoc esc">\n</span><span class="string">"</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">, &</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">"Device removed: %s</span><span class="gtkdoc esc">\n</span><span class="string">"</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">"video/x-raw"</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">"Video/Source"</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 <joe.blogs at foo.com>"</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 <joe.blogs at foo.com>"</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 <gst/gst.h> +</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 <joe.blogs at foo.com>"</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 <joe.blogs at foo.com>"</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 <gst/gst.h> -</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 @@ -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 <joe.blogs at foo.com>" - * - * 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 <joe.blogs at foo.com>" - * - * 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 <joe.blogs at foo.com>" + * + * 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 <joe.blogs at foo.com>" + * + * 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, - ®istry->priv->device_monitor_factory_list, - ®istry->priv->dmfl_cookie, GST_TYPE_DEVICE_MONITOR_FACTORY); + ®istry->priv->device_provider_factory_list, + ®istry->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 Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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 Binary files differindex 5e85ea5..c00d007 100644 --- a/po/en_GB.gmo +++ b/po/en_GB.gmo 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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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 "" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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 Binary files differindex 8b32f92..e161a6b 100644 --- a/po/pt_BR.gmo +++ b/po/pt_BR.gmo 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." Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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" Binary files differ@@ -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 Binary files differindex 1a92185..5a7b2e5 100644 --- a/po/zh_CN.gmo +++ b/po/zh_CN.gmo 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 Binary files differindex 14908bb..9b020c8 100644 --- a/po/zh_TW.gmo +++ b/po/zh_TW.gmo 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 |