} else if (strcmp (tag, GST_ID3_DEMUX_TAG_ID3V2_FRAME) == 0) { const GValue *val; GstBuffer *frame_data; ID3v2::FrameFactory * framefactory; ID3v2::Frame * frame; const gchar *mime_type; GstStructure *s; val = gst_tag_list_get_value_index (list, tag, 0); frame_data = (GstBuffer *) gst_value_get_mini_object (val); s = gst_caps_get_structure (GST_BUFFER_CAPS (frame_data), 0); mime_type = gst_structure_get_name (s); GST_DEBUG("Setting binary blob of length %u and mime-type %s", GST_BUFFER_DATA (frame_data), mime_type); framefactory = ID3v2::FrameFactory::instance(); frame = framefactory->createFrame (ByteVector ((const char *) GST_BUFFER_DATA (frame_data), GST_BUFFER_SIZE (frame_data)), false); id3v2tag->addFrame (frame); } else { GST_WARNING ("Unsupported tag: %s", tag); }