API: add GstTagImageType enum to describe images contained in image tags (#345641).
authorTim-Philipp Müller <tim@centricular.net>
Thu, 22 Jun 2006 10:55:05 +0000 (10:55 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Thu, 22 Jun 2006 10:55:05 +0000 (10:55 +0000)
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/tag/tag.h:
* gst-libs/gst/tag/tags.c: (register_tag_image_type_enum),
(gst_tag_image_type_get_type):
API: add GstTagImageType enum to describe images contained
in image tags (#345641).

ChangeLog
docs/libs/gst-plugins-base-libs-sections.txt
gst-libs/gst/tag/tag.h
gst-libs/gst/tag/tags.c

index 1a9031c..a0027f5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2006-06-22  Tim-Philipp Müller  <tim at centricular dot net>
 
+       * docs/libs/gst-plugins-base-libs-sections.txt:
+       * gst-libs/gst/tag/tag.h:
+       * gst-libs/gst/tag/tags.c: (register_tag_image_type_enum),
+       (gst_tag_image_type_get_type):
+         API: add GstTagImageType enum to describe images contained
+         in image tags (#345641).
+
+2006-06-22  Tim-Philipp Müller  <tim at centricular dot net>
+
        * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
          Fix warnings with gst-inspect: "buffers-min" property
          should be of G_TYPE_INT and not G_TYPE_INT64. Also fix
index 2cb476b..852aa9a 100644 (file)
@@ -853,6 +853,10 @@ GST_TAG_CMML_CLIP
 GST_TAG_CMML_HEAD
 GST_TAG_CMML_STREAM
 gst_tag_register_musicbrainz_tags
+GstTagImageType
+<SUBSECTION Standard>
+GST_TYPE_TAG_IMAGE_TYPE
+gst_tag_image_type_get_type
 <SUBSECTION Private>
 GstTagEntryMatch
 </SECTION>
index a0cb63e..98cb4c5 100644 (file)
@@ -84,6 +84,61 @@ G_BEGIN_DECLS
 #define GST_TAG_CMML_CLIP "cmml-clip"
 
 
+/* additional information for image tags */
+
+/**
+ * GstTagImageType:
+ * @GST_TAG_IMAGE_TYPE_UNDEFINED             : Undefined/other image type
+ * @GST_TAG_IMAGE_TYPE_FRONT_COVER           : Cover (front)
+ * @GST_TAG_IMAGE_TYPE_BACK_COVER            : Cover (back)
+ * @GST_TAG_IMAGE_TYPE_LEAFLET_PAGE          : Leaflet page
+ * @GST_TAG_IMAGE_TYPE_MEDIUM                : Medium (e.g. label side of CD)
+ * @GST_TAG_IMAGE_TYPE_LEAD_ARTIST           : Lead artist/lead performer/soloist
+ * @GST_TAG_IMAGE_TYPE_ARTIST                : Artist/performer
+ * @GST_TAG_IMAGE_TYPE_CONDUCTOR             : Conductor
+ * @GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA        : Band/orchestra
+ * @GST_TAG_IMAGE_TYPE_COMPOSER              : Composer
+ * @GST_TAG_IMAGE_TYPE_LYRICIST              : Lyricist/text writer
+ * @GST_TAG_IMAGE_TYPE_RECORDING_LOCATION    : Recording location
+ * @GST_TAG_IMAGE_TYPE_DURING_RECORDING      : During recording
+ * @GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE    : During performance
+ * @GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE         : Movie/video screen capture
+ * @GST_TAG_IMAGE_TYPE_FISH                  : A fish as funny as the ID3v2 spec
+ * @GST_TAG_IMAGE_TYPE_ILLUSTRATION          : Illustration
+ * @GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO      : Band/artist logotype
+ * @GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO : Publisher/studio logotype
+ *
+ * Type of image contained in an image tag (specified as field in
+ * the image buffer's caps structure)
+ *
+ * Since: 0.10.10
+ */
+typedef enum {
+  GST_TAG_IMAGE_TYPE_UNDEFINED,
+  GST_TAG_IMAGE_TYPE_FRONT_COVER,
+  GST_TAG_IMAGE_TYPE_BACK_COVER,
+  GST_TAG_IMAGE_TYPE_LEAFLET_PAGE,
+  GST_TAG_IMAGE_TYPE_MEDIUM,
+  GST_TAG_IMAGE_TYPE_LEAD_ARTIST,
+  GST_TAG_IMAGE_TYPE_ARTIST,
+  GST_TAG_IMAGE_TYPE_CONDUCTOR,
+  GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA,
+  GST_TAG_IMAGE_TYPE_COMPOSER,
+  GST_TAG_IMAGE_TYPE_LYRICIST,
+  GST_TAG_IMAGE_TYPE_RECORDING_LOCATION,
+  GST_TAG_IMAGE_TYPE_DURING_RECORDING,
+  GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE,
+  GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE,
+  GST_TAG_IMAGE_TYPE_FISH,
+  GST_TAG_IMAGE_TYPE_ILLUSTRATION,
+  GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO,
+  GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO
+} GstTagImageType;
+
+#define GST_TYPE_TAG_IMAGE_TYPE  (gst_tag_image_type_get_type ())
+GType   gst_tag_image_type_get_type (void);
+
+
 /* functions for vorbis comment manipulation */
 
 G_CONST_RETURN gchar *  gst_tag_from_vorbis_tag                 (const gchar *          vorbis_tag);
index c624764..9a7bcd9 100644 (file)
@@ -83,3 +83,49 @@ gst_tag_register_musicbrainz_tags (void)
 
   g_once (&mb_once, gst_tag_register_musicbrainz_tags_internal, NULL);
 }
+
+static void
+register_tag_image_type_enum (GType * id)
+{
+  static const GEnumValue image_types[] = {
+    {GST_TAG_IMAGE_TYPE_UNDEFINED, "Undefined/other image type", "undefined"},
+    {GST_TAG_IMAGE_TYPE_FRONT_COVER, "Cover (front)", "front-cover"},
+    {GST_TAG_IMAGE_TYPE_BACK_COVER, "Cover (back)", "back-cover"},
+    {GST_TAG_IMAGE_TYPE_LEAFLET_PAGE, "Leaflet page", "leaflet-page"},
+    {GST_TAG_IMAGE_TYPE_MEDIUM, "Medium (e.g. label side of CD)", "medium"},
+    {GST_TAG_IMAGE_TYPE_LEAD_ARTIST, "Lead artist/lead performer/soloist",
+        "lead-artist"},
+    {GST_TAG_IMAGE_TYPE_ARTIST, "Artist/performer", "artist"},
+    {GST_TAG_IMAGE_TYPE_CONDUCTOR, "Conductor", "conductor"},
+    {GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA, "Band/orchestra", "band-orchestra"},
+    {GST_TAG_IMAGE_TYPE_COMPOSER, "Composer", "composer"},
+    {GST_TAG_IMAGE_TYPE_LYRICIST, "Lyricist/text writer", "lyricist"},
+    {GST_TAG_IMAGE_TYPE_RECORDING_LOCATION, "Recording location",
+        "recording-location"},
+    {GST_TAG_IMAGE_TYPE_DURING_RECORDING, "During recording",
+        "during-recording"},
+    {GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE, "During performance",
+        "during-performance"},
+    {GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE, "Movie/video screen capture",
+        "video-capture"},
+    {GST_TAG_IMAGE_TYPE_FISH, "A fish as funny as the ID3v2 spec", "fish"},
+    {GST_TAG_IMAGE_TYPE_ILLUSTRATION, "Illustration", "illustration"},
+    {GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO, "Band/artist logotype",
+        "artist-logo"},
+    {GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO, "Publisher/studio logotype",
+        "publisher-studio-logo"},
+    {0, NULL, NULL}
+  };
+
+  *id = g_enum_register_static ("GstTagImageType", image_types);
+}
+
+GType
+gst_tag_image_type_get_type (void)
+{
+  static GType id;
+  static GOnce once = G_ONCE_INIT;
+
+  g_once (&once, (GThreadFunc) register_tag_image_type_enum, &id);
+  return id;
+}