{-# LANGUAGE PatternSynonyms, ScopedTypeVariables, ViewPatterns #-}


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.Gst.Constants
    (
    pattern VERSION_NANO                    ,
    pattern VERSION_MINOR                   ,
    pattern VERSION_MICRO                   ,
    pattern VERSION_MAJOR                   ,
    pattern VALUE_UNORDERED                 ,
    pattern VALUE_LESS_THAN                 ,
    pattern VALUE_GREATER_THAN              ,
    pattern VALUE_EQUAL                     ,
    pattern USECOND                         ,
    pattern URI_NO_PORT                     ,
    pattern TOC_REPEAT_COUNT_INFINITE       ,
    pattern TAG_VIDEO_CODEC                 ,
    pattern TAG_VERSION                     ,
    pattern TAG_USER_RATING                 ,
    pattern TAG_TRACK_PEAK                  ,
    pattern TAG_TRACK_NUMBER                ,
    pattern TAG_TRACK_GAIN                  ,
    pattern TAG_TRACK_COUNT                 ,
    pattern TAG_TITLE_SORTNAME              ,
    pattern TAG_TITLE                       ,
    pattern TAG_SUBTITLE_CODEC              ,
    pattern TAG_SHOW_SORTNAME               ,
    pattern TAG_SHOW_SEASON_NUMBER          ,
    pattern TAG_SHOW_NAME                   ,
    pattern TAG_SHOW_EPISODE_NUMBER         ,
    pattern TAG_SERIAL                      ,
    pattern TAG_REFERENCE_LEVEL             ,
    pattern TAG_PUBLISHER                   ,
    pattern TAG_PRIVATE_DATA                ,
    pattern TAG_PREVIEW_IMAGE               ,
    pattern TAG_PERFORMER                   ,
    pattern TAG_ORGANIZATION                ,
    pattern TAG_NOMINAL_BITRATE             ,
    pattern TAG_MINIMUM_BITRATE             ,
    pattern TAG_MIDI_BASE_NOTE              ,
    pattern TAG_MAXIMUM_BITRATE             ,
    pattern TAG_LYRICS                      ,
    pattern TAG_LOCATION                    ,
    pattern TAG_LICENSE_URI                 ,
    pattern TAG_LICENSE                     ,
    pattern TAG_LANGUAGE_NAME               ,
    pattern TAG_LANGUAGE_CODE               ,
    pattern TAG_KEYWORDS                    ,
    pattern TAG_ISRC                        ,
    pattern TAG_INTERPRETED_BY              ,
    pattern TAG_IMAGE_ORIENTATION           ,
    pattern TAG_IMAGE                       ,
    pattern TAG_HOMEPAGE                    ,
    pattern TAG_GROUPING                    ,
    pattern TAG_GEO_LOCATION_SUBLOCATION    ,
    pattern TAG_GEO_LOCATION_NAME           ,
    pattern TAG_GEO_LOCATION_MOVEMENT_SPEED ,
    pattern TAG_GEO_LOCATION_MOVEMENT_DIRECTION,
    pattern TAG_GEO_LOCATION_LONGITUDE      ,
    pattern TAG_GEO_LOCATION_LATITUDE       ,
    pattern TAG_GEO_LOCATION_HORIZONTAL_ERROR,
    pattern TAG_GEO_LOCATION_ELEVATION      ,
    pattern TAG_GEO_LOCATION_COUNTRY        ,
    pattern TAG_GEO_LOCATION_CITY           ,
    pattern TAG_GEO_LOCATION_CAPTURE_DIRECTION,
    pattern TAG_GENRE                       ,
    pattern TAG_EXTENDED_COMMENT            ,
    pattern TAG_ENCODER_VERSION             ,
    pattern TAG_ENCODER                     ,
    pattern TAG_ENCODED_BY                  ,
    pattern TAG_DURATION                    ,
    pattern TAG_DEVICE_MODEL                ,
    pattern TAG_DEVICE_MANUFACTURER         ,
    pattern TAG_DESCRIPTION                 ,
    pattern TAG_DATE_TIME                   ,
    pattern TAG_DATE                        ,
    pattern TAG_COPYRIGHT_URI               ,
    pattern TAG_COPYRIGHT                   ,
    pattern TAG_CONTAINER_FORMAT            ,
    pattern TAG_CONTACT                     ,
    pattern TAG_CONDUCTOR                   ,
    pattern TAG_COMPOSER_SORTNAME           ,
    pattern TAG_COMPOSER                    ,
    pattern TAG_COMMENT                     ,
    pattern TAG_CODEC                       ,
    pattern TAG_BITRATE                     ,
    pattern TAG_BEATS_PER_MINUTE            ,
    pattern TAG_AUDIO_CODEC                 ,
    pattern TAG_ATTACHMENT                  ,
    pattern TAG_ARTIST_SORTNAME             ,
    pattern TAG_ARTIST                      ,
    pattern TAG_APPLICATION_NAME            ,
    pattern TAG_APPLICATION_DATA            ,
    pattern TAG_ALBUM_VOLUME_NUMBER         ,
    pattern TAG_ALBUM_VOLUME_COUNT          ,
    pattern TAG_ALBUM_SORTNAME              ,
    pattern TAG_ALBUM_PEAK                  ,
    pattern TAG_ALBUM_GAIN                  ,
    pattern TAG_ALBUM_ARTIST_SORTNAME       ,
    pattern TAG_ALBUM_ARTIST                ,
    pattern TAG_ALBUM                       ,
    pattern SEQNUM_INVALID                  ,
    pattern SECOND                          ,
    pattern QUERY_TYPE_BOTH                 ,
    pattern QUERY_NUM_SHIFT                 ,
    pattern PROTECTION_UNSPECIFIED_SYSTEM_ID,
    pattern PROTECTION_SYSTEM_ID_CAPS_FIELD ,
    pattern PARAM_USER_SHIFT                ,
    pattern PARAM_MUTABLE_READY             ,
    pattern PARAM_MUTABLE_PLAYING           ,
    pattern PARAM_MUTABLE_PAUSED            ,
    pattern PARAM_CONTROLLABLE              ,
    pattern NSECOND                         ,
    pattern MSECOND                         ,
    pattern META_TAG_MEMORY_STR             ,
    pattern MAP_READWRITE                   ,
    pattern LOCK_FLAG_READWRITE             ,
    pattern LICENSE_UNKNOWN                 ,
    pattern GROUP_ID_INVALID                ,
    pattern FORMAT_PERCENT_SCALE            ,
    pattern FORMAT_PERCENT_MAX              ,
    pattern FLAG_SET_MASK_EXACT             ,
    pattern EVENT_TYPE_BOTH                 ,
    pattern EVENT_NUM_SHIFT                 ,
    pattern ELEMENT_METADATA_LONGNAME       ,
    pattern ELEMENT_METADATA_KLASS          ,
    pattern ELEMENT_METADATA_ICON_NAME      ,
    pattern ELEMENT_METADATA_DOC_URI        ,
    pattern ELEMENT_METADATA_DESCRIPTION    ,
    pattern ELEMENT_METADATA_AUTHOR         ,
    pattern ELEMENT_FACTORY_TYPE_VIDEO_ENCODER,
    pattern ELEMENT_FACTORY_TYPE_SRC        ,
    pattern ELEMENT_FACTORY_TYPE_SINK       ,
    pattern ELEMENT_FACTORY_TYPE_PAYLOADER  ,
    pattern ELEMENT_FACTORY_TYPE_PARSER     ,
    pattern ELEMENT_FACTORY_TYPE_MUXER      ,
    pattern ELEMENT_FACTORY_TYPE_MEDIA_VIDEO,
    pattern ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE,
    pattern ELEMENT_FACTORY_TYPE_MEDIA_METADATA,
    pattern ELEMENT_FACTORY_TYPE_MEDIA_IMAGE,
    pattern ELEMENT_FACTORY_TYPE_MEDIA_AUDIO,
    pattern ELEMENT_FACTORY_TYPE_MEDIA_ANY  ,
    pattern ELEMENT_FACTORY_TYPE_MAX_ELEMENTS,
    pattern ELEMENT_FACTORY_TYPE_FORMATTER  ,
    pattern ELEMENT_FACTORY_TYPE_ENCRYPTOR  ,
    pattern ELEMENT_FACTORY_TYPE_ENCODER    ,
    pattern ELEMENT_FACTORY_TYPE_DEPAYLOADER,
    pattern ELEMENT_FACTORY_TYPE_DEMUXER    ,
    pattern ELEMENT_FACTORY_TYPE_DECRYPTOR  ,
    pattern ELEMENT_FACTORY_TYPE_DECODER    ,
    pattern ELEMENT_FACTORY_TYPE_DECODABLE  ,
    pattern ELEMENT_FACTORY_TYPE_AUDIO_ENCODER,
    pattern ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS,
    pattern ELEMENT_FACTORY_TYPE_ANY        ,
    pattern ELEMENT_FACTORY_KLASS_SRC       ,
    pattern ELEMENT_FACTORY_KLASS_SINK      ,
    pattern ELEMENT_FACTORY_KLASS_PAYLOADER ,
    pattern ELEMENT_FACTORY_KLASS_PARSER    ,
    pattern ELEMENT_FACTORY_KLASS_MUXER     ,
    pattern ELEMENT_FACTORY_KLASS_MEDIA_VIDEO,
    pattern ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE,
    pattern ELEMENT_FACTORY_KLASS_MEDIA_METADATA,
    pattern ELEMENT_FACTORY_KLASS_MEDIA_IMAGE,
    pattern ELEMENT_FACTORY_KLASS_MEDIA_AUDIO,
    pattern ELEMENT_FACTORY_KLASS_HARDWARE  ,
    pattern ELEMENT_FACTORY_KLASS_FORMATTER ,
    pattern ELEMENT_FACTORY_KLASS_ENCRYPTOR ,
    pattern ELEMENT_FACTORY_KLASS_ENCODER   ,
    pattern ELEMENT_FACTORY_KLASS_DEPAYLOADER,
    pattern ELEMENT_FACTORY_KLASS_DEMUXER   ,
    pattern ELEMENT_FACTORY_KLASS_DECRYPTOR ,
    pattern ELEMENT_FACTORY_KLASS_DECODER   ,
    pattern DEBUG_FORMAT_MASK               ,
    pattern DEBUG_FG_MASK                   ,
    pattern DEBUG_BG_MASK                   ,
    pattern CLOCK_TIME_NONE                 ,
    pattern CAPS_FEATURE_MEMORY_SYSTEM_MEMORY,
    pattern CAN_INLINE                      ,
    pattern BUFFER_OFFSET_NONE              ,
    pattern BUFFER_COPY_METADATA            ,
    pattern BUFFER_COPY_ALL                 ,
    pattern ALLOCATOR_SYSMEM                ,

    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

import {-# SOURCE #-} qualified GI.Gst.Flags as Gst.Flags

{- |
The nano version of GStreamer at compile time:
Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
-}
pattern VERSION_NANO = 0 :: Int32

{- |
The minor version of GStreamer at compile time:
-}
pattern VERSION_MINOR = 16 :: Int32

{- |
The micro version of GStreamer at compile time:
-}
pattern VERSION_MICRO = 0 :: Int32

{- |
The major version of GStreamer at compile time:
-}
pattern VERSION_MAJOR = 1 :: Int32

{- |
Indicates that the comparison function ('GI.Gst.Functions.valueCompare') can not
determine a order for the two provided values.
-}
pattern VALUE_UNORDERED = 2 :: Int32

{- |
Indicates that the first value provided to a comparison function
('GI.Gst.Functions.valueCompare') is lesser than the second one.
-}
pattern VALUE_LESS_THAN = -1 :: Int32

{- |
Indicates that the first value provided to a comparison function
('GI.Gst.Functions.valueCompare') is greater than the second one.
-}
pattern VALUE_GREATER_THAN = 1 :: Int32

{- |
Indicates that the first value provided to a comparison function
('GI.Gst.Functions.valueCompare') is equal to the second one.
-}
pattern VALUE_EQUAL = 0 :: Int32

{- |
Constant that defines one GStreamer microsecond.
-}
pattern USECOND = 1000 :: Int64

{- |
Value for 'GI.Gst.Structs.Uri.Uri'\<!-- -->.port to indicate no port number.
-}
pattern URI_NO_PORT = 0 :: Int32

{- |
Special value for the repeat_count set in 'GI.Gst.Structs.TocEntry.tocEntrySetLoop' or
returned by 'GI.Gst.Structs.TocEntry.tocEntrySetLoop' to indicate infinite looping.

/Since: 1.4/
-}
pattern TOC_REPEAT_COUNT_INFINITE = -1 :: Int32

{- |
codec the video data is stored in (string)
-}
pattern TAG_VIDEO_CODEC = "video-codec" :: T.Text

{- |
version of this data (string)
-}
pattern TAG_VERSION = "version" :: T.Text

{- |
Rating attributed by a person (likely the application user).
The higher the value, the more the user likes this media
(unsigned int from 0 to 100)
-}
pattern TAG_USER_RATING = "user-rating" :: T.Text

{- |
peak of the track (double)
-}
pattern TAG_TRACK_PEAK = "replaygain-track-peak" :: T.Text

{- |
track number inside a collection (unsigned integer)
-}
pattern TAG_TRACK_NUMBER = "track-number" :: T.Text

{- |
track gain in db (double)
-}
pattern TAG_TRACK_GAIN = "replaygain-track-gain" :: T.Text

{- |
count of tracks inside collection this track belongs to (unsigned integer)
-}
pattern TAG_TRACK_COUNT = "track-count" :: T.Text

{- |
commonly used title, as used for sorting (string)

The title as it should be sorted, e.g. \'Doll House, The\'
-}
pattern TAG_TITLE_SORTNAME = "title-sortname" :: T.Text

{- |
commonly used title (string)

The title as it should be displayed, e.g. \'The Doll House\'
-}
pattern TAG_TITLE = "title" :: T.Text

{- |
codec\/format the subtitle data is stored in (string)
-}
pattern TAG_SUBTITLE_CODEC = "subtitle-codec" :: T.Text

{- |
Name of the show, used for sorting (string)
-}
pattern TAG_SHOW_SORTNAME = "show-sortname" :: T.Text

{- |
Number of the season of a show\/series (unsigned integer)
-}
pattern TAG_SHOW_SEASON_NUMBER = "show-season-number" :: T.Text

{- |
Name of the show, used for displaying (string)
-}
pattern TAG_SHOW_NAME = "show-name" :: T.Text

{- |
Number of the episode within a season\/show (unsigned integer)
-}
pattern TAG_SHOW_EPISODE_NUMBER = "show-episode-number" :: T.Text

{- |
serial number of track (unsigned integer)
-}
pattern TAG_SERIAL = "serial" :: T.Text

{- |
reference level of track and album gain values (double)
-}
pattern TAG_REFERENCE_LEVEL = "replaygain-reference-level" :: T.Text

{- |
Name of the label or publisher (string)

/Since: 1.2/
-}
pattern TAG_PUBLISHER = "publisher" :: T.Text

{- |
Any private data that may be contained in tags (sample).

It is represented by 'GI.Gst.Structs.Sample.Sample' in which 'GI.Gst.Structs.Buffer.Buffer' contains the
binary data and the sample\'s info 'GI.Gst.Structs.Structure.Structure' may contain any
extra information that identifies the origin or meaning of the data.

Private frames in ID3v2 tags (\'PRIV\' frames) will be represented
using this tag, in which case the GstStructure will be named
\"ID3PrivateFrame\" and contain a field named \"owner\" of type string
which contains the owner-identification string from the tag.

/Since: 1.8/
-}
pattern TAG_PRIVATE_DATA = "private-data" :: T.Text

{- |
image that is meant for preview purposes, e.g. small icon-sized version
(sample) (sample taglist should specify the content type)
-}
pattern TAG_PREVIEW_IMAGE = "preview-image" :: T.Text

{- |
person(s) performing (string)
-}
pattern TAG_PERFORMER = "performer" :: T.Text

{- |
organization (string)
-}
pattern TAG_ORGANIZATION = "organization" :: T.Text

{- |
nominal bitrate in bits\/s (unsigned integer). The actual bitrate might be
different from this target bitrate.
-}
pattern TAG_NOMINAL_BITRATE = "nominal-bitrate" :: T.Text

{- |
minimum bitrate in bits\/s (unsigned integer)
-}
pattern TAG_MINIMUM_BITRATE = "minimum-bitrate" :: T.Text

{- |
\<ulink url=\"http:\/\/en.wikipedia.org\/wiki\/Note@/Note_designation_in_accordance_with_octave_name/@\">Midi note number\<\/ulink>
of the audio track. This is useful for sample instruments and in particular
for multi-samples.

/Since: 1.4/
-}
pattern TAG_MIDI_BASE_NOTE = "midi-base-note" :: T.Text

{- |
maximum bitrate in bits\/s (unsigned integer)
-}
pattern TAG_MAXIMUM_BITRATE = "maximum-bitrate" :: T.Text

{- |
The lyrics of the media (string)
-}
pattern TAG_LYRICS = "lyrics" :: T.Text

{- |
Origin of media as a URI (location, where the original of the file or stream
is hosted) (string)
-}
pattern TAG_LOCATION = "location" :: T.Text

{- |
URI to location where license details can be found (string)
-}
pattern TAG_LICENSE_URI = "license-uri" :: T.Text

{- |
license of data (string)
-}
pattern TAG_LICENSE = "license" :: T.Text

{- |
Name of the language the content is in (string)

Free-form name of the language the content is in, if a language code
is not available. This tag should not be set in addition to a language
code. It is undefined what language or locale the language name is in.
-}
pattern TAG_LANGUAGE_NAME = "language-name" :: T.Text

{- |
ISO-639-2 or ISO-639-1 code for the language the content is in (string)

There is utility API in libgsttag in gst-plugins-base to obtain a translated
language name from the language code: @/gst_tag_get_language_name()/@
-}
pattern TAG_LANGUAGE_CODE = "language-code" :: T.Text

{- |
comma separated keywords describing the content (string).
-}
pattern TAG_KEYWORDS = "keywords" :: T.Text

{- |
International Standard Recording Code - see http:\/\/www.ifpi.org\/isrc\/ (string)
-}
pattern TAG_ISRC = "isrc" :: T.Text

{- |
Information about the people behind a remix and similar
interpretations of another existing piece (string)

/Since: 1.2/
-}
pattern TAG_INTERPRETED_BY = "interpreted-by" :: T.Text

{- |
Represents the \'Orientation\' tag from EXIF. Defines how the image
should be rotated and mirrored for display. (string)

This tag has a predefined set of allowed values:
  \"rotate-0\"
  \"rotate-90\"
  \"rotate-180\"
  \"rotate-270\"
  \"flip-rotate-0\"
  \"flip-rotate-90\"
  \"flip-rotate-180\"
  \"flip-rotate-270\"

The naming is adopted according to a possible transformation to perform
on the image to fix its orientation, obviously equivalent operations will
yield the same result.

Rotations indicated by the values are in clockwise direction and
\'flip\' means an horizontal mirroring.
-}
pattern TAG_IMAGE_ORIENTATION = "image-orientation" :: T.Text

{- |
image (sample) (sample taglist should specify the content type and preferably
also set \"image-type\" field as @/GstTagImageType/@)
-}
pattern TAG_IMAGE = "image" :: T.Text

{- |
Homepage for this media (i.e. artist or movie homepage) (string)
-}
pattern TAG_HOMEPAGE = "homepage" :: T.Text

{- |
Groups together media that are related and spans multiple tracks. An
example are multiple pieces of a concerto. (string)
-}
pattern TAG_GROUPING = "grouping" :: T.Text

{- |
A location \'smaller\' than GST_TAG_GEO_LOCATION_CITY that specifies better
where the media has been produced. (e.g. the neighborhood) (string).

This tag has been added as this is how it is handled\/named in XMP\'s
Iptc4xmpcore schema.
-}
pattern TAG_GEO_LOCATION_SUBLOCATION = "geo-location-sublocation" :: T.Text

{- |
human readable descriptive location of where the media has been recorded or
produced. (string).
-}
pattern TAG_GEO_LOCATION_NAME = "geo-location-name" :: T.Text

{- |
Speed of the capturing device when performing the capture.
Represented in m\/s. (double)

See also 'GI.Gst.Constants.TAG_GEO_LOCATION_MOVEMENT_DIRECTION'
-}
pattern TAG_GEO_LOCATION_MOVEMENT_SPEED = "geo-location-movement-speed" :: T.Text

{- |
Indicates the movement direction of the device performing the capture
of a media. It is represented as degrees in floating point representation,
0 means the geographic north, and increases clockwise (double from 0 to 360)

See also 'GI.Gst.Constants.TAG_GEO_LOCATION_CAPTURE_DIRECTION'
-}
pattern TAG_GEO_LOCATION_MOVEMENT_DIRECTION = "geo-location-movement-direction" :: T.Text

{- |
geo longitude location of where the media has been recorded or produced in
degrees according to WGS84 (zero at the prime meridian in Greenwich\/UK,
negative values for western longitudes). (double).
-}
pattern TAG_GEO_LOCATION_LONGITUDE = "geo-location-longitude" :: T.Text

{- |
geo latitude location of where the media has been recorded or produced in
degrees according to WGS84 (zero at the equator, negative values for southern
latitudes) (double).
-}
pattern TAG_GEO_LOCATION_LATITUDE = "geo-location-latitude" :: T.Text

{- |
Represents the expected error on the horizontal positioning in
meters (double).
-}
pattern TAG_GEO_LOCATION_HORIZONTAL_ERROR = "geo-location-horizontal-error" :: T.Text

{- |
geo elevation of where the media has been recorded or produced in meters
according to WGS84 (zero is average sea level) (double).
-}
pattern TAG_GEO_LOCATION_ELEVATION = "geo-location-elevation" :: T.Text

{- |
The country (english name) where the media has been produced (string).
-}
pattern TAG_GEO_LOCATION_COUNTRY = "geo-location-country" :: T.Text

{- |
The city (english name) where the media has been produced (string).
-}
pattern TAG_GEO_LOCATION_CITY = "geo-location-city" :: T.Text

{- |
Indicates the direction the device is pointing to when capturing
a media. It is represented as degrees in floating point representation,
0 means the geographic north, and increases clockwise (double from 0 to 360)

See also 'GI.Gst.Constants.TAG_GEO_LOCATION_MOVEMENT_DIRECTION'
-}
pattern TAG_GEO_LOCATION_CAPTURE_DIRECTION = "geo-location-capture-direction" :: T.Text

{- |
genre this data belongs to (string)
-}
pattern TAG_GENRE = "genre" :: T.Text

{- |
key\/value text commenting the data (string)

Must be in the form of \'key=comment\' or
\'key[lc]=comment\' where \'lc\' is an ISO-639
language code.

This tag is used for unknown Vorbis comment tags,
unknown APE tags and certain ID3v2 comment fields.
-}
pattern TAG_EXTENDED_COMMENT = "extended-comment" :: T.Text

{- |
version of the encoder used to encode this stream (unsigned integer)
-}
pattern TAG_ENCODER_VERSION = "encoder-version" :: T.Text

{- |
encoder used to encode this stream (string)
-}
pattern TAG_ENCODER = "encoder" :: T.Text

{- |
name of the person or organisation that encoded the file. May contain a
copyright message if the person or organisation also holds the copyright
(string)

Note: do not use this field to describe the encoding application. Use
'GI.Gst.Constants.TAG_APPLICATION_NAME' or 'GI.Gst.Constants.TAG_COMMENT' for that.
-}
pattern TAG_ENCODED_BY = "encoded-by" :: T.Text

{- |
length in GStreamer time units (nanoseconds) (unsigned 64-bit integer)
-}
pattern TAG_DURATION = "duration" :: T.Text

{- |
Model of the device used to create the media (string)
-}
pattern TAG_DEVICE_MODEL = "device-model" :: T.Text

{- |
Manufacturer of the device used to create the media (string)
-}
pattern TAG_DEVICE_MANUFACTURER = "device-manufacturer" :: T.Text

{- |
short text describing the content of the data (string)
-}
pattern TAG_DESCRIPTION = "description" :: T.Text

{- |
date and time the data was created ('GI.Gst.Structs.DateTime.DateTime' structure)
-}
pattern TAG_DATE_TIME = "datetime" :: T.Text

{- |
date the data was created ('GI.GLib.Structs.Date.Date' structure)
-}
pattern TAG_DATE = "date" :: T.Text

{- |
URI to location where copyright details can be found (string)
-}
pattern TAG_COPYRIGHT_URI = "copyright-uri" :: T.Text

{- |
copyright notice of the data (string)
-}
pattern TAG_COPYRIGHT = "copyright" :: T.Text

{- |
container format the data is stored in (string)
-}
pattern TAG_CONTAINER_FORMAT = "container-format" :: T.Text

{- |
contact information (string)
-}
pattern TAG_CONTACT = "contact" :: T.Text

{- |
conductor\/performer refinement (string)

/Since: 1.8/
-}
pattern TAG_CONDUCTOR = "conductor" :: T.Text

{- |
The composer\'s name, used for sorting (string)
-}
pattern TAG_COMPOSER_SORTNAME = "composer-sortname" :: T.Text

{- |
person(s) who composed the recording (string)
-}
pattern TAG_COMPOSER = "composer" :: T.Text

{- |
free text commenting the data (string)
-}
pattern TAG_COMMENT = "comment" :: T.Text

{- |
codec the data is stored in (string)
-}
pattern TAG_CODEC = "codec" :: T.Text

{- |
exact or average bitrate in bits\/s (unsigned integer)
-}
pattern TAG_BITRATE = "bitrate" :: T.Text

{- |
number of beats per minute in audio (double)
-}
pattern TAG_BEATS_PER_MINUTE = "beats-per-minute" :: T.Text

{- |
codec the audio data is stored in (string)
-}
pattern TAG_AUDIO_CODEC = "audio-codec" :: T.Text

{- |
generic file attachment (sample) (sample taglist should specify the content
type and if possible set \"filename\" to the file name of the
attachment)
-}
pattern TAG_ATTACHMENT = "attachment" :: T.Text

{- |
person(s) responsible for the recording, as used for sorting (string)

The artist name as it should be sorted, e.g. \'Hendrix, Jimi\' or
\'Guitar Heroes, The\'
-}
pattern TAG_ARTIST_SORTNAME = "artist-sortname" :: T.Text

{- |
person(s) responsible for the recording (string)

The artist name as it should be displayed, e.g. \'Jimi Hendrix\' or
\'The Guitar Heroes\'
-}
pattern TAG_ARTIST = "artist" :: T.Text

{- |
Name of the application used to create the media (string)
-}
pattern TAG_APPLICATION_NAME = "application-name" :: T.Text

{- |
Arbitrary application data (sample)

Some formats allow applications to add their own arbitrary data
into files. This data is application dependent.
-}
pattern TAG_APPLICATION_DATA = "application-data" :: T.Text

{- |
disc number inside a collection (unsigned integer)
-}
pattern TAG_ALBUM_VOLUME_NUMBER = "album-disc-number" :: T.Text

{- |
count of discs inside collection this disc belongs to (unsigned integer)
-}
pattern TAG_ALBUM_VOLUME_COUNT = "album-disc-count" :: T.Text

{- |
album containing this data, as used for sorting (string)

The album name as it should be sorted, e.g. \'Jazz Guitar, The\'
-}
pattern TAG_ALBUM_SORTNAME = "album-sortname" :: T.Text

{- |
peak of the album (double)
-}
pattern TAG_ALBUM_PEAK = "replaygain-album-peak" :: T.Text

{- |
album gain in db (double)
-}
pattern TAG_ALBUM_GAIN = "replaygain-album-gain" :: T.Text

{- |
The artist of the entire album, as it should be sorted.
-}
pattern TAG_ALBUM_ARTIST_SORTNAME = "album-artist-sortname" :: T.Text

{- |
The artist of the entire album, as it should be displayed.
-}
pattern TAG_ALBUM_ARTIST = "album-artist" :: T.Text

{- |
album containing this data (string)

The album name as it should be displayed, e.g. \'The Jazz Guitar\'
-}
pattern TAG_ALBUM = "album" :: T.Text

{- |
A value which is guaranteed to never be returned by
'GI.Gst.Functions.utilSeqnumNext'.

Can be used as a default value in variables used to store seqnum.

/Since: 1.14/
-}
pattern SEQNUM_INVALID = 0 :: Int32

{- |
Constant that defines one GStreamer second.
-}
pattern SECOND = 1000000000 :: Int64

{- |
The same thing as @/GST_QUERY_TYPE_UPSTREAM/@ | @/GST_QUERY_TYPE_DOWNSTREAM/@.
-}
pattern QUERY_TYPE_BOTH <- (gflagsToWord -> (3 :: Word64)) :: [Gst.Flags.QueryTypeFlags] where
    QUERY_TYPE_BOTH = wordToGFlags (3 :: Word64) :: [Gst.Flags.QueryTypeFlags]

{- |
/No description available in the introspection data./
-}
pattern QUERY_NUM_SHIFT = 8 :: Int32

{- |
The protection system value of the unspecified UUID.
In some cases the system protection ID is not present in the contents or in their
metadata, as encrypted WebM.
This define is used to set the value of the \"system_id\" field in GstProtectionEvent,
with this value, the application will use an external information to choose which
protection system to use.

Example: The matroskademux uses this value in the case of encrypted WebM,
the application will choose the appropriate protection system based on the information
received through EME API.

/Since: 1.16/
-}
pattern PROTECTION_UNSPECIFIED_SYSTEM_ID = "unspecified-system-id" :: T.Text

{- |
The field name in a GstCaps that is used to signal the UUID of the protection
system.

/Since: 1.6/
-}
pattern PROTECTION_SYSTEM_ID_CAPS_FIELD = "protection-system" :: T.Text

{- |
Bits based on GST_PARAM_USER_SHIFT can be used by 3rd party applications.
-}
pattern PARAM_USER_SHIFT = 65536 :: Int32

{- |
Use this flag on GObject properties of GstElements to indicate that
they can be changed when the element is in the READY or lower state.
-}
pattern PARAM_MUTABLE_READY = 1024 :: Int32

{- |
Use this flag on GObject properties of GstElements to indicate that
they can be changed when the element is in the PLAYING or lower state.
This flag implies GST_PARAM_MUTABLE_PAUSED.
-}
pattern PARAM_MUTABLE_PLAYING = 4096 :: Int32

{- |
Use this flag on GObject properties of GstElements to indicate that
they can be changed when the element is in the PAUSED or lower state.
This flag implies GST_PARAM_MUTABLE_READY.
-}
pattern PARAM_MUTABLE_PAUSED = 2048 :: Int32

{- |
Use this flag on GObject properties to signal they can make sense to be.
controlled over time. This hint is used by the GstController.
-}
pattern PARAM_CONTROLLABLE = 512 :: Int32

{- |
Constant that defines one GStreamer nanosecond
-}
pattern NSECOND = 1 :: Int64

{- |
Constant that defines one GStreamer millisecond.
-}
pattern MSECOND = 1000000 :: Int64

{- |
This metadata stays relevant as long as memory layout is unchanged.

/Since: 1.2/
-}
pattern META_TAG_MEMORY_STR = "memory" :: T.Text

{- |
GstMapFlags value alias for GST_MAP_READ | GST_MAP_WRITE
-}
pattern MAP_READWRITE <- (gflagsToWord -> (3 :: Word64)) :: [Gst.Flags.MapFlags] where
    MAP_READWRITE = wordToGFlags (3 :: Word64) :: [Gst.Flags.MapFlags]

{- |
GstLockFlags value alias for GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE
-}
pattern LOCK_FLAG_READWRITE <- (gflagsToWord -> (3 :: Word64)) :: [Gst.Flags.LockFlags] where
    LOCK_FLAG_READWRITE = wordToGFlags (3 :: Word64) :: [Gst.Flags.LockFlags]

{- |
To be used in GST_PLUGIN_DEFINE if unsure about the licence.
-}
pattern LICENSE_UNKNOWN = "unknown" :: T.Text

{- |
A value which is guaranteed to never be returned by
'GI.Gst.Functions.utilGroupIdNext'.

Can be used as a default value in variables used to store group_id.

/Since: 1.14/
-}
pattern GROUP_ID_INVALID = 0 :: Int32

{- |
The value used to scale down the reported PERCENT format value to
its real value.
-}
pattern FORMAT_PERCENT_SCALE = 10000 :: Int64

{- |
The PERCENT format is between 0 and this value
-}
pattern FORMAT_PERCENT_MAX = 1000000 :: Int64

{- |
A mask value with all bits set, for use as a
GstFlagSet mask where all flag bits must match
exactly

/Since: 1.6/
-}
pattern FLAG_SET_MASK_EXACT = 4294967295 :: Word32

{- |
The same thing as @/GST_EVENT_TYPE_UPSTREAM/@ | @/GST_EVENT_TYPE_DOWNSTREAM/@.
-}
pattern EVENT_TYPE_BOTH <- (gflagsToWord -> (3 :: Word64)) :: [Gst.Flags.EventTypeFlags] where
    EVENT_TYPE_BOTH = wordToGFlags (3 :: Word64) :: [Gst.Flags.EventTypeFlags]

{- |
/No description available in the introspection data./
-}
pattern EVENT_NUM_SHIFT = 8 :: Int32

{- |
The long English name of the element. E.g. \"File Sink\"
-}
pattern ELEMENT_METADATA_LONGNAME = "long-name" :: T.Text

{- |
String describing the type of element, as an unordered list
separated with slashes (\'\/\'). See draft-klass.txt of the design docs
for more details and common types. E.g: \"Sink\/File\"
-}
pattern ELEMENT_METADATA_KLASS = "klass" :: T.Text

{- |
Elements that bridge to certain other products can include an icon of that
used product. Application can show the icon in menus\/selectors to help
identifying specific elements.
-}
pattern ELEMENT_METADATA_ICON_NAME = "icon-name" :: T.Text

{- |
Set uri pointing to user documentation. Applications can use this to show
help for e.g. effects to users.
-}
pattern ELEMENT_METADATA_DOC_URI = "doc-uri" :: T.Text

{- |
Sentence describing the purpose of the element.
E.g: \"Write stream to a file\"
-}
pattern ELEMENT_METADATA_DESCRIPTION = "description" :: T.Text

{- |
Name and contact details of the author(s). Use \\n to separate
multiple author details.
E.g: \"Joe Bloggs &lt;joe.blogs at foo.com&gt;\"
-}
pattern ELEMENT_METADATA_AUTHOR = "author" :: T.Text

{- |
All encoders handling video or image media types
-}
pattern ELEMENT_FACTORY_TYPE_VIDEO_ENCODER = 2814749767106562 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_SRC = 8 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_SINK = 4 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_PAYLOADER = 128 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_PARSER = 64 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_MUXER = 16 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_MEDIA_VIDEO = 562949953421312 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE = 4503599627370496 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_MEDIA_METADATA = 9007199254740992 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_MEDIA_IMAGE = 2251799813685248 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_MEDIA_AUDIO = 1125899906842624 :: Word64

{- |
Elements matching any of the defined GST_ELEMENT_FACTORY_TYPE_MEDIA types

Note: Do not use this if you wish to not filter against any of the defined
media types. If you wish to do this, simply don\'t specify any
GST_ELEMENT_FACTORY_TYPE_MEDIA flag.
-}
pattern ELEMENT_FACTORY_TYPE_MEDIA_ANY = 18446462598732840960 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_MAX_ELEMENTS = 281474976710656 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_FORMATTER = 512 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_ENCRYPTOR = 2048 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_ENCODER = 2 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_DEPAYLOADER = 256 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_DEMUXER = 32 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_DECRYPTOR = 1024 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_TYPE_DECODER = 1 :: Word64

{- |
All elements used to \'decode\' streams (decoders, demuxers, parsers, depayloaders)
-}
pattern ELEMENT_FACTORY_TYPE_DECODABLE = 1377 :: Word64

{- |
All encoders handling audio media types
-}
pattern ELEMENT_FACTORY_TYPE_AUDIO_ENCODER = 1125899906842626 :: Word64

{- |
All sinks handling audio, video or image media types
-}
pattern ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS = 3940649673949188 :: Word64

{- |
Elements of any of the defined GST_ELEMENT_FACTORY_LIST types
-}
pattern ELEMENT_FACTORY_TYPE_ANY = 562949953421311 :: Word64

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_SRC = "Source" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_SINK = "Sink" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_PAYLOADER = "Payloader" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_PARSER = "Parser" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_MUXER = "Muxer" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_MEDIA_VIDEO = "Video" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE = "Subtitle" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_MEDIA_METADATA = "Metadata" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_MEDIA_IMAGE = "Image" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_MEDIA_AUDIO = "Audio" :: T.Text

{- |
Elements interacting with hardware devices should specify this classifier in
their metadata. You may need to put the element in \"READY\" state to test if
the hardware is present in the system.

/Since: 1.16/
-}
pattern ELEMENT_FACTORY_KLASS_HARDWARE = "Hardware" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_FORMATTER = "Formatter" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_ENCRYPTOR = "Encryptor" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_ENCODER = "Encoder" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_DEPAYLOADER = "Depayloader" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_DEMUXER = "Demuxer" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_DECRYPTOR = "Decryptor" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern ELEMENT_FACTORY_KLASS_DECODER = "Decoder" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern DEBUG_FORMAT_MASK = 65280 :: Int32

{- |
/No description available in the introspection data./
-}
pattern DEBUG_FG_MASK = 15 :: Int32

{- |
/No description available in the introspection data./
-}
pattern DEBUG_BG_MASK = 240 :: Int32

{- |
Constant to define an undefined clock time.
-}
pattern CLOCK_TIME_NONE = 18446744073709551615 :: Word64

{- |
/No description available in the introspection data./
-}
pattern CAPS_FEATURE_MEMORY_SYSTEM_MEMORY = "memory:SystemMemory" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern CAN_INLINE = 1 :: Int32

{- |
Constant for no-offset return results.
-}
pattern BUFFER_OFFSET_NONE = 18446744073709551615 :: Word64

{- |
Combination of all possible metadata fields that can be copied with
'GI.Gst.Structs.Buffer.bufferCopyInto'.
-}
pattern BUFFER_COPY_METADATA <- (gflagsToWord -> (7 :: Word64)) :: [Gst.Flags.BufferCopyFlags] where
    BUFFER_COPY_METADATA = wordToGFlags (7 :: Word64) :: [Gst.Flags.BufferCopyFlags]

{- |
Combination of all possible fields that can be copied with
'GI.Gst.Structs.Buffer.bufferCopyInto'.
-}
pattern BUFFER_COPY_ALL <- (gflagsToWord -> (15 :: Word64)) :: [Gst.Flags.BufferCopyFlags] where
    BUFFER_COPY_ALL = wordToGFlags (15 :: Word64) :: [Gst.Flags.BufferCopyFlags]

{- |
The allocator name for the default system memory allocator
-}
pattern ALLOCATOR_SYSMEM = "SystemMemory" :: T.Text