gstreamer_core/gst/gsttaglist.h
branchRCL_3
changeset 30 7e817e7e631c
parent 29 567bb019e3e3
equal deleted inserted replaced
29:567bb019e3e3 30:7e817e7e631c
    21 
    21 
    22 
    22 
    23 #ifndef __GST_TAGLIST_H__
    23 #ifndef __GST_TAGLIST_H__
    24 #define __GST_TAGLIST_H__
    24 #define __GST_TAGLIST_H__
    25 
    25 
    26 #include <gst/gstbuffer.h>
       
    27 #include <gst/gststructure.h>
    26 #include <gst/gststructure.h>
    28 #include <gst/glib-compat.h>
    27 #include <gst/glib-compat.h>
    29 
    28 
    30 G_BEGIN_DECLS
    29 G_BEGIN_DECLS
    31 
    30 
    39  * @GST_TAG_MERGE_KEEP: keep existing tags
    38  * @GST_TAG_MERGE_KEEP: keep existing tags
    40  * @GST_TAG_MERGE_KEEP_ALL: keep all existing tags
    39  * @GST_TAG_MERGE_KEEP_ALL: keep all existing tags
    41  * @GST_TAG_MERGE_COUNT: the number of merge modes
    40  * @GST_TAG_MERGE_COUNT: the number of merge modes
    42  *
    41  *
    43  * The different tag merging modes are basically replace, overwrite and append,
    42  * The different tag merging modes are basically replace, overwrite and append,
    44  * but they can be seen from two directions. Given two taglists: (A) the tags
    43  * but they can be seen from two directions.
    45  * already in the element and (B) the ones that are supplied to the element (
    44  * Given two taglists: A - the one that are supplied to
    46  * e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
    45  * gst_tag_setter_merge_tags() or gst_tag_setter_add_tags() and B - the tags
    47  * %GST_EVENT_TAG), how are these tags merged?
    46  * already in the element, how are the tags merged? In the table below this is
    48  * In the table below this is shown for the cases that a tag exists in the list
    47  * shown for the cases that a tag exists in the list (A) or does not exists (!A)
    49  * (A) or does not exists (!A) and combinations thereof.
    48  * and combination thereof.
    50  *
    49  *
    51  * <table frame="all" colsep="1" rowsep="1">
    50  * <table frame="all" colsep="1" rowsep="1">
    52  *   <title>merge mode</title>
    51  *   <title>merge mode</title>
    53  *   <tgroup cols='5' align='left'>
    52  *   <tgroup cols='5' align='left'>
    54  *     <thead>
    53  *     <thead>
   244 GstTagList * gst_tag_list_new               (void);
   243 GstTagList * gst_tag_list_new               (void);
   245 #ifdef __SYMBIAN32__
   244 #ifdef __SYMBIAN32__
   246 IMPORT_C
   245 IMPORT_C
   247 #endif
   246 #endif
   248 
   247 
   249 GstTagList * gst_tag_list_new_full          (const gchar * tag, ...);
       
   250 #ifdef __SYMBIAN32__
       
   251 IMPORT_C
       
   252 #endif
       
   253 
       
   254 GstTagList * gst_tag_list_new_full_valist   (va_list var_args);
       
   255 #ifdef __SYMBIAN32__
       
   256 IMPORT_C
       
   257 #endif
       
   258 
       
   259 
       
   260 gboolean     gst_is_tag_list                (gconstpointer p);
   248 gboolean     gst_is_tag_list                (gconstpointer p);
   261 #ifdef __SYMBIAN32__
   249 #ifdef __SYMBIAN32__
   262 IMPORT_C
   250 IMPORT_C
   263 #endif
   251 #endif
   264 
   252 
   327                                              va_list            var_args);
   315                                              va_list            var_args);
   328 #ifdef __SYMBIAN32__
   316 #ifdef __SYMBIAN32__
   329 IMPORT_C
   317 IMPORT_C
   330 #endif
   318 #endif
   331 
   319 
   332 void         gst_tag_list_add_value         (GstTagList       * list,
       
   333                                              GstTagMergeMode    mode,
       
   334                                              const gchar      * tag,
       
   335                                              const GValue     * value);
       
   336 #ifdef __SYMBIAN32__
       
   337 IMPORT_C
       
   338 #endif
       
   339 
       
   340 void         gst_tag_list_remove_tag        (GstTagList       * list,
   320 void         gst_tag_list_remove_tag        (GstTagList       * list,
   341                                              const gchar      * tag);
   321                                              const gchar      * tag);
   342 #ifdef __SYMBIAN32__
   322 #ifdef __SYMBIAN32__
   343 IMPORT_C
   323 IMPORT_C
   344 #endif
   324 #endif
   572 
   552 
   573 gboolean     gst_tag_list_get_date_index    (const GstTagList * list,
   553 gboolean     gst_tag_list_get_date_index    (const GstTagList * list,
   574                                              const gchar      * tag,
   554                                              const gchar      * tag,
   575                                              guint              index,
   555                                              guint              index,
   576                                              GDate           ** value);
   556                                              GDate           ** value);
   577 #ifdef __SYMBIAN32__
       
   578 IMPORT_C
       
   579 #endif
       
   580 
       
   581 gboolean     gst_tag_list_get_buffer        (const GstTagList * list,
       
   582                                              const gchar      * tag,
       
   583                                              GstBuffer       ** value);
       
   584 #ifdef __SYMBIAN32__
       
   585 IMPORT_C
       
   586 #endif
       
   587 
       
   588 gboolean     gst_tag_list_get_buffer_index  (const GstTagList * list,
       
   589                                              const gchar      * tag,
       
   590                                              guint              index,
       
   591                                              GstBuffer       ** value);
       
   592 
   557 
   593 /* GStreamer core tags */
   558 /* GStreamer core tags */
   594 /**
   559 /**
   595  * GST_TAG_TITLE:
   560  * GST_TAG_TITLE:
   596  *
   561  *
   714  */
   679  */
   715 #define GST_TAG_ALBUM_VOLUME_COUNT    "album-disc-count"
   680 #define GST_TAG_ALBUM_VOLUME_COUNT    "album-disc-count"
   716 /**
   681 /**
   717  * GST_TAG_LOCATION:
   682  * GST_TAG_LOCATION:
   718  *
   683  *
   719  * Origin of media as a URI (location, where the original of the file or stream
   684  * original location of file as a URI (string)
   720  * is hosted) (string)
       
   721  */
   685  */
   722 #define GST_TAG_LOCATION               "location"
   686 #define GST_TAG_LOCATION               "location"
   723 /**
   687 /**
   724  * GST_TAG_HOMEPAGE:
       
   725  *
       
   726  * Homepage for this media (i.e. artist or movie homepage) (string)
       
   727  *
       
   728  * Since: 0.10.23
       
   729  */
       
   730 #define GST_TAG_HOMEPAGE               "homepage"
       
   731 /**
       
   732  * GST_TAG_DESCRIPTION:
   688  * GST_TAG_DESCRIPTION:
   733  *
   689  *
   734  * short text describing the content of the data (string)
   690  * short text describing the content of the data (string)
   735  */
   691  */
   736 #define GST_TAG_DESCRIPTION            "description"
   692 #define GST_TAG_DESCRIPTION            "description"
   815  *
   771  *
   816  * codec the audio data is stored in (string)
   772  * codec the audio data is stored in (string)
   817  */
   773  */
   818 #define GST_TAG_AUDIO_CODEC            "audio-codec"
   774 #define GST_TAG_AUDIO_CODEC            "audio-codec"
   819 /**
   775 /**
   820  * GST_TAG_SUBTITLE_CODEC:
       
   821  *
       
   822  * codec/format the subtitle data is stored in (string)
       
   823  *
       
   824  * Since: 0.10.23
       
   825  */
       
   826 #define GST_TAG_SUBTITLE_CODEC         "subtitle-codec"
       
   827 /**
       
   828  * GST_TAG_CONTAINER_FORMAT:
       
   829  *
       
   830  * container format the data is stored in (string)
       
   831  *
       
   832  * Since: 0.10.24
       
   833  */
       
   834 #define GST_TAG_CONTAINER_FORMAT       "container-format"
       
   835 /**
       
   836  * GST_TAG_BITRATE:
   776  * GST_TAG_BITRATE:
   837  *
   777  *
   838  * exact or average bitrate in bits/s (unsigned integer)
   778  * exact or average bitrate in bits/s (unsigned integer)
   839  */
   779  */
   840 #define GST_TAG_BITRATE                "bitrate"
   780 #define GST_TAG_BITRATE                "bitrate"
   907  */
   847  */
   908 #define GST_TAG_REFERENCE_LEVEL        "replaygain-reference-level"
   848 #define GST_TAG_REFERENCE_LEVEL        "replaygain-reference-level"
   909 /**
   849 /**
   910  * GST_TAG_LANGUAGE_CODE:
   850  * GST_TAG_LANGUAGE_CODE:
   911  *
   851  *
   912  * Language code (ISO-639-1) (string) of the content
   852  * Language code (ISO-639-1) (string)
   913  */
   853  */
   914 #define GST_TAG_LANGUAGE_CODE          "language-code"
   854 #define GST_TAG_LANGUAGE_CODE          "language-code"
   915 /**
   855 /**
   916  * GST_TAG_IMAGE:
   856  * GST_TAG_IMAGE:
   917  *
   857  *
   918  * image (buffer) (buffer caps should specify the content type and preferably
   858  * image (buffer) (buffer caps should specify the content type)
   919  * also set "image-type" field as #GstTagImageType)
       
   920  *
   859  *
   921  * Since: 0.10.6
   860  * Since: 0.10.6
   922  */
   861  */
   923 #define GST_TAG_IMAGE                  "image"
   862 #define GST_TAG_IMAGE                  "image"
   924 /**
   863 /**
   925  * GST_TAG_PREVIEW_IMAGE:
   864  * GST_TAG_PREVIEW_IMAGE:
   926  *
   865  *
   927  * image that is meant for preview purposes, e.g. small icon-sized version
   866  * image that is meant for preview purposes (buffer)
   928  * (buffer) (buffer caps should specify the content type)
   867  * (buffer caps should specify the content type)
   929  *
   868  *
   930  * Since: 0.10.7
   869  * Since: 0.10.7
   931  */
   870  */
   932 #define GST_TAG_PREVIEW_IMAGE          "preview-image"
   871 #define GST_TAG_PREVIEW_IMAGE          "preview-image"
   933 
       
   934 /**
       
   935  * GST_TAG_ATTACHMENT:
       
   936  *
       
   937  * generic file attachment (buffer) (buffer caps should specify the content
       
   938  * type and if possible set "filename" to the file name of the
       
   939  * attachment)
       
   940  *
       
   941  * Since: 0.10.21
       
   942  */
       
   943 #define GST_TAG_ATTACHMENT             "attachment"
       
   944 
       
   945 /**
   872 /**
   946  * GST_TAG_BEATS_PER_MINUTE:
   873  * GST_TAG_BEATS_PER_MINUTE:
   947  *
   874  *
   948  * number of beats per minute in audio (double)
   875  * number of beats per minute in audio (double)
   949  *
   876  *
   950  * Since: 0.10.12
   877  * Since: 0.10.12
   951  */
   878  */
   952 #define GST_TAG_BEATS_PER_MINUTE       "beats-per-minute"
   879 #define GST_TAG_BEATS_PER_MINUTE       "beats-per-minute"
   953 
   880 
   954 /**
       
   955  * GST_TAG_KEYWORDS:
       
   956  *
       
   957  * comma separated keywords describing the content (string).
       
   958  *
       
   959  * Since: 0.10.21
       
   960  */
       
   961 #define GST_TAG_KEYWORDS               "keywords"
       
   962 
       
   963 /**
       
   964  * GST_TAG_GEO_LOCATION_NAME:
       
   965  *
       
   966  * human readable descriptive location of where the media has been recorded or
       
   967  * produced. (string).
       
   968  *
       
   969  * Since: 0.10.21
       
   970  */
       
   971 #define GST_TAG_GEO_LOCATION_NAME               "geo-location-name"
       
   972 
       
   973 /**
       
   974  * GST_TAG_GEO_LOCATION_LATITUDE:
       
   975  *
       
   976  * geo latitude location of where the media has been recorded or produced in
       
   977  * degrees according to WGS84 (zero at the equator, negative values for southern
       
   978  * latitudes) (double).
       
   979  *
       
   980  * Since: 0.10.21
       
   981  */
       
   982 #define GST_TAG_GEO_LOCATION_LATITUDE               "geo-location-latitude"
       
   983 
       
   984 /**
       
   985  * GST_TAG_GEO_LOCATION_LONGITUDE:
       
   986  *
       
   987  * geo longitude location of where the media has been recorded or produced in
       
   988  * degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,
       
   989  * negative values for western longitudes). (double).
       
   990  *
       
   991  * Since: 0.10.21
       
   992  */
       
   993 #define GST_TAG_GEO_LOCATION_LONGITUDE               "geo-location-longitude"
       
   994 
       
   995 /**
       
   996  * GST_TAG_GEO_LOCATION_ELEVATION:
       
   997  *
       
   998  * geo elevation of where the media has been recorded or produced in meters
       
   999  * according to WGS84 (zero is average sea level) (double).
       
  1000  *
       
  1001  * Since: 0.10.21
       
  1002  */
       
  1003 #define GST_TAG_GEO_LOCATION_ELEVATION               "geo-location-elevation"
       
  1004 
       
  1005 G_END_DECLS
   881 G_END_DECLS
  1006 
   882 
  1007 #endif /* __GST_TAGLIST_H__ */
   883 #endif /* __GST_TAGLIST_H__ */