## gsttaglicenses

gsttaglicenses — utility functions for Creative Commons licenses

## Synopsis

    #include <gst/tag/tag.h>

    enum                GstTagLicenseFlags;
    GstTagLicenseFlags  gst_tag_get_license_flags           (const gchar *license_ref);
    const gchar *       gst_tag_get_license_nick            (const gchar *license_ref);
    const gchar *       gst_tag_get_license_title           (const gchar *license_ref);
    const gchar *       gst_tag_get_license_description     (const gchar *license_ref);
    const gchar *       gst_tag_get_license_jurisdiction    (const gchar *license_ref);
    const gchar *       gst_tag_get_license_version         (const gchar *license_ref);
    gchar **            gst_tag_get_licenses                (void);

## Description

Provides information about Creative Commons media licenses, which are often expressed in media files as a license URI in tags. Also useful for applications creating media files, in case the user wants to license the content under a Creative Commons license.

## Details

### enum GstTagLicenseFlags

    typedef enum {
      GST_TAG_LICENSE_PERMITS_REPRODUCTION             = (1 << 0),
      GST_TAG_LICENSE_PERMITS_DISTRIBUTION             = (1 << 1),
      GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS         = (1 << 2),
      GST_TAG_LICENSE_PERMITS_SHARING                  = (1 << 3),

      GST_TAG_LICENSE_REQUIRES_NOTICE                  = (1 << 8),
      GST_TAG_LICENSE_REQUIRES_ATTRIBUTION             = (1 << 9),
      GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE             = (1 << 10),
      GST_TAG_LICENSE_REQUIRES_SOURCE_CODE             = (1 << 11),
      GST_TAG_LICENSE_REQUIRES_COPYLEFT                = (1 << 12),
      GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT         = (1 << 13),

      GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE         = (1 << 16),
      GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE = (1 << 17),

      GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE         = (1 << 24),
      GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE = (1 << 25)
    } GstTagLicenseFlags;

See http://creativecommons.org/ns for more information.

`GST_TAG_LICENSE_PERMITS_REPRODUCTION` | making multiple copies is allowed
`GST_TAG_LICENSE_PERMITS_DISTRIBUTION` | distribution, public display and public performance are allowed
`GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS` | distribution of derivative works is allowed
`GST_TAG_LICENSE_PERMITS_SHARING` | commercial derivatives are allowed, but only non-commercial distribution is allowed
`GST_TAG_LICENSE_REQUIRES_NOTICE` | copyright and license notices must be kept intact
`GST_TAG_LICENSE_REQUIRES_ATTRIBUTION` | credit must be given to copyright holder and/or author
`GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE` | derivative works must be licensed under the same terms or compatible terms as the original work
`GST_TAG_LICENSE_REQUIRES_SOURCE_CODE` | source code (the preferred form for making modifications) must be provided when exercising some rights granted by the license
`GST_TAG_LICENSE_REQUIRES_COPYLEFT` | derivative and combined works must be licensed under specified terms, similar to those of the original work
`GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT` | derivative works must be licensed under specified terms, with at least the same conditions as the original work; combinations with the work may be licensed under different terms
`GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE` | exercising rights for commercial purposes is prohibited
`GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE` | use in a non-developing country is prohibited
`GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE` | this license was created by the Creative Commons project
`GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE` | this license was created by the Free Software Foundation (FSF)

Since 0.10.36

### gst_tag_get_license_flags ()

    GstTagLicenseFlags  gst_tag_get_license_flags           (const gchar *license_ref);

Get the flags of a license, which describe most of the features of a license in their most general form.

`license_ref` : | a license reference string in form of a URI, e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
Returns : | the flags of the license, or 0 if the license is unknown

Since 0.10.36

### gst_tag_get_license_nick ()

    const gchar *       gst_tag_get_license_nick            (const gchar *license_ref);

Get the nick name of a license, which is a short (untranslated) string such as e.g. "CC BY-NC-ND 2.0 UK".

`license_ref` : | a license reference string in form of a URI, e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
Returns : | the nick name of the license, or NULL if the license is unknown

Since 0.10.36

### gst_tag_get_license_title ()

    const gchar *       gst_tag_get_license_title           (const gchar *license_ref);

Get the title of a license, which is a short translated description of the license's features (generally not very pretty though).

`license_ref` : | a license reference string in form of a URI, e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
Returns : | the title of the license, or NULL if the license is unknown or no title is available.

Since 0.10.36

### gst_tag_get_license_description ()

    const gchar *       gst_tag_get_license_description     (const gchar *license_ref);

Get the description of a license, which is a translated description of the license's main features.

`license_ref` : | a license reference string in form of a URI, e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
Returns : | the description of the license, or NULL if the license is unknown or a description is not available.

Since 0.10.36

### gst_tag_get_license_jurisdiction ()

    const gchar *       gst_tag_get_license_jurisdiction    (const gchar *license_ref);

Get the jurisdiction code of a license. This is usually a two-letter ISO 3166-1 alpha-2 code, but there is also the special case of Scotland, for which no code exists and which is thus represented as "scotland".

Known jurisdictions: ar, at, au, be, bg, br, ca, ch, cl, cn, co, de, dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl, pt, scotland, se, si, tw, uk, us, za.

`license_ref` : | a license reference string in form of a URI, e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
Returns : | the jurisdiction code of the license, or NULL if the license is unknown or is not specific to a particular jurisdiction.

Since 0.10.36

### gst_tag_get_license_version ()

    const gchar *       gst_tag_get_license_version         (const gchar *license_ref);

Get the version of a license.

`license_ref` : | a license reference string in form of a URI, e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
Returns : | the version of the license, or NULL if the license is not known or has no version

Since 0.10.36

### gst_tag_get_licenses ()

    gchar **            gst_tag_get_licenses                (void);

Returns a list of known license references (in form of URIs). This is useful for UIs to build a list of available licenses for tagging purposes (e.g. to tag an audio track appropriately in a video or audio editor, or an image in a camera application).

Returns : | NULL-terminated array of license strings. Free with `g_strfreev()` when no longer needed.

Since 0.10.36

## See Also

GstTagList