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