{-# 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.GstVideo.Constants
    (
    pattern VIDEO_TILE_Y_TILES_SHIFT        ,
    pattern VIDEO_TILE_X_TILES_MASK         ,
    pattern VIDEO_TILE_TYPE_SHIFT           ,
    pattern VIDEO_TILE_TYPE_MASK            ,
    pattern VIDEO_SIZE_RANGE                ,
    pattern VIDEO_SCALER_OPT_DITHER_METHOD  ,
    pattern VIDEO_RESAMPLER_OPT_SHARPNESS   ,
    pattern VIDEO_RESAMPLER_OPT_SHARPEN     ,
    pattern VIDEO_RESAMPLER_OPT_MAX_TAPS    ,
    pattern VIDEO_RESAMPLER_OPT_ENVELOPE    ,
    pattern VIDEO_RESAMPLER_OPT_CUBIC_C     ,
    pattern VIDEO_RESAMPLER_OPT_CUBIC_B     ,
    pattern VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS,
    pattern VIDEO_MAX_PLANES                ,
    pattern VIDEO_MAX_COMPONENTS            ,
    pattern VIDEO_FPS_RANGE                 ,
    pattern VIDEO_FORMATS_ALL               ,
    pattern VIDEO_ENCODER_SRC_NAME          ,
    pattern VIDEO_ENCODER_SINK_NAME         ,
    pattern VIDEO_DECODER_SRC_NAME          ,
    pattern VIDEO_DECODER_SINK_NAME         ,
    pattern VIDEO_DECODER_MAX_ERRORS        ,
    pattern VIDEO_CONVERTER_OPT_THREADS     ,
    pattern VIDEO_CONVERTER_OPT_SRC_Y       ,
    pattern VIDEO_CONVERTER_OPT_SRC_X       ,
    pattern VIDEO_CONVERTER_OPT_SRC_WIDTH   ,
    pattern VIDEO_CONVERTER_OPT_SRC_HEIGHT  ,
    pattern VIDEO_CONVERTER_OPT_RESAMPLER_TAPS,
    pattern VIDEO_CONVERTER_OPT_RESAMPLER_METHOD,
    pattern VIDEO_CONVERTER_OPT_PRIMARIES_MODE,
    pattern VIDEO_CONVERTER_OPT_MATRIX_MODE ,
    pattern VIDEO_CONVERTER_OPT_GAMMA_MODE  ,
    pattern VIDEO_CONVERTER_OPT_FILL_BORDER ,
    pattern VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION,
    pattern VIDEO_CONVERTER_OPT_DITHER_METHOD,
    pattern VIDEO_CONVERTER_OPT_DEST_Y      ,
    pattern VIDEO_CONVERTER_OPT_DEST_X      ,
    pattern VIDEO_CONVERTER_OPT_DEST_WIDTH  ,
    pattern VIDEO_CONVERTER_OPT_DEST_HEIGHT ,
    pattern VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD,
    pattern VIDEO_CONVERTER_OPT_CHROMA_MODE ,
    pattern VIDEO_CONVERTER_OPT_BORDER_ARGB ,
    pattern VIDEO_CONVERTER_OPT_ALPHA_VALUE ,
    pattern VIDEO_CONVERTER_OPT_ALPHA_MODE  ,
    pattern VIDEO_COMP_Y                    ,
    pattern VIDEO_COMP_V                    ,
    pattern VIDEO_COMP_U                    ,
    pattern VIDEO_COMP_R                    ,
    pattern VIDEO_COMP_PALETTE              ,
    pattern VIDEO_COMP_INDEX                ,
    pattern VIDEO_COMP_G                    ,
    pattern VIDEO_COMP_B                    ,
    pattern VIDEO_COMP_A                    ,
    pattern VIDEO_COLORIMETRY_SRGB          ,
    pattern VIDEO_COLORIMETRY_SMPTE240M     ,
    pattern VIDEO_COLORIMETRY_BT709         ,
    pattern VIDEO_COLORIMETRY_BT601         ,
    pattern VIDEO_COLORIMETRY_BT2020        ,
    pattern META_TAG_VIDEO_STR              ,
    pattern META_TAG_VIDEO_SIZE_STR         ,
    pattern META_TAG_VIDEO_ORIENTATION_STR  ,
    pattern META_TAG_VIDEO_COLORSPACE_STR   ,
    pattern CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION,
    pattern CAPS_FEATURE_META_GST_VIDEO_META,
    pattern CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META,
    pattern CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META,
    pattern CAPS_FEATURE_FORMAT_INTERLACED  ,
    pattern BUFFER_POOL_OPTION_VIDEO_META   ,
    pattern BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META,
    pattern BUFFER_POOL_OPTION_VIDEO_ALIGNMENT,
    pattern BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META,

    ) 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


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

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

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

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

{- |
/No description available in the introspection data./
-}
pattern VIDEO_SIZE_RANGE = "(int) [ 1, max ]" :: T.Text

{- |
@/GST_TYPE_VIDEO_DITHER_METHOD/@, The dither method to use for propagating
quatization errors.
-}
pattern VIDEO_SCALER_OPT_DITHER_METHOD = "GstVideoScaler.dither-method" :: T.Text

{- |
G_TYPE_DOUBLE, specifies sharpness of the filter for
/@gSTVIDEORESAMPLERMETHODLANCZOS@/. values are clamped between
0.5 and 1.5. 1.0 is the default.
-}
pattern VIDEO_RESAMPLER_OPT_SHARPNESS = "GstVideoResampler.sharpness" :: T.Text

{- |
G_TYPE_DOUBLE, specifies sharpening of the filter for
/@gSTVIDEORESAMPLERMETHODLANCZOS@/. values are clamped between
0.0 and 1.0. 0.0 is the default.
-}
pattern VIDEO_RESAMPLER_OPT_SHARPEN = "GstVideoResampler.sharpen" :: T.Text

{- |
G_TYPE_INT, limits the maximum number of taps to use.
16 is the default.
-}
pattern VIDEO_RESAMPLER_OPT_MAX_TAPS = "GstVideoResampler.max-taps" :: T.Text

{- |
G_TYPE_DOUBLE, specifies the size of filter envelope for
/@gSTVIDEORESAMPLERMETHODLANCZOS@/. values are clamped between
1.0 and 5.0. 2.0 is the default.
-}
pattern VIDEO_RESAMPLER_OPT_ENVELOPE = "GstVideoResampler.envelope" :: T.Text

{- |
G_TYPE_DOUBLE, C parameter of the cubic filter. The C
parameter controls the Keys alpha value. Values between 0.0 and
2.0 are accepted. 1\/3 is the default.

See 'GI.GstVideo.Constants.VIDEO_RESAMPLER_OPT_CUBIC_B' for some more common values
-}
pattern VIDEO_RESAMPLER_OPT_CUBIC_C = "GstVideoResampler.cubic-c" :: T.Text

{- |
G_TYPE_DOUBLE, B parameter of the cubic filter. The B
parameter controls the bluriness. Values between 0.0 and
2.0 are accepted. 1\/3 is the default.

Below are some values of popular filters:
                   B       C
Hermite           0.0     0.0
Spline            1.0     0.0
Catmull-Rom       0.0     1\/2
Mitchell          1\/3     1\/3
Robidoux          0.3782  0.3109
Robidoux
 Sharp            0.2620  0.3690
Robidoux
 Soft             0.6796  0.1602
-}
pattern VIDEO_RESAMPLER_OPT_CUBIC_B = "GstVideoResampler.cubic-b" :: T.Text

{- |
Video formats supported by 'GI.GstVideo.Structs.VideoOverlayComposition.videoOverlayCompositionBlend', for
use in overlay elements\' pad template caps.

/Since: 1.2/
-}
pattern VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS = "{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }" :: T.Text

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

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

{- |
/No description available in the introspection data./
-}
pattern VIDEO_FPS_RANGE = "(fraction) [ 0, max ]" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern VIDEO_FORMATS_ALL = "{ I420, YV12, YUY2, UYVY, AYUV, VUYA, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, Y210, Y410, NV12, NV21, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10BE, I420_10LE, I422_10BE, I422_10LE, Y444_10BE, Y444_10LE, GBR, GBR_10BE, GBR_10LE, NV16, NV24, NV12_64Z32, A420_10BE, A420_10LE, A422_10BE, A422_10LE, A444_10BE, A444_10LE, NV61, P010_10BE, P010_10LE, IYU2, VYUY, GBRA, GBRA_10BE, GBRA_10LE, BGR10A2_LE, GBR_12BE, GBR_12LE, GBRA_12BE, GBRA_12LE, I420_12BE, I420_12LE, I422_12BE, I422_12LE, Y444_12BE, Y444_12LE, GRAY10_LE32, NV12_10LE32, NV16_10LE32, NV12_10LE40 }" :: T.Text

{- |
The name of the templates for the source pad.
-}
pattern VIDEO_ENCODER_SRC_NAME = "src" :: T.Text

{- |
The name of the templates for the sink pad.
-}
pattern VIDEO_ENCODER_SINK_NAME = "sink" :: T.Text

{- |
The name of the templates for the source pad.
-}
pattern VIDEO_DECODER_SRC_NAME = "src" :: T.Text

{- |
The name of the templates for the sink pad.
-}
pattern VIDEO_DECODER_SINK_NAME = "sink" :: T.Text

{- |
Default maximum number of errors tolerated before signaling error.
-}
pattern VIDEO_DECODER_MAX_ERRORS = 10 :: Int32

{- |
@/G_TYPE_UINT/@, maximum number of threads to use. Default 1, 0 for the number
of cores.
-}
pattern VIDEO_CONVERTER_OPT_THREADS = "GstVideoConverter.threads" :: T.Text

{- |
@/G_TYPE_INT/@, source y position to start conversion, default 0
-}
pattern VIDEO_CONVERTER_OPT_SRC_Y = "GstVideoConverter.src-y" :: T.Text

{- |
@/G_TYPE_INT/@, source x position to start conversion, default 0
-}
pattern VIDEO_CONVERTER_OPT_SRC_X = "GstVideoConverter.src-x" :: T.Text

{- |
@/G_TYPE_INT/@, source width to convert, default source width
-}
pattern VIDEO_CONVERTER_OPT_SRC_WIDTH = "GstVideoConverter.src-width" :: T.Text

{- |
@/G_TYPE_INT/@, source height to convert, default source height
-}
pattern VIDEO_CONVERTER_OPT_SRC_HEIGHT = "GstVideoConverter.src-height" :: T.Text

{- |
@/G_TYPE_UINT/@, The number of taps for the resampler.
Default is 0: let the resampler choose a good value.
-}
pattern VIDEO_CONVERTER_OPT_RESAMPLER_TAPS = "GstVideoConverter.resampler-taps" :: T.Text

{- |
@/GST_TYPE_VIDEO_RESAMPLER_METHOD/@, The resampler method to use for
resampling. Other options for the resampler can be used, see
the 'GI.GstVideo.Structs.VideoResampler.VideoResampler'. Default is @/GST_VIDEO_RESAMPLER_METHOD_CUBIC/@
-}
pattern VIDEO_CONVERTER_OPT_RESAMPLER_METHOD = "GstVideoConverter.resampler-method" :: T.Text

{- |
@/GST_TYPE_VIDEO_PRIMARIES_MODE/@, set the primaries conversion mode.
Default is @/GST_VIDEO_PRIMARIES_MODE_NONE/@.
-}
pattern VIDEO_CONVERTER_OPT_PRIMARIES_MODE = "GstVideoConverter.primaries-mode" :: T.Text

{- |
@/GST_TYPE_VIDEO_MATRIX_MODE/@, set the color matrix conversion mode for
converting between Y\'PbPr and non-linear RGB (R\'G\'B\').
Default is @/GST_VIDEO_MATRIX_MODE_FULL/@.
-}
pattern VIDEO_CONVERTER_OPT_MATRIX_MODE = "GstVideoConverter.matrix-mode" :: T.Text

{- |
@/GST_TYPE_VIDEO_GAMMA_MODE/@, set the gamma mode.
Default is @/GST_VIDEO_GAMMA_MODE_NONE/@.
-}
pattern VIDEO_CONVERTER_OPT_GAMMA_MODE = "GstVideoConverter.gamma-mode" :: T.Text

{- |
@/G_TYPE_BOOLEAN/@, if the destination rectangle does not fill the complete
destination image, render a border with
'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_BORDER_ARGB'. Otherwise the unusded pixels in the
destination are untouched. Default 'True'.
-}
pattern VIDEO_CONVERTER_OPT_FILL_BORDER = "GstVideoConverter.fill-border" :: T.Text

{- |
@/G_TYPE_UINT/@, The quantization amount to dither to. Components will be
quantized to multiples of this value.
Default is 1
-}
pattern VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION = "GstVideoConverter.dither-quantization" :: T.Text

{- |
@/GST_TYPE_VIDEO_DITHER_METHOD/@, The dither method to use when
changing bit depth.
Default is @/GST_VIDEO_DITHER_BAYER/@.
-}
pattern VIDEO_CONVERTER_OPT_DITHER_METHOD = "GstVideoConverter.dither-method" :: T.Text

{- |
@/G_TYPE_INT/@, y position in the destination frame, default 0
-}
pattern VIDEO_CONVERTER_OPT_DEST_Y = "GstVideoConverter.dest-y" :: T.Text

{- |
@/G_TYPE_INT/@, x position in the destination frame, default 0
-}
pattern VIDEO_CONVERTER_OPT_DEST_X = "GstVideoConverter.dest-x" :: T.Text

{- |
@/G_TYPE_INT/@, width in the destination frame, default destination width
-}
pattern VIDEO_CONVERTER_OPT_DEST_WIDTH = "GstVideoConverter.dest-width" :: T.Text

{- |
@/G_TYPE_INT/@, height in the destination frame, default destination height
-}
pattern VIDEO_CONVERTER_OPT_DEST_HEIGHT = "GstVideoConverter.dest-height" :: T.Text

{- |
@/GST_TYPE_VIDEO_RESAMPLER_METHOD/@, The resampler method to use for
chroma resampling. Other options for the resampler can be used, see
the 'GI.GstVideo.Structs.VideoResampler.VideoResampler'. Default is @/GST_VIDEO_RESAMPLER_METHOD_LINEAR/@
-}
pattern VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD = "GstVideoConverter.chroma-resampler-method" :: T.Text

{- |
@/GST_TYPE_VIDEO_CHROMA_MODE/@, set the chroma resample mode subsampled
formats. Default is @/GST_VIDEO_CHROMA_MODE_FULL/@.
-}
pattern VIDEO_CONVERTER_OPT_CHROMA_MODE = "GstVideoConverter.chroma-mode" :: T.Text

{- |
@/G_TYPE_UINT/@, the border color to use if 'GI.GstVideo.Constants.VIDEO_CONVERTER_OPT_FILL_BORDER'
is set to 'True'. The color is in ARGB format.
Default 0xff000000
-}
pattern VIDEO_CONVERTER_OPT_BORDER_ARGB = "GstVideoConverter.border-argb" :: T.Text

{- |
@/G_TYPE_DOUBLE/@, the alpha color value to use.
Default to 1.0
-}
pattern VIDEO_CONVERTER_OPT_ALPHA_VALUE = "GstVideoConverter.alpha-value" :: T.Text

{- |
@/GST_TYPE_VIDEO_ALPHA_MODE/@, the alpha mode to use.
Default is @/GST_VIDEO_ALPHA_MODE_COPY/@.
-}
pattern VIDEO_CONVERTER_OPT_ALPHA_MODE = "GstVideoConverter.alpha-mode" :: T.Text

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{- |
This metadata is relevant for video streams.

/Since: 1.2/
-}
pattern META_TAG_VIDEO_STR = "video" :: T.Text

{- |
This metadata stays relevant as long as video size is unchanged.

/Since: 1.2/
-}
pattern META_TAG_VIDEO_SIZE_STR = "size" :: T.Text

{- |
This metadata stays relevant as long as video orientation is unchanged.

/Since: 1.2/
-}
pattern META_TAG_VIDEO_ORIENTATION_STR = "orientation" :: T.Text

{- |
This metadata stays relevant as long as video colorspace is unchanged.

/Since: 1.2/
-}
pattern META_TAG_VIDEO_COLORSPACE_STR = "colorspace" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION = "meta:GstVideoOverlayComposition" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern CAPS_FEATURE_META_GST_VIDEO_META = "meta:GstVideoMeta" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META = "meta:GstVideoGLTextureUploadMeta" :: T.Text

{- |
/No description available in the introspection data./
-}
pattern CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META = "meta:GstVideoAffineTransformation" :: T.Text

{- |
Name of the caps feature indicating that the stream is interlaced. Currently
it is only used for video.

/Since: 1.16./
-}
pattern CAPS_FEATURE_FORMAT_INTERLACED = "format:Interlaced" :: T.Text

{- |
An option that can be activated on bufferpool to request video metadata
on buffers from the pool.
-}
pattern BUFFER_POOL_OPTION_VIDEO_META = "GstBufferPoolOptionVideoMeta" :: T.Text

{- |
An option that can be activated on a bufferpool to request gl texture upload
meta on buffers from the pool.

When this option is enabled on the bufferpool,
/@gSTBUFFERPOOLOPTIONVIDEOMETA@/ should also be enabled.

/Since: 1.2.2/
-}
pattern BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META = "GstBufferPoolOptionVideoGLTextureUploadMeta" :: T.Text

{- |
A bufferpool option to enable extra padding. When a bufferpool supports this
option, 'GI.GstVideo.Functions.bufferPoolConfigSetVideoAlignment' can be called.

When this option is enabled on the bufferpool,
'GI.GstVideo.Constants.BUFFER_POOL_OPTION_VIDEO_META' should also be enabled.
-}
pattern BUFFER_POOL_OPTION_VIDEO_ALIGNMENT = "GstBufferPoolOptionVideoAlignment" :: T.Text

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