From: <bi...@fr...> - 2005-04-14 16:47:36
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Apr 14 2005 09:47:29 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/gst.defs: Added definitions for methods of GstObject, GstElement, GstBin and Clock so you can create derived classes with more functionnalities. * configure.ac: (ACLOCAL): bumped required version of PYGTK to 2.6.0 Modified files: . : ChangeLog configure.ac gst : gst.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.1&r2=1.157.2.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/configure.ac.diff?r1=1.61&r2=1.61.2.1 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.25&r2=1.25.2.1 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.1 retrieving revision 1.157.2.2 diff -u -d -r1.157.2.1 -r1.157.2.2 --- ChangeLog 14 Apr 2005 11:47:57 -0000 1.157.2.1 +++ ChangeLog 14 Apr 2005 16:47:17 -0000 1.157.2.2 @@ -1,3 +1,12 @@ +2005-04-14 Edward Hervey <bi...@bi...> + + * gst/gst.defs: + Added definitions for methods of GstObject, GstElement, GstBin and Clock + so you can create derived classes with more functionnalities. + * configure.ac: (ACLOCAL): + bumped required version of PYGTK to 2.6.0 2005-04-14 Andy Wingo <wi...@po...> * gst/__init__.py (Value, Fourcc, IntRange, DoubleRange) Index: configure.ac RCS file: /cvs/gstreamer/gst-python/configure.ac,v retrieving revision 1.61 retrieving revision 1.61.2.1 diff -u -d -r1.61 -r1.61.2.1 --- configure.ac 10 Jan 2005 17:29:46 -0000 1.61 +++ configure.ac 14 Apr 2005 16:47:17 -0000 1.61.2.1 @@ -23,7 +23,7 @@ ACLOCAL="$ACLOCAL -I common/m4 $ACLOCAL_FLAGS" dnl required versions of other packages -AC_SUBST(PYGTK_REQ, 2.4.0) +AC_SUBST(PYGTK_REQ, 2.6.0) AC_SUBST(GLIB_REQ, 2.0.0) AC_SUBST(GTK_REQ, 2.0.0) AC_SUBST(GST_REQ, 0.8.8.1) Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.25 retrieving revision 1.25.2.1 diff -u -d -r1.25 -r1.25.2.1 --- gst.defs 12 Apr 2005 16:29:49 -0000 1.25 +++ gst.defs 14 Apr 2005 16:47:17 -0000 1.25.2.1 @@ -207,7 +207,36 @@ ) ) +(define-virtual add_element + (of-object "GstBin") + (return-type "none") + (parameters + '("GstElement*" "element") + ) +) +(define-virtual remove_element +(define-virtual child_state_change + '("GstElementState" "oldstate") + '("GstElementState" "newstate") +(define-virtual iterate + (return-type "gboolean") ;; From /opt/gnome/include/gstreamer-0.7/gst/gstbuffer.h @@ -680,6 +709,71 @@ +(define-virtual change_speed + (of-object "GstClock") + (return-type "gdouble") + (parameters + '("gdouble" "oldspeed") + '("gdouble" "newspeed") + ) +(define-virtual get_speed +(define-virtual change_resolution + (return-type "guint64") + '("guint64" "old_resolution") + '("guint64" "new_resolution") +(define-virtual get_resolution +(define-virtual get_internal_time + (return-type "GstClockTime") +(define-virtual wait + (return-type "GstClockEntryStatus") + '("GstClockEntry*" "entry") +(define-virtual wait_async +(define-virtual unschedule + (return-type "none") + '("GstClockEntry" "entry") +(define-virtual unlock (define-method get_time (of-object "GstClockID") (c-name "gst_clock_id_get_time") @@ -1468,6 +1562,116 @@ (return-type "GstBin*") +(define-virtual release_locks + (of-object "GstElement") + (return-type "gboolean") +(define-virtual get_event_masks + (return-type "const-GstEventMask*") +(define-virtual send_event + '("GstEvent*" "event") +(define-virtual get_formats + (return-type "const-GstFormat*") +(define-virtual convert + '("GstFormat" "src_format") + '("gint64" "src_value") + '("GstFormat*" "dest_format") + '("gint64*" "dest_value") +(define-virtual get_query_types + (return-type "const-GstQueryType*") +(define-virtual query + '("GstQueryType" "type") + '("GstFormat*" "format") + '("gint64*" "value") +(define-virtual change_state + (return-type "GstElementStateReturn") +(define-virtual request_new_pad + (return-type "GstPad*") + '("GstPadTemplate*" "templ") + '("const-gchar*" "name") +(define-virtual release_pad + '("GstPad*" "pad") +(define-virtual get_clock + (return-type "GstClock*") +(define-virtual set_clock + '("GstClock*" "clock") +(define-virtual get_index + (return-type "GstIndex*") +(define-virtual set_index + '("GstIndex*" "index") +(define-virtual set_state + '("GstElementState" "state") +(define-virtual no_more_pads (define-function element_factory_get_type (c-name "gst_element_factory_get_type") (return-type "GType") @@ -2798,6 +3002,27 @@ (return-type "gchar*") +(define-virtual destroy + (of-object "GstObject") +(define-virtual save_thyself + (return-type "xmlNodePtr") + '("xmlNodePtr" "parent") +(define-virtual restore_thyself + '("xmlNodePtr" "self") (define-function class_signal_connect (c-name "gst_class_signal_connect") (return-type "guint") |
From: <bi...@fr...> - 2005-04-19 16:11:46
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Apr 19 2005 09:11:43 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/gststructure.override: (_wrap_gst_structure_get_double): Added overriding function for getting double values from a gst.Structure Modified files: . : ChangeLog gst : gststructure.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.4&r2=1.157.2.5 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gststructure.override.diff?r1=1.1.2.1&r2=1.1.2.2 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.4 retrieving revision 1.157.2.5 diff -u -d -r1.157.2.4 -r1.157.2.5 --- ChangeLog 16 Apr 2005 20:55:37 -0000 1.157.2.4 +++ ChangeLog 19 Apr 2005 16:11:31 -0000 1.157.2.5 @@ -1,3 +1,8 @@ +2005-04-19 Edward Hervey <bi...@bi...> + + * gst/gststructure.override: (_wrap_gst_structure_get_double): + Added overriding function for getting double values from a gst.Structure 2005-04-16 Thomas Vander Stichele <thomas at apestaart dot org> * configure.ac: bumped back required version of pygtk; we can backport Index: gststructure.override RCS file: /cvs/gstreamer/gst-python/gst/gststructure.override,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- gststructure.override 14 Apr 2005 11:47:57 -0000 1.1.2.1 +++ gststructure.override 19 Apr 2005 16:11:31 -0000 1.1.2.2 @@ -131,6 +131,27 @@ return Py_None; } %% +override gst_structure_get_double kwargs +static PyObject * +_wrap_gst_structure_get_double(PyObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "fieldname", NULL }; + char *fieldname; + gdouble value; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "s:GstStructure.get_double", + kwlist, &fieldname)) + return NULL; + if (gst_structure_get_double(pyg_boxed_get(self, GstStructure), fieldname, &value)) + return PyInt_FromLong(value); + /* XXX: Raise exception? */ + Py_INCREF(Py_None); + return Py_None; +} +%% define GstStructure.has_key args static PyObject* _wrap_gst_structure_has_key(PyGObject *self, PyObject *args) |
From: <bi...@fr...> - 2005-04-19 16:17:27
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Apr 19 2005 09:17:25 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/gststructure.override: (_wrap_gst_structure_get_double): Forgot to convert the returned value to a PyFloat... Modified files: . : ChangeLog gst : gststructure.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.5&r2=1.157.2.6 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gststructure.override.diff?r1=1.1.2.2&r2=1.1.2.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.5 retrieving revision 1.157.2.6 diff -u -d -r1.157.2.5 -r1.157.2.6 --- ChangeLog 19 Apr 2005 16:11:31 -0000 1.157.2.5 +++ ChangeLog 19 Apr 2005 16:17:12 -0000 1.157.2.6 @@ -1,6 +1,11 @@ 2005-04-19 Edward Hervey <bi...@bi...> * gst/gststructure.override: (_wrap_gst_structure_get_double): + Forgot to convert the returned value to a PyFloat... + +2005-04-19 Edward Hervey <bi...@bi...> + * gst/gststructure.override: (_wrap_gst_structure_get_double): Added overriding function for getting double values from a gst.Structure 2005-04-16 Thomas Vander Stichele <thomas at apestaart dot org> Index: gststructure.override RCS file: /cvs/gstreamer/gst-python/gst/gststructure.override,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- gststructure.override 19 Apr 2005 16:11:31 -0000 1.1.2.2 +++ gststructure.override 19 Apr 2005 16:17:13 -0000 1.1.2.3 @@ -145,7 +145,7 @@ return NULL; if (gst_structure_get_double(pyg_boxed_get(self, GstStructure), fieldname, &value)) - return PyInt_FromLong(value); + return PyFloat_FromDouble(value); /* XXX: Raise exception? */ Py_INCREF(Py_None); |
From: <bi...@fr...> - 2005-06-14 10:19:26
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jun 14 2005 03:19:19 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/gstcaps.override: (_wrap_gst_caps_tp_str): proper repr of GstCaps : <GstCaps at <adress> : '<caps.to_string>'> Modified files: . : ChangeLog gst : gstcaps.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.31&r2=1.157.2.32 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstcaps.override.diff?r1=1.1.2.3&r2=1.1.2.4 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.31 retrieving revision 1.157.2.32 diff -u -d -r1.157.2.31 -r1.157.2.32 --- ChangeLog 9 Jun 2005 11:06:40 -0000 1.157.2.31 +++ ChangeLog 14 Jun 2005 10:19:07 -0000 1.157.2.32 @@ -1,3 +1,8 @@ +2005-06-14 Edward Hervey <bi...@bi...> + + * gst/gstcaps.override: (_wrap_gst_caps_tp_str): + proper repr of GstCaps : <GstCaps at <adress> : '<caps.to_string>'> 2005-06-09 Edward Hervey <bi...@bi...> * examples/gst/gstfile.py: (Discoverer.discover): Index: gstcaps.override RCS file: /cvs/gstreamer/gst-python/gst/gstcaps.override,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -d -r1.1.2.3 -r1.1.2.4 --- gstcaps.override 3 May 2005 02:22:03 -0000 1.1.2.3 +++ gstcaps.override 14 Jun 2005 10:19:07 -0000 1.1.2.4 @@ -417,7 +417,7 @@ PyObject *retval; tmp = gst_caps_to_string((GstCaps*)self->obj); - retval = PyString_FromString(tmp); + retval = PyString_FromString(g_strdup_printf("<GstCaps at %p : '%s'>", self, tmp)); g_free(tmp); return retval; |
From: <bi...@fr...> - 2005-06-14 11:13:47
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jun 14 2005 04:13:45 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/Makefile.am: (defs_DATA) (GST_OVERRIDES): * gst/gst.defs: * gst/gst.override: * gst/gst-extrafuncs.defs: * gst/gstbuffer.override: * gst/gstevent.override: * gst/gst-types.defs: (Buffer) (Event): Added support for element flags (list, set, unset) Added gst.Buffer duration field Added gst.Event fields Modified files: . : ChangeLog gst : Makefile.am gst-types.defs gst.defs gst.override gstbuffer.override Added files: gst : gst-extrafuncs.defs gstevent.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.33&r2=1.157.2.34 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/Makefile.am.diff?r1=1.36.2.3&r2=1.36.2.4 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-extrafuncs.defs?rev=1.1.2.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-types.defs.diff?r1=1.13&r2=1.13.2.1 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.25.2.3&r2=1.25.2.4 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.46.2.6&r2=1.46.2.7 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbuffer.override.diff?r1=1.4.2.6&r2=1.4.2.7 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstevent.override?rev=1.1.2.1&content-type=text/vnd.viewcvs-markup ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.33 retrieving revision 1.157.2.34 diff -u -d -r1.157.2.33 -r1.157.2.34 --- ChangeLog 14 Jun 2005 11:05:40 -0000 1.157.2.33 +++ ChangeLog 14 Jun 2005 11:13:33 -0000 1.157.2.34 @@ -1,3 +1,16 @@ +2005-06-14 Edward Hervey <bi...@bi...> + + * gst/Makefile.am: (defs_DATA) (GST_OVERRIDES): + * gst/gst.defs: + * gst/gst.override: + * gst/gst-extrafuncs.defs: + * gst/gstbuffer.override: + * gst/gstevent.override: + * gst/gst-types.defs: (Buffer) (Event): + Added support for element flags (list, set, unset) + Added gst.Buffer duration field + Added gst.Event fields 2005-06-14 Andy Wingo <wi...@po...> * gst/gstcaps.override (_wrap_gst_caps_tp_richcompare): Fixes for Index: Makefile.am RCS file: /cvs/gstreamer/gst-python/gst/Makefile.am,v retrieving revision 1.36.2.3 retrieving revision 1.36.2.4 diff -u -d -r1.36.2.3 -r1.36.2.4 --- Makefile.am 2 May 2005 23:32:31 -0000 1.36.2.3 +++ Makefile.am 14 Jun 2005 11:13:33 -0000 1.36.2.4 @@ -22,7 +22,8 @@ play_lib = endif -defs_DATA = gst-types.defs +defs_DATA = gst-types.defs \ + gst-extrafuncs.defs defsdir = $(pkgdatadir)/2.0/defs noinst_HEADERS = common.h pygstvalue.h @@ -44,10 +45,11 @@ gstbuffer.override \ gstcaps.override \ gstelement.override \ + gstevent.override \ gstpad.override \ gststructure.override -GST_DEFS = gst.defs gst-types.defs +GST_DEFS = gst.defs gst-types.defs gst-extrafuncs.defs CLEANFILES = gst.c EXTRA_DIST += $(GST_DEFS) $(GST_OVERRIDES) gst.c: $(GST_DEFS) $(GST_OVERRIDES) $(GEN_FILES) --- NEW FILE: gst-extrafuncs.defs --- ; -*- scheme -*- (define-method flags (of-object "GstElement") (c-name "GST_FLAGS") (return-type "GstElementFlags") ) (define-method set_flag (of-object "GstObject") (c-name "GST_FLAG_SET") (return-type "none") (parameters '("GstObjectFlags" "flags") ) (define-method unset_flag (c-name "GST_FLAG_UNSET") '("GstObjectFlags" "flag") )Index: gst-types.defs RCS file: /cvs/gstreamer/gst-python/gst/gst-types.defs,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -u -d -r1.13 -r1.13.2.1 --- gst-types.defs 10 Jan 2005 17:29:46 -0000 1.13 +++ gst-types.defs 14 Jun 2005 11:13:33 -0000 1.13.2.1 @@ -172,6 +172,7 @@ '("guint64" "offset") '("guint64" "offset_end") '("GstClockTime" "timestamp") + '("GstClockTime" "duration") ) @@ -200,6 +201,17 @@ (in-module "Gst") (c-name "GstEvent") (gtype-id "GST_TYPE_EVENT") + (copy-func "gst_event_copy") + (release-func "gst_event_unref") + (fields + ;; GstData fields + '("GType" "data_type") + '("guint16" "flags") + ;; GstEvent fields + '("GstEventType" "type") + '("GstClockTime" "timestamp") + ) (define-boxed GError Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.25.2.3 retrieving revision 1.25.2.4 diff -u -d -r1.25.2.3 -r1.25.2.4 --- gst.defs 4 May 2005 00:21:56 -0000 1.25.2.3 +++ gst.defs 14 Jun 2005 11:13:33 -0000 1.25.2.4 @@ -1,5 +1,6 @@ ;; -*- scheme -*- +(include "gst-extrafuncs.defs") (include "gst-types.defs") ;;(include "0.7.defs") Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.46.2.6 retrieving revision 1.46.2.7 diff -u -d -r1.46.2.6 -r1.46.2.7 --- gst.override 4 May 2005 00:21:56 -0000 1.46.2.6 +++ gst.override 14 Jun 2005 11:13:33 -0000 1.46.2.7 @@ -217,6 +217,7 @@ gstbuffer.override gstcaps.override gstelement.override + gstevent.override gstpad.override gststructure.override %% Index: gstbuffer.override RCS file: /cvs/gstreamer/gst-python/gst/gstbuffer.override,v retrieving revision 1.4.2.6 retrieving revision 1.4.2.7 diff -u -d -r1.4.2.6 -r1.4.2.7 --- gstbuffer.override 2 Jun 2005 17:55:54 -0000 1.4.2.6 +++ gstbuffer.override 14 Jun 2005 11:13:33 -0000 1.4.2.7 @@ -179,6 +179,25 @@ return 0; } +override-attr GstBuffer.duration +static PyObject * +_wrap_gst_buffer__get_duration(PyGObject *self, void *closure) +{ + return PyInt_FromLong(GST_BUFFER(self->obj)->duration); +} +static int +_wrap_gst_buffer__set_duration(PyGBoxed *self, PyObject *value, void *closure) + gint val; + val = PyInt_AsLong(value); + if (PyErr_Occurred()) + return -1; + + pyg_boxed_get(self, GstBuffer)->duration = val; + return 0; +%% override-slot GstBuffer.tp_str static PyObject * _wrap_gst_buffer_tp_str(PyGObject *self) --- NEW FILE: gstevent.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-attr GstEvent.data_type static PyObject* _wrap_gst_event__get_data_type(PyGObject *self, void *closure) { return pyg_type_wrapper_new(GST_DATA_TYPE(GST_DATA(self->obj))); } override-attr GstEvent.flags _wrap_gst_event__get_flags(PyGObject *self, void *closure) return PyInt_FromLong(GST_DATA_FLAGS(self->obj)); override-attr GstEvent.type _wrap_gst_event__get_type(PyGObject *self, void *closure) return pyg_enum_from_gtype(GST_TYPE_EVENT_TYPE, GST_EVENT_TYPE(GST_EVENT(self->obj))); override-attr GstEvent.timestamp static PyObject * _wrap_gst_event__get_timestamp(PyGObject *self, void *closure) return PyInt_FromLong(GST_EVENT(self->obj)->timestamp); |
From: <bi...@fr...> - 2005-06-14 14:21:38
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jun 14 2005 07:21:35 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/gst.override: (probe_handler_marshal): bye bye probe memleak Modified files: . : ChangeLog gst : gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.34&r2=1.157.2.35 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.46.2.7&r2=1.46.2.8 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.34 retrieving revision 1.157.2.35 diff -u -d -r1.157.2.34 -r1.157.2.35 --- ChangeLog 14 Jun 2005 11:13:33 -0000 1.157.2.34 +++ ChangeLog 14 Jun 2005 14:21:22 -0000 1.157.2.35 @@ -1,5 +1,10 @@ 2005-06-14 Edward Hervey <bi...@bi...> + * gst/gst.override: (probe_handler_marshal): + bye bye probe memleak + +2005-06-14 Edward Hervey <bi...@bi...> + * gst/Makefile.am: (defs_DATA) (GST_OVERRIDES): * gst/gst.defs: * gst/gst.override: Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.46.2.7 retrieving revision 1.46.2.8 diff -u -d -r1.46.2.7 -r1.46.2.8 --- gst.override 14 Jun 2005 11:13:33 -0000 1.46.2.7 +++ gst.override 14 Jun 2005 14:21:23 -0000 1.46.2.8 @@ -848,6 +848,7 @@ PyGILState_STATE state; PyObject *callback, *args; PyObject *ret; + PyObject *py_data; PyObject *py_user_data; gboolean res; gint len, i; @@ -858,10 +859,17 @@ py_user_data = (PyObject *) user_data; + if (GST_IS_BUFFER(*data)) + py_data = pyg_boxed_new(GST_TYPE_BUFFER, *data, TRUE, TRUE); + else if (GST_IS_EVENT(*data)) + py_data = pyg_boxed_new(GST_TYPE_EVENT, *data, TRUE, TRUE); + else + py_data = pyg_boxed_new(GST_TYPE_DATA, *data, TRUE, TRUE); callback = PyTuple_GetItem(py_user_data, 0); args = Py_BuildValue("(NN)", pyg_boxed_new(GST_TYPE_PROBE, probe, TRUE, TRUE), - pyg_boxed_new(GST_TYPE_DATA, *data, TRUE, TRUE)); + py_data); len = PyTuple_Size(py_user_data); for (i = 1; i < len; ++i) { @@ -878,6 +886,7 @@ res = PyObject_IsTrue(ret); Py_DECREF(ret); } + Py_DECREF(args); pyg_gil_state_release(state); return res; |
From: <bi...@fr...> - 2005-06-14 16:01:35
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jun 14 2005 09:01:34 PDT Branch: BRANCH-GSTREAMER-0_8 Log message: * gst/gstcaps.override: (_wrap_gst_caps_tp_str): reverting previous fix, was incorrect * configure.ac: 0.8.1.2 pre-release * gst/gst.override: (probe_handler_marshal): bye bye probe memleak Modified files: . : ChangeLog gst : gstcaps.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.157.2.36&r2=1.157.2.37 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstcaps.override.diff?r1=1.1.2.5&r2=1.1.2.6 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.157.2.36 retrieving revision 1.157.2.37 diff -u -d -r1.157.2.36 -r1.157.2.37 --- ChangeLog 14 Jun 2005 15:16:54 -0000 1.157.2.36 +++ ChangeLog 14 Jun 2005 16:01:21 -0000 1.157.2.37 @@ -1,5 +1,8 @@ 2005-06-14 Edward Hervey <bi...@bi...> + * gst/gstcaps.override: (_wrap_gst_caps_tp_str): + reverting previous fix, was incorrect + * configure.ac: 0.8.1.2 pre-release Index: gstcaps.override RCS file: /cvs/gstreamer/gst-python/gst/gstcaps.override,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -u -d -r1.1.2.5 -r1.1.2.6 --- gstcaps.override 14 Jun 2005 11:05:40 -0000 1.1.2.5 +++ gstcaps.override 14 Jun 2005 16:01:22 -0000 1.1.2.6 @@ -429,7 +429,7 @@ PyObject *retval; tmp = gst_caps_to_string((GstCaps*)self->obj); - retval = PyString_FromString(g_strdup_printf("<GstCaps at %p : '%s'>", self, tmp)); + retval = PyString_FromString(tmp); g_free(tmp); return retval; |
From: <bi...@fr...> - 2005-06-20 21:39:50
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Mon Jun 20 2005 14:39:46 PDT Log message: * gst/arg-types.py: * gst/common.h: * gst/gst-argtypes.c: * gst/gst-types.defs: * gst/gst.defs: * gst/gst.override: * gst/gstelement.override: * gst/gstmodule.c: * gst/gstpad.override: * gst/gststructure.override: commented-out deprecated code, compiles at last, and works for pipeline creation and state change * configure.ac: updated requirement of GStream (0.9.0), pygtk (2.6.1) bumped version number (0.9.0.1) Modified files: . : ChangeLog configure.ac gst : arg-types.py common.h gst-argtypes.c gst-types.defs gst.defs gst.override gstelement.override gstmodule.c gstpad.override gststructure.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.159&r2=1.160 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/configure.ac.diff?r1=1.62&r2=1.63 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/arg-types.py.diff?r1=1.7&r2=1.8 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/common.h.diff?r1=1.7&r2=1.8 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-argtypes.c.diff?r1=1.3&r2=1.4 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-types.defs.diff?r1=1.14&r2=1.15 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.26&r2=1.27 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.47&r2=1.48 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstelement.override.diff?r1=1.2&r2=1.3 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmodule.c.diff?r1=1.18&r2=1.19 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstpad.override.diff?r1=1.4&r2=1.5 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gststructure.override.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.159 retrieving revision 1.160 diff -u -d -r1.159 -r1.160 --- ChangeLog 17 Jun 2005 10:59:46 -0000 1.159 +++ ChangeLog 20 Jun 2005 21:39:34 -0000 1.160 @@ -1,3 +1,22 @@ +2005-06-20 Edward Hervey <ed...@fl...> + + * gst/arg-types.py: + * gst/common.h: + * gst/gst-argtypes.c: + * gst/gst-types.defs: + * gst/gst.defs: + * gst/gst.override: + * gst/gstelement.override: + * gst/gstmodule.c: + * gst/gstpad.override: + * gst/gststructure.override: + commented-out deprecated code, + compiles at last, and works for pipeline creation and state change + * configure.ac: + updated requirement of GStream (0.9.0), pygtk (2.6.1) + bumped version number (0.9.0.1) 2005-06-17 Edward Hervey <bi...@bi...> * Backport of bugfixes/new features from 0.8 branch to HEAD Index: configure.ac RCS file: /cvs/gstreamer/gst-python/configure.ac,v retrieving revision 1.62 retrieving revision 1.63 diff -u -d -r1.62 -r1.63 --- configure.ac 17 Jun 2005 10:59:46 -0000 1.62 +++ configure.ac 20 Jun 2005 21:39:34 -0000 1.63 @@ -8,7 +8,7 @@ AM_MAINTAINER_MODE dnl when going to/from release please set the nano (fourth number) right ! -AS_VERSION(gst-python, PYGST_VERSION, 0, 8, 1, 1, GST_CVS="no", GST_CVS="yes") +AS_VERSION(gst-python, PYGST_VERSION, 0, 9, 0, 1, GST_CVS="no", GST_CVS="yes") AM_INIT_AUTOMAKE($PACKAGE, $VERSION) @@ -23,10 +23,10 @@ ACLOCAL="$ACLOCAL -I common/m4 $ACLOCAL_FLAGS" dnl required versions of other packages -AC_SUBST(PYGTK_REQ, 2.4.0) +AC_SUBST(PYGTK_REQ, 2.6.1) AC_SUBST(GLIB_REQ, 2.0.0) AC_SUBST(GTK_REQ, 2.0.0) -AC_SUBST(GST_REQ, 0.8.9) +AC_SUBST(GST_REQ, 0.9.0) AC_DISABLE_STATIC @@ -52,7 +52,7 @@ AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) dnl check for GStreamer -GST_MAJORMINOR=0.8 +GST_MAJORMINOR=0.9 AC_SUBST(GST_MAJORMINOR) PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ) AC_SUBST(GST_CFLAGS) Index: arg-types.py RCS file: /cvs/gstreamer/gst-python/gst/arg-types.py,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- arg-types.py 17 Jun 2005 10:59:47 -0000 1.7 +++ arg-types.py 20 Jun 2005 21:39:34 -0000 1.8 @@ -114,7 +114,7 @@ ' else\n' ' ' + before) after = (' if (%(name)s && %(name)s_is_copy)\n' - ' gst_caps_free (%(name)s);\n') + ' gst_caps_unref (%(name)s);\n') def write_param(self, ptype, pname, pdflt, pnull, info): if ptype == 'const-GstCaps*': Index: common.h RCS file: /cvs/gstreamer/gst-python/gst/common.h,v --- common.h 17 Jun 2005 10:59:47 -0000 1.7 +++ common.h 20 Jun 2005 21:39:34 -0000 1.8 @@ -45,8 +45,8 @@ } PyGstCustomNotify; /* from gst-types.c */ -gboolean pygst_data_from_pyobject(PyObject *object, GstData **data); -PyObject *pygst_data_to_pyobject(GstData *data); +/* gboolean pygst_data_from_pyobject(PyObject *object, GstData **data); */ +/* PyObject *pygst_data_to_pyobject(GstData *data); */ GstCaps *pygst_caps_from_pyobject (PyObject *object, gboolean *copy); Index: gst-argtypes.c RCS file: /cvs/gstreamer/gst-python/gst/gst-argtypes.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gst-argtypes.c 17 Jun 2005 10:59:47 -0000 1.3 +++ gst-argtypes.c 20 Jun 2005 21:39:34 -0000 1.4 @@ -26,44 +26,44 @@ #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)); - } +/* 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; -} +/* 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); +/* 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); +/* return pyg_boxed_new(GST_TYPE_DATA, data, TRUE, TRUE); */ -static int -PyGstData_to_value(GValue *value, PyObject *object) - GstData* data; +/* static int */ +/* PyGstData_to_value(GValue *value, PyObject *object) */ +/* GstData* data; */ - if (!pygst_data_from_pyobject(object, &data)) - return -1; +/* if (!pygst_data_from_pyobject(object, &data)) */ +/* return -1; */ - g_value_set_boxed(value, data); - return 0; +/* 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 @@ -103,10 +103,10 @@ return NULL; } -void -_pygst_register_boxed_types(PyObject *moddict) - pyg_register_boxed_custom(GST_TYPE_DATA, - PyGstData_from_value, - PyGstData_to_value); +/* void */ +/* _pygst_register_boxed_types(PyObject *moddict) */ +/* pyg_register_boxed_custom(GST_TYPE_DATA, */ +/* PyGstData_from_value, */ +/* PyGstData_to_value); */ Index: gst-types.defs RCS file: /cvs/gstreamer/gst-python/gst/gst-types.defs,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- gst-types.defs 17 Jun 2005 10:59:47 -0000 1.14 +++ gst-types.defs 20 Jun 2005 21:39:34 -0000 1.15 @@ -1,6 +1,7 @@ ;; -*- scheme -*- ; object definitions ... (define-object Object (in-module "Gst") (parent "GObject") @@ -141,9 +142,15 @@ (gtype-id "GST_TYPE_XML") ) -:: -:: MiniObject types +;; +;; MiniObject types +(define-boxed MiniObject + (in-module "Gst") + (c-name "GstMiniObject") + (gtype-id "GST_TYPE_MINI_OBJECT") +) (define-object Buffer Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- gst.defs 17 Jun 2005 10:59:47 -0000 1.26 +++ gst.defs 20 Jun 2005 21:39:34 -0000 1.27 @@ -1,7 +1,7 @@ (include "gst-extrafuncs.defs") -{include "gst-types.defs") +(include "gst-types.defs") ;; From ../gstreamer/gst/cothreads.h @@ -132,7 +132,7 @@ ;; From ../gstreamer/gst/gst.h [...1631 lines suppressed...] (return-type "gint") (parameters @@ -6150,7 +6150,7 @@ (define-function gst_xml_new (c-name "gst_xml_new") - (is-constructor-of "GstXml") + (is-constructor-of "GstXML") (return-type "GstXML*") @@ -6200,7 +6200,7 @@ (return-type "GList*") -(define-function gst_xml_make_element +(define-function xml_make_element (c-name "gst_xml_make_element") (return-type "GstElement*") Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- gst.override 17 Jun 2005 10:59:47 -0000 1.47 +++ gst.override 20 Jun 2005 21:39:34 -0000 1.48 @@ -101,7 +101,8 @@ msg = PyObject_Str (value); typemsg = PyObject_Str (type); if (msg && PyString_Check (msg)) { - gst_element_error_full (element, GST_LIBRARY_ERROR, + gst_element_message_full (element, GST_MESSAGE_ERROR, + GST_LIBRARY_ERROR, GST_LIBRARY_ERROR_FAILED, g_strdup (PyString_AsString (msg)), typemsg ? g_strconcat (PyString_AsString (typemsg), @@ -111,7 +112,8 @@ frame ? PyString_AsString(frame->f_code->co_name) : "???", lineno ? PyInt_AsLong (lineno) : 0); } else { - gst_element_error_full (element, GST_LIBRARY_ERROR, + gst_element_message_full (element, GST_MESSAGE_ERROR, GST_LIBRARY_ERROR_TOO_LAZY, NULL, NULL, frame ? PyString_AsString(frame->f_code->co_filename) : "???", Index: gstelement.override RCS file: /cvs/gstreamer/gst-python/gst/gstelement.override,v retrieving revision 1.2 diff -u -d -r1.2 -r1.3 --- gstelement.override 17 Jun 2005 10:59:47 -0000 1.2 +++ gstelement.override 20 Jun 2005 21:39:34 -0000 1.3 @@ -85,25 +85,25 @@ return PyInt_FromLong(ret); %% -override gst_element_query kwargs -_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; +/* override gst_element_query kwargs */ +/* _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; +/* 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); -%% +/* ret = gst_element_query(GST_ELEMENT(self->obj), type, &format, &value); */ +/* return PyLong_FromLongLong(value); */ +/* %% */ override gst_element_convert kwargs static PyObject * _wrap_gst_element_convert(PyGObject *self, PyObject *args, PyObject *kwargs) @@ -183,48 +183,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 */ +/* _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_free (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 Index: gstmodule.c RCS file: /cvs/gstreamer/gst-python/gst/gstmodule.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- gstmodule.c 17 Jun 2005 10:59:47 -0000 1.18 +++ gstmodule.c 20 Jun 2005 21:39:34 -0000 1.19 @@ -64,14 +64,14 @@ return TRUE; -static void -sink_gstobject(GObject *object) - if (GST_OBJECT_FLOATING(object)) { - g_object_ref(object); - gst_object_sink(GST_OBJECT(object)); - } +/* static void */ +/* sink_gstobject(GObject *object) */ +/* if (GST_OBJECT_FLOATING(object)) { */ +/* g_object_ref(object); */ +/* gst_object_sink(GST_OBJECT(object)); */ +/* } */ DL_EXPORT(void) init_gst (void) @@ -115,8 +115,8 @@ g_free (argv); } - _pygst_register_boxed_types (NULL); - pygobject_register_sinkfunc(GST_TYPE_OBJECT, sink_gstobject); +/* _pygst_register_boxed_types (NULL); */ + /* pygobject_register_sinkfunc(GST_TYPE_OBJECT, sink_gstobject); */ m = Py_InitModule ("_gst", pygst_functions); d = PyModule_GetDict (m); Index: gstpad.override RCS file: /cvs/gstreamer/gst-python/gst/gstpad.override,v retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gstpad.override 17 Jun 2005 10:59:47 -0000 1.4 +++ gstpad.override 20 Jun 2005 21:39:34 -0000 1.5 @@ -131,7 +131,7 @@ GstCaps *caps; g_value_init (&ret, GST_TYPE_CAPS); - g_value_init (&args, GST_TYPE_REAL_PAD); + g_value_init (&args, GST_TYPE_PAD); g_value_set_object (&args, pad); closure = pad_private(pad)->getcaps_function; @@ -163,7 +163,7 @@ static GstPadLinkReturn -call_link_function (GstPad *pad, const GstCaps *caps) +call_link_function (GstPad *pad, GstPad *peer) { GClosure *closure; GValue ret = { 0, }; @@ -171,10 +171,10 @@ GstPadLinkReturn i; g_value_init (&ret, GST_TYPE_PAD_LINK_RETURN); - g_value_init (&args[0], GST_TYPE_REAL_PAD); - g_value_init (&args[1], GST_TYPE_CAPS); + g_value_init (&args[0], GST_TYPE_PAD); + g_value_init (&args[1], GST_TYPE_PAD); g_value_set_object (&args[0], pad); - g_value_set_boxed (&args[1], caps); + g_value_set_boxed (&args[1], peer); closure = pad_private(pad)->link_function; @@ -207,28 +207,35 @@ g_assert_not_reached (); /* only returns FALSE when there's no error */ -call_chain_function(GstPad *pad, GstData *data) +static GstFlowReturn +call_chain_function(GstPad *pad, GstBuffer *data) + GValue ret = { 0, }; GValue args[2] = { { 0, }, { 0, } }; + GstFlowReturn flow; + g_value_init (&ret, G_TYPE_ENUM); + g_value_set_enum (&ret, GST_FLOW_ERROR); if (GST_IS_BUFFER (data)) { g_value_init (&args[1], GST_TYPE_BUFFER); } else if (GST_IS_EVENT (data)) { g_value_init (&args[1], GST_TYPE_EVENT); - } else { - g_value_init (&args[1], GST_TYPE_DATA); } g_value_take_boxed (&args[1], data); closure = pad_private(pad)->chain_function; - g_closure_invoke (closure, NULL, 2, args, NULL); + g_closure_invoke (closure, &ret, 2, args, NULL); + flow = g_value_get_enum (&ret); + g_value_unset (&ret); g_value_unset (&args[0]); g_value_unset (&args[1]); + return flow; static PyObject* @@ -260,7 +267,7 @@ g_value_init (&ret, G_TYPE_BOOLEAN); g_value_set_boolean (&ret, FALSE); g_value_init (&args[1], GST_TYPE_EVENT); g_value_set_boxed (&args[1], event); @@ -349,25 +356,25 @@ -override gst_pad_query kwargs -_wrap_gst_pad_query(PyGObject *self, PyObject *args, PyObject *kwargs) +/* override gst_pad_query kwargs */ +/* _wrap_gst_pad_query(PyGObject *self, PyObject *args, PyObject *kwargs) */ - "ii:GstPad.query", kwlist, +/* "ii:GstPad.query", kwlist, */ - ret = gst_pad_query(GST_PAD(self->obj), type, &format, &value); +/* ret = gst_pad_query(GST_PAD(self->obj), type, &format, &value); */ override gst_pad_convert kwargs _wrap_gst_pad_convert(PyGObject *self, PyObject *args, PyObject *kwargs) Index: gststructure.override RCS file: /cvs/gstreamer/gst-python/gst/gststructure.override,v --- gststructure.override 17 Jun 2005 10:59:47 -0000 1.2 +++ gststructure.override 20 Jun 2005 21:39:34 -0000 1.3 @@ -229,7 +229,7 @@ override gst_structure_foreach kwargs static gboolean pygst_structure_foreach_marshal(GQuark field_id, - GValue *value, + const GValue *value, gpointer user_data) PyGstCustomNotify *cunote = user_data; |
From: <bi...@fr...> - 2005-06-20 21:41:33
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Mon Jun 20 2005 14:41:33 PDT Log message: * gst/arg-types.py: * gst/common.h: * gst/gst-argtypes.c: * gst/gst-types.defs: * gst/gst.defs: * gst/gst.override: * gst/gstcaps.override: * gst/gstelement.override: * gst/gstmodule.c: * gst/gstpad.override: * gst/gststructure.override: commented-out deprecated code, compiles at last, and works for pipeline creation and state change * configure.ac: updated requirement of GStream (0.9.0), pygtk (2.6.1) bumped version number (0.9.0.1) Modified files: . : ChangeLog gst : gstcaps.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.160&r2=1.161 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstcaps.override.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.160 retrieving revision 1.161 diff -u -d -r1.160 -r1.161 --- ChangeLog 20 Jun 2005 21:39:34 -0000 1.160 +++ ChangeLog 20 Jun 2005 21:41:20 -0000 1.161 @@ -6,6 +6,7 @@ * gst/gst-types.defs: * gst/gst.defs: * gst/gst.override: + * gst/gstcaps.override: * gst/gstelement.override: * gst/gstmodule.c: * gst/gstpad.override: Index: gstcaps.override RCS file: /cvs/gstreamer/gst-python/gst/gstcaps.override,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gstcaps.override 17 Jun 2005 10:59:47 -0000 1.2 +++ gstcaps.override 20 Jun 2005 21:41:21 -0000 1.3 @@ -119,7 +119,7 @@ item = PyTuple_GetItem(args, i); append = pygst_caps_from_pyobject (item, NULL); if (!append) { - gst_caps_free (self->boxed); + gst_caps_unref (self->boxed); self->boxed = NULL; break; } @@ -154,12 +154,12 @@ tmp = gst_caps_subtract (caps1, caps2); ret = gst_caps_is_empty (tmp); - gst_caps_free (tmp); + gst_caps_unref (tmp); if (!ret) return FALSE; tmp = gst_caps_subtract (caps2, caps1); return !ret; } @@ -212,11 +212,11 @@ default: PyErr_SetString (PyExc_RuntimeError, "invalid comparison operation"); if (caps2 && caps2_is_copy) - gst_caps_free (caps2); + gst_caps_unref (caps2); return NULL; } if (caps2 && caps2_is_copy) - gst_caps_free (caps2); + gst_caps_unref (caps2); Py_INCREF (ret); return ret; @@ -242,7 +242,7 @@ return NULL; \ ret = func (caps1, caps2); \ if (caps2 && caps2_is_copy) \ - gst_caps_free (caps2); \ + gst_caps_unref (caps2); \ return pyg_boxed_new (GST_TYPE_CAPS, ret, FALSE, TRUE); \ @@ -256,8 +256,8 @@ intersect = gst_caps_intersect (caps1, caps2); _union = gst_caps_union (caps1, caps2); ret = gst_caps_subtract (_union, intersect); - gst_caps_free (_union); - gst_caps_free (intersect); + gst_caps_unref (_union); + gst_caps_unref (intersect); gst_caps_do_simplify (ret); @@ -301,9 +301,9 @@ g_assert (PyErr_Occurred ()); PyErr_Clear (); if (caps1 && !caps1_is_copy) - gst_caps_free (caps1); + gst_caps_unref (caps1); if (caps2 && !caps2_is_copy) return 1; @@ -419,7 +419,7 @@ if (boxed->free_on_dealloc && boxed->boxed) { pygst_caps_map_modified (self); - gst_caps_free (boxed->boxed); + gst_caps_unref (boxed->boxed); self->ob_type->tp_free((PyObject *)self); |
From: <bi...@fr...> - 2005-06-28 18:07:51
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jun 28 2005 11:07:47 PDT Log message: * gst/pygstminiobject.c: thread safe handling of mini-objects * codegen/codegen.py: (GstMiniObjectWrapper.constructor_tmpl): let's not forget to wrap the MiniObject :) * gst/gst-types.defs: * gst/gst.defs: Always keep up to date with the core * gst/gstelement.override: override for gst_element_query_position * gst/pygstminiobject.c: * gst/pygstminiobject.h: * gst/gst.override: PyGstMiniObject now properly wrap GstMiniObject and are referenced in a global hash table Modified files: . : ChangeLog gst : pygstminiobject.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.165&r2=1.166 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstminiobject.c.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.165 retrieving revision 1.166 diff -u -d -r1.165 -r1.166 --- ChangeLog 28 Jun 2005 16:13:52 -0000 1.165 +++ ChangeLog 28 Jun 2005 18:07:35 -0000 1.166 @@ -1,5 +1,8 @@ 2005-06-28 Edward Hervey <ed...@fl...> + * gst/pygstminiobject.c: + thread safe handling of mini-objects + * codegen/codegen.py: (GstMiniObjectWrapper.constructor_tmpl): let's not forget to wrap the MiniObject :) Index: pygstminiobject.c RCS file: /cvs/gstreamer/gst-python/gst/pygstminiobject.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pygstminiobject.c 28 Jun 2005 16:13:53 -0000 1.2 +++ pygstminiobject.c 28 Jun 2005 18:07:35 -0000 1.3 @@ -132,12 +132,15 @@ pygstminiobject_register_wrapper(PyObject *self) { GstMiniObject *obj = ((PyGstMiniObject *)self)->obj; + PyGILState_STATE state; if (!pygstminiobject_wrapper_key) pygstminiobject_wrapper_key=g_quark_from_static_string(pygstminiobject_wrapper_id); Py_INCREF(self); + state = pyg_gil_state_ensure(); g_hash_table_insert (miniobjs, (gpointer) obj, (gpointer) self); + pyg_gil_state_release(state); /* gst_mini_object_set_qdata_full(obj, pygstminiobject_wrapper_key, self, */ /* pyg_destroy_notify); */ } @@ -157,6 +160,7 @@ PyObject * pygstminiobject_new(GstMiniObject *obj) PyGstMiniObject *self; @@ -168,7 +172,9 @@ } /* we already have a wrapper for this object -- return it. */ self = (PyGstMiniObject *)g_hash_table_lookup (miniobjs, (gpointer) obj); /* self = (PyGstMiniObject *)gst_mini_object_get_qdata(obj, pygstminiobject_wrapper_key); */ if (self != NULL) { Py_INCREF(self); @@ -182,31 +188,40 @@ self = PyObject_GC_New(PyGstMiniObject, tp); if (self == NULL) return NULL; - self->obj = gst_mini_object_make_writable(obj); + pyg_begin_allow_threads; + self->obj = gst_mini_object_ref(obj); + pyg_end_allow_threads; self->inst_dict = NULL; self->weakreflist = NULL; /* save wrapper pointer so we can access it later */ + state = pyg_gil_state_ensure(); g_hash_table_insert (miniobjs, (gpointer) obj, (gpointer) self); + pyg_gil_state_release(state); /* gst_mini_object_set_qdata_full(obj, pygstminiobject_wrapper_key, self, */ /* pyg_destroy_notify); */ PyObject_GC_Track((PyObject *)self); - return (PyObject *)self; static void pygstminiobject_dealloc(PyGstMiniObject *self) + PyObject_ClearWeakRefs((PyObject *)self); PyObject_GC_UnTrack((PyObject *)self); if (self->obj) { gst_mini_object_unref(self->obj); self->obj = NULL; @@ -219,6 +234,7 @@ /* self->ob_type->tp_free((PyObject *)self); */ g_hash_table_remove (miniobjs, (gpointer) self); PyObject_GC_Del(self); static int @@ -273,7 +289,9 @@ self->inst_dict = NULL; @@ -283,7 +301,11 @@ pygstminiobject_free(PyObject *op) g_hash_table_remove (miniobjs, (gpointer) op); PyObject_GC_Del(op); |
From: <bi...@fr...> - 2005-07-01 10:47:39
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Fri Jul 01 2005 03:47:37 PDT Log message: * Makefile.am: * configure.ac: * gst/Makefile.am: * pygst.py.in: Modifications to have parallel-installable gst-python Works more or less in the same way as pygtk: import pygst pygst.require('0.9') import gst Modified files: . : ChangeLog Makefile.am configure.ac gst : Makefile.am Added files: . : pygst.py.in Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.166&r2=1.167 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/Makefile.am.diff?r1=1.23&r2=1.24 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/configure.ac.diff?r1=1.63&r2=1.64 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/pygst.py.in?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/Makefile.am.diff?r1=1.38&r2=1.39 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.166 retrieving revision 1.167 diff -u -d -r1.166 -r1.167 --- ChangeLog 28 Jun 2005 18:07:35 -0000 1.166 +++ ChangeLog 1 Jul 2005 10:47:24 -0000 1.167 @@ -1,3 +1,16 @@ +2005-07-01 Edward Hervey <ed...@fl...> + + * Makefile.am: + * configure.ac: + * gst/Makefile.am: + * pygst.py.in: + Modifications to have parallel-installable gst-python + Works more or less in the same way as pygtk: + import pygst + pygst.require('0.9') + import gst + 2005-06-28 Edward Hervey <ed...@fl...> * gst/pygstminiobject.c: Index: Makefile.am RCS file: /cvs/gstreamer/gst-python/Makefile.am,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- Makefile.am 17 Jun 2005 10:59:46 -0000 1.23 +++ Makefile.am 1 Jul 2005 10:47:24 -0000 1.24 @@ -18,3 +18,16 @@ RELEASE include $(top_srcdir)/common/release.mak +# install pth file. +install-data-local: + $(mkinstalldirs) $(DESTDIR)$(pythondir) + echo "gst-$(GST_MAJORMINOR)" > $(DESTDIR)$(pyexecdir)/pygst.pth +install-exec-local: + $(mkinstalldirs) $(DESTDIR)$(pyexecdir) +uninstall-local: + rm -f $(DESTDIR)$(pythondir)/pygst.pth $(DESTDIR)$(pyexecdir)/pygst.pth +# this file is common to all pygtk versions. +pyexec_PYTHON = pygst.py Index: configure.ac RCS file: /cvs/gstreamer/gst-python/configure.ac,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- configure.ac 20 Jun 2005 21:39:34 -0000 1.63 +++ configure.ac 1 Jul 2005 10:47:24 -0000 1.64 @@ -160,6 +160,9 @@ PYGST_CFLAGS="$PYGST_ERROR_CFLAGS" AC_SUBST(PYGST_CFLAGS) +dnl full installation path +AS_AC_EXPAND(PYTHONDIR, $pythondir) dnl add debugging options ... changequote(,)dnl if test "x$GCC" = xyes; then @@ -188,4 +191,5 @@ docs/gst-python.ent testsuite/Makefile gst-python.spec + pygst.py ]) --- NEW FILE: pygst.py.in --- # -*- Mode: Python; py-indent-offset: 4 -*- # pygtk - Python bindings for the GTK+ widget set. # Copyright (C) 1998-2002 James Henstridge # (C) 2005 Edward Hervey # # pygst.py: pygst version selection code. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program 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 General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # This allows parallel installation of gst-python # In order to have backward compatibility import fnmatch import glob import os import sys __all__ = ['require'] _pygst_dir = '@PYTHONDIR@/gst-@GST_MAJORMINOR@' _pygst_version = '@GST_MAJORMINOR@' _pygst_required_version = None def require(version): global _pygst_required_version if _pygst_required_version != None: assert _pygst_required_version == version, \ "a different version of gst was already required" return assert not sys.modules.has_key('gst'), \ "pygst.require() must be called before importing gst" assert version == _pygst_version, \ "Only version '%s' is available" % version # prepend the pygst path ... sys.path.insert(0, _pygst_dir) _pygst_required_version = version RCS file: /cvs/gstreamer/gst-python/gst/Makefile.am,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- Makefile.am 26 Jun 2005 12:35:07 -0000 1.38 +++ Makefile.am 1 Jul 2005 10:47:25 -0000 1.39 @@ -2,8 +2,8 @@ common_libadd = $(GST_LIBS) common_ldflags = -module -avoid-version -pkgpythondir = $(pythondir)/gst -pkgpyexecdir = $(pyexecdir)/gst +pkgpythondir = $(pythondir)/gst-$(GST_MAJORMINOR)/gst +pkgpyexecdir = $(pyexecdir)/gst-$(GST_MAJORMINOR)/gst pygstdir = $(pkgpythondir) pygst_PYTHON = __init__.py |
From: <bi...@fr...> - 2005-07-01 16:32:23
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Fri Jul 01 2005 09:32:22 PDT Log message: * gst/gst.defs: * gst/gst.override: Probes are gone... * Makefile.am: * configure.ac: * gst/Makefile.am: * pygst.py.in: Modifications to have parallel-installable gst-python Works more or less in the same way as pygtk: import pygst pygst.require('0.9') import gst Modified files: . : ChangeLog gst : gst.defs gst.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.167&r2=1.168 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.30&r2=1.31 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.50&r2=1.51 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.167 retrieving revision 1.168 diff -u -d -r1.167 -r1.168 --- ChangeLog 1 Jul 2005 10:47:24 -0000 1.167 +++ ChangeLog 1 Jul 2005 16:32:09 -0000 1.168 @@ -1,5 +1,9 @@ 2005-07-01 Edward Hervey <ed...@fl...> + * gst/gst.defs: + * gst/gst.override: + Probes are gone... + * Makefile.am: * configure.ac: * gst/Makefile.am: Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- gst.defs 28 Jun 2005 16:13:53 -0000 1.30 +++ gst.defs 1 Jul 2005 16:32:09 -0000 1.31 @@ -3620,97 +3620,6 @@ (return-type "const-gchar*") ) - -;; From ../gstreamer/gst/gstprobe.h -(define-function gst_probe_get_type - (c-name "gst_probe_get_type") - (return-type "GType") -) -(define-function gst_probe_new - (c-name "gst_probe_new") - (is-constructor-of "GstProbe") - (return-type "GstProbe*") - (parameters - '("gboolean" "single_shot") - '("GstProbeCallback" "callback") - '("gpointer" "user_data") - ) -(define-method destroy - (of-object "GstProbe") - (c-name "gst_probe_destroy") - (return-type "none") -(define-method perform - (c-name "gst_probe_perform") - (return-type "gboolean") - '("GstMiniObject**" "data") -(define-function probe_dispatcher_new - (c-name "gst_probe_dispatcher_new") - (is-constructor-of "GstProbeDispatcher") - (return-type "GstProbeDispatcher*") - (of-object "GstProbeDispatcher") - (c-name "gst_probe_dispatcher_destroy") -(define-method init - (c-name "gst_probe_dispatcher_init") -(define-method set_active - (c-name "gst_probe_dispatcher_set_active") - '("gboolean" "active") -(define-method add_probe - (c-name "gst_probe_dispatcher_add_probe") - '("GstProbe*" "probe") -(define-method remove_probe - (c-name "gst_probe_dispatcher_remove_probe") -(define-method dispatch - (c-name "gst_probe_dispatcher_dispatch") ;; From ../gstreamer/gst/gstquery.h (define-function gst_query_get_type @@ -5685,6 +5594,25 @@ ) +(define-method can_src_caps + (of-object "GstElementFactory") + (c-name "gst_element_factory_can_src_caps") + (return-type "gboolean") + (parameters + '("const-GstCaps*" "caps") + ) +) +(define-method can_sink_caps + (c-name "gst_element_factory_can_sink_caps") (define-method query_position (of-object "GstElement") (c-name "gst_element_query_position") Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- gst.override 28 Jun 2005 16:13:53 -0000 1.50 +++ gst.override 1 Jul 2005 16:32:09 -0000 1.51 @@ -38,7 +38,6 @@ #include <gst/gsttypefind.h> #include <gst/gsttag.h> #include <gst/gsttaginterface.h> -#include <gst/gstprobe.h> #include "pygstvalue.h" #include "pygstminiobject.h" @@ -843,136 +842,6 @@ /* pyg_boxed_new handles NULL checking */ return pyg_boxed_new(GST_TYPE_TAG_LIST, ret, TRUE, TRUE); } -%% -override gst_probe_new args -static gboolean -probe_handler_marshal(GstProbe *probe, GstData **data, gpointer user_data) -{ - PyGILState_STATE state; - PyObject *callback, *args; - PyObject *ret; - PyObject *py_data; - PyObject *py_user_data; - gboolean res; - gint len, i; - g_return_val_if_fail(user_data != NULL, FALSE); - state = pyg_gil_state_ensure(); - py_user_data = (PyObject *) user_data; - if (GST_IS_BUFFER(*data)) - py_data = pyg_boxed_new(GST_TYPE_BUFFER, *data, TRUE, TRUE); - else if (GST_IS_EVENT(*data)) - py_data = pyg_boxed_new(GST_TYPE_EVENT, *data, TRUE, TRUE); - else - py_data = pyg_boxed_new(GST_TYPE_DATA, *data, TRUE, TRUE); - callback = PyTuple_GetItem(py_user_data, 0); - args = Py_BuildValue("(NN)", - pyg_boxed_new(GST_TYPE_PROBE, probe, TRUE, TRUE), - py_data); - len = PyTuple_Size(py_user_data); - for (i = 1; i < len; ++i) { - PyObject *tuple = args; - args = PySequence_Concat(tuple, PyTuple_GetItem(py_user_data, i)); - Py_DECREF(tuple); - } - ret = PyObject_CallObject(callback, args); - if (!ret) { - PyErr_Print(); - res = FALSE; - } else { - res = PyObject_IsTrue(ret); - Py_DECREF(ret); - Py_DECREF(args); - pyg_gil_state_release(state); - return res; -} -static int -_wrap_gst_probe_new(PyGBoxed *self, PyObject *args, PyObject *kwargs) - PyObject *first, *callback, *cbargs = NULL, *data; - gboolean single_shot; - gint len; - len = PyTuple_Size(args); - self->gtype = GST_TYPE_PROBE; - self->free_on_dealloc = FALSE; - if (len < 2) { - PyErr_SetString(PyExc_TypeError, - "Probe requires at least 2 args"); - return -1; - } - first = PySequence_GetSlice(args, 0, 2); - if (!PyArg_ParseTuple(first, "iO:Probe", &single_shot, &callback)) { - Py_DECREF(first); - return -1; - } - Py_DECREF(first); - if (!PyCallable_Check(callback)) { - PyErr_SetString(PyExc_TypeError, "second argument not callable"); - cbargs = PySequence_GetSlice(args, 2, len); - if (cbargs == NULL) - return -1; - data = Py_BuildValue("(ON)", callback, cbargs); - if (data == NULL) - self->boxed = gst_probe_new(single_shot, probe_handler_marshal, data); - return 0; -override gst_probe_perform object -static PyObject * -_wrap_gst_probe_perform(PyGBoxed *self, PyObject *args, PyObject *kwargs) - PyObject *py_data; - GstData *data = NULL; - if (len != 1) { - "perform requires 1 arg"); - return NULL; - if (!PyArg_ParseTuple(args, "O:perform", &py_data)) { - return NULL; - /* FIXME: GstBuffer and GstEvent are not really "subclasses" so - we hardcode checks for them here by hand. Ugh. */ - if (pyg_boxed_check(py_data, GST_TYPE_EVENT)) - data = GST_DATA(pyg_boxed_get(py_data, GstEvent)); - if (pyg_boxed_check(py_data, GST_TYPE_BUFFER)) - data = GST_DATA(pyg_boxed_get(py_data, GstBuffer)); - if (pyg_boxed_check(py_data, GST_TYPE_DATA)) - data = pyg_boxed_get(py_data, GstData); - if (!data) { - PyErr_SetString(PyExc_TypeError, "arg 1 must be GstData"); - } - return PyBool_FromLong(gst_probe_perform(self->boxed, &data)); %% override gst_plugin_get_version noargs static PyObject * |
From: <bi...@fr...> - 2005-07-05 15:07:35
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jul 05 2005 08:07:32 PDT Log message: * gst/gstmodule.c: * gst/pygstminiobject.c: Proper registration of PyGstMiniObject classes in order to be able to create Event, Messages, Buffers from python. More corrections on miniobject's refcounting * gst/gstevent.override: * gst/gstbuffer.override: Removed overloaded overrides * gst/gst.defs: updated Modified files: . : ChangeLog gst : gst.defs gstbuffer.override gstevent.override gstmodule.c pygstminiobject.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.170&r2=1.171 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.31&r2=1.32 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbuffer.override.diff?r1=1.7&r2=1.8 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstevent.override.diff?r1=1.2&r2=1.3 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmodule.c.diff?r1=1.20&r2=1.21 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstminiobject.c.diff?r1=1.3&r2=1.4 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.170 retrieving revision 1.171 diff -u -d -r1.170 -r1.171 --- ChangeLog 5 Jul 2005 13:52:17 -0000 1.170 +++ ChangeLog 5 Jul 2005 15:07:20 -0000 1.171 @@ -1,3 +1,18 @@ +2005-07-05 Edward Hervey <ed...@fl...> + + * gst/gstmodule.c: + * gst/pygstminiobject.c: + Proper registration of PyGstMiniObject classes in order to be able to + create Event, Messages, Buffers from python. + More corrections on miniobject's refcounting + * gst/gstevent.override: + * gst/gstbuffer.override: + Removed overloaded overrides + * gst/gst.defs: + updated 2005-07-01 Edward Hervey <ed...@fl...> * configure.ac: Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- gst.defs 1 Jul 2005 16:32:09 -0000 1.31 +++ gst.defs 5 Jul 2005 15:07:20 -0000 1.32 @@ -2443,6 +2443,7 @@ (c-name "gst_message_new_application") (return-type "GstMessage*") (parameters + '("GstObject*" "src") '("GstStructure*" "structure") ) ) @@ -3048,7 +3049,7 @@ (define-method fixate_caps (of-object "GstPad") (c-name "gst_pad_fixate_caps") - (return-type "GstCaps*") + (return-type "none") '("GstCaps*" "caps") @@ -3273,6 +3274,66 @@ +(define-method add_data_probe + (of-object "GstPad") + (c-name "gst_pad_add_data_probe") + (return-type "gulong") + (parameters + '("GCallback" "handler") + '("gpointer" "data") + ) +) +(define-method remove_data_probe + (c-name "gst_pad_remove_data_probe") +(define-method add_event_probe + (c-name "gst_pad_add_event_probe") +(define-method remove_event_probe + (c-name "gst_pad_remove_event_probe") +(define-method add_buffer_probe + (c-name "gst_pad_add_buffer_probe") +(define-method remove_buffer_probe + (c-name "gst_pad_remove_buffer_probe") (define-function pad_load_and_link (c-name "gst_pad_load_and_link") (return-type "none") Index: gstbuffer.override RCS file: /cvs/gstreamer/gst-python/gst/gstbuffer.override,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gstbuffer.override 26 Jun 2005 12:35:07 -0000 1.7 +++ gstbuffer.override 5 Jul 2005 15:07:20 -0000 1.8 @@ -118,86 +118,6 @@ return Py_None; } %% -override-attr GstBuffer.data_type -static PyObject* -_wrap_gst_buffer__get_data_type(PyGstMiniObject *self, void *closure) -{ - return pyg_type_wrapper_new(GST_DATA_TYPE(self->obj)); -} -%% -override-attr GstBuffer.flags -_wrap_gst_buffer__get_flags(PyGstMiniObject *self, void *closure) - return PyInt_FromLong(GST_DATA_FLAGS(self->obj)); -override-attr GstBuffer.size -static PyObject * -_wrap_gst_buffer__get_size(PyGstMiniObject *self, void *closure) - return PyInt_FromLong(GST_BUFFER_SIZE(self->obj)); -override-attr GstBuffer.maxsize -_wrap_gst_buffer__get_maxsize(PyGstMiniObject *self, void *closure) - return PyInt_FromLong(GST_BUFFER_MAXSIZE(self->obj)); -override-attr GstBuffer.offset -_wrap_gst_buffer__get_offset(PyGstMiniObject *self, void *closure) - return PyInt_FromLong(GST_BUFFER_OFFSET(self->obj)); -override-attr GstBuffer.offset_end -_wrap_gst_buffer__get_offset_end(PyGstMiniObject *self, void *closure) - return PyInt_FromLong(GST_BUFFER_OFFSET_END(self->obj)); -override-attr GstBuffer.timestamp -_wrap_gst_buffer__get_timestamp(PyGstMiniObject *self, void *closure) - return PyInt_FromLong(GST_BUFFER(self->obj)->timestamp); -static int -_wrap_gst_buffer__set_timestamp(PyGBoxed *self, PyObject *value, void *closure) - gint val; - - val = PyInt_AsLong(value); - if (PyErr_Occurred()) - return -1; - - pyg_boxed_get(self, GstBuffer)->timestamp = val; - return 0; -override-attr GstBuffer.duration -_wrap_gst_buffer__get_duration(PyGstMiniObject *self, void *closure) - return PyInt_FromLong(GST_BUFFER(self->obj)->duration); -_wrap_gst_buffer__set_duration(PyGBoxed *self, PyObject *value, void *closure) - pyg_boxed_get(self, GstBuffer)->duration = val; override-slot GstBuffer.tp_str static PyObject * _wrap_gst_buffer_tp_str(PyGstMiniObject *self) @@ -378,16 +298,6 @@ self = pyg_boxed_new (GST_TYPE_BUFFER, buf, FALSE, TRUE); return self; -/* %% -define GstBuffer.flags noargs -_wrap_gst_buffer_flags(PyGBoxed *self) - GstBuffer *buf = pyg_boxed_get(self, GstBuffer); - g_assert(GST_IS_BUFFER(buf)); - return PyInt_FromLong(GST_BUFFER_FLAGS(buf)); -} */ define GstBuffer.flag_is_set Index: gstevent.override RCS file: /cvs/gstreamer/gst-python/gst/gstevent.override,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gstevent.override 17 Jun 2005 10:59:47 -0000 1.2 +++ gstevent.override 5 Jul 2005 15:07:20 -0000 1.3 @@ -19,31 +19,3 @@ * * Author: Johan Dahlin <jo...@gn...> */ -override-attr GstEvent.data_type -_wrap_gst_event__get_data_type(PyGObject *self, void *closure) - return pyg_type_wrapper_new(GST_DATA_TYPE(GST_DATA(self->obj))); -override-attr GstEvent.flags -_wrap_gst_event__get_flags(PyGObject *self, void *closure) - return PyInt_FromLong(GST_DATA_FLAGS(self->obj)); -override-attr GstEvent.type -_wrap_gst_event__get_type(PyGObject *self, void *closure) - return pyg_enum_from_gtype(GST_TYPE_EVENT_TYPE, GST_EVENT_TYPE(GST_EVENT(self->obj))); -override-attr GstEvent.timestamp -_wrap_gst_event__get_timestamp(PyGObject *self, void *closure) - return PyInt_FromLong(GST_EVENT(self->obj)->timestamp); Index: gstmodule.c RCS file: /cvs/gstreamer/gst-python/gst/gstmodule.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- gstmodule.c 26 Jun 2005 12:35:07 -0000 1.20 +++ gstmodule.c 5 Jul 2005 15:07:20 -0000 1.21 @@ -24,6 +24,8 @@ #include "config.h" #endif +#include "pygstminiobject.h" #include <locale.h> /* include this first, before NO_IMPORT_PYGOBJECT is defined */ @@ -144,9 +146,15 @@ PyDict_SetItemString(d, "LinkError", PyGstExc_LinkError); + PyGstMiniObject_Type.tp_alloc = PyType_GenericAlloc; + PyGstMiniObject_Type.tp_new = PyType_GenericNew; + pygstminiobject_register_class(d, "GstMiniObject", GST_TYPE_MINI_OBJECT, + &PyGstMiniObject_Type, NULL); pygst_register_classes (d); pygst_add_constants (m, "GST_"); 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.4 diff -u -d -r1.3 -r1.4 --- pygstminiobject.c 28 Jun 2005 18:07:35 -0000 1.3 +++ pygstminiobject.c 5 Jul 2005 15:07:20 -0000 1.4 @@ -91,6 +91,8 @@ class_name = s + 1; type->ob_type = &PyType_Type; + type->tp_alloc = PyType_GenericAlloc; + type->tp_new = PyType_GenericNew; if (bases) { type->tp_bases = bases; type->tp_base = (PyTypeObject *)PyTuple_GetItem(bases, 0); @@ -140,6 +142,7 @@ Py_INCREF(self); state = pyg_gil_state_ensure(); g_hash_table_insert (miniobjs, (gpointer) obj, (gpointer) self); + gst_mini_object_ref(obj); pyg_gil_state_release(state); /* gst_mini_object_set_qdata_full(obj, pygstminiobject_wrapper_key, self, */ /* pyg_destroy_notify); */ @@ -188,15 +191,14 @@ self = PyObject_GC_New(PyGstMiniObject, tp); if (self == NULL) return NULL; - pyg_begin_allow_threads; self->obj = gst_mini_object_ref(obj); - pyg_end_allow_threads; self->inst_dict = NULL; self->weakreflist = NULL; /* save wrapper pointer so we can access it later */ Py_INCREF(self); state = pyg_gil_state_ensure(); + gst_mini_object_ref(obj); g_hash_table_insert (miniobjs, (gpointer) obj, (gpointer) self); pyg_gil_state_release(state); /* gst_mini_object_set_qdata_full(obj, pygstminiobject_wrapper_key, self, */ @@ -210,6 +212,8 @@ static void pygstminiobject_dealloc(PyGstMiniObject *self) { + GstMiniObject *obj = NULL; PyGILState_STATE state; @@ -219,9 +223,8 @@ PyObject_GC_UnTrack((PyObject *)self); if (self->obj) { gst_mini_object_unref(self->obj); + obj = self->obj; } self->obj = NULL; @@ -232,7 +235,9 @@ /* the following causes problems with subclassed types */ /* self->ob_type->tp_free((PyObject *)self); */ - g_hash_table_remove (miniobjs, (gpointer) self); + g_hash_table_remove (miniobjs, (gpointer) obj); + if (obj) + gst_mini_object_unref(obj); PyObject_GC_Del(self); @@ -289,9 +294,7 @@ self->inst_dict = NULL; @@ -302,9 +305,12 @@ pygstminiobject_free(PyObject *op) + GstMiniObject *obj = ((PyGstMiniObject*) op)->obj; - g_hash_table_remove (miniobjs, (gpointer) op); + g_hash_table_remove (miniobjs, obj); + gst_mini_object_unref (obj); PyObject_GC_Del(op); @@ -402,9 +408,16 @@ return PyInt_FromLong(GST_MINI_OBJECT_REFCOUNT_VALUE(self->obj)); +static PyObject * +pygstminiobject_get_flags(PyGstMiniObject *self, void *closure) +{ + return PyInt_FromLong(GST_MINI_OBJECT_FLAGS(self->obj)); +} static PyGetSetDef pygstminiobject_getsets[] = { { "__dict__", (getter)pygstminiobject_get_dict, (setter)0 }, { "__grefcount__", (getter)pygstminiobject_get_refcount, (setter)0, }, + { "flags", (getter)pygstminiobject_get_flags, (setter)0, }, { NULL, 0, 0 } }; |
From: <bi...@fr...> - 2005-07-12 10:14:09
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jul 12 2005 03:14:05 PDT Log message: * gst/gstmessage.override: fixes in .parse_state_changed() and parse_tag() Modified files: . : ChangeLog gst : gstmessage.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.172&r2=1.173 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmessage.override.diff?r1=1.1&r2=1.2 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.172 retrieving revision 1.173 diff -u -d -r1.172 -r1.173 --- ChangeLog 12 Jul 2005 09:45:56 -0000 1.172 +++ ChangeLog 12 Jul 2005 10:13:53 -0000 1.173 @@ -1,5 +1,10 @@ 2005-07-12 Edward Hervey <ed...@fl...> + * gst/gstmessage.override: + fixes in .parse_state_changed() and parse_tag() + +2005-07-12 Edward Hervey <ed...@fl...> * gst/gst-types.defs: * gst/gst.defs: Added GError wrapping, Index: gstmessage.override RCS file: /cvs/gstreamer/gst-python/gst/gstmessage.override,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gstmessage.override 12 Jul 2005 09:45:57 -0000 1.1 +++ gstmessage.override 12 Jul 2005 10:13:53 -0000 1.2 @@ -37,8 +37,8 @@ gst_message_parse_state_changed (GST_MESSAGE(self->obj), &old, &new); /* Return this as a tuple */ ret = PyList_New(2); - PyList_SET_ITEM(ret, 0, pyg_enum_from_gtype(GST_TYPE_ELEMENT_STATE, old)); - PyList_SET_ITEM(ret, 1, pyg_enum_from_gtype(GST_TYPE_ELEMENT_STATE, new)); + PyList_SET_ITEM(ret, 0, pyg_flags_from_gtype(GST_TYPE_ELEMENT_STATE, old)); + PyList_SET_ITEM(ret, 1, pyg_flags_from_gtype(GST_TYPE_ELEMENT_STATE, new)); return ret; } %% @@ -102,8 +102,7 @@ gst_message_parse_tag (GST_MESSAGE(self->obj), &taglist); - ret = PyList_New(0); - PyList_Append(ret, pyg_boxed_new (GST_TYPE_TAG_LIST, taglist, TRUE, TRUE)); + ret = pyg_boxed_new (GST_TYPE_TAG_LIST, taglist, TRUE, TRUE); return ret; |
From: <bi...@fr...> - 2005-07-12 16:37:48
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Tue Jul 12 2005 09:37:43 PDT Log message: * gst/gst.override: removed deprecated wrappers (gst_event_new_any*) * gst/gstbuffer.override: * gst/gstquery.override: * gst/gstmessage.override: * gst/gstevent.override: * gst/pygstminiobject.c: * gst/pygstminiobject.h: Correct wrapping of functions 'creating' mini-objects * gst/gstelement.override: (_wrap_gst_element_get_state): More meaningful exception message * gst/gstpad.override: wrapped gst_pad_alloc_buffer(), gst_pad_pull_range(), gst_pad_get_range(), gst_pad_get_internal_links(), gst_pad_get_internal_links_default(), gst_pad_get_query_types(), gst_pad_get_query_types_default() Modified files: . : ChangeLog gst : gst.override gstbuffer.override gstelement.override gstevent.override gstmessage.override gstpad.override gstquery.override pygstminiobject.c pygstminiobject.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.178&r2=1.179 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.override.diff?r1=1.52&r2=1.53 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbuffer.override.diff?r1=1.9&r2=1.10 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstelement.override.diff?r1=1.6&r2=1.7 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstevent.override.diff?r1=1.4&r2=1.5 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmessage.override.diff?r1=1.2&r2=1.3 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstpad.override.diff?r1=1.7&r2=1.8 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstquery.override.diff?r1=1.1&r2=1.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstminiobject.c.diff?r1=1.5&r2=1.6 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstminiobject.h.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.178 retrieving revision 1.179 diff -u -d -r1.178 -r1.179 --- ChangeLog 12 Jul 2005 15:23:22 -0000 1.178 +++ ChangeLog 12 Jul 2005 16:37:31 -0000 1.179 @@ -1,3 +1,26 @@ +2005-07-12 Edward Hervey <ed...@fl...> + + * gst/gst.override: + removed deprecated wrappers (gst_event_new_any*) + * gst/gstbuffer.override: + * gst/gstquery.override: + * gst/gstmessage.override: + * gst/gstevent.override: + * gst/pygstminiobject.c: + * gst/pygstminiobject.h: + Correct wrapping of functions 'creating' mini-objects + * gst/gstelement.override: (_wrap_gst_element_get_state): + More meaningful exception message + * gst/gstpad.override: + wrapped gst_pad_alloc_buffer(), gst_pad_pull_range(), + gst_pad_get_range(), gst_pad_get_internal_links(), + gst_pad_get_internal_links_default(), gst_pad_get_query_types(), + gst_pad_get_query_types_default() + 2005-07-12 Andy Wingo <wi...@po...> * examples/pipeline-tester: New file, tests out gstreamer Index: gst.override RCS file: /cvs/gstreamer/gst-python/gst/gst.override,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- gst.override 12 Jul 2005 09:45:57 -0000 1.52 +++ gst.override 12 Jul 2005 16:37:31 -0000 1.53 @@ -658,83 +658,6 @@ return Py_None; } %% -override gst_event_new_any kwargs -static PyObject * -_wrap_gst_event_new_any(PyObject *self, PyObject *args, PyObject *kwargs) -{ - static char *kwlist[] = { "structure", NULL }; - PyObject *py_structure; - GstStructure *structure = NULL; - GstEvent *event; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "O:event_new_any", kwlist, &py_structure)) - return NULL; - if (pyg_boxed_check(py_structure, GST_TYPE_STRUCTURE)) - structure = pyg_boxed_get(py_structure, GstStructure); - else { - PyErr_SetString(PyExc_TypeError, - "structure should be a GstStructure"); - } - event = gst_event_new (GST_EVENT_ANY); - if (!event) { - PyErr_SetString(PyExc_RuntimeError, - "could not create GstEvent object"); - event->event_data.structure.structure = gst_structure_copy(structure); - /* pyg_boxed_new handles NULL checking */ - return pyg_boxed_new(GST_TYPE_EVENT, event, TRUE, TRUE); -} -%% -override gst_event_any_get_structure noargs -_wrap_gst_event_any_get_structure(PyObject *self) - GstStructure *ret; - event = pyg_pointer_get(self, GstEvent); - if (GST_EVENT_TYPE(event) == GST_EVENT_ANY) { - ret = event->event_data.structure.structure; - /* pyg_boxed_new handles NULL checking */ - return pyg_boxed_new(GST_TYPE_STRUCTURE, ret, TRUE, TRUE); - } else { - Py_INCREF(Py_None); - return Py_None; -override gst_event_new_discontinuous kwargs -_wrap_gst_event_new_discontinuous(PyObject *self, PyObject *args, - PyObject *kwargs) - static char *kwlist[] = { "new_media", "format", "value", NULL }; - int new_media = FALSE; - PyObject *py_format = NULL; - gint64 value = 0; - GstFormat format; - "iOL:event_new_discontinuous", kwlist, &new_media, &py_format, - &value)) { - if (pyg_enum_get_value(GST_TYPE_FORMAT, py_format, (gint *) &format)) { - event = gst_event_new_discontinuous (new_media, format, value, - GST_FORMAT_UNDEFINED); override gst_registry_pool_plugin_list noargs static PyObject * _wrap_gst_registry_pool_plugin_list(PyGObject *self) Index: gstbuffer.override RCS file: /cvs/gstreamer/gst-python/gst/gstbuffer.override,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gstbuffer.override 12 Jul 2005 09:45:57 -0000 1.9 +++ gstbuffer.override 12 Jul 2005 16:37:31 -0000 1.10 @@ -76,6 +76,21 @@ return 0; +override gst_buffer_new_and_alloc kwargs +static PyObject * +_wrap_gst_buffer_new_and_alloc(PyObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "size", NULL }; + GstBuffer *ret; + guint size; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "I:buffer_new_and_alloc", kwlist, &size)) + return NULL; + ret = gst_buffer_new_and_alloc(size); + /* pygobject_new handles NULL checking */ + return pygstminiobject_new_noref((GstMiniObject *)ret); +} +%% override gst_buffer_get_data static PyObject* _wrap_gst_buffer_get_data(PyObject *self) Index: gstelement.override RCS file: /cvs/gstreamer/gst-python/gst/gstelement.override,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- gstelement.override 12 Jul 2005 09:45:57 -0000 1.6 +++ gstelement.override 12 Jul 2005 16:37:31 -0000 1.7 @@ -95,7 +95,7 @@ /* Only returns the state for the time being */ ret = gst_element_get_state(GST_ELEMENT (self->obj), &state, NULL, NULL); if (!ret) { - PyErr_SetString(PyExc_RuntimeError, "conversion could not be performed"); + PyErr_SetString(PyExc_RuntimeError, "Element is in an error state"); return NULL; } return pyg_flags_from_gtype(GST_TYPE_ELEMENT_STATE, state); Index: gstevent.override RCS file: /cvs/gstreamer/gst-python/gst/gstevent.override,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gstevent.override 12 Jul 2005 09:45:57 -0000 1.4 +++ gstevent.override 12 Jul 2005 16:37:31 -0000 1.5 @@ -54,3 +54,97 @@ return ret; +override gst_event_new_seek kwargs +_wrap_gst_event_new_seek(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "type", "offset", NULL }; + PyObject *py_type = NULL; + gint64 offset; + GstEvent *ret; + GstSeekType type; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OL:event_new_seek", kwlist, &py_type, &offset)) + if (pyg_flags_get_value(GST_TYPE_SEEK_TYPE, py_type, (gint *)&type)) + ret = gst_event_new_seek(type, offset); +override gst_event_new_segment_seek kwargs +_wrap_gst_event_new_segment_seek(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "type", "start", "stop", NULL }; + gint64 start, stop; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OLL:event_new_segment_seek", kwlist, &py_type, &start, &stop)) + ret = gst_event_new_segment_seek(type, start, stop); +override gst_event_new_size kwargs +_wrap_gst_event_new_size(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "format", "value", NULL }; + PyObject *py_format = NULL; + GstFormat format; + gint64 value; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OL:event_new_size", kwlist, &py_format, &value)) + if (pyg_enum_get_value(GST_TYPE_FORMAT, py_format, (gint *)&format)) + ret = gst_event_new_size(format, value); +override gst_event_new_flush kwargs +_wrap_gst_event_new_flush(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "done", NULL }; + int done; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:event_new_flush", kwlist, &done)) + ret = gst_event_new_flush(done); +override gst_event_new_tag kwargs +_wrap_gst_event_new_tag(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "list", NULL }; + GstTagList *list = NULL; + PyObject *py_list; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:event_new_tag", kwlist, &py_list)) + if (pyg_boxed_check(py_list, GST_TYPE_TAG_LIST)) + list = pyg_boxed_get(py_list, GstTagList); + else { + PyErr_SetString(PyExc_TypeError, "list should be a GstTagList"); + } + ret = gst_event_new_tag(list); Index: gstmessage.override RCS file: /cvs/gstreamer/gst-python/gst/gstmessage.override,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gstmessage.override 12 Jul 2005 10:13:53 -0000 1.2 +++ gstmessage.override 12 Jul 2005 16:37:31 -0000 1.3 @@ -106,3 +106,133 @@ +override gst_message_new_eos kwargs +_wrap_gst_message_new_eos(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "src", NULL }; + PyGObject *src; + GstMessage *ret; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:message_new_eos", kwlist, &PyGstObject_Type, &src)) + ret = gst_message_new_eos(GST_OBJECT(src->obj)); +override gst_message_new_error kwargs +_wrap_gst_message_new_error(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "src", "error", "debug", NULL }; + PyObject *py_error; + char *debug; + GError *error = NULL; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Os:message_new_error", kwlist, &PyGstObject_Type, &src, &py_error, &debug)) + if (pyg_boxed_check(py_error, GST_TYPE_G_ERROR)) + error = pyg_boxed_get(py_error, GError); + PyErr_SetString(PyExc_TypeError, "error should be a GError"); + ret = gst_message_new_error(GST_OBJECT(src->obj), error, debug); +override gst_message_new_warning kwargs +_wrap_gst_message_new_warning(PyObject *self, PyObject *args, PyObject *kwargs) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Os:message_new_warning", kwlist, &PyGstObject_Type, &src, &py_error, &debug)) + ret = gst_message_new_warning(GST_OBJECT(src->obj), error, debug); +override gst_message_new_tag kwargs +_wrap_gst_message_new_tag(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "src", "tag_list", NULL }; + GstTagList *tag_list = NULL; + PyObject *py_tag_list; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O:message_new_tag", kwlist, &PyGstObject_Type, &src, &py_tag_list)) + if (pyg_boxed_check(py_tag_list, GST_TYPE_TAG_LIST)) + tag_list = pyg_boxed_get(py_tag_list, GstTagList); + PyErr_SetString(PyExc_TypeError, "tag_list should be a GstTagList"); + ret = gst_message_new_tag(GST_OBJECT(src->obj), tag_list); +override gst_message_new_state_changed kwargs +_wrap_gst_message_new_state_changed(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "src", "old_state", "new_state", NULL }; + PyObject *py_old_state = NULL, *py_new_state = NULL; + GstElementState old_state, new_state; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!OO:message_new_state_changed", kwlist, &PyGstObject_Type, &src, &py_old_state, &py_new_state)) + if (pyg_flags_get_value(GST_TYPE_ELEMENT_STATE, py_old_state, (gint *)&old_state)) + if (pyg_flags_get_value(GST_TYPE_ELEMENT_STATE, py_new_state, (gint *)&new_state)) + ret = gst_message_new_state_changed(GST_OBJECT(src->obj), old_state, new_state); +override gst_message_new_application kwargs +_wrap_gst_message_new_application(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "src", "structure", NULL }; + PyObject *py_structure; + GstStructure *structure = NULL; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!O:message_new_application", kwlist, &PyGstObject_Type, &src, &py_structure)) + if (pyg_boxed_check(py_structure, GST_TYPE_STRUCTURE)) + structure = pyg_boxed_get(py_structure, GstStructure); + PyErr_SetString(PyExc_TypeError, "structure should be a GstStructure"); + ret = gst_message_new_application(GST_OBJECT(src->obj), structure); Index: gstpad.override RCS file: /cvs/gstreamer/gst-python/gst/gstpad.override,v retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gstpad.override 12 Jul 2005 09:45:57 -0000 1.7 +++ gstpad.override 12 Jul 2005 16:37:31 -0000 1.8 @@ -407,14 +407,12 @@ static char *kwlist[] = { "query", NULL }; int ret; PyGstMiniObject *query; - GstMiniObject *copy; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!:GstPad.query", kwlist, &PyGstQuery_Type, &query)) return NULL; - copy = gst_mini_object_make_writable(query->obj); - ret = gst_pad_query(GST_PAD(self->obj), GST_QUERY (copy)); - gst_mini_object_unref ((query->obj)); - gst_mini_object_replace (&(query->obj), copy); + ret = gst_pad_query(GST_PAD(self->obj), GST_QUERY (query->obj)); return PyBool_FromLong(ret); @@ -831,3 +829,172 @@ return ret; +override gst_pad_alloc_buffer kwargs +_wrap_gst_pad_alloc_buffer (PyGObject *self, PyObject * args, PyObject *kwargs) + static char *kwlist[] = {"offset", "size", "caps", NULL}; + guint64 offset; + gint size; + PyObject *pcaps; + GstCaps *caps; + PyObject *ret; + GstBuffer *buf; + GstFlowReturn res; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "KiO:GstPad.alloc_buffer", + kwlist, &offset, &size, &pcaps)) + return NULL; + caps = pyg_boxed_get(pcaps, GstCaps); + res = gst_pad_alloc_buffer (GST_PAD(pygobject_get(self)), + offset, size, caps, &buf); + ret = PyList_New(0); + PyList_Append(ret, pyg_enum_from_gtype(GST_TYPE_FLOW_RETURN, res)); + if (res != GST_FLOW_OK) { + Py_INCREF(Py_None); + PyList_Append(ret, Py_None); + } else { + PyList_Append(ret, pygstminiobject_new(GST_MINI_OBJECT(buf))); + return ret; +override gst_pad_pull_range kwargs +_wrap_gst_pad_pull_range (PyGObject *self, PyObject * args, PyObject *kwargs) + static char *kwlist[] = {"offset", "size", NULL}; + "Ki:GstPad.pull_range", + kwlist, &offset, &size)) + res = gst_pad_pull_range (GST_PAD(pygobject_get(self)), + offset, size, &buf); +override gst_pad_get_range kwargs +_wrap_gst_pad_get_range (PyGObject *self, PyObject * args, PyObject *kwargs) + "Ki:GstPad.get_range", + res = gst_pad_get_range (GST_PAD(pygobject_get(self)), + offset, size, &buf); +override gst_pad_get_internal_links noargs +_wrap_gst_pad_get_internal_links (PyGObject * self) + 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, pygobject_new(G_OBJECT(tmp->data))); + g_list_free(lst); +override gst_pad_get_internal_links_default noargs +_wrap_gst_pad_get_internal_links_default (PyGObject * self) + lst = gst_pad_get_internal_links_default (GST_PAD (pygobject_get(self))); +override gst_pad_get_query_types noargs +_wrap_gst_pad_get_query_types (PyGObject *self) + PyObject *item; + int i; + GstQueryType *tab; + tab = (GstQueryType*) gst_pad_get_query_types(GST_PAD(self->obj)); + if (tab == NULL) { + return Py_None; + for (i = 0; tab[i] != 0; i++) { + item = pyg_enum_from_gtype (GST_TYPE_QUERY_TYPE, tab[i]); + PyList_Append(ret, item); + +override gst_pad_get_query_types_default noargs +_wrap_gst_pad_get_query_types_default (PyGObject *self) + tab = (GstQueryType*) gst_pad_get_query_types_default(GST_PAD(self->obj)); Index: gstquery.override RCS file: /cvs/gstreamer/gst-python/gst/gstquery.override,v retrieving revision 1.1 diff -u -d -r1.1 -r1.2 --- gstquery.override 12 Jul 2005 09:45:57 -0000 1.1 +++ gstquery.override 12 Jul 2005 16:37:31 -0000 1.2 @@ -112,3 +112,67 @@ +override gst_query_new_position kwargs +_wrap_gst_query_new_position(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "format", NULL }; + GstQuery *ret; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:query_new_position", kwlist, &py_format)) + ret = gst_query_new_position(format); +override gst_query_new_convert kwargs +_wrap_gst_query_new_convert(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "src_fmt", "value", "dest_fmt", NULL }; + PyObject *py_src_fmt = NULL, *py_dest_fmt = NULL; + GstFormat src_fmt, dest_fmt; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OLO:query_new_convert", kwlist, &py_src_fmt, &value, &py_dest_fmt)) + if (pyg_enum_get_value(GST_TYPE_FORMAT, py_src_fmt, (gint *)&src_fmt)) + if (pyg_enum_get_value(GST_TYPE_FORMAT, py_dest_fmt, (gint *)&dest_fmt)) + ret = gst_query_new_convert(src_fmt, value, dest_fmt); +override gst_query_new_application kwargs +_wrap_gst_query_new_application(PyObject *self, PyObject *args, PyObject *kwargs) + static char *kwlist[] = { "type", "structure", NULL }; + PyObject *py_type = NULL, *py_structure; + GstQueryType type; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO:query_new_application", kwlist, &py_type, &py_structure)) + if (pyg_enum_get_value(GST_TYPE_QUERY_TYPE, py_type, (gint *)&type)) + ret = gst_query_new_application(type, structure); Index: pygstminiobject.c RCS file: /cvs/gstreamer/gst-python/gst/pygstminiobject.c,v diff -u -d -r1.5 -r1.6 --- pygstminiobject.c 12 Jul 2005 09:45:57 -0000 1.5 +++ pygstminiobject.c 12 Jul 2005 16:37:31 -0000 1.6 @@ -24,8 +24,8 @@ static const gchar *pygstminiobject_class_id = "PyGstMiniObject::class"; static GQuark pygstminiobject_class_key = 0; -static const gchar *pygstminiobject_wrapper_id = "PyGstMiniObject::wrapper"; -static GQuark pygstminiobject_wrapper_key = 0; +/* static const gchar *pygstminiobject_wrapper_id = "PyGstMiniObject::wrapper"; */ +/* static GQuark pygstminiobject_wrapper_key = 0; */ static void pygstminiobject_dealloc(PyGstMiniObject *self); static int pygstminiobject_traverse(PyGstMiniObject *self, visitproc visit, void *arg); @@ -119,10 +119,6 @@ g_type_set_qdata(gtype, pygstminiobject_class_key, type); - /* set up __doc__ descriptor on type */ -/* PyDict_SetItemString(type->tp_dict, "__doc__", */ -/* pyg_object_descr_doc_get()); */ PyDict_SetItemString(dict, (char *)class_name, (PyObject *)type); @@ -142,16 +138,11 @@ GstMiniObject *obj = ((PyGstMiniObject *)self)->obj; PyGILState_STATE state; - if (!pygstminiobject_wrapper_key) - pygstminiobject_wrapper_key=g_quark_from_static_string(pygstminiobject_wrapper_id); - Py_INCREF(self); state = pyg_gil_state_ensure(); g_hash_table_insert (miniobjs, (gpointer) obj, (gpointer) self); - gst_mini_object_ref(obj); pyg_gil_state_release(state); -/* gst_mini_object_set_qdata_full(obj, pygstminiobject_wrapper_key, self, */ -/* pyg_destroy_notify); */ @@ -172,9 +163,6 @@ PyGstMiniObject *self; - pygstminiobject_wrapper_key = g_quark_from_static_string(pygstminiobject_wrapper_id); if (obj == NULL) { Py_INCREF(Py_None); return Py_None; @@ -184,7 +172,7 @@ self = (PyGstMiniObject *)g_hash_table_lookup (miniobjs, (gpointer) obj); -/* self = (PyGstMiniObject *)gst_mini_object_get_qdata(obj, pygstminiobject_wrapper_key); */ if (self != NULL) { Py_INCREF(self); } else { @@ -203,20 +191,69 @@ self->inst_dict = NULL; self->weakreflist = NULL; - /* save wrapper pointer so we can access it later */ state = pyg_gil_state_ensure(); - gst_mini_object_ref(obj); + /* save wrapper pointer so we can access it later */ g_hash_table_insert (miniobjs, (gpointer) obj, (gpointer) self); pyg_gil_state_release(state); -/* gst_mini_object_set_qdata_full(obj, pygstminiobject_wrapper_key, self, */ -/* pyg_destroy_notify); */ PyObject_GC_Track((PyObject *)self); return (PyObject *)self; +/** + * pygstminiobject_new_noref + * @obj: a GstMiniObject instance. + * + * This function will return the wrapper for the given MiniObject + * Only use this function to wrap miniobjects created in the bindings + * Returns: a reference to the wrapper for the GstMiniObject. + */ +PyObject * +pygstminiobject_new_noref(GstMiniObject *obj) + PyGILState_STATE state; + PyGstMiniObject *self; + if (obj == NULL) { + /* create wrapper */ + 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) + Py_INCREF(tp); + self = PyObject_GC_New(PyGstMiniObject, tp); + if (self == NULL) + /* DO NOT REF !! */ + self->obj = obj; + /*self->obj = gst_mini_object_ref(obj);*/ + self->inst_dict = NULL; + self->weakreflist = NULL; + /* save wrapper pointer so we can access it later */ + Py_INCREF(self); + 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; static void pygstminiobject_dealloc(PyGstMiniObject *self) { @@ -233,7 +270,7 @@ PyObject_GC_UnTrack((PyObject *)self); if (self->obj) { - gst_mini_object_unref(self->obj); + gst_mini_object_unref(self->obj); obj = self->obj; self->obj = NULL; @@ -246,8 +283,7 @@ /* the following causes problems with subclassed types */ /* self->ob_type->tp_free((PyObject *)self); */ g_hash_table_remove (miniobjs, (gpointer) obj); - if (obj) - gst_mini_object_unref(obj); PyObject_GC_Del(self); @@ -314,14 +350,6 @@ pygstminiobject_free(PyObject *op) - PyGILState_STATE state; - GstMiniObject *obj = ((PyGstMiniObject*) op)->obj; - state = pyg_gil_state_ensure(); - g_hash_table_remove (miniobjs, obj); - gst_mini_object_unref (obj); - pyg_gil_state_release(state); PyObject_GC_Del(op); @@ -380,7 +408,8 @@ pygstminiobject_ref(PyGstMiniObject *self, PyObject *args) - return pygstminiobject_new(gst_mini_object_ref(self->obj)); + gst_mini_object_ref(self->obj); + return (PyObject*) self; @@ -394,9 +423,9 @@ static PyMethodDef pygstminiobject_methods[] = { { "__gstminiobject_init__", (PyCFunction)pygstminiobject__gstminiobject_init__, METH_VARARGS|METH_KEYWORDS }, - { "copy", (PyCFunction)pygstminiobject_copy, METH_VARARGS}, - { "ref", (PyCFunction)pygstminiobject_ref, METH_VARARGS}, - { "unref", (PyCFunction)pygstminiobject_unref, METH_VARARGS}, + { "copy", (PyCFunction)pygstminiobject_copy, METH_VARARGS, "Copies the miniobject"}, + { "ref", (PyCFunction)pygstminiobject_ref, METH_VARARGS, "Adds a reference to the miniobject" }, + { "unref", (PyCFunction)pygstminiobject_unref, METH_VARARGS, "Removes a reference from the miniobject"}, { NULL, NULL, 0 } }; Index: pygstminiobject.h RCS file: /cvs/gstreamer/gst-python/gst/pygstminiobject.h,v --- pygstminiobject.h 28 Jun 2005 16:13:53 -0000 1.2 +++ pygstminiobject.h 12 Jul 2005 16:37:31 -0000 1.3 @@ -28,6 +28,8 @@ PyObject * pygstminiobject_new(GstMiniObject *obj); +pygstminiobject_new_noref(GstMiniObject *obj); #define pygstminiobject_get(v) (((PyGstMiniObject *)(v))->obj) #define pygstminiobject_check(v,base) (PyObject_TypeCheck(v,base)) |
From: <bi...@fr...> - 2005-07-13 10:06:18
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Jul 13 2005 03:06:11 PDT Log message: * gst/gstbus.override: (bus_handler) (bus_sync_handler): Raise an exception if the callback doesn't return anything * gst/pygstminiobject.c: removed the 'ref' and 'unref' methods Modified files: . : ChangeLog gst : gstbus.override pygstminiobject.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.180&r2=1.181 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbus.override.diff?r1=1.1&r2=1.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstminiobject.c.diff?r1=1.6&r2=1.7 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.180 retrieving revision 1.181 diff -u -d -r1.180 -r1.181 --- ChangeLog 13 Jul 2005 10:03:04 -0000 1.180 +++ ChangeLog 13 Jul 2005 10:05:59 -0000 1.181 @@ -1,3 +1,11 @@ +2005-07-13 Edward Hervey <ed...@fl...> + + * gst/gstbus.override: (bus_handler) (bus_sync_handler): + Raise an exception if the callback doesn't return anything + * gst/pygstminiobject.c: + removed the 'ref' and 'unref' methods 2005-07-13 Andy Wingo <wi...@po...> * examples/pipeline-tester: Tweaks, show messages. Index: gstbus.override RCS file: /cvs/gstreamer/gst-python/gst/gstbus.override,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gstbus.override 12 Jul 2005 09:45:57 -0000 1.1 +++ gstbus.override 13 Jul 2005 10:05:59 -0000 1.2 @@ -55,7 +55,11 @@ PyErr_Print(); res = GST_BUS_PASS; } else { - if (pyg_enum_get_value(GST_TYPE_BUS_SYNC_REPLY, ret, (gint *) &res)) + if (ret == Py_None) { + PyErr_SetString(PyExc_TypeError, "callback should return a BusSyncReply"); + PyErr_Print(); + res = GST_BUS_PASS; + } else if (pyg_enum_get_value(GST_TYPE_BUS_SYNC_REPLY, ret, (gint *) &res)) res = GST_BUS_PASS; Py_DECREF (ret); } @@ -101,7 +105,12 @@ res = TRUE; - res = PyObject_IsTrue(ret); + PyErr_SetString(PyExc_TypeError, "callback should return True or False"); + res = TRUE; + } else + res = PyObject_IsTrue(ret); Py_DECREF(ret); Py_DECREF(args); Index: pygstminiobject.c RCS file: /cvs/gstreamer/gst-python/gst/pygstminiobject.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- pygstminiobject.c 12 Jul 2005 16:37:31 -0000 1.6 +++ pygstminiobject.c 13 Jul 2005 10:05:59 -0000 1.7 @@ -405,27 +405,10 @@ return pygstminiobject_new(gst_mini_object_copy(self->obj)); } -static PyObject * -pygstminiobject_ref(PyGstMiniObject *self, PyObject *args) -{ - gst_mini_object_ref(self->obj); - return (PyObject*) self; -} - -pygstminiobject_unref(PyGstMiniObject *self, PyObject *args) - Py_INCREF(Py_None); - return Py_None; static PyMethodDef pygstminiobject_methods[] = { { "__gstminiobject_init__", (PyCFunction)pygstminiobject__gstminiobject_init__, METH_VARARGS|METH_KEYWORDS }, { "copy", (PyCFunction)pygstminiobject_copy, METH_VARARGS, "Copies the miniobject"}, - { "ref", (PyCFunction)pygstminiobject_ref, METH_VARARGS, "Adds a reference to the miniobject" }, - { "unref", (PyCFunction)pygstminiobject_unref, METH_VARARGS, "Removes a reference from the miniobject"}, { NULL, NULL, 0 } }; |
From: <bi...@fr...> - 2005-07-13 16:10:40
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Jul 13 2005 09:10:36 PDT Log message: * gst/gstbus.override: (bus_sync_handler),(bus_handler): properly unref the message python wrapper... Modified files: . : ChangeLog gst : gstbus.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.185&r2=1.186 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstbus.override.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.185 retrieving revision 1.186 diff -u -d -r1.185 -r1.186 --- ChangeLog 13 Jul 2005 15:14:51 -0000 1.185 +++ ChangeLog 13 Jul 2005 16:10:23 -0000 1.186 @@ -1,3 +1,8 @@ +2005-07-13 Edward Hervey <ed...@fl...> + + * gst/gstbus.override: (bus_sync_handler),(bus_handler): + properly unref the message python wrapper... 2005-07-13 Andy Wingo <wi...@po...> * examples/pipeline-tester (Window.on_message): Handle errors. Index: gstbus.override RCS file: /cvs/gstreamer/gst-python/gst/gstbus.override,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gstbus.override 13 Jul 2005 10:05:59 -0000 1.2 +++ gstbus.override 13 Jul 2005 16:10:24 -0000 1.3 @@ -63,7 +63,7 @@ res = GST_BUS_PASS; Py_DECREF (ret); } - + Py_DECREF(py_msg); Py_DECREF(args); pyg_gil_state_release(state); @@ -77,7 +77,7 @@ PyGILState_STATE state; gboolean res; PyObject *py_userdata; - PyObject *py_msg; + PyObject *py_msg; PyObject *callback, *args; PyObject *ret; gint i,len; @@ -87,7 +87,7 @@ state = pyg_gil_state_ensure(); py_userdata = (PyObject *) user_data; - py_msg = pygstminiobject_new(GST_MINI_OBJECT(message)); + py_msg = pygstminiobject_new(GST_MINI_OBJECT(message)); callback = PyTuple_GetItem(py_userdata, 0); args = Py_BuildValue("(NN)", pygobject_new(G_OBJECT(bus)), @@ -113,6 +113,7 @@ res = PyObject_IsTrue(ret); Py_DECREF(ret); |
From: <bi...@fr...> - 2005-07-13 16:29:20
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Jul 13 2005 09:29:18 PDT Log message: * gst/gst-types.defs: (MessageType): updating to current core for 2 new GstMessageType's * gst/gstbus.override: (bus_sync_handler),(bus_handler): properly unref the message python wrapper... Modified files: . : ChangeLog gst : gst-types.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.186&r2=1.187 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-types.defs.diff?r1=1.19&r2=1.20 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.186 retrieving revision 1.187 diff -u -d -r1.186 -r1.187 --- ChangeLog 13 Jul 2005 16:10:23 -0000 1.186 +++ ChangeLog 13 Jul 2005 16:29:06 -0000 1.187 @@ -1,5 +1,8 @@ 2005-07-13 Edward Hervey <ed...@fl...> + * gst/gst-types.defs: (MessageType): + updating to current core for 2 new GstMessageType's + * gst/gstbus.override: (bus_sync_handler),(bus_handler): properly unref the message python wrapper... Index: gst-types.defs RCS file: /cvs/gstreamer/gst-python/gst/gst-types.defs,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- gst-types.defs 12 Jul 2005 09:45:57 -0000 1.19 +++ gst-types.defs 13 Jul 2005 16:29:06 -0000 1.20 @@ -635,6 +635,8 @@ '("structure-change" "GST_MESSAGE_STRUCTURE_CHANGE") '("stream-status" "GST_MESSAGE_STREAM_STATUS") '("application" "GST_MESSAGE_APPLICATION") + '("segment-start" "GST_MESSAGE_SEGMENT_START") + '("segment-done" "GST_MESSAGE_SEGMENT_DONE") '("any" "GST_MESSAGE_ANY") ) ) |
From: <bi...@fr...> - 2005-07-18 16:40:59
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Mon Jul 18 2005 09:40:53 PDT Log message: * gst/gst.defs: Updating defs file Modified files: . : ChangeLog gst : gst.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.187&r2=1.188 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.33&r2=1.34 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.187 retrieving revision 1.188 diff -u -d -r1.187 -r1.188 --- ChangeLog 13 Jul 2005 16:29:06 -0000 1.187 +++ ChangeLog 18 Jul 2005 16:40:41 -0000 1.188 @@ -1,3 +1,7 @@ +2005-07-18 Edward Hervey <ed...@fl...> + + * gst/gst.defs: Updating defs file 2005-07-13 Edward Hervey <ed...@fl...> * gst/gst-types.defs: (MessageType): Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- gst.defs 12 Jul 2005 09:45:57 -0000 1.33 +++ gst.defs 18 Jul 2005 16:40:41 -0000 1.34 @@ -439,6 +439,12 @@ ) ) +(define-method truncate + (of-object "GstCaps") + (c-name "gst_caps_truncate") + (return-type "none") +) (define-method set_simple (of-object "GstCaps") (c-name "gst_caps_set_simple") @@ -813,6 +819,21 @@ +(define-method set_base_time + (of-object "GstElement") + (c-name "gst_element_set_base_time") + (parameters + '("GstClockTime" "time") + ) +(define-method get_base_time + (c-name "gst_element_get_base_time") + (return-type "GstClockTime") (define-method is_indexable (of-object "GstElement") (c-name "gst_element_is_indexable") @@ -3471,6 +3492,21 @@ (return-type "GstBus*") +(define-method set_new_stream_time + (of-object "GstPipeline") + (c-name "gst_pipeline_set_new_stream_time") +(define-method get_last_stream_time + (c-name "gst_pipeline_get_last_stream_time") (define-method use_clock (of-object "GstPipeline") (c-name "gst_pipeline_use_clock") @@ -5725,6 +5761,18 @@ +(define-method link_pads_filtered + (c-name "gst_element_link_pads_filtered") + (return-type "gboolean") + '("const-gchar*" "srcpadname") + '("GstElement*" "dest") + '("const-gchar*" "destpadname") + '("GstCaps*" "filter") (define-method can_src_caps (of-object "GstElementFactory") (c-name "gst_element_factory_can_src_caps") @@ -5813,6 +5861,12 @@ +(define-method get_parent_element + (of-object "GstPad") + (c-name "gst_pad_get_parent_element") + (return-type "GstElement*") (define-method query_position (of-object "GstPad") (c-name "gst_pad_query_position") |
From: <bi...@fr...> - 2005-07-18 17:12:47
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Mon Jul 18 2005 10:12:44 PDT Log message: * gst/gst.defs: Updating defs file even more :) Modified files: . : ChangeLog gst : gst.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.188&r2=1.189 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.34&r2=1.35 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.188 retrieving revision 1.189 diff -u -d -r1.188 -r1.189 --- ChangeLog 18 Jul 2005 16:40:41 -0000 1.188 +++ ChangeLog 18 Jul 2005 17:12:31 -0000 1.189 @@ -1,5 +1,9 @@ 2005-07-18 Edward Hervey <ed...@fl...> + * gst/gst.defs: Updating defs file even more :) + +2005-07-18 Edward Hervey <ed...@fl...> * gst/gst.defs: Updating defs file 2005-07-13 Edward Hervey <ed...@fl...> Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- gst.defs 18 Jul 2005 16:40:41 -0000 1.34 +++ gst.defs 18 Jul 2005 17:12:31 -0000 1.35 @@ -855,21 +855,6 @@ (return-type "GstIndex*") ) -(define-method set_manager - (of-object "GstElement") - (c-name "gst_element_set_manager") - (return-type "none") - (parameters - '("GstPipeline*" "pipeline") - ) -) - -(define-method get_manager - (c-name "gst_element_get_manager") - (return-type "GstPipeline*") (define-method set_bus (of-object "GstElement") (c-name "gst_element_set_bus") @@ -885,21 +870,6 @@ (return-type "GstBus*") -(define-method set_scheduler - (c-name "gst_element_set_scheduler") - '("GstScheduler*" "sched") -(define-method get_scheduler - (c-name "gst_element_get_scheduler") - (return-type "GstScheduler*") (define-method add_pad (c-name "gst_element_add_pad") @@ -1181,14 +1151,6 @@ ) -(define-virtual set_manager - '("GstPipeline*" "pipeline") (define-virtual set_bus (return-type "none") @@ -1197,14 +1159,6 @@ -(define-virtual set_scheduler - '("GstScheduler*" "scheduler") ;; From ../gstreamer/gst/gstelementfactory.h (define-function element_factory_get_type @@ -1505,11 +1459,6 @@ (return-type "GType") -(define-function gst_scheduler_flags_get_type - (c-name "gst_scheduler_flags_get_type") - (return-type "GType") (define-function gst_tag_merge_mode_get_type (c-name "gst_tag_merge_mode_get_type") @@ -2831,12 +2780,6 @@ -(define-method get_parent - (of-object "GstPad") - (c-name "gst_pad_get_parent") - (return-type "GstElement*") (define-method get_direction (of-object "GstPad") (c-name "gst_pad_get_direction") @@ -3480,12 +3423,6 @@ - (of-object "GstPipeline") - (c-name "gst_pipeline_get_scheduler") (define-method get_bus (of-object "GstPipeline") (c-name "gst_pipeline_get_bus") @@ -4178,128 +4115,6 @@ -;; From ../gstreamer/gst/gstscheduler.h -(define-function gst_scheduler_get_type - (c-name "gst_scheduler_get_type") -(define-method setup - (of-object "GstScheduler") - (c-name "gst_scheduler_setup") -(define-method reset - (c-name "gst_scheduler_reset") -(define-method create_task - (c-name "gst_scheduler_create_task") - (return-type "GstTask*") - '("GstTaskFunction" "func") - '("gpointer" "data") -(define-function gst_scheduler_factory_get_type - (c-name "gst_scheduler_factory_get_type") -(define-function scheduler_register - (c-name "gst_scheduler_register") - (return-type "gboolean") - '("GstPlugin*" "plugin") - '("const-gchar*" "name") - '("const-gchar*" "longdesc") - '("GType" "type") -(define-function gst_scheduler_factory_new - (c-name "gst_scheduler_factory_new") - (is-constructor-of "GstSchedulerFactory") - (return-type "GstSchedulerFactory*") -(define-method destroy - (of-object "GstSchedulerFactory") - (c-name "gst_scheduler_factory_destroy") -(define-function scheduler_factory_find - (c-name "gst_scheduler_factory_find") -(define-method create - (c-name "gst_scheduler_factory_create") - '("GstElement*" "parent") -(define-function scheduler_factory_make - (c-name "gst_scheduler_factory_make") -(define-function scheduler_factory_set_default_name - (c-name "gst_scheduler_factory_set_default_name") -(define-function scheduler_factory_get_default_name - (c-name "gst_scheduler_factory_get_default_name") - (return-type "const-gchar*") -(define-virtual setup -(define-virtual reset -(define-virtual create_task - '("GstTaskFunction" "func") - '("gpointer" "data") ;; From ../gstreamer/gst/gststructure.h (define-function gst_structure_get_type @@ -5291,21 +5106,6 @@ (return-type "gboolean") -(define-virtual start - (of-object "GstTask") -(define-virtual stop -(define-virtual pause ;; From ../gstreamer/gst/gsttrace.h (define-function gst_trace_new |
From: <bi...@fr...> - 2005-07-18 17:13:18
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Mon Jul 18 2005 10:13:16 PDT Log message: * gst/gstpad.override: misc fixes for change in gst_pad_get_parent() * gst/gst.defs: Updating defs file even more :) Modified files: . : ChangeLog gst : gstpad.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.189&r2=1.190 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstpad.override.diff?r1=1.8&r2=1.9 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.189 retrieving revision 1.190 diff -u -d -r1.189 -r1.190 --- ChangeLog 18 Jul 2005 17:12:31 -0000 1.189 +++ ChangeLog 18 Jul 2005 17:13:04 -0000 1.190 @@ -1,5 +1,7 @@ 2005-07-18 Edward Hervey <ed...@fl...> + * gst/gstpad.override: misc fixes for change in gst_pad_get_parent() + * gst/gst.defs: Updating defs file even more :) Index: gstpad.override RCS file: /cvs/gstreamer/gst-python/gst/gstpad.override,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- gstpad.override 12 Jul 2005 16:37:31 -0000 1.8 +++ gstpad.override 18 Jul 2005 17:13:04 -0000 1.9 @@ -245,7 +245,7 @@ static void EXCEPTION_HANDLER handle_chain_function_exception (GValue *ret, guint n, const GValue *params) { - GstElement *element = gst_pad_get_parent (g_value_get_object (¶ms[0])); + GstElement *element = GST_ELEMENT (gst_object_get_parent (g_value_get_object (¶ms[0]))); if (!_pygst_element_check_error (element)) g_assert_not_reached (); /* only returns FALSE when there's no error */ @@ -295,7 +295,7 @@ handle_event_function_exception (GValue *ret, guint n, const GValue *params) + GstElement *element = GST_ELEMENT (gst_pad_get_parent (g_value_get_object (¶ms[0]))); @@ -388,7 +388,7 @@ GstElement *parent; pad = GST_PAD(self->obj); - parent = gst_pad_get_parent (pad); + parent = GST_ELEMENT (gst_pad_get_parent (pad)); buf = g_strdup_printf ("<GstPad (%s:%s) at %lx>", parent ? gst_element_get_name (parent) : "---", @@ -998,3 +998,102 @@ return ret; } +%% +override gst_pad_set_blocked_async args +static void +pad_block_callback_marshal(GstPad *pad, gboolean blocked, gpointer user_data) +{ + PyGILState_STATE state; + PyObject *callback, *args; + PyObject *ret; + PyObject *py_data; + PyObject *py_user_data; + gint len, i; + g_return_if_fail(user_data != NULL); + state = pyg_gil_state_ensure(); + py_user_data = (PyObject *) user_data; + if (blocked) + py_data = Py_True; + else + py_data = Py_False; + Py_INCREF(py_data); + callback = PyTuple_GetItem(py_user_data, 0); + args = Py_BuildValue("(NN)", + pygobject_new(G_OBJECT(pad)), + py_data); + len = PyTuple_Size(py_user_data); + for (i = 1; i < len; ++i) { + PyObject *tuple = args; + args = PySequence_Concat(tuple, PyTuple_GetItem(py_user_data, i)); + Py_DECREF(tuple); + } + ret = PyObject_CallObject(callback, args); + if (!ret) + PyErr_Print(); + + Py_DECREF(py_data); + Py_DECREF(args); + pyg_gil_state_release(state); +} +static PyObject * +_wrap_gst_pad_set_blocked_async (PyGObject *self, PyObject *args) + PyObject *callback, *cbargs = NULL, *data; + PyObject *pblocked, *pret; + gboolean blocked; + gboolean ret; + gint len; + len = PyTuple_Size(args); + if (len < 2) { + PyErr_SetString(PyExc_TypeError, "Requires at least 2 arg"); + return NULL; + pblocked = PySequence_GetItem(args, 0); + blocked = PyBool_Check(pblocked) ? TRUE : FALSE; + callback = PySequence_GetItem(args, 1); + if (!PyCallable_Check(callback)) { + PyErr_SetString(PyExc_TypeError, "callback is not callable"); + cbargs = PySequence_GetSlice(args, 2, len); + if (cbargs == NULL) + data = Py_BuildValue("(ON)", callback, cbargs); + if (data == NULL) + ret = gst_pad_set_blocked_async (GST_PAD (self->obj), blocked, + (GstPadBlockCallback) pad_block_callback_marshal, data); + if (ret) + pret = Py_True; + pret = Py_False; + Py_INCREF(pret); + return pret; +/* %% */ +/* override gst_pad_set_bufferalloc_function args */ +/* static GstFlowReturn */ +/* pad_set_bufferalloc_marshal (GstPad *pad, guint64 offset, guint size, */ +/* GstCaps *caps, GstBuffer **buf) */ +/* { */ +/* } */ +/* PyObject * */ +/* _wrap_gst_pad_set_bufferalloc_function (PyGObject *self, PyObject *args) */ |
From: <bi...@fr...> - 2005-07-18 17:13:45
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Mon Jul 18 2005 10:13:44 PDT Log message: * gst/gstpad.override: misc fixes for change in gst_pad_get_parent() * gst/gst-types.defs: * gst/gst.defs: Updating defs file even more :) Modified files: . : ChangeLog gst : gst-types.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.190&r2=1.191 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst-types.defs.diff?r1=1.20&r2=1.21 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.190 retrieving revision 1.191 diff -u -d -r1.190 -r1.191 --- ChangeLog 18 Jul 2005 17:13:04 -0000 1.190 +++ ChangeLog 18 Jul 2005 17:13:31 -0000 1.191 @@ -2,6 +2,7 @@ * gst/gstpad.override: misc fixes for change in gst_pad_get_parent() + * gst/gst-types.defs: * gst/gst.defs: Updating defs file even more :) 2005-07-18 Edward Hervey <ed...@fl...> Index: gst-types.defs RCS file: /cvs/gstreamer/gst-python/gst/gst-types.defs,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- gst-types.defs 13 Jul 2005 16:29:06 -0000 1.20 +++ gst-types.defs 18 Jul 2005 17:13:32 -0000 1.21 @@ -100,20 +100,6 @@ (gtype-id "GST_TYPE_REGISTRY") ) -(define-object Scheduler - (in-module "Gst") - (parent "GstObject") - (c-name "GstScheduler") - (gtype-id "GST_TYPE_SCHEDULER") -) - -(define-object SchedulerFactory - (parent "GstPluginFeature") - (c-name "GstSchedulerFactory") - (gtype-id "GST_TYPE_SCHEDULER_FACTORY") (define-object SystemClock (in-module "Gst") (parent "GstClock") @@ -332,8 +318,6 @@ (c-name "GstElementFlags") (gtype-id "GST_TYPE_ELEMENT_FLAGS") (values - '("scheduler-private1" "GST_ELEMENT_SCHEDULER_PRIVATE1") - '("scheduler-private2" "GST_ELEMENT_SCHEDULER_PRIVATE2") '("locked-state" "GST_ELEMENT_LOCKED_STATE") '("is-sink" "GST_ELEMENT_IS_SINK") '("flag-last" "GST_ELEMENT_FLAG_LAST") @@ -351,7 +335,6 @@ '("state-change" "GST_CORE_ERROR_STATE_CHANGE") '("pad" "GST_CORE_ERROR_PAD") '("thread" "GST_CORE_ERROR_THREAD") - '("scheduler" "GST_CORE_ERROR_SCHEDULER") '("negotiation" "GST_CORE_ERROR_NEGOTIATION") '("event" "GST_CORE_ERROR_EVENT") '("seek" "GST_CORE_ERROR_SEEK") @@ -414,6 +397,7 @@ '("demux" "GST_STREAM_ERROR_DEMUX") '("mux" "GST_STREAM_ERROR_MUX") '("format" "GST_STREAM_ERROR_FORMAT") + '("stopped" "GST_STREAM_ERROR_STOPPED") '("num-errors" "GST_STREAM_ERROR_NUM_ERRORS") ) @@ -683,13 +667,13 @@ (c-name "GstFlowReturn") (gtype-id "GST_TYPE_FLOW_RETURN") - '("ok" "GST_FLOW_OK") '("resend" "GST_FLOW_RESEND") - '("error" "GST_FLOW_ERROR") + '("ok" "GST_FLOW_OK") '("not-linked" "GST_FLOW_NOT_LINKED") - '("not-negotiated" "GST_FLOW_NOT_NEGOTIATED") '("wrong-state" "GST_FLOW_WRONG_STATE") '("unexpected" "GST_FLOW_UNEXPECTED") + '("not-negotiated" "GST_FLOW_NOT_NEGOTIATED") + '("error" "GST_FLOW_ERROR") '("not-supported" "GST_FLOW_NOT_SUPPORTED") @@ -828,15 +812,6 @@ -(define-enum SchedulerFlags - (c-name "GstSchedulerFlags") - (gtype-id "GST_TYPE_SCHEDULER_FLAGS") - (values - '("t" "GST_SCHEDULER_FLAG_LAST") - ) (define-enum TagMergeMode (c-name "GstTagMergeMode") |
From: <bi...@fr...> - 2005-07-20 18:06:24
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Wed Jul 20 2005 11:06:22 PDT Log message: * gst/pygstvalue.c: FixedList -> Array * gst/gst.defs: Updating defs file. Modified files: . : ChangeLog gst : gst.defs pygstvalue.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.191&r2=1.192 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.35&r2=1.36 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/pygstvalue.c.diff?r1=1.2&r2=1.3 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.191 retrieving revision 1.192 diff -u -d -r1.191 -r1.192 --- ChangeLog 18 Jul 2005 17:13:31 -0000 1.191 +++ ChangeLog 20 Jul 2005 18:06:10 -0000 1.192 @@ -1,3 +1,10 @@ +2005-07-20 Edward Hervey <ed...@fl...> + + * gst/pygstvalue.c: + FixedList -> Array + * gst/gst.defs: + Updating defs file. 2005-07-18 Edward Hervey <ed...@fl...> * gst/gstpad.override: misc fixes for change in gst_pad_get_parent() Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- gst.defs 18 Jul 2005 17:12:31 -0000 1.35 +++ gst.defs 20 Jul 2005 18:06:10 -0000 1.36 @@ -962,7 +962,9 @@ (c-name "gst_element_seek") (return-type "gboolean") (parameters - '("GstSeekType" "seek_type") + '("GstSeekType" "seek_method") + '("GstFormat" "seek_format") + '("GstSeekType" "seek_flags") '("guint64" "offset") ) ) @@ -2433,10 +2435,11 @@ -(define-function message_new_application - (c-name "gst_message_new_application") +(define-function message_new_custom + (c-name "gst_message_new_custom") (return-type "GstMessage*") + '("GstMessageType" "type") '("GstObject*" "src") '("GstStructure*" "structure") @@ -6056,14 +6059,6 @@ -(define-function type_is_fixed - (c-name "gst_type_is_fixed") - (return-type "gboolean") - (parameters - '("GType" "type") - ) -) - (define-function value_is_fixed (c-name "gst_value_is_fixed") Index: pygstvalue.c RCS file: /cvs/gstreamer/gst-python/gst/pygstvalue.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pygstvalue.c 17 Jun 2005 10:59:47 -0000 1.2 +++ pygstvalue.c 20 Jul 2005 18:06:10 -0000 1.3 @@ -77,7 +77,7 @@ pygst_value_as_pyobject (gst_value_list_get_value (value, i), copy_boxed)); } - } else if (GST_VALUE_HOLDS_FIXED_LIST (value)) { + } else if (GST_VALUE_HOLDS_ARRAY (value)) { int i, len; len = gst_value_list_get_size (value); ret = PyTuple_New (len); @@ -134,7 +134,7 @@ } else if (PyTuple_Check (obj)) { PyErr_Clear (); - t = GST_TYPE_FIXED_LIST; + t = GST_TYPE_ARRAY; } else if (PyList_Check (obj)) { t = GST_TYPE_LIST; @@ -230,7 +230,7 @@ } else if (PyTuple_Check (obj)) { gint i, len; PyErr_Clear (); - VALUE_TYPE_CHECK (value, GST_TYPE_FIXED_LIST); + VALUE_TYPE_CHECK (value, GST_TYPE_ARRAY); len = PyTuple_Size (obj); for (i = 0; i < len; i++) { PyObject *o; |
From: <bi...@fr...> - 2005-07-21 11:21:04
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Jul 21 2005 04:14:58 PDT Log message: * gst/gst.defs: I'm bored with writing "Updating defs file", so I'll just write a poem by Charles Baudelaire, "L'invitation au voyage" : Mon enfant, ma soeur, Songe à la douceur D'aller là-bas vivre ensemble ! Aimer à loisir, Aimer et mourir Au pays qui te ressemble ! Les soleils mouillés De ces ciels brouillés Pour mon esprit ont les charmes Si mystérieux De tes traîtres yeux, Brillant à travers leurs larmes. The rest at the next defs update :) Modified files: . : ChangeLog gst : gst.defs Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.192&r2=1.193 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gst.defs.diff?r1=1.36&r2=1.37 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.192 retrieving revision 1.193 diff -u -d -r1.192 -r1.193 --- ChangeLog 20 Jul 2005 18:06:10 -0000 1.192 +++ ChangeLog 21 Jul 2005 11:14:45 -0000 1.193 @@ -1,3 +1,25 @@ +2005-07-21 Edward Hervey <ed...@fl...> + + * gst/gst.defs: + I'm bored with writing "Updating defs file", so I'll just write a poem + by Charles Baudelaire, "L'invitation au voyage" : + + Mon enfant, ma soeur, + Songe à la douceur + D'aller là-bas vivre ensemble ! + Aimer à loisir, + Aimer et mourir + Au pays qui te ressemble ! + Les soleils mouillés + De ces ciels brouillés + Pour mon esprit ont les charmes + Si mystérieux + De tes traîtres yeux, + Brillant à travers leurs larmes. + The rest at the next defs update :) 2005-07-20 Edward Hervey <ed...@fl...> * gst/pygstvalue.c: Index: gst.defs RCS file: /cvs/gstreamer/gst-python/gst/gst.defs,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- gst.defs 20 Jul 2005 18:06:10 -0000 1.36 +++ gst.defs 21 Jul 2005 11:14:46 -0000 1.37 @@ -2435,6 +2435,24 @@ ) ) +(define-function gst_message_new_segment_start + (c-name "gst_message_new_segment_start") + (return-type "GstMessage*") + (parameters + '("GstObject*" "src") + '("GstClockTime" "timestamp") + ) +) +(define-function gst_message_new_segment_done + (c-name "gst_message_new_segment_done") (define-function message_new_custom (c-name "gst_message_new_custom") (return-type "GstMessage*") @@ -2484,6 +2502,24 @@ +(define-method parse_segment_start + (of-object "GstMessage") + (c-name "gst_message_parse_segment_start") + (return-type "none") + '("GstClockTime*" "timestamp") +(define-method parse_segment_done + (c-name "gst_message_parse_segment_done") (define-method get_structure (of-object "GstMessage*") (c-name "gst_message_get_structure") |
From: <bi...@fr...> - 2005-07-21 12:03:58
|
CVS Root: /cvs/gstreamer Module: gst-python Changes by: bilboed Date: Thu Jul 21 2005 05:03:35 PDT Log message: * gst/gstmessage.override: wrapped gst_message_parse_segment_start() and gst_message_parse_segment_done() * gst/gst.defs: I'm bored with writing "Updating defs file", so I'll just write a poem by Charles Baudelaire, "L'invitation au voyage" : Mon enfant, ma soeur, Songe à la douceur D'aller là-bas vivre ensemble ! Aimer à loisir, Aimer et mourir Au pays qui te ressemble ! Les soleils mouillés De ces ciels brouillés Pour mon esprit ont les charmes Si mystérieux De tes traîtres yeux, Brillant à travers leurs larmes. The rest at the next defs update :) Modified files: . : ChangeLog gst : gstmessage.override Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/ChangeLog.diff?r1=1.193&r2=1.194 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-python/gst/gstmessage.override.diff?r1=1.3&r2=1.4 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-python/ChangeLog,v retrieving revision 1.193 retrieving revision 1.194 diff -u -d -r1.193 -r1.194 --- ChangeLog 21 Jul 2005 11:14:45 -0000 1.193 +++ ChangeLog 21 Jul 2005 12:03:23 -0000 1.194 @@ -1,5 +1,9 @@ 2005-07-21 Edward Hervey <ed...@fl...> + * gst/gstmessage.override: + wrapped gst_message_parse_segment_start() and + gst_message_parse_segment_done() + * gst/gst.defs: I'm bored with writing "Updating defs file", so I'll just write a poem by Charles Baudelaire, "L'invitation au voyage" : Index: gstmessage.override RCS file: /cvs/gstreamer/gst-python/gst/gstmessage.override,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gstmessage.override 12 Jul 2005 16:37:31 -0000 1.3 +++ gstmessage.override 21 Jul 2005 12:03:23 -0000 1.4 @@ -42,6 +42,44 @@ return ret; } %% +override gst_message_parse_segment_start noargs +static PyObject * +_wrap_gst_message_parse_segment_start (PyGstMiniObject *self) +{ + GstClockTime timestart; + PyObject *ret; + /* Should raise an exception if it's not a segment start message */ + if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_SEGMENT_START) { + PyErr_SetString(PyExc_TypeError, "Message is not a segment start message"); + return NULL; + } + gst_message_parse_segment_start (GST_MESSAGE(self->obj), ×tart); + /* Return this as a tuple */ + ret = PyLong_FromUnsignedLongLong(timestart); + return ret; +} +%% +override gst_message_parse_segment_done noargs +_wrap_gst_message_parse_segment_done (PyGstMiniObject *self) + if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_SEGMENT_DONE) { + PyErr_SetString(PyExc_TypeError, "Message is not a segment done message"); + gst_message_parse_segment_done (GST_MESSAGE(self->obj), ×tart); override gst_message_parse_error noargs static PyObject * _wrap_gst_message_parse_error (PyGstMiniObject *self) |