static PyObject * _wrap_gst_tag_to_vorbis_comments(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject *py_taglist; const GstTagList *taglist; const gchar *tag; const GList *list; const GList *l; PyObject *py_list; if (!PyArg_ParseTuple(args, "Os", &py_taglist, &tag)) return NULL; if (pyg_boxed_check(py_taglist, GST_TYPE_TAG_LIST)) taglist = pyg_boxed_get(py_taglist, GstTagList); else { PyErr_SetString(PyExc_TypeError, "list should be a GstTagList"); return NULL; } pyg_begin_allow_threads; list = gst_tag_to_vorbis_comments (taglist, tag); pyg_end_allow_threads; py_list = PyList_New(0); for (l = list; l; l = l->next) { gchar *pair = (gchar *)l->data; PyObject *py_pair = PyString_FromString(pair); PyList_Append(py_list, py_pair); Py_DECREF(py_pair); } return py_list; }
static void gst_vorbis_enc_metadata_set1 (const GstTagList * list, const gchar * tag, gpointer vorbisenc) { GstVorbisEnc *enc = GST_VORBISENC (vorbisenc); GList *vc_list, *l; vc_list = gst_tag_to_vorbis_comments (list, tag); for (l = vc_list; l != NULL; l = l->next) { const gchar *vc_string = (const gchar *) l->data; gchar *key = NULL, *val = NULL; GST_LOG_OBJECT (vorbisenc, "vorbis comment: %s", vc_string); if (gst_tag_parse_extended_comment (vc_string, &key, NULL, &val, TRUE)) { vorbis_comment_add_tag (&enc->vc, key, val); g_free (key); g_free (val); } } g_list_foreach (vc_list, (GFunc) g_free, NULL); g_list_free (vc_list); }
static void gst_kate_enc_metadata_set1 (const GstTagList * list, const gchar * tag, gpointer kateenc) { GstKateEnc *ke = GST_KATE_ENC (kateenc); GList *vc_list, *l; vc_list = gst_tag_to_vorbis_comments (list, tag); for (l = vc_list; l != NULL; l = l->next) { const gchar *vc_string = (const gchar *) l->data; gchar *key = NULL, *val = NULL; GST_LOG_OBJECT (ke, "Kate comment: %s", vc_string); if (gst_tag_parse_extended_comment (vc_string, &key, NULL, &val, TRUE)) { kate_comment_add_tag (&ke->kc, key, val); g_free (key); g_free (val); } } g_list_foreach (vc_list, (GFunc) g_free, NULL); g_list_free (vc_list); }