91 DL_EXPORT (void)
92 init_gst (void)
93 {
94 PyObject *m, *d;
95 PyObject *av, *tuple;
96 int argc, i;
97 guint major, minor, micro, nano;
98 char **argv;
99 GError *error = NULL;
100
101 init_pygobject ();
when pygobject_init() succeeds
taking False path
new ref from (unknown) pygobject_init allocated at: init_pygobject ();
ob_refcnt is now refs: 1 + N where N >= 0
102
103 /* pull in arguments */
104 av = PySys_GetObject ("argv");
when PySys_GetObject() succeeds
105 if (av != NULL) {
taking True path
106 argc = PyList_Size (av);
when PyList_Size() returns ob_size
107 argv = g_new (char *, argc);
taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
taking False path
taking True path
108 for (i = 0; i < argc; i++)
when considering range: -0x80000000 <= value <= 0
taking False path
109 argv[i] = g_strdup (PyString_AsString (PyList_GetItem (av, i)));
110 } else {
111 /* gst_init_check does not like argc == 0 */
112 argc = 1;
113 argv = g_new (char *, argc);
114 argv[0] = g_strdup ("");
115 }
116 if (!gst_init_check (&argc, &argv, &error)) {
when considering range: -0x80000000 <= value <= -1
taking False path
117 gchar *errstr;
118
119 if (argv != NULL) {
120 for (i = 0; i < argc; i++)
121 g_free (argv[i]);
122 g_free (argv);
123 }
124 errstr = g_strdup_printf ("can't initialize module gst: %s",
125 error ? GST_STR_NULL (error->message) : "no error given");
126 PyErr_SetString (PyExc_RuntimeError, errstr);
127 g_free (errstr);
128 g_error_free (error);
129 setlocale (LC_NUMERIC, "C");
130 return;
131 }
132
133 setlocale (LC_NUMERIC, "C");
134 if (argv != NULL) {
when treating unknown char * * * from gstmodule.c:116 as non-NULL
taking True path
135 PySys_SetArgv (argc, argv);
136 for (i = 0; i < argc; i++)
when taking True path
when taking False path
137 g_free (argv[i]);
138 g_free (argv);
139 }
140
141 /* Initialize debugging category */
142 GST_DEBUG_CATEGORY_INIT (pygst_debug, "pygst", 0,
when treating unknown struct GstDebugCategory * from gstmodule.c:43 as non-NULL
taking False path
143 "GStreamer python bindings");
144 GST_DEBUG_CATEGORY_INIT (python_debug, "python", GST_DEBUG_FG_GREEN,
when treating unknown struct GstDebugCategory * from gstmodule.c:44 as non-NULL
taking False path
145 "python code using gst-python");
146
147 pygobject_register_sinkfunc (GST_TYPE_OBJECT, sink_gstobject);
when treating unknown struct _PyGObject_Functions * from /usr/include/pygtk-2.0/pygobject.h:209 as non-NULL
calling unknown void (*) (GType, void (*) (struct GObject *)) from gstmodule.c:147
148
149 m = Py_InitModule ("_gst", pygst_functions);
when Py_InitModule4_64() succeeds
150 d = PyModule_GetDict (m);
151
152 /* gst version */
153 gst_version (&major, &minor, µ, &nano);
154 tuple = Py_BuildValue ("(iii)", major, minor, micro);
when Py_BuildValue() succeeds
155 PyDict_SetItemString (d, "gst_version", tuple);
when PyDict_SetItemString() succeeds
156 Py_DECREF (tuple);
when taking True path
157
158 /* gst-python version */
159 tuple = Py_BuildValue ("(iii)", PYGST_MAJOR_VERSION, PYGST_MINOR_VERSION,
when Py_BuildValue() succeeds
160 PYGST_MICRO_VERSION);
161 PyDict_SetItemString (d, "pygst_version", tuple);
when PyDict_SetItemString() succeeds
162 Py_DECREF (tuple);
when taking True path
163
164 /* clock stuff */
165 PyModule_AddIntConstant (m, "SECOND", GST_SECOND);
when PyModule_AddIntConstant() succeeds
166 PyModule_AddIntConstant (m, "MSECOND", GST_MSECOND);
when PyModule_AddIntConstant() succeeds
167 PyModule_AddIntConstant (m, "NSECOND", GST_NSECOND);
when PyModule_AddIntConstant() succeeds
168
169 PyModule_AddObject (m, "CLOCK_TIME_NONE",
when PyLong_FromUnsignedLongLong() succeeds
when PyModule_AddObject() succeeds
170 PyLong_FromUnsignedLongLong (GST_CLOCK_TIME_NONE));
171 PyModule_AddObject (m, "BUFFER_OFFSET_NONE",
when PyLong_FromUnsignedLongLong() succeeds
when PyModule_AddObject() succeeds
172 PyLong_FromUnsignedLongLong (GST_BUFFER_OFFSET_NONE));
173
174 pygst_exceptions_register_classes (d);
175
176 REGISTER_TYPE (d, PyGstIterator_Type, "Iterator");
when PyType_Ready() succeeds
taking False path
when PyDict_SetItemString() succeeds
177
178
179 pygstminiobject_register_class (d, "GstMiniObject", GST_TYPE_MINI_OBJECT,
180 &PyGstMiniObject_Type, NULL);
181 pyg_register_boxed_custom (GST_TYPE_MINI_OBJECT,
calling unknown void (*) (GType, struct PyObject * (*) (const struct GValue *), int (*) (struct GValue *, struct PyObject *)) from gstmodule.c:181
182 pygstminiobject_from_gvalue, pygstminiobject_to_gvalue);
183
184 pygst_register_classes (d);
185 pygst_add_constants (m, "GST_");
186
187 /* make our types available */
188 PyModule_AddObject (m, "TYPE_ELEMENT_FACTORY",
when call succeeds
when PyModule_AddObject() succeeds
189 pyg_type_wrapper_new (GST_TYPE_ELEMENT_FACTORY));
190 PyModule_AddObject (m, "TYPE_INDEX_FACTORY",
when call succeeds
when PyModule_AddObject() succeeds
191 pyg_type_wrapper_new (GST_TYPE_INDEX_FACTORY));
192 PyModule_AddObject (m, "TYPE_TYPE_FIND_FACTORY",
when call succeeds
when PyModule_AddObject() succeeds
193 pyg_type_wrapper_new (GST_TYPE_TYPE_FIND_FACTORY));
194
195 /* GStreamer core tags */
196 PyModule_AddStringConstant (m, "TAG_TITLE", GST_TAG_TITLE);
when PyModule_AddStringConstant() succeeds
197 PyModule_AddStringConstant (m, "TAG_ARTIST", GST_TAG_ARTIST);
when PyModule_AddStringConstant() succeeds
198 PyModule_AddStringConstant (m, "TAG_ALBUM", GST_TAG_ALBUM);
when PyModule_AddStringConstant() succeeds
199 PyModule_AddStringConstant (m, "TAG_DATE", GST_TAG_DATE);
when PyModule_AddStringConstant() succeeds
200 PyModule_AddStringConstant (m, "TAG_GENRE", GST_TAG_GENRE);
when PyModule_AddStringConstant() succeeds
201 PyModule_AddStringConstant (m, "TAG_COMMENT", GST_TAG_COMMENT);
when PyModule_AddStringConstant() succeeds
202 PyModule_AddStringConstant (m, "TAG_TRACK_NUMBER", GST_TAG_TRACK_NUMBER);
when PyModule_AddStringConstant() succeeds
203 PyModule_AddStringConstant (m, "TAG_TRACK_COUNT", GST_TAG_TRACK_COUNT);
when PyModule_AddStringConstant() succeeds
204 PyModule_AddStringConstant (m, "TAG_ALBUM_VOLUME_NUMBER",
when PyModule_AddStringConstant() succeeds
205 GST_TAG_ALBUM_VOLUME_NUMBER);
206 PyModule_AddStringConstant (m, "TAG_ALBUM_VOLUME_COUNT",
when PyModule_AddStringConstant() succeeds
207 GST_TAG_ALBUM_VOLUME_COUNT);
208 PyModule_AddStringConstant (m, "TAG_LOCATION", GST_TAG_LOCATION);
when PyModule_AddStringConstant() succeeds
209 PyModule_AddStringConstant (m, "TAG_DESCRIPTION", GST_TAG_DESCRIPTION);
when PyModule_AddStringConstant() succeeds
210 PyModule_AddStringConstant (m, "TAG_VERSION", GST_TAG_VERSION);
when PyModule_AddStringConstant() succeeds
211 PyModule_AddStringConstant (m, "TAG_ISRC", GST_TAG_ISRC);
when PyModule_AddStringConstant() succeeds
212 PyModule_AddStringConstant (m, "TAG_ORGANIZATION", GST_TAG_ORGANIZATION);
when PyModule_AddStringConstant() succeeds
213 PyModule_AddStringConstant (m, "TAG_COPYRIGHT", GST_TAG_COPYRIGHT);
when PyModule_AddStringConstant() succeeds
214 PyModule_AddStringConstant (m, "TAG_CONTACT", GST_TAG_CONTACT);
when PyModule_AddStringConstant() succeeds
215 PyModule_AddStringConstant (m, "TAG_LICENSE", GST_TAG_LICENSE);
when PyModule_AddStringConstant() succeeds
216 PyModule_AddStringConstant (m, "TAG_PERFORMER", GST_TAG_PERFORMER);
when PyModule_AddStringConstant() succeeds
217 PyModule_AddStringConstant (m, "TAG_DURATION", GST_TAG_DURATION);
when PyModule_AddStringConstant() succeeds
218 PyModule_AddStringConstant (m, "TAG_CODEC", GST_TAG_CODEC);
when PyModule_AddStringConstant() succeeds
219 PyModule_AddStringConstant (m, "TAG_VIDEO_CODEC", GST_TAG_VIDEO_CODEC);
when PyModule_AddStringConstant() succeeds
220 PyModule_AddStringConstant (m, "TAG_AUDIO_CODEC", GST_TAG_AUDIO_CODEC);
when PyModule_AddStringConstant() succeeds
221 PyModule_AddStringConstant (m, "TAG_BITRATE", GST_TAG_BITRATE);
when PyModule_AddStringConstant() succeeds
222 PyModule_AddStringConstant (m, "TAG_NOMINAL_BITRATE",
when PyModule_AddStringConstant() succeeds
223 GST_TAG_NOMINAL_BITRATE);
224 PyModule_AddStringConstant (m, "TAG_MINIMUM_BITRATE",
when PyModule_AddStringConstant() succeeds
225 GST_TAG_MINIMUM_BITRATE);
226 PyModule_AddStringConstant (m, "TAG_MAXIMUM_BITRATE",
when PyModule_AddStringConstant() succeeds
227 GST_TAG_MAXIMUM_BITRATE);
228 PyModule_AddStringConstant (m, "TAG_SERIAL", GST_TAG_SERIAL);
when PyModule_AddStringConstant() succeeds
229 PyModule_AddStringConstant (m, "TAG_ENCODER", GST_TAG_ENCODER);
when PyModule_AddStringConstant() succeeds
230 PyModule_AddStringConstant (m, "TAG_ENCODER_VERSION",
when PyModule_AddStringConstant() succeeds
231 GST_TAG_ENCODER_VERSION);
232 PyModule_AddStringConstant (m, "TAG_TRACK_GAIN", GST_TAG_TRACK_GAIN);
when PyModule_AddStringConstant() succeeds
233 PyModule_AddStringConstant (m, "TAG_TRACK_PEAK", GST_TAG_TRACK_PEAK);
when PyModule_AddStringConstant() succeeds
234 PyModule_AddStringConstant (m, "TAG_ALBUM_GAIN", GST_TAG_ALBUM_GAIN);
when PyModule_AddStringConstant() succeeds
235 PyModule_AddStringConstant (m, "TAG_ALBUM_PEAK", GST_TAG_ALBUM_PEAK);
when PyModule_AddStringConstant() succeeds
236 PyModule_AddStringConstant (m, "TAG_LANGUAGE_CODE", GST_TAG_LANGUAGE_CODE);
when PyModule_AddStringConstant() succeeds
237 #if (GST_VERSION_MAJOR == 0 && GST_VERSION_MINOR == 10 && \
238 ((GST_VERSION_MICRO >= 6) || (GST_VERSION_MICRO == 5 && GST_VERSION_NANO > 0)))
239 PyModule_AddStringConstant (m, "TAG_IMAGE", GST_TAG_IMAGE);
when PyModule_AddStringConstant() succeeds
240 #if ((GST_VERSION_MICRO >= 7) || (GST_VERSION_MICRO == 6 && GST_VERSION_NANO > 0 ))
241 PyModule_AddStringConstant (m, "TAG_PREVIEW_IMAGE", GST_TAG_PREVIEW_IMAGE);
when PyModule_AddStringConstant() succeeds
242 #if ((GST_VERSION_MICRO >= 10) || (GST_VERSION_MICRO == 9 && GST_VERSION_NANO > 0 ))
243 PyModule_AddStringConstant (m, "TAG_EXTENDED_COMMENT",
when PyModule_AddStringConstant() succeeds
244 GST_TAG_EXTENDED_COMMENT);
245 #if ((GST_VERSION_MICRO >= 12) || (GST_VERSION_MICRO == 11 && GST_VERSION_NANO > 0))
246 PyModule_AddStringConstant (m, "TAG_REFERENCE_LEVEL",
when PyModule_AddStringConstant() succeeds
247 GST_TAG_REFERENCE_LEVEL);
248 PyModule_AddStringConstant (m, "TAG_BEATS_PER_MINUTE",
when PyModule_AddStringConstant() succeeds
249 GST_TAG_BEATS_PER_MINUTE);
250 #if ((GST_VERSION_MICRO >= 14) || (GST_VERSION_MICRO == 13 && GST_VERSION_NANO > 0))
251 PyModule_AddStringConstant (m, "TAG_LICENSE_URI", GST_TAG_LICENSE_URI);
when PyModule_AddStringConstant() succeeds
252 PyModule_AddStringConstant (m, "TAG_COPYRIGHT_URI", GST_TAG_COPYRIGHT_URI);
when PyModule_AddStringConstant() succeeds
253 #if ((GST_VERSION_MICRO >= 15) || (GST_VERSION_MICRO == 14 && GST_VERSION_NANO > 0))
254 PyModule_AddStringConstant (m, "TAG_COMPOSER", GST_TAG_COMPOSER);
when PyModule_AddStringConstant() succeeds
255 PyModule_AddStringConstant (m, "TAG_ARTIST_SORTNAME",
when PyModule_AddStringConstant() succeeds
256 GST_TAG_ARTIST_SORTNAME);
257 PyModule_AddStringConstant (m, "TAG_ALBUM_SORTNAME", GST_TAG_ALBUM_SORTNAME);
when PyModule_AddStringConstant() succeeds
258 PyModule_AddStringConstant (m, "TAG_TITLE_SORTNAME", GST_TAG_TITLE_SORTNAME);
when PyModule_AddStringConstant() succeeds
259 #if ((GST_VERSION_MICRO >= 21) || (GST_VERSION_MICRO == 20 && GST_VERSION_NANO > 0))
260 PyModule_AddStringConstant (m, "TAG_ATTACHMENT", GST_TAG_ATTACHMENT);
when PyModule_AddStringConstant() succeeds
261 PyModule_AddStringConstant (m, "TAG_KEYWORDS", GST_TAG_KEYWORDS);
when PyModule_AddStringConstant() succeeds
262 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_NAME",
when PyModule_AddStringConstant() succeeds
263 GST_TAG_GEO_LOCATION_NAME);
264 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_LATITUDE",
when PyModule_AddStringConstant() succeeds
265 GST_TAG_GEO_LOCATION_LATITUDE);
266 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_LONGITUDE",
when PyModule_AddStringConstant() succeeds
267 GST_TAG_GEO_LOCATION_LONGITUDE);
268 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_ELEVATION",
when PyModule_AddStringConstant() succeeds
269 GST_TAG_GEO_LOCATION_ELEVATION);
270 #if ((GST_VERSION_MICRO >= 23) || (GST_VERSION_MICRO == 22 && GST_VERSION_NANO > 0))
271 PyModule_AddStringConstant (m, "TAG_SUBTITLE_CODEC", GST_TAG_SUBTITLE_CODEC);
when PyModule_AddStringConstant() succeeds
272 PyModule_AddStringConstant (m, "TAG_HOMEPAGE", GST_TAG_HOMEPAGE);
when PyModule_AddStringConstant() succeeds
273 #if ((GST_VERSION_MICRO >= 24) || (GST_VERSION_MICRO == 23 && GST_VERSION_NANO > 0))
274 PyModule_AddStringConstant (m, "TAG_CONTAINER_FORMAT",
when PyModule_AddStringConstant() succeeds
275 GST_TAG_CONTAINER_FORMAT);
276 #if ((GST_VERSION_MICRO >= 25) || (GST_VERSION_MICRO == 24 && GST_VERSION_NANO > 0))
277 PyModule_AddStringConstant (m, "TAG_ALBUM_ARTIST", GST_TAG_ALBUM_ARTIST);
when PyModule_AddStringConstant() succeeds
278 PyModule_AddStringConstant (m, "TAG_ALBUM_ARTIST_SORTNAME",
when PyModule_AddStringConstant() succeeds
279 GST_TAG_ALBUM_ARTIST_SORTNAME);
280 #if ((GST_VERSION_MICRO >= 26) || (GST_VERSION_MICRO == 25 && GST_VERSION_NANO > 0))
281 PyModule_AddStringConstant (m, "TAG_SHOW_NAME", GST_TAG_SHOW_NAME);
when PyModule_AddStringConstant() succeeds
282 PyModule_AddStringConstant (m, "TAG_SHOW_SORTNAME", GST_TAG_SHOW_SORTNAME);
when PyModule_AddStringConstant() succeeds
283 PyModule_AddStringConstant (m, "TAG_SHOW_EPISODE_NUMBER",
when PyModule_AddStringConstant() succeeds
284 GST_TAG_SHOW_EPISODE_NUMBER);
285 PyModule_AddStringConstant (m, "TAG_SHOW_SEASON_NUMBER",
when PyModule_AddStringConstant() succeeds
286 GST_TAG_SHOW_SEASON_NUMBER);
287 PyModule_AddStringConstant (m, "TAG_LYRICS", GST_TAG_LYRICS);
when PyModule_AddStringConstant() succeeds
288 PyModule_AddStringConstant (m, "TAG_COMPOSER_SORTNAME",
when PyModule_AddStringConstant() succeeds
289 GST_TAG_COMPOSER_SORTNAME);
290 PyModule_AddStringConstant (m, "TAG_GROUPING", GST_TAG_GROUPING);
when PyModule_AddStringConstant() succeeds
291 #if ((GST_VERSION_MICRO >= 29) || (GST_VERSION_MICRO == 28 && GST_VERSION_NANO > 0))
292 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_COUNTRY",
when PyModule_AddStringConstant() succeeds
293 GST_TAG_GEO_LOCATION_COUNTRY);
294 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_CITY",
when PyModule_AddStringConstant() succeeds
295 GST_TAG_GEO_LOCATION_CITY);
296 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_SUBLOCATION",
when PyModule_AddStringConstant() succeeds
297 GST_TAG_GEO_LOCATION_SUBLOCATION);
298 PyModule_AddStringConstant (m, "TAG_USER_RATING",
when PyModule_AddStringConstant() succeeds
299 GST_TAG_GEO_LOCATION_SUBLOCATION);
300 #if ((GST_VERSION_MICRO >= 30) || (GST_VERSION_MICRO == 29 && GST_VERSION_NANO > 0))
301 PyModule_AddStringConstant (m, "TAG_DEVICE_MANUFACTURER",
when PyModule_AddStringConstant() succeeds
302 GST_TAG_DEVICE_MANUFACTURER);
303 PyModule_AddStringConstant (m, "TAG_IMAGE_ORIENTATION",
when PyModule_AddStringConstant() succeeds
304 GST_TAG_IMAGE_ORIENTATION);
305 PyModule_AddStringConstant (m, "TAG_DEVICE_MODEL", GST_TAG_DEVICE_MODEL);
when PyModule_AddStringConstant() succeeds
306 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_MOVEMENT_SPEED",
when PyModule_AddStringConstant() succeeds
307 GST_TAG_GEO_LOCATION_MOVEMENT_SPEED);
308 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_MOVEMENT_DIRECTION",
when PyModule_AddStringConstant() succeeds
309 GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION);
310 PyModule_AddStringConstant (m, "TAG_GEO_LOCATION_CAPTURE_DIRECTION",
when PyModule_AddStringConstant() succeeds
311 GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION);
312 #endif
313 #endif
314 #endif
315 #endif
316 #endif
317 #endif
318 #endif
319 #endif
320 #endif
321 #endif
322 #endif
323 #endif
324 #endif
325
326 PyModule_AddStringConstant (m, "LIBRARY_ERROR",
when PyModule_AddStringConstant() succeeds
327 (gchar *) g_quark_to_string (GST_LIBRARY_ERROR));
328 PyModule_AddStringConstant (m, "RESOURCE_ERROR",
when PyModule_AddStringConstant() succeeds
329 (gchar *) g_quark_to_string (GST_RESOURCE_ERROR));
330 PyModule_AddStringConstant (m, "CORE_ERROR",
when PyModule_AddStringConstant() fails
331 (gchar *) g_quark_to_string (GST_CORE_ERROR));
332 PyModule_AddStringConstant (m, "STREAM_ERROR",
when PyModule_AddStringConstant() succeeds
333 (gchar *) g_quark_to_string (GST_STREAM_ERROR));
334
335 if (PyErr_Occurred ()) {
PyErr_Occurred()
taking True path
336 Py_FatalError ("can't initialize module gst");
337 }
338 }
ob_refcnt of new ref from (unknown) pygobject_init is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1
found 2 similar trace(s) to this