From: <bi...@fr...> - 2005-07-23 14:54:16
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Sat Jul 23 2005 07:54:14 PDT Log message: * configure.ac: * gst/Makefile.am: * gst/interfaces.defs: * gst/interfaces.override: * gst/xoverlay.override: It seems that, somewhere along the way, I forgot to make sure interfaces were binded too :) Modified files: . : ChangeLog configure.ac gst : Makefile.am interfaces.defs interfaces.override xoverlay.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.194&r2=1.195 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/configure.ac.diff?r1=1.67&r2=1.68 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/Makefile.am.diff?r1=1.41&r2=1.42 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/interfaces.defs.diff?r1=1.6&r2=1.7 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/interfaces.override.diff?r1=1.8&r2=1.9 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/xoverlay.override.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.194 retrieving revision 1.195 diff -u -d -r1.194 -r1.195 --- ChangeLog 21 Jul 2005 12:03:23 -0000 1.194 +++ ChangeLog 23 Jul 2005 14:54:02 -0000 1.195 @@ -1,3 +1,13 @@ +2005-07-23 Edward Hervey <ed...@fl...> + + * configure.ac: + * gst/Makefile.am: + * gst/interfaces.defs: + * gst/interfaces.override: + * gst/xoverlay.override: + It seems that, somewhere along the way, I forgot to make sure interfaces + were binded too :) 2005-07-21 Edward Hervey <ed...@fl...> * gst/gstmessage.override: Index: configure.ac RCS file: /cvs/gstreamer/gst-python/configure.ac,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -r1.67 -r1.68 --- configure.ac 12 Jul 2005 14:00:03 -0000 1.67 +++ configure.ac 23 Jul 2005 14:54:02 -0000 1.68 @@ -80,7 +80,7 @@ dnl Interfaces AC_MSG_CHECKING(for GStreamer interfaces include dir) -PKG_CHECK_MODULES(GST_INTERFACES, gstreamer-interfaces-$GST_MAJORMINOR, +PKG_CHECK_MODULES(GST_INTERFACES, gstreamer-plugins-base-$GST_MAJORMINOR, HAVE_INTERFACES=yes,HAVE_INTERFACES=no) AM_CONDITIONAL(BUILD_INTERFACES, test "x$HAVE_INTERFACES" = "xyes") AC_SUBST(GST_INTERFACES_CFLAGS) Index: Makefile.am RCS file: /cvs/gstreamer/gst-python/gst/Makefile.am,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- Makefile.am 12 Jul 2005 09:45:57 -0000 1.41 +++ Makefile.am 23 Jul 2005 14:54:02 -0000 1.42 @@ -54,7 +54,7 @@ # GStreamer interfaces bindings interfaces_la_CFLAGS = $(common_cflags) $(GST_INTERFACES_CFLAGS) -interfaces_la_LIBADD = $(common_libadd) $(GST_INTERFACES_LIBS) +interfaces_la_LIBADD = $(common_libadd) $(GST_INTERFACES_LIBS) -lgstinterfaces-0.9 interfaces_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initinterface interfaces_la_SOURCES = interfacesmodule.c nodist_interfaces_la_SOURCES = interfaces.c Index: interfaces.defs RCS file: /cvs/gstreamer/gst-python/gst/interfaces.defs,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- interfaces.defs 29 Nov 2004 12:25:56 -0000 1.6 +++ interfaces.defs 23 Jul 2005 14:54:02 -0000 1.7 @@ -130,6 +130,25 @@ ) ) +(define-method set_option + (of-object "GstMixer") + (c-name "gst_mixer_set_option") + (return-type "none") + (parameters + '("GstMixerOptions*" "opts") + '("gchar*" "value") + ) +) +(define-method get_option + (c-name "gst_mixer_get_option") + (return-type "const-gchar*") (define-method mute_toggled (of-object "GstMixer") (c-name "gst_mixer_mute_toggled") Index: interfaces.override RCS file: /cvs/gstreamer/gst-python/gst/interfaces.override,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- interfaces.override 29 Nov 2004 12:25:56 -0000 1.8 +++ interfaces.override 23 Jul 2005 14:54:02 -0000 1.9 @@ -29,26 +29,11 @@ #include <gst/gst.h> -/* XXX: Remove this macros in 0.9 */ -#include <gst/colorbalance/colorbalance.h> -#undef GST_COLOR_BALANCE -#define GST_COLOR_BALANCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_COLOR_BALANCE, GstColorBalance)) - -#include <gst/navigation/navigation.h> -#undef GST_NAVIGATION -#define GST_NAVIGATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_NAVIGATION, GstNavigation)) -#include <gst/propertyprobe/propertyprobe.h> -#undef GST_PROPERTY_PROBE -#define GST_PROPERTY_PROBE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PROPERTY_PROBE, GstPropertyProbe)) -#include <gst/tuner/tuner.h> -#undef GST_TUNER -#define GST_TUNER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER, GstTuner)) -#include <gst/mixer/mixer.h> -#undef GST_MIXER -#define GST_MIXER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER, GstMixer)) +#include <gst/interfaces/colorbalance.h> +#include <gst/interfaces/navigation.h> +#include <gst/interfaces/propertyprobe.h> +#include <gst/interfaces/tuner.h> +#include <gst/interfaces/mixer.h> %% modulename gst.interfaces Index: xoverlay.override RCS file: /cvs/gstreamer/gst-python/gst/xoverlay.override,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- xoverlay.override 25 Nov 2004 14:30:24 -0000 1.2 +++ xoverlay.override 23 Jul 2005 14:54:02 -0000 1.3 @@ -21,6 +21,4 @@ headers -#include <gst/xoverlay/xoverlay.h> -#undef GST_X_OVERLAY -#define GST_X_OVERLAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_X_OVERLAY, GstXOverlay)) +#include <gst/interfaces/xoverlay.h> |
From: <bi...@fr...> - 2005-07-25 11:30:03
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Mon Jul 25 2005 04:30:00 PDT Log message: * gst/gst-types.defs: (GhostPad): Added GhostPad type * gst/interfaces.defs: Added MixerTrackFlags, TunerChannelFlags and MixerOptions Want the rest of the poem ? ;) Modified files: . : ChangeLog gst : gst-types.defs interfaces.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.195&r2=1.196 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-types.defs.diff?r1=1.21&r2=1.22 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/interfaces.defs.diff?r1=1.7&r2=1.8 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.195 retrieving revision 1.196 diff -u -d -r1.195 -r1.196 --- ChangeLog 23 Jul 2005 14:54:02 -0000 1.195 +++ ChangeLog 25 Jul 2005 11:29:47 -0000 1.196 @@ -1,3 +1,12 @@ +2005-07-25 Edward Hervey <ed...@fl...> + + * gst/gst-types.defs: (GhostPad): + Added GhostPad type + * gst/interfaces.defs: + Added MixerTrackFlags, TunerChannelFlags and MixerOptions + Want the rest of the poem ? ;) 2005-07-23 Edward Hervey <ed...@fl...> * configure.ac: Index: gst-types.defs RCS file: /cvs/gstreamer/gst-python/gst/gst-types.defs,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- gst-types.defs 18 Jul 2005 17:13:32 -0000 1.21 +++ gst-types.defs 25 Jul 2005 11:29:47 -0000 1.22 @@ -51,6 +51,13 @@ (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") Index: interfaces.defs RCS file: /cvs/gstreamer/gst-python/gst/interfaces.defs,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- interfaces.defs 23 Jul 2005 14:54:02 -0000 1.7 +++ interfaces.defs 25 Jul 2005 11:29:47 -0000 1.8 @@ -32,6 +32,31 @@ ) +(define-flags MixerTrackFlags + (c-name "GstMixerTrackFlags") + (gtype-id "GST_TYPE_MIXER_TRACK_FLAGS") + (values + '("input" "GST_MIXER_TRACK_INPUT") + '("output" "GST_MIXER_TRACK_OUTPUT") + '("mute" "GST_MIXER_TRACK_MUTE") + '("record" "GST_MIXER_TRACK_RECORD") + '("master" "GST_MIXER_TRACK_MASTER") + '("software" "GST_MIXER_TRACK_SOFTWARE") + ) +(define-flags TunerChannelFlags + (c-name "GstTunerChannelFlags") + (gtype-id "GST_TYPE_TUNER_CHANNEL_FLAGS") + '("input" "GST_TUNER_CHANNEL_INPUT") + '("output" "GST_TUNER_CHANNEL_OUTPUT") + '("frequency" "GST_TUNER_CHANNEL_FREQUENCY") + '("audio" "GST_TUNER_CHANNEL_AUDIO") ;; From /opt/gnome/include/gstreamer-0.7/gst/colorbalance/colorbalance.h @@ -527,6 +552,13 @@ ) +(define-object MixerOptions + (parent "GstMixerTrack") + (c-name "GstMixerOptions") + (gtype-id "GST_TYPE_MIXER_OPTIONS") (define-interface Navigation (in-module "Gst") (c-name "GstNavigation") |
From: <bi...@fr...> - 2005-08-03 16:55:14
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Aug 03 2005 09:55:09 PDT Log message: * 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,...) Modified files: . : ChangeLog configure.ac gst : Makefile.am gst.defs gst.override Added files: gst : gstlibs.override libs.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.199&r2=1.200 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/configure.ac.diff?r1=1.70&r2=1.71 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/Makefile.am.diff?r1=1.42&r2=1.43 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.38&r2=1.39 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.54&r2=1.55 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstlibs.override?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/libs.defs?rev=1.1&content-type=text/vnd.viewcvs-markup ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.199 retrieving revision 1.200 diff -u -d -r1.199 -r1.200 --- ChangeLog 3 Aug 2005 12:48:33 -0000 1.199 +++ ChangeLog 3 Aug 2005 16:54:57 -0000 1.200 @@ -1,3 +1,14 @@ +2005-08-03 Edward Hervey <ed...@fl...> + + * configure.ac: + * gst/Makefile.am: + * gst/gstlibs.override: + * gst/gst.defs: + * gst/libs.defs: + * gst/gst.override: + bindings now wrap the gstreamer extra libs (adapter, controller,...) 2005-08-03 Andy Wingo <wi...@po...> * gst/gstmessage.override (_wrap_gst_message_parse_error): Always Index: configure.ac RCS file: /cvs/gstreamer/gst-python/configure.ac,v retrieving revision 1.70 retrieving revision 1.71 diff -u -d -r1.70 -r1.71 --- configure.ac 3 Aug 2005 12:32:13 -0000 1.70 +++ configure.ac 3 Aug 2005 16:54:57 -0000 1.71 @@ -58,6 +58,29 @@ 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) +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) Index: Makefile.am RCS file: /cvs/gstreamer/gst-python/gst/Makefile.am,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- Makefile.am 23 Jul 2005 14:54:02 -0000 1.42 +++ Makefile.am 3 Aug 2005 16:54:57 -0000 1.43 @@ -18,7 +18,8 @@ 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 @@ 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 @@ 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) Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- gst.defs 1 Aug 2005 09:59:54 -0000 1.38 +++ gst.defs 3 Aug 2005 16:54:57 -0000 1.39 @@ -2,6 +2,7 @@ (include "gst-extrafuncs.defs") (include "gst-types.defs") +(include "libs.defs") ;; From ../gstreamer/gst/gst.h Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- gst.override 1 Aug 2005 09:59:54 -0000 1.54 +++ gst.override 3 Aug 2005 16:54:57 -0000 1.55 @@ -39,6 +39,10 @@ #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 @@ gstquery.override gstpad.override gststructure.override + gstlibs.override %% init { --- NEW FILE: gstlibs.override --- /* -*- 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 <jo...@gn...> */ %% 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"); g_value_init (&value, type); if (pyg_value_from_pyobject (&value, pvalue)) { "Couldn't convert the given value to the good type"); 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; } --- NEW FILE: libs.defs --- ;; -*- scheme -*- ; object definitions ... (define-object Adapter (in-module "Gst") (parent "GObject") (c-name "GstAdapter") (gtype-id "GST_TYPE_ADAPTER") ) (define-object Controller (c-name "GstController") (gtype-id "GST_TYPE_CONTROLLER") ;; Enumerations and flags ... (define-enum InterpolateMode (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 (c-name "GstDPHeaderFlag") '("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 (c-name "GstDPPayloadType") '("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 (c-name "gst_adapter_push") (parameters '("GstBuffer*" "buf") (define-method peek (c-name "gst_adapter_peek") (return-type "const-guint8*") '("guint" "size") (define-method flush (c-name "gst_adapter_flush") '("guint" "flush") (define-method available (c-name "gst_adapter_available") (return-type "guint") (define-method available_fast (c-name "gst_adapter_available_fast") ;; 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*") '("GObject*" "object") '("va_list" "var_args") (define-function gst_controller_new (c-name "gst_controller_new") (is-constructor-of "GstController") (varargs #t) (define-method remove_properties_valist (of-object "GstController") (c-name "gst_controller_remove_properties_valist") (return-type "gboolean") (define-method remove_properties (c-name "gst_controller_remove_properties") (define-method set (c-name "gst_controller_set") '("gchar*" "property_name") '("GstClockTime" "timestamp") '("GValue*" "value") (define-method set_from_list (c-name "gst_controller_set_from_list") '("GSList*" "timedvalues") (define-method unset (c-name "gst_controller_unset") (define-method get (c-name "gst_controller_get") (return-type "GValue*") (define-method get_all (c-name "gst_controller_get_all") (return-type "const-GList*") (define-method sink_values (c-name "gst_controller_sink_values") (define-method get_value_arrays (c-name "gst_controller_get_value_arrays") '("GSList*" "value_arrays") (define-method get_value_array (c-name "gst_controller_get_value_array") '("GstValueArray*" "value_array") (define-method set_interpolation_mode (c-name "gst_controller_set_interpolation_mode") '("GstInterpolateMode" "mode") (define-method control_properties (of-object "GObject") (c-name "g_object_control_properties") (define-method uncontrol_properties (c-name "g_object_uncontrol_properties") (define-method get_controller (c-name "g_object_get_controller") (define-method set_controller (c-name "g_object_set_controller") '("GstController*" "controller") (c-name "g_object_sink_values") (c-name "g_object_get_value_arrays") (c-name "g_object_get_value_array") (define-function gst_controller_init (c-name "gst_controller_init") '("int*" "argc") '("char***" "argv") ;; From ../gstreamer/libs/gst/dataprotocol/dataprotocol.h (define-function gst_dp_init (c-name "gst_dp_init") (define-function gst_dp_header_payload_length (c-name "gst_dp_header_payload_length") (return-type "guint32") '("const-guint8*" "header") (define-function gst_dp_header_payload_type (c-name "gst_dp_header_payload_type") (return-type "GstDPPayloadType") (define-function gst_dp_header_from_buffer (c-name "gst_dp_header_from_buffer") '("const-GstBuffer*" "buffer") '("GstDPHeaderFlag" "flags") '("guint*" "length") '("guint8**" "header") (define-function gst_dp_packet_from_caps (c-name "gst_dp_packet_from_caps") '("const-GstCaps*" "caps") '("guint8**" "payload") (define-function gst_dp_packet_from_event (c-name "gst_dp_packet_from_event") '("const-GstEvent*" "event") (define-function gst_dp_buffer_from_header (c-name "gst_dp_buffer_from_header") (return-type "GstBuffer*") '("guint" "header_length") (define-function gst_dp_caps_from_packet (c-name "gst_dp_caps_from_packet") (return-type "GstCaps*") '("const-guint8*" "payload") (define-function gst_dp_event_from_packet (c-name "gst_dp_event_from_packet") (return-type "GstEvent*") (define-function gst_dp_validate_header (c-name "gst_dp_validate_header") (define-function gst_dp_validate_payload (c-name "gst_dp_validate_payload") (define-function gst_dp_validate_packet (c-name "gst_dp_validate_packet") |
From: <bi...@fr...> - 2005-08-04 10:44:34
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Aug 04 2005 03:44:29 PDT Log message: * gst/gst.defs: * gst/gst.override: * gst/gstmodule.c: We now have debugging in gst-python ;) gst.[log|debug|info|warning|error]() Modified files: . : ChangeLog gst : gst.defs gst.override gstmodule.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.200&r2=1.201 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.39&r2=1.40 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.55&r2=1.56 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmodule.c.diff?r1=1.23&r2=1.24 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.200 retrieving revision 1.201 diff -u -d -r1.200 -r1.201 --- ChangeLog 3 Aug 2005 16:54:57 -0000 1.200 +++ ChangeLog 4 Aug 2005 10:44:16 -0000 1.201 @@ -1,3 +1,11 @@ +2005-08-04 Edward Hervey <ed...@fl...> + + * gst/gst.defs: + * gst/gst.override: + * gst/gstmodule.c: + We now have debugging in gst-python ;) + gst.[log|debug|info|warning|error]() 2005-08-03 Edward Hervey <ed...@fl...> * configure.ac: Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- gst.defs 3 Aug 2005 16:54:57 -0000 1.39 +++ gst.defs 4 Aug 2005 10:44:16 -0000 1.40 @@ -2273,7 +2273,48 @@ ) ) +;; DEBUGGING FUNCTIONS FROM PYTHON +;; The c functions don't actually exist +(define-function log + (c-name "gst_log") + (return-type "none") + (parameters + '("gchar *" "msg") + ) +) +(define-function debug + (c-name "gst_debug") +(define-function info + (c-name "gst_info") +(define-function warning + (c-name "gst_warning") +(define-function error + (c-name "gst_error") ;; From ../gstreamer/gst/gstinterface.h Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- gst.override 3 Aug 2005 16:54:57 -0000 1.55 +++ gst.override 4 Aug 2005 10:44:16 -0000 1.56 @@ -53,6 +53,9 @@ PyObject *PyGstExc_LinkError = NULL; +GST_DEBUG_CATEGORY_EXTERN (gst_python); +#define GST_CAT_DEFAULT gst_python GSList *mainloops = NULL; void _pygst_main_quit(void) @@ -217,6 +220,30 @@ } #endif +static PyObject * +pygst_debug_log (PyObject *whatever, PyObject *string, GstDebugLevel level) +{ + gchar *str; + gchar *function; + gchar *filename; + gchar lineno; + PyFrameObject *frame; + if (!PyArg_ParseTuple(string, "s:gst.debug_log", &str)) { + PyErr_SetString(PyExc_TypeError, "Need a string!"); + return NULL; + } + frame = PyEval_GetFrame(); + function = PyString_AsString(frame->f_code->co_name); + filename = PyString_AsString(frame->f_code->co_filename); + lineno = frame->f_code->co_firstlineno; + /* gst_debug_log : category, level, file, function, line, object, format, va_list */ + gst_debug_log (GST_CAT_DEFAULT, level, filename, function, lineno, NULL, str); + Py_INCREF (Py_None); + return Py_None; +} %% include gstbin.override @@ -959,3 +986,38 @@ Py_INCREF(Py_None); return Py_None; +%% +override gst_log args +_wrap_gst_log (PyObject *whatever, PyObject *string) + return pygst_debug_log (whatever, string, GST_LEVEL_LOG); +override gst_debug args +_wrap_gst_debug (PyObject *whatever, PyObject *string) + return pygst_debug_log (whatever, string, GST_LEVEL_DEBUG); +override gst_info args +_wrap_gst_info (PyObject *whatever, PyObject *string) + return pygst_debug_log (whatever, string, GST_LEVEL_INFO); +override gst_warning +_wrap_gst_warning (PyObject *whatever, PyObject *string) + return pygst_debug_log (whatever, string, GST_LEVEL_WARNING); +override gst_error +_wrap_gst_error (PyObject *whatever, PyObject *string) + return pygst_debug_log (whatever, string, GST_LEVEL_ERROR); Index: gstmodule.c RCS file: /cvs/gstreamer/gst-python/gst/gstmodule.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- gstmodule.c 1 Aug 2005 09:59:54 -0000 1.23 +++ gstmodule.c 4 Aug 2005 10:44:16 -0000 1.24 @@ -42,6 +42,7 @@ extern void _pygst_main_quit(void); extern PyObject *PyGstExc_LinkError; +GST_DEBUG_CATEGORY (gst_python); /* This is a timeout that gets added to the mainloop to handle SIGINT (Ctrl-C) * Other signals get handled at some other point where transition from @@ -168,6 +169,8 @@ pygst_register_classes (d); pygst_add_constants (m, "GST_"); + /* Initialize debugging category */ + GST_DEBUG_CATEGORY_INIT (gst_python, "gst-python", 0, "GStreamer python bindings"); g_timeout_add_full (0, 100, python_do_pending_calls, NULL, NULL); |
From: <bi...@fr...> - 2005-08-09 22:42:42
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Aug 09 2005 06:43:08 PDT Log message: * gst/gstpad.override: (_wrap_gst_pad_query_position): Long != LongLong .... Modified files: . : ChangeLog gst : gstpad.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.202&r2=1.203 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstpad.override.diff?r1=1.9&r2=1.10 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.202 retrieving revision 1.203 diff -u -d -r1.202 -r1.203 --- ChangeLog 8 Aug 2005 13:47:14 -0000 1.202 +++ ChangeLog 9 Aug 2005 13:42:56 -0000 1.203 @@ -1,3 +1,8 @@ +2005-08-09 Edward Hervey <ed...@fl...> + + * gst/gstpad.override: (_wrap_gst_pad_query_position): + Long != LongLong .... 2005-08-08 Edward Hervey <ed...@fl...> * codegen/codegen.py: Index: gstpad.override RCS file: /cvs/gstreamer/gst-python/gst/gstpad.override,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gstpad.override 18 Jul 2005 17:13:04 -0000 1.9 +++ gstpad.override 9 Aug 2005 13:42:56 -0000 1.10 @@ -779,8 +779,8 @@ ret = PyList_New(0); if ((gst_pad_query_position(GST_PAD (self->obj), (GstFormat*) &format, &cur, &end))) { - PyList_Append(ret, PyLong_FromLong(cur)); - PyList_Append(ret, PyLong_FromLong(end)); + PyList_Append(ret, PyLong_FromLongLong(cur)); + PyList_Append(ret, PyLong_FromLongLong(end)); PyList_Append(ret, pyg_enum_from_gtype (GST_TYPE_FORMAT, format )); } else { Py_INCREF(Py_None); |
From: <bi...@fr...> - 2005-08-10 15:07:04
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Aug 10 2005 08:07:03 PDT Log message: * gst/gst.override: (pygst_debug_log): printf("urlencoded%20space") != printf("%s", "urlencoded%20space") Funny how a lot of problems have gone since that's fixed :) Modified files: . : ChangeLog gst : gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.203&r2=1.204 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.56&r2=1.57 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.203 retrieving revision 1.204 diff -u -d -r1.203 -r1.204 --- ChangeLog 9 Aug 2005 13:42:56 -0000 1.203 +++ ChangeLog 10 Aug 2005 15:06:51 -0000 1.204 @@ -1,3 +1,9 @@ +2005-08-10 Edward Hervey <ed...@fl...> + + * gst/gst.override: (pygst_debug_log): + printf("urlencoded%20space") != printf("%s", "urlencoded%20space") + Funny how a lot of problems have gone since that's fixed :) 2005-08-09 Edward Hervey <ed...@fl...> * gst/gstpad.override: (_wrap_gst_pad_query_position): Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- gst.override 4 Aug 2005 10:44:16 -0000 1.56 +++ gst.override 10 Aug 2005 15:06:51 -0000 1.57 @@ -239,7 +239,7 @@ filename = PyString_AsString(frame->f_code->co_filename); lineno = frame->f_code->co_firstlineno; /* gst_debug_log : category, level, file, function, line, object, format, va_list */ - gst_debug_log (GST_CAT_DEFAULT, level, filename, function, lineno, NULL, str); + gst_debug_log (GST_CAT_DEFAULT, level, filename, function, lineno, NULL, "%s", str); Py_INCREF (Py_None); return Py_None; } |
From: <bi...@fr...> - 2005-08-10 15:24:25
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Aug 10 2005 08:24:24 PDT Log message: * gst/gst.override: (pygst_debug_log): gchar is way smaller than an int... resulting in negative line numbers in debug. Modified files: . : ChangeLog gst : gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.204&r2=1.205 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.57&r2=1.58 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.204 retrieving revision 1.205 diff -u -d -r1.204 -r1.205 --- ChangeLog 10 Aug 2005 15:06:51 -0000 1.204 +++ ChangeLog 10 Aug 2005 15:24:11 -0000 1.205 @@ -1,6 +1,12 @@ 2005-08-10 Edward Hervey <ed...@fl...> * gst/gst.override: (pygst_debug_log): + gchar is way smaller than an int... resulting in negative line numbers + in debug. + +2005-08-10 Edward Hervey <ed...@fl...> + * gst/gst.override: (pygst_debug_log): printf("urlencoded%20space") != printf("%s", "urlencoded%20space") Funny how a lot of problems have gone since that's fixed :) Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- gst.override 10 Aug 2005 15:06:51 -0000 1.57 +++ gst.override 10 Aug 2005 15:24:12 -0000 1.58 @@ -226,7 +226,7 @@ gchar *str; gchar *function; gchar *filename; - gchar lineno; + int lineno; PyFrameObject *frame; if (!PyArg_ParseTuple(string, "s:gst.debug_log", &str)) { |
From: <bi...@fr...> - 2005-08-10 15:42:18
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Aug 10 2005 08:42:15 PDT Log message: * gst/gstmodule.c: (init_gst): changed debug category name from 'gst-python' to 'python' * gst/gst.override: (pygst_debug_log): gchar is way smaller than an int... resulting in negative line numbers in debug. Modified files: . : ChangeLog gst : gstmodule.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.205&r2=1.206 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmodule.c.diff?r1=1.24&r2=1.25 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.205 retrieving revision 1.206 diff -u -d -r1.205 -r1.206 --- ChangeLog 10 Aug 2005 15:24:11 -0000 1.205 +++ ChangeLog 10 Aug 2005 15:42:03 -0000 1.206 @@ -1,5 +1,8 @@ 2005-08-10 Edward Hervey <ed...@fl...> + * gst/gstmodule.c: (init_gst): + changed debug category name from 'gst-python' to 'python' + * gst/gst.override: (pygst_debug_log): gchar is way smaller than an int... resulting in negative line numbers in debug. Index: gstmodule.c RCS file: /cvs/gstreamer/gst-python/gst/gstmodule.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- gstmodule.c 4 Aug 2005 10:44:16 -0000 1.24 +++ gstmodule.c 10 Aug 2005 15:42:03 -0000 1.25 @@ -170,7 +170,7 @@ pygst_add_constants (m, "GST_"); /* Initialize debugging category */ - GST_DEBUG_CATEGORY_INIT (gst_python, "gst-python", 0, "GStreamer python bindings"); + GST_DEBUG_CATEGORY_INIT (gst_python, "python", 0, "GStreamer python bindings"); g_timeout_add_full (0, 100, python_do_pending_calls, NULL, NULL); |
From: <bi...@fr...> - 2005-08-11 13:23:38
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Aug 11 2005 06:23:32 PDT Log message: * gst/gst.override: (pygst_debug_log): Only display the filename and not the full path Modified files: . : ChangeLog gst : gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.206&r2=1.207 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.58&r2=1.59 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.206 retrieving revision 1.207 diff -u -d -r1.206 -r1.207 --- ChangeLog 10 Aug 2005 15:42:03 -0000 1.206 +++ ChangeLog 11 Aug 2005 13:23:19 -0000 1.207 @@ -1,3 +1,8 @@ +2005-08-11 Edward Hervey <ed...@fl...> + + * gst/gst.override: (pygst_debug_log): + Only display the filename and not the full path 2005-08-10 Edward Hervey <ed...@fl...> * gst/gstmodule.c: (init_gst): Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 --- gst.override 10 Aug 2005 15:24:12 -0000 1.58 +++ gst.override 11 Aug 2005 13:23:20 -0000 1.59 @@ -236,10 +236,12 @@ frame = PyEval_GetFrame(); function = PyString_AsString(frame->f_code->co_name); - filename = PyString_AsString(frame->f_code->co_filename); + filename = g_path_get_basename(PyString_AsString(frame->f_code->co_filename)); lineno = frame->f_code->co_firstlineno; /* gst_debug_log : category, level, file, function, line, object, format, va_list */ gst_debug_log (GST_CAT_DEFAULT, level, filename, function, lineno, NULL, "%s", str); + if (filename) + g_free(filename); Py_INCREF (Py_None); return Py_None; } |
From: <bi...@fr...> - 2005-08-11 13:25:46
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Aug 11 2005 06:25:36 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/gst.override: (pygst_debug_log): Print the filename and not the full path Modified files: . : ChangeLog gst : gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.46&r2=1.157.2.47 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.46.2.9&r2=1.46.2.10 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.46 retrieving revision 1.157.2.47 diff -u -d -r1.157.2.46 -r1.157.2.47 --- ChangeLog 10 Aug 2005 16:30:56 -0000 1.157.2.46 +++ ChangeLog 11 Aug 2005 13:25:23 -0000 1.157.2.47 @@ -1,3 +1,8 @@ +2005-08-11 Edward Hervey <ed...@fl...> + + * gst/gst.override: (pygst_debug_log): + Print the filename and not the full path 2005-08-10 Thomas Vander Stichele <thomas at apestaart dot org> * gst/extend/jukebox.py: Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.46.2.9 retrieving revision 1.46.2.10 diff -u -d -r1.46.2.9 -r1.46.2.10 --- gst.override 10 Aug 2005 15:55:35 -0000 1.46.2.9 +++ gst.override 11 Aug 2005 13:25:23 -0000 1.46.2.10 @@ -230,10 +230,12 @@ frame = PyEval_GetFrame(); function = PyString_AsString(frame->f_code->co_name); - filename = PyString_AsString(frame->f_code->co_filename); + filename = g_path_get_basename(PyString_AsString(frame->f_code->co_filename)); lineno = frame->f_code->co_firstlineno; /* gst_debug_log : category, level, file, function, line, object, format, va_list */ gst_debug_log (GST_CAT_DEFAULT, level, filename, function, lineno, NULL, "%s", str); + if (filename) + g_free(filename); Py_INCREF (Py_None); return Py_None; } |
From: <bi...@fr...> - 2005-09-28 14:35:10
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Sep 28 2005 07:35:04 PDT Log message: * gst/Makefile.am: * gst/gst.override: * gst/gsttaglist.override: * gst/gstobject.override: Let's split up gst.override, Added gsttaglist.override and gstobject.override * gst/arg-types.py: * gst/gst-argtypes.c: Cleanup, removed deprecated GstData related functions * gst/gst-extrafuncs.defs: * gst/gst.defs: Moved debug functions to gst-extrafuncs.defs Modified files: . : ChangeLog gst : Makefile.am arg-types.py gst-argtypes.c gst-extrafuncs.defs gst.defs gst.override Added files: gst : gstobject.override gsttaglist.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.254&r2=1.255 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/Makefile.am.diff?r1=1.44&r2=1.45 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/arg-types.py.diff?r1=1.8&r2=1.9 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-argtypes.c.diff?r1=1.4&r2=1.5 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-extrafuncs.defs.diff?r1=1.2&r2=1.3 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.60&r2=1.61 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.69&r2=1.70 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstobject.override?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gsttaglist.override?rev=1.1&content-type=text/vnd.viewcvs-markup ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.254 retrieving revision 1.255 diff -u -d -r1.254 -r1.255 --- ChangeLog 28 Sep 2005 14:20:03 -0000 1.254 +++ ChangeLog 28 Sep 2005 14:34:51 -0000 1.255 @@ -1,3 +1,19 @@ +2005-09-28 Edward Hervey <ed...@fl...> + + * gst/Makefile.am: + * gst/gst.override: + * gst/gsttaglist.override: + * gst/gstobject.override: + Let's split up gst.override, + Added gsttaglist.override and gstobject.override + + * gst/arg-types.py: + * gst/gst-argtypes.c: + Cleanup, removed deprecated GstData related functions + * gst/gst-extrafuncs.defs: + * gst/gst.defs: + Moved debug functions to gst-extrafuncs.defs 2005-09-28 Thomas Vander Stichele <thomas at apestaart dot org> * gst/gst.defs: Index: Makefile.am RCS file: /cvs/gstreamer/gst-python/gst/Makefile.am,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- Makefile.am 28 Sep 2005 12:17:29 -0000 1.44 +++ Makefile.am 28 Sep 2005 14:34:52 -0000 1.45 @@ -44,9 +44,11 @@ gstcaps.override \ gstelement.override \ gstmessage.override \ + gstobject.override \ gstquery.override \ gstpad.override \ gststructure.override \ + gsttaglist.override \ gstlibs.override GST_DEFS = gst.defs gst-types.defs gst-extrafuncs.defs libs.defs Index: arg-types.py RCS file: /cvs/gstreamer/gst-python/gst/arg-types.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- arg-types.py 20 Jun 2005 21:39:34 -0000 1.8 +++ arg-types.py 28 Sep 2005 14:34:52 -0000 1.9 @@ -24,32 +24,6 @@ from argtypes import UInt64Arg, Int64Arg, PointerArg, ArgMatcher, ArgType, matcher -class GstDataPtrArg(ArgType): - normal = (' if (!pygst_data_from_pyobject(py_%(name)s, &%(name)s))\n' - ' return NULL;\n' - ' gst_data_ref (%(name)s);\n') - null = (' if (py_%(name)s == Py_None)\n' - ' %(name)s = NULL;\n' - ' else if (pyst_data_from_pyobject(py_%(name)s, %(name)s_rect))\n' - ' %(name)s = &%(name)s_rect;\n' - ' else\n' - ' return NULL;\n' - def write_param(self, ptype, pname, pdflt, pnull, info): - if pnull: - info.varlist.add('GstData', pname + '_data') - info.varlist.add('GstData', '*' + pname) - info.varlist.add('PyObject', '*py_' + pname + ' = Py_None') - info.add_parselist('O', ['&py_' + pname], [pname]) - info.arglist.append(pname) - info.codebefore.append(self.null % {'name': pname}) - else: - info.varlist.add('GstData*', pname) - info.varlist.add('PyObject', '*py_' + pname) - info.codebefore.append(self.normal % {'name': pname}) - class XmlNodeArg(ArgType): """libxml2 node generator""" @@ -155,7 +129,6 @@ raise RuntimeError, "write_return not implemented for %s" % ptype info.codeafter.append(' return pyg_boxed_new (GST_TYPE_CAPS, ret, '+copyval+', TRUE);') -matcher.register('GstData*', GstDataPtrArg()) matcher.register('GstClockTime', UInt64Arg()) matcher.register('GstClockTimeDiff', Int64Arg()) matcher.register('xmlNodePtr', XmlNodeArg()) Index: gst-argtypes.c RCS file: /cvs/gstreamer/gst-python/gst/gst-argtypes.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gst-argtypes.c 20 Jun 2005 21:39:34 -0000 1.4 +++ gst-argtypes.c 28 Sep 2005 14:34:52 -0000 1.5 @@ -26,45 +26,6 @@ #include <gst/gst.h> #include "common.h" -/* gboolean */ -/* pygst_data_from_pyobject(PyObject *object, GstData **data) */ -/* { */ -/* if (pyg_boxed_check(object, GST_TYPE_DATA)) { */ -/* *data = pyg_boxed_get(object, GstData); */ -/* return TRUE; */ -/* } else if (pyg_boxed_check(object, GST_TYPE_BUFFER)) { */ -/* *data = GST_DATA (pyg_boxed_get(object, GstBuffer)); */ -/* } else if (pyg_boxed_check(object, GST_TYPE_EVENT)) { */ -/* *data = GST_DATA (pyg_boxed_get(object, GstEvent)); */ -/* } */ - -/* PyErr_Clear(); */ -/* PyErr_SetString(PyExc_TypeError, "could not convert to GstData"); */ -/* return FALSE; */ -/* } */ -/* static PyObject * */ -/* PyGstData_from_value(const GValue *value) */ -/* GstData *data = (GstData *)g_value_get_boxed(value); */ -/* return pyg_boxed_new(GST_TYPE_DATA, data, TRUE, TRUE); */ -/* static int */ -/* PyGstData_to_value(GValue *value, PyObject *object) */ -/* GstData* data; */ -/* if (!pygst_data_from_pyobject(object, &data)) */ -/* return -1; */ -/* g_value_set_boxed(value, data); */ -/* return 0; */ /* This function will return a copy, unless the following is all TRUE: * - The given PyObject contains a GstCaps already * - The copy parameter is non-NULL @@ -103,10 +64,3 @@ return NULL; } -/* void */ -/* _pygst_register_boxed_types(PyObject *moddict) */ -/* pyg_register_boxed_custom(GST_TYPE_DATA, */ -/* PyGstData_from_value, */ -/* PyGstData_to_value); */ Index: gst-extrafuncs.defs RCS file: /cvs/gstreamer/gst-python/gst/gst-extrafuncs.defs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gst-extrafuncs.defs 17 Jun 2005 10:59:47 -0000 1.2 +++ gst-extrafuncs.defs 28 Sep 2005 14:34:52 -0000 1.3 @@ -22,4 +22,95 @@ (parameters '("GstObjectFlags" "flag") ) -) \ No newline at end of file +) +;; DEBUGGING FUNCTIONS FROM PYTHON +;; The c functions don't actually exist +(define-function log + (c-name "gst_log") + (return-type "none") + (parameters + '("gchar *" "msg") + ) +(define-function debug + (c-name "gst_debug") +(define-function info + (c-name "gst_info") +(define-function warning + (c-name "gst_warning") +(define-function error + (c-name "gst_error") +;; OBJECT DEBUGGING FUNCTIONS FROM PYTHON +(define-method log + (of-object "GstObject") + (c-name "gst_object_log") +(define-method debug + (c-name "gst_object_debug") +(define-method info + (c-name "gst_object_info") +(define-method warning + (c-name "gst_object_warning") +(define-method error + (c-name "gst_object_error") Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- gst.defs 28 Sep 2005 14:20:03 -0000 1.60 +++ gst.defs 28 Sep 2005 14:34:52 -0000 1.61 @@ -2335,49 +2335,6 @@ ) ) -;; DEBUGGING FUNCTIONS FROM PYTHON -;; The c functions don't actually exist -(define-function log - (c-name "gst_log") - (return-type "none") - (parameters - '("gchar *" "msg") - ) -(define-function debug - (c-name "gst_debug") -(define-function info - (c-name "gst_info") -(define-function warning - (c-name "gst_warning") -(define-function error - (c-name "gst_error") ;; From ../gstreamer/gst/gstinterface.h (define-function gst_implements_interface_get_type @@ -2988,54 +2945,6 @@ -;; OBJECT DEBUGGING FUNCTIONS FROM PYTHON -(define-method log - (of-object "GstObject") - (c-name "gst_object_log") -(define-method debug - (c-name "gst_object_debug") -(define-method info - (c-name "gst_object_info") -(define-method warning - (c-name "gst_object_warning") -(define-method error - (c-name "gst_object_error") ;; From ../gstreamer/gst/gstpad.h (define-function gst_pad_get_type Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.69 retrieving revision 1.70 diff -u -d -r1.69 -r1.70 --- gst.override 28 Sep 2005 12:17:29 -0000 1.69 +++ gst.override 28 Sep 2005 14:34:52 -0000 1.70 @@ -253,14 +253,16 @@ include gstbin.override gstbuffer.override - gstevent.override - gstcaps.override gstbus.override + gstcaps.override gstelement.override + gstevent.override gstmessage.override - gstquery.override + gstobject.override gstpad.override + gstquery.override gststructure.override + gsttaglist.override gstlibs.override %% init @@ -292,398 +294,14 @@ gst_class_* gst_init* gst_interface_* - gst_tag_list_get_* gst_value_* ignore gst_alloc_trace_list gst_alloc_trace_get gst_error_get_message - gst_object_default_deep_notify - gst_object_check_uniqueness - gst_object_replace gst_parse_launchv - gst_tag_list_add - gst_tag_list_add_values - gst_tag_list_add_valist_values - gst_tag_list_copy_value gst_trace_read_tsc -%% -define GstTagList.keys noargs -void -tag_foreach_func_dict (const GstTagList *list, - const gchar *tag, - PyObject *dict) -{ - int count; - guint i; - const GValue *gvalue; - PyObject *value; - gchar *key; - - count = gst_tag_list_get_tag_size(GST_TAG_LIST(list), tag); - for (i = 0; i < count; i++) { - gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(list), tag, i); - value = pygst_value_as_pyobject(gvalue, TRUE); - key = g_strdup (tag); - PyDict_SetItemString(dict, key, value); - g_free (key); - Py_DECREF(value); - } -} -tag_foreach_func_list (const GstTagList *list, - PyObject *py_list) - if (count == 0) - PyErr_SetString(PyExc_KeyError, tag); - else if (count == 1) - PyList_Append(py_list, PyString_FromString(tag)); -#if 0 - else if (count > 1) - PyErr_SetString(PyExc_TypeError, "lists are currently unspported"); -#endif - -static PyObject* -_wrap_gst_tag_list_keys(PyGObject *self) - PyObject *dict; - dict = PyList_New(0); - gst_tag_list_foreach(GST_TAG_LIST(self->obj), - (GstTagForeachFunc)tag_foreach_func_list, - (gpointer)dict); - return dict; -override-slot GstTagList.tp_as_mapping -static int -_wrap_gst_tag_list_length(PyGObject *self) - return gst_structure_n_fields((GstStructure*)self->obj); -static PyObject * -_wrap_gst_tag_list_subscript(PyGObject *self, PyObject *py_key) - PyObject *v = NULL; - char *key = PyString_AsString(py_key); - int count = gst_tag_list_get_tag_size(GST_TAG_LIST(self->obj), key); - if (count == 0) { - PyErr_SetObject(PyExc_KeyError, py_key); - } else if (count == 1) { - const GValue *gvalue; - gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0); - v = pygst_value_as_pyobject(gvalue, TRUE); - } else { - - if (v != NULL) - Py_INCREF(v); - return v; -static PySequenceMethods _wrap_gst_tag_list_tp_as_mapping = { - (inquiry)_wrap_gst_tag_list_length, /* mp_length */ - (binaryfunc)_wrap_gst_tag_list_subscript, /* mp_subscript */ - NULL, -}; -define GstTagList.has_key args -_wrap_gst_tag_list_has_key(PyGObject *self, PyObject *args) - if (!PyArg_ParseTuple(args, "s:GstTagList.has_key", &key)) - return NULL; - gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0); - return PyInt_FromLong(gvalue != NULL); -} -define GstTagList.get -_wrap_gst_tag_list_get(PyGObject *self, PyObject *args) - char *key; - PyObject *failobj = Py_None; - PyObject *val = NULL; - if (!PyArg_ParseTuple(args, "s|O:GstTagList.get", &key, &failobj)) - if (gvalue != NULL) { - int count = gst_tag_list_get_tag_size(GST_TAG_LIST(self->obj), key); - if (count == 0) { - PyErr_SetString(PyExc_KeyError, key); - } else if (count == 1) { - gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0); - val = pygst_value_as_pyobject(gvalue, TRUE); - } else { - PyErr_SetString(PyExc_TypeError, "lists are currently unspported"); - } - if (val == NULL) - val = failobj; - Py_INCREF(val); - return val; -override gst_tag_list_foreach kwargs -static gboolean -pygst_tag_list_foreach_marshal(GstTagList *list, - const gchar *tag, - gpointer user_data) - PyGstCustomNotify *cunote = user_data; - PyObject *py_list; - PyObject *py_key, *retobj; - gboolean retval = TRUE; - PyGILState_STATE state; - g_assert(cunote->func); - state = pyg_gil_state_ensure(); - py_list = pyg_boxed_new(GST_TYPE_TAG_LIST, list, TRUE, TRUE); - py_key = Py_BuildValue("s", tag); - if (cunote->data) - retobj = PyEval_CallFunction(cunote->func, "(NNO)", - py_list, - py_key, - cunote->data); - else - retobj = PyEval_CallFunction(cunote->func, "(NN)", - py_key); - if (PyErr_Occurred () || (retobj == NULL) || (retobj == Py_None)) { - PyErr_Print (); - retval = FALSE; - } else if (retobj != Py_None) { - retval = PyInt_AsLong(retobj); - Py_XDECREF(retobj); - pyg_gil_state_release(state); - return retval; -_wrap_gst_tag_list_foreach (PyGObject *self, - PyObject *args, - PyObject *kwargs) - static char *kwlist[] = { "foreach_function", "args", NULL }; - PyObject *pyfunc, *pyarg = NULL; - PyGstCustomNotify cunote; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "O|O:GstTagList.foreach", - kwlist, &pyfunc, &pyarg)) - if (!PyCallable_Check(pyfunc)) { - PyErr_SetString(PyExc_TypeError, "foreach_function not callable"); - cunote.func = pyfunc; - cunote.data = pyarg; - gst_tag_list_foreach(pyg_boxed_get(self, GstTagList), - (GstTagForeachFunc)pygst_tag_list_foreach_marshal, - &cunote); - Py_INCREF(Py_None); - return Py_None; -override gst_tag_list_get_value_index kwargs -_wrap_gst_tag_list_get_value_index (PyGObject *self, - PyObject *args, - PyObject *kwargs) - static char *kwlist[] = { "tag", "index", NULL }; - char *tag; - int index; - "si:GstTagList.get_value_index", - kwlist, &tag, &index)) - gvalue = gst_tag_list_get_value_index(pyg_boxed_get(self, GstTagList), - tag, - index); - return pygst_value_as_pyobject(gvalue, FALSE); -/* keep this attribute around even after 2.8 for compatibility reasons */ -override-attr GstObject.__gstrefcount__ -_wrap_gst_object__get___gstrefcount__(PyGObject *self, void *closure) - return PyInt_FromLong(GST_OBJECT_REFCOUNT_VALUE(self->obj)); -/* < GLib 2.8 */ -/* because of our gst_object_ref/_unref, we do our own GC-related - * functions: - * our own tp_traverse that checks the GstObject refcount, - * and reuse _dealloc and _clear from gobject.GObject for ours - * compare with pygtk/gobject/pygobject.c - */ -/* a define is a little evil, but it seems to generate the right code - * to allow us to do our garbage collection routines */ -override-slot GstObject.tp_flags -#define _wrap_gst_object_tp_flags Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC -override-slot GstObject.tp_traverse -_wrap_gst_object_tp_traverse(PyGObject *self, visitproc visit, void *arg) - int ret = 0; - GSList *tmp; - if (self->inst_dict) ret = visit(self->inst_dict, arg); - if (ret != 0) return ret; - for (tmp = self->closures; tmp != NULL; tmp = tmp->next) { - PyGClosure *closure = tmp->data; - if (closure->callback) ret = visit(closure->callback, arg); - if (ret != 0) return ret; - if (closure->extra_args) ret = visit(closure->extra_args, arg); - if (closure->swap_data) ret = visit(closure->swap_data, arg); - } - if (self->obj && GST_OBJECT_REFCOUNT_VALUE(self->obj) == 1) { - GST_DEBUG_OBJECT(self->obj, - "gst.Object.tp_traverse: GstObject refcount of %p is 1, visit", - self->obj); - ret = visit((PyObject *)self, arg); - return ret; -override-slot GstObject.tp_clear -int -_wrap_gst_object_tp_clear(PyGObject *self) - int ret; - GObject *obj = self->obj; - /* if we're a GstObject, we want to monkeypatch the GObject.tp_clear's - * g_object_unref and "replace" it with a gst_object_unref */ - if (! GST_IS_OBJECT (obj)) - obj = NULL; - else { - GST_DEBUG_OBJECT (obj, "gst.Object.tp_clear"); - g_object_ref (obj); - ret = PyGObject_Type.tp_clear((PyObject *) self); - if (obj) - gst_object_unref (obj); -override-slot GstObject.tp_dealloc -_wrap_gst_object_tp_dealloc(PyGObject *self) - /* if we're a GstObject, we want to monkeypatch the GObject.tp_dealloc's - GST_DEBUG_OBJECT (obj, "gst.Object.tp_dealloc"); - PyGObject_Type.tp_dealloc((PyObject *) self); -override-slot GstObject.tp_repr -_wrap_gst_object_tp_repr(PyObject *self) - gchar *repr; - PyObject *ret; - GstObject *object = GST_OBJECT (pygobject_get (self)); - repr = g_strdup_printf ("<%s object (%s) at 0x%lx>", - self->ob_type->tp_name, - GST_OBJECT_NAME(object) ? GST_OBJECT_NAME(object) : "unnamed", - (long)self); - ret = PyString_FromString(repr); - g_free (repr); -override-slot GstObject.tp_str -_wrap_gst_object_tp_str(PyObject *self) - gchar *repr, *path; - path = gst_object_get_path_string (object); - repr = g_strdup_printf ("%s (%s)", - path, self->ob_type->tp_name); - g_free (path); override-slot GstPluginFeature.tp_repr static PyObject * --- NEW FILE: gstobject.override --- /* -*- 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: Edward Hervey <ed...@fl...> */ %% ignore gst_object_default_deep_notify gst_object_check_uniqueness gst_object_replace override-attr GstObject.__gstrefcount__ /* keep this attribute around even after 2.8 for compatibility reasons */ static PyObject * _wrap_gst_object__get___gstrefcount__(PyGObject *self, void *closure) { return PyInt_FromLong(GST_OBJECT_REFCOUNT_VALUE(self->obj)); } /* < GLib 2.8 */ /* because of our gst_object_ref/_unref, we do our own GC-related * functions: * our own tp_traverse that checks the GstObject refcount, * and reuse _dealloc and _clear from gobject.GObject for ours * compare with pygtk/gobject/pygobject.c /* a define is a little evil, but it seems to generate the right code * to allow us to do our garbage collection routines */ override-slot GstObject.tp_flags #define _wrap_gst_object_tp_flags Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC override-slot GstObject.tp_traverse static int _wrap_gst_object_tp_traverse(PyGObject *self, visitproc visit, void *arg) int ret = 0; GSList *tmp; if (self->inst_dict) ret = visit(self->inst_dict, arg); if (ret != 0) return ret; for (tmp = self->closures; tmp != NULL; tmp = tmp->next) { PyGClosure *closure = tmp->data; if (closure->callback) ret = visit(closure->callback, arg); if (ret != 0) return ret; if (closure->extra_args) ret = visit(closure->extra_args, arg); if (closure->swap_data) ret = visit(closure->swap_data, arg); } if (self->obj && GST_OBJECT_REFCOUNT_VALUE(self->obj) == 1) { GST_DEBUG_OBJECT(self->obj, "gst.Object.tp_traverse: GstObject refcount of %p is 1, visit", self->obj); ret = visit((PyObject *)self, arg); return ret; override-slot GstObject.tp_clear int _wrap_gst_object_tp_clear(PyGObject *self) int ret; GObject *obj = self->obj; /* if we're a GstObject, we want to monkeypatch the GObject.tp_clear's * g_object_unref and "replace" it with a gst_object_unref */ if (! GST_IS_OBJECT (obj)) obj = NULL; else { GST_DEBUG_OBJECT (obj, "gst.Object.tp_clear"); g_object_ref (obj); ret = PyGObject_Type.tp_clear((PyObject *) self); if (obj) gst_object_unref (obj); override-slot GstObject.tp_dealloc void _wrap_gst_object_tp_dealloc(PyGObject *self) /* if we're a GstObject, we want to monkeypatch the GObject.tp_dealloc's GST_DEBUG_OBJECT (obj, "gst.Object.tp_dealloc"); PyGObject_Type.tp_dealloc((PyObject *) self); override-slot GstObject.tp_repr _wrap_gst_object_tp_repr(PyObject *self) gchar *repr; PyObject *ret; GstObject *object = GST_OBJECT (pygobject_get (self)); repr = g_strdup_printf ("<%s object (%s) at 0x%lx>", self->ob_type->tp_name, GST_OBJECT_NAME(object) ? GST_OBJECT_NAME(object) : "unnamed", (long)self); ret = PyString_FromString(repr); g_free (repr); override-slot GstObject.tp_str _wrap_gst_object_tp_str(PyObject *self) gchar *repr, *path; path = gst_object_get_path_string (object); repr = g_strdup_printf ("%s (%s)", path, self->ob_type->tp_name); g_free (path); --- NEW FILE: gsttaglist.override --- ignore-glob gst_tag_list_get_* gst_tag_list_add gst_tag_list_add_values gst_tag_list_add_valist_values gst_tag_list_copy_value define GstTagList.keys noargs tag_foreach_func_dict (const GstTagList *list, const gchar *tag, PyObject *dict) int count; guint i; const GValue *gvalue; PyObject *value; gchar *key; count = gst_tag_list_get_tag_size(GST_TAG_LIST(list), tag); for (i = 0; i < count; i++) { gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(list), tag, i); value = pygst_value_as_pyobject(gvalue, TRUE); key = g_strdup (tag); PyDict_SetItemString(dict, key, value); g_free (key); Py_DECREF(value); } tag_foreach_func_list (const GstTagList *list, PyObject *py_list) if (count == 0) PyErr_SetString(PyExc_KeyError, tag); else if (count == 1) PyList_Append(py_list, PyString_FromString(tag)); #if 0 else if (count > 1) PyErr_SetString(PyExc_TypeError, "lists are currently unspported"); #endif static PyObject* _wrap_gst_tag_list_keys(PyGObject *self) PyObject *dict; dict = PyList_New(0); gst_tag_list_foreach(GST_TAG_LIST(self->obj), (GstTagForeachFunc)tag_foreach_func_list, (gpointer)dict); return dict; override-slot GstTagList.tp_as_mapping _wrap_gst_tag_list_length(PyGObject *self) return gst_structure_n_fields((GstStructure*)self->obj); _wrap_gst_tag_list_subscript(PyGObject *self, PyObject *py_key) PyObject *v = NULL; char *key = PyString_AsString(py_key); int count = gst_tag_list_get_tag_size(GST_TAG_LIST(self->obj), key); if (count == 0) { PyErr_SetObject(PyExc_KeyError, py_key); } else if (count == 1) { const GValue *gvalue; gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0); v = pygst_value_as_pyobject(gvalue, TRUE); } else { if (v != NULL) Py_INCREF(v); return v; static PySequenceMethods _wrap_gst_tag_list_tp_as_mapping = { (inquiry)_wrap_gst_tag_list_length, /* mp_length */ (binaryfunc)_wrap_gst_tag_list_subscript, /* mp_subscript */ NULL, }; define GstTagList.has_key args _wrap_gst_tag_list_has_key(PyGObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "s:GstTagList.has_key", &key)) return NULL; gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0); return PyInt_FromLong(gvalue != NULL); } define GstTagList.get _wrap_gst_tag_list_get(PyGObject *self, PyObject *args) char *key; PyObject *failobj = Py_None; PyObject *val = NULL; if (!PyArg_ParseTuple(args, "s|O:GstTagList.get", &key, &failobj)) if (gvalue != NULL) { int count = gst_tag_list_get_tag_size(GST_TAG_LIST(self->obj), key); if (count == 0) { PyErr_SetString(PyExc_KeyError, key); } else if (count == 1) { gvalue = gst_tag_list_get_value_index(GST_TAG_LIST(self->obj), key, 0); val = pygst_value_as_pyobject(gvalue, TRUE); } else { PyErr_SetString(PyExc_TypeError, "lists are currently unspported"); } if (val == NULL) val = failobj; Py_INCREF(val); return val; override gst_tag_list_foreach kwargs static gboolean pygst_tag_list_foreach_marshal(GstTagList *list, const gchar *tag, gpointer user_data) PyGstCustomNotify *cunote = user_data; PyObject *py_list; PyObject *py_key, *retobj; gboolean retval = TRUE; PyGILState_STATE state; g_assert(cunote->func); state = pyg_gil_state_ensure(); py_list = pyg_boxed_new(GST_TYPE_TAG_LIST, list, TRUE, TRUE); py_key = Py_BuildValue("s", tag); if (cunote->data) retobj = PyEval_CallFunction(cunote->func, "(NNO)", py_list, py_key, cunote->data); else retobj = PyEval_CallFunction(cunote->func, "(NN)", py_key); if (PyErr_Occurred () || (retobj == NULL) || (retobj == Py_None)) { PyErr_Print (); retval = FALSE; } else if (retobj != Py_None) { retval = PyInt_AsLong(retobj); Py_XDECREF(retobj); pyg_gil_state_release(state); return retval; _wrap_gst_tag_list_foreach (PyGObject *self, PyObject *args, PyObject *kwargs) static char *kwlist[] = { "foreach_function", "args", NULL }; PyObject *pyfunc, *pyarg = NULL; PyGstCustomNotify cunote; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:GstTagList.foreach", kwlist, &pyfunc, &pyarg)) if (!PyCallable_Check(pyfunc)) { PyErr_SetString(PyExc_TypeError, "foreach_function not callable"); cunote.func = pyfunc; cunote.data = pyarg; gst_tag_list_foreach(pyg_boxed_get(self, GstTagList), (GstTagForeachFunc)pygst_tag_list_foreach_marshal, &cunote); Py_INCREF(Py_None); return Py_None; override gst_tag_list_get_value_index kwargs _wrap_gst_tag_list_get_value_index (PyGObject *self, PyObject *args, PyObject *kwargs) static char *kwlist[] = { "tag", "index", NULL }; char *tag; int index; "si:GstTagList.get_value_index", kwlist, &tag, &index)) gvalue = gst_tag_list_get_value_index(pyg_boxed_get(self, GstTagList), tag, index); return pygst_value_as_pyobject(gvalue, FALSE); |
From: <bi...@fr...> - 2005-09-28 15:20:01
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Sep 28 2005 08:19:57 PDT Log message: * gst/gst.override: * gst/gstbin.override: * gst/gstbuffer.override: * gst/gstevent.override: Remove dead code * gst/gstelement.override: Remove dead code and re-enable link with filtering and _send_event() Modified files: . : ChangeLog gst : gst.override gstbin.override gstbuffer.override gstelement.override gstevent.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.255&r2=1.256 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.70&r2=1.71 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbin.override.diff?r1=1.6&r2=1.7 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbuffer.override.diff?r1=1.15&r2=1.16 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstelement.override.diff?r1=1.12&r2=1.13 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstevent.override.diff?r1=1.7&r2=1.8 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.255 retrieving revision 1.256 diff -u -d -r1.255 -r1.256 --- ChangeLog 28 Sep 2005 14:34:51 -0000 1.255 +++ ChangeLog 28 Sep 2005 15:19:44 -0000 1.256 @@ -1,5 +1,16 @@ 2005-09-28 Edward Hervey <ed...@fl...> + * gst/gst.override: + * gst/gstbin.override: + * gst/gstbuffer.override: + * gst/gstevent.override: + Remove dead code + + * gst/gstelement.override: + Remove dead code and re-enable link with filtering and _send_event() +2005-09-28 Edward Hervey <ed...@fl...> * gst/Makefile.am: * gst/gst.override: * gst/gsttaglist.override: Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.70 retrieving revision 1.71 diff -u -d -r1.70 -r1.71 --- gst.override 28 Sep 2005 14:34:52 -0000 1.70 +++ gst.override 28 Sep 2005 15:19:44 -0000 1.71 @@ -368,36 +368,6 @@ error->code)); } %% -override gst_main noargs -static PyObject * -_wrap_gst_main(PyObject *self) -{ - pyg_begin_allow_threads; - - _pygst_main(); - pyg_end_allow_threads; - - if (PyErr_Occurred()) - return NULL; - Py_INCREF(Py_None); - return Py_None; -} -%% -override gst_main_quit args -_wrap_gst_main_quit(PyObject *self) - _pygst_main_quit(); - - Py_INCREF(Py_None); - return Py_None; override gst_registry_get_path_list static PyObject * _wrap_gst_registry_get_path_list (PyGObject *self) @@ -686,29 +656,6 @@ return ret; -override gst_registry_pool_list noargs -_wrap_gst_registry_pool_list (PyObject *what) - PyObject *ret, *item; - GList *res, *tmp; - ret = PyList_New(0); - res = gst_registry_pool_list(); - for (tmp = res; tmp; tmp = g_list_next(tmp)) { - item = pygobject_new((GObject*) GST_REGISTRY(tmp->data)); - if (!item) { - Py_DECREF(ret); - return NULL; - } - PyList_Append(ret, item); - Py_DECREF(item); - } - return ret; override gst_flow_get_name kwargs _wrap_gst_flow_get_name(PyObject *self, PyObject *args, PyObject *kwargs) Index: gstbin.override RCS file: /cvs/gstreamer/gst-python/gst/gstbin.override,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gstbin.override 28 Sep 2005 14:20:03 -0000 1.6 +++ gstbin.override 28 Sep 2005 15:19:44 -0000 1.7 @@ -88,50 +88,6 @@ return Py_None; -override gst_bin_iterate noargs -_wrap_gst_bin_iterate(PyGObject *self) - int ret; -/* XXX: Find out which one is the most correct */ -#if 1 - ret = gst_bin_iterate(GST_BIN(self->obj)); -#else - PyGILState_STATE state; - state = pyg_gil_state_ensure(); - pyg_gil_state_release(state); -#endif - return PyInt_FromLong(ret); -override gst_bin_get_list noargs -_wrap_gst_bin_get_list(PyGObject *self) - GList *elements, *l; - PyObject *tuple; - int i; - elements = (GList*)gst_bin_get_list(GST_BIN(self->obj)); - tuple = PyTuple_New(g_list_length(elements)); - for (i = 0, l = elements; l; l = l->next, i++) { - GstElement *element = (GstElement*)l->data; - if (!element) - continue; - PyTuple_SetItem(tuple, i, pygstobject_new(G_OBJECT(element))); - - return tuple; override gst_bin_get_by_name kwargs _wrap_gst_bin_get_by_name(PyGObject *self, PyObject *args, PyObject *kwargs) Index: gstbuffer.override RCS file: /cvs/gstreamer/gst-python/gst/gstbuffer.override,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- gstbuffer.override 28 Sep 2005 10:58:50 -0000 1.15 +++ gstbuffer.override 28 Sep 2005 15:19:44 -0000 1.16 @@ -76,48 +76,6 @@ return 0; -override gst_buffer_get_data -static PyObject* -_wrap_gst_buffer_get_data(PyObject *self) - GstBuffer *buf = pyg_boxed_get(self, GstBuffer); - return PyString_FromStringAndSize((gchar *) GST_BUFFER_DATA(buf), - GST_BUFFER_SIZE(buf)); -override gst_buffer_set_data kwargs -_wrap_gst_buffer_set_data(PyObject *self, PyObject *args, PyObject *kwargs) - static char *kwlist[] = {"data", NULL}; - PyObject *data; - GstBuffer *buf; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GstBuffer:set_data", kwlist, &data)) - { - if (!PyString_Check(data)) { - PyErr_SetString(PyExc_TypeError, "data should be a string"); - buf = pyg_boxed_get(self, GstBuffer); - if (GST_BUFFER_FLAGS(buf) & GST_BUFFER_READONLY) { - PyErr_SetString(PyExc_TypeError, "set_data can't use a READONLY buffer"); - GST_BUFFER_SIZE(buf) = PyString_Size(data); - GST_BUFFER_DATA(buf) = (guint8 *) g_new0(char, GST_BUFFER_SIZE(buf)); - memcpy(GST_BUFFER_DATA(buf), - PyString_AsString(data), - PyString_Size(data)); - Py_INCREF(Py_None); - return Py_None; override-slot GstBuffer.tp_str _wrap_gst_buffer_tp_str (PyGstMiniObject *self) Index: gstelement.override RCS file: /cvs/gstreamer/gst-python/gst/gstelement.override,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- gstelement.override 28 Sep 2005 12:17:29 -0000 1.12 +++ gstelement.override 28 Sep 2005 15:19:44 -0000 1.13 @@ -50,42 +50,6 @@ return ret; -override gst_element_get_pad_list noargs -_wrap_gst_element_get_pad_list(PyGObject *self) - GList *l, *pads; - PyObject *list; - pads = GST_ELEMENT_PADS(GST_ELEMENT(self->obj)); - list = PyList_New(0); - for (l = pads; l; l = l->next) { - GstPad *pad = (GstPad*)l->data; - PyList_Append(list, pygstobject_new(G_OBJECT(pad))); - return list; -override gst_element_get_pad_template_list noargs -_wrap_gst_element_get_pad_template_list(PyGObject *self) - pads = (GList*)gst_element_get_pad_template_list(GST_ELEMENT(self->obj)); override gst_element_set_state kwargs _wrap_gst_element_set_state(PyGObject *self, PyObject *args, PyObject *kwargs) @@ -154,48 +118,6 @@ return tuple; -/* override gst_element_query kwargs */ -/* static PyObject * */ -/* _wrap_gst_element_query(PyGObject *self, PyObject *args, PyObject *kwargs) */ -/* { */ -/* static char *kwlist[] = { "type", "format", NULL }; */ -/* GstQueryType type; */ -/* GstFormat format; */ -/* gint64 value = 0; */ -/* gboolean ret; */ -/* if (!PyArg_ParseTupleAndKeywords(args, kwargs, */ -/* "ii:GstElement.query", kwlist, */ -/* &type, &format)) */ -/* return NULL; */ -/* ret = gst_element_query(GST_ELEMENT(self->obj), type, &format, &value); */ -/* return PyLong_FromLongLong(value); */ -/* } */ -/* %% */ -override gst_element_convert kwargs -_wrap_gst_element_convert(PyGObject *self, PyObject *args, PyObject *kwargs) - static char *kwlist[] = { "src_format", "src_value", "dest_format", NULL }; - GstFormat src_format, dest_format; - PyObject *src_value_obj; - gint64 src_value, dest_value; - gboolean ret; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iOi:GstElement.convert", kwlist, &src_format, &src_value_obj, &dest_format)) - src_value = PyLong_AsLongLong(src_value_obj); - dest_value = 0; - ret = gst_element_convert(GST_ELEMENT(self->obj), src_format, src_value, &dest_format, &dest_value); - if (!ret) { - PyErr_SetString(PyExc_RuntimeError, "conversion could not be performed"); - return PyInt_FromLong(dest_value); override gst_element_link_many args _wrap_gst_element_link_many(PyObject *self, PyObject *args) @@ -252,48 +174,48 @@ -/* override gst_element_link kwargs */ -/* _wrap_gst_element_link(PyGObject *self, PyObject *args, PyObject *kwargs) */ -/* static char *kwlist[] = { "dest", "filtercaps", NULL }; */ -/* PyGObject *dest; */ -/* PyObject *py_caps = NULL; */ -/* int ret; */ -/* GstCaps *caps = NULL; */ -/* gboolean caps_is_copy; */ +%% +override gst_element_link kwargs +static PyObject * +_wrap_gst_element_link(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "dest", "filtercaps", NULL }; + PyGObject *dest; + PyObject *py_caps = NULL; + int ret; + GstCaps *caps = NULL; + gboolean caps_is_copy; -/* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!|O:GstElement.link", */ -/* kwlist, &PyGstElement_Type, &dest, &py_caps)) */ -/* return NULL; */ -/* if (py_caps == NULL) */ -/* caps = NULL; */ -/* else */ -/* caps = pygst_caps_from_pyobject (py_caps, &caps_is_copy); */ -/* ret = gst_element_link_filtered(GST_ELEMENT(self->obj), GST_ELEMENT(dest->obj), caps); */ -/* if (caps && caps_is_copy) */ -/* gst_caps_unref (caps); */ -/* if (!ret) { */ -/* PyErr_Format(PyGstExc_LinkError, */ -/* "failed to link %s with %s", */ -/* GST_ELEMENT_NAME(self->obj), */ -/* GST_ELEMENT_NAME(dest->obj)); */ -/* } */ -/* return PyBool_FromLong(ret); */ + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!|O:GstElement.link", + kwlist, &PyGstElement_Type, &dest, &py_caps)) + return NULL; + if (py_caps == NULL) + caps = NULL; + else + caps = pygst_caps_from_pyobject (py_caps, &caps_is_copy); + ret = gst_element_link_filtered(GST_ELEMENT(self->obj), GST_ELEMENT(dest->obj), caps); + if (caps && caps_is_copy) + gst_caps_unref (caps); + if (!ret) { + PyErr_Format(PyGstExc_LinkError, + "failed to link %s with %s", + GST_ELEMENT_NAME(self->obj), + GST_ELEMENT_NAME(dest->obj)); + } + return PyBool_FromLong(ret); +} -/* override gst_element_link_filtered kwargs */ -/* _wrap_gst_element_link_filtered(PyGObject *self, PyObject *args, */ -/* PyObject *kwargs) */ -/* if (PyErr_Warn(PyExc_DeprecationWarning, "element.link_filtered is deprecated, use element.link") < 0) */ -/* return NULL; */ -/* return _wrap_gst_element_link (self, args, kwargs); */ +override gst_element_link_filtered kwargs +_wrap_gst_element_link_filtered(PyGObject *self, PyObject *args, + PyObject *kwargs) + if (PyErr_Warn(PyExc_DeprecationWarning, "element.link_filtered is deprecated, use element.link") < 0) + return NULL; + return _wrap_gst_element_link (self, args, kwargs); override gst_element_link_pads kwargs @@ -421,32 +343,32 @@ Py_INCREF(Py_None); -/* override gst_element_send_event kwargs */ -/* _wrap_gst_element_send_event(PyGObject *self, PyObject *args, PyObject *kwargs) */ -/* static char *kwlist[] = { "event", NULL }; */ -/* PyObject *py_event; */ -/* GstEvent *event = NULL; */ +override gst_element_send_event kwargs +_wrap_gst_element_send_event(PyGObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "event", NULL }; + PyObject *py_event; + GstEvent *event = NULL; -/* if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GstElement.send_event", kwlist, &py_event)) */ -/* if (pyg_boxed_check(py_event, GST_TYPE_EVENT)) */ -/* event = pyg_boxed_get(py_event, GstEvent); */ -/* else { */ -/* PyErr_SetString(PyExc_TypeError, "event should be a GstEvent"); */ + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GstElement.send_event", kwlist, &py_event)) + if (pyg_boxed_check(py_event, GST_TYPE_EVENT)) + event = pyg_boxed_get(py_event, GstEvent); + else { + PyErr_SetString(PyExc_TypeError, "event should be a GstEvent"); -/* /\* The pipeline unrefs the event, but we want to keep the ownership *\/ */ -/* gst_event_ref(event); */ + /* The pipeline unrefs the event, but we want to keep the ownership */ + gst_event_ref(event); -/* ret = gst_element_send_event(GST_ELEMENT(self->obj), event); */ + ret = gst_element_send_event(GST_ELEMENT(self->obj), event); override gst_element_query_position args Index: gstevent.override RCS file: /cvs/gstreamer/gst-python/gst/gstevent.override,v retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gstevent.override 28 Sep 2005 10:58:50 -0000 1.7 +++ gstevent.override 28 Sep 2005 15:19:44 -0000 1.8 @@ -20,41 +20,6 @@ * Author: Johan Dahlin <jo...@gn...> */ -override gst_event_discont_get_value kwargs -_wrap_gst_event_discont_get_value(PyGstMiniObject *self, PyObject *args, PyObject *kwargs) - static char *kwlist[] = { "format", NULL}; - PyObject *pformat; - GstFormat format; - gint64 start, end; - PyObject *ret; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "O:GstEvent.discont_get_value", - kwlist, &pformat)) - if (pyg_enum_get_value (GST_TYPE_FORMAT, pformat, (gint *) &format)) { - PyErr_SetString(PyExc_TypeError, "argument should be a GstFormat"); - if (GST_EVENT_TYPE(self->obj) != GST_EVENT_DISCONTINUOUS) { - PyErr_SetString(PyExc_TypeError, "Event is not a discontinuous event"); - if (!gst_event_discont_get_value(GST_EVENT (self->obj), format, - &start, &end)) { - Py_INCREF (Py_None); - return Py_None; - ret = PyList_New(0); - PyList_Append(ret, PyLong_FromLongLong(start)); - PyList_Append(ret, PyLong_FromLongLong(end)); - return ret; override gst_event_get_structure noargs _wrap_gst_event_get_structure(PyGstMiniObject *self) |
From: <bi...@fr...> - 2005-09-28 17:08:25
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Sep 28 2005 10:08:23 PDT Log message: * gst/gst.defs: * gst/libs.defs: Updated definitions * gst/gst.override: * gst/gststructure.override: Added functions not to be used from python, or that have better existing equivalents, to the ignore list. Modified files: . : ChangeLog gst : gst.defs gst.override gststructure.override libs.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.257&r2=1.258 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.61&r2=1.62 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.71&r2=1.72 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gststructure.override.diff?r1=1.4&r2=1.5 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/libs.defs.diff?r1=1.3&r2=1.4 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.257 retrieving revision 1.258 diff -u -d -r1.257 -r1.258 --- ChangeLog 28 Sep 2005 15:48:10 -0000 1.257 +++ ChangeLog 28 Sep 2005 17:08:11 -0000 1.258 @@ -1,3 +1,13 @@ +2005-09-28 Edward Hervey <ed...@fl...> + + * gst/gst.defs: + * gst/libs.defs: + Updated definitions + * gst/gst.override: + * gst/gststructure.override: + Added functions not to be used from python, or that have better + existing equivalents, to the ignore list. + 2005-09-28 Thomas Vander Stichele <thomas at apestaart dot org> * testsuite/common.py: Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.61 retrieving revision 1.62 diff -u -d -r1.61 -r1.62 --- gst.defs 28 Sep 2005 14:34:52 -0000 1.61 +++ gst.defs 28 Sep 2005 17:08:11 -0000 1.62 @@ -842,9 +842,9 @@ (return-type "gboolean") ) -(define-method get_clock +(define-method provide_clock (of-object "GstElement") - (c-name "gst_element_get_clock") + (c-name "gst_element_provide_clock") (return-type "GstClock*") (caller-owns-return #t) @@ -1186,7 +1186,7 @@ ) -(define-virtual get_clock +(define-virtual provide_clock Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.71 retrieving revision 1.72 diff -u -d -r1.71 -r1.72 --- gst.override 28 Sep 2005 15:19:44 -0000 1.71 +++ gst.override 28 Sep 2005 17:08:11 -0000 1.72 @@ -302,6 +302,8 @@ gst_error_get_message gst_parse_launchv gst_trace_read_tsc + gst_debug_log + gst_debug_log_default %% override-slot GstPluginFeature.tp_repr static PyObject * Index: gststructure.override RCS file: /cvs/gstreamer/gst-python/gst/gststructure.override,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gststructure.override 20 Sep 2005 14:50:54 -0000 1.4 +++ gststructure.override 28 Sep 2005 17:08:11 -0000 1.5 @@ -20,6 +20,21 @@ * Author: Johan Dahlin <jo...@gn...> */ +ignore + gst_structure_get_boolean + gst_structure_get_int + gst_structure_get_fourcc + gst_structure_get_double + gst_structure_get_date + gst_structure_get_clock_time + gst_structure_get_string + gst_structure_get_value + gst_structure_set + gst_structure_get_name_id + gst_structure_id_get_value + gst_structure_id_set_value + gst_structure_set_parent_refcount +%% override gst_structure_new kwargs static int _wrap_gst_structure_new(PyGBoxed *self, PyObject *args, PyObject *kwargs) @@ -110,48 +125,6 @@ return Py_None; } -override gst_structure_get_int kwargs -static PyObject * -_wrap_gst_structure_get_int(PyObject *self, PyObject *args, PyObject *kwargs) -{ - static char *kwlist[] = { "fieldname", NULL }; - char *fieldname; - int value; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "s:GstStructure.get_int", - kwlist, &fieldname)) - return NULL; - - if (gst_structure_get_int(pyg_boxed_get(self, GstStructure), fieldname, &value)) - return PyInt_FromLong(value); - /* XXX: Raise exception? */ - Py_INCREF(Py_None); - return Py_None; -} -%% -override gst_structure_get_double kwargs -_wrap_gst_structure_get_double(PyObject *self, PyObject *args, PyObject *kwargs) - gdouble value; - "s:GstStructure.get_double", - if (gst_structure_get_double(pyg_boxed_get(self, GstStructure), fieldname, &value)) - return PyFloat_FromDouble(value); define GstStructure.has_key args static PyObject* _wrap_gst_structure_has_key(PyGObject *self, PyObject *args) Index: libs.defs RCS file: /cvs/gstreamer/gst-python/gst/libs.defs,v retrieving revision 1.3 diff -u -d -r1.3 -r1.4 --- libs.defs 28 Sep 2005 10:58:50 -0000 1.3 +++ libs.defs 28 Sep 2005 17:08:11 -0000 1.4 @@ -61,9 +61,18 @@ +(define-function gst_controller_new_list + (c-name "gst_controller_new_list") + (is-constructor-of "GstController") + (return-type "GstController*") + (parameters + '("GObject*" "object") + '("GList*" "list") + ) +) (define-function gst_controller_new (c-name "gst_controller_new") - (is-constructor-of "GstController") (return-type "GstController*") (parameters '("GObject*" "object") |
From: <bi...@fr...> - 2005-09-29 16:16:51
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Sep 29 2005 09:16:40 PDT Log message: * gst/gst.defs: Definitions update Modified files: . : ChangeLog gst : gst.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.263&r2=1.264 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.64&r2=1.65 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.263 retrieving revision 1.264 diff -u -d -r1.263 -r1.264 --- ChangeLog 29 Sep 2005 15:42:31 -0000 1.263 +++ ChangeLog 29 Sep 2005 16:16:28 -0000 1.264 @@ -1,5 +1,10 @@ 2005-09-29 Edward Hervey <ed...@fl...> + * gst/gst.defs: + Definitions update + +2005-09-29 Edward Hervey <ed...@fl...> * gst/gst.override: * gst/gstlibs.override: Proper wrapping of GstController Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- gst.defs 29 Sep 2005 13:56:03 -0000 1.64 +++ gst.defs 29 Sep 2005 16:16:28 -0000 1.65 @@ -359,7 +359,13 @@ (define-method add_signal_watch (of-object "GstBus") (c-name "gst_bus_add_signal_watch") - (return-type "guint") + (return-type "none") +) +(define-method remove_signal_watch + (of-object "GstBus") + (c-name "gst_bus_remove_signal_watch") ) |
From: <bi...@fr...> - 2005-09-30 15:53:34
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Fri Sep 30 2005 08:53:19 PDT Log message: * gst/gstpad.override: Removed overriding of gst_caps_get_negotiated_caps, the codegenerator handles it much better (hint:don't copy) Modified files: . : ChangeLog gst : gstpad.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.267&r2=1.268 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstpad.override.diff?r1=1.14&r2=1.15 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.267 retrieving revision 1.268 diff -u -d -r1.267 -r1.268 --- ChangeLog 30 Sep 2005 15:23:15 -0000 1.267 +++ ChangeLog 30 Sep 2005 15:53:07 -0000 1.268 @@ -1,3 +1,9 @@ +2005-09-30 Edward Hervey <ed...@fl...> + + * gst/gstpad.override: + Removed overriding of gst_caps_get_negotiated_caps, the codegenerator + handles it much better (hint:don't copy) 2005-09-30 Thomas Vander Stichele <thomas at apestaart dot org> * gst/gst.defs: Index: gstpad.override RCS file: /cvs/gstreamer/gst-python/gst/gstpad.override,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- gstpad.override 28 Sep 2005 12:17:29 -0000 1.14 +++ gstpad.override 30 Sep 2005 15:53:07 -0000 1.15 @@ -493,26 +493,6 @@ } return PyBool_FromLong(ret); } - -%% -override gst_pad_get_negotiated_caps -static PyObject * -_wrap_gst_pad_get_negotiated_caps(PyGObject *self) -{ - const GstCaps *ret; - ret = gst_pad_get_negotiated_caps(GST_PAD(self->obj)); - /* pyg_boxed_new handles NULL checking */ - return pyg_boxed_new(GST_TYPE_CAPS, ret, TRUE, TRUE); -} -override gst_pad_get_negotiated_caps noargs - GstCaps *ret = (GstCaps*)gst_pad_get_negotiated_caps(GST_PAD(self->obj)); %% override gst_pad_get_pad_template_caps noargs static PyObject * |
From: <bi...@fr...> - 2005-10-06 10:52:09
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Oct 06 2005 03:52:07 PDT Log message: * gst/pygstminiobject.c: Dooh, PyGstMiniObject doesn't need cyclic garbage collection ! Bye, bye Python refcounting (and refcounting bugs). Modified files: . : ChangeLog gst : pygstminiobject.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.286&r2=1.287 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstminiobject.c.diff?r1=1.10&r2=1.11 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.286 retrieving revision 1.287 diff -u -d -r1.286 -r1.287 --- ChangeLog 6 Oct 2005 07:17:16 -0000 1.286 +++ ChangeLog 6 Oct 2005 10:51:55 -0000 1.287 @@ -1,3 +1,9 @@ +2005-10-06 Edward Hervey <ed...@fl...> + + * gst/pygstminiobject.c: + Dooh, PyGstMiniObject doesn't need cyclic garbage collection ! + Bye, bye Python refcounting (and refcounting bugs). 2005-10-06 Thomas Vander Stichele <thomas at apestaart dot org> * testsuite/test_ghostpad.py: Index: pygstminiobject.c RCS file: /cvs/gstreamer/gst-python/gst/pygstminiobject.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- pygstminiobject.c 28 Sep 2005 10:58:50 -0000 1.10 +++ pygstminiobject.c 6 Oct 2005 10:51:55 -0000 1.11 @@ -28,8 +28,8 @@ /* static GQuark pygstminiobject_wrapper_key = 0; */ static void pygstminiobject_dealloc(PyGstMiniObject *self); -static int pygstminiobject_traverse(PyGstMiniObject *self, visitproc visit, void *arg); -static int pygstminiobject_clear(PyGstMiniObject *self); +/* static int pygstminiobject_traverse(PyGstMiniObject *self, visitproc visit, void *arg); */ +/* static int pygstminiobject_clear(PyGstMiniObject *self); */ GST_DEBUG_CATEGORY_EXTERN (pygst_debug); #define GST_CAT_DEFAULT pygst_debug @@ -98,7 +98,7 @@ s = strrchr(class_name, '.'); if (s != NULL) class_name = s + 1; - + type->ob_type = &PyType_Type; type->tp_alloc = PyType_GenericAlloc; type->tp_new = PyType_GenericNew; @@ -115,9 +115,11 @@ if (gtype) { o = pyg_type_wrapper_new(gtype); PyDict_SetItemString(type->tp_dict, "__gtype__", o); + GST_INFO ("Decrement refcount %p", o); Py_DECREF(o); /* stash a pointer to the python class with the GType */ + GST_INFO ("Increment refcount %p", type); Py_INCREF(type); g_type_set_qdata(gtype, pygstminiobject_class_key, type); } @@ -142,7 +144,6 @@ PyGILState_STATE state; g_assert (obj); - Py_INCREF (self); GST_DEBUG ("inserting self %p in the table for object %p", self, obj); state = pyg_gil_state_ensure (); g_hash_table_insert (_miniobjs, (gpointer) obj, (gpointer) self); @@ -182,6 +183,7 @@ /* make sure the lookup returned our object */ g_assert (self->obj); g_assert (self->obj == obj); + GST_INFO ("Increment refcount %p", self); Py_INCREF (self); } else { GST_DEBUG ("have to create wrapper for object %p", obj); @@ -189,11 +191,11 @@ PyTypeObject *tp = pygstminiobject_lookup_class (G_OBJECT_TYPE (obj)); if (!tp) g_warning ("Couldn't get class for type object : %p", obj); - /* need to bump type refcount if created with - pygstminiobject_new_with_interfaces(). fixes bug #141042 */ - if (tp->tp_flags & Py_TPFLAGS_HEAPTYPE) + if (tp->tp_flags & Py_TPFLAGS_HEAPTYPE) { + GST_INFO ("Increment refcount %p", tp); Py_INCREF (tp); - self = PyObject_GC_New (PyGstMiniObject, tp); + } + self = PyObject_New (PyGstMiniObject, tp); if (self == NULL) return NULL; self->obj = gst_mini_object_ref (obj); @@ -201,15 +203,12 @@ self->inst_dict = NULL; self->weakreflist = NULL; - Py_INCREF (self); - /* save wrapper pointer so we can access it later */ GST_DEBUG ("inserting self %p in the table for object %p", self, obj); state = pyg_gil_state_ensure (); g_hash_table_insert (_miniobjs, (gpointer) obj, (gpointer) self); pyg_gil_state_release (state); - PyObject_GC_Track ((PyObject *)self); return (PyObject *) self; } @@ -221,15 +220,10 @@ + GST_INFO ("At the beginning %p", self); state = pyg_gil_state_ensure(); - PyObject_ClearWeakRefs((PyObject *)self); - PyObject_GC_UnTrack((PyObject *)self); if (self->obj) { - /* the following causes problems with subclassed types */ - /* self->ob_type->tp_free((PyObject *)self); */ GST_DEBUG ("removing self %p from the table for object %p", self, self->obj); g_assert (g_hash_table_remove (_miniobjs, (gpointer) self->obj)); @@ -243,8 +237,9 @@ self->inst_dict = NULL; - PyObject_GC_Del(self); + self->ob_type->tp_free((PyObject *) self); pyg_gil_state_release(state); + GST_INFO ("At the end %p", self); static int @@ -274,47 +269,11 @@ return PyString_FromString(buf); -static int -pygstminiobject_traverse(PyGstMiniObject *self, visitproc visit, void *arg) -{ - int ret = 0; - if (self->inst_dict) ret = visit(self->inst_dict, arg); - if (ret != 0) return ret; - if (self->obj && self->obj->refcount == 1) - ret = visit((PyObject *)self, arg); - return 0; -} -pygstminiobject_clear(PyGstMiniObject *self) - if (self->inst_dict) { - Py_DECREF(self->inst_dict); - } - self->inst_dict = NULL; - if (self->obj) { - GST_DEBUG ("removing self %p from the table for object %p", self, - self->obj); - g_assert (g_hash_table_remove (_miniobjs, (gpointer) self->obj)); - gst_mini_object_unref (self->obj); - GST_DEBUG ("setting self %p -> obj to NULL", self); - self->obj = NULL; static void pygstminiobject_free(PyObject *op) { - PyObject_GC_Del(op); + PyObject_FREE(op); @@ -429,11 +388,10 @@ (getattrofunc)0, /* tp_getattro */ (setattrofunc)0, /* tp_setattro */ 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | - Py_TPFLAGS_HAVE_GC, /* tp_flags */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ NULL, /* Documentation string */ - (traverseproc)pygstminiobject_traverse, /* tp_traverse */ - (inquiry)pygstminiobject_clear, /* tp_clear */ + (traverseproc)0, /* tp_traverse */ + (inquiry)0, /* tp_clear */ (richcmpfunc)0, /* tp_richcompare */ offsetof(PyGstMiniObject, weakreflist), /* tp_weaklistoffset */ (getiterfunc)0, /* tp_iter */ |
From: <bi...@fr...> - 2005-10-06 13:51:45
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Oct 06 2005 06:51:43 PDT Log message: * gst/gstbuffer.override: (_wrap_gst_buffer__get_caps): Proper wrapping of the GstBuffer.caps attribute * gst/gstmodule.c: (init_gst): * gst/pygstminiobject.c: (pygstminiobject_register_class): gst-debug initialisation should happen before anything else if we want the debugging functions to work. Modified files: . : ChangeLog gst : gstbuffer.override gstmodule.c pygstminiobject.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.288&r2=1.289 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbuffer.override.diff?r1=1.17&r2=1.18 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmodule.c.diff?r1=1.31&r2=1.32 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstminiobject.c.diff?r1=1.11&r2=1.12 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.288 retrieving revision 1.289 diff -u -d -r1.288 -r1.289 --- ChangeLog 6 Oct 2005 10:54:14 -0000 1.288 +++ ChangeLog 6 Oct 2005 13:51:30 -0000 1.289 @@ -1,3 +1,13 @@ +2005-10-06 Edward Hervey <ed...@fl...> + + * gst/gstbuffer.override: (_wrap_gst_buffer__get_caps): + Proper wrapping of the GstBuffer.caps attribute + * gst/gstmodule.c: (init_gst): + * gst/pygstminiobject.c: (pygstminiobject_register_class): + gst-debug initialisation should happen before anything else if we + want the debugging functions to work. 2005-10-06 Thomas Vander Stichele <thomas at apestaart dot org> * configure.ac: Index: gstbuffer.override RCS file: /cvs/gstreamer/gst-python/gst/gstbuffer.override,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- gstbuffer.override 5 Oct 2005 14:26:24 -0000 1.17 +++ gstbuffer.override 6 Oct 2005 13:51:31 -0000 1.18 @@ -44,6 +44,7 @@ int size = 0; int buf_size = -1; + GST_INFO("self:%p", self); if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|z#i:GstBuffer.__init__", kwlist, &data, &size, &buf_size)) return -1; @@ -60,7 +61,9 @@ } self->obj = GST_MINI_OBJECT(gst_buffer_new_and_alloc(buf_size)); - + GST_INFO ("pyo:%p pyr:%d minio:%p minir:%d", + self, ((PyObject*)self)->ob_refcnt, + self->obj, GST_MINI_OBJECT_REFCOUNT_VALUE(self->obj)); if (!self->obj) { PyErr_SetString(PyExc_RuntimeError, "could not create GstBuffer object"); @@ -287,6 +290,7 @@ { GstBuffer *buf = pyg_boxed_get(self, GstBuffer); + GST_INFO("INCREF"); if (gst_buffer_is_writable (buf)) { Py_INCREF (self); return self; @@ -503,3 +507,33 @@ Py_INCREF(Py_None); return Py_None; } +%% +override-attr GstBuffer.caps +static PyObject * +_wrap_gst_buffer__get_caps (PyObject *self, void *closure) +{ + GstMiniObject *miniobject; + GstCaps *ret; + miniobject = pygstminiobject_get (self); + g_assert (miniobject); + pyg_begin_allow_threads; + ret = gst_buffer_get_caps(GST_BUFFER(miniobject)); + pyg_end_allow_threads; + return pyg_boxed_new (GST_TYPE_CAPS, ret, FALSE, TRUE); +} +static int +_wrap_gst_buffer__set_caps (PyGstMiniObject *self, PyObject *value, void *closure) + GstCaps *caps; + g_assert (self); + caps = pygst_caps_from_pyobject (value, NULL); + if (PyErr_Occurred()) + return -1; + gst_buffer_set_caps(GST_BUFFER(self->obj), caps); + return 0; Index: gstmodule.c RCS file: /cvs/gstreamer/gst-python/gst/gstmodule.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- gstmodule.c 6 Oct 2005 09:49:58 -0000 1.31 +++ gstmodule.c 6 Oct 2005 13:51:31 -0000 1.32 @@ -148,6 +148,11 @@ g_free (argv); } + /* Initialize debugging category */ + GST_DEBUG_CATEGORY_INIT (pygst_debug, "pygst", 0, "GStreamer python bindings"); + GST_DEBUG_CATEGORY_INIT (python_debug, "python", + GST_DEBUG_FG_GREEN, "python code using gst-python"); /* _pygst_register_boxed_types (NULL); */ pygobject_register_sinkfunc(GST_TYPE_OBJECT, pygstobject_sink); @@ -208,11 +213,6 @@ PyModule_AddObject (m, "TYPE_TYPE_FIND_FACTORY", pyg_type_wrapper_new(GST_TYPE_TYPE_FIND_FACTORY)); - /* Initialize debugging category */ - GST_DEBUG_CATEGORY_INIT (pygst_debug, "pygst", 0, "GStreamer python bindings"); - GST_DEBUG_CATEGORY_INIT (python_debug, "python", - GST_DEBUG_FG_GREEN, "python code using gst-python"); - g_timeout_add_full (0, 100, python_do_pending_calls, NULL, NULL); if (PyErr_Occurred ()) { Index: pygstminiobject.c RCS file: /cvs/gstreamer/gst-python/gst/pygstminiobject.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- pygstminiobject.c 6 Oct 2005 10:51:55 -0000 1.11 +++ pygstminiobject.c 6 Oct 2005 13:51:31 -0000 1.12 @@ -115,11 +115,9 @@ if (gtype) { o = pyg_type_wrapper_new(gtype); PyDict_SetItemString(type->tp_dict, "__gtype__", o); - GST_INFO ("Decrement refcount %p", o); Py_DECREF(o); /* stash a pointer to the python class with the GType */ - GST_INFO ("Increment refcount %p", type); Py_INCREF(type); g_type_set_qdata(gtype, pygstminiobject_class_key, type); } |
From: <bi...@fr...> - 2005-10-06 15:04:09
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Oct 06 2005 08:03:52 PDT Log message: * gst/gstcaps.override: (_wrap_gst_caps_new_empty): new caps should be freed on dealloc... Modified files: . : ChangeLog gst : gstcaps.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.290&r2=1.291 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstcaps.override.diff?r1=1.7&r2=1.8 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.290 retrieving revision 1.291 diff -u -d -r1.290 -r1.291 --- ChangeLog 6 Oct 2005 14:43:15 -0000 1.290 +++ ChangeLog 6 Oct 2005 15:03:40 -0000 1.291 @@ -1,3 +1,8 @@ +2005-10-06 Edward Hervey <ed...@fl...> + + * gst/gstcaps.override: (_wrap_gst_caps_new_empty): + new caps should be freed on dealloc... 2005-10-06 Thomas Vander Stichele <thomas at apestaart dot org> * gst/gstcaps.override: Index: gstcaps.override RCS file: /cvs/gstreamer/gst-python/gst/gstcaps.override,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gstcaps.override 6 Oct 2005 14:43:15 -0000 1.7 +++ gstcaps.override 6 Oct 2005 15:03:40 -0000 1.8 @@ -101,7 +101,7 @@ /* we wrap caps_new, caps_from_string and caps_new_full */ len = PyTuple_Size(args); self->gtype = GST_TYPE_CAPS; - self->free_on_dealloc = FALSE; + self->free_on_dealloc = TRUE; if (len == 0) { /* 0 length creates a new empty caps */ |
From: <bi...@fr...> - 2005-10-11 14:52:04
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Oct 11 2005 07:52:14 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: Reviewed by Edward Hervey <ed...@fl...> * gst/gst.defs: * gst/gst.override: (_wrap_gst_tag_list_get): couple of memleak fixes Closes #171287 Modified files: . : ChangeLog gst : gst.defs gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.59&r2=1.157.2.60 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.25.2.7&r2=1.25.2.8 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.46.2.11&r2=1.46.2.12 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.59 retrieving revision 1.157.2.60 diff -u -d -r1.157.2.59 -r1.157.2.60 --- ChangeLog 11 Oct 2005 14:39:13 -0000 1.157.2.59 +++ ChangeLog 11 Oct 2005 14:52:01 -0000 1.157.2.60 @@ -1,3 +1,12 @@ +2005-10-11 Richard Hult <ri...@im...> + + Reviewed by Edward Hervey <ed...@fl...> + * gst/gst.defs: + * gst/gst.override: (_wrap_gst_tag_list_get): + couple of memleak fixes + Closes #171287 2005-10-11 Michael Scherer <mi...@ma...> Reviewed by Edward Hervey <ed...@fl...> Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.25.2.7 retrieving revision 1.25.2.8 diff -u -d -r1.25.2.7 -r1.25.2.8 --- gst.defs 8 Sep 2005 14:07:33 -0000 1.25.2.7 +++ gst.defs 11 Oct 2005 14:52:01 -0000 1.25.2.8 @@ -1742,6 +1742,7 @@ (of-object "GstElementFactory") (c-name "gst_element_factory_create") (return-type "GstElement*") + (caller-owns-return #t) (parameters '("const-gchar*" "name" (null-ok) (default "NULL")) ) Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.46.2.11 retrieving revision 1.46.2.12 diff -u -d -r1.46.2.11 -r1.46.2.12 --- gst.override 8 Sep 2005 14:07:33 -0000 1.46.2.11 +++ gst.override 11 Oct 2005 14:52:01 -0000 1.46.2.12 @@ -425,9 +425,10 @@ } } - if (val == NULL) - val = failobj; - Py_INCREF(val); + if (val == NULL) { + Py_INCREF(Py_None); + return Py_None; + } return val; } %% |
From: <bi...@fr...> - 2005-10-13 10:51:32
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Oct 13 2005 03:51:31 PDT Log message: Reviewed by Edward Hervey <ed...@fl...> * gst/gstobject.override: (_wrap_gst_object_tp_traverse): Py_VISIT() might make code cleaner... but it doesn't work with python < 2.4 Closes bug #318692 Modified files: . : ChangeLog gst : gstobject.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.310&r2=1.311 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstobject.override.diff?r1=1.5&r2=1.6 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.310 retrieving revision 1.311 diff -u -d -r1.310 -r1.311 --- ChangeLog 13 Oct 2005 10:41:06 -0000 1.310 +++ ChangeLog 13 Oct 2005 10:51:19 -0000 1.311 @@ -1,3 +1,12 @@ +2005-10-13 Alessandro Decina <ale...@nn...> + + Reviewed by Edward Hervey <ed...@fl...> + * gst/gstobject.override: (_wrap_gst_object_tp_traverse): + Py_VISIT() might make code cleaner... but it doesn't work with + python < 2.4 + Closes bug #318692 2005-10-13 Edward Hervey <ed...@fl...> * examples/gstfile.py: Index: gstobject.override RCS file: /cvs/gstreamer/gst-python/gst/gstobject.override,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gstobject.override 13 Oct 2005 10:41:06 -0000 1.5 +++ gstobject.override 13 Oct 2005 10:51:19 -0000 1.6 @@ -62,7 +62,8 @@ GST_LOG_OBJECT(self->obj, "gst.Object.tp_traverse, arg:%p", arg); - Py_VISIT(self->inst_dict); + if (self->inst_dict) ret = visit(self->inst_dict, arg); + if (ret != 0) return ret; GST_LOG_OBJECT(self->obj, "visited self->inst_dict"); @@ -70,9 +71,14 @@ PyGClosure *closure = tmp->data; GST_DEBUG_OBJECT (self->obj, "visiting closures"); - Py_VISIT(closure->callback); - Py_VISIT(closure->extra_args); - Py_VISIT(closure->swap_data); + if (closure->callback) ret = visit(closure->callback, arg); + if (ret != 0) return ret; + if (closure->extra_args) ret = visit(closure->extra_args, arg); + if (closure->swap_data) ret = visit(closure->swap_data, arg); } if (self->obj && GST_OBJECT_REFCOUNT_VALUE(self->obj) == 1) { |
From: <bi...@fr...> - 2005-10-13 10:58:31
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Oct 13 2005 03:58:28 PDT Log message: Reviewed by Edward Hervey <ed...@fl...> * gst/gst.override: * gst/gstevent.override: * gst/gstpad.override: * gst/gstquery.override: Use PyList_SetItem() instead of PyList_Append() for faster list creation and proper python refcounting. Closes bug #318684 Modified files: . : ChangeLog gst : gst.override gstevent.override gstpad.override gstquery.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.311&r2=1.312 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.80&r2=1.81 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstevent.override.diff?r1=1.11&r2=1.12 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstpad.override.diff?r1=1.20&r2=1.21 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstquery.override.diff?r1=1.5&r2=1.6 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.311 retrieving revision 1.312 diff -u -d -r1.311 -r1.312 --- ChangeLog 13 Oct 2005 10:51:19 -0000 1.311 +++ ChangeLog 13 Oct 2005 10:58:16 -0000 1.312 @@ -2,6 +2,18 @@ Reviewed by Edward Hervey <ed...@fl...> + * gst/gst.override: + * gst/gstevent.override: + * gst/gstpad.override: + * gst/gstquery.override: + Use PyList_SetItem() instead of PyList_Append() for faster list creation + and proper python refcounting. + Closes bug #318684 + +2005-10-13 Alessandro Decina <ale...@nn...> + Reviewed by Edward Hervey <ed...@fl...> * gst/gstobject.override: (_wrap_gst_object_tp_traverse): Py_VISIT() might make code cleaner... but it doesn't work with python < 2.4 Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.80 retrieving revision 1.81 diff -u -d -r1.80 -r1.81 --- gst.override 13 Oct 2005 10:41:06 -0000 1.80 +++ gst.override 13 Oct 2005 10:58:16 -0000 1.81 @@ -388,15 +388,16 @@ GstRegistry *registry; GList *l, *paths; PyObject *list; + gint i; registry = GST_REGISTRY (self->obj); paths = gst_registry_get_path_list (registry); - list = PyList_New (0); - for (l = paths; l; l = l->next) { + list = PyList_New (g_list_length(paths)); + for (l = paths, i = 0; l; l = l->next, ++i) { gchar *path = (gchar *) l->data; - PyList_Append (list, PyString_FromString(path)); + PyList_SetItem (list, i, PyString_FromString(path)); } g_list_free (paths); @@ -411,15 +412,16 @@ GList *l, *plugins; - + gint i; + plugins = gst_registry_get_plugin_list (registry); - for (l = plugins; l; l = l->next) { + list = PyList_New (g_list_length(plugins)); + for (l = plugins, i = 0; l; l = l->next, ++i) { GstPlugin *plugin = (GstPlugin *) l->data; - PyList_Append (list, pygobject_new (G_OBJECT (plugin))); + PyList_SetItem (list, i, pygobject_new (G_OBJECT (plugin))); g_list_free (plugins); @@ -438,6 +440,7 @@ GstRegistry *registry; GList *l, *features; PyObject *list; if (!PyArg_ParseTupleAndKeywords(args, kwargs, @@ -450,10 +453,10 @@ features = gst_registry_get_feature_list (registry, type); - list = PyList_New (0); - for (l = features; l; l = l->next) { + list = PyList_New (g_list_length(features)); + for (l = features, i = 0; l; l = l->next, ++i) { GstPluginFeature *feature = (GstPluginFeature *) l->data; - PyList_Append (list, pygobject_new (G_OBJECT (feature))); + PyList_SetItem (list, i, pygobject_new (G_OBJECT (feature))); } g_list_free (features); @@ -471,7 +474,7 @@ "s:GstRegistry.get_feature_list_by_plugin", kwlist, &name)) @@ -481,10 +484,10 @@ features = gst_registry_get_feature_list_by_plugin (registry, name); @@ -539,15 +542,14 @@ { GList *l, *xml_elements; PyObject *py_list; - - py_list = PyList_New(0); xml_elements = gst_xml_get_topelements(GST_XML(self->obj)); - for (l = xml_elements; l; l = l->next) { - GstElement *element = (GstElement*)l->data; - PyList_Append(py_list, pygstobject_new(G_OBJECT(element))); - gst_object_unref (element); + py_list = PyList_New(g_list_length(xml_elements)); + for (l = xml_elements, i = 0; l; l = l->next, ++i) { + GstElement *element = (GstElement*)l->data; + PyList_SetItem(py_list, i, pygstobject_new(G_OBJECT(element))); + gst_object_unref (element); return py_list; @@ -660,11 +662,11 @@ Py_INCREF (Py_None); return Py_None; - ret = PyList_New(0); len = g_strv_length (tab); + ret = PyList_New(len); for (i = 0; i < len; i++) { - PyList_Append(ret, PyString_FromString(tab[i])); + PyList_SetItem(ret, i, PyString_FromString(tab[i])); return ret; Index: gstevent.override RCS file: /cvs/gstreamer/gst-python/gst/gstevent.override,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- gstevent.override 12 Oct 2005 01:53:56 -0000 1.11 +++ gstevent.override 13 Oct 2005 10:58:16 -0000 1.12 @@ -68,13 +68,13 @@ gst_event_parse_newsegment (GST_EVENT(self->obj), &update, &rate, &format, &start_value, &stop_value, &base); - ret = PyList_New (0); - PyList_Append (ret, PyBool_FromLong(update)); - PyList_Append (ret, PyFloat_FromDouble(rate)); - PyList_Append (ret, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); - PyList_Append (ret, PyLong_FromUnsignedLongLong(start_value)); - PyList_Append (ret, PyLong_FromUnsignedLongLong(stop_value)); - PyList_Append (ret, PyLong_FromUnsignedLongLong(base)); + ret = PyList_New (6); + PyList_SetItem (ret, 0, PyBool_FromLong(update)); + PyList_SetItem (ret, 1, PyFloat_FromDouble(rate)); + PyList_SetItem (ret, 2, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); + PyList_SetItem (ret, 3, PyLong_FromUnsignedLongLong(start_value)); + PyList_SetItem (ret, 4, PyLong_FromUnsignedLongLong(stop_value)); + PyList_SetItem (ret, 5, PyLong_FromUnsignedLongLong(base)); return ret; } @@ -115,10 +115,10 @@ gst_event_parse_qos (GST_EVENT(self->obj), &proportion, &diff, ×tamp); - ret = PyList_New (0); - PyList_Append (ret, PyFloat_FromDouble(proportion)); - PyList_Append (ret, PyLong_FromLongLong(diff)); - PyList_Append (ret, PyLong_FromUnsignedLongLong(timestamp)); + ret = PyList_New (3); + PyList_SetItem (ret, 0, PyFloat_FromDouble(proportion)); + PyList_SetItem (ret, 1, PyLong_FromLongLong(diff)); + PyList_SetItem (ret, 2, PyLong_FromUnsignedLongLong(timestamp)); return ret; @@ -144,14 +144,15 @@ gst_event_parse_seek (GST_EVENT(self->obj), &rate, &format, &flags, &cur_type, &cur, &stop_type, &stop); - PyList_Append (ret, PyFloat_FromDouble(rate)); - PyList_Append (ret, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); - PyList_Append (ret, pyg_flags_from_gtype (GST_TYPE_SEEK_FLAGS, flags)); - PyList_Append (ret, pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, cur_type)); - PyList_Append (ret, PyLong_FromUnsignedLongLong (cur)); - PyList_Append (ret, pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, stop_type)); - PyList_Append (ret, PyLong_FromUnsignedLongLong (stop)); + ret = PyList_New (7); + PyList_SetItem (ret, 0, PyFloat_FromDouble(rate)); + PyList_SetItem (ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); + PyList_SetItem (ret, 2, pyg_flags_from_gtype (GST_TYPE_SEEK_FLAGS, flags)); + PyList_SetItem (ret, 3, pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, cur_type)); + PyList_SetItem (ret, 4, PyLong_FromUnsignedLongLong (cur)); + PyList_SetItem (ret, 5, + pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, stop_type)); + PyList_SetItem (ret, 6, PyLong_FromUnsignedLongLong (stop)); Index: gstpad.override RCS file: /cvs/gstreamer/gst-python/gst/gstpad.override,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- gstpad.override 13 Oct 2005 10:41:06 -0000 1.20 +++ gstpad.override 13 Oct 2005 10:58:16 -0000 1.21 @@ -674,14 +674,14 @@ return NULL; if ((gst_pad_query_position(GST_PAD (self->obj), (GstFormat*) &format, &cur, &end))) { - PyList_Append(ret, PyLong_FromLongLong(cur)); - PyList_Append(ret, PyLong_FromLongLong(end)); - PyList_Append(ret, pyg_enum_from_gtype (GST_TYPE_FORMAT, format )); + ret = PyList_New(3); + PyList_SetItem(ret, 0, PyLong_FromLongLong(cur)); + PyList_SetItem(ret, 1, PyLong_FromLongLong(end)); + PyList_SetItem(ret, 2, pyg_enum_from_gtype (GST_TYPE_FORMAT, format )); } else { - Py_INCREF(Py_None); - ret = Py_None; + Py_INCREF(Py_None); + ret = Py_None; @@ -720,9 +720,9 @@ return Py_None; - PyList_Append(ret, pyg_enum_from_gtype (GST_TYPE_FORMAT, destformat)); - PyList_Append(ret, PyLong_FromLongLong(dstval)); + ret = PyList_New(2); + PyList_SetItem(ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, destformat)); + PyList_SetItem(ret, 1, PyLong_FromLongLong(dstval)); @@ -747,13 +747,12 @@ caps = pyg_boxed_get(pcaps, GstCaps); res = gst_pad_alloc_buffer (GST_PAD(pygobject_get(self)), offset, size, caps, &buf); - PyList_Append(ret, pyg_enum_from_gtype(GST_TYPE_FLOW_RETURN, res)); + PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FLOW_RETURN, res)); if (res != GST_FLOW_OK) { - PyList_Append(ret, Py_None); + PyList_Append(ret, Py_None); - PyList_Append(ret, pygstminiobject_new(GST_MINI_OBJECT(buf))); + PyList_SetItem(ret, 1, pygstminiobject_new(GST_MINI_OBJECT(buf))); @@ -775,13 +774,12 @@ return NULL; res = gst_pad_pull_range (GST_PAD(pygobject_get(self)), offset, size, &buf); @@ -803,13 +801,12 @@ res = gst_pad_get_range (GST_PAD(pygobject_get(self)), offset, size, &buf); @@ -820,12 +817,13 @@ PyObject *ret; GList *lst, *tmp; lst = gst_pad_get_internal_links (GST_PAD (pygobject_get(self))); - for (tmp = lst ; tmp; tmp = g_list_next(tmp)) { - PyList_Append(ret, pygstobject_new(G_OBJECT(tmp->data))); + ret = PyList_New(g_list_length(lst)); + for (tmp = lst, i = 0 ; tmp; tmp = g_list_next(tmp), ++i) { + PyList_SetItem(ret, i, pygstobject_new(G_OBJECT(tmp->data))); g_list_free(lst); @@ -837,12 +835,13 @@ lst = gst_pad_get_internal_links_default (GST_PAD (pygobject_get(self))); @@ -865,8 +864,9 @@ ret = PyList_New(0); for (i = 0; tab[i] != 0; i++) { - item = pyg_enum_from_gtype (GST_TYPE_QUERY_TYPE, tab[i]); - PyList_Append(ret, item); + item = pyg_enum_from_gtype (GST_TYPE_QUERY_TYPE, tab[i]); + PyList_Append(ret, item); + Py_XDECREF(item); @@ -889,8 +889,9 @@ Index: gstquery.override RCS file: /cvs/gstreamer/gst-python/gst/gstquery.override,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gstquery.override 11 Oct 2005 12:42:53 -0000 1.5 +++ gstquery.override 13 Oct 2005 10:58:16 -0000 1.6 @@ -36,10 +36,10 @@ gst_query_parse_position (GST_QUERY(self->obj), &format, &cur, &end); - ret = PyList_New(0); - PyList_Append(ret, pyg_enum_from_gtype(GST_TYPE_FORMAT, format)); - PyList_Append(ret, PyLong_FromLongLong(cur)); - PyList_Append(ret, PyLong_FromLongLong(end)); + ret = PyList_New(3); + PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, format)); + PyList_SetItem(ret, 1, PyLong_FromLongLong(cur)); + PyList_SetItem(ret, 2, PyLong_FromLongLong(end)); @@ -61,11 +61,11 @@ &srcformat, &srcvalue, &destformat, &destvalue); - PyList_Append(ret, pyg_enum_from_gtype(GST_TYPE_FORMAT, srcformat)); - PyList_Append(ret, PyLong_FromLongLong(srcvalue)); - PyList_Append(ret, pyg_enum_from_gtype(GST_TYPE_FORMAT, destformat)); - PyList_Append(ret, PyLong_FromLongLong(destvalue)); + ret = PyList_New(4); + PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, srcformat)); + PyList_SetItem(ret, 1, PyLong_FromLongLong(srcvalue)); + PyList_SetItem(ret, 2, pyg_enum_from_gtype(GST_TYPE_FORMAT, destformat)); + PyList_SetItem(ret, 3, PyLong_FromLongLong(destvalue)); @@ -90,12 +90,12 @@ &rate, &format, - PyList_Append (ret, PyLong_FromUnsignedLongLong(start_value)); - PyList_Append (ret, PyLong_FromUnsignedLongLong(stop_value)); - PyList_Append (ret, PyLong_FromUnsignedLongLong(base)); + ret = PyList_New(5); + PyList_SetItem (ret, 2, PyLong_FromUnsignedLongLong(start_value)); + PyList_SetItem (ret, 3, PyLong_FromUnsignedLongLong(stop_value)); + PyList_SetItem (ret, 4, PyLong_FromUnsignedLongLong(base)); |
From: <bi...@fr...> - 2005-10-13 16:05:32
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Oct 13 2005 09:05:25 PDT Log message: * gst/Makefile.am: (noinst_HEADERS): Added pygstexception.h Modified files: . : ChangeLog gst : Makefile.am Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.314&r2=1.315 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/Makefile.am.diff?r1=1.49&r2=1.50 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.314 retrieving revision 1.315 diff -u -d -r1.314 -r1.315 --- ChangeLog 13 Oct 2005 15:56:16 -0000 1.314 +++ ChangeLog 13 Oct 2005 16:05:13 -0000 1.315 @@ -1,5 +1,10 @@ 2005-10-13 Edward Hervey <ed...@fl...> + * gst/Makefile.am: (noinst_HEADERS): + Added pygstexception.h + +2005-10-13 Edward Hervey <ed...@fl...> * gst/gst-types.defs: * gst/gst.defs: Updated to new API Index: Makefile.am RCS file: /cvs/gstreamer/gst-python/gst/Makefile.am,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- Makefile.am 13 Oct 2005 10:41:06 -0000 1.49 +++ Makefile.am 13 Oct 2005 16:05:13 -0000 1.50 @@ -22,7 +22,7 @@ libs.defs defsdir = $(pkgdatadir)/0.9/defs -noinst_HEADERS = common.h pygstvalue.h pygstminiobject.h pygstobject.h +noinst_HEADERS = common.h pygstvalue.h pygstminiobject.h pygstobject.h pygstexception.h INCLUDES = $(PYTHON_INCLUDES) EXTRA_DIST = $(defs_DATA) common.h arg-types.py |
From: <bi...@fr...> - 2005-10-14 17:13:23
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Fri Oct 14 2005 10:13:20 PDT Log message: * gst/gst-types.defs: Added GstDate boxed type * gst/gst.override: Added setters and getters for GstDate's day/month/year Added tp_repr for GstDate Modified files: . : ChangeLog gst : gst-types.defs gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.316&r2=1.317 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-types.defs.diff?r1=1.33&r2=1.34 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.82&r2=1.83 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.316 retrieving revision 1.317 diff -u -d -r1.316 -r1.317 --- ChangeLog 14 Oct 2005 16:26:17 -0000 1.316 +++ ChangeLog 14 Oct 2005 17:13:08 -0000 1.317 @@ -1,5 +1,13 @@ 2005-10-14 Edward Hervey <ed...@fl...> + * gst/gst-types.defs: + Added GstDate boxed type + * gst/gst.override: + Added setters and getters for GstDate's day/month/year + Added tp_repr for GstDate + +2005-10-14 Edward Hervey <ed...@fl...> * gst/gst.defs: Update for new API * gst/gst.override: Index: gst-types.defs RCS file: /cvs/gstreamer/gst-python/gst/gst-types.defs,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- gst-types.defs 13 Oct 2005 15:56:16 -0000 1.33 +++ gst-types.defs 14 Oct 2005 17:13:08 -0000 1.34 @@ -241,6 +241,17 @@ '("gchar*" "message")) ) +(define-boxed Date + (in-module "Gst") + (c-name "GstDate") + (gtype-id "GST_TYPE_DATE") + (fields + '("gint" "day") + '("gint" "month") + '("gint" "year") + ) +) ;; Enumerations and flags ... (define-flags BinFlags Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.82 retrieving revision 1.83 diff -u -d -r1.82 -r1.83 --- gst.override 14 Oct 2005 16:26:17 -0000 1.82 +++ gst.override 14 Oct 2005 17:13:08 -0000 1.83 @@ -381,6 +381,73 @@ error->code)); } %% +override-attr GstDate.day +static PyObject * +_wrap_gst_date__get_day(PyGObject *self, void *closure) +{ + return PyInt_FromLong(g_date_get_day((GDate*)self->obj)); +} +static int +_wrap_gst_date__set_day(PyGObject *self, PyObject *value, void *closure) + GDate *date = (GDate *) self->obj; + + if (!(PyInt_Check(value))) + return -1; + g_date_set_day(date, (int) PyInt_AsLong(value)); + return 0; +%% +override-attr GstDate.month +_wrap_gst_date__get_month(PyGObject *self, void *closure) + return PyInt_FromLong(g_date_get_month((GDate*)self->obj)); +_wrap_gst_date__set_month(PyGObject *self, PyObject *value, void *closure) + g_date_set_month(date, (int) PyInt_AsLong(value)); +override-attr GstDate.year +_wrap_gst_date__get_year(PyGObject *self, void *closure) + return PyInt_FromLong(g_date_get_year((GDate*)self->obj)); +_wrap_gst_date__set_year(PyGObject *self, PyObject *value, void *closure) + g_date_set_year(date, (int) PyInt_AsLong(value)); +override-slot GstDate.tp_repr +_wrap_gst_date_tp_repr(PyGObject *self) + return PyString_FromFormat ("<GstDate: %2d/%2d/%4d>", + g_date_get_day(date), + g_date_get_month(date), + g_date_get_year(date)); override gst_registry_get_path_list static PyObject * _wrap_gst_registry_get_path_list (PyGObject *self) |
From: <bi...@fr...> - 2005-10-14 17:28:03
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Fri Oct 14 2005 10:27:57 PDT Log message: * gst/gst.defs: Updated to new API Modified files: . : ChangeLog gst : gst.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.317&r2=1.318 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.76&r2=1.77 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.317 retrieving revision 1.318 diff -u -d -r1.317 -r1.318 --- ChangeLog 14 Oct 2005 17:13:08 -0000 1.317 +++ ChangeLog 14 Oct 2005 17:27:45 -0000 1.318 @@ -1,5 +1,10 @@ 2005-10-14 Edward Hervey <ed...@fl...> + * gst/gst.defs: + Updated to new API + +2005-10-14 Edward Hervey <ed...@fl...> * gst/gst-types.defs: Added GstDate boxed type * gst/gst.override: Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.76 retrieving revision 1.77 diff -u -d -r1.76 -r1.77 --- gst.defs 14 Oct 2005 16:26:17 -0000 1.76 +++ gst.defs 14 Oct 2005 17:27:45 -0000 1.77 @@ -4024,6 +4024,17 @@ ) ) +(define-method check_version + (of-object "GstPluginFeature") + (c-name "gst_plugin_feature_check_version") + (return-type "gboolean") + (parameters + '("guint" "min_major") + '("guint" "min_minor") + '("guint" "min_micro") + ) +) ;; From ../gstreamer/gst/gstquery.h (define-function gst_query_get_type @@ -4387,6 +4398,23 @@ +(define-method scan_paths + (of-object "GstRegistry") + (c-name "gst_registry_scan_paths") + (return-type "none") +(define-function gst_default_registry_check_feature_version + (c-name "gst_default_registry_check_feature_version") + '("const-gchar*" "feature_name") ;; From ../gstreamer/gst/gststructure.h (define-function gst_structure_get_type |
From: <bi...@fr...> - 2005-10-19 15:41:46
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Oct 19 2005 08:41:43 PDT Log message: * gst/gstmessage.override: Added wrappers for parsing CLOCK_PROVIDE, CLOCK_LOST, NEW_CLOCK and DURATION messages Fixed a few Tuple constructors Last commit from me unless huge breakage, got better things to do now (and it doesn't involve 'my little pony' comics) ! Modified files: . : ChangeLog gst : gstmessage.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.323&r2=1.324 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmessage.override.diff?r1=1.11&r2=1.12 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.323 retrieving revision 1.324 diff -u -d -r1.323 -r1.324 --- ChangeLog 19 Oct 2005 15:04:24 -0000 1.323 +++ ChangeLog 19 Oct 2005 15:41:31 -0000 1.324 @@ -1,5 +1,14 @@ 2005-10-19 Edward Hervey <ed...@fl...> + * gst/gstmessage.override: + Added wrappers for parsing CLOCK_PROVIDE, CLOCK_LOST, NEW_CLOCK and + DURATION messages + Fixed a few Tuple constructors + Last commit from me unless huge breakage, got better things to do now + (and it doesn't involve 'my little pony' comics) ! + +2005-10-19 Edward Hervey <ed...@fl...> * gst/gst.defs: * gst/gst-types.defs: Updated API Index: gstmessage.override RCS file: /cvs/gstreamer/gst-python/gst/gstmessage.override,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- gstmessage.override 19 Oct 2005 11:45:34 -0000 1.11 +++ gstmessage.override 19 Oct 2005 15:41:31 -0000 1.12 @@ -135,13 +135,13 @@ gst_message_parse_error (GST_MESSAGE(self->obj), &error, &debug); - ret = PyList_New(0); - PyList_Append(ret, pyg_boxed_new (GST_TYPE_G_ERROR, error, TRUE, TRUE)); + ret = PyList_New(2); + PyList_SetItem(ret, 0, pyg_boxed_new (GST_TYPE_G_ERROR, error, TRUE, TRUE)); if (debug != NULL) { - PyList_Append(ret, PyString_FromString(debug)); + PyList_SetItem(ret, 1, PyString_FromString(debug)); } else { Py_INCREF (Py_None); - PyList_Append(ret, Py_None); + PyList_SetItem(ret, 1, Py_None); } return ret; @@ -162,8 +162,8 @@ gst_message_parse_warning (GST_MESSAGE(self->obj), &warning, &debug); - PyList_Append(ret, pyg_boxed_new (GST_TYPE_G_ERROR, warning, TRUE, TRUE)); + ret = PyList_New(1); + PyList_SetItem(ret, 0, pyg_boxed_new (GST_TYPE_G_ERROR, warning, TRUE, TRUE)); if (debug != NULL) PyList_Append(ret, PyString_FromString(debug)); @@ -188,3 +188,79 @@ } +%% +override gst_message_parse_clock_provide noargs +static PyObject * +_wrap_gst_message_parse_clock_provide (PyGstMiniObject *self) +{ + GstClock *clock; + gboolean ready; + PyObject *ret; + if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_CLOCK_PROVIDE) { + PyErr_SetString(PyExc_TypeError, "Message is not a 'clock provide' message"); + return NULL; + } + gst_message_parse_clock_provide (GST_MESSAGE(self->obj), &clock, &ready); + ret = PyList_New(2); + PyList_SET_ITEM(ret, 0, pygstobject_new(G_OBJECT (clock))); + PyList_SET_ITEM(ret, 1, PyBool_FromLong(ready)); + return ret; +} +override gst_message_parse_clock_lost noargs +_wrap_gst_message_parse_clock_lost (PyGstMiniObject *self) + if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_CLOCK_LOST) { + PyErr_SetString(PyExc_TypeError, "Message is not a 'clock lost' message"); + gst_message_parse_clock_lost (GST_MESSAGE(self->obj), &clock); + return pygstobject_new(G_OBJECT(clock)); +override gst_message_parse_new_clock noargs +_wrap_gst_message_parse_new_clock (PyGstMiniObject *self) + if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_NEW_CLOCK) { + PyErr_SetString(PyExc_TypeError, "Message is not a 'new clock' message"); + gst_message_parse_new_clock (GST_MESSAGE(self->obj), &clock); +override gst_message_parse_duration noargs +_wrap_gst_message_parse_duration (PyGstMiniObject *self) + GstFormat format; + gint64 duration; + if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_DURATION) { + PyErr_SetString(PyExc_TypeError, "Message is not a 'duration' message"); + gst_message_parse_duration (GST_MESSAGE(self->obj), &format, &duration); + PyList_SET_ITEM(ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); + PyList_SET_ITEM(ret, 1, PyLong_FromLongLong(duration)); |