packages feed

ffmpeg-light-0.13.0: src/Codec/FFmpeg/Enums.hsc

{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Codec.FFmpeg.Enums where
import Data.Bits (Bits)
import Foreign.C.Types
import Foreign.Storable (Storable)

#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavutil/avutil.h>
#include <libavutil/pixfmt.h>
#include <libavutil/mathematics.h>
#include <libswscale/swscale.h>
#include <libswresample/swresample.h>
#include "nameCompat.h"

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_NONE\
 , AV_CODEC_ID_MPEG1VIDEO\
 , AV_CODEC_ID_MPEG2VIDEO\
 , AV_CODEC_ID_H261\
 , AV_CODEC_ID_H263\
 , AV_CODEC_ID_RV10\
 , AV_CODEC_ID_RV20\
 , AV_CODEC_ID_MJPEG\
 , AV_CODEC_ID_MJPEGB\
 , AV_CODEC_ID_LJPEG\
 , AV_CODEC_ID_SP5X\
 , AV_CODEC_ID_JPEGLS\
 , AV_CODEC_ID_MPEG4\
 , AV_CODEC_ID_RAWVIDEO\
 , AV_CODEC_ID_MSMPEG4V1\
 , AV_CODEC_ID_MSMPEG4V2\
 , AV_CODEC_ID_MSMPEG4V3\
 , AV_CODEC_ID_WMV1\
 , AV_CODEC_ID_WMV2\
 , AV_CODEC_ID_H263P\
 , AV_CODEC_ID_H263I\
 , AV_CODEC_ID_FLV1\
 , AV_CODEC_ID_SVQ1\
 , AV_CODEC_ID_SVQ3\
 , AV_CODEC_ID_DVVIDEO\
 , AV_CODEC_ID_HUFFYUV\
 , AV_CODEC_ID_CYUV\
 , AV_CODEC_ID_H264\
 , AV_CODEC_ID_INDEO3\
 , AV_CODEC_ID_VP3\
 , AV_CODEC_ID_THEORA\
 , AV_CODEC_ID_ASV1\
 , AV_CODEC_ID_ASV2\
 , AV_CODEC_ID_FFV1\
 , AV_CODEC_ID_4XM\
 , AV_CODEC_ID_VCR1\
 , AV_CODEC_ID_CLJR\
 , AV_CODEC_ID_MDEC\
 , AV_CODEC_ID_ROQ\
 , AV_CODEC_ID_INTERPLAY_VIDEO\
 , AV_CODEC_ID_XAN_WC3\
 , AV_CODEC_ID_XAN_WC4\
 , AV_CODEC_ID_RPZA\
 , AV_CODEC_ID_CINEPAK\
 , AV_CODEC_ID_WS_VQA\
 , AV_CODEC_ID_MSRLE\
 , AV_CODEC_ID_MSVIDEO1\
 , AV_CODEC_ID_IDCIN\
 , AV_CODEC_ID_8BPS\
 , AV_CODEC_ID_SMC\
 , AV_CODEC_ID_FLIC\
 , AV_CODEC_ID_TRUEMOTION1\
 , AV_CODEC_ID_VMDVIDEO\
 , AV_CODEC_ID_MSZH\
 , AV_CODEC_ID_ZLIB\
 , AV_CODEC_ID_QTRLE\
 , AV_CODEC_ID_TSCC\
 , AV_CODEC_ID_ULTI\
 , AV_CODEC_ID_QDRAW\
 , AV_CODEC_ID_VIXL\
 , AV_CODEC_ID_QPEG\
 , AV_CODEC_ID_PNG\
 , AV_CODEC_ID_PPM\
 , AV_CODEC_ID_PBM\
 , AV_CODEC_ID_PGM\
 , AV_CODEC_ID_PGMYUV\
 , AV_CODEC_ID_PAM\
 , AV_CODEC_ID_FFVHUFF\
 , AV_CODEC_ID_RV30\
 , AV_CODEC_ID_RV40\
 , AV_CODEC_ID_VC1\
 , AV_CODEC_ID_WMV3\
 , AV_CODEC_ID_LOCO\
 , AV_CODEC_ID_WNV1\
 , AV_CODEC_ID_AASC\
 , AV_CODEC_ID_INDEO2\
 , AV_CODEC_ID_FRAPS\
 , AV_CODEC_ID_TRUEMOTION2\
 , AV_CODEC_ID_BMP\
 , AV_CODEC_ID_CSCD\
 , AV_CODEC_ID_MMVIDEO\
 , AV_CODEC_ID_ZMBV\
 , AV_CODEC_ID_AVS\
 , AV_CODEC_ID_SMACKVIDEO\
 , AV_CODEC_ID_NUV\
 , AV_CODEC_ID_KMVC\
 , AV_CODEC_ID_FLASHSV\
 , AV_CODEC_ID_CAVS\
 , AV_CODEC_ID_JPEG2000\
 , AV_CODEC_ID_VMNC\
 , AV_CODEC_ID_VP5\
 , AV_CODEC_ID_VP6\
 , AV_CODEC_ID_VP6F\
 , AV_CODEC_ID_TARGA\
 , AV_CODEC_ID_DSICINVIDEO\
 , AV_CODEC_ID_TIERTEXSEQVIDEO\
 , AV_CODEC_ID_TIFF\
 , AV_CODEC_ID_GIF\
 , AV_CODEC_ID_DXA\
 , AV_CODEC_ID_DNXHD\
 , AV_CODEC_ID_THP\
 , AV_CODEC_ID_SGI\
 , AV_CODEC_ID_C93\
 , AV_CODEC_ID_BETHSOFTVID\
 , AV_CODEC_ID_PTX\
 , AV_CODEC_ID_TXD\
 , AV_CODEC_ID_VP6A\
 , AV_CODEC_ID_AMV\
 , AV_CODEC_ID_VB\
 , AV_CODEC_ID_PCX\
 , AV_CODEC_ID_SUNRAST\
 , AV_CODEC_ID_INDEO4\
 , AV_CODEC_ID_INDEO5\
 , AV_CODEC_ID_MIMIC\
 , AV_CODEC_ID_RL2\
 , AV_CODEC_ID_ESCAPE124\
 , AV_CODEC_ID_DIRAC\
 , AV_CODEC_ID_BFI\
 , AV_CODEC_ID_CMV\
 , AV_CODEC_ID_MOTIONPIXELS\
 , AV_CODEC_ID_TGV\
 , AV_CODEC_ID_TGQ\
 , AV_CODEC_ID_TQI\
 , AV_CODEC_ID_AURA\
 , AV_CODEC_ID_AURA2\
 , AV_CODEC_ID_V210X\
 , AV_CODEC_ID_TMV\
 , AV_CODEC_ID_V210\
 , AV_CODEC_ID_DPX\
 , AV_CODEC_ID_MAD\
 , AV_CODEC_ID_FRWU\
 , AV_CODEC_ID_FLASHSV2\
 , AV_CODEC_ID_CDGRAPHICS\
 , AV_CODEC_ID_R210\
 , AV_CODEC_ID_ANM\
 , AV_CODEC_ID_BINKVIDEO\
 , AV_CODEC_ID_IFF_ILBM\
 , AV_CODEC_ID_KGV1\
 , AV_CODEC_ID_YOP\
 , AV_CODEC_ID_VP8\
 , AV_CODEC_ID_PICTOR\
 , AV_CODEC_ID_ANSI\
 , AV_CODEC_ID_A64_MULTI\
 , AV_CODEC_ID_A64_MULTI5\
 , AV_CODEC_ID_R10K\
 , AV_CODEC_ID_MXPEG\
 , AV_CODEC_ID_LAGARITH\
 , AV_CODEC_ID_PRORES\
 , AV_CODEC_ID_JV\
 , AV_CODEC_ID_DFA\
 , AV_CODEC_ID_WMV3IMAGE\
 , AV_CODEC_ID_VC1IMAGE\
 , AV_CODEC_ID_UTVIDEO\
 , AV_CODEC_ID_BMV_VIDEO\
 , AV_CODEC_ID_VBLE\
 , AV_CODEC_ID_DXTORY\
 , AV_CODEC_ID_V410\
 , AV_CODEC_ID_XWD\
 , AV_CODEC_ID_CDXL\
 , AV_CODEC_ID_XBM\
 , AV_CODEC_ID_ZEROCODEC\
 , AV_CODEC_ID_MSS1\
 , AV_CODEC_ID_MSA1\
 , AV_CODEC_ID_TSCC2\
 , AV_CODEC_ID_MTS2\
 , AV_CODEC_ID_CLLC\
 , AV_CODEC_ID_MSS2\
 , AV_CODEC_ID_VP9\
 , AV_CODEC_ID_AIC\
 , AV_CODEC_ID_ESCAPE130\
 , AV_CODEC_ID_G2M\
 , AV_CODEC_ID_WEBP\
 , AV_CODEC_ID_HNM4_VIDEO\
 , AV_CODEC_ID_HEVC\
 , AV_CODEC_ID_MP2\
 , AV_CODEC_ID_MP3\
 , AV_CODEC_ID_AAC\
 , AV_CODEC_ID_AC3\
 , AV_CODEC_ID_DTS\
 , AV_CODEC_ID_VORBIS\
 , AV_CODEC_ID_DVAUDIO\
 , AV_CODEC_ID_WMAV1\
 , AV_CODEC_ID_WMAV2\
 , AV_CODEC_ID_MACE3\
 , AV_CODEC_ID_MACE6\
 , AV_CODEC_ID_VMDAUDIO\
 , AV_CODEC_ID_FLAC\
 , AV_CODEC_ID_MP3ADU\
 , AV_CODEC_ID_MP3ON4\
 , AV_CODEC_ID_SHORTEN\
 , AV_CODEC_ID_ALAC\
 , AV_CODEC_ID_WESTWOOD_SND1\
 , AV_CODEC_ID_GSM\
 , AV_CODEC_ID_QDM2\
 , AV_CODEC_ID_COOK\
 , AV_CODEC_ID_TRUESPEECH\
 , AV_CODEC_ID_TTA\
 , AV_CODEC_ID_SMACKAUDIO\
 , AV_CODEC_ID_QCELP\
 , AV_CODEC_ID_WAVPACK\
 , AV_CODEC_ID_DSICINAUDIO\
 , AV_CODEC_ID_IMC\
 , AV_CODEC_ID_MUSEPACK7\
 , AV_CODEC_ID_MLP\
 , AV_CODEC_ID_GSM_MS\
 , AV_CODEC_ID_ATRAC3\
 , AV_CODEC_ID_APE\
 , AV_CODEC_ID_NELLYMOSER\
 , AV_CODEC_ID_MUSEPACK8\
 , AV_CODEC_ID_SPEEX\
 , AV_CODEC_ID_WMAVOICE\
 , AV_CODEC_ID_WMAPRO\
 , AV_CODEC_ID_WMALOSSLESS\
 , AV_CODEC_ID_ATRAC3P\
 , AV_CODEC_ID_EAC3\
 , AV_CODEC_ID_SIPR\
 , AV_CODEC_ID_MP1\
 , AV_CODEC_ID_TWINVQ\
 , AV_CODEC_ID_TRUEHD\
 , AV_CODEC_ID_MP4ALS\
 , AV_CODEC_ID_ATRAC1\
 , AV_CODEC_ID_BINKAUDIO_RDFT\
 , AV_CODEC_ID_BINKAUDIO_DCT\
 , AV_CODEC_ID_AAC_LATM\
 , AV_CODEC_ID_QDMC\
 , AV_CODEC_ID_CELT\
 , AV_CODEC_ID_G723_1\
 , AV_CODEC_ID_G729\
 , AV_CODEC_ID_8SVX_EXP\
 , AV_CODEC_ID_8SVX_FIB\
 , AV_CODEC_ID_BMV_AUDIO\
 , AV_CODEC_ID_RALF\
 , AV_CODEC_ID_IAC\
 , AV_CODEC_ID_ILBC\
 , AV_CODEC_ID_OPUS\
 , AV_CODEC_ID_COMFORT_NOISE\
 , AV_CODEC_ID_TAK\
 , AV_CODEC_ID_METASOUND\
 , AV_CODEC_ID_PAF_AUDIO\
 , AV_CODEC_ID_ON2AVC\
 , AV_CODEC_ID_DSS_SP\
 , AV_CODEC_ID_FFWAVESYNTH\
 , AV_CODEC_ID_SONIC\
 , AV_CODEC_ID_SONIC_LS\
 , AV_CODEC_ID_EVRC\
 , AV_CODEC_ID_SMV\
 , AV_CODEC_ID_DSD_LSBF\
 , AV_CODEC_ID_DSD_MSBF\
 , AV_CODEC_ID_DSD_LSBF_PLANAR\
 , AV_CODEC_ID_DSD_MSBF_PLANAR\
 , AV_CODEC_ID_4GV


 -- \
 -- , AV_CODEC_ID_INTERPLAY_ACM\
 -- , AV_CODEC_ID_XMA1\
 -- , AV_CODEC_ID_XMA2\
 -- , AV_CODEC_ID_DST


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)
#if LIBAVCODEC_VERSION_MAJOR < 57
#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
#else
#enum CodecFlag, CodecFlag \
 , AV_CODEC_FLAG_UNALIGNED\
 , AV_CODEC_FLAG_QSCALE\
 , AV_CODEC_FLAG_4MV\
 , AV_CODEC_FLAG_OUTPUT_CORRUPT\
 , AV_CODEC_FLAG_QPEL\
 , AV_CODEC_FLAG_PASS1\
 , AV_CODEC_FLAG_PASS2\
 , AV_CODEC_FLAG_LOOP_FILTER\
 , AV_CODEC_FLAG_GRAY\
 , AV_CODEC_FLAG_PSNR\
 , AV_CODEC_FLAG_TRUNCATED\
 , AV_CODEC_FLAG_INTERLACED_DCT\
 , AV_CODEC_FLAG_LOW_DELAY\
 , AV_CODEC_FLAG_GLOBAL_HEADER\
 , AV_CODEC_FLAG_BITEXACT\
 , AV_CODEC_FLAG_AC_PRED\
 , AV_CODEC_FLAG_INTERLACED_ME\
 , AV_CODEC_FLAG_CLOSED_GOP
#endif

newtype FormatFlag = FormatFlag CInt deriving (Eq, Bits, Storable)
#if LIBAVCODEC_VERSION_MAJOR < 57
#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
#else
#enum FormatFlag, FormatFlag \
 , AVFMT_NOFILE\
 , AVFMT_NEEDNUMBER\
 , AVFMT_GLOBALHEADER\
 , AVFMT_NOTIMESTAMPS\
 , AVFMT_VARIABLE_FPS\
 , AVFMT_NODIMENSIONS\
 , AVFMT_NOSTREAMS\
 , AVFMT_NOBINSEARCH\
 , AVFMT_NOGENSEARCH\
 , AVFMT_NO_BYTE_SEEK\
 , AVFMT_ALLOW_FLUSH\
 , AVFMT_TS_NONSTRICT\
 , AVFMT_TS_NEGATIVE\
 , AVFMT_SEEK_TO_PTS
#endif

newtype PacketFlag = PacketFlag CInt deriving (Eq, Bits, Storable)
#enum PacketFlag, PacketFlag \
 , AV_PKT_FLAG_KEY\
 , AV_PKT_FLAG_CORRUPT

newtype LogLevel = LogLevel CInt deriving (Eq, Bits, Storable)
#enum LogLevel, LogLevel \
 , AV_LOG_QUIET\
 , AV_LOG_PANIC\
 , AV_LOG_FATAL\
 , AV_LOG_ERROR\
 , AV_LOG_WARNING\
 , AV_LOG_INFO\
 , AV_LOG_VERBOSE\
 , AV_LOG_DEBUG\
 , AV_LOG_TRACE\
 , AV_LOG_MAX_OFFSET

newtype AVSampleFormat = AVSampleFormat CInt deriving (Eq, Bits, Storable)
#enum AVSampleFormat, AVSampleFormat \
 , AV_SAMPLE_FMT_NONE\
 , AV_SAMPLE_FMT_U8\
 , AV_SAMPLE_FMT_S16\
 , AV_SAMPLE_FMT_S32\
 , AV_SAMPLE_FMT_FLT\
 , AV_SAMPLE_FMT_DBL\
 , AV_SAMPLE_FMT_U8P\
 , AV_SAMPLE_FMT_S16P\
 , AV_SAMPLE_FMT_S32P\
 , AV_SAMPLE_FMT_FLTP\
 , AV_SAMPLE_FMT_DBLP\
 , AV_SAMPLE_FMT_NB

getSampleFormatInt :: AVSampleFormat -> CInt
getSampleFormatInt (AVSampleFormat i) = i