1 /* -*- Mode: C; c-basic-offset: 4 -*- */
4 #define NO_IMPORT_PYGOBJECT
18 /* Boonky define that allows for backwards compatibility with Python 2.4 */
19 #if PY_VERSION_HEX < 0x02050000
20 #define Py_ssize_t int
23 void pyges_register_classes(PyObject *d);
24 void pyges_add_constants(PyObject *module, const gchar *strip_prefix);
27 import gobject.GObject as PyGObject_Type
28 import gobject.MainContext as PyGMainContext_Type
29 import gobject.GObject as PyGInitiallyUnowned_Type
30 import gst.Bin as PyGstBin_Type
31 import gst.Pipeline as PyGstPipeline_Type
32 import gst.Element as PyGstElement_Type
33 import gst.Buffer as PyGstBuffer_Type
34 import gst.Pad as PyGstPad_Type
35 import gst.pbutils.EncodingProfile as PyGstEncodingProfile_Type
38 override ges_track_get_timeline kwargs
40 _wrap_ges_track_get_timeline(PyGObject *self)
42 const GESTimeline *ret;
44 pyg_begin_allow_threads;
45 ret = ges_track_get_timeline(GES_TRACK(self->obj));
46 pyg_end_allow_threads;
47 /* pygobject_new handles NULL checking */
48 return pygobject_new((GObject *)ret);
52 override ges_track_get_caps noargs
54 _wrap_ges_track_get_caps(PyGObject *self, void* closure)
58 ret = ges_track_get_caps(GES_TRACK(self->obj));
60 return pyg_boxed_new (GST_TYPE_CAPS, (GstCaps*) ret, TRUE, TRUE);
64 override ges_track_set_caps kwargs
66 _wrap_ges_track_set_caps(PyGObject *self, PyObject *args, PyObject *kwargs)
68 static char *kwlist[] = { "caps", NULL };
72 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GstBuffer.set_caps", kwlist, &py_caps))
75 caps = pyg_boxed_get (py_caps, GstCaps);
79 pyg_begin_allow_threads;
80 ges_track_set_caps (GES_TRACK(self->obj), caps);
81 pyg_end_allow_threads;
87 new-constructor GES_TYPE_TRACK
89 override ges_track_new kwargs
91 _wrap_ges_track_new(PyGObject *self, PyObject *args, PyObject *kwargs)
93 static char *kwlist[] = { "type", "caps", NULL };
94 PyObject *py_type = NULL;
99 if (!PyArg_ParseTupleAndKeywords(args, kwargs,"OO:GES.Track.__init__", kwlist, &py_type, &py_caps))
101 if (pyg_flags_get_value(GES_TYPE_TRACK_TYPE, py_type, (gpointer)&type))
103 caps = pyg_boxed_get (py_caps, GstCaps);
104 self->obj = (GObject *)ges_track_new(type, caps);
107 PyErr_SetString(PyExc_RuntimeError, "could not create GESTrack object");
110 pygobject_register_wrapper((PyObject *)self);
115 override ges_track_object_lookup_child kwargs
117 _wrap_ges_track_object_lookup_child(PyGObject *self, PyObject *args, PyObject *kwargs)
119 static char *kwlist[] = {"name", NULL};
125 if (!PyArg_ParseTupleAndKeywords(args, kwargs,
126 "z:GES.TrackObject.lookup_child", kwlist, &name))
129 pyg_begin_allow_threads;
130 ret = ges_track_object_lookup_child (GES_TRACK_OBJECT (self->obj), name, &element, &pspec);
131 pyg_end_allow_threads;
134 return PyBool_FromLong(ret);
135 return pygobject_new((GObject *)element);
139 override ges_timeline_parse_launch_effect_new kwargs
141 _wrap_ges_timeline_parse_launch_effect_new(PyGObject *self, PyObject *args, PyObject *kwargs)
143 static char *kwlist[] = { "video_bin_description", "audio_bin_description", NULL };
144 char *video_bin_description, *audio_bin_description = NULL;
146 if (!PyArg_ParseTupleAndKeywords(args, kwargs,"zz:GES.TimelineParseLaunchEffect.__init__", kwlist, &video_bin_description, &audio_bin_description))
148 self->obj = (GObject *)ges_timeline_parse_launch_effect_new(video_bin_description, audio_bin_description);
151 PyErr_SetString(PyExc_RuntimeError, "could not create GESTimelineParseLaunchEffect object");
154 pygobject_register_wrapper((PyObject *)self);
158 /* I did not override ges_formatter_get_data and set_data for these functions are deprecated */
161 override ges_timeline_object_get_top_effects noargs
163 _wrap_ges_timeline_object_get_top_effects(PyGObject *self)
165 const GList *l, *list;
168 g_return_val_if_fail (GES_IS_TIMELINE_OBJECT (self->obj),PyList_New(0));
170 pyg_begin_allow_threads;
171 list = ges_timeline_object_get_top_effects(GES_TIMELINE_OBJECT(self->obj));
172 pyg_end_allow_threads;
174 py_list = PyList_New(0);
175 for (l = list; l; l = l->next) {
176 GESTrackEffect *track_effect = (GESTrackEffect*)l->data;
177 PyObject *py_track_effect = pygobject_new(G_OBJECT(track_effect));
178 PyList_Append(py_list, py_track_effect);
179 Py_DECREF(py_track_effect);
186 override ges_timeline_get_tracks noargs
188 _wrap_ges_timeline_get_tracks(PyGObject *self)
190 const GList *l, *list;
193 g_return_val_if_fail (GES_IS_TIMELINE (self->obj),PyList_New(0));
195 pyg_begin_allow_threads;
196 list = ges_timeline_get_tracks(GES_TIMELINE(self->obj));
197 pyg_end_allow_threads;
199 py_list = PyList_New(0);
200 for (l = list; l; l = l->next) {
201 GESTrack *track = (GESTrack*)l->data;
202 PyObject *py_track = pygobject_new(G_OBJECT(track));
203 PyList_Append(py_list, py_track);
211 override ges_timeline_get_layers noargs
213 _wrap_ges_timeline_get_layers(PyGObject *self)
215 const GList *l, *list;
218 g_return_val_if_fail (GES_IS_TIMELINE (self->obj), PyList_New(0));
220 pyg_begin_allow_threads;
221 list = ges_timeline_get_layers(GES_TIMELINE(self->obj));
222 pyg_end_allow_threads;
224 py_list = PyList_New(0);
225 for (l = list; l; l = l->next) {
226 GESTimelineLayer *layer = (GESTimelineLayer*)l->data;
227 PyObject *py_layer = pygobject_new(G_OBJECT(layer));
228 PyList_Append(py_list, py_layer);
236 override ges_timeline_layer_get_objects noargs
238 _wrap_ges_timeline_layer_get_objects(PyGObject *self)
240 const GList *l, *list;
243 g_return_val_if_fail (GES_IS_TIMELINE_LAYER (self->obj), PyList_New(0));
245 pyg_begin_allow_threads;
246 list = ges_timeline_layer_get_objects(GES_TIMELINE_LAYER(self->obj));
247 pyg_end_allow_threads;
249 py_list = PyList_New(0);
250 for (l = list; l; l = l->next) {
251 GESTimelineObject *object = (GESTimelineObject*)l->data;
252 PyObject *py_object = pygobject_new(G_OBJECT(object));
253 PyList_Append(py_list, py_object);
254 Py_DECREF(py_object);
261 override ges_timeline_object_get_track_objects noargs
263 _wrap_ges_timeline_object_get_track_objects(PyGObject *self)
265 const GList *l, *list;
268 g_return_val_if_fail (GES_IS_TIMELINE_OBJECT (self->obj), PyList_New(0));
270 pyg_begin_allow_threads;
271 list = ges_timeline_object_get_track_objects(GES_TIMELINE_OBJECT(self->obj));
272 pyg_end_allow_threads;
274 py_list = PyList_New(0);
275 for (l = list; l; l = l->next) {
276 GESTrackObject *object = (GESTrackObject*)l->data;
277 PyObject *py_object = pygobject_new(G_OBJECT(object));
278 PyList_Append(py_list, py_object);
279 Py_DECREF(py_object);
286 override ges_track_object_get_child_property kwargs
288 _wrap_ges_track_object_get_child_property (PyGObject *self, PyObject *args, PyObject *kwargs)
290 gchar *property_name;
291 GESTrackObject *obj = GES_TRACK_OBJECT (self->obj);
293 GParamSpec *pspec = NULL;
294 GValue value = { 0, } ;
297 if (!PyArg_ParseTuple(args, "s:GESTrackObject.get_child_property",
302 ges_track_object_lookup_child(obj, property_name, NULL, &pspec);
305 g_snprintf(buf, sizeof(buf),
306 "container does not support property `%s'",
309 PyErr_SetString(PyExc_TypeError, buf);
313 g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
315 ges_track_object_get_child_property_by_pspec(obj,
319 ret = pyg_value_as_pyobject(&value, TRUE);
320 g_value_unset(&value);
326 override ges_track_object_set_child_property kwargs
328 _wrap_ges_track_object_set_child_property (PyGObject *self, PyObject *args, PyObject *kwargs)
330 gchar *property_name;
331 GESTrackObject *obj = GES_TRACK_OBJECT (self->obj);
333 GParamSpec *pspec = NULL;
335 GValue value = { 0, } ;
337 if (!PyArg_ParseTuple(args, "sO:GESTrackObject.set_child_property",
338 &property_name, &pyvalue)) {
342 ges_track_object_lookup_child(obj, property_name, NULL, &pspec);
345 g_snprintf(buf, sizeof(buf),
346 "container does not support property `%s'",
349 PyErr_SetString(PyExc_TypeError, buf);
353 g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
354 pyg_value_from_pyobject(&value, (PyObject*)pyvalue);
356 ges_track_object_set_child_property_by_pspec(obj,
360 g_value_unset(&value);
367 override ges_track_object_list_children_properties noargs
369 _wrap_ges_track_object_list_children_properties (PyGObject *self)
376 specs = ges_track_object_list_children_properties(GES_TRACK_OBJECT (self->obj), &nprops);
377 list = PyTuple_New(nprops);
383 for (i = 0; i < nprops; i++) {
384 PyTuple_SetItem(list, i, pyg_param_spec_new(specs[i]));
396 ges_formatter_set_data
397 ges_formatter_set_data