{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Codec.FFmpeg.Enums where import Data.Bits (Bits) import Foreign.C.Types import Foreign.Storable (Storable) #include #include #include #include #include #include #ifndef PIX_FMT_RGBA64 -- WARNING: Fragile! This pixel format is not defined in older -- versions. Note that many FFI calls will fail at runtime with older -- versions, so all this does is let us the haskell code. #warning "This version of libav/ffmpeg is too old. It is not likely to work." #include "nameCompat.h" #endif newtype AVMediaType = AVMediaType CInt deriving (Eq, Storable) #enum AVMediaType,AVMediaType \ , AVMEDIA_TYPE_VIDEO\ , AVMEDIA_TYPE_AUDIO\ , AVMEDIA_TYPE_DATA\ , AVMEDIA_TYPE_SUBTITLE\ , AVMEDIA_TYPE_ATTACHMENT\ , AVMEDIA_TYPE_NB newtype AVPixelFormat = AVPixelFormat CInt deriving (Eq, Storable) #enum AVPixelFormat,AVPixelFormat \ , AV_PIX_FMT_NONE\ , AV_PIX_FMT_RGB24\ , AV_PIX_FMT_RGBA\ , AV_PIX_FMT_BGRA\ , AV_PIX_FMT_Y400A\ , AV_PIX_FMT_RGB32\ , AV_PIX_FMT_RGB32_1\ , AV_PIX_FMT_BGR32\ , AV_PIX_FMT_BGR32_1\ , AV_PIX_FMT_RGB8\ , AV_PIX_FMT_BGR8\ , AV_PIX_FMT_RGB4_BYTE\ , AV_PIX_FMT_BGR4_BYTE\ , AV_PIX_FMT_GRAY8\ , AV_PIX_FMT_GRAY16\ , AV_PIX_FMT_GRAY8A\ , AV_PIX_FMT_PAL8\ , AV_PIX_FMT_RGB565\ , AV_PIX_FMT_RGB555\ , AV_PIX_FMT_YUV420P\ , AV_PIX_FMT_YUV420P9\ , AV_PIX_FMT_YUV420P10\ , AV_PIX_FMT_YUV420P12\ , AV_PIX_FMT_YUV422P12\ , AV_PIX_FMT_YUV444P12\ , AV_PIX_FMT_YUV420P14\ , AV_PIX_FMT_YUV422P14\ , AV_PIX_FMT_YUV444P14\ , AV_PIX_FMT_YUV420P16\ , AV_PIX_FMT_YUV422P16\ , AV_PIX_FMT_YUV444P16\ , AV_PIX_FMT_RGBA64\ , AV_PIX_FMT_BGRA64 instance Show AVPixelFormat where show x | x == avPixFmtRgb24 = "AV_PIX_FMT_RGB24" | x == avPixFmtYuv420p = "AV_PIX_FMT_Y420P" | x == avPixFmtYuv422p12 = "AV_PIX_FMTYUV422P12" | x == avPixFmtYuv420p14 = "AV_PIX_FMTYUV422P12" | otherwise = let AVPixelFormat y = x in "Other pixel format: "++show y newtype AVCodecID = AVCodecID CInt deriving (Eq, Show, Storable) #enum AVCodecID,AVCodecID \ , AV_CODEC_ID_H264\ , AV_CODEC_ID_HEVC\ , AV_CODEC_ID_THEORA\ , AV_CODEC_ID_VC1\ , AV_CODEC_ID_MPEG4\ , AV_CODEC_ID_MPEG2VIDEO\ , AV_CODEC_ID_RAWVIDEO\ , AV_CODEC_ID_GIF\ , AV_CODEC_ID_AAC\ , AV_CODEC_ID_MP3\ , AV_CODEC_ID_DTS newtype SwsAlgorithm = SwsAlgorithm CUInt deriving (Eq, Show, Storable) #enum SwsAlgorithm,SwsAlgorithm \ , SWS_FAST_BILINEAR\ , SWS_BILINEAR\ , SWS_BICUBIC\ , SWS_X\ , SWS_POINT\ , SWS_AREA\ , SWS_BICUBLIN\ , SWS_GAUSS\ , SWS_SINC\ , SWS_LANCZOS\ , SWS_SPLINE newtype FFProfile = FFProfile CInt deriving (Eq, Storable) #enum FFProfile, FFProfile \ , FF_PROFILE_AAC_MAIN\ , FF_PROFILE_AAC_LOW\ , FF_PROFILE_AAC_SSR\ , FF_PROFILE_AAC_LTP\ , FF_PROFILE_AAC_HE\ , FF_PROFILE_AAC_HE_V2\ , FF_PROFILE_AAC_LD\ , FF_PROFILE_AAC_ELD\ , FF_PROFILE_MPEG2_AAC_LOW\ , FF_PROFILE_MPEG2_AAC_HE\ , FF_PROFILE_DTS\ , FF_PROFILE_DTS_ES\ , FF_PROFILE_DTS_96_24\ , FF_PROFILE_DTS_HD_HRA\ , FF_PROFILE_DTS_HD_MA\ , FF_PROFILE_MPEG2_422\ , FF_PROFILE_MPEG2_HIGH\ , FF_PROFILE_MPEG2_SS\ , FF_PROFILE_MPEG2_SNR_SCALABLE\ , FF_PROFILE_MPEG2_MAIN\ , FF_PROFILE_MPEG2_SIMPLE\ , FF_PROFILE_H264_CONSTRAINED\ , FF_PROFILE_H264_INTRA\ , FF_PROFILE_H264_BASELINE\ , FF_PROFILE_H264_CONSTRAINED_BASELINE\ , FF_PROFILE_H264_MAIN\ , FF_PROFILE_H264_EXTENDED\ , FF_PROFILE_H264_HIGH\ , FF_PROFILE_H264_HIGH_10\ , FF_PROFILE_H264_HIGH_10_INTRA\ , FF_PROFILE_H264_HIGH_422\ , FF_PROFILE_H264_HIGH_422_INTRA\ , FF_PROFILE_H264_HIGH_444\ , FF_PROFILE_H264_HIGH_444_PREDICTIVE\ , FF_PROFILE_H264_HIGH_444_INTRA\ , FF_PROFILE_H264_CAVLC_444\ , FF_PROFILE_VC1_SIMPLE\ , FF_PROFILE_VC1_MAIN\ , FF_PROFILE_VC1_COMPLEX\ , FF_PROFILE_VC1_ADVANCED\ , FF_PROFILE_MPEG4_SIMPLE\ , FF_PROFILE_MPEG4_SIMPLE_SCALABLE\ , FF_PROFILE_MPEG4_CORE\ , FF_PROFILE_MPEG4_MAIN\ , FF_PROFILE_MPEG4_N_BIT\ , FF_PROFILE_MPEG4_SCALABLE_TEXTURE\ , FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION\ , FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE\ , FF_PROFILE_MPEG4_HYBRID\ , FF_PROFILE_MPEG4_ADVANCED_REAL_TIME\ , FF_PROFILE_MPEG4_CORE_SCALABLE\ , FF_PROFILE_MPEG4_ADVANCED_CODING\ , FF_PROFILE_MPEG4_ADVANCED_CORE\ , FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE\ , FF_PROFILE_MPEG4_SIMPLE_STUDIO\ , FF_PROFILE_MPEG4_ADVANCED_SIMPLE newtype AVIOFlag = AVIOFlag CInt deriving (Eq, Storable) #enum AVIOFlag, AVIOFlag \ , AVIO_FLAG_READ\ , AVIO_FLAG_WRITE\ , AVIO_FLAG_READ_WRITE\ , AVIO_FLAG_NONBLOCK\ , AVIO_FLAG_DIRECT newtype AVRoundMode = AVRoundMode CInt deriving (Eq, Storable) #enum AVRoundMode, AVRoundMode \ , AV_ROUND_ZERO\ , AV_ROUND_INF\ , AV_ROUND_DOWN\ , AV_ROUND_UP\ , AV_ROUND_NEAR_INF\ , AV_ROUND_PASS_MINMAX newtype CodecFlag = CodecFlag CInt deriving (Eq, Bits, Storable) #enum CodecFlag, CodecFlag \ , CODEC_FLAG_UNALIGNED\ , CODEC_FLAG_QSCALE\ , CODEC_FLAG_4MV\ , CODEC_FLAG_OUTPUT_CORRUPT\ , CODEC_FLAG_QPEL\ , CODEC_FLAG_GMC\ , CODEC_FLAG_MV0\ , CODEC_FLAG_INPUT_PRESERVED\ , CODEC_FLAG_PASS1\ , CODEC_FLAG_PASS2\ , CODEC_FLAG_GRAY\ , CODEC_FLAG_EMU_EDGE\ , CODEC_FLAG_PSNR\ , CODEC_FLAG_TRUNCATED\ , CODEC_FLAG_NORMALIZE_AQP\ , CODEC_FLAG_INTERLACED_DCT\ , CODEC_FLAG_LOW_DELAY\ , CODEC_FLAG_GLOBAL_HEADER\ , CODEC_FLAG_BITEXACT\ , CODEC_FLAG_AC_PRED\ , CODEC_FLAG_LOOP_FILTER\ , CODEC_FLAG_INTERLACED_ME\ , CODEC_FLAG_CLOSED_GOP newtype FormatFlag = FormatFlag CInt deriving (Eq, Bits, Storable) #enum FormatFlag, FormatFlag \ , AVFMT_NOFILE\ , AVFMT_NEEDNUMBER\ , AVFMT_RAWPICTURE\ , AVFMT_GLOBALHEADER\ , AVFMT_NOTIMESTAMPS\ , AVFMT_VARIABLE_FPS\ , AVFMT_NODIMENSIONS\ , AVFMT_NOSTREAMS\ , AVFMT_ALLOW_FLUSH\ , AVFMT_TS_NONSTRICT newtype PacketFlag = PacketFlag CInt deriving (Eq, Bits, Storable) #enum PacketFlag, PacketFlag \ , AV_PKT_FLAG_KEY\ , AV_PKT_FLAG_CORRUPT