Opaque #GstTagDemux structure. The #GstTagDemuxClass structure. See documentation at beginning of section for details about what subclasses need to override and do. Result values from the parse_tag virtual function. Type of image contained in an image tag (specified as field in the image buffer's caps structure) Convenience function to read a string with unknown character encoding. If the string is already in UTF-8 encoding, it will be returned right away. If not it tries to detect byte-order-mark for UTF-16/32 cases and use that. Otherwise, the environment will be searched for a number of environment variables (whose names are specified in the NULL-terminated string array are specified, the current locale will be tried. If that also doesn't work, WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed). a newly-allocated string in UTF-8 encoding, or NULL string data length of string data, or -1 if the string is NUL-terminated a NULL-terminated string array of environment variable names, or NULL Looks up the GStreamer tag for a ID3v2 tag. The corresponding GStreamer tag or NULL if none exists. ID3v2 tag to convert to GStreamer tag Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in TXXX frame or owner in UFID frame). The corresponding GStreamer tag or NULL if none exists. the type of ID3v2 user tag (e.g. "TXXX" or "UDIF") ID3v2 user tag to convert to GStreamer tag Looks up the GStreamer tag for a vorbiscomment tag. The corresponding GStreamer tag or NULL if none exists. vorbiscomment tag to convert to GStreamer tag Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2 language code or two-letter ISO-639-1 language code (both are accepted for convenience). Language codes are case-sensitive and expected to be lower case. or NULL if no mapping is known. The returned string must not be modified or freed. two-letter ISO-639-1 language code string that maps to @lang_code, ISO-639 language code (e.g. "deu" or "ger" or "de") Returns three-letter ISO-639-2 "bibliographic" language code given a two-letter ISO-639-1 language code or a three-letter ISO-639-2 language code (both are accepted for convenience). The "bibliographic" code is derived from the English name of the language (e.g. "ger" for German instead of "de" or "deu"). In most scenarios, the "terminological" codes are prefered. Language codes are case-sensitive and expected to be lower case. or NULL if no mapping is known. The returned string must not be modified or freed. three-letter ISO-639-2 language code string that maps to @lang_code, ISO-639 language code (e.g. "deu" or "ger" or "de") Returns three-letter ISO-639-2 "terminological" language code given a two-letter ISO-639-1 language code or a three-letter ISO-639-2 language code (both are accepted for convenience). The "terminological" code is derived from the local name of the language (e.g. "deu" for German instead of "ger"). In most scenarios, the "terminological" codes are prefered over the "bibliographic" ones. Language codes are case-sensitive and expected to be lower case. or NULL if no mapping is known. The returned string must not be modified or freed. three-letter ISO-639-2 language code string that maps to @lang_code, ISO-639 language code (e.g. "deu" or "ger" or "de") Returns a list of known language codes (in form of two-letter ISO-639-1 codes). This is useful for UIs to build a list of available languages for tagging purposes (e.g. to tag an audio track appropriately in a video or audio editor). with g_strfreev() when no longer needed. NULL-terminated string array with two-letter language codes. Free Returns the name of the language given an ISO-639 language code, such as often found in a GST_TAG_LANGUAGE tag. The name will be translated according to the current locale (if the library was built against the iso-codes package, otherwise the English name will be returned). Language codes are case-sensitive and expected to be lower case. not be mapped to a language name. The returned string must not be modified and does not need to freed; it will stay valid until the application is terminated. language name in UTF-8 format, or NULL if @language_code could two or three-letter ISO-639 language code Gets the number of ID3v1 genres that can be identified. Winamp genres are included. the number of ID3v1 genres that can be identified Gets the ID3v1 genre name for a given ID. the genre or NULL if no genre is associated with that ID. ID of genre to query Helper function for tag-reading plugins to create a #GstBuffer suitable to add to a #GstTagList as an image tag (such as #GST_TAG_IMAGE or #GST_TAG_PREVIEW_IMAGE) from the encoded image data and an (optional) image type. blob of binary image data, often accompanied by a MIME type or some other content type string (e.g. 'png', 'jpeg', 'jpg'). Sometimes there is also an 'image type' to indicate what kind of image this is (e.g. front cover, back cover, artist, etc.). The image data may also be an URI to the image rather than the image itself. In GStreamer, image tags are #GstBuffer<!-- -->s containing the raw image data, with the buffer caps describing the content type of the image (e.g. image/jpeg, image/png, text/uri-list). The buffer caps may contain an additional 'image-type' field of #GST_TYPE_TAG_IMAGE_TYPE to describe the type of image (front cover, back cover etc.). #GST_TAG_PREVIEW_IMAGE tags should not carry an image type, their type is already indicated via the special tag name. This function will do various checks and typefind the encoded image data (we can't trust the declared mime type). a newly-allocated image buffer for use in tag lists, or NULL the (encoded) image the length of the encoded image data at @image_data type of the image, or #GST_TAG_IMAGE_TYPE_UNDEFINED. Pass #GST_TAG_IMAGE_TYPE_NONE if no image type should be set at all (e.g. for preview images) Adds an image from an ID3 APIC frame (or similar, such as used in FLAC) to the given tag list. Also see gst_tag_image_data_to_image_buffer() for more information on image tags in GStreamer. %TRUE if the image was processed, otherwise %FALSE a tag list the (encoded) image the length of the encoded image data at @image_data picture type as per the ID3 (v2.4.0) specification for the APIC frame (0 = unknown/other) Parses the IFD and IFD tags data contained in the buffer and puts it on a taglist. The base_offset is used to subtract from the offset in the tag entries and be able to get the offset relative to the buffer start The parsed taglist The exif buffer byte order of the data Offset from the tiff header to this buffer Parses the exif tags starting with a tiff header structure. The taglist The exif buffer Creates a new tag list that contains the information parsed out of a vorbiscomment packet. given vorbiscomment buffer or NULL on error. A new #GstTagList with all tags that could be extracted from the buffer to convert identification data at start of stream length of identification data pointer to a string that should take the vendor string of this vorbis comment or NULL if you don't need it. Parse a xmp packet into a taglist. new taglist or %NULL, free the list when done buffer Parses the data containing an ID3v1 tag and returns a #GstTagList from the parsed data. A new tag list or NULL if the data was not an ID3v1 tag. 128 bytes of data containing the ID3v1 tag Formats the tags in taglist on exif format. The resulting buffer contains the tags IFD and is followed by the data pointed by the tag entries. A GstBuffer containing the tag entries followed by the tag data The taglist byte order used in writing (G_LITTLE_ENDIAN or G_BIG_ENDIAN) Offset from the tiff header first byte Formats the tags in taglist into exif structure, a tiff header is put in the beginning of the buffer. A GstBuffer containing the data The taglist Creates a new vorbiscomment buffer from a tag list. that could be converted from the given tag list. A new #GstBuffer containing a vorbiscomment buffer with all tags tag list to convert identification data at start of stream length of identification data, may be 0 if @id_data is NULL string that describes the vendor string or NULL Formats a taglist as a xmp packet. new buffer or %NULL, unref the buffer when done tags does the container forbid inplace editing Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and separate it into its components. If successful, @key, @lang and/or @value will be set to newly allocated strings that you need to free with g_free() when done. @key and @lang may also be set to NULL by this function if there is no key or no language code in the extended comment string. TRUE if the string could be parsed, otherwise FALSE an extended comment string, see #GST_TAG_EXTENDED_COMMENT return location for the comment description key, or NULL return location for the comment ISO-639 language code, or NULL return location for the actual comment string, or NULL whether to fail if strings are not in key=value form Looks up the ID3v2 tag for a GStreamer tag. The corresponding ID3v2 tag or NULL if none exists. GStreamer tag to convert to vorbiscomment tag Creates a new tag list that contains the information parsed out of a vorbiscomment packet. g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list) A #GList of newly-allowcated key=value strings. Free with a #GstTagList a GStreamer tag identifier, such as #GST_TAG_ARTIST Looks up the vorbiscomment tag for a GStreamer tag. The corresponding vorbiscomment tag or NULL if none exists. GStreamer tag to convert to vorbiscomment tag Convenience function using gst_tag_from_vorbis_tag(), parsing a vorbis comment string into the right type and adding it to the given taglist @list. Unknown vorbiscomment tags will be added to the tag list in form of a #GST_TAG_EXTENDED_COMMENT (since 0.10.10 at least). a #GstTagList a vorbiscomment tag string (key in key=value), must be valid UTF-8 a vorbiscomment value string (value in key=value), must be valid UTF-8