mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
tags: make the tag functions return GstSample
gst_tag_image_data_to_image_buffer() -> gst_tag_image_data_to_image_sample() And make it return a GstSample. Store the image-type into the extra sample info. Remove a deprecated tag
This commit is contained in:
parent
59113af604
commit
3deaa582d9
4 changed files with 24 additions and 35 deletions
|
@ -334,7 +334,7 @@ gst_tag_id3_genre_get (const guint id)
|
|||
* the APIC frame (0 = unknown/other)
|
||||
*
|
||||
* 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
|
||||
* to the given tag list. Also see gst_tag_image_data_to_image_sample() for
|
||||
* more information on image tags in GStreamer.
|
||||
*
|
||||
* Returns: %TRUE if the image was processed, otherwise %FALSE
|
||||
|
@ -347,7 +347,7 @@ gst_tag_list_add_id3_image (GstTagList * tag_list, const guint8 * image_data,
|
|||
{
|
||||
GstTagImageType tag_image_type;
|
||||
const gchar *tag_name;
|
||||
GstBuffer *image;
|
||||
GstSample *image;
|
||||
|
||||
g_return_val_if_fail (GST_IS_TAG_LIST (tag_list), FALSE);
|
||||
g_return_val_if_fail (image_data != NULL, FALSE);
|
||||
|
@ -369,13 +369,13 @@ gst_tag_list_add_id3_image (GstTagList * tag_list, const guint8 * image_data,
|
|||
tag_image_type = GST_TAG_IMAGE_TYPE_UNDEFINED;
|
||||
}
|
||||
|
||||
image = gst_tag_image_data_to_image_buffer (image_data, image_data_len,
|
||||
image = gst_tag_image_data_to_image_sample (image_data, image_data_len,
|
||||
tag_image_type);
|
||||
|
||||
if (image == NULL)
|
||||
return FALSE;
|
||||
|
||||
gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, tag_name, image, NULL);
|
||||
gst_buffer_unref (image);
|
||||
gst_sample_unref (image);
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -318,7 +318,7 @@ static void
|
|||
gst_vorbis_tag_add_coverart (GstTagList * tags, gchar * img_data_base64,
|
||||
gint base64_len)
|
||||
{
|
||||
GstBuffer *img;
|
||||
GstSample *img;
|
||||
gsize img_len;
|
||||
|
||||
if (base64_len < 2)
|
||||
|
@ -332,7 +332,7 @@ gst_vorbis_tag_add_coverart (GstTagList * tags, gchar * img_data_base64,
|
|||
goto decode_failed;
|
||||
|
||||
img =
|
||||
gst_tag_image_data_to_image_buffer ((const guint8 *) img_data_base64,
|
||||
gst_tag_image_data_to_image_sample ((const guint8 *) img_data_base64,
|
||||
img_len, GST_TAG_IMAGE_TYPE_NONE);
|
||||
|
||||
if (img == NULL)
|
||||
|
@ -341,7 +341,7 @@ gst_vorbis_tag_add_coverart (GstTagList * tags, gchar * img_data_base64,
|
|||
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
|
||||
GST_TAG_PREVIEW_IMAGE, img, NULL);
|
||||
|
||||
gst_buffer_unref (img);
|
||||
gst_sample_unref (img);
|
||||
return;
|
||||
|
||||
/* ERRORS */
|
||||
|
|
|
@ -59,18 +59,6 @@ G_BEGIN_DECLS
|
|||
*/
|
||||
#define GST_TAG_MUSICBRAINZ_TRMID "musicbrainz-trmid"
|
||||
|
||||
/* FIXME 0.11: remove GST_TAG_MUSICBRAINZ_SORTNAME */
|
||||
#ifndef GST_DISABLE_DEPRECATED
|
||||
/**
|
||||
* GST_TAG_MUSICBRAINZ_SORTNAME
|
||||
*
|
||||
* MusicBrainz artist sort name
|
||||
*
|
||||
* Deprecated. Use GST_TAG_ARTIST_SORTNAME instead.
|
||||
*/
|
||||
#define GST_TAG_MUSICBRAINZ_SORTNAME GST_TAG_ARTIST_SORTNAME
|
||||
#endif
|
||||
|
||||
/**
|
||||
* GST_TAG_CMML_STREAM
|
||||
*
|
||||
|
@ -388,7 +376,7 @@ G_BEGIN_DECLS
|
|||
/**
|
||||
* GstTagImageType:
|
||||
* @GST_TAG_IMAGE_TYPE_NONE : No image type. Can be used to
|
||||
* tell functions such as gst_tag_image_data_to_image_buffer() that no
|
||||
* tell functions such as gst_tag_image_data_to_image_sample() that no
|
||||
* image type should be set. (Since: 0.10.20)
|
||||
* @GST_TAG_IMAGE_TYPE_UNDEFINED : Undefined/other image type
|
||||
* @GST_TAG_IMAGE_TYPE_FRONT_COVER : Cover (front)
|
||||
|
@ -536,7 +524,7 @@ gchar * gst_tag_freeform_string_to_utf8 (const gchar * data,
|
|||
gint size,
|
||||
const gchar ** env_vars);
|
||||
|
||||
GstBuffer * gst_tag_image_data_to_image_buffer (const guint8 * image_data,
|
||||
GstSample * gst_tag_image_data_to_image_sample (const guint8 * image_data,
|
||||
guint image_data_len,
|
||||
GstTagImageType image_type);
|
||||
|
||||
|
|
|
@ -527,14 +527,14 @@ beach:
|
|||
}
|
||||
|
||||
/**
|
||||
* gst_tag_image_data_to_image_buffer:
|
||||
* gst_tag_image_data_to_image_sample:
|
||||
* @image_data: the (encoded) image
|
||||
* @image_data_len: the length of the encoded image data at @image_data
|
||||
* @image_type: 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)
|
||||
*
|
||||
* Helper function for tag-reading plugins to create a #GstBuffer suitable to
|
||||
* Helper function for tag-reading plugins to create a #GstSample 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.
|
||||
|
@ -546,9 +546,9 @@ beach:
|
|||
* 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
|
||||
* In GStreamer, image tags are #GstSample<!-- -->s containing the raw image
|
||||
* data, with the sample caps describing the content type of the image
|
||||
* (e.g. image/jpeg, image/png, text/uri-list). The sample info 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
|
||||
|
@ -557,18 +557,20 @@ beach:
|
|||
* This function will do various checks and typefind the encoded image
|
||||
* data (we can't trust the declared mime type).
|
||||
*
|
||||
* Returns: a newly-allocated image buffer for use in tag lists, or NULL
|
||||
* Returns: a newly-allocated image sample for use in tag lists, or NULL
|
||||
*
|
||||
* Since: 0.10.20
|
||||
*/
|
||||
GstBuffer *
|
||||
gst_tag_image_data_to_image_buffer (const guint8 * image_data,
|
||||
GstSample *
|
||||
gst_tag_image_data_to_image_sample (const guint8 * image_data,
|
||||
guint image_data_len, GstTagImageType image_type)
|
||||
{
|
||||
const gchar *name;
|
||||
GstBuffer *image;
|
||||
GstSample *sample;
|
||||
GstCaps *caps;
|
||||
guint8 *data;
|
||||
GstStructure *info = NULL;
|
||||
|
||||
g_return_val_if_fail (image_data != NULL, NULL);
|
||||
g_return_val_if_fail (image_data_len > 0, NULL);
|
||||
|
@ -612,15 +614,14 @@ gst_tag_image_data_to_image_buffer (const guint8 * image_data,
|
|||
|
||||
if (image_type != GST_TAG_IMAGE_TYPE_NONE) {
|
||||
GST_LOG ("Setting image type: %d", image_type);
|
||||
caps = gst_caps_make_writable (caps);
|
||||
gst_caps_set_simple (caps, "image-type", GST_TYPE_TAG_IMAGE_TYPE,
|
||||
image_type, NULL);
|
||||
info = gst_structure_new ("GstTagImageInfo",
|
||||
"image-type", GST_TYPE_TAG_IMAGE_TYPE, image_type, NULL);
|
||||
}
|
||||
|
||||
g_warning ("extra image data can't be set");
|
||||
sample = gst_sample_new (image, caps, NULL, info);
|
||||
gst_buffer_unref (image);
|
||||
gst_caps_unref (caps);
|
||||
|
||||
return image;
|
||||
return sample;
|
||||
|
||||
/* ERRORS */
|
||||
no_type:
|
||||
|
|
Loading…
Reference in a new issue