bindings now wrap the gstreamer extra libs (adapter, controller,...)

Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gstlibs.override:
* gst/gst.defs:
* gst/libs.defs:
* gst/gst.override:
* gst/gstlibs.override:
bindings now wrap the gstreamer extra libs (adapter, controller,...)
This commit is contained in:
Edward Hervey 2005-08-03 16:54:57 +00:00
parent ea22601c50
commit 0f04024f5c
7 changed files with 545 additions and 5 deletions

View file

@ -1,3 +1,14 @@
2005-08-03 Edward Hervey <edward@fluendo.com>
* configure.ac:
* gst/Makefile.am:
* gst/gstlibs.override:
* gst/gst.defs:
* gst/libs.defs:
* gst/gst.override:
* gst/gstlibs.override:
bindings now wrap the gstreamer extra libs (adapter, controller,...)
2005-08-03 Andy Wingo <wingo@pobox.com> 2005-08-03 Andy Wingo <wingo@pobox.com>
* gst/gstmessage.override (_wrap_gst_message_parse_error): Always * gst/gstmessage.override (_wrap_gst_message_parse_error): Always

View file

@ -58,6 +58,29 @@ PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ)
AC_SUBST(GST_CFLAGS) AC_SUBST(GST_CFLAGS)
AC_SUBST(GST_LIBS) AC_SUBST(GST_LIBS)
dnl check for gstreamer-base; uninstalled is selected preferentially
PKG_CHECK_MODULES(GST_BASE, gstreamer-base-$GST_MAJORMINOR >= $GST_REQ,
HAVE_GST_BASE="yes", HAVE_GST_BASE="no")
if test "x$HAVE_GST_BASE" = "xno"; then
AC_MSG_ERROR(no GStreamer Base Libs found)
fi
AC_SUBST(GST_BASE_LIBS)
AC_SUBST(GST_BASE_CFLAGS)
dnl check for gstreamer-controller
PKG_CHECK_MODULES(GST_CONTROLLER, gstreamer-controller-$GST_MAJORMINOR >= $GST_REQ,
HAVE_GST_CONTROLLER="yes", HAVE_GST_CONTROLLER="no")
if test "x$HAVE_GST_CONTROLLER" = "xno"; then
AC_MSG_ERROR(no GStreamer Controller Libs found)
fi
AC_SUBST(GST_CONTROLLER_LIBS)
AC_SUBST(GST_CONTROLLER_CFLAGS)
dnl check for pygtk dnl check for pygtk
PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= $PYGTK_REQ) PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= $PYGTK_REQ)
AC_SUBST(PYGTK_CFLAGS) AC_SUBST(PYGTK_CFLAGS)

View file

@ -18,7 +18,8 @@ interface_lib =
endif endif
defs_DATA = gst-types.defs \ defs_DATA = gst-types.defs \
gst-extrafuncs.defs gst-extrafuncs.defs \
libs.defs
defsdir = $(pkgdatadir)/2.0/defs defsdir = $(pkgdatadir)/2.0/defs
noinst_HEADERS = common.h pygstvalue.h pygstminiobject.h noinst_HEADERS = common.h pygstvalue.h pygstminiobject.h
@ -26,12 +27,12 @@ noinst_HEADERS = common.h pygstvalue.h pygstminiobject.h
INCLUDES = $(PYTHON_INCLUDES) INCLUDES = $(PYTHON_INCLUDES)
EXTRA_DIST = $(defs_DATA) common.h arg-types.py EXTRA_DIST = $(defs_DATA) common.h arg-types.py
PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@
GEN_FILES = arg-types.py gst-types.defs GEN_FILES = arg-types.py gst-types.defs libs.defs
# GStreamer bindings # GStreamer bindings
_gst_la_CFLAGS = $(common_cflags) _gst_la_CFLAGS = $(common_cflags)
_gst_la_LIBADD = $(common_libadd) _gst_la_LIBADD = $(common_libadd)
_gst_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gst _gst_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gst $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS)
_gst_la_SOURCES = gst-argtypes.c gstmodule.c pygstvalue.c pygstminiobject.c _gst_la_SOURCES = gst-argtypes.c gstmodule.c pygstvalue.c pygstminiobject.c
nodist__gst_la_SOURCES = gst.c nodist__gst_la_SOURCES = gst.c
GST_OVERRIDES = \ GST_OVERRIDES = \
@ -45,9 +46,10 @@ GST_OVERRIDES = \
gstmessage.override \ gstmessage.override \
gstquery.override \ gstquery.override \
gstpad.override \ gstpad.override \
gststructure.override gststructure.override \
gstlibs.override
GST_DEFS = gst.defs gst-types.defs gst-extrafuncs.defs GST_DEFS = gst.defs gst-types.defs gst-extrafuncs.defs libs.defs
CLEANFILES = gst.c CLEANFILES = gst.c
EXTRA_DIST += $(GST_DEFS) $(GST_OVERRIDES) EXTRA_DIST += $(GST_DEFS) $(GST_OVERRIDES)
gst.c: $(GST_DEFS) $(GST_OVERRIDES) $(GEN_FILES) gst.c: $(GST_DEFS) $(GST_OVERRIDES) $(GEN_FILES)

View file

@ -2,6 +2,7 @@
(include "gst-extrafuncs.defs") (include "gst-extrafuncs.defs")
(include "gst-types.defs") (include "gst-types.defs")
(include "libs.defs")
;; From ../gstreamer/gst/gst.h ;; From ../gstreamer/gst/gst.h

View file

@ -39,6 +39,10 @@ headers
#include <gst/gsttag.h> #include <gst/gsttag.h>
#include <gst/gsttaginterface.h> #include <gst/gsttaginterface.h>
#include <gst/controller/gst-controller.h>
#include <gst/dataprotocol/dataprotocol.h>
#include <gst/base/gstadapter.h>
#include "pygstvalue.h" #include "pygstvalue.h"
#include "pygstminiobject.h" #include "pygstminiobject.h"
@ -225,6 +229,7 @@ include
gstquery.override gstquery.override
gstpad.override gstpad.override
gststructure.override gststructure.override
gstlibs.override
%% %%
init init
{ {

68
gst/gstlibs.override Normal file
View file

@ -0,0 +1,68 @@
/* -*- Mode: C; ; c-file-style: "python" -*- */
/* gst-python
* Copyright (C) 2005 Edward Hervey
*
* 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: Johan Dahlin <johan@gnome.org>
*/
%%
override gst_controller_set args
static PyObject *
_wrap_gst_controller_set (PyGObject *self, PyObject *args)
{
GstController *controller = (GstController *) self->obj;
gchar *param_name;
GstClockTime timestamp;
GValue value = { 0, };
PyObject *pvalue;
GType type = 0;
GList *tmp;
gboolean res;
if (!PyArg_ParseTuple(args, "sLO:GstController.set",
&param_name, &timestamp, &pvalue))
return NULL;
/* We need to find the GType to convert to */
for (tmp = controller->properties; tmp; tmp = g_list_next (tmp)) {
GstControlledProperty *prop = (GstControlledProperty *) tmp->data;
if (!strcmp (prop->name, param_name))
type = prop->type;
}
if (!type) {
PyErr_SetString (PyExc_TypeError,
"The controller doesn't handle the given property");
return NULL;
}
g_value_init (&value, type);
if (pyg_value_from_pyobject (&value, pvalue)) {
PyErr_SetString (PyExc_TypeError,
"Couldn't convert the given value to the good type");
return NULL;
}
res = gst_controller_set (controller, param_name, timestamp, &value);
if (res) {
Py_INCREF (Py_True);
return Py_True;
}
Py_INCREF (Py_False);
return Py_False;
}

430
gst/libs.defs Normal file
View file

@ -0,0 +1,430 @@
;; -*- scheme -*-
; object definitions ...
(define-object Adapter
(in-module "Gst")
(parent "GObject")
(c-name "GstAdapter")
(gtype-id "GST_TYPE_ADAPTER")
)
(define-object Controller
(in-module "Gst")
(parent "GObject")
(c-name "GstController")
(gtype-id "GST_TYPE_CONTROLLER")
)
;; Enumerations and flags ...
(define-enum InterpolateMode
(in-module "Gst")
(c-name "GstInterpolateMode")
(values
'("none" "GST_INTERPOLATE_NONE")
'("trigger" "GST_INTERPOLATE_TRIGGER")
'("linear" "GST_INTERPOLATE_LINEAR")
'("quadratic" "GST_INTERPOLATE_QUADRATIC")
'("cubic" "GST_INTERPOLATE_CUBIC")
'("user" "GST_INTERPOLATE_USER")
)
)
(define-flags DPHeaderFlag
(in-module "Gst")
(c-name "GstDPHeaderFlag")
(values
'("none" "GST_DP_HEADER_FLAG_NONE")
'("crc-header" "GST_DP_HEADER_FLAG_CRC_HEADER")
'("crc-payload" "GST_DP_HEADER_FLAG_CRC_PAYLOAD")
'("crc" "GST_DP_HEADER_FLAG_CRC")
)
)
(define-enum DPPayloadType
(in-module "Gst")
(c-name "GstDPPayloadType")
(values
'("none" "GST_DP_PAYLOAD_NONE")
'("buffer" "GST_DP_PAYLOAD_BUFFER")
'("caps" "GST_DP_PAYLOAD_CAPS")
'("event-none" "GST_DP_PAYLOAD_EVENT_NONE")
)
)
;; From ../gstreamer/libs/gst/bytestream/adapter.h
(define-function gst_adapter_new
(c-name "gst_adapter_new")
(is-constructor-of "GstAdapter")
(return-type "GstAdapter*")
)
(define-method clear
(of-object "GstAdapter")
(c-name "gst_adapter_clear")
(return-type "none")
)
(define-method push
(of-object "GstAdapter")
(c-name "gst_adapter_push")
(return-type "none")
(parameters
'("GstBuffer*" "buf")
)
)
(define-method peek
(of-object "GstAdapter")
(c-name "gst_adapter_peek")
(return-type "const-guint8*")
(parameters
'("guint" "size")
)
)
(define-method flush
(of-object "GstAdapter")
(c-name "gst_adapter_flush")
(return-type "none")
(parameters
'("guint" "flush")
)
)
(define-method available
(of-object "GstAdapter")
(c-name "gst_adapter_available")
(return-type "guint")
)
(define-method available_fast
(of-object "GstAdapter")
(c-name "gst_adapter_available_fast")
(return-type "guint")
)
;; From ../gstreamer/libs/gst/controller/gst-controller.h
(define-function gst_controller_get_type
(c-name "gst_controller_get_type")
(return-type "GType")
)
(define-function gst_controller_new_valist
(c-name "gst_controller_new_valist")
(return-type "GstController*")
(parameters
'("GObject*" "object")
'("va_list" "var_args")
)
)
(define-function gst_controller_new
(c-name "gst_controller_new")
(is-constructor-of "GstController")
(return-type "GstController*")
(parameters
'("GObject*" "object")
)
(varargs #t)
)
(define-method remove_properties_valist
(of-object "GstController")
(c-name "gst_controller_remove_properties_valist")
(return-type "gboolean")
(parameters
'("va_list" "var_args")
)
)
(define-method remove_properties
(of-object "GstController")
(c-name "gst_controller_remove_properties")
(return-type "gboolean")
(parameters
)
(varargs #t)
)
(define-method set
(of-object "GstController")
(c-name "gst_controller_set")
(return-type "gboolean")
(parameters
'("gchar*" "property_name")
'("GstClockTime" "timestamp")
'("GValue*" "value")
)
)
(define-method set_from_list
(of-object "GstController")
(c-name "gst_controller_set_from_list")
(return-type "gboolean")
(parameters
'("gchar*" "property_name")
'("GSList*" "timedvalues")
)
)
(define-method unset
(of-object "GstController")
(c-name "gst_controller_unset")
(return-type "gboolean")
(parameters
'("gchar*" "property_name")
'("GstClockTime" "timestamp")
)
)
(define-method get
(of-object "GstController")
(c-name "gst_controller_get")
(return-type "GValue*")
(parameters
'("gchar*" "property_name")
'("GstClockTime" "timestamp")
)
)
(define-method get_all
(of-object "GstController")
(c-name "gst_controller_get_all")
(return-type "const-GList*")
(parameters
'("gchar*" "property_name")
)
)
(define-method sink_values
(of-object "GstController")
(c-name "gst_controller_sink_values")
(return-type "gboolean")
(parameters
'("GstClockTime" "timestamp")
)
)
(define-method get_value_arrays
(of-object "GstController")
(c-name "gst_controller_get_value_arrays")
(return-type "gboolean")
(parameters
'("GstClockTime" "timestamp")
'("GSList*" "value_arrays")
)
)
(define-method get_value_array
(of-object "GstController")
(c-name "gst_controller_get_value_array")
(return-type "gboolean")
(parameters
'("GstClockTime" "timestamp")
'("GstValueArray*" "value_array")
)
)
(define-method set_interpolation_mode
(of-object "GstController")
(c-name "gst_controller_set_interpolation_mode")
(return-type "gboolean")
(parameters
'("gchar*" "property_name")
'("GstInterpolateMode" "mode")
)
)
(define-method control_properties
(of-object "GObject")
(c-name "g_object_control_properties")
(return-type "GstController*")
(parameters
)
(varargs #t)
)
(define-method uncontrol_properties
(of-object "GObject")
(c-name "g_object_uncontrol_properties")
(return-type "gboolean")
(parameters
)
(varargs #t)
)
(define-method get_controller
(of-object "GObject")
(c-name "g_object_get_controller")
(return-type "GstController*")
)
(define-method set_controller
(of-object "GObject")
(c-name "g_object_set_controller")
(return-type "gboolean")
(parameters
'("GstController*" "controller")
)
)
(define-method sink_values
(of-object "GObject")
(c-name "g_object_sink_values")
(return-type "gboolean")
(parameters
'("GstClockTime" "timestamp")
)
)
(define-method get_value_arrays
(of-object "GObject")
(c-name "g_object_get_value_arrays")
(return-type "gboolean")
(parameters
'("GstClockTime" "timestamp")
'("GSList*" "value_arrays")
)
)
(define-method get_value_array
(of-object "GObject")
(c-name "g_object_get_value_array")
(return-type "gboolean")
(parameters
'("GstClockTime" "timestamp")
'("GstValueArray*" "value_array")
)
)
(define-function gst_controller_init
(c-name "gst_controller_init")
(return-type "gboolean")
(parameters
'("int*" "argc")
'("char***" "argv")
)
)
;; From ../gstreamer/libs/gst/dataprotocol/dataprotocol.h
(define-function gst_dp_init
(c-name "gst_dp_init")
(return-type "none")
)
(define-function gst_dp_header_payload_length
(c-name "gst_dp_header_payload_length")
(return-type "guint32")
(parameters
'("const-guint8*" "header")
)
)
(define-function gst_dp_header_payload_type
(c-name "gst_dp_header_payload_type")
(return-type "GstDPPayloadType")
(parameters
'("const-guint8*" "header")
)
)
(define-function gst_dp_header_from_buffer
(c-name "gst_dp_header_from_buffer")
(return-type "gboolean")
(parameters
'("const-GstBuffer*" "buffer")
'("GstDPHeaderFlag" "flags")
'("guint*" "length")
'("guint8**" "header")
)
)
(define-function gst_dp_packet_from_caps
(c-name "gst_dp_packet_from_caps")
(return-type "gboolean")
(parameters
'("const-GstCaps*" "caps")
'("GstDPHeaderFlag" "flags")
'("guint*" "length")
'("guint8**" "header")
'("guint8**" "payload")
)
)
(define-function gst_dp_packet_from_event
(c-name "gst_dp_packet_from_event")
(return-type "gboolean")
(parameters
'("const-GstEvent*" "event")
'("GstDPHeaderFlag" "flags")
'("guint*" "length")
'("guint8**" "header")
'("guint8**" "payload")
)
)
(define-function gst_dp_buffer_from_header
(c-name "gst_dp_buffer_from_header")
(return-type "GstBuffer*")
(parameters
'("guint" "header_length")
'("const-guint8*" "header")
)
)
(define-function gst_dp_caps_from_packet
(c-name "gst_dp_caps_from_packet")
(return-type "GstCaps*")
(parameters
'("guint" "header_length")
'("const-guint8*" "header")
'("const-guint8*" "payload")
)
)
(define-function gst_dp_event_from_packet
(c-name "gst_dp_event_from_packet")
(return-type "GstEvent*")
(parameters
'("guint" "header_length")
'("const-guint8*" "header")
'("const-guint8*" "payload")
)
)
(define-function gst_dp_validate_header
(c-name "gst_dp_validate_header")
(return-type "gboolean")
(parameters
'("guint" "header_length")
'("const-guint8*" "header")
)
)
(define-function gst_dp_validate_payload
(c-name "gst_dp_validate_payload")
(return-type "gboolean")
(parameters
'("guint" "header_length")
'("const-guint8*" "header")
'("const-guint8*" "payload")
)
)
(define-function gst_dp_validate_packet
(c-name "gst_dp_validate_packet")
(return-type "gboolean")
(parameters
'("guint" "header_length")
'("const-guint8*" "header")
'("const-guint8*" "payload")
)
)