gst/: Use Py_BuildValue to construct tuples.

Original commit message from CVS:
reviewed by: Edward Hervey  <edward@fluendo.com>
* gst/gstelement.override:
* gst/gstevent.override:
* gst/gstmessage.override:
* gst/gstpad.override:
* gst/gstquery.override:
Use Py_BuildValue to construct tuples.
Use tuples for collection of different objects.
See http://www.python.org/doc/faq/general/#why-are-there-separate-tuple-and-list-data-types
* testsuite/test_event.py:
[message|query|event].parse_* now return tuples and not list.
Fixes #334548
This commit is contained in:
Edward Hervey 2006-07-03 09:01:18 +00:00
parent 1c5a18e82c
commit c52a37cd82
8 changed files with 85 additions and 163 deletions

View File

@ -1,3 +1,20 @@
2006-07-03 Johan Dahlin <jdahlin@async.com.br>
reviewed by: Edward Hervey <edward@fluendo.com>
* gst/gstelement.override:
* gst/gstevent.override:
* gst/gstmessage.override:
* gst/gstpad.override:
* gst/gstquery.override:
Use Py_BuildValue to construct tuples.
Use tuples for collection of different objects.
See http://www.python.org/doc/faq/general/#why-are-there-separate-tuple-and-list-data-types
* testsuite/test_event.py:
[message|query|event].parse_* now return tuples and not list.
Fixes #334548
2006-07-02 Edward Hervey <edward@fluendo.com> 2006-07-02 Edward Hervey <edward@fluendo.com>
Removal of all glib < 2.8 cruft since GStreamer core now requires Removal of all glib < 2.8 cruft since GStreamer core now requires

2
common

@ -1 +1 @@
Subproject commit 9eb7943282c38c815cfbac34cff4062a94e72e62 Subproject commit a98b370bd49bc3f3225bbd9013cda5a53789f53d

View File

@ -370,7 +370,6 @@ _wrap_gst_element_query_position (PyGObject *self, PyObject *args)
gint64 cur; gint64 cur;
gint format; gint format;
PyObject *pformat; PyObject *pformat;
PyObject *ret;
pformat = (PyObject*)PyTuple_GetItem(args, 0); pformat = (PyObject*)PyTuple_GetItem(args, 0);
if (pyg_enum_get_value (GST_TYPE_FORMAT, pformat, &format)) { if (pyg_enum_get_value (GST_TYPE_FORMAT, pformat, &format)) {
@ -384,11 +383,9 @@ _wrap_gst_element_query_position (PyGObject *self, PyObject *args)
return NULL; return NULL;
} }
ret = PyList_New(2); return Py_BuildValue("(OO)",
PyList_SetItem(ret, 0, PyLong_FromLongLong(cur)); PyLong_FromLongLong(cur),
PyList_SetItem(ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format )); pyg_enum_from_gtype(GST_TYPE_FORMAT, format));
return ret;
} }
%% %%
override gst_element_query_duration args override gst_element_query_duration args
@ -398,7 +395,6 @@ _wrap_gst_element_query_duration (PyGObject *self, PyObject *args)
gint64 cur; gint64 cur;
gint format; gint format;
PyObject *pformat; PyObject *pformat;
PyObject *ret;
pformat = (PyObject*)PyTuple_GetItem(args, 0); pformat = (PyObject*)PyTuple_GetItem(args, 0);
if (pyg_enum_get_value (GST_TYPE_FORMAT, pformat, &format)) { if (pyg_enum_get_value (GST_TYPE_FORMAT, pformat, &format)) {
@ -412,11 +408,8 @@ _wrap_gst_element_query_duration (PyGObject *self, PyObject *args)
return NULL; return NULL;
} }
ret = PyList_New(2); return Py_BuildValue("(OO)", PyLong_FromLongLong(cur),
PyList_SetItem(ret, 0, PyLong_FromLongLong(cur)); pyg_enum_from_gtype(GST_TYPE_FORMAT, format));
PyList_SetItem(ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format ));
return ret;
} }
%% %%
override gst_element_query_convert kwargs override gst_element_query_convert kwargs
@ -427,7 +420,6 @@ _wrap_gst_element_query_convert (PyGObject *self, PyObject *args, PyObject *kwar
PyObject *pfromformat, *pdestformat; PyObject *pfromformat, *pdestformat;
GstFormat srcformat, destformat; GstFormat srcformat, destformat;
gint64 fromval, dstval; gint64 fromval, dstval;
PyObject *ret;
/* Input : src_format, src_val, dst_format */ /* Input : src_format, src_val, dst_format */
/* Returns : dst_format, dst_val OR None */ /* Returns : dst_format, dst_val OR None */
@ -453,11 +445,9 @@ _wrap_gst_element_query_convert (PyGObject *self, PyObject *args, PyObject *kwar
return Py_None; return Py_None;
} }
ret = PyList_New(2); return Py_BuildValue("(OO)",
PyList_SetItem(ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, destformat)); pyg_enum_from_gtype(GST_TYPE_FORMAT, destformat),
PyList_SetItem(ret, 1, PyLong_FromLongLong(dstval)); PyLong_FromLongLong(dstval));
return ret;
} }
%% %%
override gst_element_get_query_types noargs override gst_element_get_query_types noargs

View File

@ -54,7 +54,6 @@ override gst_event_parse_new_segment noargs
static PyObject * static PyObject *
_wrap_gst_event_parse_new_segment (PyGstMiniObject *self) _wrap_gst_event_parse_new_segment (PyGstMiniObject *self)
{ {
PyObject *ret;
gboolean update; gboolean update;
gdouble rate; gdouble rate;
GstFormat format; GstFormat format;
@ -67,16 +66,11 @@ _wrap_gst_event_parse_new_segment (PyGstMiniObject *self)
gst_event_parse_new_segment (GST_EVENT(self->obj), &update, &rate, &format, gst_event_parse_new_segment (GST_EVENT(self->obj), &update, &rate, &format,
&start_value, &stop_value, &base); &start_value, &stop_value, &base);
ret = PyList_New (6);
PyList_SetItem (ret, 0, PyBool_FromLong(update));
PyList_SetItem (ret, 1, PyFloat_FromDouble(rate));
PyList_SetItem (ret, 2, pyg_enum_from_gtype (GST_TYPE_FORMAT, format));
PyList_SetItem (ret, 3, PyLong_FromUnsignedLongLong(start_value));
PyList_SetItem (ret, 4, PyLong_FromUnsignedLongLong(stop_value));
PyList_SetItem (ret, 5, PyLong_FromUnsignedLongLong(base));
return ret; return Py_BuildValue("(OfOKKK)",
PyBool_FromLong(update),
rate, pyg_enum_from_gtype (GST_TYPE_FORMAT, format),
start_value, stop_value, base);
} }
%% %%
override gst_event_parse_tag noargs override gst_event_parse_tag noargs
@ -102,7 +96,6 @@ override gst_event_parse_qos noargs
static PyObject * static PyObject *
_wrap_gst_event_parse_qos (PyGstMiniObject *self) _wrap_gst_event_parse_qos (PyGstMiniObject *self)
{ {
PyObject *ret;
gdouble proportion; gdouble proportion;
GstClockTimeDiff diff; GstClockTimeDiff diff;
GstClockTime timestamp; GstClockTime timestamp;
@ -115,19 +108,13 @@ _wrap_gst_event_parse_qos (PyGstMiniObject *self)
gst_event_parse_qos (GST_EVENT(self->obj), &proportion, gst_event_parse_qos (GST_EVENT(self->obj), &proportion,
&diff, &timestamp); &diff, &timestamp);
ret = PyList_New (3); return Py_BuildValue("(fLK)", proportion, diff, timestamp);
PyList_SetItem (ret, 0, PyFloat_FromDouble(proportion));
PyList_SetItem (ret, 1, PyLong_FromLongLong(diff));
PyList_SetItem (ret, 2, PyLong_FromUnsignedLongLong(timestamp));
return ret;
} }
%% %%
override gst_event_parse_seek noargs override gst_event_parse_seek noargs
static PyObject * static PyObject *
_wrap_gst_event_parse_seek (PyGstMiniObject *self) _wrap_gst_event_parse_seek (PyGstMiniObject *self)
{ {
PyObject *ret;
gdouble rate; gdouble rate;
GstFormat format; GstFormat format;
GstSeekFlags flags; GstSeekFlags flags;
@ -144,24 +131,20 @@ _wrap_gst_event_parse_seek (PyGstMiniObject *self)
gst_event_parse_seek (GST_EVENT(self->obj), &rate, &format, &flags, gst_event_parse_seek (GST_EVENT(self->obj), &rate, &format, &flags,
&cur_type, &cur, &stop_type, &stop); &cur_type, &cur, &stop_type, &stop);
ret = PyList_New (7); return Py_BuildValue("(fOOOKOK)",
PyList_SetItem (ret, 0, PyFloat_FromDouble(rate)); rate,
PyList_SetItem (ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); pyg_enum_from_gtype (GST_TYPE_FORMAT, format),
PyList_SetItem (ret, 2, pyg_flags_from_gtype (GST_TYPE_SEEK_FLAGS, flags)); pyg_flags_from_gtype (GST_TYPE_SEEK_FLAGS, flags),
PyList_SetItem (ret, 3, pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, cur_type)); pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, cur_type),
PyList_SetItem (ret, 4, PyLong_FromUnsignedLongLong (cur)); cur,
PyList_SetItem (ret, 5, pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, stop_type),
pyg_enum_from_gtype (GST_TYPE_SEEK_TYPE, stop_type)); stop);
PyList_SetItem (ret, 6, PyLong_FromUnsignedLongLong (stop));
return ret;
} }
%% %%
override gst_event_parse_buffer_size noargs override gst_event_parse_buffer_size noargs
static PyObject * static PyObject *
_wrap_gst_event_parse_buffer_size (PyGstMiniObject *self) _wrap_gst_event_parse_buffer_size (PyGstMiniObject *self)
{ {
PyObject *ret;
GstFormat format; GstFormat format;
gint64 minsize; gint64 minsize;
gint64 maxsize; gint64 maxsize;
@ -176,11 +159,8 @@ _wrap_gst_event_parse_buffer_size (PyGstMiniObject *self)
&format, &minsize, &format, &minsize,
&maxsize, &async); &maxsize, &async);
ret = PyList_New (4); return Py_BuildValue("(OLLO)",
PyList_SetItem (ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); pyg_enum_from_gtype(GST_TYPE_FORMAT, format),
PyList_SetItem (ret, 1, PyLong_FromLongLong (minsize)); minsize, maxsize,
PyList_SetItem (ret, 2, PyLong_FromLongLong (maxsize)); PyBool_FromLong(async));
PyList_SetItem (ret, 3, PyBool_FromLong (async));
return ret;
} }

View File

@ -56,7 +56,6 @@ _wrap_gst_message_parse_state_changed (PyGstMiniObject *self)
GstState old; GstState old;
GstState new; GstState new;
GstState pen; GstState pen;
PyObject *ret;
/* Should raise an exception if it's not a state-changed message */ /* Should raise an exception if it's not a state-changed message */
if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_STATE_CHANGED) { if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_STATE_CHANGED) {
@ -64,12 +63,11 @@ _wrap_gst_message_parse_state_changed (PyGstMiniObject *self)
return NULL; return NULL;
} }
gst_message_parse_state_changed (GST_MESSAGE(self->obj), &old, &new, &pen); gst_message_parse_state_changed (GST_MESSAGE(self->obj), &old, &new, &pen);
/* Return this as a tuple */
ret = PyList_New(3); return Py_BuildValue("(OOO)",
PyList_SET_ITEM(ret, 0, pyg_enum_from_gtype(GST_TYPE_STATE, old)); pyg_enum_from_gtype(GST_TYPE_STATE, old),
PyList_SET_ITEM(ret, 1, pyg_enum_from_gtype(GST_TYPE_STATE, new)); pyg_enum_from_gtype(GST_TYPE_STATE, new),
PyList_SET_ITEM(ret, 2, pyg_enum_from_gtype(GST_TYPE_STATE, pen)); pyg_enum_from_gtype(GST_TYPE_STATE, pen));
return ret;
} }
%% %%
override gst_message_parse_segment_start noargs override gst_message_parse_segment_start noargs
@ -78,7 +76,6 @@ _wrap_gst_message_parse_segment_start (PyGstMiniObject *self)
{ {
gint64 position; gint64 position;
GstFormat format; GstFormat format;
PyObject *ret;
/* Should raise an exception if it's not a segment start message */ /* Should raise an exception if it's not a segment start message */
if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_SEGMENT_START) { if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_SEGMENT_START) {
@ -87,12 +84,9 @@ _wrap_gst_message_parse_segment_start (PyGstMiniObject *self)
} }
gst_message_parse_segment_start (GST_MESSAGE(self->obj), &format, &position); gst_message_parse_segment_start (GST_MESSAGE(self->obj), &format, &position);
/* Return this as a tuple */ return Py_BuildValue("(OL)",
ret = PyList_New(2); pyg_enum_from_gtype(GST_TYPE_FORMAT, format),
PyList_SET_ITEM(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, format)); PyLong_FromLongLong(position));
PyList_SET_ITEM(ret, 1, PyLong_FromLongLong(position));
return ret;
} }
%% %%
@ -102,7 +96,6 @@ _wrap_gst_message_parse_segment_done (PyGstMiniObject *self)
{ {
gint64 position; gint64 position;
GstFormat format; GstFormat format;
PyObject *ret;
/* Should raise an exception if it's not a segment done message */ /* Should raise an exception if it's not a segment done message */
if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_SEGMENT_DONE) { if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_SEGMENT_DONE) {
@ -111,12 +104,9 @@ _wrap_gst_message_parse_segment_done (PyGstMiniObject *self)
} }
gst_message_parse_segment_done (GST_MESSAGE(self->obj), &format, &position); gst_message_parse_segment_done (GST_MESSAGE(self->obj), &format, &position);
/* Return this as a tuple */ return Py_BuildValue("(OL)",
ret = PyList_New(2); pyg_enum_from_gtype(GST_TYPE_FORMAT, format),
PyList_SET_ITEM(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, format)); PyLong_FromLongLong(position));
PyList_SET_ITEM(ret, 1, PyLong_FromLongLong(position));
return ret;
} }
%% %%
@ -197,7 +187,6 @@ _wrap_gst_message_parse_clock_provide (PyGstMiniObject *self)
{ {
GstClock *clock; GstClock *clock;
gboolean ready; gboolean ready;
PyObject *ret;
if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_CLOCK_PROVIDE) { if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_CLOCK_PROVIDE) {
PyErr_SetString(PyExc_TypeError, "Message is not a 'clock provide' message"); PyErr_SetString(PyExc_TypeError, "Message is not a 'clock provide' message");
@ -206,11 +195,9 @@ _wrap_gst_message_parse_clock_provide (PyGstMiniObject *self)
gst_message_parse_clock_provide (GST_MESSAGE(self->obj), &clock, &ready); gst_message_parse_clock_provide (GST_MESSAGE(self->obj), &clock, &ready);
ret = PyList_New(2); return Py_BuildValue("(OO)",
PyList_SET_ITEM(ret, 0, pygobject_new(G_OBJECT (clock))); pygobject_new(G_OBJECT (clock)),
PyList_SET_ITEM(ret, 1, PyBool_FromLong(ready)); PyBool_FromLong(ready));
return ret;
} }
%% %%
override gst_message_parse_clock_lost noargs override gst_message_parse_clock_lost noargs
@ -251,7 +238,6 @@ _wrap_gst_message_parse_duration (PyGstMiniObject *self)
{ {
GstFormat format; GstFormat format;
gint64 duration; gint64 duration;
PyObject *ret;
if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_DURATION) { if (GST_MESSAGE(self->obj)->type != GST_MESSAGE_DURATION) {
PyErr_SetString(PyExc_TypeError, "Message is not a 'duration' message"); PyErr_SetString(PyExc_TypeError, "Message is not a 'duration' message");
@ -260,9 +246,7 @@ _wrap_gst_message_parse_duration (PyGstMiniObject *self)
gst_message_parse_duration (GST_MESSAGE(self->obj), &format, &duration); gst_message_parse_duration (GST_MESSAGE(self->obj), &format, &duration);
ret = PyList_New(2); return Py_BuildValue("(OL)",
PyList_SET_ITEM(ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); pyg_enum_from_gtype (GST_TYPE_FORMAT, format),
PyList_SET_ITEM(ret, 1, PyLong_FromLongLong(duration)); PyLong_FromLongLong(duration));
return ret;
} }

View File

@ -680,36 +680,8 @@ _wrap_gst_pad_query_position (PyGObject *self, PyObject *args)
} }
if ((gst_pad_query_position(GST_PAD (self->obj), (GstFormat*) &format, &cur))) { if ((gst_pad_query_position(GST_PAD (self->obj), (GstFormat*) &format, &cur))) {
ret = PyList_New(2); ret = Py_BuildValue("(LO)", cur,
PyList_SetItem(ret, 0, PyLong_FromLongLong(cur)); pyg_enum_from_gtype (GST_TYPE_FORMAT, format));
PyList_SetItem(ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format ));
} else {
Py_INCREF(Py_None);
ret = Py_None;
}
return ret;
}
%%
override gst_pad_query_duration args
static PyObject *
_wrap_gst_pad_query_duration (PyGObject *self, PyObject *args)
{
gint64 cur;
gint format;
PyObject *pformat;
PyObject *ret;
pformat = (PyObject*)PyTuple_GetItem(args, 0);
if (pyg_enum_get_value (GST_TYPE_FORMAT, pformat, &format)) {
PyErr_SetString(PyExc_TypeError, "argument should be a GstFormat");
return NULL;
}
if ((gst_pad_query_duration(GST_PAD (self->obj), (GstFormat*) &format, &cur))) {
ret = PyList_New(2);
PyList_SetItem(ret, 0, PyLong_FromLongLong(cur));
PyList_SetItem(ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format ));
} else { } else {
Py_INCREF(Py_None); Py_INCREF(Py_None);
ret = Py_None; ret = Py_None;
@ -726,7 +698,6 @@ _wrap_gst_pad_query_convert (PyGObject *self, PyObject *args, PyObject *kwargs)
PyObject *pfromformat, *pdestformat; PyObject *pfromformat, *pdestformat;
GstFormat srcformat, destformat; GstFormat srcformat, destformat;
gint64 fromval, dstval; gint64 fromval, dstval;
PyObject *ret;
/* Input : src_format, src_val, dst_format */ /* Input : src_format, src_val, dst_format */
/* Returns : dst_format, dst_val OR None */ /* Returns : dst_format, dst_val OR None */
@ -751,11 +722,9 @@ _wrap_gst_pad_query_convert (PyGObject *self, PyObject *args, PyObject *kwargs)
return Py_None; return Py_None;
} }
ret = PyList_New(2); return Py_BuildValue("(OL)",
PyList_SetItem(ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, destformat)); pyg_enum_from_gtype (GST_TYPE_FORMAT, destformat),
PyList_SetItem(ret, 1, PyLong_FromLongLong(dstval)); dstval);
return ret;
} }
%% %%
override gst_pad_alloc_buffer kwargs override gst_pad_alloc_buffer kwargs

View File

@ -29,7 +29,6 @@ _wrap_gst_query_parse_position (PyGstMiniObject *self)
{ {
GstFormat format; GstFormat format;
gint64 cur; gint64 cur;
PyObject *ret;
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_POSITION) { if (GST_QUERY_TYPE(self->obj) != GST_QUERY_POSITION) {
PyErr_SetString(PyExc_TypeError, "Query is not a 'Position' query"); PyErr_SetString(PyExc_TypeError, "Query is not a 'Position' query");
@ -38,11 +37,8 @@ _wrap_gst_query_parse_position (PyGstMiniObject *self)
gst_query_parse_position (GST_QUERY(self->obj), &format, &cur); gst_query_parse_position (GST_QUERY(self->obj), &format, &cur);
ret = PyList_New(2); return Py_BuildValue("(LO)", cur,
PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, format)); pyg_enum_from_gtype (GST_TYPE_FORMAT, format));
PyList_SetItem(ret, 1, PyLong_FromLongLong(cur));
return ret;
} }
%% %%
override gst_query_parse_duration noargs override gst_query_parse_duration noargs
@ -51,7 +47,6 @@ _wrap_gst_query_parse_duration (PyGstMiniObject *self)
{ {
GstFormat format; GstFormat format;
gint64 cur; gint64 cur;
PyObject *ret;
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_DURATION) { if (GST_QUERY_TYPE(self->obj) != GST_QUERY_DURATION) {
PyErr_SetString(PyExc_TypeError, "Query is not a 'Duration' query"); PyErr_SetString(PyExc_TypeError, "Query is not a 'Duration' query");
@ -60,11 +55,8 @@ _wrap_gst_query_parse_duration (PyGstMiniObject *self)
gst_query_parse_duration (GST_QUERY(self->obj), &format, &cur); gst_query_parse_duration (GST_QUERY(self->obj), &format, &cur);
ret = PyList_New(2); return Py_BuildValue("(LO)", cur,
PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, format)); pyg_enum_from_gtype (GST_TYPE_FORMAT, format));
PyList_SetItem(ret, 1, PyLong_FromLongLong(cur));
return ret;
} }
%% %%
override gst_query_parse_convert noargs override gst_query_parse_convert noargs
@ -73,7 +65,6 @@ _wrap_gst_query_parse_convert (PyGstMiniObject *self)
{ {
GstFormat srcformat, destformat; GstFormat srcformat, destformat;
gint64 srcvalue, destvalue; gint64 srcvalue, destvalue;
PyObject *ret;
if (GST_QUERY_TYPE(self->obj) != GST_QUERY_CONVERT) { if (GST_QUERY_TYPE(self->obj) != GST_QUERY_CONVERT) {
PyErr_SetString(PyExc_TypeError, "Query is not a 'Convert' query"); PyErr_SetString(PyExc_TypeError, "Query is not a 'Convert' query");
@ -84,20 +75,17 @@ _wrap_gst_query_parse_convert (PyGstMiniObject *self)
&srcformat, &srcvalue, &srcformat, &srcvalue,
&destformat, &destvalue); &destformat, &destvalue);
ret = PyList_New(4); return Py_BuildValue("(OLOL)",
PyList_SetItem(ret, 0, pyg_enum_from_gtype(GST_TYPE_FORMAT, srcformat)); pyg_enum_from_gtype(GST_TYPE_FORMAT, srcformat),
PyList_SetItem(ret, 1, PyLong_FromLongLong(srcvalue)); srcvalue,
PyList_SetItem(ret, 2, pyg_enum_from_gtype(GST_TYPE_FORMAT, destformat)); pyg_enum_from_gtype(GST_TYPE_FORMAT, destformat),
PyList_SetItem(ret, 3, PyLong_FromLongLong(destvalue)); destvalue);
return ret;
} }
%% %%
override gst_query_parse_segment noargs override gst_query_parse_segment noargs
static PyObject * static PyObject *
_wrap_gst_query_parse_segment (PyGstMiniObject *self) _wrap_gst_query_parse_segment (PyGstMiniObject *self)
{ {
PyObject *ret;
gdouble rate; gdouble rate;
GstFormat format; GstFormat format;
gint64 start_value; gint64 start_value;
@ -112,20 +100,16 @@ _wrap_gst_query_parse_segment (PyGstMiniObject *self)
&rate, &format, &rate, &format,
&start_value, &stop_value); &start_value, &stop_value);
ret = PyList_New(4); return Py_BuildValue("(fOLL)",
PyList_SetItem (ret, 0, PyFloat_FromDouble(rate)); rate,
PyList_SetItem (ret, 1, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); pyg_enum_from_gtype (GST_TYPE_FORMAT, format),
PyList_SetItem (ret, 2, PyLong_FromUnsignedLongLong(start_value)); start_value, stop_value);
PyList_SetItem (ret, 3, PyLong_FromUnsignedLongLong(stop_value));
return ret;
} }
%% %%
override gst_query_parse_seeking noargs override gst_query_parse_seeking noargs
static PyObject * static PyObject *
_wrap_gst_query_parse_seeking (PyGstMiniObject *self) _wrap_gst_query_parse_seeking (PyGstMiniObject *self)
{ {
PyObject *ret;
GstFormat format; GstFormat format;
gboolean seekable; gboolean seekable;
gint64 segment_start, segment_end; gint64 segment_start, segment_end;
@ -139,13 +123,11 @@ _wrap_gst_query_parse_seeking (PyGstMiniObject *self)
&format, &seekable, &format, &seekable,
&segment_start, &segment_end); &segment_start, &segment_end);
ret = PyList_New(4); return Py_BuildValue("(OLKK)",
PyList_SetItem (ret, 0, pyg_enum_from_gtype (GST_TYPE_FORMAT, format)); pyg_enum_from_gtype (GST_TYPE_FORMAT, format),
PyList_SetItem (ret, 1, PyBool_FromLong (seekable)); seekable,
PyList_SetItem (ret, 2, PyLong_FromLongLong(segment_start)); segment_start,
PyList_SetItem (ret, 3, PyLong_FromLongLong(segment_end)); segment_end);
return ret;
} }
%% %%
override gst_query_parse_formats_length noargs override gst_query_parse_formats_length noargs

View File

@ -61,8 +61,8 @@ class EventTest(TestCase):
self.sink.send_event(event) self.sink.send_event(event)
gst.debug('sent event') gst.debug('sent event')
self.assertEqual(event.parse_seek(), [1.0, gst.FORMAT_BYTES, gst.SEEK_FLAG_FLUSH, self.assertEqual(event.parse_seek(), (1.0, gst.FORMAT_BYTES, gst.SEEK_FLAG_FLUSH,
gst.SEEK_TYPE_SET, 0, gst.SEEK_TYPE_NONE, 0]) gst.SEEK_TYPE_SET, 0, gst.SEEK_TYPE_NONE, 0))
def testWrongEvent(self): def testWrongEvent(self):
buffer = gst.Buffer() buffer = gst.Buffer()