initial python bindings
authorDavid I. Lehn <dlehn@users.sourceforge.net>
Sun, 24 Mar 2002 04:32:10 +0000 (04:32 +0000)
committerDavid I. Lehn <dlehn@users.sourceforge.net>
Sun, 24 Mar 2002 04:32:10 +0000 (04:32 +0000)
Original commit message from CVS:
initial python bindings

46 files changed:
.gitignore [new file with mode: 0644]
.gitmodules [new file with mode: 0644]
AUTHORS [new file with mode: 0644]
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
INSTALL [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
NEWS [new file with mode: 0644]
README [new file with mode: 0644]
acinclude.m4 [new file with mode: 0644]
autogen.sh [new file with mode: 0755]
common [new submodule]
configure.ac [new file with mode: 0644]
examples/.gitignore [new file with mode: 0644]
examples/Makefile.am [new file with mode: 0644]
examples/gst/.gitignore [new file with mode: 0644]
examples/gst/Makefile.am [new file with mode: 0644]
examples/gstreamer/.gitignore [new file with mode: 0644]
examples/gstreamer/Makefile.am [new file with mode: 0644]
gst-python.spec.in [new file with mode: 0644]
gst/.gitignore [new file with mode: 0644]
gst/Makefile.am [new file with mode: 0644]
gst/__init__.py [new file with mode: 0644]
gst/gst.defs [new file with mode: 0644]
gst/gstmodule.c [new file with mode: 0644]
gst/gstreamer-arg-types.py [new file with mode: 0644]
gst/gstreamer-fixes.c [new file with mode: 0644]
gst/gstreamer-fixes.h [new file with mode: 0644]
gst/gstreamer.defs [new file with mode: 0644]
gst/gstreamer.override [new file with mode: 0644]
gst/gstreamermodule.c [new file with mode: 0644]
gst/tmp-enum-types.c [new file with mode: 0644]
gst/tmp-enum-types.h [new file with mode: 0644]
gstreamer/.gitignore [new file with mode: 0644]
gstreamer/Makefile.am [new file with mode: 0644]
gstreamer/__init__.py [new file with mode: 0644]
gstreamer/gst.defs [new file with mode: 0644]
gstreamer/gstmodule.c [new file with mode: 0644]
gstreamer/gstreamer-arg-types.py [new file with mode: 0644]
gstreamer/gstreamer-fixes.c [new file with mode: 0644]
gstreamer/gstreamer-fixes.h [new file with mode: 0644]
gstreamer/gstreamer.defs [new file with mode: 0644]
gstreamer/gstreamer.override [new file with mode: 0644]
gstreamer/gstreamermodule.c [new file with mode: 0644]
gstreamer/tmp-enum-types.c [new file with mode: 0644]
gstreamer/tmp-enum-types.h [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..bab2b0c
--- /dev/null
@@ -0,0 +1,35 @@
+Makefile
+Makefile.in
+gst-python.spec
+aclocal.m4
+config.cache
+config.guess
+config.h
+config.log
+config.status
+config.sub
+configure
+configure.scan
+libtool
+ltconfig
+ltmain.sh
+stamp-h*
+stamp.h
+version.h
+config.h.in
+.exrc
+install-sh
+missing
+mkinstalldirs
+depcomp
+intl
+py-compile
+.deps
+.libs
+*_defs.c
+*_impl.c
+*.pyc
+*.pyo
+*.lo
+*.la
+autom4te.cache
diff --git a/.gitmodules b/.gitmodules
new file mode 100644 (file)
index 0000000..1ba590b
--- /dev/null
@@ -0,0 +1,3 @@
+[submodule "common"]
+        path = common
+        url = git://anongit.freedesktop.org/gstreamer/common
diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..4dd555a
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,10 @@
+gst-python authors:
+
+David I. Lehn  <dlehn@vt.edu>
+
+
+Much of the framework for gst-python stolen from gtk and gconf bindings by:
+
+James Henstridge  <james@daa.com.au>
+Johan Dahlin  <jdahlin@telia.com>
+Matt Wilson  <msw@redhat.com>
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..cf9b6b9
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,510 @@
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+^L
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard.  To achieve this, non-free programs must
+be allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+^L
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+^L
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+^L
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at least
+    three years, to give the same user the materials specified in
+    Subsection 6a, above, for a charge no more than the cost of
+    performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+^L
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+^L
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+^L
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+^L
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser 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
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James
+  Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..6222d4e
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,4 @@
+2002-03-23  David I. Lehn  <dlehn@vt.edu>
+
+       * stole binding framework from gnome-python && gconf
+       * adapted to gstreamer
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..b42a17a
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,182 @@
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+   The file `configure.in' is used to create `configure' by a program
+called `autoconf'.  You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  You can give `configure'
+initial values for variables by setting them in the environment.  Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory.  After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on.  Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+     CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+   If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+     Use and save the results of the tests in FILE instead of
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
+     debugging `configure'.
+
+`--help'
+     Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--version'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..aed91e1
--- /dev/null
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = 1.5
+
+SUBDIRS = gstreamer examples
+
+EXTRA_DIST = \
+  gst-python.spec.in
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644 (file)
index 0000000..a1396df
--- /dev/null
@@ -0,0 +1,62 @@
+## this one is commonly used with AM_PATH_PYTHONDIR ...
+dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
+dnl Check if a module containing a given symbol is visible to python.
+AC_DEFUN(AM_CHECK_PYMOD,
+[AC_REQUIRE([AM_PATH_PYTHON])
+py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
+AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
+AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
+ifelse([$2],[], [prog="
+import sys
+try:
+        import $1
+except ImportError:
+        sys.exit(1)
+except:
+        sys.exit(0)
+sys.exit(0)"], [prog="
+import $1
+$1.$2"])
+if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
+  then
+    eval "py_cv_mod_$py_mod_var=yes"
+  else
+    eval "py_cv_mod_$py_mod_var=no"
+  fi
+])
+py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
+if test "x$py_val" != xno; then
+  AC_MSG_RESULT(yes)
+  ifelse([$3], [],, [$3
+])dnl
+else
+  AC_MSG_RESULT(no)
+  ifelse([$4], [],, [$4
+])dnl
+fi
+])
+
+dnl a macro to check for ability to create python extensions
+dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
+dnl function also defines PYTHON_INCLUDES
+AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
+[AC_REQUIRE([AM_PATH_PYTHON])
+AC_MSG_CHECKING(for headers required to compile python extensions)
+dnl deduce PYTHON_INCLUDES
+py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
+py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
+PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
+if test "$py_prefix" != "$py_exec_prefix"; then
+  PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
+fi
+AC_SUBST(PYTHON_INCLUDES)
+dnl check if the headers exist:
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
+AC_TRY_CPP([#include <Python.h>],dnl
+[AC_MSG_RESULT(found)
+$1],dnl
+[AC_MSG_RESULT(not found)
+$2])
+CPPFLAGS="$save_CPPFLAGS"
+])
diff --git a/autogen.sh b/autogen.sh
new file mode 100755 (executable)
index 0000000..20af994
--- /dev/null
@@ -0,0 +1,101 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+PROJECT=gst-python
+TEST_TYPE=-d
+FILE=gstreamer
+
+DIE=0
+
+test -z "$AUTOMAKE" && AUTOMAKE=automake
+test -z "$ACLOCAL" && ACLOCAL=aclocal
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+       echo
+       echo "You must have autoconf installed to compile $PROJECT."
+       echo "Download the appropriate package for your distribution,"
+       echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+       DIE=1
+}
+
+(libtool --version) < /dev/null > /dev/null 2>&1 || {
+        echo
+        echo "You must have libtool installed to compile gnome-xml."
+        echo "Get ftp://ftp.gnu.org/gnu/libtool/libtool-1.4.tar.gz"
+        echo "(or a newer version if it is available)"
+        DIE=1
+}
+
+($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || {
+       echo
+       echo "You must have automake installed to compile $PROJECT."
+       echo "Get ftp://ftp.cygnus.com/pub/home/tromey/automake-1.2d.tar.gz"
+       echo "(or a newer version if it is available)"
+       DIE=1
+}
+
+if test "$DIE" -eq 1; then
+       exit 1
+fi
+
+test $TEST_TYPE $FILE || {
+       echo "You must run this script in the top-level $PROJECT directory"
+       exit 1
+}
+
+if test -z "$*"; then
+       echo "I am going to run ./configure with no arguments - if you wish "
+        echo "to pass any to it, please specify them on the $0 command line."
+fi
+
+case $CC in
+*xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;;
+esac
+
+if test -z "$ACLOCAL_FLAGS"; then
+
+       acdir=`$ACLOCAL --print-ac-dir`
+        m4list="glib-2.0.m4 gtk-2.0.m4 gettext.m4"
+
+       for file in $m4list
+       do
+               if [ ! -f "$acdir/$file" ]; then
+                       echo "WARNING: aclocal's directory is $acdir, but..."
+                       echo "         no file $acdir/$file"
+                       echo "         You may see fatal macro warnings below."
+                       echo "         If these files are installed in /some/dir, set the ACLOCAL_FLAGS "
+                       echo "         environment variable to \"-I /some/dir\", or install"
+                       echo "         $acdir/$file."
+                       echo ""
+               fi
+       done
+fi
+
+#echo "Running gettextize...  Ignore non-fatal messages."
+# Hmm, we specify --force here, since otherwise things dont'
+# get added reliably, but we don't want to overwrite intl
+# while making dist.
+#echo "no" | gettextize --copy --force
+
+$ACLOCAL $ACLOCAL_FLAGS
+
+# optionally feature autoheader
+(autoheader --version)  < /dev/null > /dev/null 2>&1 && autoheader
+
+# run libtoolize ...
+libtoolize --force
+
+$AUTOMAKE -a $am_opt
+autoheader
+autoconf
+cd $ORIGDIR
+
+$srcdir/configure --enable-maintainer-mode "$@"
+
+echo 
+echo "Now type 'make' to compile $PROJECT."
diff --git a/common b/common
new file mode 160000 (submodule)
index 0000000..38267ab
--- /dev/null
+++ b/common
@@ -0,0 +1 @@
+Subproject commit 38267abf56a3428093cea71429dca6a24a927547
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..b468632
--- /dev/null
@@ -0,0 +1,105 @@
+-*- mode: m4 -*-
+AC_PREREQ(2.52)
+
+dnl the gnome-python version number
+m4_define(gst_python_major_version, 0)
+m4_define(gst_python_minor_version, 1)
+m4_define(gst_python_micro_version, 0)
+m4_define(gst_python_version, gst_python_major_version.gst_python_minor_version.gst_python_micro_version)
+
+dnl required versions of other packages
+m4_define(pygtk_required_version,             1.99.8)
+
+m4_define(glib_required_version,              2.0.0)
+m4_define(gtk_required_version,               2.0.0)
+m4_define(gstreamer_required_version,         0.3.3)
+
+AC_INIT(gst-python, gst_python_version,
+        [http://gstreamer.net/])
+dnl AC_CONFIG_SRCDIR([gnome/uimodule.c])
+AM_CONFIG_HEADER(config.h)
+
+AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
+
+dnl put the ACLOCAL flags in the makefile
+ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+
+dnl check for python
+dnl AM_PATH_PYTHON(2.2)
+AM_PATH_PYTHON
+AC_MSG_CHECKING(for python >= 2.2)
+prog="
+import sys, string
+minver = (2,2,0,'final',0)
+if sys.version_info < minver:
+  sys.exit(1)
+sys.exit(0)"
+if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
+then
+  AC_MSG_RESULT(okay)
+else
+  AC_MSG_ERROR(too old)
+fi
+AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])
+
+dnl check for pygtk
+PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version)
+AC_SUBST(PYGTK_CFLAGS)
+AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
+if test "x$PYGTK_CODEGEN" = xno; then
+  AC_MSG_ERROR(could not find pygtk-codegen-2.0 script)
+fi
+
+AC_MSG_CHECKING(for pygtk defs)
+PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
+AC_SUBST(PYGTK_DEFSDIR)
+AC_MSG_RESULT($PYGTK_DEFSDIR)
+
+dnl required version substitutions for use in the spec file
+PYGTK_VERSION=pygtk_required_version
+GTK_VERSION=gtk_required_version
+AC_SUBST(PYGTK_VERSION)
+AC_SUBST(GLIB_VERSION)
+AC_SUBST(GTK_VERSION)
+
+dnl check for glib
+AM_PATH_GLIB_2_0(glib_required_version,,[AC_MSG_ERROR(maybe you want the gtk-gnome-1-2 branch?)],$extra_mods)
+
+dnl check to make sure we can find gtk
+AM_PATH_GTK_2_0(gtk_required_version,,[AC_MSG_ERROR(maybe you want the gtk-gnome-1-2 branch?)],$extra_mods)
+
+dnl check to make sure we can find gstreamer
+PKG_CHECK_MODULES(GST, gstreamer >= gstreamer_required_version, HAVE_GST="yes", HAVE_GST="no")
+
+if test "x$HAVE_GST" = "xno"; then
+  AC_MSG_ERROR(need GStreamer $gstreamer_required_version)
+fi
+
+AC_SUBST(GST_CFLAGS)
+AC_SUBST(GST_LIBS)
+
+dnl add debugging options ...
+changequote(,)dnl
+if test "x$GCC" = xyes; then
+  case " $CFLAGS " in
+  *[\  \ ]-Wall[\      \ ]*) ;;
+  *) CFLAGS="$CFLAGS -Wall" ;;
+  esac
+
+  case " $CFLAGS " in
+  *[\  \ ]-std=c9x[\   \ ]*) ;;
+  *) CFLAGS="$CFLAGS -std=c9x" ;;
+  esac
+fi
+changequote([,])dnl
+dnl
+AC_CONFIG_FILES(
+  Makefile
+  gstreamer/Makefile
+  examples/Makefile
+  examples/gstreamer/Makefile
+  gst-python.spec)
+AC_OUTPUT
diff --git a/examples/.gitignore b/examples/.gitignore
new file mode 100644 (file)
index 0000000..3dda729
--- /dev/null
@@ -0,0 +1,2 @@
+Makefile.in
+Makefile
diff --git a/examples/Makefile.am b/examples/Makefile.am
new file mode 100644 (file)
index 0000000..875ebce
--- /dev/null
@@ -0,0 +1 @@
+SUBDIRS = gstreamer
diff --git a/examples/gst/.gitignore b/examples/gst/.gitignore
new file mode 100644 (file)
index 0000000..3dda729
--- /dev/null
@@ -0,0 +1,2 @@
+Makefile.in
+Makefile
diff --git a/examples/gst/Makefile.am b/examples/gst/Makefile.am
new file mode 100644 (file)
index 0000000..1b336ac
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST =
diff --git a/examples/gstreamer/.gitignore b/examples/gstreamer/.gitignore
new file mode 100644 (file)
index 0000000..3dda729
--- /dev/null
@@ -0,0 +1,2 @@
+Makefile.in
+Makefile
diff --git a/examples/gstreamer/Makefile.am b/examples/gstreamer/Makefile.am
new file mode 100644 (file)
index 0000000..1b336ac
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST =
diff --git a/gst-python.spec.in b/gst-python.spec.in
new file mode 100644 (file)
index 0000000..80995e5
--- /dev/null
@@ -0,0 +1,56 @@
+%define pygtk_ver @PYGTK_VERSION@
+%define gstversion %(pkg-config --modversion gstreamer)
+
+Summary: The sources for the Python GStreamer extension module.
+Name: gst-python
+Version: @VERSION@
+Release: 2
+Source: http://gstreamer.net/ blah_blah_blah /gst-python-%{version}.tar.gz
+Copyright: LGPL
+Group: Development/Languages
+BuildRoot: /var/tmp/gst--python-root
+Packager: David I. Lehn <dlehn@vt.edu>
+BuildRequires: pygtk2-devel = %{pygtk_ver}
+BuildRequires: python2-devel
+BuildRequires: gtk2-devel >= @GTK_VERSION@
+BuildRequires: libgnomecanvas-devel >= @LIBGNOMECANVAS_VERSION@
+BuildRequires: libgnome-devel >= @LIBGNOME_VERSION@
+
+%description
+The gst-python package contains the source packages for the
+GStreamer Python bindings.
+
+%package gst-python
+Version: %{version}
+Summary: Python bindings for GStreamer.
+Group: Development/Languages
+Requires: gnome-python2 = %{version}
+Requires: gtk2 >= @GTK_VERSION@
+Requires: gstreamer >= %{gstversion}
+
+%description gst-python
+This module contains a wrapper that allows GStreamer applications
+to be written in Python.
+
+%prep
+%setup -q -n gst-python-%{version}
+export PYTHON=/usr/bin/python2.2
+CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix}
+
+%build
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT install
+
+%files
+%defattr(644,root,root,755)
+%doc AUTHORS ChangeLog README NEWS examples/gstreamer
+%dir %{_prefix}/lib/python?.?/site-packages/gstreamer/
+%{_prefix}/lib/python?.?/site-packages/gstreamer/__init__.*
+%{_prefix}/lib/python?.?/site-packages/gstreamer/_gstreamermodule.so
+
+%changelog
+* Sat Mar 23 2002 David I. Lehn <dlehn@vt.edu>
+- new gst-python package based on pygtk and gconf binding packages
diff --git a/gst/.gitignore b/gst/.gitignore
new file mode 100644 (file)
index 0000000..c7d67ae
--- /dev/null
@@ -0,0 +1,9 @@
+Makefile
+Makefile.in
+*.o
+*.lo
+*.la
+*.so
+.libs
+.deps
+gstreamer.c
diff --git a/gst/Makefile.am b/gst/Makefile.am
new file mode 100644 (file)
index 0000000..0f6f0c2
--- /dev/null
@@ -0,0 +1,52 @@
+INCLUDES = $(PYTHON_INCLUDES) $(PYGTK_CFLAGS)
+PYGTK_DEFSDIR = @PYGTK_DEFSDIR@
+
+pygstreamerdir = $(pythondir)/gstreamer
+pygstreamer_PYTHON = __init__.py
+
+pygstreamerexecdir = $(pyexecdir)/gstreamer
+
+# gstreamer binding
+
+pyexec_LTLIBRARIES = _gstreamermodule.la
+_gstreamermodule_la_SOURCES = gstreamermodule.c gstreamer-fixes.c gstreamer-fixes.h
+_gstreamermodule_la_CFLAGS = $(GST_CFLAGS)
+_gstreamermodule_la_LIBADD = $(GST_LIBS)
+_gstreamermodule_la_LDFLAGS = -module -avoid-version -export-symbols-regex initgstreamer
+nodist__gstreamermodule_la_SOURCES = gstreamer.c
+CLEANFILES = gstreamer.c
+EXTRA_DIST = gstreamer.defs gstreamer.override  
+gstreamer.c: gstreamer.defs gstreamer.override
+
+.defs.c:
+       (cd $(srcdir) \
+        && $(PYGTK_CODEGEN) \
+           --load-types $(top_srcdir)/gstreamer/gstreamer-arg-types.py \
+           --override $*.override \
+           --prefix py$* $*.defs) > gen-$*.c \
+       && cp gen-$*.c $*.c \
+       && rm -f gen-$*.c
+
+#          --register $(PYGTK_DEFSDIR)/pango-types.defs \
+#          --register $(PYGTK_DEFSDIR)/gdk-types.defs \
+#          --register $(PYGTK_DEFSDIR)/gtk-types.defs \
+#          --register $(top_srcdir)/bonobo/bonobo-types.defs \
+#          --register $(top_srcdir)/bonobo/bonoboui-types.defs \
+
+# this should go in core
+
+enums:
+       glib-mkenums \
+       --fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
+       --fprod "/* enumerations from \"@filename@\" */\n" \
+       --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
+       --ftail "G_END_DECLS\n\n#endif /* __GST_ENUM_TYPES_H__ */" \
+       /usr/include/gst/*.h > tmp-enum-types.h
+
+       glib-mkenums \
+       --fhead "#include <gst/gst.h>" \
+       --fprod "\n/* enumerations from \"@filename@\" */" \
+       --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
+       --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
+       --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
+       /usr/include/gst/*.h > tmp-enum-types.c
diff --git a/gst/__init__.py b/gst/__init__.py
new file mode 100644 (file)
index 0000000..a0e3ab1
--- /dev/null
@@ -0,0 +1 @@
+from _gstreamer import *
diff --git a/gst/gst.defs b/gst/gst.defs
new file mode 100644 (file)
index 0000000..8e2ff6c
--- /dev/null
@@ -0,0 +1,3459 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object Object
+  (in-module "Gst")
+  (parent "GObject")
+  (c-name "GstObject")
+  (gtype-id "GST_TYPE_OBJECT")
+)
+
+(define-object Element
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstElement")
+  (gtype-id "GST_TYPE_ELEMENT")
+)
+
+(define-object Bin
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstBin")
+  (gtype-id "GST_TYPE_BIN")
+)
+
+(define-object Clock
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstClock")
+  (gtype-id "GST_TYPE_CLOCK")
+)
+
+(define-object Autoplug
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstAutoplug")
+  (gtype-id "GST_TYPE_AUTOPLUG")
+)
+
+(define-object Pad
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPad")
+  (gtype-id "GST_TYPE_PAD")
+)
+
+(define-object GhostPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstGhostPad")
+  (gtype-id "GST_TYPE_GHOST_PAD")
+)
+
+(define-object PadTemplate
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPadTemplate")
+  (gtype-id "GST_TYPE_PAD_TEMPLATE")
+)
+
+(define-object Pipeline
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstPipeline")
+  (gtype-id "GST_TYPE_PIPELINE")
+)
+
+(define-object PluginFeature
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPluginFeature")
+  (gtype-id "GST_TYPE_PLUGIN_FEATURE")
+)
+
+(define-object ElementFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstElementFactory")
+  (gtype-id "GST_TYPE_ELEMENT_FACTORY")
+)
+
+(define-object AutoplugFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstAutoplugFactory")
+  (gtype-id "GST_TYPE_AUTOPLUG_FACTORY")
+)
+
+(define-object Queue
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstQueue")
+  (gtype-id "GST_TYPE_QUEUE")
+)
+
+(define-object RealPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstRealPad")
+  (gtype-id "GST_TYPE_REAL_PAD")
+)
+
+(define-object Scheduler
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstScheduler")
+  (gtype-id "GST_TYPE_SCHEDULER")
+)
+
+(define-object SchedulerFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstSchedulerFactory")
+  (gtype-id "GST_TYPE_SCHEDULER_FACTORY")
+)
+
+(define-object SystemClock
+  (in-module "Gst")
+  (parent "GstClock")
+  (c-name "GstSystemClock")
+  (gtype-id "GST_TYPE_SYSTEM_CLOCK")
+)
+
+(define-object Thread
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstThread")
+  (gtype-id "GST_TYPE_THREAD")
+)
+
+(define-object TimeCache
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstTimeCache")
+  (gtype-id "GST_TYPE_TIME_CACHE")
+)
+
+(define-object TypeFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstTypeFactory")
+  (gtype-id "GST_TYPE_TYPE_FACTORY")
+)
+
+(define-object TypeFind
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstTypeFind")
+  (gtype-id "GST_TYPE_TYPE_FIND")
+)
+
+(define-object XML
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstXML")
+  (gtype-id "GST_TYPE_XML")
+)
+
+;; Enumerations and flags ...
+
+(define-enum AutoplugFlags
+  (in-module "Gst")
+  (c-name "GstAutoplugFlags")
+  (gtype-id "GST_TYPE_AUTOPLUG_FLAGS")
+  (values
+    '("to-caps" "GST_AUTOPLUG_TO_CAPS")
+    '("to-renderer" "GST_AUTOPLUG_TO_RENDERER")
+    '("flag-last" "GST_AUTOPLUG_FLAG_LAST")
+  )
+)
+
+(define-enum BinFlags
+  (in-module "Gst")
+  (c-name "GstBinFlags")
+  (gtype-id "GST_TYPE_BIN_FLAGS")
+  (values
+    '("flag-manager" "GST_BIN_FLAG_MANAGER")
+    '("self-schedulable" "GST_BIN_SELF_SCHEDULABLE")
+    '("flag-prefer-cothreads" "GST_BIN_FLAG_PREFER_COTHREADS")
+    '("flag-fixed-clock" "GST_BIN_FLAG_FIXED_CLOCK")
+    '("flag-last" "GST_BIN_FLAG_LAST")
+  )
+)
+
+(define-enum BufferFlags
+  (in-module "Gst")
+  (c-name "GstBufferFlags")
+  (gtype-id "GST_TYPE_BUFFER_FLAGS")
+  (values
+    '("readonly" "GST_BUFFER_READONLY")
+    '("original" "GST_BUFFER_ORIGINAL")
+    '("dontfree" "GST_BUFFER_DONTFREE")
+  )
+)
+
+(define-enum ClockReturn
+  (in-module "Gst")
+  (c-name "GstClockReturn")
+  (gtype-id "GST_TYPE_CLOCK_RETURN")
+  (values
+    '("stopped" "GST_CLOCK_STOPPED")
+    '("timeout" "GST_CLOCK_TIMEOUT")
+    '("early" "GST_CLOCK_EARLY")
+    '("error" "GST_CLOCK_ERROR")
+  )
+)
+
+(define-flags CPUFlags
+  (in-module "Gst")
+  (c-name "GstCPUFlags")
+  (gtype-id "GST_TYPE_CPU_FLAGS")
+  (values
+    '("mmx" "GST_CPU_FLAG_MMX")
+    '("sse" "GST_CPU_FLAG_SSE")
+    '("mmxext" "GST_CPU_FLAG_MMXEXT")
+    '("3dnow" "GST_CPU_FLAG_3DNOW")
+  )
+)
+
+(define-enum ElementFlags
+  (in-module "Gst")
+  (c-name "GstElementFlags")
+  (gtype-id "GST_TYPE_ELEMENT_FLAGS")
+  (values
+    '("complex" "GST_ELEMENT_COMPLEX")
+    '("decoupled" "GST_ELEMENT_DECOUPLED")
+    '("thread-suggested" "GST_ELEMENT_THREAD_SUGGESTED")
+    '("no-seek" "GST_ELEMENT_NO_SEEK")
+    '("infinite-loop" "GST_ELEMENT_INFINITE_LOOP")
+    '("scheduler-private1" "GST_ELEMENT_SCHEDULER_PRIVATE1")
+    '("scheduler-private2" "GST_ELEMENT_SCHEDULER_PRIVATE2")
+    '("new-loopfunc" "GST_ELEMENT_NEW_LOOPFUNC")
+    '("event-aware" "GST_ELEMENT_EVENT_AWARE")
+    '("flag-last" "GST_ELEMENT_FLAG_LAST")
+  )
+)
+
+(define-enum EventType
+  (in-module "Gst")
+  (c-name "GstEventType")
+  (gtype-id "GST_TYPE_EVENT_TYPE")
+  (values
+    '("unknown" "GST_EVENT_UNKNOWN")
+    '("eos" "GST_EVENT_EOS")
+    '("flush" "GST_EVENT_FLUSH")
+    '("empty" "GST_EVENT_EMPTY")
+    '("seek" "GST_EVENT_SEEK")
+    '("discontinuous" "GST_EVENT_DISCONTINUOUS")
+    '("new-media" "GST_EVENT_NEW_MEDIA")
+    '("info" "GST_EVENT_INFO")
+    '("error" "GST_EVENT_ERROR")
+  )
+)
+
+(define-enum SeekType
+  (in-module "Gst")
+  (c-name "GstSeekType")
+  (gtype-id "GST_TYPE_SEEK_TYPE")
+  (values
+    '("any" "GST_SEEK_ANY")
+    '("timeoffset-set" "GST_SEEK_TIMEOFFSET_SET")
+    '("byteoffset-set" "GST_SEEK_BYTEOFFSET_SET")
+    '("byteoffset-cur" "GST_SEEK_BYTEOFFSET_CUR")
+    '("byteoffset-end" "GST_SEEK_BYTEOFFSET_END")
+  )
+)
+
+(define-enum ObjectFlags
+  (in-module "Gst")
+  (c-name "GstObjectFlags")
+  (gtype-id "GST_TYPE_OBJECT_FLAGS")
+  (values
+    '("destroyed" "GST_DESTROYED")
+    '("floating" "GST_FLOATING")
+    '("object-flag-last" "GST_OBJECT_FLAG_LAST")
+  )
+)
+
+(define-enum RegionType
+  (in-module "Gst")
+  (c-name "GstRegionType")
+  (gtype-id "GST_TYPE_REGION_TYPE")
+  (values
+    '("void" "GST_REGION_VOID")
+    '("offset-len" "GST_REGION_OFFSET_LEN")
+    '("time-len" "GST_REGION_TIME_LEN")
+  )
+)
+
+(define-enum PadConnectReturn
+  (in-module "Gst")
+  (c-name "GstPadConnectReturn")
+  (gtype-id "GST_TYPE_PAD_CONNECT_RETURN")
+  (values
+    '("refused" "GST_PAD_CONNECT_REFUSED")
+    '("ok" "GST_PAD_CONNECT_OK")
+    '("done" "GST_PAD_CONNECT_DONE")
+    '("delayed" "GST_PAD_CONNECT_DELAYED")
+  )
+)
+
+(define-enum PadDirection
+  (in-module "Gst")
+  (c-name "GstPadDirection")
+  (gtype-id "GST_TYPE_PAD_DIRECTION")
+  (values
+    '("unknown" "GST_PAD_UNKNOWN")
+    '("src" "GST_PAD_SRC")
+    '("sink" "GST_PAD_SINK")
+  )
+)
+
+(define-enum PadFlags
+  (in-module "Gst")
+  (c-name "GstPadFlags")
+  (gtype-id "GST_TYPE_PAD_FLAGS")
+  (values
+    '("disabled" "GST_PAD_DISABLED")
+    '("eos" "GST_PAD_EOS")
+    '("flag-last" "GST_PAD_FLAG_LAST")
+  )
+)
+
+(define-enum PadPresence
+  (in-module "Gst")
+  (c-name "GstPadPresence")
+  (gtype-id "GST_TYPE_PAD_PRESENCE")
+  (values
+    '("always" "GST_PAD_ALWAYS")
+    '("sometimes" "GST_PAD_SOMETIMES")
+    '("request" "GST_PAD_REQUEST")
+  )
+)
+
+(define-enum ParseErrors
+  (in-module "Gst")
+  (c-name "GstParseErrors")
+  (gtype-id "GST_TYPE_PARSE_ERRORS")
+  (values
+    '("syntax" "GST_PARSE_ERROR_SYNTAX")
+    '("creating-element" "GST_PARSE_ERROR_CREATING_ELEMENT")
+    '("nosuch-element" "GST_PARSE_ERROR_NOSUCH_ELEMENT")
+    '("internal" "GST_PARSE_ERROR_INTERNAL")
+    '("connect" "GST_PARSE_ERROR_CONNECT")
+  )
+)
+
+(define-enum PropsId
+  (in-module "Gst")
+  (c-name "GstPropsId")
+  (gtype-id "GST_TYPE_PROPS_ID")
+  (values
+    '("end-id" "GST_PROPS_END_ID")
+    '("int-id" "GST_PROPS_INT_ID")
+    '("float-id" "GST_PROPS_FLOAT_ID")
+    '("fourcc-id" "GST_PROPS_FOURCC_ID")
+    '("bool-id" "GST_PROPS_BOOL_ID")
+    '("string-id" "GST_PROPS_STRING_ID")
+    '("var-id" "GST_PROPS_VAR_ID")
+    '("list-id" "GST_PROPS_LIST_ID")
+    '("float-range-id" "GST_PROPS_FLOAT_RANGE_ID")
+    '("int-range-id" "GST_PROPS_INT_RANGE_ID")
+    '("last-id" "GST_PROPS_LAST_ID")
+  )
+)
+
+(define-enum SchedulerState
+  (in-module "Gst")
+  (c-name "GstSchedulerState")
+  (gtype-id "GST_TYPE_SCHEDULER_STATE")
+  (values
+    '("none" "GST_SCHEDULER_STATE_NONE")
+    '("running" "GST_SCHEDULER_STATE_RUNNING")
+    '("stopped" "GST_SCHEDULER_STATE_STOPPED")
+    '("error" "GST_SCHEDULER_STATE_ERROR")
+  )
+)
+
+(define-enum ThreadState
+  (in-module "Gst")
+  (c-name "GstThreadState")
+  (gtype-id "GST_TYPE_THREAD_STATE")
+  (values
+    '("state-started" "GST_THREAD_STATE_STARTED")
+    '("state-spinning" "GST_THREAD_STATE_SPINNING")
+    '("state-reaping" "GST_THREAD_STATE_REAPING")
+    '("flag-last" "GST_THREAD_FLAG_LAST")
+  )
+)
+
+(define-enum TimeCacheCertainty
+  (in-module "Gst")
+  (c-name "GstTimeCacheCertainty")
+  (gtype-id "GST_TYPE_TIME_CACHE_CERTAINTY")
+  (values
+    '("unknown" "GST_TIMECACHE_UNKNOWN")
+    '("certain" "GST_TIMECACHE_CERTAIN")
+    '("fuzzy-location" "GST_TIMECACHE_FUZZY_LOCATION")
+    '("fuzzy-timestamp" "GST_TIMECACHE_FUZZY_TIMESTAMP")
+    '("fuzzy" "GST_TIMECACHE_FUZZY")
+  )
+)
+
+(define-flags ElementState
+  (in-module "Gst")
+  (c-name "GstElementState")
+  (gtype-id "GST_TYPE_ELEMENT_STATE")
+  (values
+    '("void-pending" "GST_STATE_VOID_PENDING")
+    '("null" "GST_STATE_NULL")
+    '("ready" "GST_STATE_READY")
+    '("paused" "GST_STATE_PAUSED")
+    '("playing" "GST_STATE_PLAYING")
+  )
+)
+
+(define-enum ElementStateReturn
+  (in-module "Gst")
+  (c-name "GstElementStateReturn")
+  (gtype-id "GST_TYPE_ELEMENT_STATE_RETURN")
+  (values
+    '("failure" "GST_STATE_FAILURE")
+    '("success" "GST_STATE_SUCCESS")
+    '("async" "GST_STATE_ASYNC")
+  )
+)
+
+
+;; From /usr/include/gst/gst.h
+
+(define-function gst_init_with_popt_table
+  (c-name "gst_init_with_popt_table")
+  (return-type "none")
+  (parameters
+    '("int*" "argc")
+    '("char**[]" "argv")
+    '("const-struct-poptOption*" "popt_options")
+  )
+)
+
+(define-function gst_main
+  (c-name "gst_main")
+  (return-type "none")
+)
+
+(define-function gst_main_quit
+  (c-name "gst_main_quit")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstautoplug.h
+
+(define-function gst_autoplug_get_type
+  (c-name "gst_autoplug_get_type")
+  (return-type "GType")
+)
+
+(define-method signal_new_object
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_signal_new_object")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+  )
+)
+
+(define-method to_caps
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_caps")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstCaps*" "sinkcaps")
+  )
+  (varargs #t)
+)
+
+(define-method to_renderers
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_renderers")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstElement*" "target")
+  )
+  (varargs #t)
+)
+
+(define-function gst_autoplugfactory_get_type
+  (c-name "gst_autoplugfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_autoplugfactory_new
+  (c-name "gst_autoplugfactory_new")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_autoplugfactory_find
+  (c-name "gst_autoplugfactory_find")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_autoplugfactory_get_list
+  (c-name "gst_autoplugfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_create")
+  (return-type "GstAutoplug*")
+)
+
+(define-function gst_autoplugfactory_make
+  (c-name "gst_autoplugfactory_make")
+  (return-type "GstAutoplug*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbin.h
+
+(define-function gst_bin_get_type
+  (c-name "gst_bin_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_bin_new
+  (c-name "gst_bin_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method add
+  (of-object "GstBin")
+  (c-name "gst_bin_add")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method add_many
+  (of-object "GstBin")
+  (c-name "gst_bin_add_many")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element_1")
+  )
+  (varargs #t)
+)
+
+(define-method remove
+  (of-object "GstBin")
+  (c-name "gst_bin_remove")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method get_by_name
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_by_name_recurse_up
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name_recurse_up")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_list
+  (of-object "GstBin")
+  (c-name "gst_bin_get_list")
+  (return-type "GList*")
+)
+
+(define-method set_state_type
+  (of-object "GstBin")
+  (c-name "gst_bin_set_state_type")
+  (return-type "gboolean")
+  (parameters
+    '("GstElementState" "state")
+    '("GType" "type")
+  )
+)
+
+(define-method iterate
+  (of-object "GstBin")
+  (c-name "gst_bin_iterate")
+  (return-type "gboolean")
+)
+
+(define-method use_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_use_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method get_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method auto_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_auto_clock")
+  (return-type "none")
+)
+
+(define-method child_state_change
+  (of-object "GstBin")
+  (c-name "gst_bin_child_state_change")
+  (return-type "none")
+  (parameters
+    '("GstElementState" "oldstate")
+    '("GstElementState" "newstate")
+    '("GstElement*" "child")
+  )
+)
+
+(define-method child_error
+  (of-object "GstBin")
+  (c-name "gst_bin_child_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "child")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbuffer.h
+
+(define-function _gst_buffer_initialize
+  (c-name "_gst_buffer_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_new
+  (c-name "gst_buffer_new")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_buffer_new_from_pool
+  (c-name "gst_buffer_new_from_pool")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBufferPool*" "pool")
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method create_sub
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_create_sub")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method ref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("gint" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_unref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_destroy")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_copy")
+  (return-type "GstBuffer*")
+)
+
+(define-method merge
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_merge")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-method span
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_span")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("GstBuffer*" "buf2")
+    '("guint32" "len")
+  )
+)
+
+(define-method append
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_append")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "append")
+  )
+)
+
+(define-method is_span_fast
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_is_span_fast")
+  (return-type "gboolean")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-function gst_buffer_print_stats
+  (c-name "gst_buffer_print_stats")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstbufferpool.h
+
+(define-function _gst_buffer_pool_initialize
+  (c-name "_gst_buffer_pool_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_new
+  (c-name "gst_buffer_pool_new")
+  (return-type "GstBufferPool*")
+)
+
+(define-method ref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("int" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_unref")
+  (return-type "none")
+)
+
+(define-method set_buffer_new_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_new_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolBufferNewFunction" "create")
+  )
+)
+
+(define-method set_buffer_free_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_free_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferFreeFunc" "destroy")
+  )
+)
+
+(define-method set_buffer_copy_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_copy_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferCopyFunc" "copy")
+  )
+)
+
+(define-method set_destroy_hook
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_destroy_hook")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolDestroyHook" "destroy")
+  )
+)
+
+(define-method set_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_user_data")
+  (return-type "none")
+  (parameters
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method get_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_get_user_data")
+  (return-type "gpointer")
+)
+
+(define-method destroy
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_destroy")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_get_default
+  (c-name "gst_buffer_pool_get_default")
+  (return-type "GstBufferPool*")
+  (parameters
+    '("guint" "buffer_size")
+    '("guint" "pool_size")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstcaps.h
+
+(define-function gst_caps_new
+  (c-name "gst_caps_new")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "mime")
+    '("GstProps*" "props")
+  )
+)
+
+(define-function gst_caps_new_id
+  (c-name "gst_caps_new_id")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-guint16" "id")
+    '("GstProps*" "props")
+  )
+)
+
+(define-method unref
+  (of-object "GstCaps")
+  (c-name "gst_caps_unref")
+  (return-type "GstCaps*")
+)
+
+(define-method ref
+  (of-object "GstCaps")
+  (c-name "gst_caps_ref")
+  (return-type "GstCaps*")
+)
+
+(define-method destroy
+  (of-object "GstCaps")
+  (c-name "gst_caps_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstCaps")
+  (c-name "gst_caps_debug")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "label")
+  )
+)
+
+(define-method copy
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_1
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_1")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_on_write")
+  (return-type "GstCaps*")
+)
+
+(define-method get_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_mime")
+  (return-type "const-gchar*")
+)
+
+(define-method set_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_mime")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-method get_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_type_id")
+  (return-type "guint16")
+)
+
+(define-method set_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_type_id")
+  (return-type "none")
+  (parameters
+    '("guint16" "type_id")
+  )
+)
+
+(define-method set_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_props")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstProps*" "props")
+  )
+)
+
+(define-method get_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_props")
+  (return-type "GstProps*")
+)
+
+(define-method get_by_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method chain
+  (of-object "GstCaps")
+  (c-name "gst_caps_chain")
+  (return-type "GstCaps*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-method append
+  (of-object "GstCaps")
+  (c-name "gst_caps_append")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method prepend
+  (of-object "GstCaps")
+  (c-name "gst_caps_prepend")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstCaps")
+  (c-name "gst_caps_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "tocaps")
+  )
+)
+
+(define-method intersect
+  (of-object "GstCaps")
+  (c-name "gst_caps_intersect")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "caps2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstCaps")
+  (c-name "gst_caps_normalize")
+  (return-type "GstCaps*")
+)
+
+(define-method save_thyself
+  (of-object "GstCaps")
+  (c-name "gst_caps_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_caps_load_thyself
+  (c-name "gst_caps_load_thyself")
+  (return-type "GstCaps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstclock.h
+
+(define-function gst_clock_get_type
+  (c-name "gst_clock_get_type")
+  (return-type "GType")
+)
+
+(define-method set_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_set_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method get_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_get_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method activate
+  (of-object "GstClock")
+  (c-name "gst_clock_activate")
+  (return-type "none")
+  (parameters
+    '("gboolean" "active")
+  )
+)
+
+(define-method is_active
+  (of-object "GstClock")
+  (c-name "gst_clock_is_active")
+  (return-type "gboolean")
+)
+
+(define-method reset
+  (of-object "GstClock")
+  (c-name "gst_clock_reset")
+  (return-type "none")
+)
+
+(define-method set_time
+  (of-object "GstClock")
+  (c-name "gst_clock_set_time")
+  (return-type "none")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method get_time
+  (of-object "GstClock")
+  (c-name "gst_clock_get_time")
+  (return-type "GstClockTime")
+)
+
+(define-method wait
+  (of-object "GstClock")
+  (c-name "gst_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_wait_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "time")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method cancel_wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_cancel_wait_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_notify_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "interval")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method remove_notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_remove_notify_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method set_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_set_resolution")
+  (return-type "none")
+  (parameters
+    '("guint64" "resolution")
+  )
+)
+
+(define-method get_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_get_resolution")
+  (return-type "guint64")
+)
+
+
+
+;; From /usr/include/gst/gstconfig.h
+
+
+
+;; From /usr/include/gst/gstcpu.h
+
+(define-function gst_cpu_get_flags
+  (c-name "gst_cpu_get_flags")
+  (return-type "GstCPUFlags")
+)
+
+
+
+;; From /usr/include/gst/gstdata.h
+
+
+
+;; From /usr/include/gst/gstelement.h
+
+(define-method add_padtemplate
+  (of-object "GstElementClass")
+  (c-name "gst_element_class_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-function gst_element_get_type
+  (c-name "gst_element_get_type")
+  (return-type "GType")
+)
+
+(define-method set_loop_function
+  (of-object "GstElement")
+  (c-name "gst_element_set_loop_function")
+  (return-type "none")
+  (parameters
+    '("GstElementLoopFunction" "loop")
+  )
+)
+
+(define-method set_name
+  (of-object "GstElement")
+  (c-name "gst_element_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstElement")
+  (c-name "gst_element_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstElement")
+  (c-name "gst_element_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method get_clock
+  (of-object "GstElement")
+  (c-name "gst_element_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method set_clock
+  (of-object "GstElement")
+  (c-name "gst_element_set_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method clock_wait
+  (of-object "GstElement")
+  (c-name "gst_element_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClock*" "clock")
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method yield
+  (of-object "GstElement")
+  (c-name "gst_element_yield")
+  (return-type "none")
+)
+
+(define-method interrupt
+  (of-object "GstElement")
+  (c-name "gst_element_interrupt")
+  (return-type "gboolean")
+)
+
+(define-method set_sched
+  (of-object "GstElement")
+  (c-name "gst_element_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstElement")
+  (c-name "gst_element_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method add_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method remove_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method get_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_pad_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_by_name")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method add_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_ghost_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("gchar*" "name")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method request_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_request_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method request_pad_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_request_pad_by_name")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_compatible_pad_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad_filtered")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method connect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstElement")
+  (c-name "gst_element_connect")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method disconnect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect_elements")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_many
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_many")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element_2")
+  )
+  (varargs #t)
+)
+
+(define-method set_eos
+  (of-object "GstElement")
+  (c-name "gst_element_set_eos")
+  (return-type "none")
+)
+
+(define-method send_event
+  (of-object "GstElement")
+  (c-name "gst_element_send_event")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method get_state
+  (of-object "GstElement")
+  (c-name "gst_element_get_state")
+  (return-type "GstElementState")
+)
+
+(define-method set_state
+  (of-object "GstElement")
+  (c-name "gst_element_set_state")
+  (return-type "gint")
+  (parameters
+    '("GstElementState" "state")
+  )
+)
+
+(define-method wait_state_change
+  (of-object "GstElement")
+  (c-name "gst_element_wait_state_change")
+  (return-type "none")
+)
+
+(define-method name
+  (of-object "GstElementState")
+  (c-name "gst_element_statename")
+  (return-type "const-gchar*")
+)
+
+(define-method info
+  (of-object "GstElement")
+  (c-name "gst_element_info")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "info")
+  )
+  (varargs #t)
+)
+
+(define-method error
+  (of-object "GstElement")
+  (c-name "gst_element_error")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "error")
+  )
+  (varargs #t)
+)
+
+(define-method get_factory
+  (of-object "GstElement")
+  (c-name "gst_element_get_factory")
+  (return-type "GstElementFactory*")
+)
+
+(define-function gst_element_install_std_props
+  (c-name "gst_element_install_std_props")
+  (return-type "none")
+  (parameters
+    '("GstElementClass*" "klass")
+    '("const-char*" "first_name")
+  )
+  (varargs #t)
+)
+
+(define-method get_managing_bin
+  (of-object "GstElement")
+  (c-name "gst_element_get_managing_bin")
+  (return-type "GstBin*")
+)
+
+(define-function gst_elementfactory_get_type
+  (c-name "gst_elementfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_elementfactory_new
+  (c-name "gst_elementfactory_new")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GType" "type")
+    '("GstElementDetails*" "details")
+  )
+)
+
+(define-function gst_elementfactory_find
+  (c-name "gst_elementfactory_find")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_get_list
+  (c-name "gst_elementfactory_get_list")
+  (return-type "const-GList*")
+)
+
+(define-method add_padtemplate
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method can_src_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_src_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method can_sink_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_sink_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method create
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_create")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_make
+  (c-name "gst_elementfactory_make")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "factoryname")
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstevent.h
+
+(define-function _gst_event_initialize
+  (c-name "_gst_event_initialize")
+  (return-type "none")
+)
+
+(define-function gst_event_new
+  (c-name "gst_event_new")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstEventType" "type")
+  )
+)
+
+(define-method copy
+  (of-object "GstEvent")
+  (c-name "gst_event_copy")
+  (return-type "GstEvent*")
+)
+
+(define-method free
+  (of-object "GstEvent")
+  (c-name "gst_event_free")
+  (return-type "none")
+)
+
+(define-function gst_event_new_seek
+  (c-name "gst_event_new_seek")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstSeekType" "type")
+    '("gint64" "offset")
+    '("gboolean" "flush")
+  )
+)
+
+(define-function gst_event_new_info
+  (c-name "gst_event_new_info")
+  (return-type "GstEvent*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+
+
+;; From /usr/include/gst/gstextratypes.h
+
+
+
+;; From /usr/include/gst/gstinfo.h
+
+(define-function gst_get_category_name
+  (c-name "gst_get_category_name")
+  (return-type "const-gchar*")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_debug_handler
+  (c-name "gst_default_debug_handler")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+    '("gboolean" "incore")
+    '("const-gchar*" "file")
+    '("const-gchar*" "function")
+    '("gint" "line")
+    '("const-gchar*" "debug_string")
+    '("void*" "element")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_info_get_categories
+  (c-name "gst_info_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_info_enable_category
+  (c-name "gst_info_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_info_disable_category
+  (c-name "gst_info_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_set_categories
+  (c-name "gst_debug_set_categories")
+  (return-type "none")
+  (parameters
+    '("guint32" "categories")
+  )
+)
+
+(define-function gst_debug_get_categories
+  (c-name "gst_debug_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_debug_enable_category
+  (c-name "gst_debug_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_disable_category
+  (c-name "gst_debug_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_error_handler
+  (c-name "gst_default_error_handler")
+  (return-type "none")
+  (parameters
+    '("gchar*" "file")
+    '("gchar*" "function")
+    '("gint" "line")
+    '("gchar*" "debug_string")
+    '("void*" "element")
+    '("void*" "object")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_debug_print_stack_trace
+  (c-name "gst_debug_print_stack_trace")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstlog.h
+
+
+
+;; From /usr/include/gst/gstmarshal.h
+
+
+
+;; From /usr/include/gst/gstobject.h
+
+(define-function gst_object_get_type
+  (c-name "gst_object_get_type")
+  (return-type "GType")
+)
+
+(define-method set_name
+  (of-object "GstObject")
+  (c-name "gst_object_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstObject")
+  (c-name "gst_object_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstObject")
+  (c-name "gst_object_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstObject")
+  (c-name "gst_object_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method unparent
+  (of-object "GstObject")
+  (c-name "gst_object_unparent")
+  (return-type "none")
+)
+
+(define-function gst_object_check_uniqueness
+  (c-name "gst_object_check_uniqueness")
+  (return-type "gboolean")
+  (parameters
+    '("GList*" "list")
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method restore_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_restore_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ref
+  (of-object "GstObject")
+  (c-name "gst_object_ref")
+  (return-type "GstObject*")
+)
+
+(define-method unref
+  (of-object "GstObject")
+  (c-name "gst_object_unref")
+  (return-type "none")
+)
+
+(define-method sink
+  (of-object "GstObject")
+  (c-name "gst_object_sink")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstObject")
+  (c-name "gst_object_destroy")
+  (return-type "none")
+)
+
+(define-method get_path_string
+  (of-object "GstObject")
+  (c-name "gst_object_get_path_string")
+  (return-type "gchar*")
+)
+
+(define-function gst_class_signal_connect
+  (c-name "gst_class_signal_connect")
+  (return-type "guint")
+  (parameters
+    '("GstObjectClass*" "klass")
+    '("const-gchar*" "name")
+    '("gpointer" "func")
+    '("gpointer" "func_data")
+  )
+)
+
+(define-function gst_class_signal_emit_by_name
+  (c-name "gst_class_signal_emit_by_name")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+    '("const-gchar*" "name")
+    '("xmlNodePtr" "self")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpad.h
+
+(define-function gst_real_pad_get_type
+  (c-name "gst_real_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_ghost_pad_get_type
+  (c-name "gst_ghost_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pad_new
+  (c-name "gst_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPadDirection" "direction")
+  )
+)
+
+(define-function gst_pad_new_from_template
+  (c-name "gst_pad_new_from_template")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+    '("gchar*" "name")
+  )
+)
+
+(define-method get_direction
+  (of-object "GstPad")
+  (c-name "gst_pad_get_direction")
+  (return-type "GstPadDirection")
+)
+
+(define-method set_chain_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_chain_function")
+  (return-type "none")
+  (parameters
+    '("GstPadChainFunction" "chain")
+  )
+)
+
+(define-method set_get_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_get_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetFunction" "get")
+  )
+)
+
+(define-method set_event_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_event_function")
+  (return-type "none")
+  (parameters
+    '("GstPadEventFunction" "event")
+  )
+)
+
+(define-method set_getregion_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getregion_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetRegionFunction" "getregion")
+  )
+)
+
+(define-method set_connect_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_connect_function")
+  (return-type "none")
+  (parameters
+    '("GstPadConnectFunction" "connect")
+  )
+)
+
+(define-method set_getcaps_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getcaps_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetCapsFunction" "getcaps")
+  )
+)
+
+(define-method set_bufferpool_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_bufferpool_function")
+  (return-type "none")
+  (parameters
+    '("GstPadBufferPoolFunction" "bufpool")
+  )
+)
+
+(define-method get_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_padtemplate_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method try_set_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_try_set_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstPad")
+  (c-name "gst_pad_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method set_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_set_element_private")
+  (return-type "none")
+  (parameters
+    '("gpointer" "priv")
+  )
+)
+
+(define-method get_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_get_element_private")
+  (return-type "gpointer")
+)
+
+(define-method set_name
+  (of-object "GstPad")
+  (c-name "gst_pad_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPad")
+  (c-name "gst_pad_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_parent")
+  (return-type "GstElement*")
+)
+
+(define-method get_real_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_real_parent")
+  (return-type "GstElement*")
+)
+
+(define-method set_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method unset_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_unset_sched")
+  (return-type "none")
+)
+
+(define-method add_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_add_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method get_ghost_pad_list
+  (of-object "GstPad")
+  (c-name "gst_pad_get_ghost_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate")
+  (return-type "GstPadTemplate*")
+)
+
+(define-method get_peer
+  (of-object "GstPad")
+  (c-name "gst_pad_get_peer")
+  (return-type "GstPad*")
+)
+
+(define-method get_bufferpool
+  (of-object "GstPad")
+  (c-name "gst_pad_get_bufferpool")
+  (return-type "GstBufferPool*")
+)
+
+(define-method can_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method can_connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstPad")
+  (c-name "gst_pad_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstPad")
+  (c-name "gst_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method proxy_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_proxy_connect")
+  (return-type "GstPadConnectReturn")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method perform_negotiate
+  (of-object "GstPad")
+  (c-name "gst_pad_perform_negotiate")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method try_reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_try_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_allowed_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method recalc_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_recalc_allowed_caps")
+  (return-type "gboolean")
+)
+
+(define-method push
+  (of-object "GstPad")
+  (c-name "gst_pad_push")
+  (return-type "none")
+  (parameters
+    '("GstBuffer*" "buf")
+  )
+)
+
+(define-method pullregion
+  (of-object "GstPad")
+  (c-name "gst_pad_pullregion")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstRegionType" "type")
+    '("guint64" "offset")
+    '("guint64" "len")
+  )
+)
+
+(define-method event_default
+  (of-object "GstPad")
+  (c-name "gst_pad_event_default")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method peek
+  (of-object "GstPad")
+  (c-name "gst_pad_peek")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_pad_select
+  (c-name "gst_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method selectv
+  (of-object "GstPad")
+  (c-name "gst_pad_selectv")
+  (return-type "GstPad*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-function gst_pad_load_and_connect
+  (c-name "gst_pad_load_and_connect")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "self")
+    '("GstObject*" "parent")
+  )
+)
+
+(define-function gst_ghost_pad_new
+  (c-name "gst_ghost_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_padtemplate_get_type
+  (c-name "gst_padtemplate_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_padtemplate_new
+  (c-name "gst_padtemplate_new")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("gchar*" "name_template")
+    '("GstPadDirection" "direction")
+    '("GstPadPresence" "presence")
+    '("GstCaps*" "caps")
+  )
+  (varargs #t)
+)
+
+(define-method get_caps
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_caps_by_name
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_padtemplate_load_thyself
+  (c-name "gst_padtemplate_load_thyself")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ghost_save_thyself
+  (of-object "GstPad")
+  (c-name "gst_pad_ghost_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("GstElement*" "bin")
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstparse.h
+
+(define-function gst_parse_launchv
+  (c-name "gst_parse_launchv")
+  (return-type "GstPipeline*")
+  (parameters
+    '("const-gchar**" "argv")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpipeline.h
+
+(define-function gst_pipeline_get_type
+  (c-name "gst_pipeline_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pipeline_new
+  (c-name "gst_pipeline_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstplugin.h
+
+(define-function _gst_plugin_register_static
+  (c-name "_gst_plugin_register_static")
+  (return-type "none")
+  (parameters
+    '("GstPluginDesc*" "desc")
+  )
+)
+
+(define-function gst_plugin_add_path
+  (c-name "gst_plugin_add_path")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "path")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_longname")
+  (return-type "const-gchar*")
+)
+
+(define-method set_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_longname")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "longname")
+  )
+)
+
+(define-method get_filename
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_filename")
+  (return-type "const-gchar*")
+)
+
+(define-method is_loaded
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_is_loaded")
+  (return-type "gboolean")
+)
+
+(define-method get_feature_list
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_feature_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_load_all
+  (c-name "gst_plugin_load_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_unload_all
+  (c-name "gst_plugin_unload_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_load
+  (c-name "gst_plugin_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_load_absolute
+  (c-name "gst_plugin_load_absolute")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_library_load
+  (c-name "gst_library_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method load_plugin
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_load_plugin")
+  (return-type "gboolean")
+)
+
+(define-method add_feature
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_add_feature")
+  (return-type "none")
+  (parameters
+    '("GstPluginFeature*" "feature")
+  )
+)
+
+(define-function gst_plugin_find
+  (c-name "gst_plugin_find")
+  (return-type "GstPlugin*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_get_list
+  (c-name "gst_plugin_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_save_thyself
+  (c-name "gst_plugin_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_plugin_load_thyself
+  (c-name "gst_plugin_load_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpluginfeature.h
+
+(define-function gst_plugin_feature_get_type
+  (c-name "gst_plugin_feature_get_type")
+  (return-type "GType")
+)
+
+(define-method ensure_loaded
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_ensure_loaded")
+  (return-type "gboolean")
+)
+
+(define-method unload_thyself
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_unload_thyself")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstprops.h
+
+(define-function _gst_props_initialize
+  (c-name "_gst_props_initialize")
+  (return-type "none")
+)
+
+(define-function gst_props_new
+  (c-name "gst_props_new")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+(define-function gst_props_newv
+  (c-name "gst_props_newv")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+    '("va_list" "var_args")
+  )
+)
+
+(define-method unref
+  (of-object "GstProps")
+  (c-name "gst_props_unref")
+  (return-type "none")
+)
+
+(define-method ref
+  (of-object "GstProps")
+  (c-name "gst_props_ref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstProps")
+  (c-name "gst_props_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstProps")
+  (c-name "gst_props_debug")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstProps")
+  (c-name "gst_props_copy")
+  (return-type "GstProps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstProps")
+  (c-name "gst_props_copy_on_write")
+  (return-type "GstProps*")
+)
+
+(define-method merge
+  (of-object "GstProps")
+  (c-name "gst_props_merge")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "tomerge")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstProps")
+  (c-name "gst_props_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstProps*" "toprops")
+  )
+)
+
+(define-method intersect
+  (of-object "GstProps")
+  (c-name "gst_props_intersect")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "props2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstProps")
+  (c-name "gst_props_normalize")
+  (return-type "GList*")
+)
+
+(define-method set
+  (of-object "GstProps")
+  (c-name "gst_props_set")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+  (varargs #t)
+)
+
+(define-method has_property
+  (of-object "GstProps")
+  (c-name "gst_props_has_property")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_int")
+  (return-type "gint")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_float
+  (of-object "GstProps")
+  (c-name "gst_props_get_float")
+  (return-type "gfloat")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_fourcc_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_fourcc_int")
+  (return-type "gulong")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_boolean
+  (of-object "GstProps")
+  (c-name "gst_props_get_boolean")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_string
+  (of-object "GstProps")
+  (c-name "gst_props_get_string")
+  (return-type "const-gchar*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstProps")
+  (c-name "gst_props_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_props_load_thyself
+  (c-name "gst_props_load_thyself")
+  (return-type "GstProps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstqueue.h
+
+(define-function gst_queue_get_type
+  (c-name "gst_queue_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gstscheduler.h
+
+(define-function gst_scheduler_get_type
+  (c-name "gst_scheduler_get_type")
+  (return-type "GType")
+)
+
+(define-method setup
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_setup")
+  (return-type "none")
+)
+
+(define-method reset
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_reset")
+  (return-type "none")
+)
+
+(define-method add_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_add_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method remove_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_remove_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method state_transition
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_state_transition")
+  (return-type "GstElementStateReturn")
+  (parameters
+    '("GstElement*" "element")
+    '("gint" "transition")
+  )
+)
+
+(define-method lock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_lock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method unlock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_unlock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method yield
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_yield")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method interrupt
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_interrupt")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method error
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method pad_connect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_connect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_disconnect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_select
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method iterate
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_iterate")
+  (return-type "gboolean")
+)
+
+(define-method show
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_show")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_get_type
+  (c-name "gst_schedulerfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_schedulerfactory_new
+  (c-name "gst_schedulerfactory_new")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_find
+  (c-name "gst_schedulerfactory_find")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_list
+  (c-name "gst_schedulerfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_create")
+  (return-type "GstScheduler*")
+  (parameters
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_make
+  (c-name "gst_schedulerfactory_make")
+  (return-type "GstScheduler*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_set_default_name
+  (c-name "gst_schedulerfactory_set_default_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_default_name
+  (c-name "gst_schedulerfactory_get_default_name")
+  (return-type "const-gchar*")
+)
+
+
+
+;; From /usr/include/gst/gstsystemclock.h
+
+(define-function gst_system_clock_get_type
+  (c-name "gst_system_clock_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_system_clock_obtain
+  (c-name "gst_system_clock_obtain")
+  (return-type "GstClock*")
+)
+
+
+
+;; From /usr/include/gst/gstthread.h
+
+(define-function gst_thread_get_type
+  (c-name "gst_thread_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_thread_new
+  (c-name "gst_thread_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttimecache.h
+
+(define-function gst_timecache_get_type
+  (c-name "gst_timecache_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_timecache_new
+  (c-name "gst_timecache_new")
+  (return-type "GstTimeCache*")
+)
+
+(define-method get_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_group")
+  (return-type "gint")
+)
+
+(define-method new_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_new_group")
+  (return-type "gint")
+)
+
+(define-method set_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_group")
+  (return-type "gboolean")
+  (parameters
+    '("gint" "groupnum")
+  )
+)
+
+(define-method set_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_certainty")
+  (return-type "none")
+  (parameters
+    '("GstTimeCacheCertainty" "certainty")
+  )
+)
+
+(define-method get_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_certainty")
+  (return-type "GstTimeCacheCertainty")
+)
+
+(define-method add_entry
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint64" "location")
+    '("gint64" "timestamp")
+  )
+)
+
+(define-method find_location
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_location")
+  (return-type "gboolean")
+  (parameters
+    '("guint64" "location")
+    '("gint64*" "timestamp")
+  )
+)
+
+(define-method find_timestamp
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_timestamp")
+  (return-type "gboolean")
+  (parameters
+    '("gint64" "timestamp")
+    '("guint64*" "location")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttrace.h
+
+(define-function gst_trace_new
+  (c-name "gst_trace_new")
+  (return-type "GstTrace*")
+  (parameters
+    '("guchar*" "filename")
+    '("gint" "size")
+  )
+)
+
+(define-method destroy
+  (of-object "GstTrace")
+  (c-name "gst_trace_destroy")
+  (return-type "none")
+)
+
+(define-method flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_flush")
+  (return-type "none")
+)
+
+(define-method text_flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_text_flush")
+  (return-type "none")
+)
+
+(define-method set_default
+  (of-object "GstTrace")
+  (c-name "gst_trace_set_default")
+  (return-type "none")
+)
+
+(define-method _add_entry
+  (of-object "GstTrace")
+  (c-name "_gst_trace_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint32" "seq")
+    '("guint32" "data")
+    '("gchar*" "msg")
+  )
+)
+
+(define-function gst_trace_read_tsc
+  (c-name "gst_trace_read_tsc")
+  (return-type "none")
+  (parameters
+    '("guint64*" "dst")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttype.h
+
+(define-function gst_typefactory_get_type
+  (c-name "gst_typefactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_typefactory_new
+  (c-name "gst_typefactory_new")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("GstTypeDefinition*" "definition")
+  )
+)
+
+(define-function gst_typefactory_find
+  (c-name "gst_typefactory_find")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_typefactory_get_list
+  (c-name "gst_typefactory_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_type_register
+  (c-name "gst_type_register")
+  (return-type "guint16")
+  (parameters
+    '("GstTypeFactory*" "factory")
+  )
+)
+
+(define-function gst_type_find_by_mime
+  (c-name "gst_type_find_by_mime")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-function gst_type_find_by_ext
+  (c-name "gst_type_find_by_ext")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "ext")
+  )
+)
+
+(define-function gst_type_find_by_id
+  (c-name "gst_type_find_by_id")
+  (return-type "GstType*")
+  (parameters
+    '("guint16" "id")
+  )
+)
+
+(define-function gst_type_get_list
+  (c-name "gst_type_get_list")
+  (return-type "GList*")
+)
+
+
+
+;; From /usr/include/gst/gsttypefind.h
+
+(define-function gst_typefind_get_type
+  (c-name "gst_typefind_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gsttypes.h
+
+
+
+;; From /usr/include/gst/gstutils.h
+
+(define-function gst_util_get_int_arg
+  (c-name "gst_util_get_int_arg")
+  (return-type "gint")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_bool_arg
+  (c-name "gst_util_get_bool_arg")
+  (return-type "gboolean")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_long_arg
+  (c-name "gst_util_get_long_arg")
+  (return-type "glong")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_int64_arg
+  (c-name "gst_util_get_int64_arg")
+  (return-type "gint64")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_float_arg
+  (c-name "gst_util_get_float_arg")
+  (return-type "gfloat")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_double_arg
+  (c-name "gst_util_get_double_arg")
+  (return-type "gdouble")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_string_arg
+  (c-name "gst_util_get_string_arg")
+  (return-type "const-gchar*")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_pointer_arg
+  (c-name "gst_util_get_pointer_arg")
+  (return-type "gpointer")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_set_value_from_string
+  (c-name "gst_util_set_value_from_string")
+  (return-type "none")
+  (parameters
+    '("GValue*" "value")
+    '("const-gchar*" "value_str")
+  )
+)
+
+(define-function gst_util_set_object_arg
+  (c-name "gst_util_set_object_arg")
+  (return-type "none")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "name")
+    '("const-gchar*" "value")
+  )
+)
+
+(define-function gst_util_dump_mem
+  (c-name "gst_util_dump_mem")
+  (return-type "none")
+  (parameters
+    '("guchar*" "mem")
+    '("guint" "size")
+  )
+)
+
+(define-function gst_print_pad_caps
+  (c-name "gst_print_pad_caps")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_print_element_args
+  (c-name "gst_print_element_args")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstElement*" "element")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstversion.h
+
+
+
+;; From /usr/include/gst/gstxml.h
+
+(define-function gst_xml_get_type
+  (c-name "gst_xml_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_xml_write
+  (c-name "gst_xml_write")
+  (return-type "xmlDocPtr")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-function gst_xml_write_file
+  (c-name "gst_xml_write_file")
+  (return-type "gint")
+  (parameters
+    '("GstElement*" "element")
+    '("FILE*" "out")
+  )
+)
+
+(define-function gst_xml_new
+  (c-name "gst_xml_new")
+  (return-type "GstXML*")
+)
+
+(define-method parse_doc
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_doc")
+  (return-type "gboolean")
+  (parameters
+    '("xmlDocPtr" "doc")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_file
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_file")
+  (return-type "gboolean")
+  (parameters
+    '("const-guchar*" "fname")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_memory
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_memory")
+  (return-type "gboolean")
+  (parameters
+    '("guchar*" "buffer")
+    '("guint" "size")
+    '("const-gchar*" "root")
+  )
+)
+
+(define-method get_element
+  (of-object "GstXML")
+  (c-name "gst_xml_get_element")
+  (return-type "GstElement*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method get_topelements
+  (of-object "GstXML")
+  (c-name "gst_xml_get_topelements")
+  (return-type "GList*")
+)
+
+(define-function gst_xml_make_element
+  (c-name "gst_xml_make_element")
+  (return-type "GstElement*")
+  (parameters
+    '("xmlNodePtr" "cur")
+    '("GstObject*" "parent")
+  )
+)
+
+
diff --git a/gst/gstmodule.c b/gst/gstmodule.c
new file mode 100644 (file)
index 0000000..37309cb
--- /dev/null
@@ -0,0 +1,52 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* include this first, before NO_IMPORT_PYGOBJECT is defined */
+#include <pygobject.h>
+
+void pygstreamer_register_classes (PyObject *d);
+void pygstreamer_add_constants(PyObject *module, const gchar *strip_prefix);
+               
+extern PyMethodDef pygstreamer_functions[];
+
+DL_EXPORT(void)
+init_gstreamer (void)
+{
+       PyObject *m, *d;
+
+       init_pygobject ();
+       gst_init(NULL,NULL);
+
+       m = Py_InitModule ("_gstreamer", pygstreamer_functions);
+       d = PyModule_GetDict (m);
+
+       pygstreamer_register_classes (d);
+       pygstreamer_add_constants (m, "GSTREAMER_");
+       
+       if (PyErr_Occurred ()) {
+               Py_FatalError ("can't initialize module gstreamer");
+       }
+}
diff --git a/gst/gstreamer-arg-types.py b/gst/gstreamer-arg-types.py
new file mode 100644 (file)
index 0000000..15ae898
--- /dev/null
@@ -0,0 +1,4 @@
+import argtypes
+
+#arg = argtypes.PointerArg('GstEvent')
+#argtypes.matcher.register('GstEvent*', arg)
diff --git a/gst/gstreamer-fixes.c b/gst/gstreamer-fixes.c
new file mode 100644 (file)
index 0000000..6a7a94b
--- /dev/null
@@ -0,0 +1,32 @@
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#include <gst/gst.h>
+
+#include "gstreamer-fixes.h"
+
+#define NI fprintf(stderr, "%s not implemented\n", __FUNCTION__);
+
+void gst_clock_set_speed (GstClock *clock, gdouble speed) { NI; }
+void gst_clock_get_speed (GstClock *clock, gdouble speed) { NI; }
+void gst_bin_child_error (GstBin *bin, GstElement *child) { NI; }
+
+#include "tmp-enum-types.c"
diff --git a/gst/gstreamer-fixes.h b/gst/gstreamer-fixes.h
new file mode 100644 (file)
index 0000000..0a9e3ed
--- /dev/null
@@ -0,0 +1,41 @@
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#define GST_PAD_TEMPLATE GST_PADTEMPLATE
+#define GST_TYPE_ELEMENT_FACTORY GST_TYPE_ELEMENTFACTORY
+#define GST_ELEMENT_FACTORY GST_ELEMENTFACTORY
+#define GST_AUTOPLUG_FACTORY GST_AUTOPLUGFACTORY
+#define GST_TYPE_TIME_CACHE GST_TYPE_TIMECACHE
+#define GST_SCHEDULER_FACTORY GST_SCHEDULERFACTORY
+#define GST_TIME_CACHE GST_TIMECACHE
+#define GST_TYPE_FACTORY GST_TYPEFACTORY
+#define GST_TYPE_TYPE_FACTORY GST_TYPE_TYPEFACTORY
+#define GST_TYPE_SCHEDULER_FACTORY GST_TYPE_SCHEDULERFACTORY
+#define GST_TYPE_AUTOPLUG_FACTORY GST_TYPE_AUTOPLUGFACTORY
+#define GST_TYPE_TYPE_FIND GST_TYPE_TYPEFIND
+#define GST_TYPE_PAD_TEMPLATE GST_TYPE_PADTEMPLATE
+
+#include <gst/gstqueue.h>
+#include <gst/gsttypefind.h>
+#include "tmp-enum-types.h"
diff --git a/gst/gstreamer.defs b/gst/gstreamer.defs
new file mode 100644 (file)
index 0000000..8e2ff6c
--- /dev/null
@@ -0,0 +1,3459 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object Object
+  (in-module "Gst")
+  (parent "GObject")
+  (c-name "GstObject")
+  (gtype-id "GST_TYPE_OBJECT")
+)
+
+(define-object Element
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstElement")
+  (gtype-id "GST_TYPE_ELEMENT")
+)
+
+(define-object Bin
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstBin")
+  (gtype-id "GST_TYPE_BIN")
+)
+
+(define-object Clock
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstClock")
+  (gtype-id "GST_TYPE_CLOCK")
+)
+
+(define-object Autoplug
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstAutoplug")
+  (gtype-id "GST_TYPE_AUTOPLUG")
+)
+
+(define-object Pad
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPad")
+  (gtype-id "GST_TYPE_PAD")
+)
+
+(define-object GhostPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstGhostPad")
+  (gtype-id "GST_TYPE_GHOST_PAD")
+)
+
+(define-object PadTemplate
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPadTemplate")
+  (gtype-id "GST_TYPE_PAD_TEMPLATE")
+)
+
+(define-object Pipeline
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstPipeline")
+  (gtype-id "GST_TYPE_PIPELINE")
+)
+
+(define-object PluginFeature
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPluginFeature")
+  (gtype-id "GST_TYPE_PLUGIN_FEATURE")
+)
+
+(define-object ElementFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstElementFactory")
+  (gtype-id "GST_TYPE_ELEMENT_FACTORY")
+)
+
+(define-object AutoplugFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstAutoplugFactory")
+  (gtype-id "GST_TYPE_AUTOPLUG_FACTORY")
+)
+
+(define-object Queue
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstQueue")
+  (gtype-id "GST_TYPE_QUEUE")
+)
+
+(define-object RealPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstRealPad")
+  (gtype-id "GST_TYPE_REAL_PAD")
+)
+
+(define-object Scheduler
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstScheduler")
+  (gtype-id "GST_TYPE_SCHEDULER")
+)
+
+(define-object SchedulerFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstSchedulerFactory")
+  (gtype-id "GST_TYPE_SCHEDULER_FACTORY")
+)
+
+(define-object SystemClock
+  (in-module "Gst")
+  (parent "GstClock")
+  (c-name "GstSystemClock")
+  (gtype-id "GST_TYPE_SYSTEM_CLOCK")
+)
+
+(define-object Thread
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstThread")
+  (gtype-id "GST_TYPE_THREAD")
+)
+
+(define-object TimeCache
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstTimeCache")
+  (gtype-id "GST_TYPE_TIME_CACHE")
+)
+
+(define-object TypeFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstTypeFactory")
+  (gtype-id "GST_TYPE_TYPE_FACTORY")
+)
+
+(define-object TypeFind
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstTypeFind")
+  (gtype-id "GST_TYPE_TYPE_FIND")
+)
+
+(define-object XML
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstXML")
+  (gtype-id "GST_TYPE_XML")
+)
+
+;; Enumerations and flags ...
+
+(define-enum AutoplugFlags
+  (in-module "Gst")
+  (c-name "GstAutoplugFlags")
+  (gtype-id "GST_TYPE_AUTOPLUG_FLAGS")
+  (values
+    '("to-caps" "GST_AUTOPLUG_TO_CAPS")
+    '("to-renderer" "GST_AUTOPLUG_TO_RENDERER")
+    '("flag-last" "GST_AUTOPLUG_FLAG_LAST")
+  )
+)
+
+(define-enum BinFlags
+  (in-module "Gst")
+  (c-name "GstBinFlags")
+  (gtype-id "GST_TYPE_BIN_FLAGS")
+  (values
+    '("flag-manager" "GST_BIN_FLAG_MANAGER")
+    '("self-schedulable" "GST_BIN_SELF_SCHEDULABLE")
+    '("flag-prefer-cothreads" "GST_BIN_FLAG_PREFER_COTHREADS")
+    '("flag-fixed-clock" "GST_BIN_FLAG_FIXED_CLOCK")
+    '("flag-last" "GST_BIN_FLAG_LAST")
+  )
+)
+
+(define-enum BufferFlags
+  (in-module "Gst")
+  (c-name "GstBufferFlags")
+  (gtype-id "GST_TYPE_BUFFER_FLAGS")
+  (values
+    '("readonly" "GST_BUFFER_READONLY")
+    '("original" "GST_BUFFER_ORIGINAL")
+    '("dontfree" "GST_BUFFER_DONTFREE")
+  )
+)
+
+(define-enum ClockReturn
+  (in-module "Gst")
+  (c-name "GstClockReturn")
+  (gtype-id "GST_TYPE_CLOCK_RETURN")
+  (values
+    '("stopped" "GST_CLOCK_STOPPED")
+    '("timeout" "GST_CLOCK_TIMEOUT")
+    '("early" "GST_CLOCK_EARLY")
+    '("error" "GST_CLOCK_ERROR")
+  )
+)
+
+(define-flags CPUFlags
+  (in-module "Gst")
+  (c-name "GstCPUFlags")
+  (gtype-id "GST_TYPE_CPU_FLAGS")
+  (values
+    '("mmx" "GST_CPU_FLAG_MMX")
+    '("sse" "GST_CPU_FLAG_SSE")
+    '("mmxext" "GST_CPU_FLAG_MMXEXT")
+    '("3dnow" "GST_CPU_FLAG_3DNOW")
+  )
+)
+
+(define-enum ElementFlags
+  (in-module "Gst")
+  (c-name "GstElementFlags")
+  (gtype-id "GST_TYPE_ELEMENT_FLAGS")
+  (values
+    '("complex" "GST_ELEMENT_COMPLEX")
+    '("decoupled" "GST_ELEMENT_DECOUPLED")
+    '("thread-suggested" "GST_ELEMENT_THREAD_SUGGESTED")
+    '("no-seek" "GST_ELEMENT_NO_SEEK")
+    '("infinite-loop" "GST_ELEMENT_INFINITE_LOOP")
+    '("scheduler-private1" "GST_ELEMENT_SCHEDULER_PRIVATE1")
+    '("scheduler-private2" "GST_ELEMENT_SCHEDULER_PRIVATE2")
+    '("new-loopfunc" "GST_ELEMENT_NEW_LOOPFUNC")
+    '("event-aware" "GST_ELEMENT_EVENT_AWARE")
+    '("flag-last" "GST_ELEMENT_FLAG_LAST")
+  )
+)
+
+(define-enum EventType
+  (in-module "Gst")
+  (c-name "GstEventType")
+  (gtype-id "GST_TYPE_EVENT_TYPE")
+  (values
+    '("unknown" "GST_EVENT_UNKNOWN")
+    '("eos" "GST_EVENT_EOS")
+    '("flush" "GST_EVENT_FLUSH")
+    '("empty" "GST_EVENT_EMPTY")
+    '("seek" "GST_EVENT_SEEK")
+    '("discontinuous" "GST_EVENT_DISCONTINUOUS")
+    '("new-media" "GST_EVENT_NEW_MEDIA")
+    '("info" "GST_EVENT_INFO")
+    '("error" "GST_EVENT_ERROR")
+  )
+)
+
+(define-enum SeekType
+  (in-module "Gst")
+  (c-name "GstSeekType")
+  (gtype-id "GST_TYPE_SEEK_TYPE")
+  (values
+    '("any" "GST_SEEK_ANY")
+    '("timeoffset-set" "GST_SEEK_TIMEOFFSET_SET")
+    '("byteoffset-set" "GST_SEEK_BYTEOFFSET_SET")
+    '("byteoffset-cur" "GST_SEEK_BYTEOFFSET_CUR")
+    '("byteoffset-end" "GST_SEEK_BYTEOFFSET_END")
+  )
+)
+
+(define-enum ObjectFlags
+  (in-module "Gst")
+  (c-name "GstObjectFlags")
+  (gtype-id "GST_TYPE_OBJECT_FLAGS")
+  (values
+    '("destroyed" "GST_DESTROYED")
+    '("floating" "GST_FLOATING")
+    '("object-flag-last" "GST_OBJECT_FLAG_LAST")
+  )
+)
+
+(define-enum RegionType
+  (in-module "Gst")
+  (c-name "GstRegionType")
+  (gtype-id "GST_TYPE_REGION_TYPE")
+  (values
+    '("void" "GST_REGION_VOID")
+    '("offset-len" "GST_REGION_OFFSET_LEN")
+    '("time-len" "GST_REGION_TIME_LEN")
+  )
+)
+
+(define-enum PadConnectReturn
+  (in-module "Gst")
+  (c-name "GstPadConnectReturn")
+  (gtype-id "GST_TYPE_PAD_CONNECT_RETURN")
+  (values
+    '("refused" "GST_PAD_CONNECT_REFUSED")
+    '("ok" "GST_PAD_CONNECT_OK")
+    '("done" "GST_PAD_CONNECT_DONE")
+    '("delayed" "GST_PAD_CONNECT_DELAYED")
+  )
+)
+
+(define-enum PadDirection
+  (in-module "Gst")
+  (c-name "GstPadDirection")
+  (gtype-id "GST_TYPE_PAD_DIRECTION")
+  (values
+    '("unknown" "GST_PAD_UNKNOWN")
+    '("src" "GST_PAD_SRC")
+    '("sink" "GST_PAD_SINK")
+  )
+)
+
+(define-enum PadFlags
+  (in-module "Gst")
+  (c-name "GstPadFlags")
+  (gtype-id "GST_TYPE_PAD_FLAGS")
+  (values
+    '("disabled" "GST_PAD_DISABLED")
+    '("eos" "GST_PAD_EOS")
+    '("flag-last" "GST_PAD_FLAG_LAST")
+  )
+)
+
+(define-enum PadPresence
+  (in-module "Gst")
+  (c-name "GstPadPresence")
+  (gtype-id "GST_TYPE_PAD_PRESENCE")
+  (values
+    '("always" "GST_PAD_ALWAYS")
+    '("sometimes" "GST_PAD_SOMETIMES")
+    '("request" "GST_PAD_REQUEST")
+  )
+)
+
+(define-enum ParseErrors
+  (in-module "Gst")
+  (c-name "GstParseErrors")
+  (gtype-id "GST_TYPE_PARSE_ERRORS")
+  (values
+    '("syntax" "GST_PARSE_ERROR_SYNTAX")
+    '("creating-element" "GST_PARSE_ERROR_CREATING_ELEMENT")
+    '("nosuch-element" "GST_PARSE_ERROR_NOSUCH_ELEMENT")
+    '("internal" "GST_PARSE_ERROR_INTERNAL")
+    '("connect" "GST_PARSE_ERROR_CONNECT")
+  )
+)
+
+(define-enum PropsId
+  (in-module "Gst")
+  (c-name "GstPropsId")
+  (gtype-id "GST_TYPE_PROPS_ID")
+  (values
+    '("end-id" "GST_PROPS_END_ID")
+    '("int-id" "GST_PROPS_INT_ID")
+    '("float-id" "GST_PROPS_FLOAT_ID")
+    '("fourcc-id" "GST_PROPS_FOURCC_ID")
+    '("bool-id" "GST_PROPS_BOOL_ID")
+    '("string-id" "GST_PROPS_STRING_ID")
+    '("var-id" "GST_PROPS_VAR_ID")
+    '("list-id" "GST_PROPS_LIST_ID")
+    '("float-range-id" "GST_PROPS_FLOAT_RANGE_ID")
+    '("int-range-id" "GST_PROPS_INT_RANGE_ID")
+    '("last-id" "GST_PROPS_LAST_ID")
+  )
+)
+
+(define-enum SchedulerState
+  (in-module "Gst")
+  (c-name "GstSchedulerState")
+  (gtype-id "GST_TYPE_SCHEDULER_STATE")
+  (values
+    '("none" "GST_SCHEDULER_STATE_NONE")
+    '("running" "GST_SCHEDULER_STATE_RUNNING")
+    '("stopped" "GST_SCHEDULER_STATE_STOPPED")
+    '("error" "GST_SCHEDULER_STATE_ERROR")
+  )
+)
+
+(define-enum ThreadState
+  (in-module "Gst")
+  (c-name "GstThreadState")
+  (gtype-id "GST_TYPE_THREAD_STATE")
+  (values
+    '("state-started" "GST_THREAD_STATE_STARTED")
+    '("state-spinning" "GST_THREAD_STATE_SPINNING")
+    '("state-reaping" "GST_THREAD_STATE_REAPING")
+    '("flag-last" "GST_THREAD_FLAG_LAST")
+  )
+)
+
+(define-enum TimeCacheCertainty
+  (in-module "Gst")
+  (c-name "GstTimeCacheCertainty")
+  (gtype-id "GST_TYPE_TIME_CACHE_CERTAINTY")
+  (values
+    '("unknown" "GST_TIMECACHE_UNKNOWN")
+    '("certain" "GST_TIMECACHE_CERTAIN")
+    '("fuzzy-location" "GST_TIMECACHE_FUZZY_LOCATION")
+    '("fuzzy-timestamp" "GST_TIMECACHE_FUZZY_TIMESTAMP")
+    '("fuzzy" "GST_TIMECACHE_FUZZY")
+  )
+)
+
+(define-flags ElementState
+  (in-module "Gst")
+  (c-name "GstElementState")
+  (gtype-id "GST_TYPE_ELEMENT_STATE")
+  (values
+    '("void-pending" "GST_STATE_VOID_PENDING")
+    '("null" "GST_STATE_NULL")
+    '("ready" "GST_STATE_READY")
+    '("paused" "GST_STATE_PAUSED")
+    '("playing" "GST_STATE_PLAYING")
+  )
+)
+
+(define-enum ElementStateReturn
+  (in-module "Gst")
+  (c-name "GstElementStateReturn")
+  (gtype-id "GST_TYPE_ELEMENT_STATE_RETURN")
+  (values
+    '("failure" "GST_STATE_FAILURE")
+    '("success" "GST_STATE_SUCCESS")
+    '("async" "GST_STATE_ASYNC")
+  )
+)
+
+
+;; From /usr/include/gst/gst.h
+
+(define-function gst_init_with_popt_table
+  (c-name "gst_init_with_popt_table")
+  (return-type "none")
+  (parameters
+    '("int*" "argc")
+    '("char**[]" "argv")
+    '("const-struct-poptOption*" "popt_options")
+  )
+)
+
+(define-function gst_main
+  (c-name "gst_main")
+  (return-type "none")
+)
+
+(define-function gst_main_quit
+  (c-name "gst_main_quit")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstautoplug.h
+
+(define-function gst_autoplug_get_type
+  (c-name "gst_autoplug_get_type")
+  (return-type "GType")
+)
+
+(define-method signal_new_object
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_signal_new_object")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+  )
+)
+
+(define-method to_caps
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_caps")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstCaps*" "sinkcaps")
+  )
+  (varargs #t)
+)
+
+(define-method to_renderers
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_renderers")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstElement*" "target")
+  )
+  (varargs #t)
+)
+
+(define-function gst_autoplugfactory_get_type
+  (c-name "gst_autoplugfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_autoplugfactory_new
+  (c-name "gst_autoplugfactory_new")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_autoplugfactory_find
+  (c-name "gst_autoplugfactory_find")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_autoplugfactory_get_list
+  (c-name "gst_autoplugfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_create")
+  (return-type "GstAutoplug*")
+)
+
+(define-function gst_autoplugfactory_make
+  (c-name "gst_autoplugfactory_make")
+  (return-type "GstAutoplug*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbin.h
+
+(define-function gst_bin_get_type
+  (c-name "gst_bin_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_bin_new
+  (c-name "gst_bin_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method add
+  (of-object "GstBin")
+  (c-name "gst_bin_add")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method add_many
+  (of-object "GstBin")
+  (c-name "gst_bin_add_many")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element_1")
+  )
+  (varargs #t)
+)
+
+(define-method remove
+  (of-object "GstBin")
+  (c-name "gst_bin_remove")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method get_by_name
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_by_name_recurse_up
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name_recurse_up")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_list
+  (of-object "GstBin")
+  (c-name "gst_bin_get_list")
+  (return-type "GList*")
+)
+
+(define-method set_state_type
+  (of-object "GstBin")
+  (c-name "gst_bin_set_state_type")
+  (return-type "gboolean")
+  (parameters
+    '("GstElementState" "state")
+    '("GType" "type")
+  )
+)
+
+(define-method iterate
+  (of-object "GstBin")
+  (c-name "gst_bin_iterate")
+  (return-type "gboolean")
+)
+
+(define-method use_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_use_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method get_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method auto_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_auto_clock")
+  (return-type "none")
+)
+
+(define-method child_state_change
+  (of-object "GstBin")
+  (c-name "gst_bin_child_state_change")
+  (return-type "none")
+  (parameters
+    '("GstElementState" "oldstate")
+    '("GstElementState" "newstate")
+    '("GstElement*" "child")
+  )
+)
+
+(define-method child_error
+  (of-object "GstBin")
+  (c-name "gst_bin_child_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "child")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbuffer.h
+
+(define-function _gst_buffer_initialize
+  (c-name "_gst_buffer_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_new
+  (c-name "gst_buffer_new")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_buffer_new_from_pool
+  (c-name "gst_buffer_new_from_pool")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBufferPool*" "pool")
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method create_sub
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_create_sub")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method ref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("gint" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_unref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_destroy")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_copy")
+  (return-type "GstBuffer*")
+)
+
+(define-method merge
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_merge")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-method span
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_span")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("GstBuffer*" "buf2")
+    '("guint32" "len")
+  )
+)
+
+(define-method append
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_append")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "append")
+  )
+)
+
+(define-method is_span_fast
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_is_span_fast")
+  (return-type "gboolean")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-function gst_buffer_print_stats
+  (c-name "gst_buffer_print_stats")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstbufferpool.h
+
+(define-function _gst_buffer_pool_initialize
+  (c-name "_gst_buffer_pool_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_new
+  (c-name "gst_buffer_pool_new")
+  (return-type "GstBufferPool*")
+)
+
+(define-method ref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("int" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_unref")
+  (return-type "none")
+)
+
+(define-method set_buffer_new_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_new_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolBufferNewFunction" "create")
+  )
+)
+
+(define-method set_buffer_free_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_free_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferFreeFunc" "destroy")
+  )
+)
+
+(define-method set_buffer_copy_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_copy_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferCopyFunc" "copy")
+  )
+)
+
+(define-method set_destroy_hook
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_destroy_hook")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolDestroyHook" "destroy")
+  )
+)
+
+(define-method set_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_user_data")
+  (return-type "none")
+  (parameters
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method get_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_get_user_data")
+  (return-type "gpointer")
+)
+
+(define-method destroy
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_destroy")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_get_default
+  (c-name "gst_buffer_pool_get_default")
+  (return-type "GstBufferPool*")
+  (parameters
+    '("guint" "buffer_size")
+    '("guint" "pool_size")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstcaps.h
+
+(define-function gst_caps_new
+  (c-name "gst_caps_new")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "mime")
+    '("GstProps*" "props")
+  )
+)
+
+(define-function gst_caps_new_id
+  (c-name "gst_caps_new_id")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-guint16" "id")
+    '("GstProps*" "props")
+  )
+)
+
+(define-method unref
+  (of-object "GstCaps")
+  (c-name "gst_caps_unref")
+  (return-type "GstCaps*")
+)
+
+(define-method ref
+  (of-object "GstCaps")
+  (c-name "gst_caps_ref")
+  (return-type "GstCaps*")
+)
+
+(define-method destroy
+  (of-object "GstCaps")
+  (c-name "gst_caps_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstCaps")
+  (c-name "gst_caps_debug")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "label")
+  )
+)
+
+(define-method copy
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_1
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_1")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_on_write")
+  (return-type "GstCaps*")
+)
+
+(define-method get_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_mime")
+  (return-type "const-gchar*")
+)
+
+(define-method set_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_mime")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-method get_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_type_id")
+  (return-type "guint16")
+)
+
+(define-method set_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_type_id")
+  (return-type "none")
+  (parameters
+    '("guint16" "type_id")
+  )
+)
+
+(define-method set_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_props")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstProps*" "props")
+  )
+)
+
+(define-method get_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_props")
+  (return-type "GstProps*")
+)
+
+(define-method get_by_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method chain
+  (of-object "GstCaps")
+  (c-name "gst_caps_chain")
+  (return-type "GstCaps*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-method append
+  (of-object "GstCaps")
+  (c-name "gst_caps_append")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method prepend
+  (of-object "GstCaps")
+  (c-name "gst_caps_prepend")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstCaps")
+  (c-name "gst_caps_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "tocaps")
+  )
+)
+
+(define-method intersect
+  (of-object "GstCaps")
+  (c-name "gst_caps_intersect")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "caps2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstCaps")
+  (c-name "gst_caps_normalize")
+  (return-type "GstCaps*")
+)
+
+(define-method save_thyself
+  (of-object "GstCaps")
+  (c-name "gst_caps_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_caps_load_thyself
+  (c-name "gst_caps_load_thyself")
+  (return-type "GstCaps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstclock.h
+
+(define-function gst_clock_get_type
+  (c-name "gst_clock_get_type")
+  (return-type "GType")
+)
+
+(define-method set_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_set_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method get_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_get_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method activate
+  (of-object "GstClock")
+  (c-name "gst_clock_activate")
+  (return-type "none")
+  (parameters
+    '("gboolean" "active")
+  )
+)
+
+(define-method is_active
+  (of-object "GstClock")
+  (c-name "gst_clock_is_active")
+  (return-type "gboolean")
+)
+
+(define-method reset
+  (of-object "GstClock")
+  (c-name "gst_clock_reset")
+  (return-type "none")
+)
+
+(define-method set_time
+  (of-object "GstClock")
+  (c-name "gst_clock_set_time")
+  (return-type "none")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method get_time
+  (of-object "GstClock")
+  (c-name "gst_clock_get_time")
+  (return-type "GstClockTime")
+)
+
+(define-method wait
+  (of-object "GstClock")
+  (c-name "gst_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_wait_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "time")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method cancel_wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_cancel_wait_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_notify_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "interval")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method remove_notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_remove_notify_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method set_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_set_resolution")
+  (return-type "none")
+  (parameters
+    '("guint64" "resolution")
+  )
+)
+
+(define-method get_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_get_resolution")
+  (return-type "guint64")
+)
+
+
+
+;; From /usr/include/gst/gstconfig.h
+
+
+
+;; From /usr/include/gst/gstcpu.h
+
+(define-function gst_cpu_get_flags
+  (c-name "gst_cpu_get_flags")
+  (return-type "GstCPUFlags")
+)
+
+
+
+;; From /usr/include/gst/gstdata.h
+
+
+
+;; From /usr/include/gst/gstelement.h
+
+(define-method add_padtemplate
+  (of-object "GstElementClass")
+  (c-name "gst_element_class_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-function gst_element_get_type
+  (c-name "gst_element_get_type")
+  (return-type "GType")
+)
+
+(define-method set_loop_function
+  (of-object "GstElement")
+  (c-name "gst_element_set_loop_function")
+  (return-type "none")
+  (parameters
+    '("GstElementLoopFunction" "loop")
+  )
+)
+
+(define-method set_name
+  (of-object "GstElement")
+  (c-name "gst_element_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstElement")
+  (c-name "gst_element_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstElement")
+  (c-name "gst_element_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method get_clock
+  (of-object "GstElement")
+  (c-name "gst_element_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method set_clock
+  (of-object "GstElement")
+  (c-name "gst_element_set_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method clock_wait
+  (of-object "GstElement")
+  (c-name "gst_element_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClock*" "clock")
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method yield
+  (of-object "GstElement")
+  (c-name "gst_element_yield")
+  (return-type "none")
+)
+
+(define-method interrupt
+  (of-object "GstElement")
+  (c-name "gst_element_interrupt")
+  (return-type "gboolean")
+)
+
+(define-method set_sched
+  (of-object "GstElement")
+  (c-name "gst_element_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstElement")
+  (c-name "gst_element_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method add_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method remove_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method get_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_pad_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_by_name")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method add_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_ghost_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("gchar*" "name")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method request_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_request_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method request_pad_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_request_pad_by_name")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_compatible_pad_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad_filtered")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method connect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstElement")
+  (c-name "gst_element_connect")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method disconnect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect_elements")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_many
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_many")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element_2")
+  )
+  (varargs #t)
+)
+
+(define-method set_eos
+  (of-object "GstElement")
+  (c-name "gst_element_set_eos")
+  (return-type "none")
+)
+
+(define-method send_event
+  (of-object "GstElement")
+  (c-name "gst_element_send_event")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method get_state
+  (of-object "GstElement")
+  (c-name "gst_element_get_state")
+  (return-type "GstElementState")
+)
+
+(define-method set_state
+  (of-object "GstElement")
+  (c-name "gst_element_set_state")
+  (return-type "gint")
+  (parameters
+    '("GstElementState" "state")
+  )
+)
+
+(define-method wait_state_change
+  (of-object "GstElement")
+  (c-name "gst_element_wait_state_change")
+  (return-type "none")
+)
+
+(define-method name
+  (of-object "GstElementState")
+  (c-name "gst_element_statename")
+  (return-type "const-gchar*")
+)
+
+(define-method info
+  (of-object "GstElement")
+  (c-name "gst_element_info")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "info")
+  )
+  (varargs #t)
+)
+
+(define-method error
+  (of-object "GstElement")
+  (c-name "gst_element_error")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "error")
+  )
+  (varargs #t)
+)
+
+(define-method get_factory
+  (of-object "GstElement")
+  (c-name "gst_element_get_factory")
+  (return-type "GstElementFactory*")
+)
+
+(define-function gst_element_install_std_props
+  (c-name "gst_element_install_std_props")
+  (return-type "none")
+  (parameters
+    '("GstElementClass*" "klass")
+    '("const-char*" "first_name")
+  )
+  (varargs #t)
+)
+
+(define-method get_managing_bin
+  (of-object "GstElement")
+  (c-name "gst_element_get_managing_bin")
+  (return-type "GstBin*")
+)
+
+(define-function gst_elementfactory_get_type
+  (c-name "gst_elementfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_elementfactory_new
+  (c-name "gst_elementfactory_new")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GType" "type")
+    '("GstElementDetails*" "details")
+  )
+)
+
+(define-function gst_elementfactory_find
+  (c-name "gst_elementfactory_find")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_get_list
+  (c-name "gst_elementfactory_get_list")
+  (return-type "const-GList*")
+)
+
+(define-method add_padtemplate
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method can_src_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_src_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method can_sink_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_sink_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method create
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_create")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_make
+  (c-name "gst_elementfactory_make")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "factoryname")
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstevent.h
+
+(define-function _gst_event_initialize
+  (c-name "_gst_event_initialize")
+  (return-type "none")
+)
+
+(define-function gst_event_new
+  (c-name "gst_event_new")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstEventType" "type")
+  )
+)
+
+(define-method copy
+  (of-object "GstEvent")
+  (c-name "gst_event_copy")
+  (return-type "GstEvent*")
+)
+
+(define-method free
+  (of-object "GstEvent")
+  (c-name "gst_event_free")
+  (return-type "none")
+)
+
+(define-function gst_event_new_seek
+  (c-name "gst_event_new_seek")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstSeekType" "type")
+    '("gint64" "offset")
+    '("gboolean" "flush")
+  )
+)
+
+(define-function gst_event_new_info
+  (c-name "gst_event_new_info")
+  (return-type "GstEvent*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+
+
+;; From /usr/include/gst/gstextratypes.h
+
+
+
+;; From /usr/include/gst/gstinfo.h
+
+(define-function gst_get_category_name
+  (c-name "gst_get_category_name")
+  (return-type "const-gchar*")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_debug_handler
+  (c-name "gst_default_debug_handler")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+    '("gboolean" "incore")
+    '("const-gchar*" "file")
+    '("const-gchar*" "function")
+    '("gint" "line")
+    '("const-gchar*" "debug_string")
+    '("void*" "element")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_info_get_categories
+  (c-name "gst_info_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_info_enable_category
+  (c-name "gst_info_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_info_disable_category
+  (c-name "gst_info_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_set_categories
+  (c-name "gst_debug_set_categories")
+  (return-type "none")
+  (parameters
+    '("guint32" "categories")
+  )
+)
+
+(define-function gst_debug_get_categories
+  (c-name "gst_debug_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_debug_enable_category
+  (c-name "gst_debug_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_disable_category
+  (c-name "gst_debug_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_error_handler
+  (c-name "gst_default_error_handler")
+  (return-type "none")
+  (parameters
+    '("gchar*" "file")
+    '("gchar*" "function")
+    '("gint" "line")
+    '("gchar*" "debug_string")
+    '("void*" "element")
+    '("void*" "object")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_debug_print_stack_trace
+  (c-name "gst_debug_print_stack_trace")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstlog.h
+
+
+
+;; From /usr/include/gst/gstmarshal.h
+
+
+
+;; From /usr/include/gst/gstobject.h
+
+(define-function gst_object_get_type
+  (c-name "gst_object_get_type")
+  (return-type "GType")
+)
+
+(define-method set_name
+  (of-object "GstObject")
+  (c-name "gst_object_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstObject")
+  (c-name "gst_object_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstObject")
+  (c-name "gst_object_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstObject")
+  (c-name "gst_object_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method unparent
+  (of-object "GstObject")
+  (c-name "gst_object_unparent")
+  (return-type "none")
+)
+
+(define-function gst_object_check_uniqueness
+  (c-name "gst_object_check_uniqueness")
+  (return-type "gboolean")
+  (parameters
+    '("GList*" "list")
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method restore_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_restore_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ref
+  (of-object "GstObject")
+  (c-name "gst_object_ref")
+  (return-type "GstObject*")
+)
+
+(define-method unref
+  (of-object "GstObject")
+  (c-name "gst_object_unref")
+  (return-type "none")
+)
+
+(define-method sink
+  (of-object "GstObject")
+  (c-name "gst_object_sink")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstObject")
+  (c-name "gst_object_destroy")
+  (return-type "none")
+)
+
+(define-method get_path_string
+  (of-object "GstObject")
+  (c-name "gst_object_get_path_string")
+  (return-type "gchar*")
+)
+
+(define-function gst_class_signal_connect
+  (c-name "gst_class_signal_connect")
+  (return-type "guint")
+  (parameters
+    '("GstObjectClass*" "klass")
+    '("const-gchar*" "name")
+    '("gpointer" "func")
+    '("gpointer" "func_data")
+  )
+)
+
+(define-function gst_class_signal_emit_by_name
+  (c-name "gst_class_signal_emit_by_name")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+    '("const-gchar*" "name")
+    '("xmlNodePtr" "self")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpad.h
+
+(define-function gst_real_pad_get_type
+  (c-name "gst_real_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_ghost_pad_get_type
+  (c-name "gst_ghost_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pad_new
+  (c-name "gst_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPadDirection" "direction")
+  )
+)
+
+(define-function gst_pad_new_from_template
+  (c-name "gst_pad_new_from_template")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+    '("gchar*" "name")
+  )
+)
+
+(define-method get_direction
+  (of-object "GstPad")
+  (c-name "gst_pad_get_direction")
+  (return-type "GstPadDirection")
+)
+
+(define-method set_chain_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_chain_function")
+  (return-type "none")
+  (parameters
+    '("GstPadChainFunction" "chain")
+  )
+)
+
+(define-method set_get_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_get_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetFunction" "get")
+  )
+)
+
+(define-method set_event_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_event_function")
+  (return-type "none")
+  (parameters
+    '("GstPadEventFunction" "event")
+  )
+)
+
+(define-method set_getregion_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getregion_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetRegionFunction" "getregion")
+  )
+)
+
+(define-method set_connect_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_connect_function")
+  (return-type "none")
+  (parameters
+    '("GstPadConnectFunction" "connect")
+  )
+)
+
+(define-method set_getcaps_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getcaps_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetCapsFunction" "getcaps")
+  )
+)
+
+(define-method set_bufferpool_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_bufferpool_function")
+  (return-type "none")
+  (parameters
+    '("GstPadBufferPoolFunction" "bufpool")
+  )
+)
+
+(define-method get_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_padtemplate_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method try_set_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_try_set_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstPad")
+  (c-name "gst_pad_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method set_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_set_element_private")
+  (return-type "none")
+  (parameters
+    '("gpointer" "priv")
+  )
+)
+
+(define-method get_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_get_element_private")
+  (return-type "gpointer")
+)
+
+(define-method set_name
+  (of-object "GstPad")
+  (c-name "gst_pad_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPad")
+  (c-name "gst_pad_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_parent")
+  (return-type "GstElement*")
+)
+
+(define-method get_real_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_real_parent")
+  (return-type "GstElement*")
+)
+
+(define-method set_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method unset_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_unset_sched")
+  (return-type "none")
+)
+
+(define-method add_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_add_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method get_ghost_pad_list
+  (of-object "GstPad")
+  (c-name "gst_pad_get_ghost_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate")
+  (return-type "GstPadTemplate*")
+)
+
+(define-method get_peer
+  (of-object "GstPad")
+  (c-name "gst_pad_get_peer")
+  (return-type "GstPad*")
+)
+
+(define-method get_bufferpool
+  (of-object "GstPad")
+  (c-name "gst_pad_get_bufferpool")
+  (return-type "GstBufferPool*")
+)
+
+(define-method can_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method can_connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstPad")
+  (c-name "gst_pad_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstPad")
+  (c-name "gst_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method proxy_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_proxy_connect")
+  (return-type "GstPadConnectReturn")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method perform_negotiate
+  (of-object "GstPad")
+  (c-name "gst_pad_perform_negotiate")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method try_reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_try_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_allowed_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method recalc_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_recalc_allowed_caps")
+  (return-type "gboolean")
+)
+
+(define-method push
+  (of-object "GstPad")
+  (c-name "gst_pad_push")
+  (return-type "none")
+  (parameters
+    '("GstBuffer*" "buf")
+  )
+)
+
+(define-method pullregion
+  (of-object "GstPad")
+  (c-name "gst_pad_pullregion")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstRegionType" "type")
+    '("guint64" "offset")
+    '("guint64" "len")
+  )
+)
+
+(define-method event_default
+  (of-object "GstPad")
+  (c-name "gst_pad_event_default")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method peek
+  (of-object "GstPad")
+  (c-name "gst_pad_peek")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_pad_select
+  (c-name "gst_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method selectv
+  (of-object "GstPad")
+  (c-name "gst_pad_selectv")
+  (return-type "GstPad*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-function gst_pad_load_and_connect
+  (c-name "gst_pad_load_and_connect")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "self")
+    '("GstObject*" "parent")
+  )
+)
+
+(define-function gst_ghost_pad_new
+  (c-name "gst_ghost_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_padtemplate_get_type
+  (c-name "gst_padtemplate_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_padtemplate_new
+  (c-name "gst_padtemplate_new")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("gchar*" "name_template")
+    '("GstPadDirection" "direction")
+    '("GstPadPresence" "presence")
+    '("GstCaps*" "caps")
+  )
+  (varargs #t)
+)
+
+(define-method get_caps
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_caps_by_name
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_padtemplate_load_thyself
+  (c-name "gst_padtemplate_load_thyself")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ghost_save_thyself
+  (of-object "GstPad")
+  (c-name "gst_pad_ghost_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("GstElement*" "bin")
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstparse.h
+
+(define-function gst_parse_launchv
+  (c-name "gst_parse_launchv")
+  (return-type "GstPipeline*")
+  (parameters
+    '("const-gchar**" "argv")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpipeline.h
+
+(define-function gst_pipeline_get_type
+  (c-name "gst_pipeline_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pipeline_new
+  (c-name "gst_pipeline_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstplugin.h
+
+(define-function _gst_plugin_register_static
+  (c-name "_gst_plugin_register_static")
+  (return-type "none")
+  (parameters
+    '("GstPluginDesc*" "desc")
+  )
+)
+
+(define-function gst_plugin_add_path
+  (c-name "gst_plugin_add_path")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "path")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_longname")
+  (return-type "const-gchar*")
+)
+
+(define-method set_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_longname")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "longname")
+  )
+)
+
+(define-method get_filename
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_filename")
+  (return-type "const-gchar*")
+)
+
+(define-method is_loaded
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_is_loaded")
+  (return-type "gboolean")
+)
+
+(define-method get_feature_list
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_feature_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_load_all
+  (c-name "gst_plugin_load_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_unload_all
+  (c-name "gst_plugin_unload_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_load
+  (c-name "gst_plugin_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_load_absolute
+  (c-name "gst_plugin_load_absolute")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_library_load
+  (c-name "gst_library_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method load_plugin
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_load_plugin")
+  (return-type "gboolean")
+)
+
+(define-method add_feature
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_add_feature")
+  (return-type "none")
+  (parameters
+    '("GstPluginFeature*" "feature")
+  )
+)
+
+(define-function gst_plugin_find
+  (c-name "gst_plugin_find")
+  (return-type "GstPlugin*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_get_list
+  (c-name "gst_plugin_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_save_thyself
+  (c-name "gst_plugin_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_plugin_load_thyself
+  (c-name "gst_plugin_load_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpluginfeature.h
+
+(define-function gst_plugin_feature_get_type
+  (c-name "gst_plugin_feature_get_type")
+  (return-type "GType")
+)
+
+(define-method ensure_loaded
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_ensure_loaded")
+  (return-type "gboolean")
+)
+
+(define-method unload_thyself
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_unload_thyself")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstprops.h
+
+(define-function _gst_props_initialize
+  (c-name "_gst_props_initialize")
+  (return-type "none")
+)
+
+(define-function gst_props_new
+  (c-name "gst_props_new")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+(define-function gst_props_newv
+  (c-name "gst_props_newv")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+    '("va_list" "var_args")
+  )
+)
+
+(define-method unref
+  (of-object "GstProps")
+  (c-name "gst_props_unref")
+  (return-type "none")
+)
+
+(define-method ref
+  (of-object "GstProps")
+  (c-name "gst_props_ref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstProps")
+  (c-name "gst_props_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstProps")
+  (c-name "gst_props_debug")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstProps")
+  (c-name "gst_props_copy")
+  (return-type "GstProps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstProps")
+  (c-name "gst_props_copy_on_write")
+  (return-type "GstProps*")
+)
+
+(define-method merge
+  (of-object "GstProps")
+  (c-name "gst_props_merge")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "tomerge")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstProps")
+  (c-name "gst_props_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstProps*" "toprops")
+  )
+)
+
+(define-method intersect
+  (of-object "GstProps")
+  (c-name "gst_props_intersect")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "props2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstProps")
+  (c-name "gst_props_normalize")
+  (return-type "GList*")
+)
+
+(define-method set
+  (of-object "GstProps")
+  (c-name "gst_props_set")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+  (varargs #t)
+)
+
+(define-method has_property
+  (of-object "GstProps")
+  (c-name "gst_props_has_property")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_int")
+  (return-type "gint")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_float
+  (of-object "GstProps")
+  (c-name "gst_props_get_float")
+  (return-type "gfloat")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_fourcc_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_fourcc_int")
+  (return-type "gulong")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_boolean
+  (of-object "GstProps")
+  (c-name "gst_props_get_boolean")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_string
+  (of-object "GstProps")
+  (c-name "gst_props_get_string")
+  (return-type "const-gchar*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstProps")
+  (c-name "gst_props_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_props_load_thyself
+  (c-name "gst_props_load_thyself")
+  (return-type "GstProps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstqueue.h
+
+(define-function gst_queue_get_type
+  (c-name "gst_queue_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gstscheduler.h
+
+(define-function gst_scheduler_get_type
+  (c-name "gst_scheduler_get_type")
+  (return-type "GType")
+)
+
+(define-method setup
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_setup")
+  (return-type "none")
+)
+
+(define-method reset
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_reset")
+  (return-type "none")
+)
+
+(define-method add_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_add_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method remove_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_remove_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method state_transition
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_state_transition")
+  (return-type "GstElementStateReturn")
+  (parameters
+    '("GstElement*" "element")
+    '("gint" "transition")
+  )
+)
+
+(define-method lock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_lock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method unlock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_unlock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method yield
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_yield")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method interrupt
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_interrupt")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method error
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method pad_connect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_connect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_disconnect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_select
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method iterate
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_iterate")
+  (return-type "gboolean")
+)
+
+(define-method show
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_show")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_get_type
+  (c-name "gst_schedulerfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_schedulerfactory_new
+  (c-name "gst_schedulerfactory_new")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_find
+  (c-name "gst_schedulerfactory_find")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_list
+  (c-name "gst_schedulerfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_create")
+  (return-type "GstScheduler*")
+  (parameters
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_make
+  (c-name "gst_schedulerfactory_make")
+  (return-type "GstScheduler*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_set_default_name
+  (c-name "gst_schedulerfactory_set_default_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_default_name
+  (c-name "gst_schedulerfactory_get_default_name")
+  (return-type "const-gchar*")
+)
+
+
+
+;; From /usr/include/gst/gstsystemclock.h
+
+(define-function gst_system_clock_get_type
+  (c-name "gst_system_clock_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_system_clock_obtain
+  (c-name "gst_system_clock_obtain")
+  (return-type "GstClock*")
+)
+
+
+
+;; From /usr/include/gst/gstthread.h
+
+(define-function gst_thread_get_type
+  (c-name "gst_thread_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_thread_new
+  (c-name "gst_thread_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttimecache.h
+
+(define-function gst_timecache_get_type
+  (c-name "gst_timecache_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_timecache_new
+  (c-name "gst_timecache_new")
+  (return-type "GstTimeCache*")
+)
+
+(define-method get_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_group")
+  (return-type "gint")
+)
+
+(define-method new_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_new_group")
+  (return-type "gint")
+)
+
+(define-method set_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_group")
+  (return-type "gboolean")
+  (parameters
+    '("gint" "groupnum")
+  )
+)
+
+(define-method set_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_certainty")
+  (return-type "none")
+  (parameters
+    '("GstTimeCacheCertainty" "certainty")
+  )
+)
+
+(define-method get_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_certainty")
+  (return-type "GstTimeCacheCertainty")
+)
+
+(define-method add_entry
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint64" "location")
+    '("gint64" "timestamp")
+  )
+)
+
+(define-method find_location
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_location")
+  (return-type "gboolean")
+  (parameters
+    '("guint64" "location")
+    '("gint64*" "timestamp")
+  )
+)
+
+(define-method find_timestamp
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_timestamp")
+  (return-type "gboolean")
+  (parameters
+    '("gint64" "timestamp")
+    '("guint64*" "location")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttrace.h
+
+(define-function gst_trace_new
+  (c-name "gst_trace_new")
+  (return-type "GstTrace*")
+  (parameters
+    '("guchar*" "filename")
+    '("gint" "size")
+  )
+)
+
+(define-method destroy
+  (of-object "GstTrace")
+  (c-name "gst_trace_destroy")
+  (return-type "none")
+)
+
+(define-method flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_flush")
+  (return-type "none")
+)
+
+(define-method text_flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_text_flush")
+  (return-type "none")
+)
+
+(define-method set_default
+  (of-object "GstTrace")
+  (c-name "gst_trace_set_default")
+  (return-type "none")
+)
+
+(define-method _add_entry
+  (of-object "GstTrace")
+  (c-name "_gst_trace_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint32" "seq")
+    '("guint32" "data")
+    '("gchar*" "msg")
+  )
+)
+
+(define-function gst_trace_read_tsc
+  (c-name "gst_trace_read_tsc")
+  (return-type "none")
+  (parameters
+    '("guint64*" "dst")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttype.h
+
+(define-function gst_typefactory_get_type
+  (c-name "gst_typefactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_typefactory_new
+  (c-name "gst_typefactory_new")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("GstTypeDefinition*" "definition")
+  )
+)
+
+(define-function gst_typefactory_find
+  (c-name "gst_typefactory_find")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_typefactory_get_list
+  (c-name "gst_typefactory_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_type_register
+  (c-name "gst_type_register")
+  (return-type "guint16")
+  (parameters
+    '("GstTypeFactory*" "factory")
+  )
+)
+
+(define-function gst_type_find_by_mime
+  (c-name "gst_type_find_by_mime")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-function gst_type_find_by_ext
+  (c-name "gst_type_find_by_ext")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "ext")
+  )
+)
+
+(define-function gst_type_find_by_id
+  (c-name "gst_type_find_by_id")
+  (return-type "GstType*")
+  (parameters
+    '("guint16" "id")
+  )
+)
+
+(define-function gst_type_get_list
+  (c-name "gst_type_get_list")
+  (return-type "GList*")
+)
+
+
+
+;; From /usr/include/gst/gsttypefind.h
+
+(define-function gst_typefind_get_type
+  (c-name "gst_typefind_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gsttypes.h
+
+
+
+;; From /usr/include/gst/gstutils.h
+
+(define-function gst_util_get_int_arg
+  (c-name "gst_util_get_int_arg")
+  (return-type "gint")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_bool_arg
+  (c-name "gst_util_get_bool_arg")
+  (return-type "gboolean")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_long_arg
+  (c-name "gst_util_get_long_arg")
+  (return-type "glong")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_int64_arg
+  (c-name "gst_util_get_int64_arg")
+  (return-type "gint64")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_float_arg
+  (c-name "gst_util_get_float_arg")
+  (return-type "gfloat")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_double_arg
+  (c-name "gst_util_get_double_arg")
+  (return-type "gdouble")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_string_arg
+  (c-name "gst_util_get_string_arg")
+  (return-type "const-gchar*")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_pointer_arg
+  (c-name "gst_util_get_pointer_arg")
+  (return-type "gpointer")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_set_value_from_string
+  (c-name "gst_util_set_value_from_string")
+  (return-type "none")
+  (parameters
+    '("GValue*" "value")
+    '("const-gchar*" "value_str")
+  )
+)
+
+(define-function gst_util_set_object_arg
+  (c-name "gst_util_set_object_arg")
+  (return-type "none")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "name")
+    '("const-gchar*" "value")
+  )
+)
+
+(define-function gst_util_dump_mem
+  (c-name "gst_util_dump_mem")
+  (return-type "none")
+  (parameters
+    '("guchar*" "mem")
+    '("guint" "size")
+  )
+)
+
+(define-function gst_print_pad_caps
+  (c-name "gst_print_pad_caps")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_print_element_args
+  (c-name "gst_print_element_args")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstElement*" "element")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstversion.h
+
+
+
+;; From /usr/include/gst/gstxml.h
+
+(define-function gst_xml_get_type
+  (c-name "gst_xml_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_xml_write
+  (c-name "gst_xml_write")
+  (return-type "xmlDocPtr")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-function gst_xml_write_file
+  (c-name "gst_xml_write_file")
+  (return-type "gint")
+  (parameters
+    '("GstElement*" "element")
+    '("FILE*" "out")
+  )
+)
+
+(define-function gst_xml_new
+  (c-name "gst_xml_new")
+  (return-type "GstXML*")
+)
+
+(define-method parse_doc
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_doc")
+  (return-type "gboolean")
+  (parameters
+    '("xmlDocPtr" "doc")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_file
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_file")
+  (return-type "gboolean")
+  (parameters
+    '("const-guchar*" "fname")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_memory
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_memory")
+  (return-type "gboolean")
+  (parameters
+    '("guchar*" "buffer")
+    '("guint" "size")
+    '("const-gchar*" "root")
+  )
+)
+
+(define-method get_element
+  (of-object "GstXML")
+  (c-name "gst_xml_get_element")
+  (return-type "GstElement*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method get_topelements
+  (of-object "GstXML")
+  (c-name "gst_xml_get_topelements")
+  (return-type "GList*")
+)
+
+(define-function gst_xml_make_element
+  (c-name "gst_xml_make_element")
+  (return-type "GstElement*")
+  (parameters
+    '("xmlNodePtr" "cur")
+    '("GstObject*" "parent")
+  )
+)
+
+
diff --git a/gst/gstreamer.override b/gst/gstreamer.override
new file mode 100644 (file)
index 0000000..4f281a7
--- /dev/null
@@ -0,0 +1,39 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+%%
+headers
+#include <Python.h>
+
+#include "gstreamer-fixes.h"
+
+#include "pygobject.h"
+#include <gst/gst.h>
+
+%%
+import gobject.GObject as PyGObject_Type
+%%
+ignore-glob
+ _*
+ gstreamer_*init
+ *_get_type
+%%
diff --git a/gst/gstreamermodule.c b/gst/gstreamermodule.c
new file mode 100644 (file)
index 0000000..37309cb
--- /dev/null
@@ -0,0 +1,52 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* include this first, before NO_IMPORT_PYGOBJECT is defined */
+#include <pygobject.h>
+
+void pygstreamer_register_classes (PyObject *d);
+void pygstreamer_add_constants(PyObject *module, const gchar *strip_prefix);
+               
+extern PyMethodDef pygstreamer_functions[];
+
+DL_EXPORT(void)
+init_gstreamer (void)
+{
+       PyObject *m, *d;
+
+       init_pygobject ();
+       gst_init(NULL,NULL);
+
+       m = Py_InitModule ("_gstreamer", pygstreamer_functions);
+       d = PyModule_GetDict (m);
+
+       pygstreamer_register_classes (d);
+       pygstreamer_add_constants (m, "GSTREAMER_");
+       
+       if (PyErr_Occurred ()) {
+               Py_FatalError ("can't initialize module gstreamer");
+       }
+}
diff --git a/gst/tmp-enum-types.c b/gst/tmp-enum-types.c
new file mode 100644 (file)
index 0000000..c30653e
--- /dev/null
@@ -0,0 +1,409 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include <gst/gst.h>
+
+/* enumerations from "/usr/include/gst/gstautoplug.h" */
+GType
+gst_autoplug_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_AUTOPLUG_TO_CAPS, "GST_AUTOPLUG_TO_CAPS", "to-caps" },
+      { GST_AUTOPLUG_TO_RENDERER, "GST_AUTOPLUG_TO_RENDERER", "to-renderer" },
+      { GST_AUTOPLUG_FLAG_LAST, "GST_AUTOPLUG_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstAutoplugFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstbin.h" */
+GType
+gst_bin_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_BIN_FLAG_MANAGER, "GST_BIN_FLAG_MANAGER", "flag-manager" },
+      { GST_BIN_SELF_SCHEDULABLE, "GST_BIN_SELF_SCHEDULABLE", "self-schedulable" },
+      { GST_BIN_FLAG_PREFER_COTHREADS, "GST_BIN_FLAG_PREFER_COTHREADS", "flag-prefer-cothreads" },
+      { GST_BIN_FLAG_FIXED_CLOCK, "GST_BIN_FLAG_FIXED_CLOCK", "flag-fixed-clock" },
+      { GST_BIN_FLAG_LAST, "GST_BIN_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstBinFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstbuffer.h" */
+GType
+gst_buffer_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_BUFFER_READONLY, "GST_BUFFER_READONLY", "readonly" },
+      { GST_BUFFER_ORIGINAL, "GST_BUFFER_ORIGINAL", "original" },
+      { GST_BUFFER_DONTFREE, "GST_BUFFER_DONTFREE", "dontfree" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstBufferFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstclock.h" */
+GType
+gst_clock_return_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_CLOCK_STOPPED, "GST_CLOCK_STOPPED", "stopped" },
+      { GST_CLOCK_TIMEOUT, "GST_CLOCK_TIMEOUT", "timeout" },
+      { GST_CLOCK_EARLY, "GST_CLOCK_EARLY", "early" },
+      { GST_CLOCK_ERROR, "GST_CLOCK_ERROR", "error" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstClockReturn", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstcpu.h" */
+GType
+gst_cpu_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GFlagsValue values[] = {
+      { GST_CPU_FLAG_MMX, "GST_CPU_FLAG_MMX", "mmx" },
+      { GST_CPU_FLAG_SSE, "GST_CPU_FLAG_SSE", "sse" },
+      { GST_CPU_FLAG_MMXEXT, "GST_CPU_FLAG_MMXEXT", "mmxext" },
+      { GST_CPU_FLAG_3DNOW, "GST_CPU_FLAG_3DNOW", "3dnow" },
+      { 0, NULL, NULL }
+    };
+    etype = g_flags_register_static ("GstCPUFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstelement.h" */
+GType
+gst_element_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_ELEMENT_COMPLEX, "GST_ELEMENT_COMPLEX", "complex" },
+      { GST_ELEMENT_DECOUPLED, "GST_ELEMENT_DECOUPLED", "decoupled" },
+      { GST_ELEMENT_THREAD_SUGGESTED, "GST_ELEMENT_THREAD_SUGGESTED", "thread-suggested" },
+      { GST_ELEMENT_NO_SEEK, "GST_ELEMENT_NO_SEEK", "no-seek" },
+      { GST_ELEMENT_INFINITE_LOOP, "GST_ELEMENT_INFINITE_LOOP", "infinite-loop" },
+      { GST_ELEMENT_SCHEDULER_PRIVATE1, "GST_ELEMENT_SCHEDULER_PRIVATE1", "scheduler-private1" },
+      { GST_ELEMENT_SCHEDULER_PRIVATE2, "GST_ELEMENT_SCHEDULER_PRIVATE2", "scheduler-private2" },
+      { GST_ELEMENT_NEW_LOOPFUNC, "GST_ELEMENT_NEW_LOOPFUNC", "new-loopfunc" },
+      { GST_ELEMENT_EVENT_AWARE, "GST_ELEMENT_EVENT_AWARE", "event-aware" },
+      { GST_ELEMENT_FLAG_LAST, "GST_ELEMENT_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstElementFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstevent.h" */
+GType
+gst_event_type_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_EVENT_UNKNOWN, "GST_EVENT_UNKNOWN", "unknown" },
+      { GST_EVENT_EOS, "GST_EVENT_EOS", "eos" },
+      { GST_EVENT_FLUSH, "GST_EVENT_FLUSH", "flush" },
+      { GST_EVENT_EMPTY, "GST_EVENT_EMPTY", "empty" },
+      { GST_EVENT_SEEK, "GST_EVENT_SEEK", "seek" },
+      { GST_EVENT_DISCONTINUOUS, "GST_EVENT_DISCONTINUOUS", "discontinuous" },
+      { GST_EVENT_NEW_MEDIA, "GST_EVENT_NEW_MEDIA", "new-media" },
+      { GST_EVENT_INFO, "GST_EVENT_INFO", "info" },
+      { GST_EVENT_ERROR, "GST_EVENT_ERROR", "error" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstEventType", values);
+  }
+  return etype;
+}
+
+GType
+gst_seek_type_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_SEEK_ANY, "GST_SEEK_ANY", "any" },
+      { GST_SEEK_TIMEOFFSET_SET, "GST_SEEK_TIMEOFFSET_SET", "timeoffset-set" },
+      { GST_SEEK_BYTEOFFSET_SET, "GST_SEEK_BYTEOFFSET_SET", "byteoffset-set" },
+      { GST_SEEK_BYTEOFFSET_CUR, "GST_SEEK_BYTEOFFSET_CUR", "byteoffset-cur" },
+      { GST_SEEK_BYTEOFFSET_END, "GST_SEEK_BYTEOFFSET_END", "byteoffset-end" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstSeekType", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstobject.h" */
+GType
+gst_object_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_DESTROYED, "GST_DESTROYED", "destroyed" },
+      { GST_FLOATING, "GST_FLOATING", "floating" },
+      { GST_OBJECT_FLAG_LAST, "GST_OBJECT_FLAG_LAST", "object-flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstObjectFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstpad.h" */
+GType
+gst_region_type_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_REGION_VOID, "GST_REGION_VOID", "void" },
+      { GST_REGION_OFFSET_LEN, "GST_REGION_OFFSET_LEN", "offset-len" },
+      { GST_REGION_TIME_LEN, "GST_REGION_TIME_LEN", "time-len" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstRegionType", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_connect_return_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_CONNECT_REFUSED, "GST_PAD_CONNECT_REFUSED", "refused" },
+      { GST_PAD_CONNECT_OK, "GST_PAD_CONNECT_OK", "ok" },
+      { GST_PAD_CONNECT_DONE, "GST_PAD_CONNECT_DONE", "done" },
+      { GST_PAD_CONNECT_DELAYED, "GST_PAD_CONNECT_DELAYED", "delayed" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadConnectReturn", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_direction_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_UNKNOWN, "GST_PAD_UNKNOWN", "unknown" },
+      { GST_PAD_SRC, "GST_PAD_SRC", "src" },
+      { GST_PAD_SINK, "GST_PAD_SINK", "sink" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadDirection", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_DISABLED, "GST_PAD_DISABLED", "disabled" },
+      { GST_PAD_EOS, "GST_PAD_EOS", "eos" },
+      { GST_PAD_FLAG_LAST, "GST_PAD_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadFlags", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_presence_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_ALWAYS, "GST_PAD_ALWAYS", "always" },
+      { GST_PAD_SOMETIMES, "GST_PAD_SOMETIMES", "sometimes" },
+      { GST_PAD_REQUEST, "GST_PAD_REQUEST", "request" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadPresence", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstparse.h" */
+GType
+gst_parse_errors_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PARSE_ERROR_SYNTAX, "GST_PARSE_ERROR_SYNTAX", "syntax" },
+      { GST_PARSE_ERROR_CREATING_ELEMENT, "GST_PARSE_ERROR_CREATING_ELEMENT", "creating-element" },
+      { GST_PARSE_ERROR_NOSUCH_ELEMENT, "GST_PARSE_ERROR_NOSUCH_ELEMENT", "nosuch-element" },
+      { GST_PARSE_ERROR_INTERNAL, "GST_PARSE_ERROR_INTERNAL", "internal" },
+      { GST_PARSE_ERROR_CONNECT, "GST_PARSE_ERROR_CONNECT", "connect" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstParseErrors", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstprops.h" */
+GType
+gst_props_id_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PROPS_END_ID, "GST_PROPS_END_ID", "end-id" },
+      { GST_PROPS_INT_ID, "GST_PROPS_INT_ID", "int-id" },
+      { GST_PROPS_FLOAT_ID, "GST_PROPS_FLOAT_ID", "float-id" },
+      { GST_PROPS_FOURCC_ID, "GST_PROPS_FOURCC_ID", "fourcc-id" },
+      { GST_PROPS_BOOL_ID, "GST_PROPS_BOOL_ID", "bool-id" },
+      { GST_PROPS_STRING_ID, "GST_PROPS_STRING_ID", "string-id" },
+      { GST_PROPS_VAR_ID, "GST_PROPS_VAR_ID", "var-id" },
+      { GST_PROPS_LIST_ID, "GST_PROPS_LIST_ID", "list-id" },
+      { GST_PROPS_FLOAT_RANGE_ID, "GST_PROPS_FLOAT_RANGE_ID", "float-range-id" },
+      { GST_PROPS_INT_RANGE_ID, "GST_PROPS_INT_RANGE_ID", "int-range-id" },
+      { GST_PROPS_LAST_ID, "GST_PROPS_LAST_ID", "last-id" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPropsId", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstscheduler.h" */
+GType
+gst_scheduler_state_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_SCHEDULER_STATE_NONE, "GST_SCHEDULER_STATE_NONE", "none" },
+      { GST_SCHEDULER_STATE_RUNNING, "GST_SCHEDULER_STATE_RUNNING", "running" },
+      { GST_SCHEDULER_STATE_STOPPED, "GST_SCHEDULER_STATE_STOPPED", "stopped" },
+      { GST_SCHEDULER_STATE_ERROR, "GST_SCHEDULER_STATE_ERROR", "error" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstSchedulerState", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstthread.h" */
+GType
+gst_thread_state_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_THREAD_STATE_STARTED, "GST_THREAD_STATE_STARTED", "state-started" },
+      { GST_THREAD_STATE_SPINNING, "GST_THREAD_STATE_SPINNING", "state-spinning" },
+      { GST_THREAD_STATE_REAPING, "GST_THREAD_STATE_REAPING", "state-reaping" },
+      { GST_THREAD_FLAG_LAST, "GST_THREAD_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstThreadState", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gsttimecache.h" */
+GType
+gst_time_cache_certainty_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_TIMECACHE_UNKNOWN, "GST_TIMECACHE_UNKNOWN", "unknown" },
+      { GST_TIMECACHE_CERTAIN, "GST_TIMECACHE_CERTAIN", "certain" },
+      { GST_TIMECACHE_FUZZY_LOCATION, "GST_TIMECACHE_FUZZY_LOCATION", "fuzzy-location" },
+      { GST_TIMECACHE_FUZZY_TIMESTAMP, "GST_TIMECACHE_FUZZY_TIMESTAMP", "fuzzy-timestamp" },
+      { GST_TIMECACHE_FUZZY, "GST_TIMECACHE_FUZZY", "fuzzy" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstTimeCacheCertainty", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gsttypes.h" */
+GType
+gst_element_state_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GFlagsValue values[] = {
+      { GST_STATE_VOID_PENDING, "GST_STATE_VOID_PENDING", "void-pending" },
+      { GST_STATE_NULL, "GST_STATE_NULL", "null" },
+      { GST_STATE_READY, "GST_STATE_READY", "ready" },
+      { GST_STATE_PAUSED, "GST_STATE_PAUSED", "paused" },
+      { GST_STATE_PLAYING, "GST_STATE_PLAYING", "playing" },
+      { 0, NULL, NULL }
+    };
+    etype = g_flags_register_static ("GstElementState", values);
+  }
+  return etype;
+}
+
+GType
+gst_element_state_return_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_STATE_FAILURE, "GST_STATE_FAILURE", "failure" },
+      { GST_STATE_SUCCESS, "GST_STATE_SUCCESS", "success" },
+      { GST_STATE_ASYNC, "GST_STATE_ASYNC", "async" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstElementStateReturn", values);
+  }
+  return etype;
+}
+
+
+/* Generated data ends here */
+
diff --git a/gst/tmp-enum-types.h b/gst/tmp-enum-types.h
new file mode 100644 (file)
index 0000000..745cb85
--- /dev/null
@@ -0,0 +1,109 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GST_ENUM_TYPES_H__
+#define __GST_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "/usr/include/gst/gstautoplug.h" */
+
+GType gst_autoplug_flags_get_type (void);
+#define GST_TYPE_AUTOPLUG_FLAGS (gst_autoplug_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstbin.h" */
+
+GType gst_bin_flags_get_type (void);
+#define GST_TYPE_BIN_FLAGS (gst_bin_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstbuffer.h" */
+
+GType gst_buffer_flags_get_type (void);
+#define GST_TYPE_BUFFER_FLAGS (gst_buffer_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstclock.h" */
+
+GType gst_clock_return_get_type (void);
+#define GST_TYPE_CLOCK_RETURN (gst_clock_return_get_type())
+
+/* enumerations from "/usr/include/gst/gstcpu.h" */
+
+GType gst_cpu_flags_get_type (void);
+#define GST_TYPE_CPU_FLAGS (gst_cpu_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstelement.h" */
+
+GType gst_element_flags_get_type (void);
+#define GST_TYPE_ELEMENT_FLAGS (gst_element_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstevent.h" */
+
+GType gst_event_type_get_type (void);
+#define GST_TYPE_EVENT_TYPE (gst_event_type_get_type())
+
+GType gst_seek_type_get_type (void);
+#define GST_TYPE_SEEK_TYPE (gst_seek_type_get_type())
+
+/* enumerations from "/usr/include/gst/gstobject.h" */
+
+GType gst_object_flags_get_type (void);
+#define GST_TYPE_OBJECT_FLAGS (gst_object_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstpad.h" */
+
+GType gst_region_type_get_type (void);
+#define GST_TYPE_REGION_TYPE (gst_region_type_get_type())
+
+GType gst_pad_connect_return_get_type (void);
+#define GST_TYPE_PAD_CONNECT_RETURN (gst_pad_connect_return_get_type())
+
+GType gst_pad_direction_get_type (void);
+#define GST_TYPE_PAD_DIRECTION (gst_pad_direction_get_type())
+
+GType gst_pad_flags_get_type (void);
+#define GST_TYPE_PAD_FLAGS (gst_pad_flags_get_type())
+
+GType gst_pad_presence_get_type (void);
+#define GST_TYPE_PAD_PRESENCE (gst_pad_presence_get_type())
+
+/* enumerations from "/usr/include/gst/gstparse.h" */
+
+GType gst_parse_errors_get_type (void);
+#define GST_TYPE_PARSE_ERRORS (gst_parse_errors_get_type())
+
+/* enumerations from "/usr/include/gst/gstprops.h" */
+
+GType gst_props_id_get_type (void);
+#define GST_TYPE_PROPS_ID (gst_props_id_get_type())
+
+/* enumerations from "/usr/include/gst/gstscheduler.h" */
+
+GType gst_scheduler_state_get_type (void);
+#define GST_TYPE_SCHEDULER_STATE (gst_scheduler_state_get_type())
+
+/* enumerations from "/usr/include/gst/gstthread.h" */
+
+GType gst_thread_state_get_type (void);
+#define GST_TYPE_THREAD_STATE (gst_thread_state_get_type())
+
+/* enumerations from "/usr/include/gst/gsttimecache.h" */
+
+GType gst_time_cache_certainty_get_type (void);
+#define GST_TYPE_TIME_CACHE_CERTAINTY (gst_time_cache_certainty_get_type())
+
+/* enumerations from "/usr/include/gst/gsttypes.h" */
+
+GType gst_element_state_get_type (void);
+#define GST_TYPE_ELEMENT_STATE (gst_element_state_get_type())
+
+GType gst_element_state_return_get_type (void);
+#define GST_TYPE_ELEMENT_STATE_RETURN (gst_element_state_return_get_type())
+
+G_END_DECLS
+
+#endif /* __GST_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/gstreamer/.gitignore b/gstreamer/.gitignore
new file mode 100644 (file)
index 0000000..c7d67ae
--- /dev/null
@@ -0,0 +1,9 @@
+Makefile
+Makefile.in
+*.o
+*.lo
+*.la
+*.so
+.libs
+.deps
+gstreamer.c
diff --git a/gstreamer/Makefile.am b/gstreamer/Makefile.am
new file mode 100644 (file)
index 0000000..0f6f0c2
--- /dev/null
@@ -0,0 +1,52 @@
+INCLUDES = $(PYTHON_INCLUDES) $(PYGTK_CFLAGS)
+PYGTK_DEFSDIR = @PYGTK_DEFSDIR@
+
+pygstreamerdir = $(pythondir)/gstreamer
+pygstreamer_PYTHON = __init__.py
+
+pygstreamerexecdir = $(pyexecdir)/gstreamer
+
+# gstreamer binding
+
+pyexec_LTLIBRARIES = _gstreamermodule.la
+_gstreamermodule_la_SOURCES = gstreamermodule.c gstreamer-fixes.c gstreamer-fixes.h
+_gstreamermodule_la_CFLAGS = $(GST_CFLAGS)
+_gstreamermodule_la_LIBADD = $(GST_LIBS)
+_gstreamermodule_la_LDFLAGS = -module -avoid-version -export-symbols-regex initgstreamer
+nodist__gstreamermodule_la_SOURCES = gstreamer.c
+CLEANFILES = gstreamer.c
+EXTRA_DIST = gstreamer.defs gstreamer.override  
+gstreamer.c: gstreamer.defs gstreamer.override
+
+.defs.c:
+       (cd $(srcdir) \
+        && $(PYGTK_CODEGEN) \
+           --load-types $(top_srcdir)/gstreamer/gstreamer-arg-types.py \
+           --override $*.override \
+           --prefix py$* $*.defs) > gen-$*.c \
+       && cp gen-$*.c $*.c \
+       && rm -f gen-$*.c
+
+#          --register $(PYGTK_DEFSDIR)/pango-types.defs \
+#          --register $(PYGTK_DEFSDIR)/gdk-types.defs \
+#          --register $(PYGTK_DEFSDIR)/gtk-types.defs \
+#          --register $(top_srcdir)/bonobo/bonobo-types.defs \
+#          --register $(top_srcdir)/bonobo/bonoboui-types.defs \
+
+# this should go in core
+
+enums:
+       glib-mkenums \
+       --fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
+       --fprod "/* enumerations from \"@filename@\" */\n" \
+       --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
+       --ftail "G_END_DECLS\n\n#endif /* __GST_ENUM_TYPES_H__ */" \
+       /usr/include/gst/*.h > tmp-enum-types.h
+
+       glib-mkenums \
+       --fhead "#include <gst/gst.h>" \
+       --fprod "\n/* enumerations from \"@filename@\" */" \
+       --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
+       --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
+       --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
+       /usr/include/gst/*.h > tmp-enum-types.c
diff --git a/gstreamer/__init__.py b/gstreamer/__init__.py
new file mode 100644 (file)
index 0000000..a0e3ab1
--- /dev/null
@@ -0,0 +1 @@
+from _gstreamer import *
diff --git a/gstreamer/gst.defs b/gstreamer/gst.defs
new file mode 100644 (file)
index 0000000..8e2ff6c
--- /dev/null
@@ -0,0 +1,3459 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object Object
+  (in-module "Gst")
+  (parent "GObject")
+  (c-name "GstObject")
+  (gtype-id "GST_TYPE_OBJECT")
+)
+
+(define-object Element
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstElement")
+  (gtype-id "GST_TYPE_ELEMENT")
+)
+
+(define-object Bin
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstBin")
+  (gtype-id "GST_TYPE_BIN")
+)
+
+(define-object Clock
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstClock")
+  (gtype-id "GST_TYPE_CLOCK")
+)
+
+(define-object Autoplug
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstAutoplug")
+  (gtype-id "GST_TYPE_AUTOPLUG")
+)
+
+(define-object Pad
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPad")
+  (gtype-id "GST_TYPE_PAD")
+)
+
+(define-object GhostPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstGhostPad")
+  (gtype-id "GST_TYPE_GHOST_PAD")
+)
+
+(define-object PadTemplate
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPadTemplate")
+  (gtype-id "GST_TYPE_PAD_TEMPLATE")
+)
+
+(define-object Pipeline
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstPipeline")
+  (gtype-id "GST_TYPE_PIPELINE")
+)
+
+(define-object PluginFeature
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPluginFeature")
+  (gtype-id "GST_TYPE_PLUGIN_FEATURE")
+)
+
+(define-object ElementFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstElementFactory")
+  (gtype-id "GST_TYPE_ELEMENT_FACTORY")
+)
+
+(define-object AutoplugFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstAutoplugFactory")
+  (gtype-id "GST_TYPE_AUTOPLUG_FACTORY")
+)
+
+(define-object Queue
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstQueue")
+  (gtype-id "GST_TYPE_QUEUE")
+)
+
+(define-object RealPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstRealPad")
+  (gtype-id "GST_TYPE_REAL_PAD")
+)
+
+(define-object Scheduler
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstScheduler")
+  (gtype-id "GST_TYPE_SCHEDULER")
+)
+
+(define-object SchedulerFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstSchedulerFactory")
+  (gtype-id "GST_TYPE_SCHEDULER_FACTORY")
+)
+
+(define-object SystemClock
+  (in-module "Gst")
+  (parent "GstClock")
+  (c-name "GstSystemClock")
+  (gtype-id "GST_TYPE_SYSTEM_CLOCK")
+)
+
+(define-object Thread
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstThread")
+  (gtype-id "GST_TYPE_THREAD")
+)
+
+(define-object TimeCache
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstTimeCache")
+  (gtype-id "GST_TYPE_TIME_CACHE")
+)
+
+(define-object TypeFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstTypeFactory")
+  (gtype-id "GST_TYPE_TYPE_FACTORY")
+)
+
+(define-object TypeFind
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstTypeFind")
+  (gtype-id "GST_TYPE_TYPE_FIND")
+)
+
+(define-object XML
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstXML")
+  (gtype-id "GST_TYPE_XML")
+)
+
+;; Enumerations and flags ...
+
+(define-enum AutoplugFlags
+  (in-module "Gst")
+  (c-name "GstAutoplugFlags")
+  (gtype-id "GST_TYPE_AUTOPLUG_FLAGS")
+  (values
+    '("to-caps" "GST_AUTOPLUG_TO_CAPS")
+    '("to-renderer" "GST_AUTOPLUG_TO_RENDERER")
+    '("flag-last" "GST_AUTOPLUG_FLAG_LAST")
+  )
+)
+
+(define-enum BinFlags
+  (in-module "Gst")
+  (c-name "GstBinFlags")
+  (gtype-id "GST_TYPE_BIN_FLAGS")
+  (values
+    '("flag-manager" "GST_BIN_FLAG_MANAGER")
+    '("self-schedulable" "GST_BIN_SELF_SCHEDULABLE")
+    '("flag-prefer-cothreads" "GST_BIN_FLAG_PREFER_COTHREADS")
+    '("flag-fixed-clock" "GST_BIN_FLAG_FIXED_CLOCK")
+    '("flag-last" "GST_BIN_FLAG_LAST")
+  )
+)
+
+(define-enum BufferFlags
+  (in-module "Gst")
+  (c-name "GstBufferFlags")
+  (gtype-id "GST_TYPE_BUFFER_FLAGS")
+  (values
+    '("readonly" "GST_BUFFER_READONLY")
+    '("original" "GST_BUFFER_ORIGINAL")
+    '("dontfree" "GST_BUFFER_DONTFREE")
+  )
+)
+
+(define-enum ClockReturn
+  (in-module "Gst")
+  (c-name "GstClockReturn")
+  (gtype-id "GST_TYPE_CLOCK_RETURN")
+  (values
+    '("stopped" "GST_CLOCK_STOPPED")
+    '("timeout" "GST_CLOCK_TIMEOUT")
+    '("early" "GST_CLOCK_EARLY")
+    '("error" "GST_CLOCK_ERROR")
+  )
+)
+
+(define-flags CPUFlags
+  (in-module "Gst")
+  (c-name "GstCPUFlags")
+  (gtype-id "GST_TYPE_CPU_FLAGS")
+  (values
+    '("mmx" "GST_CPU_FLAG_MMX")
+    '("sse" "GST_CPU_FLAG_SSE")
+    '("mmxext" "GST_CPU_FLAG_MMXEXT")
+    '("3dnow" "GST_CPU_FLAG_3DNOW")
+  )
+)
+
+(define-enum ElementFlags
+  (in-module "Gst")
+  (c-name "GstElementFlags")
+  (gtype-id "GST_TYPE_ELEMENT_FLAGS")
+  (values
+    '("complex" "GST_ELEMENT_COMPLEX")
+    '("decoupled" "GST_ELEMENT_DECOUPLED")
+    '("thread-suggested" "GST_ELEMENT_THREAD_SUGGESTED")
+    '("no-seek" "GST_ELEMENT_NO_SEEK")
+    '("infinite-loop" "GST_ELEMENT_INFINITE_LOOP")
+    '("scheduler-private1" "GST_ELEMENT_SCHEDULER_PRIVATE1")
+    '("scheduler-private2" "GST_ELEMENT_SCHEDULER_PRIVATE2")
+    '("new-loopfunc" "GST_ELEMENT_NEW_LOOPFUNC")
+    '("event-aware" "GST_ELEMENT_EVENT_AWARE")
+    '("flag-last" "GST_ELEMENT_FLAG_LAST")
+  )
+)
+
+(define-enum EventType
+  (in-module "Gst")
+  (c-name "GstEventType")
+  (gtype-id "GST_TYPE_EVENT_TYPE")
+  (values
+    '("unknown" "GST_EVENT_UNKNOWN")
+    '("eos" "GST_EVENT_EOS")
+    '("flush" "GST_EVENT_FLUSH")
+    '("empty" "GST_EVENT_EMPTY")
+    '("seek" "GST_EVENT_SEEK")
+    '("discontinuous" "GST_EVENT_DISCONTINUOUS")
+    '("new-media" "GST_EVENT_NEW_MEDIA")
+    '("info" "GST_EVENT_INFO")
+    '("error" "GST_EVENT_ERROR")
+  )
+)
+
+(define-enum SeekType
+  (in-module "Gst")
+  (c-name "GstSeekType")
+  (gtype-id "GST_TYPE_SEEK_TYPE")
+  (values
+    '("any" "GST_SEEK_ANY")
+    '("timeoffset-set" "GST_SEEK_TIMEOFFSET_SET")
+    '("byteoffset-set" "GST_SEEK_BYTEOFFSET_SET")
+    '("byteoffset-cur" "GST_SEEK_BYTEOFFSET_CUR")
+    '("byteoffset-end" "GST_SEEK_BYTEOFFSET_END")
+  )
+)
+
+(define-enum ObjectFlags
+  (in-module "Gst")
+  (c-name "GstObjectFlags")
+  (gtype-id "GST_TYPE_OBJECT_FLAGS")
+  (values
+    '("destroyed" "GST_DESTROYED")
+    '("floating" "GST_FLOATING")
+    '("object-flag-last" "GST_OBJECT_FLAG_LAST")
+  )
+)
+
+(define-enum RegionType
+  (in-module "Gst")
+  (c-name "GstRegionType")
+  (gtype-id "GST_TYPE_REGION_TYPE")
+  (values
+    '("void" "GST_REGION_VOID")
+    '("offset-len" "GST_REGION_OFFSET_LEN")
+    '("time-len" "GST_REGION_TIME_LEN")
+  )
+)
+
+(define-enum PadConnectReturn
+  (in-module "Gst")
+  (c-name "GstPadConnectReturn")
+  (gtype-id "GST_TYPE_PAD_CONNECT_RETURN")
+  (values
+    '("refused" "GST_PAD_CONNECT_REFUSED")
+    '("ok" "GST_PAD_CONNECT_OK")
+    '("done" "GST_PAD_CONNECT_DONE")
+    '("delayed" "GST_PAD_CONNECT_DELAYED")
+  )
+)
+
+(define-enum PadDirection
+  (in-module "Gst")
+  (c-name "GstPadDirection")
+  (gtype-id "GST_TYPE_PAD_DIRECTION")
+  (values
+    '("unknown" "GST_PAD_UNKNOWN")
+    '("src" "GST_PAD_SRC")
+    '("sink" "GST_PAD_SINK")
+  )
+)
+
+(define-enum PadFlags
+  (in-module "Gst")
+  (c-name "GstPadFlags")
+  (gtype-id "GST_TYPE_PAD_FLAGS")
+  (values
+    '("disabled" "GST_PAD_DISABLED")
+    '("eos" "GST_PAD_EOS")
+    '("flag-last" "GST_PAD_FLAG_LAST")
+  )
+)
+
+(define-enum PadPresence
+  (in-module "Gst")
+  (c-name "GstPadPresence")
+  (gtype-id "GST_TYPE_PAD_PRESENCE")
+  (values
+    '("always" "GST_PAD_ALWAYS")
+    '("sometimes" "GST_PAD_SOMETIMES")
+    '("request" "GST_PAD_REQUEST")
+  )
+)
+
+(define-enum ParseErrors
+  (in-module "Gst")
+  (c-name "GstParseErrors")
+  (gtype-id "GST_TYPE_PARSE_ERRORS")
+  (values
+    '("syntax" "GST_PARSE_ERROR_SYNTAX")
+    '("creating-element" "GST_PARSE_ERROR_CREATING_ELEMENT")
+    '("nosuch-element" "GST_PARSE_ERROR_NOSUCH_ELEMENT")
+    '("internal" "GST_PARSE_ERROR_INTERNAL")
+    '("connect" "GST_PARSE_ERROR_CONNECT")
+  )
+)
+
+(define-enum PropsId
+  (in-module "Gst")
+  (c-name "GstPropsId")
+  (gtype-id "GST_TYPE_PROPS_ID")
+  (values
+    '("end-id" "GST_PROPS_END_ID")
+    '("int-id" "GST_PROPS_INT_ID")
+    '("float-id" "GST_PROPS_FLOAT_ID")
+    '("fourcc-id" "GST_PROPS_FOURCC_ID")
+    '("bool-id" "GST_PROPS_BOOL_ID")
+    '("string-id" "GST_PROPS_STRING_ID")
+    '("var-id" "GST_PROPS_VAR_ID")
+    '("list-id" "GST_PROPS_LIST_ID")
+    '("float-range-id" "GST_PROPS_FLOAT_RANGE_ID")
+    '("int-range-id" "GST_PROPS_INT_RANGE_ID")
+    '("last-id" "GST_PROPS_LAST_ID")
+  )
+)
+
+(define-enum SchedulerState
+  (in-module "Gst")
+  (c-name "GstSchedulerState")
+  (gtype-id "GST_TYPE_SCHEDULER_STATE")
+  (values
+    '("none" "GST_SCHEDULER_STATE_NONE")
+    '("running" "GST_SCHEDULER_STATE_RUNNING")
+    '("stopped" "GST_SCHEDULER_STATE_STOPPED")
+    '("error" "GST_SCHEDULER_STATE_ERROR")
+  )
+)
+
+(define-enum ThreadState
+  (in-module "Gst")
+  (c-name "GstThreadState")
+  (gtype-id "GST_TYPE_THREAD_STATE")
+  (values
+    '("state-started" "GST_THREAD_STATE_STARTED")
+    '("state-spinning" "GST_THREAD_STATE_SPINNING")
+    '("state-reaping" "GST_THREAD_STATE_REAPING")
+    '("flag-last" "GST_THREAD_FLAG_LAST")
+  )
+)
+
+(define-enum TimeCacheCertainty
+  (in-module "Gst")
+  (c-name "GstTimeCacheCertainty")
+  (gtype-id "GST_TYPE_TIME_CACHE_CERTAINTY")
+  (values
+    '("unknown" "GST_TIMECACHE_UNKNOWN")
+    '("certain" "GST_TIMECACHE_CERTAIN")
+    '("fuzzy-location" "GST_TIMECACHE_FUZZY_LOCATION")
+    '("fuzzy-timestamp" "GST_TIMECACHE_FUZZY_TIMESTAMP")
+    '("fuzzy" "GST_TIMECACHE_FUZZY")
+  )
+)
+
+(define-flags ElementState
+  (in-module "Gst")
+  (c-name "GstElementState")
+  (gtype-id "GST_TYPE_ELEMENT_STATE")
+  (values
+    '("void-pending" "GST_STATE_VOID_PENDING")
+    '("null" "GST_STATE_NULL")
+    '("ready" "GST_STATE_READY")
+    '("paused" "GST_STATE_PAUSED")
+    '("playing" "GST_STATE_PLAYING")
+  )
+)
+
+(define-enum ElementStateReturn
+  (in-module "Gst")
+  (c-name "GstElementStateReturn")
+  (gtype-id "GST_TYPE_ELEMENT_STATE_RETURN")
+  (values
+    '("failure" "GST_STATE_FAILURE")
+    '("success" "GST_STATE_SUCCESS")
+    '("async" "GST_STATE_ASYNC")
+  )
+)
+
+
+;; From /usr/include/gst/gst.h
+
+(define-function gst_init_with_popt_table
+  (c-name "gst_init_with_popt_table")
+  (return-type "none")
+  (parameters
+    '("int*" "argc")
+    '("char**[]" "argv")
+    '("const-struct-poptOption*" "popt_options")
+  )
+)
+
+(define-function gst_main
+  (c-name "gst_main")
+  (return-type "none")
+)
+
+(define-function gst_main_quit
+  (c-name "gst_main_quit")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstautoplug.h
+
+(define-function gst_autoplug_get_type
+  (c-name "gst_autoplug_get_type")
+  (return-type "GType")
+)
+
+(define-method signal_new_object
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_signal_new_object")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+  )
+)
+
+(define-method to_caps
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_caps")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstCaps*" "sinkcaps")
+  )
+  (varargs #t)
+)
+
+(define-method to_renderers
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_renderers")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstElement*" "target")
+  )
+  (varargs #t)
+)
+
+(define-function gst_autoplugfactory_get_type
+  (c-name "gst_autoplugfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_autoplugfactory_new
+  (c-name "gst_autoplugfactory_new")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_autoplugfactory_find
+  (c-name "gst_autoplugfactory_find")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_autoplugfactory_get_list
+  (c-name "gst_autoplugfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_create")
+  (return-type "GstAutoplug*")
+)
+
+(define-function gst_autoplugfactory_make
+  (c-name "gst_autoplugfactory_make")
+  (return-type "GstAutoplug*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbin.h
+
+(define-function gst_bin_get_type
+  (c-name "gst_bin_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_bin_new
+  (c-name "gst_bin_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method add
+  (of-object "GstBin")
+  (c-name "gst_bin_add")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method add_many
+  (of-object "GstBin")
+  (c-name "gst_bin_add_many")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element_1")
+  )
+  (varargs #t)
+)
+
+(define-method remove
+  (of-object "GstBin")
+  (c-name "gst_bin_remove")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method get_by_name
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_by_name_recurse_up
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name_recurse_up")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_list
+  (of-object "GstBin")
+  (c-name "gst_bin_get_list")
+  (return-type "GList*")
+)
+
+(define-method set_state_type
+  (of-object "GstBin")
+  (c-name "gst_bin_set_state_type")
+  (return-type "gboolean")
+  (parameters
+    '("GstElementState" "state")
+    '("GType" "type")
+  )
+)
+
+(define-method iterate
+  (of-object "GstBin")
+  (c-name "gst_bin_iterate")
+  (return-type "gboolean")
+)
+
+(define-method use_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_use_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method get_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method auto_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_auto_clock")
+  (return-type "none")
+)
+
+(define-method child_state_change
+  (of-object "GstBin")
+  (c-name "gst_bin_child_state_change")
+  (return-type "none")
+  (parameters
+    '("GstElementState" "oldstate")
+    '("GstElementState" "newstate")
+    '("GstElement*" "child")
+  )
+)
+
+(define-method child_error
+  (of-object "GstBin")
+  (c-name "gst_bin_child_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "child")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbuffer.h
+
+(define-function _gst_buffer_initialize
+  (c-name "_gst_buffer_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_new
+  (c-name "gst_buffer_new")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_buffer_new_from_pool
+  (c-name "gst_buffer_new_from_pool")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBufferPool*" "pool")
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method create_sub
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_create_sub")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method ref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("gint" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_unref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_destroy")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_copy")
+  (return-type "GstBuffer*")
+)
+
+(define-method merge
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_merge")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-method span
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_span")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("GstBuffer*" "buf2")
+    '("guint32" "len")
+  )
+)
+
+(define-method append
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_append")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "append")
+  )
+)
+
+(define-method is_span_fast
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_is_span_fast")
+  (return-type "gboolean")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-function gst_buffer_print_stats
+  (c-name "gst_buffer_print_stats")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstbufferpool.h
+
+(define-function _gst_buffer_pool_initialize
+  (c-name "_gst_buffer_pool_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_new
+  (c-name "gst_buffer_pool_new")
+  (return-type "GstBufferPool*")
+)
+
+(define-method ref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("int" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_unref")
+  (return-type "none")
+)
+
+(define-method set_buffer_new_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_new_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolBufferNewFunction" "create")
+  )
+)
+
+(define-method set_buffer_free_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_free_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferFreeFunc" "destroy")
+  )
+)
+
+(define-method set_buffer_copy_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_copy_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferCopyFunc" "copy")
+  )
+)
+
+(define-method set_destroy_hook
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_destroy_hook")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolDestroyHook" "destroy")
+  )
+)
+
+(define-method set_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_user_data")
+  (return-type "none")
+  (parameters
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method get_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_get_user_data")
+  (return-type "gpointer")
+)
+
+(define-method destroy
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_destroy")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_get_default
+  (c-name "gst_buffer_pool_get_default")
+  (return-type "GstBufferPool*")
+  (parameters
+    '("guint" "buffer_size")
+    '("guint" "pool_size")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstcaps.h
+
+(define-function gst_caps_new
+  (c-name "gst_caps_new")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "mime")
+    '("GstProps*" "props")
+  )
+)
+
+(define-function gst_caps_new_id
+  (c-name "gst_caps_new_id")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-guint16" "id")
+    '("GstProps*" "props")
+  )
+)
+
+(define-method unref
+  (of-object "GstCaps")
+  (c-name "gst_caps_unref")
+  (return-type "GstCaps*")
+)
+
+(define-method ref
+  (of-object "GstCaps")
+  (c-name "gst_caps_ref")
+  (return-type "GstCaps*")
+)
+
+(define-method destroy
+  (of-object "GstCaps")
+  (c-name "gst_caps_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstCaps")
+  (c-name "gst_caps_debug")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "label")
+  )
+)
+
+(define-method copy
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_1
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_1")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_on_write")
+  (return-type "GstCaps*")
+)
+
+(define-method get_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_mime")
+  (return-type "const-gchar*")
+)
+
+(define-method set_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_mime")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-method get_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_type_id")
+  (return-type "guint16")
+)
+
+(define-method set_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_type_id")
+  (return-type "none")
+  (parameters
+    '("guint16" "type_id")
+  )
+)
+
+(define-method set_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_props")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstProps*" "props")
+  )
+)
+
+(define-method get_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_props")
+  (return-type "GstProps*")
+)
+
+(define-method get_by_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method chain
+  (of-object "GstCaps")
+  (c-name "gst_caps_chain")
+  (return-type "GstCaps*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-method append
+  (of-object "GstCaps")
+  (c-name "gst_caps_append")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method prepend
+  (of-object "GstCaps")
+  (c-name "gst_caps_prepend")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstCaps")
+  (c-name "gst_caps_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "tocaps")
+  )
+)
+
+(define-method intersect
+  (of-object "GstCaps")
+  (c-name "gst_caps_intersect")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "caps2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstCaps")
+  (c-name "gst_caps_normalize")
+  (return-type "GstCaps*")
+)
+
+(define-method save_thyself
+  (of-object "GstCaps")
+  (c-name "gst_caps_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_caps_load_thyself
+  (c-name "gst_caps_load_thyself")
+  (return-type "GstCaps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstclock.h
+
+(define-function gst_clock_get_type
+  (c-name "gst_clock_get_type")
+  (return-type "GType")
+)
+
+(define-method set_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_set_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method get_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_get_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method activate
+  (of-object "GstClock")
+  (c-name "gst_clock_activate")
+  (return-type "none")
+  (parameters
+    '("gboolean" "active")
+  )
+)
+
+(define-method is_active
+  (of-object "GstClock")
+  (c-name "gst_clock_is_active")
+  (return-type "gboolean")
+)
+
+(define-method reset
+  (of-object "GstClock")
+  (c-name "gst_clock_reset")
+  (return-type "none")
+)
+
+(define-method set_time
+  (of-object "GstClock")
+  (c-name "gst_clock_set_time")
+  (return-type "none")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method get_time
+  (of-object "GstClock")
+  (c-name "gst_clock_get_time")
+  (return-type "GstClockTime")
+)
+
+(define-method wait
+  (of-object "GstClock")
+  (c-name "gst_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_wait_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "time")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method cancel_wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_cancel_wait_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_notify_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "interval")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method remove_notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_remove_notify_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method set_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_set_resolution")
+  (return-type "none")
+  (parameters
+    '("guint64" "resolution")
+  )
+)
+
+(define-method get_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_get_resolution")
+  (return-type "guint64")
+)
+
+
+
+;; From /usr/include/gst/gstconfig.h
+
+
+
+;; From /usr/include/gst/gstcpu.h
+
+(define-function gst_cpu_get_flags
+  (c-name "gst_cpu_get_flags")
+  (return-type "GstCPUFlags")
+)
+
+
+
+;; From /usr/include/gst/gstdata.h
+
+
+
+;; From /usr/include/gst/gstelement.h
+
+(define-method add_padtemplate
+  (of-object "GstElementClass")
+  (c-name "gst_element_class_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-function gst_element_get_type
+  (c-name "gst_element_get_type")
+  (return-type "GType")
+)
+
+(define-method set_loop_function
+  (of-object "GstElement")
+  (c-name "gst_element_set_loop_function")
+  (return-type "none")
+  (parameters
+    '("GstElementLoopFunction" "loop")
+  )
+)
+
+(define-method set_name
+  (of-object "GstElement")
+  (c-name "gst_element_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstElement")
+  (c-name "gst_element_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstElement")
+  (c-name "gst_element_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method get_clock
+  (of-object "GstElement")
+  (c-name "gst_element_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method set_clock
+  (of-object "GstElement")
+  (c-name "gst_element_set_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method clock_wait
+  (of-object "GstElement")
+  (c-name "gst_element_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClock*" "clock")
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method yield
+  (of-object "GstElement")
+  (c-name "gst_element_yield")
+  (return-type "none")
+)
+
+(define-method interrupt
+  (of-object "GstElement")
+  (c-name "gst_element_interrupt")
+  (return-type "gboolean")
+)
+
+(define-method set_sched
+  (of-object "GstElement")
+  (c-name "gst_element_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstElement")
+  (c-name "gst_element_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method add_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method remove_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method get_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_pad_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_by_name")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method add_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_ghost_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("gchar*" "name")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method request_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_request_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method request_pad_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_request_pad_by_name")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_compatible_pad_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad_filtered")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method connect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstElement")
+  (c-name "gst_element_connect")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method disconnect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect_elements")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_many
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_many")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element_2")
+  )
+  (varargs #t)
+)
+
+(define-method set_eos
+  (of-object "GstElement")
+  (c-name "gst_element_set_eos")
+  (return-type "none")
+)
+
+(define-method send_event
+  (of-object "GstElement")
+  (c-name "gst_element_send_event")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method get_state
+  (of-object "GstElement")
+  (c-name "gst_element_get_state")
+  (return-type "GstElementState")
+)
+
+(define-method set_state
+  (of-object "GstElement")
+  (c-name "gst_element_set_state")
+  (return-type "gint")
+  (parameters
+    '("GstElementState" "state")
+  )
+)
+
+(define-method wait_state_change
+  (of-object "GstElement")
+  (c-name "gst_element_wait_state_change")
+  (return-type "none")
+)
+
+(define-method name
+  (of-object "GstElementState")
+  (c-name "gst_element_statename")
+  (return-type "const-gchar*")
+)
+
+(define-method info
+  (of-object "GstElement")
+  (c-name "gst_element_info")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "info")
+  )
+  (varargs #t)
+)
+
+(define-method error
+  (of-object "GstElement")
+  (c-name "gst_element_error")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "error")
+  )
+  (varargs #t)
+)
+
+(define-method get_factory
+  (of-object "GstElement")
+  (c-name "gst_element_get_factory")
+  (return-type "GstElementFactory*")
+)
+
+(define-function gst_element_install_std_props
+  (c-name "gst_element_install_std_props")
+  (return-type "none")
+  (parameters
+    '("GstElementClass*" "klass")
+    '("const-char*" "first_name")
+  )
+  (varargs #t)
+)
+
+(define-method get_managing_bin
+  (of-object "GstElement")
+  (c-name "gst_element_get_managing_bin")
+  (return-type "GstBin*")
+)
+
+(define-function gst_elementfactory_get_type
+  (c-name "gst_elementfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_elementfactory_new
+  (c-name "gst_elementfactory_new")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GType" "type")
+    '("GstElementDetails*" "details")
+  )
+)
+
+(define-function gst_elementfactory_find
+  (c-name "gst_elementfactory_find")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_get_list
+  (c-name "gst_elementfactory_get_list")
+  (return-type "const-GList*")
+)
+
+(define-method add_padtemplate
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method can_src_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_src_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method can_sink_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_sink_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method create
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_create")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_make
+  (c-name "gst_elementfactory_make")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "factoryname")
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstevent.h
+
+(define-function _gst_event_initialize
+  (c-name "_gst_event_initialize")
+  (return-type "none")
+)
+
+(define-function gst_event_new
+  (c-name "gst_event_new")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstEventType" "type")
+  )
+)
+
+(define-method copy
+  (of-object "GstEvent")
+  (c-name "gst_event_copy")
+  (return-type "GstEvent*")
+)
+
+(define-method free
+  (of-object "GstEvent")
+  (c-name "gst_event_free")
+  (return-type "none")
+)
+
+(define-function gst_event_new_seek
+  (c-name "gst_event_new_seek")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstSeekType" "type")
+    '("gint64" "offset")
+    '("gboolean" "flush")
+  )
+)
+
+(define-function gst_event_new_info
+  (c-name "gst_event_new_info")
+  (return-type "GstEvent*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+
+
+;; From /usr/include/gst/gstextratypes.h
+
+
+
+;; From /usr/include/gst/gstinfo.h
+
+(define-function gst_get_category_name
+  (c-name "gst_get_category_name")
+  (return-type "const-gchar*")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_debug_handler
+  (c-name "gst_default_debug_handler")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+    '("gboolean" "incore")
+    '("const-gchar*" "file")
+    '("const-gchar*" "function")
+    '("gint" "line")
+    '("const-gchar*" "debug_string")
+    '("void*" "element")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_info_get_categories
+  (c-name "gst_info_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_info_enable_category
+  (c-name "gst_info_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_info_disable_category
+  (c-name "gst_info_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_set_categories
+  (c-name "gst_debug_set_categories")
+  (return-type "none")
+  (parameters
+    '("guint32" "categories")
+  )
+)
+
+(define-function gst_debug_get_categories
+  (c-name "gst_debug_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_debug_enable_category
+  (c-name "gst_debug_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_disable_category
+  (c-name "gst_debug_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_error_handler
+  (c-name "gst_default_error_handler")
+  (return-type "none")
+  (parameters
+    '("gchar*" "file")
+    '("gchar*" "function")
+    '("gint" "line")
+    '("gchar*" "debug_string")
+    '("void*" "element")
+    '("void*" "object")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_debug_print_stack_trace
+  (c-name "gst_debug_print_stack_trace")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstlog.h
+
+
+
+;; From /usr/include/gst/gstmarshal.h
+
+
+
+;; From /usr/include/gst/gstobject.h
+
+(define-function gst_object_get_type
+  (c-name "gst_object_get_type")
+  (return-type "GType")
+)
+
+(define-method set_name
+  (of-object "GstObject")
+  (c-name "gst_object_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstObject")
+  (c-name "gst_object_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstObject")
+  (c-name "gst_object_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstObject")
+  (c-name "gst_object_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method unparent
+  (of-object "GstObject")
+  (c-name "gst_object_unparent")
+  (return-type "none")
+)
+
+(define-function gst_object_check_uniqueness
+  (c-name "gst_object_check_uniqueness")
+  (return-type "gboolean")
+  (parameters
+    '("GList*" "list")
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method restore_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_restore_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ref
+  (of-object "GstObject")
+  (c-name "gst_object_ref")
+  (return-type "GstObject*")
+)
+
+(define-method unref
+  (of-object "GstObject")
+  (c-name "gst_object_unref")
+  (return-type "none")
+)
+
+(define-method sink
+  (of-object "GstObject")
+  (c-name "gst_object_sink")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstObject")
+  (c-name "gst_object_destroy")
+  (return-type "none")
+)
+
+(define-method get_path_string
+  (of-object "GstObject")
+  (c-name "gst_object_get_path_string")
+  (return-type "gchar*")
+)
+
+(define-function gst_class_signal_connect
+  (c-name "gst_class_signal_connect")
+  (return-type "guint")
+  (parameters
+    '("GstObjectClass*" "klass")
+    '("const-gchar*" "name")
+    '("gpointer" "func")
+    '("gpointer" "func_data")
+  )
+)
+
+(define-function gst_class_signal_emit_by_name
+  (c-name "gst_class_signal_emit_by_name")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+    '("const-gchar*" "name")
+    '("xmlNodePtr" "self")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpad.h
+
+(define-function gst_real_pad_get_type
+  (c-name "gst_real_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_ghost_pad_get_type
+  (c-name "gst_ghost_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pad_new
+  (c-name "gst_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPadDirection" "direction")
+  )
+)
+
+(define-function gst_pad_new_from_template
+  (c-name "gst_pad_new_from_template")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+    '("gchar*" "name")
+  )
+)
+
+(define-method get_direction
+  (of-object "GstPad")
+  (c-name "gst_pad_get_direction")
+  (return-type "GstPadDirection")
+)
+
+(define-method set_chain_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_chain_function")
+  (return-type "none")
+  (parameters
+    '("GstPadChainFunction" "chain")
+  )
+)
+
+(define-method set_get_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_get_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetFunction" "get")
+  )
+)
+
+(define-method set_event_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_event_function")
+  (return-type "none")
+  (parameters
+    '("GstPadEventFunction" "event")
+  )
+)
+
+(define-method set_getregion_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getregion_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetRegionFunction" "getregion")
+  )
+)
+
+(define-method set_connect_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_connect_function")
+  (return-type "none")
+  (parameters
+    '("GstPadConnectFunction" "connect")
+  )
+)
+
+(define-method set_getcaps_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getcaps_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetCapsFunction" "getcaps")
+  )
+)
+
+(define-method set_bufferpool_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_bufferpool_function")
+  (return-type "none")
+  (parameters
+    '("GstPadBufferPoolFunction" "bufpool")
+  )
+)
+
+(define-method get_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_padtemplate_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method try_set_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_try_set_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstPad")
+  (c-name "gst_pad_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method set_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_set_element_private")
+  (return-type "none")
+  (parameters
+    '("gpointer" "priv")
+  )
+)
+
+(define-method get_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_get_element_private")
+  (return-type "gpointer")
+)
+
+(define-method set_name
+  (of-object "GstPad")
+  (c-name "gst_pad_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPad")
+  (c-name "gst_pad_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_parent")
+  (return-type "GstElement*")
+)
+
+(define-method get_real_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_real_parent")
+  (return-type "GstElement*")
+)
+
+(define-method set_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method unset_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_unset_sched")
+  (return-type "none")
+)
+
+(define-method add_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_add_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method get_ghost_pad_list
+  (of-object "GstPad")
+  (c-name "gst_pad_get_ghost_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate")
+  (return-type "GstPadTemplate*")
+)
+
+(define-method get_peer
+  (of-object "GstPad")
+  (c-name "gst_pad_get_peer")
+  (return-type "GstPad*")
+)
+
+(define-method get_bufferpool
+  (of-object "GstPad")
+  (c-name "gst_pad_get_bufferpool")
+  (return-type "GstBufferPool*")
+)
+
+(define-method can_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method can_connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstPad")
+  (c-name "gst_pad_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstPad")
+  (c-name "gst_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method proxy_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_proxy_connect")
+  (return-type "GstPadConnectReturn")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method perform_negotiate
+  (of-object "GstPad")
+  (c-name "gst_pad_perform_negotiate")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method try_reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_try_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_allowed_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method recalc_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_recalc_allowed_caps")
+  (return-type "gboolean")
+)
+
+(define-method push
+  (of-object "GstPad")
+  (c-name "gst_pad_push")
+  (return-type "none")
+  (parameters
+    '("GstBuffer*" "buf")
+  )
+)
+
+(define-method pullregion
+  (of-object "GstPad")
+  (c-name "gst_pad_pullregion")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstRegionType" "type")
+    '("guint64" "offset")
+    '("guint64" "len")
+  )
+)
+
+(define-method event_default
+  (of-object "GstPad")
+  (c-name "gst_pad_event_default")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method peek
+  (of-object "GstPad")
+  (c-name "gst_pad_peek")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_pad_select
+  (c-name "gst_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method selectv
+  (of-object "GstPad")
+  (c-name "gst_pad_selectv")
+  (return-type "GstPad*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-function gst_pad_load_and_connect
+  (c-name "gst_pad_load_and_connect")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "self")
+    '("GstObject*" "parent")
+  )
+)
+
+(define-function gst_ghost_pad_new
+  (c-name "gst_ghost_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_padtemplate_get_type
+  (c-name "gst_padtemplate_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_padtemplate_new
+  (c-name "gst_padtemplate_new")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("gchar*" "name_template")
+    '("GstPadDirection" "direction")
+    '("GstPadPresence" "presence")
+    '("GstCaps*" "caps")
+  )
+  (varargs #t)
+)
+
+(define-method get_caps
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_caps_by_name
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_padtemplate_load_thyself
+  (c-name "gst_padtemplate_load_thyself")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ghost_save_thyself
+  (of-object "GstPad")
+  (c-name "gst_pad_ghost_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("GstElement*" "bin")
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstparse.h
+
+(define-function gst_parse_launchv
+  (c-name "gst_parse_launchv")
+  (return-type "GstPipeline*")
+  (parameters
+    '("const-gchar**" "argv")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpipeline.h
+
+(define-function gst_pipeline_get_type
+  (c-name "gst_pipeline_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pipeline_new
+  (c-name "gst_pipeline_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstplugin.h
+
+(define-function _gst_plugin_register_static
+  (c-name "_gst_plugin_register_static")
+  (return-type "none")
+  (parameters
+    '("GstPluginDesc*" "desc")
+  )
+)
+
+(define-function gst_plugin_add_path
+  (c-name "gst_plugin_add_path")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "path")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_longname")
+  (return-type "const-gchar*")
+)
+
+(define-method set_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_longname")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "longname")
+  )
+)
+
+(define-method get_filename
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_filename")
+  (return-type "const-gchar*")
+)
+
+(define-method is_loaded
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_is_loaded")
+  (return-type "gboolean")
+)
+
+(define-method get_feature_list
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_feature_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_load_all
+  (c-name "gst_plugin_load_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_unload_all
+  (c-name "gst_plugin_unload_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_load
+  (c-name "gst_plugin_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_load_absolute
+  (c-name "gst_plugin_load_absolute")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_library_load
+  (c-name "gst_library_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method load_plugin
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_load_plugin")
+  (return-type "gboolean")
+)
+
+(define-method add_feature
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_add_feature")
+  (return-type "none")
+  (parameters
+    '("GstPluginFeature*" "feature")
+  )
+)
+
+(define-function gst_plugin_find
+  (c-name "gst_plugin_find")
+  (return-type "GstPlugin*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_get_list
+  (c-name "gst_plugin_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_save_thyself
+  (c-name "gst_plugin_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_plugin_load_thyself
+  (c-name "gst_plugin_load_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpluginfeature.h
+
+(define-function gst_plugin_feature_get_type
+  (c-name "gst_plugin_feature_get_type")
+  (return-type "GType")
+)
+
+(define-method ensure_loaded
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_ensure_loaded")
+  (return-type "gboolean")
+)
+
+(define-method unload_thyself
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_unload_thyself")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstprops.h
+
+(define-function _gst_props_initialize
+  (c-name "_gst_props_initialize")
+  (return-type "none")
+)
+
+(define-function gst_props_new
+  (c-name "gst_props_new")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+(define-function gst_props_newv
+  (c-name "gst_props_newv")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+    '("va_list" "var_args")
+  )
+)
+
+(define-method unref
+  (of-object "GstProps")
+  (c-name "gst_props_unref")
+  (return-type "none")
+)
+
+(define-method ref
+  (of-object "GstProps")
+  (c-name "gst_props_ref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstProps")
+  (c-name "gst_props_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstProps")
+  (c-name "gst_props_debug")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstProps")
+  (c-name "gst_props_copy")
+  (return-type "GstProps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstProps")
+  (c-name "gst_props_copy_on_write")
+  (return-type "GstProps*")
+)
+
+(define-method merge
+  (of-object "GstProps")
+  (c-name "gst_props_merge")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "tomerge")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstProps")
+  (c-name "gst_props_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstProps*" "toprops")
+  )
+)
+
+(define-method intersect
+  (of-object "GstProps")
+  (c-name "gst_props_intersect")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "props2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstProps")
+  (c-name "gst_props_normalize")
+  (return-type "GList*")
+)
+
+(define-method set
+  (of-object "GstProps")
+  (c-name "gst_props_set")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+  (varargs #t)
+)
+
+(define-method has_property
+  (of-object "GstProps")
+  (c-name "gst_props_has_property")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_int")
+  (return-type "gint")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_float
+  (of-object "GstProps")
+  (c-name "gst_props_get_float")
+  (return-type "gfloat")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_fourcc_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_fourcc_int")
+  (return-type "gulong")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_boolean
+  (of-object "GstProps")
+  (c-name "gst_props_get_boolean")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_string
+  (of-object "GstProps")
+  (c-name "gst_props_get_string")
+  (return-type "const-gchar*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstProps")
+  (c-name "gst_props_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_props_load_thyself
+  (c-name "gst_props_load_thyself")
+  (return-type "GstProps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstqueue.h
+
+(define-function gst_queue_get_type
+  (c-name "gst_queue_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gstscheduler.h
+
+(define-function gst_scheduler_get_type
+  (c-name "gst_scheduler_get_type")
+  (return-type "GType")
+)
+
+(define-method setup
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_setup")
+  (return-type "none")
+)
+
+(define-method reset
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_reset")
+  (return-type "none")
+)
+
+(define-method add_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_add_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method remove_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_remove_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method state_transition
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_state_transition")
+  (return-type "GstElementStateReturn")
+  (parameters
+    '("GstElement*" "element")
+    '("gint" "transition")
+  )
+)
+
+(define-method lock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_lock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method unlock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_unlock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method yield
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_yield")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method interrupt
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_interrupt")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method error
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method pad_connect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_connect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_disconnect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_select
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method iterate
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_iterate")
+  (return-type "gboolean")
+)
+
+(define-method show
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_show")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_get_type
+  (c-name "gst_schedulerfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_schedulerfactory_new
+  (c-name "gst_schedulerfactory_new")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_find
+  (c-name "gst_schedulerfactory_find")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_list
+  (c-name "gst_schedulerfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_create")
+  (return-type "GstScheduler*")
+  (parameters
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_make
+  (c-name "gst_schedulerfactory_make")
+  (return-type "GstScheduler*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_set_default_name
+  (c-name "gst_schedulerfactory_set_default_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_default_name
+  (c-name "gst_schedulerfactory_get_default_name")
+  (return-type "const-gchar*")
+)
+
+
+
+;; From /usr/include/gst/gstsystemclock.h
+
+(define-function gst_system_clock_get_type
+  (c-name "gst_system_clock_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_system_clock_obtain
+  (c-name "gst_system_clock_obtain")
+  (return-type "GstClock*")
+)
+
+
+
+;; From /usr/include/gst/gstthread.h
+
+(define-function gst_thread_get_type
+  (c-name "gst_thread_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_thread_new
+  (c-name "gst_thread_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttimecache.h
+
+(define-function gst_timecache_get_type
+  (c-name "gst_timecache_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_timecache_new
+  (c-name "gst_timecache_new")
+  (return-type "GstTimeCache*")
+)
+
+(define-method get_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_group")
+  (return-type "gint")
+)
+
+(define-method new_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_new_group")
+  (return-type "gint")
+)
+
+(define-method set_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_group")
+  (return-type "gboolean")
+  (parameters
+    '("gint" "groupnum")
+  )
+)
+
+(define-method set_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_certainty")
+  (return-type "none")
+  (parameters
+    '("GstTimeCacheCertainty" "certainty")
+  )
+)
+
+(define-method get_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_certainty")
+  (return-type "GstTimeCacheCertainty")
+)
+
+(define-method add_entry
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint64" "location")
+    '("gint64" "timestamp")
+  )
+)
+
+(define-method find_location
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_location")
+  (return-type "gboolean")
+  (parameters
+    '("guint64" "location")
+    '("gint64*" "timestamp")
+  )
+)
+
+(define-method find_timestamp
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_timestamp")
+  (return-type "gboolean")
+  (parameters
+    '("gint64" "timestamp")
+    '("guint64*" "location")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttrace.h
+
+(define-function gst_trace_new
+  (c-name "gst_trace_new")
+  (return-type "GstTrace*")
+  (parameters
+    '("guchar*" "filename")
+    '("gint" "size")
+  )
+)
+
+(define-method destroy
+  (of-object "GstTrace")
+  (c-name "gst_trace_destroy")
+  (return-type "none")
+)
+
+(define-method flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_flush")
+  (return-type "none")
+)
+
+(define-method text_flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_text_flush")
+  (return-type "none")
+)
+
+(define-method set_default
+  (of-object "GstTrace")
+  (c-name "gst_trace_set_default")
+  (return-type "none")
+)
+
+(define-method _add_entry
+  (of-object "GstTrace")
+  (c-name "_gst_trace_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint32" "seq")
+    '("guint32" "data")
+    '("gchar*" "msg")
+  )
+)
+
+(define-function gst_trace_read_tsc
+  (c-name "gst_trace_read_tsc")
+  (return-type "none")
+  (parameters
+    '("guint64*" "dst")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttype.h
+
+(define-function gst_typefactory_get_type
+  (c-name "gst_typefactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_typefactory_new
+  (c-name "gst_typefactory_new")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("GstTypeDefinition*" "definition")
+  )
+)
+
+(define-function gst_typefactory_find
+  (c-name "gst_typefactory_find")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_typefactory_get_list
+  (c-name "gst_typefactory_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_type_register
+  (c-name "gst_type_register")
+  (return-type "guint16")
+  (parameters
+    '("GstTypeFactory*" "factory")
+  )
+)
+
+(define-function gst_type_find_by_mime
+  (c-name "gst_type_find_by_mime")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-function gst_type_find_by_ext
+  (c-name "gst_type_find_by_ext")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "ext")
+  )
+)
+
+(define-function gst_type_find_by_id
+  (c-name "gst_type_find_by_id")
+  (return-type "GstType*")
+  (parameters
+    '("guint16" "id")
+  )
+)
+
+(define-function gst_type_get_list
+  (c-name "gst_type_get_list")
+  (return-type "GList*")
+)
+
+
+
+;; From /usr/include/gst/gsttypefind.h
+
+(define-function gst_typefind_get_type
+  (c-name "gst_typefind_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gsttypes.h
+
+
+
+;; From /usr/include/gst/gstutils.h
+
+(define-function gst_util_get_int_arg
+  (c-name "gst_util_get_int_arg")
+  (return-type "gint")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_bool_arg
+  (c-name "gst_util_get_bool_arg")
+  (return-type "gboolean")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_long_arg
+  (c-name "gst_util_get_long_arg")
+  (return-type "glong")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_int64_arg
+  (c-name "gst_util_get_int64_arg")
+  (return-type "gint64")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_float_arg
+  (c-name "gst_util_get_float_arg")
+  (return-type "gfloat")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_double_arg
+  (c-name "gst_util_get_double_arg")
+  (return-type "gdouble")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_string_arg
+  (c-name "gst_util_get_string_arg")
+  (return-type "const-gchar*")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_pointer_arg
+  (c-name "gst_util_get_pointer_arg")
+  (return-type "gpointer")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_set_value_from_string
+  (c-name "gst_util_set_value_from_string")
+  (return-type "none")
+  (parameters
+    '("GValue*" "value")
+    '("const-gchar*" "value_str")
+  )
+)
+
+(define-function gst_util_set_object_arg
+  (c-name "gst_util_set_object_arg")
+  (return-type "none")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "name")
+    '("const-gchar*" "value")
+  )
+)
+
+(define-function gst_util_dump_mem
+  (c-name "gst_util_dump_mem")
+  (return-type "none")
+  (parameters
+    '("guchar*" "mem")
+    '("guint" "size")
+  )
+)
+
+(define-function gst_print_pad_caps
+  (c-name "gst_print_pad_caps")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_print_element_args
+  (c-name "gst_print_element_args")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstElement*" "element")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstversion.h
+
+
+
+;; From /usr/include/gst/gstxml.h
+
+(define-function gst_xml_get_type
+  (c-name "gst_xml_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_xml_write
+  (c-name "gst_xml_write")
+  (return-type "xmlDocPtr")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-function gst_xml_write_file
+  (c-name "gst_xml_write_file")
+  (return-type "gint")
+  (parameters
+    '("GstElement*" "element")
+    '("FILE*" "out")
+  )
+)
+
+(define-function gst_xml_new
+  (c-name "gst_xml_new")
+  (return-type "GstXML*")
+)
+
+(define-method parse_doc
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_doc")
+  (return-type "gboolean")
+  (parameters
+    '("xmlDocPtr" "doc")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_file
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_file")
+  (return-type "gboolean")
+  (parameters
+    '("const-guchar*" "fname")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_memory
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_memory")
+  (return-type "gboolean")
+  (parameters
+    '("guchar*" "buffer")
+    '("guint" "size")
+    '("const-gchar*" "root")
+  )
+)
+
+(define-method get_element
+  (of-object "GstXML")
+  (c-name "gst_xml_get_element")
+  (return-type "GstElement*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method get_topelements
+  (of-object "GstXML")
+  (c-name "gst_xml_get_topelements")
+  (return-type "GList*")
+)
+
+(define-function gst_xml_make_element
+  (c-name "gst_xml_make_element")
+  (return-type "GstElement*")
+  (parameters
+    '("xmlNodePtr" "cur")
+    '("GstObject*" "parent")
+  )
+)
+
+
diff --git a/gstreamer/gstmodule.c b/gstreamer/gstmodule.c
new file mode 100644 (file)
index 0000000..37309cb
--- /dev/null
@@ -0,0 +1,52 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* include this first, before NO_IMPORT_PYGOBJECT is defined */
+#include <pygobject.h>
+
+void pygstreamer_register_classes (PyObject *d);
+void pygstreamer_add_constants(PyObject *module, const gchar *strip_prefix);
+               
+extern PyMethodDef pygstreamer_functions[];
+
+DL_EXPORT(void)
+init_gstreamer (void)
+{
+       PyObject *m, *d;
+
+       init_pygobject ();
+       gst_init(NULL,NULL);
+
+       m = Py_InitModule ("_gstreamer", pygstreamer_functions);
+       d = PyModule_GetDict (m);
+
+       pygstreamer_register_classes (d);
+       pygstreamer_add_constants (m, "GSTREAMER_");
+       
+       if (PyErr_Occurred ()) {
+               Py_FatalError ("can't initialize module gstreamer");
+       }
+}
diff --git a/gstreamer/gstreamer-arg-types.py b/gstreamer/gstreamer-arg-types.py
new file mode 100644 (file)
index 0000000..15ae898
--- /dev/null
@@ -0,0 +1,4 @@
+import argtypes
+
+#arg = argtypes.PointerArg('GstEvent')
+#argtypes.matcher.register('GstEvent*', arg)
diff --git a/gstreamer/gstreamer-fixes.c b/gstreamer/gstreamer-fixes.c
new file mode 100644 (file)
index 0000000..6a7a94b
--- /dev/null
@@ -0,0 +1,32 @@
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#include <gst/gst.h>
+
+#include "gstreamer-fixes.h"
+
+#define NI fprintf(stderr, "%s not implemented\n", __FUNCTION__);
+
+void gst_clock_set_speed (GstClock *clock, gdouble speed) { NI; }
+void gst_clock_get_speed (GstClock *clock, gdouble speed) { NI; }
+void gst_bin_child_error (GstBin *bin, GstElement *child) { NI; }
+
+#include "tmp-enum-types.c"
diff --git a/gstreamer/gstreamer-fixes.h b/gstreamer/gstreamer-fixes.h
new file mode 100644 (file)
index 0000000..0a9e3ed
--- /dev/null
@@ -0,0 +1,41 @@
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#define GST_PAD_TEMPLATE GST_PADTEMPLATE
+#define GST_TYPE_ELEMENT_FACTORY GST_TYPE_ELEMENTFACTORY
+#define GST_ELEMENT_FACTORY GST_ELEMENTFACTORY
+#define GST_AUTOPLUG_FACTORY GST_AUTOPLUGFACTORY
+#define GST_TYPE_TIME_CACHE GST_TYPE_TIMECACHE
+#define GST_SCHEDULER_FACTORY GST_SCHEDULERFACTORY
+#define GST_TIME_CACHE GST_TIMECACHE
+#define GST_TYPE_FACTORY GST_TYPEFACTORY
+#define GST_TYPE_TYPE_FACTORY GST_TYPE_TYPEFACTORY
+#define GST_TYPE_SCHEDULER_FACTORY GST_TYPE_SCHEDULERFACTORY
+#define GST_TYPE_AUTOPLUG_FACTORY GST_TYPE_AUTOPLUGFACTORY
+#define GST_TYPE_TYPE_FIND GST_TYPE_TYPEFIND
+#define GST_TYPE_PAD_TEMPLATE GST_TYPE_PADTEMPLATE
+
+#include <gst/gstqueue.h>
+#include <gst/gsttypefind.h>
+#include "tmp-enum-types.h"
diff --git a/gstreamer/gstreamer.defs b/gstreamer/gstreamer.defs
new file mode 100644 (file)
index 0000000..8e2ff6c
--- /dev/null
@@ -0,0 +1,3459 @@
+;; -*- scheme -*-
+; object definitions ...
+(define-object Object
+  (in-module "Gst")
+  (parent "GObject")
+  (c-name "GstObject")
+  (gtype-id "GST_TYPE_OBJECT")
+)
+
+(define-object Element
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstElement")
+  (gtype-id "GST_TYPE_ELEMENT")
+)
+
+(define-object Bin
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstBin")
+  (gtype-id "GST_TYPE_BIN")
+)
+
+(define-object Clock
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstClock")
+  (gtype-id "GST_TYPE_CLOCK")
+)
+
+(define-object Autoplug
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstAutoplug")
+  (gtype-id "GST_TYPE_AUTOPLUG")
+)
+
+(define-object Pad
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPad")
+  (gtype-id "GST_TYPE_PAD")
+)
+
+(define-object GhostPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstGhostPad")
+  (gtype-id "GST_TYPE_GHOST_PAD")
+)
+
+(define-object PadTemplate
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPadTemplate")
+  (gtype-id "GST_TYPE_PAD_TEMPLATE")
+)
+
+(define-object Pipeline
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstPipeline")
+  (gtype-id "GST_TYPE_PIPELINE")
+)
+
+(define-object PluginFeature
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstPluginFeature")
+  (gtype-id "GST_TYPE_PLUGIN_FEATURE")
+)
+
+(define-object ElementFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstElementFactory")
+  (gtype-id "GST_TYPE_ELEMENT_FACTORY")
+)
+
+(define-object AutoplugFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstAutoplugFactory")
+  (gtype-id "GST_TYPE_AUTOPLUG_FACTORY")
+)
+
+(define-object Queue
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstQueue")
+  (gtype-id "GST_TYPE_QUEUE")
+)
+
+(define-object RealPad
+  (in-module "Gst")
+  (parent "GstPad")
+  (c-name "GstRealPad")
+  (gtype-id "GST_TYPE_REAL_PAD")
+)
+
+(define-object Scheduler
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstScheduler")
+  (gtype-id "GST_TYPE_SCHEDULER")
+)
+
+(define-object SchedulerFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstSchedulerFactory")
+  (gtype-id "GST_TYPE_SCHEDULER_FACTORY")
+)
+
+(define-object SystemClock
+  (in-module "Gst")
+  (parent "GstClock")
+  (c-name "GstSystemClock")
+  (gtype-id "GST_TYPE_SYSTEM_CLOCK")
+)
+
+(define-object Thread
+  (in-module "Gst")
+  (parent "GstBin")
+  (c-name "GstThread")
+  (gtype-id "GST_TYPE_THREAD")
+)
+
+(define-object TimeCache
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstTimeCache")
+  (gtype-id "GST_TYPE_TIME_CACHE")
+)
+
+(define-object TypeFactory
+  (in-module "Gst")
+  (parent "GstPluginFeature")
+  (c-name "GstTypeFactory")
+  (gtype-id "GST_TYPE_TYPE_FACTORY")
+)
+
+(define-object TypeFind
+  (in-module "Gst")
+  (parent "GstElement")
+  (c-name "GstTypeFind")
+  (gtype-id "GST_TYPE_TYPE_FIND")
+)
+
+(define-object XML
+  (in-module "Gst")
+  (parent "GstObject")
+  (c-name "GstXML")
+  (gtype-id "GST_TYPE_XML")
+)
+
+;; Enumerations and flags ...
+
+(define-enum AutoplugFlags
+  (in-module "Gst")
+  (c-name "GstAutoplugFlags")
+  (gtype-id "GST_TYPE_AUTOPLUG_FLAGS")
+  (values
+    '("to-caps" "GST_AUTOPLUG_TO_CAPS")
+    '("to-renderer" "GST_AUTOPLUG_TO_RENDERER")
+    '("flag-last" "GST_AUTOPLUG_FLAG_LAST")
+  )
+)
+
+(define-enum BinFlags
+  (in-module "Gst")
+  (c-name "GstBinFlags")
+  (gtype-id "GST_TYPE_BIN_FLAGS")
+  (values
+    '("flag-manager" "GST_BIN_FLAG_MANAGER")
+    '("self-schedulable" "GST_BIN_SELF_SCHEDULABLE")
+    '("flag-prefer-cothreads" "GST_BIN_FLAG_PREFER_COTHREADS")
+    '("flag-fixed-clock" "GST_BIN_FLAG_FIXED_CLOCK")
+    '("flag-last" "GST_BIN_FLAG_LAST")
+  )
+)
+
+(define-enum BufferFlags
+  (in-module "Gst")
+  (c-name "GstBufferFlags")
+  (gtype-id "GST_TYPE_BUFFER_FLAGS")
+  (values
+    '("readonly" "GST_BUFFER_READONLY")
+    '("original" "GST_BUFFER_ORIGINAL")
+    '("dontfree" "GST_BUFFER_DONTFREE")
+  )
+)
+
+(define-enum ClockReturn
+  (in-module "Gst")
+  (c-name "GstClockReturn")
+  (gtype-id "GST_TYPE_CLOCK_RETURN")
+  (values
+    '("stopped" "GST_CLOCK_STOPPED")
+    '("timeout" "GST_CLOCK_TIMEOUT")
+    '("early" "GST_CLOCK_EARLY")
+    '("error" "GST_CLOCK_ERROR")
+  )
+)
+
+(define-flags CPUFlags
+  (in-module "Gst")
+  (c-name "GstCPUFlags")
+  (gtype-id "GST_TYPE_CPU_FLAGS")
+  (values
+    '("mmx" "GST_CPU_FLAG_MMX")
+    '("sse" "GST_CPU_FLAG_SSE")
+    '("mmxext" "GST_CPU_FLAG_MMXEXT")
+    '("3dnow" "GST_CPU_FLAG_3DNOW")
+  )
+)
+
+(define-enum ElementFlags
+  (in-module "Gst")
+  (c-name "GstElementFlags")
+  (gtype-id "GST_TYPE_ELEMENT_FLAGS")
+  (values
+    '("complex" "GST_ELEMENT_COMPLEX")
+    '("decoupled" "GST_ELEMENT_DECOUPLED")
+    '("thread-suggested" "GST_ELEMENT_THREAD_SUGGESTED")
+    '("no-seek" "GST_ELEMENT_NO_SEEK")
+    '("infinite-loop" "GST_ELEMENT_INFINITE_LOOP")
+    '("scheduler-private1" "GST_ELEMENT_SCHEDULER_PRIVATE1")
+    '("scheduler-private2" "GST_ELEMENT_SCHEDULER_PRIVATE2")
+    '("new-loopfunc" "GST_ELEMENT_NEW_LOOPFUNC")
+    '("event-aware" "GST_ELEMENT_EVENT_AWARE")
+    '("flag-last" "GST_ELEMENT_FLAG_LAST")
+  )
+)
+
+(define-enum EventType
+  (in-module "Gst")
+  (c-name "GstEventType")
+  (gtype-id "GST_TYPE_EVENT_TYPE")
+  (values
+    '("unknown" "GST_EVENT_UNKNOWN")
+    '("eos" "GST_EVENT_EOS")
+    '("flush" "GST_EVENT_FLUSH")
+    '("empty" "GST_EVENT_EMPTY")
+    '("seek" "GST_EVENT_SEEK")
+    '("discontinuous" "GST_EVENT_DISCONTINUOUS")
+    '("new-media" "GST_EVENT_NEW_MEDIA")
+    '("info" "GST_EVENT_INFO")
+    '("error" "GST_EVENT_ERROR")
+  )
+)
+
+(define-enum SeekType
+  (in-module "Gst")
+  (c-name "GstSeekType")
+  (gtype-id "GST_TYPE_SEEK_TYPE")
+  (values
+    '("any" "GST_SEEK_ANY")
+    '("timeoffset-set" "GST_SEEK_TIMEOFFSET_SET")
+    '("byteoffset-set" "GST_SEEK_BYTEOFFSET_SET")
+    '("byteoffset-cur" "GST_SEEK_BYTEOFFSET_CUR")
+    '("byteoffset-end" "GST_SEEK_BYTEOFFSET_END")
+  )
+)
+
+(define-enum ObjectFlags
+  (in-module "Gst")
+  (c-name "GstObjectFlags")
+  (gtype-id "GST_TYPE_OBJECT_FLAGS")
+  (values
+    '("destroyed" "GST_DESTROYED")
+    '("floating" "GST_FLOATING")
+    '("object-flag-last" "GST_OBJECT_FLAG_LAST")
+  )
+)
+
+(define-enum RegionType
+  (in-module "Gst")
+  (c-name "GstRegionType")
+  (gtype-id "GST_TYPE_REGION_TYPE")
+  (values
+    '("void" "GST_REGION_VOID")
+    '("offset-len" "GST_REGION_OFFSET_LEN")
+    '("time-len" "GST_REGION_TIME_LEN")
+  )
+)
+
+(define-enum PadConnectReturn
+  (in-module "Gst")
+  (c-name "GstPadConnectReturn")
+  (gtype-id "GST_TYPE_PAD_CONNECT_RETURN")
+  (values
+    '("refused" "GST_PAD_CONNECT_REFUSED")
+    '("ok" "GST_PAD_CONNECT_OK")
+    '("done" "GST_PAD_CONNECT_DONE")
+    '("delayed" "GST_PAD_CONNECT_DELAYED")
+  )
+)
+
+(define-enum PadDirection
+  (in-module "Gst")
+  (c-name "GstPadDirection")
+  (gtype-id "GST_TYPE_PAD_DIRECTION")
+  (values
+    '("unknown" "GST_PAD_UNKNOWN")
+    '("src" "GST_PAD_SRC")
+    '("sink" "GST_PAD_SINK")
+  )
+)
+
+(define-enum PadFlags
+  (in-module "Gst")
+  (c-name "GstPadFlags")
+  (gtype-id "GST_TYPE_PAD_FLAGS")
+  (values
+    '("disabled" "GST_PAD_DISABLED")
+    '("eos" "GST_PAD_EOS")
+    '("flag-last" "GST_PAD_FLAG_LAST")
+  )
+)
+
+(define-enum PadPresence
+  (in-module "Gst")
+  (c-name "GstPadPresence")
+  (gtype-id "GST_TYPE_PAD_PRESENCE")
+  (values
+    '("always" "GST_PAD_ALWAYS")
+    '("sometimes" "GST_PAD_SOMETIMES")
+    '("request" "GST_PAD_REQUEST")
+  )
+)
+
+(define-enum ParseErrors
+  (in-module "Gst")
+  (c-name "GstParseErrors")
+  (gtype-id "GST_TYPE_PARSE_ERRORS")
+  (values
+    '("syntax" "GST_PARSE_ERROR_SYNTAX")
+    '("creating-element" "GST_PARSE_ERROR_CREATING_ELEMENT")
+    '("nosuch-element" "GST_PARSE_ERROR_NOSUCH_ELEMENT")
+    '("internal" "GST_PARSE_ERROR_INTERNAL")
+    '("connect" "GST_PARSE_ERROR_CONNECT")
+  )
+)
+
+(define-enum PropsId
+  (in-module "Gst")
+  (c-name "GstPropsId")
+  (gtype-id "GST_TYPE_PROPS_ID")
+  (values
+    '("end-id" "GST_PROPS_END_ID")
+    '("int-id" "GST_PROPS_INT_ID")
+    '("float-id" "GST_PROPS_FLOAT_ID")
+    '("fourcc-id" "GST_PROPS_FOURCC_ID")
+    '("bool-id" "GST_PROPS_BOOL_ID")
+    '("string-id" "GST_PROPS_STRING_ID")
+    '("var-id" "GST_PROPS_VAR_ID")
+    '("list-id" "GST_PROPS_LIST_ID")
+    '("float-range-id" "GST_PROPS_FLOAT_RANGE_ID")
+    '("int-range-id" "GST_PROPS_INT_RANGE_ID")
+    '("last-id" "GST_PROPS_LAST_ID")
+  )
+)
+
+(define-enum SchedulerState
+  (in-module "Gst")
+  (c-name "GstSchedulerState")
+  (gtype-id "GST_TYPE_SCHEDULER_STATE")
+  (values
+    '("none" "GST_SCHEDULER_STATE_NONE")
+    '("running" "GST_SCHEDULER_STATE_RUNNING")
+    '("stopped" "GST_SCHEDULER_STATE_STOPPED")
+    '("error" "GST_SCHEDULER_STATE_ERROR")
+  )
+)
+
+(define-enum ThreadState
+  (in-module "Gst")
+  (c-name "GstThreadState")
+  (gtype-id "GST_TYPE_THREAD_STATE")
+  (values
+    '("state-started" "GST_THREAD_STATE_STARTED")
+    '("state-spinning" "GST_THREAD_STATE_SPINNING")
+    '("state-reaping" "GST_THREAD_STATE_REAPING")
+    '("flag-last" "GST_THREAD_FLAG_LAST")
+  )
+)
+
+(define-enum TimeCacheCertainty
+  (in-module "Gst")
+  (c-name "GstTimeCacheCertainty")
+  (gtype-id "GST_TYPE_TIME_CACHE_CERTAINTY")
+  (values
+    '("unknown" "GST_TIMECACHE_UNKNOWN")
+    '("certain" "GST_TIMECACHE_CERTAIN")
+    '("fuzzy-location" "GST_TIMECACHE_FUZZY_LOCATION")
+    '("fuzzy-timestamp" "GST_TIMECACHE_FUZZY_TIMESTAMP")
+    '("fuzzy" "GST_TIMECACHE_FUZZY")
+  )
+)
+
+(define-flags ElementState
+  (in-module "Gst")
+  (c-name "GstElementState")
+  (gtype-id "GST_TYPE_ELEMENT_STATE")
+  (values
+    '("void-pending" "GST_STATE_VOID_PENDING")
+    '("null" "GST_STATE_NULL")
+    '("ready" "GST_STATE_READY")
+    '("paused" "GST_STATE_PAUSED")
+    '("playing" "GST_STATE_PLAYING")
+  )
+)
+
+(define-enum ElementStateReturn
+  (in-module "Gst")
+  (c-name "GstElementStateReturn")
+  (gtype-id "GST_TYPE_ELEMENT_STATE_RETURN")
+  (values
+    '("failure" "GST_STATE_FAILURE")
+    '("success" "GST_STATE_SUCCESS")
+    '("async" "GST_STATE_ASYNC")
+  )
+)
+
+
+;; From /usr/include/gst/gst.h
+
+(define-function gst_init_with_popt_table
+  (c-name "gst_init_with_popt_table")
+  (return-type "none")
+  (parameters
+    '("int*" "argc")
+    '("char**[]" "argv")
+    '("const-struct-poptOption*" "popt_options")
+  )
+)
+
+(define-function gst_main
+  (c-name "gst_main")
+  (return-type "none")
+)
+
+(define-function gst_main_quit
+  (c-name "gst_main_quit")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstautoplug.h
+
+(define-function gst_autoplug_get_type
+  (c-name "gst_autoplug_get_type")
+  (return-type "GType")
+)
+
+(define-method signal_new_object
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_signal_new_object")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+  )
+)
+
+(define-method to_caps
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_caps")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstCaps*" "sinkcaps")
+  )
+  (varargs #t)
+)
+
+(define-method to_renderers
+  (of-object "GstAutoplug")
+  (c-name "gst_autoplug_to_renderers")
+  (return-type "GstElement*")
+  (parameters
+    '("GstCaps*" "srccaps")
+    '("GstElement*" "target")
+  )
+  (varargs #t)
+)
+
+(define-function gst_autoplugfactory_get_type
+  (c-name "gst_autoplugfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_autoplugfactory_new
+  (c-name "gst_autoplugfactory_new")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_autoplugfactory_find
+  (c-name "gst_autoplugfactory_find")
+  (return-type "GstAutoplugFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_autoplugfactory_get_list
+  (c-name "gst_autoplugfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstAutoplugFactory")
+  (c-name "gst_autoplugfactory_create")
+  (return-type "GstAutoplug*")
+)
+
+(define-function gst_autoplugfactory_make
+  (c-name "gst_autoplugfactory_make")
+  (return-type "GstAutoplug*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbin.h
+
+(define-function gst_bin_get_type
+  (c-name "gst_bin_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_bin_new
+  (c-name "gst_bin_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method add
+  (of-object "GstBin")
+  (c-name "gst_bin_add")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method add_many
+  (of-object "GstBin")
+  (c-name "gst_bin_add_many")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element_1")
+  )
+  (varargs #t)
+)
+
+(define-method remove
+  (of-object "GstBin")
+  (c-name "gst_bin_remove")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method get_by_name
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_by_name_recurse_up
+  (of-object "GstBin")
+  (c-name "gst_bin_get_by_name_recurse_up")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_list
+  (of-object "GstBin")
+  (c-name "gst_bin_get_list")
+  (return-type "GList*")
+)
+
+(define-method set_state_type
+  (of-object "GstBin")
+  (c-name "gst_bin_set_state_type")
+  (return-type "gboolean")
+  (parameters
+    '("GstElementState" "state")
+    '("GType" "type")
+  )
+)
+
+(define-method iterate
+  (of-object "GstBin")
+  (c-name "gst_bin_iterate")
+  (return-type "gboolean")
+)
+
+(define-method use_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_use_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method get_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method auto_clock
+  (of-object "GstBin")
+  (c-name "gst_bin_auto_clock")
+  (return-type "none")
+)
+
+(define-method child_state_change
+  (of-object "GstBin")
+  (c-name "gst_bin_child_state_change")
+  (return-type "none")
+  (parameters
+    '("GstElementState" "oldstate")
+    '("GstElementState" "newstate")
+    '("GstElement*" "child")
+  )
+)
+
+(define-method child_error
+  (of-object "GstBin")
+  (c-name "gst_bin_child_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "child")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstbuffer.h
+
+(define-function _gst_buffer_initialize
+  (c-name "_gst_buffer_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_new
+  (c-name "gst_buffer_new")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_buffer_new_from_pool
+  (c-name "gst_buffer_new_from_pool")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBufferPool*" "pool")
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method create_sub
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_create_sub")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("guint32" "size")
+  )
+)
+
+(define-method ref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("gint" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_unref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_destroy")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_copy")
+  (return-type "GstBuffer*")
+)
+
+(define-method merge
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_merge")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-method span
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_span")
+  (return-type "GstBuffer*")
+  (parameters
+    '("guint32" "offset")
+    '("GstBuffer*" "buf2")
+    '("guint32" "len")
+  )
+)
+
+(define-method append
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_append")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstBuffer*" "append")
+  )
+)
+
+(define-method is_span_fast
+  (of-object "GstBuffer")
+  (c-name "gst_buffer_is_span_fast")
+  (return-type "gboolean")
+  (parameters
+    '("GstBuffer*" "buf2")
+  )
+)
+
+(define-function gst_buffer_print_stats
+  (c-name "gst_buffer_print_stats")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstbufferpool.h
+
+(define-function _gst_buffer_pool_initialize
+  (c-name "_gst_buffer_pool_initialize")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_new
+  (c-name "gst_buffer_pool_new")
+  (return-type "GstBufferPool*")
+)
+
+(define-method ref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref")
+  (return-type "none")
+)
+
+(define-method ref_by_count
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_ref_by_count")
+  (return-type "none")
+  (parameters
+    '("int" "count")
+  )
+)
+
+(define-method unref
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_unref")
+  (return-type "none")
+)
+
+(define-method set_buffer_new_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_new_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolBufferNewFunction" "create")
+  )
+)
+
+(define-method set_buffer_free_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_free_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferFreeFunc" "destroy")
+  )
+)
+
+(define-method set_buffer_copy_function
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_buffer_copy_function")
+  (return-type "none")
+  (parameters
+    '("GstBufferCopyFunc" "copy")
+  )
+)
+
+(define-method set_destroy_hook
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_destroy_hook")
+  (return-type "none")
+  (parameters
+    '("GstBufferPoolDestroyHook" "destroy")
+  )
+)
+
+(define-method set_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_set_user_data")
+  (return-type "none")
+  (parameters
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method get_user_data
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_get_user_data")
+  (return-type "gpointer")
+)
+
+(define-method destroy
+  (of-object "GstBufferPool")
+  (c-name "gst_buffer_pool_destroy")
+  (return-type "none")
+)
+
+(define-function gst_buffer_pool_get_default
+  (c-name "gst_buffer_pool_get_default")
+  (return-type "GstBufferPool*")
+  (parameters
+    '("guint" "buffer_size")
+    '("guint" "pool_size")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstcaps.h
+
+(define-function gst_caps_new
+  (c-name "gst_caps_new")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "mime")
+    '("GstProps*" "props")
+  )
+)
+
+(define-function gst_caps_new_id
+  (c-name "gst_caps_new_id")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-guint16" "id")
+    '("GstProps*" "props")
+  )
+)
+
+(define-method unref
+  (of-object "GstCaps")
+  (c-name "gst_caps_unref")
+  (return-type "GstCaps*")
+)
+
+(define-method ref
+  (of-object "GstCaps")
+  (c-name "gst_caps_ref")
+  (return-type "GstCaps*")
+)
+
+(define-method destroy
+  (of-object "GstCaps")
+  (c-name "gst_caps_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstCaps")
+  (c-name "gst_caps_debug")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "label")
+  )
+)
+
+(define-method copy
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_1
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_1")
+  (return-type "GstCaps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstCaps")
+  (c-name "gst_caps_copy_on_write")
+  (return-type "GstCaps*")
+)
+
+(define-method get_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_mime")
+  (return-type "const-gchar*")
+)
+
+(define-method set_mime
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_mime")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-method get_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_type_id")
+  (return-type "guint16")
+)
+
+(define-method set_type_id
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_type_id")
+  (return-type "none")
+  (parameters
+    '("guint16" "type_id")
+  )
+)
+
+(define-method set_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_set_props")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstProps*" "props")
+  )
+)
+
+(define-method get_props
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_props")
+  (return-type "GstProps*")
+)
+
+(define-method get_by_name
+  (of-object "GstCaps")
+  (c-name "gst_caps_get_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method chain
+  (of-object "GstCaps")
+  (c-name "gst_caps_chain")
+  (return-type "GstCaps*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-method append
+  (of-object "GstCaps")
+  (c-name "gst_caps_append")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method prepend
+  (of-object "GstCaps")
+  (c-name "gst_caps_prepend")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "capstoadd")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstCaps")
+  (c-name "gst_caps_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "tocaps")
+  )
+)
+
+(define-method intersect
+  (of-object "GstCaps")
+  (c-name "gst_caps_intersect")
+  (return-type "GstCaps*")
+  (parameters
+    '("GstCaps*" "caps2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstCaps")
+  (c-name "gst_caps_normalize")
+  (return-type "GstCaps*")
+)
+
+(define-method save_thyself
+  (of-object "GstCaps")
+  (c-name "gst_caps_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_caps_load_thyself
+  (c-name "gst_caps_load_thyself")
+  (return-type "GstCaps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstclock.h
+
+(define-function gst_clock_get_type
+  (c-name "gst_clock_get_type")
+  (return-type "GType")
+)
+
+(define-method set_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_set_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method get_speed
+  (of-object "GstClock")
+  (c-name "gst_clock_get_speed")
+  (return-type "none")
+  (parameters
+    '("gdouble" "speed")
+  )
+)
+
+(define-method activate
+  (of-object "GstClock")
+  (c-name "gst_clock_activate")
+  (return-type "none")
+  (parameters
+    '("gboolean" "active")
+  )
+)
+
+(define-method is_active
+  (of-object "GstClock")
+  (c-name "gst_clock_is_active")
+  (return-type "gboolean")
+)
+
+(define-method reset
+  (of-object "GstClock")
+  (c-name "gst_clock_reset")
+  (return-type "none")
+)
+
+(define-method set_time
+  (of-object "GstClock")
+  (c-name "gst_clock_set_time")
+  (return-type "none")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method get_time
+  (of-object "GstClock")
+  (c-name "gst_clock_get_time")
+  (return-type "GstClockTime")
+)
+
+(define-method wait
+  (of-object "GstClock")
+  (c-name "gst_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_wait_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "time")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method cancel_wait_async
+  (of-object "GstClock")
+  (c-name "gst_clock_cancel_wait_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_notify_async")
+  (return-type "GstClockID")
+  (parameters
+    '("GstClockTime" "interval")
+    '("GstClockCallback" "func")
+    '("gpointer" "user_data")
+  )
+)
+
+(define-method remove_notify_async
+  (of-object "GstClock")
+  (c-name "gst_clock_remove_notify_async")
+  (return-type "none")
+  (parameters
+    '("GstClockID" "id")
+  )
+)
+
+(define-method set_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_set_resolution")
+  (return-type "none")
+  (parameters
+    '("guint64" "resolution")
+  )
+)
+
+(define-method get_resolution
+  (of-object "GstClock")
+  (c-name "gst_clock_get_resolution")
+  (return-type "guint64")
+)
+
+
+
+;; From /usr/include/gst/gstconfig.h
+
+
+
+;; From /usr/include/gst/gstcpu.h
+
+(define-function gst_cpu_get_flags
+  (c-name "gst_cpu_get_flags")
+  (return-type "GstCPUFlags")
+)
+
+
+
+;; From /usr/include/gst/gstdata.h
+
+
+
+;; From /usr/include/gst/gstelement.h
+
+(define-method add_padtemplate
+  (of-object "GstElementClass")
+  (c-name "gst_element_class_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-function gst_element_get_type
+  (c-name "gst_element_get_type")
+  (return-type "GType")
+)
+
+(define-method set_loop_function
+  (of-object "GstElement")
+  (c-name "gst_element_set_loop_function")
+  (return-type "none")
+  (parameters
+    '("GstElementLoopFunction" "loop")
+  )
+)
+
+(define-method set_name
+  (of-object "GstElement")
+  (c-name "gst_element_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstElement")
+  (c-name "gst_element_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstElement")
+  (c-name "gst_element_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method get_clock
+  (of-object "GstElement")
+  (c-name "gst_element_get_clock")
+  (return-type "GstClock*")
+)
+
+(define-method set_clock
+  (of-object "GstElement")
+  (c-name "gst_element_set_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock*" "clock")
+  )
+)
+
+(define-method clock_wait
+  (of-object "GstElement")
+  (c-name "gst_element_clock_wait")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClock*" "clock")
+    '("GstClockTime" "time")
+  )
+)
+
+(define-method yield
+  (of-object "GstElement")
+  (c-name "gst_element_yield")
+  (return-type "none")
+)
+
+(define-method interrupt
+  (of-object "GstElement")
+  (c-name "gst_element_interrupt")
+  (return-type "gboolean")
+)
+
+(define-method set_sched
+  (of-object "GstElement")
+  (c-name "gst_element_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstElement")
+  (c-name "gst_element_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method add_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method remove_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method get_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_pad_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_list
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_get_padtemplate_by_name")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method add_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_add_ghost_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("gchar*" "name")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstElement")
+  (c-name "gst_element_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method request_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_request_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method request_pad_by_name
+  (of-object "GstElement")
+  (c-name "gst_element_request_pad_by_name")
+  (return-type "GstPad*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_compatible_pad_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad_filtered")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_compatible_pad
+  (of-object "GstElement")
+  (c-name "gst_element_get_compatible_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPad*" "pad")
+  )
+)
+
+(define-method connect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "dest")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstElement")
+  (c-name "gst_element_connect")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstElement")
+  (c-name "gst_element_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "srcpadname")
+    '("GstElement*" "dest")
+    '("const-gchar*" "destpadname")
+  )
+)
+
+(define-method disconnect_elements
+  (of-object "GstElement")
+  (c-name "gst_element_disconnect_elements")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "dest")
+  )
+)
+
+(define-method connect_elements_many
+  (of-object "GstElement")
+  (c-name "gst_element_connect_elements_many")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element_2")
+  )
+  (varargs #t)
+)
+
+(define-method set_eos
+  (of-object "GstElement")
+  (c-name "gst_element_set_eos")
+  (return-type "none")
+)
+
+(define-method send_event
+  (of-object "GstElement")
+  (c-name "gst_element_send_event")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method get_state
+  (of-object "GstElement")
+  (c-name "gst_element_get_state")
+  (return-type "GstElementState")
+)
+
+(define-method set_state
+  (of-object "GstElement")
+  (c-name "gst_element_set_state")
+  (return-type "gint")
+  (parameters
+    '("GstElementState" "state")
+  )
+)
+
+(define-method wait_state_change
+  (of-object "GstElement")
+  (c-name "gst_element_wait_state_change")
+  (return-type "none")
+)
+
+(define-method name
+  (of-object "GstElementState")
+  (c-name "gst_element_statename")
+  (return-type "const-gchar*")
+)
+
+(define-method info
+  (of-object "GstElement")
+  (c-name "gst_element_info")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "info")
+  )
+  (varargs #t)
+)
+
+(define-method error
+  (of-object "GstElement")
+  (c-name "gst_element_error")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "error")
+  )
+  (varargs #t)
+)
+
+(define-method get_factory
+  (of-object "GstElement")
+  (c-name "gst_element_get_factory")
+  (return-type "GstElementFactory*")
+)
+
+(define-function gst_element_install_std_props
+  (c-name "gst_element_install_std_props")
+  (return-type "none")
+  (parameters
+    '("GstElementClass*" "klass")
+    '("const-char*" "first_name")
+  )
+  (varargs #t)
+)
+
+(define-method get_managing_bin
+  (of-object "GstElement")
+  (c-name "gst_element_get_managing_bin")
+  (return-type "GstBin*")
+)
+
+(define-function gst_elementfactory_get_type
+  (c-name "gst_elementfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_elementfactory_new
+  (c-name "gst_elementfactory_new")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GType" "type")
+    '("GstElementDetails*" "details")
+  )
+)
+
+(define-function gst_elementfactory_find
+  (c-name "gst_elementfactory_find")
+  (return-type "GstElementFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_get_list
+  (c-name "gst_elementfactory_get_list")
+  (return-type "const-GList*")
+)
+
+(define-method add_padtemplate
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_add_padtemplate")
+  (return-type "none")
+  (parameters
+    '("GstPadTemplate*" "templ")
+  )
+)
+
+(define-method can_src_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_src_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method can_sink_caps
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_can_sink_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method create
+  (of-object "GstElementFactory")
+  (c-name "gst_elementfactory_create")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_elementfactory_make
+  (c-name "gst_elementfactory_make")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "factoryname")
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstevent.h
+
+(define-function _gst_event_initialize
+  (c-name "_gst_event_initialize")
+  (return-type "none")
+)
+
+(define-function gst_event_new
+  (c-name "gst_event_new")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstEventType" "type")
+  )
+)
+
+(define-method copy
+  (of-object "GstEvent")
+  (c-name "gst_event_copy")
+  (return-type "GstEvent*")
+)
+
+(define-method free
+  (of-object "GstEvent")
+  (c-name "gst_event_free")
+  (return-type "none")
+)
+
+(define-function gst_event_new_seek
+  (c-name "gst_event_new_seek")
+  (return-type "GstEvent*")
+  (parameters
+    '("GstSeekType" "type")
+    '("gint64" "offset")
+    '("gboolean" "flush")
+  )
+)
+
+(define-function gst_event_new_info
+  (c-name "gst_event_new_info")
+  (return-type "GstEvent*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+
+
+;; From /usr/include/gst/gstextratypes.h
+
+
+
+;; From /usr/include/gst/gstinfo.h
+
+(define-function gst_get_category_name
+  (c-name "gst_get_category_name")
+  (return-type "const-gchar*")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_debug_handler
+  (c-name "gst_default_debug_handler")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+    '("gboolean" "incore")
+    '("const-gchar*" "file")
+    '("const-gchar*" "function")
+    '("gint" "line")
+    '("const-gchar*" "debug_string")
+    '("void*" "element")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_info_get_categories
+  (c-name "gst_info_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_info_enable_category
+  (c-name "gst_info_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_info_disable_category
+  (c-name "gst_info_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_set_categories
+  (c-name "gst_debug_set_categories")
+  (return-type "none")
+  (parameters
+    '("guint32" "categories")
+  )
+)
+
+(define-function gst_debug_get_categories
+  (c-name "gst_debug_get_categories")
+  (return-type "guint32")
+)
+
+(define-function gst_debug_enable_category
+  (c-name "gst_debug_enable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_debug_disable_category
+  (c-name "gst_debug_disable_category")
+  (return-type "none")
+  (parameters
+    '("gint" "category")
+  )
+)
+
+(define-function gst_default_error_handler
+  (c-name "gst_default_error_handler")
+  (return-type "none")
+  (parameters
+    '("gchar*" "file")
+    '("gchar*" "function")
+    '("gint" "line")
+    '("gchar*" "debug_string")
+    '("void*" "element")
+    '("void*" "object")
+    '("gchar*" "string")
+  )
+)
+
+(define-function gst_debug_print_stack_trace
+  (c-name "gst_debug_print_stack_trace")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstlog.h
+
+
+
+;; From /usr/include/gst/gstmarshal.h
+
+
+
+;; From /usr/include/gst/gstobject.h
+
+(define-function gst_object_get_type
+  (c-name "gst_object_get_type")
+  (return-type "GType")
+)
+
+(define-method set_name
+  (of-object "GstObject")
+  (c-name "gst_object_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstObject")
+  (c-name "gst_object_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstObject")
+  (c-name "gst_object_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstObject")
+  (c-name "gst_object_get_parent")
+  (return-type "GstObject*")
+)
+
+(define-method unparent
+  (of-object "GstObject")
+  (c-name "gst_object_unparent")
+  (return-type "none")
+)
+
+(define-function gst_object_check_uniqueness
+  (c-name "gst_object_check_uniqueness")
+  (return-type "gboolean")
+  (parameters
+    '("GList*" "list")
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method restore_thyself
+  (of-object "GstObject")
+  (c-name "gst_object_restore_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ref
+  (of-object "GstObject")
+  (c-name "gst_object_ref")
+  (return-type "GstObject*")
+)
+
+(define-method unref
+  (of-object "GstObject")
+  (c-name "gst_object_unref")
+  (return-type "none")
+)
+
+(define-method sink
+  (of-object "GstObject")
+  (c-name "gst_object_sink")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstObject")
+  (c-name "gst_object_destroy")
+  (return-type "none")
+)
+
+(define-method get_path_string
+  (of-object "GstObject")
+  (c-name "gst_object_get_path_string")
+  (return-type "gchar*")
+)
+
+(define-function gst_class_signal_connect
+  (c-name "gst_class_signal_connect")
+  (return-type "guint")
+  (parameters
+    '("GstObjectClass*" "klass")
+    '("const-gchar*" "name")
+    '("gpointer" "func")
+    '("gpointer" "func_data")
+  )
+)
+
+(define-function gst_class_signal_emit_by_name
+  (c-name "gst_class_signal_emit_by_name")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "object")
+    '("const-gchar*" "name")
+    '("xmlNodePtr" "self")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpad.h
+
+(define-function gst_real_pad_get_type
+  (c-name "gst_real_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_ghost_pad_get_type
+  (c-name "gst_ghost_pad_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pad_new
+  (c-name "gst_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPadDirection" "direction")
+  )
+)
+
+(define-function gst_pad_new_from_template
+  (c-name "gst_pad_new_from_template")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadTemplate*" "templ")
+    '("gchar*" "name")
+  )
+)
+
+(define-method get_direction
+  (of-object "GstPad")
+  (c-name "gst_pad_get_direction")
+  (return-type "GstPadDirection")
+)
+
+(define-method set_chain_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_chain_function")
+  (return-type "none")
+  (parameters
+    '("GstPadChainFunction" "chain")
+  )
+)
+
+(define-method set_get_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_get_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetFunction" "get")
+  )
+)
+
+(define-method set_event_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_event_function")
+  (return-type "none")
+  (parameters
+    '("GstPadEventFunction" "event")
+  )
+)
+
+(define-method set_getregion_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getregion_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetRegionFunction" "getregion")
+  )
+)
+
+(define-method set_connect_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_connect_function")
+  (return-type "none")
+  (parameters
+    '("GstPadConnectFunction" "connect")
+  )
+)
+
+(define-method set_getcaps_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_getcaps_function")
+  (return-type "none")
+  (parameters
+    '("GstPadGetCapsFunction" "getcaps")
+  )
+)
+
+(define-method set_bufferpool_function
+  (of-object "GstPad")
+  (c-name "gst_pad_set_bufferpool_function")
+  (return-type "none")
+  (parameters
+    '("GstPadBufferPoolFunction" "bufpool")
+  )
+)
+
+(define-method get_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_padtemplate_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method try_set_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_try_set_caps")
+  (return-type "gboolean")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstPad")
+  (c-name "gst_pad_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method set_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_set_element_private")
+  (return-type "none")
+  (parameters
+    '("gpointer" "priv")
+  )
+)
+
+(define-method get_element_private
+  (of-object "GstPad")
+  (c-name "gst_pad_get_element_private")
+  (return-type "gpointer")
+)
+
+(define-method set_name
+  (of-object "GstPad")
+  (c-name "gst_pad_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPad")
+  (c-name "gst_pad_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_set_parent")
+  (return-type "none")
+  (parameters
+    '("GstObject*" "parent")
+  )
+)
+
+(define-method get_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_parent")
+  (return-type "GstElement*")
+)
+
+(define-method get_real_parent
+  (of-object "GstPad")
+  (c-name "gst_pad_get_real_parent")
+  (return-type "GstElement*")
+)
+
+(define-method set_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_set_sched")
+  (return-type "none")
+  (parameters
+    '("GstScheduler*" "sched")
+  )
+)
+
+(define-method get_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_get_sched")
+  (return-type "GstScheduler*")
+)
+
+(define-method unset_sched
+  (of-object "GstPad")
+  (c-name "gst_pad_unset_sched")
+  (return-type "none")
+)
+
+(define-method add_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_add_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method remove_ghost_pad
+  (of-object "GstPad")
+  (c-name "gst_pad_remove_ghost_pad")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "ghostpad")
+  )
+)
+
+(define-method get_ghost_pad_list
+  (of-object "GstPad")
+  (c-name "gst_pad_get_ghost_pad_list")
+  (return-type "GList*")
+)
+
+(define-method get_padtemplate
+  (of-object "GstPad")
+  (c-name "gst_pad_get_padtemplate")
+  (return-type "GstPadTemplate*")
+)
+
+(define-method get_peer
+  (of-object "GstPad")
+  (c-name "gst_pad_get_peer")
+  (return-type "GstPad*")
+)
+
+(define-method get_bufferpool
+  (of-object "GstPad")
+  (c-name "gst_pad_get_bufferpool")
+  (return-type "GstBufferPool*")
+)
+
+(define-method can_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method can_connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_can_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method connect
+  (of-object "GstPad")
+  (c-name "gst_pad_connect")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method connect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_connect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method disconnect
+  (of-object "GstPad")
+  (c-name "gst_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method proxy_connect
+  (of-object "GstPad")
+  (c-name "gst_pad_proxy_connect")
+  (return-type "GstPadConnectReturn")
+  (parameters
+    '("GstCaps*" "caps")
+  )
+)
+
+(define-method reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method perform_negotiate
+  (of-object "GstPad")
+  (c-name "gst_pad_perform_negotiate")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method try_reconnect_filtered
+  (of-object "GstPad")
+  (c-name "gst_pad_try_reconnect_filtered")
+  (return-type "gboolean")
+  (parameters
+    '("GstPad*" "sinkpad")
+    '("GstCaps*" "filtercaps")
+  )
+)
+
+(define-method get_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_get_allowed_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method recalc_allowed_caps
+  (of-object "GstPad")
+  (c-name "gst_pad_recalc_allowed_caps")
+  (return-type "gboolean")
+)
+
+(define-method push
+  (of-object "GstPad")
+  (c-name "gst_pad_push")
+  (return-type "none")
+  (parameters
+    '("GstBuffer*" "buf")
+  )
+)
+
+(define-method pullregion
+  (of-object "GstPad")
+  (c-name "gst_pad_pullregion")
+  (return-type "GstBuffer*")
+  (parameters
+    '("GstRegionType" "type")
+    '("guint64" "offset")
+    '("guint64" "len")
+  )
+)
+
+(define-method event_default
+  (of-object "GstPad")
+  (c-name "gst_pad_event_default")
+  (return-type "none")
+  (parameters
+    '("GstEvent*" "event")
+  )
+)
+
+(define-method peek
+  (of-object "GstPad")
+  (c-name "gst_pad_peek")
+  (return-type "GstBuffer*")
+)
+
+(define-function gst_pad_select
+  (c-name "gst_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method selectv
+  (of-object "GstPad")
+  (c-name "gst_pad_selectv")
+  (return-type "GstPad*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-function gst_pad_load_and_connect
+  (c-name "gst_pad_load_and_connect")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "self")
+    '("GstObject*" "parent")
+  )
+)
+
+(define-function gst_ghost_pad_new
+  (c-name "gst_ghost_pad_new")
+  (return-type "GstPad*")
+  (parameters
+    '("gchar*" "name")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_padtemplate_get_type
+  (c-name "gst_padtemplate_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_padtemplate_new
+  (c-name "gst_padtemplate_new")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("gchar*" "name_template")
+    '("GstPadDirection" "direction")
+    '("GstPadPresence" "presence")
+    '("GstCaps*" "caps")
+  )
+  (varargs #t)
+)
+
+(define-method get_caps
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps")
+  (return-type "GstCaps*")
+)
+
+(define-method get_caps_by_name
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_get_caps_by_name")
+  (return-type "GstCaps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstPadTemplate")
+  (c-name "gst_padtemplate_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_padtemplate_load_thyself
+  (c-name "gst_padtemplate_load_thyself")
+  (return-type "GstPadTemplate*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-method ghost_save_thyself
+  (of-object "GstPad")
+  (c-name "gst_pad_ghost_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("GstElement*" "bin")
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstparse.h
+
+(define-function gst_parse_launchv
+  (c-name "gst_parse_launchv")
+  (return-type "GstPipeline*")
+  (parameters
+    '("const-gchar**" "argv")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpipeline.h
+
+(define-function gst_pipeline_get_type
+  (c-name "gst_pipeline_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_pipeline_new
+  (c-name "gst_pipeline_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstplugin.h
+
+(define-function _gst_plugin_register_static
+  (c-name "_gst_plugin_register_static")
+  (return-type "none")
+  (parameters
+    '("GstPluginDesc*" "desc")
+  )
+)
+
+(define-function gst_plugin_add_path
+  (c-name "gst_plugin_add_path")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "path")
+  )
+)
+
+(define-method get_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_name")
+  (return-type "const-gchar*")
+)
+
+(define-method set_name
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_longname")
+  (return-type "const-gchar*")
+)
+
+(define-method set_longname
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_set_longname")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "longname")
+  )
+)
+
+(define-method get_filename
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_filename")
+  (return-type "const-gchar*")
+)
+
+(define-method is_loaded
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_is_loaded")
+  (return-type "gboolean")
+)
+
+(define-method get_feature_list
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_get_feature_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_load_all
+  (c-name "gst_plugin_load_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_unload_all
+  (c-name "gst_plugin_unload_all")
+  (return-type "none")
+)
+
+(define-function gst_plugin_load
+  (c-name "gst_plugin_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_load_absolute
+  (c-name "gst_plugin_load_absolute")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_library_load
+  (c-name "gst_library_load")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method load_plugin
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_load_plugin")
+  (return-type "gboolean")
+)
+
+(define-method add_feature
+  (of-object "GstPlugin")
+  (c-name "gst_plugin_add_feature")
+  (return-type "none")
+  (parameters
+    '("GstPluginFeature*" "feature")
+  )
+)
+
+(define-function gst_plugin_find
+  (c-name "gst_plugin_find")
+  (return-type "GstPlugin*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_plugin_get_list
+  (c-name "gst_plugin_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_plugin_save_thyself
+  (c-name "gst_plugin_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_plugin_load_thyself
+  (c-name "gst_plugin_load_thyself")
+  (return-type "none")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstpluginfeature.h
+
+(define-function gst_plugin_feature_get_type
+  (c-name "gst_plugin_feature_get_type")
+  (return-type "GType")
+)
+
+(define-method ensure_loaded
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_ensure_loaded")
+  (return-type "gboolean")
+)
+
+(define-method unload_thyself
+  (of-object "GstPluginFeature")
+  (c-name "gst_plugin_feature_unload_thyself")
+  (return-type "none")
+)
+
+
+
+;; From /usr/include/gst/gstprops.h
+
+(define-function _gst_props_initialize
+  (c-name "_gst_props_initialize")
+  (return-type "none")
+)
+
+(define-function gst_props_new
+  (c-name "gst_props_new")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+  )
+  (varargs #t)
+)
+
+(define-function gst_props_newv
+  (c-name "gst_props_newv")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "firstname")
+    '("va_list" "var_args")
+  )
+)
+
+(define-method unref
+  (of-object "GstProps")
+  (c-name "gst_props_unref")
+  (return-type "none")
+)
+
+(define-method ref
+  (of-object "GstProps")
+  (c-name "gst_props_ref")
+  (return-type "none")
+)
+
+(define-method destroy
+  (of-object "GstProps")
+  (c-name "gst_props_destroy")
+  (return-type "none")
+)
+
+(define-method debug
+  (of-object "GstProps")
+  (c-name "gst_props_debug")
+  (return-type "none")
+)
+
+(define-method copy
+  (of-object "GstProps")
+  (c-name "gst_props_copy")
+  (return-type "GstProps*")
+)
+
+(define-method copy_on_write
+  (of-object "GstProps")
+  (c-name "gst_props_copy_on_write")
+  (return-type "GstProps*")
+)
+
+(define-method merge
+  (of-object "GstProps")
+  (c-name "gst_props_merge")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "tomerge")
+  )
+)
+
+(define-method check_compatibility
+  (of-object "GstProps")
+  (c-name "gst_props_check_compatibility")
+  (return-type "gboolean")
+  (parameters
+    '("GstProps*" "toprops")
+  )
+)
+
+(define-method intersect
+  (of-object "GstProps")
+  (c-name "gst_props_intersect")
+  (return-type "GstProps*")
+  (parameters
+    '("GstProps*" "props2")
+  )
+)
+
+(define-method normalize
+  (of-object "GstProps")
+  (c-name "gst_props_normalize")
+  (return-type "GList*")
+)
+
+(define-method set
+  (of-object "GstProps")
+  (c-name "gst_props_set")
+  (return-type "GstProps*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+  (varargs #t)
+)
+
+(define-method has_property
+  (of-object "GstProps")
+  (c-name "gst_props_has_property")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_int")
+  (return-type "gint")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_float
+  (of-object "GstProps")
+  (c-name "gst_props_get_float")
+  (return-type "gfloat")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_fourcc_int
+  (of-object "GstProps")
+  (c-name "gst_props_get_fourcc_int")
+  (return-type "gulong")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_boolean
+  (of-object "GstProps")
+  (c-name "gst_props_get_boolean")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method get_string
+  (of-object "GstProps")
+  (c-name "gst_props_get_string")
+  (return-type "const-gchar*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_thyself
+  (of-object "GstProps")
+  (c-name "gst_props_save_thyself")
+  (return-type "xmlNodePtr")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+(define-function gst_props_load_thyself
+  (c-name "gst_props_load_thyself")
+  (return-type "GstProps*")
+  (parameters
+    '("xmlNodePtr" "parent")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstqueue.h
+
+(define-function gst_queue_get_type
+  (c-name "gst_queue_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gstscheduler.h
+
+(define-function gst_scheduler_get_type
+  (c-name "gst_scheduler_get_type")
+  (return-type "GType")
+)
+
+(define-method setup
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_setup")
+  (return-type "none")
+)
+
+(define-method reset
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_reset")
+  (return-type "none")
+)
+
+(define-method add_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_add_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method remove_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_remove_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method state_transition
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_state_transition")
+  (return-type "GstElementStateReturn")
+  (parameters
+    '("GstElement*" "element")
+    '("gint" "transition")
+  )
+)
+
+(define-method lock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_lock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method unlock_element
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_unlock_element")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method yield
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_yield")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method interrupt
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_interrupt")
+  (return-type "gboolean")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method error
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_error")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-method pad_connect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_connect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_disconnect
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_disconnect")
+  (return-type "none")
+  (parameters
+    '("GstPad*" "srcpad")
+    '("GstPad*" "sinkpad")
+  )
+)
+
+(define-method pad_select
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_pad_select")
+  (return-type "GstPad*")
+  (parameters
+    '("GList*" "padlist")
+  )
+)
+
+(define-method iterate
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_iterate")
+  (return-type "gboolean")
+)
+
+(define-method show
+  (of-object "GstScheduler")
+  (c-name "gst_scheduler_show")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_get_type
+  (c-name "gst_schedulerfactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_schedulerfactory_new
+  (c-name "gst_schedulerfactory_new")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "longdesc")
+    '("GType" "type")
+  )
+)
+
+(define-method destroy
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_destroy")
+  (return-type "none")
+)
+
+(define-function gst_schedulerfactory_find
+  (c-name "gst_schedulerfactory_find")
+  (return-type "GstSchedulerFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_list
+  (c-name "gst_schedulerfactory_get_list")
+  (return-type "GList*")
+)
+
+(define-method create
+  (of-object "GstSchedulerFactory")
+  (c-name "gst_schedulerfactory_create")
+  (return-type "GstScheduler*")
+  (parameters
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_make
+  (c-name "gst_schedulerfactory_make")
+  (return-type "GstScheduler*")
+  (parameters
+    '("const-gchar*" "name")
+    '("GstElement*" "parent")
+  )
+)
+
+(define-function gst_schedulerfactory_set_default_name
+  (c-name "gst_schedulerfactory_set_default_name")
+  (return-type "none")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_schedulerfactory_get_default_name
+  (c-name "gst_schedulerfactory_get_default_name")
+  (return-type "const-gchar*")
+)
+
+
+
+;; From /usr/include/gst/gstsystemclock.h
+
+(define-function gst_system_clock_get_type
+  (c-name "gst_system_clock_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_system_clock_obtain
+  (c-name "gst_system_clock_obtain")
+  (return-type "GstClock*")
+)
+
+
+
+;; From /usr/include/gst/gstthread.h
+
+(define-function gst_thread_get_type
+  (c-name "gst_thread_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_thread_new
+  (c-name "gst_thread_new")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttimecache.h
+
+(define-function gst_timecache_get_type
+  (c-name "gst_timecache_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_timecache_new
+  (c-name "gst_timecache_new")
+  (return-type "GstTimeCache*")
+)
+
+(define-method get_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_group")
+  (return-type "gint")
+)
+
+(define-method new_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_new_group")
+  (return-type "gint")
+)
+
+(define-method set_group
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_group")
+  (return-type "gboolean")
+  (parameters
+    '("gint" "groupnum")
+  )
+)
+
+(define-method set_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_set_certainty")
+  (return-type "none")
+  (parameters
+    '("GstTimeCacheCertainty" "certainty")
+  )
+)
+
+(define-method get_certainty
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_get_certainty")
+  (return-type "GstTimeCacheCertainty")
+)
+
+(define-method add_entry
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint64" "location")
+    '("gint64" "timestamp")
+  )
+)
+
+(define-method find_location
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_location")
+  (return-type "gboolean")
+  (parameters
+    '("guint64" "location")
+    '("gint64*" "timestamp")
+  )
+)
+
+(define-method find_timestamp
+  (of-object "GstTimeCache")
+  (c-name "gst_timecache_find_timestamp")
+  (return-type "gboolean")
+  (parameters
+    '("gint64" "timestamp")
+    '("guint64*" "location")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttrace.h
+
+(define-function gst_trace_new
+  (c-name "gst_trace_new")
+  (return-type "GstTrace*")
+  (parameters
+    '("guchar*" "filename")
+    '("gint" "size")
+  )
+)
+
+(define-method destroy
+  (of-object "GstTrace")
+  (c-name "gst_trace_destroy")
+  (return-type "none")
+)
+
+(define-method flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_flush")
+  (return-type "none")
+)
+
+(define-method text_flush
+  (of-object "GstTrace")
+  (c-name "gst_trace_text_flush")
+  (return-type "none")
+)
+
+(define-method set_default
+  (of-object "GstTrace")
+  (c-name "gst_trace_set_default")
+  (return-type "none")
+)
+
+(define-method _add_entry
+  (of-object "GstTrace")
+  (c-name "_gst_trace_add_entry")
+  (return-type "none")
+  (parameters
+    '("guint32" "seq")
+    '("guint32" "data")
+    '("gchar*" "msg")
+  )
+)
+
+(define-function gst_trace_read_tsc
+  (c-name "gst_trace_read_tsc")
+  (return-type "none")
+  (parameters
+    '("guint64*" "dst")
+  )
+)
+
+
+
+;; From /usr/include/gst/gsttype.h
+
+(define-function gst_typefactory_get_type
+  (c-name "gst_typefactory_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_typefactory_new
+  (c-name "gst_typefactory_new")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("GstTypeDefinition*" "definition")
+  )
+)
+
+(define-function gst_typefactory_find
+  (c-name "gst_typefactory_find")
+  (return-type "GstTypeFactory*")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-function gst_typefactory_get_list
+  (c-name "gst_typefactory_get_list")
+  (return-type "GList*")
+)
+
+(define-function gst_type_register
+  (c-name "gst_type_register")
+  (return-type "guint16")
+  (parameters
+    '("GstTypeFactory*" "factory")
+  )
+)
+
+(define-function gst_type_find_by_mime
+  (c-name "gst_type_find_by_mime")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "mime")
+  )
+)
+
+(define-function gst_type_find_by_ext
+  (c-name "gst_type_find_by_ext")
+  (return-type "guint16")
+  (parameters
+    '("const-gchar*" "ext")
+  )
+)
+
+(define-function gst_type_find_by_id
+  (c-name "gst_type_find_by_id")
+  (return-type "GstType*")
+  (parameters
+    '("guint16" "id")
+  )
+)
+
+(define-function gst_type_get_list
+  (c-name "gst_type_get_list")
+  (return-type "GList*")
+)
+
+
+
+;; From /usr/include/gst/gsttypefind.h
+
+(define-function gst_typefind_get_type
+  (c-name "gst_typefind_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From /usr/include/gst/gsttypes.h
+
+
+
+;; From /usr/include/gst/gstutils.h
+
+(define-function gst_util_get_int_arg
+  (c-name "gst_util_get_int_arg")
+  (return-type "gint")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_bool_arg
+  (c-name "gst_util_get_bool_arg")
+  (return-type "gboolean")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_long_arg
+  (c-name "gst_util_get_long_arg")
+  (return-type "glong")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_int64_arg
+  (c-name "gst_util_get_int64_arg")
+  (return-type "gint64")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_float_arg
+  (c-name "gst_util_get_float_arg")
+  (return-type "gfloat")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_double_arg
+  (c-name "gst_util_get_double_arg")
+  (return-type "gdouble")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_string_arg
+  (c-name "gst_util_get_string_arg")
+  (return-type "const-gchar*")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_get_pointer_arg
+  (c-name "gst_util_get_pointer_arg")
+  (return-type "gpointer")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "argname")
+  )
+)
+
+(define-function gst_util_set_value_from_string
+  (c-name "gst_util_set_value_from_string")
+  (return-type "none")
+  (parameters
+    '("GValue*" "value")
+    '("const-gchar*" "value_str")
+  )
+)
+
+(define-function gst_util_set_object_arg
+  (c-name "gst_util_set_object_arg")
+  (return-type "none")
+  (parameters
+    '("GObject*" "object")
+    '("const-gchar*" "name")
+    '("const-gchar*" "value")
+  )
+)
+
+(define-function gst_util_dump_mem
+  (c-name "gst_util_dump_mem")
+  (return-type "none")
+  (parameters
+    '("guchar*" "mem")
+    '("guint" "size")
+  )
+)
+
+(define-function gst_print_pad_caps
+  (c-name "gst_print_pad_caps")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstPad*" "pad")
+  )
+)
+
+(define-function gst_print_element_args
+  (c-name "gst_print_element_args")
+  (return-type "none")
+  (parameters
+    '("GString*" "buf")
+    '("gint" "indent")
+    '("GstElement*" "element")
+  )
+)
+
+
+
+;; From /usr/include/gst/gstversion.h
+
+
+
+;; From /usr/include/gst/gstxml.h
+
+(define-function gst_xml_get_type
+  (c-name "gst_xml_get_type")
+  (return-type "GType")
+)
+
+(define-function gst_xml_write
+  (c-name "gst_xml_write")
+  (return-type "xmlDocPtr")
+  (parameters
+    '("GstElement*" "element")
+  )
+)
+
+(define-function gst_xml_write_file
+  (c-name "gst_xml_write_file")
+  (return-type "gint")
+  (parameters
+    '("GstElement*" "element")
+    '("FILE*" "out")
+  )
+)
+
+(define-function gst_xml_new
+  (c-name "gst_xml_new")
+  (return-type "GstXML*")
+)
+
+(define-method parse_doc
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_doc")
+  (return-type "gboolean")
+  (parameters
+    '("xmlDocPtr" "doc")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_file
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_file")
+  (return-type "gboolean")
+  (parameters
+    '("const-guchar*" "fname")
+    '("const-guchar*" "root")
+  )
+)
+
+(define-method parse_memory
+  (of-object "GstXML")
+  (c-name "gst_xml_parse_memory")
+  (return-type "gboolean")
+  (parameters
+    '("guchar*" "buffer")
+    '("guint" "size")
+    '("const-gchar*" "root")
+  )
+)
+
+(define-method get_element
+  (of-object "GstXML")
+  (c-name "gst_xml_get_element")
+  (return-type "GstElement*")
+  (parameters
+    '("const-guchar*" "name")
+  )
+)
+
+(define-method get_topelements
+  (of-object "GstXML")
+  (c-name "gst_xml_get_topelements")
+  (return-type "GList*")
+)
+
+(define-function gst_xml_make_element
+  (c-name "gst_xml_make_element")
+  (return-type "GstElement*")
+  (parameters
+    '("xmlNodePtr" "cur")
+    '("GstObject*" "parent")
+  )
+)
+
+
diff --git a/gstreamer/gstreamer.override b/gstreamer/gstreamer.override
new file mode 100644 (file)
index 0000000..4f281a7
--- /dev/null
@@ -0,0 +1,39 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+%%
+headers
+#include <Python.h>
+
+#include "gstreamer-fixes.h"
+
+#include "pygobject.h"
+#include <gst/gst.h>
+
+%%
+import gobject.GObject as PyGObject_Type
+%%
+ignore-glob
+ _*
+ gstreamer_*init
+ *_get_type
+%%
diff --git a/gstreamer/gstreamermodule.c b/gstreamer/gstreamermodule.c
new file mode 100644 (file)
index 0000000..37309cb
--- /dev/null
@@ -0,0 +1,52 @@
+/* -*- Mode: C; c-basic-offset: 4 -*- */
+/* gst-python
+ * Copyright (C) 2002 David I. Lehn
+ *
+ * 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.
+ * 
+ * Author: David I. Lehn <dlehn@vt.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* include this first, before NO_IMPORT_PYGOBJECT is defined */
+#include <pygobject.h>
+
+void pygstreamer_register_classes (PyObject *d);
+void pygstreamer_add_constants(PyObject *module, const gchar *strip_prefix);
+               
+extern PyMethodDef pygstreamer_functions[];
+
+DL_EXPORT(void)
+init_gstreamer (void)
+{
+       PyObject *m, *d;
+
+       init_pygobject ();
+       gst_init(NULL,NULL);
+
+       m = Py_InitModule ("_gstreamer", pygstreamer_functions);
+       d = PyModule_GetDict (m);
+
+       pygstreamer_register_classes (d);
+       pygstreamer_add_constants (m, "GSTREAMER_");
+       
+       if (PyErr_Occurred ()) {
+               Py_FatalError ("can't initialize module gstreamer");
+       }
+}
diff --git a/gstreamer/tmp-enum-types.c b/gstreamer/tmp-enum-types.c
new file mode 100644 (file)
index 0000000..c30653e
--- /dev/null
@@ -0,0 +1,409 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include <gst/gst.h>
+
+/* enumerations from "/usr/include/gst/gstautoplug.h" */
+GType
+gst_autoplug_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_AUTOPLUG_TO_CAPS, "GST_AUTOPLUG_TO_CAPS", "to-caps" },
+      { GST_AUTOPLUG_TO_RENDERER, "GST_AUTOPLUG_TO_RENDERER", "to-renderer" },
+      { GST_AUTOPLUG_FLAG_LAST, "GST_AUTOPLUG_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstAutoplugFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstbin.h" */
+GType
+gst_bin_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_BIN_FLAG_MANAGER, "GST_BIN_FLAG_MANAGER", "flag-manager" },
+      { GST_BIN_SELF_SCHEDULABLE, "GST_BIN_SELF_SCHEDULABLE", "self-schedulable" },
+      { GST_BIN_FLAG_PREFER_COTHREADS, "GST_BIN_FLAG_PREFER_COTHREADS", "flag-prefer-cothreads" },
+      { GST_BIN_FLAG_FIXED_CLOCK, "GST_BIN_FLAG_FIXED_CLOCK", "flag-fixed-clock" },
+      { GST_BIN_FLAG_LAST, "GST_BIN_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstBinFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstbuffer.h" */
+GType
+gst_buffer_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_BUFFER_READONLY, "GST_BUFFER_READONLY", "readonly" },
+      { GST_BUFFER_ORIGINAL, "GST_BUFFER_ORIGINAL", "original" },
+      { GST_BUFFER_DONTFREE, "GST_BUFFER_DONTFREE", "dontfree" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstBufferFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstclock.h" */
+GType
+gst_clock_return_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_CLOCK_STOPPED, "GST_CLOCK_STOPPED", "stopped" },
+      { GST_CLOCK_TIMEOUT, "GST_CLOCK_TIMEOUT", "timeout" },
+      { GST_CLOCK_EARLY, "GST_CLOCK_EARLY", "early" },
+      { GST_CLOCK_ERROR, "GST_CLOCK_ERROR", "error" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstClockReturn", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstcpu.h" */
+GType
+gst_cpu_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GFlagsValue values[] = {
+      { GST_CPU_FLAG_MMX, "GST_CPU_FLAG_MMX", "mmx" },
+      { GST_CPU_FLAG_SSE, "GST_CPU_FLAG_SSE", "sse" },
+      { GST_CPU_FLAG_MMXEXT, "GST_CPU_FLAG_MMXEXT", "mmxext" },
+      { GST_CPU_FLAG_3DNOW, "GST_CPU_FLAG_3DNOW", "3dnow" },
+      { 0, NULL, NULL }
+    };
+    etype = g_flags_register_static ("GstCPUFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstelement.h" */
+GType
+gst_element_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_ELEMENT_COMPLEX, "GST_ELEMENT_COMPLEX", "complex" },
+      { GST_ELEMENT_DECOUPLED, "GST_ELEMENT_DECOUPLED", "decoupled" },
+      { GST_ELEMENT_THREAD_SUGGESTED, "GST_ELEMENT_THREAD_SUGGESTED", "thread-suggested" },
+      { GST_ELEMENT_NO_SEEK, "GST_ELEMENT_NO_SEEK", "no-seek" },
+      { GST_ELEMENT_INFINITE_LOOP, "GST_ELEMENT_INFINITE_LOOP", "infinite-loop" },
+      { GST_ELEMENT_SCHEDULER_PRIVATE1, "GST_ELEMENT_SCHEDULER_PRIVATE1", "scheduler-private1" },
+      { GST_ELEMENT_SCHEDULER_PRIVATE2, "GST_ELEMENT_SCHEDULER_PRIVATE2", "scheduler-private2" },
+      { GST_ELEMENT_NEW_LOOPFUNC, "GST_ELEMENT_NEW_LOOPFUNC", "new-loopfunc" },
+      { GST_ELEMENT_EVENT_AWARE, "GST_ELEMENT_EVENT_AWARE", "event-aware" },
+      { GST_ELEMENT_FLAG_LAST, "GST_ELEMENT_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstElementFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstevent.h" */
+GType
+gst_event_type_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_EVENT_UNKNOWN, "GST_EVENT_UNKNOWN", "unknown" },
+      { GST_EVENT_EOS, "GST_EVENT_EOS", "eos" },
+      { GST_EVENT_FLUSH, "GST_EVENT_FLUSH", "flush" },
+      { GST_EVENT_EMPTY, "GST_EVENT_EMPTY", "empty" },
+      { GST_EVENT_SEEK, "GST_EVENT_SEEK", "seek" },
+      { GST_EVENT_DISCONTINUOUS, "GST_EVENT_DISCONTINUOUS", "discontinuous" },
+      { GST_EVENT_NEW_MEDIA, "GST_EVENT_NEW_MEDIA", "new-media" },
+      { GST_EVENT_INFO, "GST_EVENT_INFO", "info" },
+      { GST_EVENT_ERROR, "GST_EVENT_ERROR", "error" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstEventType", values);
+  }
+  return etype;
+}
+
+GType
+gst_seek_type_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_SEEK_ANY, "GST_SEEK_ANY", "any" },
+      { GST_SEEK_TIMEOFFSET_SET, "GST_SEEK_TIMEOFFSET_SET", "timeoffset-set" },
+      { GST_SEEK_BYTEOFFSET_SET, "GST_SEEK_BYTEOFFSET_SET", "byteoffset-set" },
+      { GST_SEEK_BYTEOFFSET_CUR, "GST_SEEK_BYTEOFFSET_CUR", "byteoffset-cur" },
+      { GST_SEEK_BYTEOFFSET_END, "GST_SEEK_BYTEOFFSET_END", "byteoffset-end" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstSeekType", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstobject.h" */
+GType
+gst_object_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_DESTROYED, "GST_DESTROYED", "destroyed" },
+      { GST_FLOATING, "GST_FLOATING", "floating" },
+      { GST_OBJECT_FLAG_LAST, "GST_OBJECT_FLAG_LAST", "object-flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstObjectFlags", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstpad.h" */
+GType
+gst_region_type_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_REGION_VOID, "GST_REGION_VOID", "void" },
+      { GST_REGION_OFFSET_LEN, "GST_REGION_OFFSET_LEN", "offset-len" },
+      { GST_REGION_TIME_LEN, "GST_REGION_TIME_LEN", "time-len" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstRegionType", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_connect_return_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_CONNECT_REFUSED, "GST_PAD_CONNECT_REFUSED", "refused" },
+      { GST_PAD_CONNECT_OK, "GST_PAD_CONNECT_OK", "ok" },
+      { GST_PAD_CONNECT_DONE, "GST_PAD_CONNECT_DONE", "done" },
+      { GST_PAD_CONNECT_DELAYED, "GST_PAD_CONNECT_DELAYED", "delayed" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadConnectReturn", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_direction_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_UNKNOWN, "GST_PAD_UNKNOWN", "unknown" },
+      { GST_PAD_SRC, "GST_PAD_SRC", "src" },
+      { GST_PAD_SINK, "GST_PAD_SINK", "sink" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadDirection", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_flags_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_DISABLED, "GST_PAD_DISABLED", "disabled" },
+      { GST_PAD_EOS, "GST_PAD_EOS", "eos" },
+      { GST_PAD_FLAG_LAST, "GST_PAD_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadFlags", values);
+  }
+  return etype;
+}
+
+GType
+gst_pad_presence_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PAD_ALWAYS, "GST_PAD_ALWAYS", "always" },
+      { GST_PAD_SOMETIMES, "GST_PAD_SOMETIMES", "sometimes" },
+      { GST_PAD_REQUEST, "GST_PAD_REQUEST", "request" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPadPresence", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstparse.h" */
+GType
+gst_parse_errors_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PARSE_ERROR_SYNTAX, "GST_PARSE_ERROR_SYNTAX", "syntax" },
+      { GST_PARSE_ERROR_CREATING_ELEMENT, "GST_PARSE_ERROR_CREATING_ELEMENT", "creating-element" },
+      { GST_PARSE_ERROR_NOSUCH_ELEMENT, "GST_PARSE_ERROR_NOSUCH_ELEMENT", "nosuch-element" },
+      { GST_PARSE_ERROR_INTERNAL, "GST_PARSE_ERROR_INTERNAL", "internal" },
+      { GST_PARSE_ERROR_CONNECT, "GST_PARSE_ERROR_CONNECT", "connect" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstParseErrors", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstprops.h" */
+GType
+gst_props_id_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_PROPS_END_ID, "GST_PROPS_END_ID", "end-id" },
+      { GST_PROPS_INT_ID, "GST_PROPS_INT_ID", "int-id" },
+      { GST_PROPS_FLOAT_ID, "GST_PROPS_FLOAT_ID", "float-id" },
+      { GST_PROPS_FOURCC_ID, "GST_PROPS_FOURCC_ID", "fourcc-id" },
+      { GST_PROPS_BOOL_ID, "GST_PROPS_BOOL_ID", "bool-id" },
+      { GST_PROPS_STRING_ID, "GST_PROPS_STRING_ID", "string-id" },
+      { GST_PROPS_VAR_ID, "GST_PROPS_VAR_ID", "var-id" },
+      { GST_PROPS_LIST_ID, "GST_PROPS_LIST_ID", "list-id" },
+      { GST_PROPS_FLOAT_RANGE_ID, "GST_PROPS_FLOAT_RANGE_ID", "float-range-id" },
+      { GST_PROPS_INT_RANGE_ID, "GST_PROPS_INT_RANGE_ID", "int-range-id" },
+      { GST_PROPS_LAST_ID, "GST_PROPS_LAST_ID", "last-id" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstPropsId", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstscheduler.h" */
+GType
+gst_scheduler_state_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_SCHEDULER_STATE_NONE, "GST_SCHEDULER_STATE_NONE", "none" },
+      { GST_SCHEDULER_STATE_RUNNING, "GST_SCHEDULER_STATE_RUNNING", "running" },
+      { GST_SCHEDULER_STATE_STOPPED, "GST_SCHEDULER_STATE_STOPPED", "stopped" },
+      { GST_SCHEDULER_STATE_ERROR, "GST_SCHEDULER_STATE_ERROR", "error" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstSchedulerState", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gstthread.h" */
+GType
+gst_thread_state_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_THREAD_STATE_STARTED, "GST_THREAD_STATE_STARTED", "state-started" },
+      { GST_THREAD_STATE_SPINNING, "GST_THREAD_STATE_SPINNING", "state-spinning" },
+      { GST_THREAD_STATE_REAPING, "GST_THREAD_STATE_REAPING", "state-reaping" },
+      { GST_THREAD_FLAG_LAST, "GST_THREAD_FLAG_LAST", "flag-last" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstThreadState", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gsttimecache.h" */
+GType
+gst_time_cache_certainty_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_TIMECACHE_UNKNOWN, "GST_TIMECACHE_UNKNOWN", "unknown" },
+      { GST_TIMECACHE_CERTAIN, "GST_TIMECACHE_CERTAIN", "certain" },
+      { GST_TIMECACHE_FUZZY_LOCATION, "GST_TIMECACHE_FUZZY_LOCATION", "fuzzy-location" },
+      { GST_TIMECACHE_FUZZY_TIMESTAMP, "GST_TIMECACHE_FUZZY_TIMESTAMP", "fuzzy-timestamp" },
+      { GST_TIMECACHE_FUZZY, "GST_TIMECACHE_FUZZY", "fuzzy" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstTimeCacheCertainty", values);
+  }
+  return etype;
+}
+
+
+/* enumerations from "/usr/include/gst/gsttypes.h" */
+GType
+gst_element_state_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GFlagsValue values[] = {
+      { GST_STATE_VOID_PENDING, "GST_STATE_VOID_PENDING", "void-pending" },
+      { GST_STATE_NULL, "GST_STATE_NULL", "null" },
+      { GST_STATE_READY, "GST_STATE_READY", "ready" },
+      { GST_STATE_PAUSED, "GST_STATE_PAUSED", "paused" },
+      { GST_STATE_PLAYING, "GST_STATE_PLAYING", "playing" },
+      { 0, NULL, NULL }
+    };
+    etype = g_flags_register_static ("GstElementState", values);
+  }
+  return etype;
+}
+
+GType
+gst_element_state_return_get_type (void)
+{
+  static GType etype = 0;
+  if (etype == 0) {
+    static const GEnumValue values[] = {
+      { GST_STATE_FAILURE, "GST_STATE_FAILURE", "failure" },
+      { GST_STATE_SUCCESS, "GST_STATE_SUCCESS", "success" },
+      { GST_STATE_ASYNC, "GST_STATE_ASYNC", "async" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static ("GstElementStateReturn", values);
+  }
+  return etype;
+}
+
+
+/* Generated data ends here */
+
diff --git a/gstreamer/tmp-enum-types.h b/gstreamer/tmp-enum-types.h
new file mode 100644 (file)
index 0000000..745cb85
--- /dev/null
@@ -0,0 +1,109 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifndef __GST_ENUM_TYPES_H__
+#define __GST_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "/usr/include/gst/gstautoplug.h" */
+
+GType gst_autoplug_flags_get_type (void);
+#define GST_TYPE_AUTOPLUG_FLAGS (gst_autoplug_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstbin.h" */
+
+GType gst_bin_flags_get_type (void);
+#define GST_TYPE_BIN_FLAGS (gst_bin_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstbuffer.h" */
+
+GType gst_buffer_flags_get_type (void);
+#define GST_TYPE_BUFFER_FLAGS (gst_buffer_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstclock.h" */
+
+GType gst_clock_return_get_type (void);
+#define GST_TYPE_CLOCK_RETURN (gst_clock_return_get_type())
+
+/* enumerations from "/usr/include/gst/gstcpu.h" */
+
+GType gst_cpu_flags_get_type (void);
+#define GST_TYPE_CPU_FLAGS (gst_cpu_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstelement.h" */
+
+GType gst_element_flags_get_type (void);
+#define GST_TYPE_ELEMENT_FLAGS (gst_element_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstevent.h" */
+
+GType gst_event_type_get_type (void);
+#define GST_TYPE_EVENT_TYPE (gst_event_type_get_type())
+
+GType gst_seek_type_get_type (void);
+#define GST_TYPE_SEEK_TYPE (gst_seek_type_get_type())
+
+/* enumerations from "/usr/include/gst/gstobject.h" */
+
+GType gst_object_flags_get_type (void);
+#define GST_TYPE_OBJECT_FLAGS (gst_object_flags_get_type())
+
+/* enumerations from "/usr/include/gst/gstpad.h" */
+
+GType gst_region_type_get_type (void);
+#define GST_TYPE_REGION_TYPE (gst_region_type_get_type())
+
+GType gst_pad_connect_return_get_type (void);
+#define GST_TYPE_PAD_CONNECT_RETURN (gst_pad_connect_return_get_type())
+
+GType gst_pad_direction_get_type (void);
+#define GST_TYPE_PAD_DIRECTION (gst_pad_direction_get_type())
+
+GType gst_pad_flags_get_type (void);
+#define GST_TYPE_PAD_FLAGS (gst_pad_flags_get_type())
+
+GType gst_pad_presence_get_type (void);
+#define GST_TYPE_PAD_PRESENCE (gst_pad_presence_get_type())
+
+/* enumerations from "/usr/include/gst/gstparse.h" */
+
+GType gst_parse_errors_get_type (void);
+#define GST_TYPE_PARSE_ERRORS (gst_parse_errors_get_type())
+
+/* enumerations from "/usr/include/gst/gstprops.h" */
+
+GType gst_props_id_get_type (void);
+#define GST_TYPE_PROPS_ID (gst_props_id_get_type())
+
+/* enumerations from "/usr/include/gst/gstscheduler.h" */
+
+GType gst_scheduler_state_get_type (void);
+#define GST_TYPE_SCHEDULER_STATE (gst_scheduler_state_get_type())
+
+/* enumerations from "/usr/include/gst/gstthread.h" */
+
+GType gst_thread_state_get_type (void);
+#define GST_TYPE_THREAD_STATE (gst_thread_state_get_type())
+
+/* enumerations from "/usr/include/gst/gsttimecache.h" */
+
+GType gst_time_cache_certainty_get_type (void);
+#define GST_TYPE_TIME_CACHE_CERTAINTY (gst_time_cache_certainty_get_type())
+
+/* enumerations from "/usr/include/gst/gsttypes.h" */
+
+GType gst_element_state_get_type (void);
+#define GST_TYPE_ELEMENT_STATE (gst_element_state_get_type())
+
+GType gst_element_state_return_get_type (void);
+#define GST_TYPE_ELEMENT_STATE_RETURN (gst_element_state_return_get_type())
+
+G_END_DECLS
+
+#endif /* __GST_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+