File: gstmodule.c
Function: init_gst
Error: ob_refcnt of new ref from (unknown) pygobject_init is 1 too high
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, &micro, &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