mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 03:00:35 +00:00
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:
parent
ea22601c50
commit
0f04024f5c
7 changed files with 545 additions and 5 deletions
11
ChangeLog
11
ChangeLog
|
@ -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>
|
||||
|
||||
* gst/gstmessage.override (_wrap_gst_message_parse_error): Always
|
||||
|
|
23
configure.ac
23
configure.ac
|
@ -58,6 +58,29 @@ PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ)
|
|||
AC_SUBST(GST_CFLAGS)
|
||||
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
|
||||
PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= $PYGTK_REQ)
|
||||
AC_SUBST(PYGTK_CFLAGS)
|
||||
|
|
|
@ -18,7 +18,8 @@ interface_lib =
|
|||
endif
|
||||
|
||||
defs_DATA = gst-types.defs \
|
||||
gst-extrafuncs.defs
|
||||
gst-extrafuncs.defs \
|
||||
libs.defs
|
||||
defsdir = $(pkgdatadir)/2.0/defs
|
||||
|
||||
noinst_HEADERS = common.h pygstvalue.h pygstminiobject.h
|
||||
|
@ -26,12 +27,12 @@ noinst_HEADERS = common.h pygstvalue.h pygstminiobject.h
|
|||
INCLUDES = $(PYTHON_INCLUDES)
|
||||
EXTRA_DIST = $(defs_DATA) common.h arg-types.py
|
||||
PYGTK_DEFSDIR = @PYGTK_DEFSDIR@
|
||||
GEN_FILES = arg-types.py gst-types.defs
|
||||
GEN_FILES = arg-types.py gst-types.defs libs.defs
|
||||
|
||||
# GStreamer bindings
|
||||
_gst_la_CFLAGS = $(common_cflags)
|
||||
_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
|
||||
nodist__gst_la_SOURCES = gst.c
|
||||
GST_OVERRIDES = \
|
||||
|
@ -45,9 +46,10 @@ GST_OVERRIDES = \
|
|||
gstmessage.override \
|
||||
gstquery.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
|
||||
EXTRA_DIST += $(GST_DEFS) $(GST_OVERRIDES)
|
||||
gst.c: $(GST_DEFS) $(GST_OVERRIDES) $(GEN_FILES)
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
(include "gst-extrafuncs.defs")
|
||||
(include "gst-types.defs")
|
||||
(include "libs.defs")
|
||||
|
||||
;; From ../gstreamer/gst/gst.h
|
||||
|
||||
|
|
|
@ -39,6 +39,10 @@ headers
|
|||
#include <gst/gsttag.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 "pygstminiobject.h"
|
||||
|
||||
|
@ -225,6 +229,7 @@ include
|
|||
gstquery.override
|
||||
gstpad.override
|
||||
gststructure.override
|
||||
gstlibs.override
|
||||
%%
|
||||
init
|
||||
{
|
||||
|
|
68
gst/gstlibs.override
Normal file
68
gst/gstlibs.override
Normal 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",
|
||||
¶m_name, ×tamp, &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
430
gst/libs.defs
Normal 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")
|
||||
)
|
||||
)
|
Loading…
Reference in a new issue