-- GENERATED by C->Haskell Compiler, version 0.28.8 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "src/Codec/Avif/FFI.chs" #-}
{-# LANGUAGE DeriveDataTypeable #-}

module Codec.Avif.FFI ( avifImageCreate
                      , avifImageCreateEmpty
                      , avifImageDestroy
                      , avifEncoderCreate
                      , avifEncoderDestroy
                      , avifEncoderWrite
                      , avifDecoderCreate
                      , avifDecoderDestroy
                      , avifDecoderReadMemory
                      , avifRGBImageSetDefaults
                      , avifRGBImagePixelSize
                      , avifImageRGBToYUV
                      , avifImageYUVToRGB
                      , avifRGBImageAllocatePixels
                      , avifRGBImageFreePixels
                      , AvifPixelFormat (..)
                      , AvifResult (..)
                      ) where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.ForeignPtr as C2HSImp
import qualified Foreign.Ptr as C2HSImp



import Control.Exception (Exception)
import Data.Coerce (coerce)
import Data.Typeable (Typeable)
import Foreign.C.Types (CInt, CSize)
import Foreign.Ptr (castPtr, Ptr)



type UInt8 = (C2HSImp.CUChar); type UInt32 = (C2HSImp.CUInt)
{-# LINE 30 "src/Codec/Avif/FFI.chs" #-}


data AvifPixelFormat = AvifPixelFormatNone
                     | AvifPixelFormatYuv444
                     | AvifPixelFormatYuv422
                     | AvifPixelFormatYuv420
                     | AvifPixelFormatYuv400
                     | AvifPixelFormatCount
instance Enum AvifPixelFormat where
  succ AvifPixelFormatNone = AvifPixelFormatYuv444
  succ AvifPixelFormatYuv444 = AvifPixelFormatYuv422
  succ AvifPixelFormatYuv422 = AvifPixelFormatYuv420
  succ AvifPixelFormatYuv420 = AvifPixelFormatYuv400
  succ AvifPixelFormatYuv400 = AvifPixelFormatCount
  succ AvifPixelFormatCount = error "AvifPixelFormat.succ: AvifPixelFormatCount has no successor"

  pred AvifPixelFormatYuv444 = AvifPixelFormatNone
  pred AvifPixelFormatYuv422 = AvifPixelFormatYuv444
  pred AvifPixelFormatYuv420 = AvifPixelFormatYuv422
  pred AvifPixelFormatYuv400 = AvifPixelFormatYuv420
  pred AvifPixelFormatCount = AvifPixelFormatYuv400
  pred AvifPixelFormatNone = error "AvifPixelFormat.pred: AvifPixelFormatNone has no predecessor"

  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []

  enumFrom from = enumFromTo from AvifPixelFormatCount

  fromEnum AvifPixelFormatNone = 0
  fromEnum AvifPixelFormatYuv444 = 1
  fromEnum AvifPixelFormatYuv422 = 2
  fromEnum AvifPixelFormatYuv420 = 3
  fromEnum AvifPixelFormatYuv400 = 4
  fromEnum AvifPixelFormatCount = 5

  toEnum 0 = AvifPixelFormatNone
  toEnum 1 = AvifPixelFormatYuv444
  toEnum 2 = AvifPixelFormatYuv422
  toEnum 3 = AvifPixelFormatYuv420
  toEnum 4 = AvifPixelFormatYuv400
  toEnum 5 = AvifPixelFormatCount
  toEnum unmatched = error ("AvifPixelFormat.toEnum: Cannot match " ++ show unmatched)

{-# LINE 32 "src/Codec/Avif/FFI.chs" #-}

data AvifResult = AvifResultOk
                | AvifResultUnknownError
                | AvifResultInvalidFtyp
                | AvifResultNoContent
                | AvifResultNoYuvFormatSelected
                | AvifResultReformatFailed
                | AvifResultUnsupportedDepth
                | AvifResultEncodeColorFailed
                | AvifResultEncodeAlphaFailed
                | AvifResultBmffParseFailed
                | AvifResultNoAv1ItemsFound
                | AvifResultDecodeColorFailed
                | AvifResultDecodeAlphaFailed
                | AvifResultColorAlphaSizeMismatch
                | AvifResultIspeSizeMismatch
                | AvifResultNoCodecAvailable
                | AvifResultNoImagesRemaining
                | AvifResultInvalidExifPayload
                | AvifResultInvalidImageGrid
                | AvifResultInvalidCodecSpecificOption
                | AvifResultTruncatedData
                | AvifResultIoNotSet
                | AvifResultIoError
                | AvifResultWaitingOnIo
                | AvifResultInvalidArgument
                | AvifResultNotImplemented
                | AvifResultOutOfMemory
                | AvifResultCannotChangeSetting
                | AvifResultIncompatibleImage
  deriving (Eq,Show,Typeable)
instance Enum AvifResult where
  succ AvifResultOk = AvifResultUnknownError
  succ AvifResultUnknownError = AvifResultInvalidFtyp
  succ AvifResultInvalidFtyp = AvifResultNoContent
  succ AvifResultNoContent = AvifResultNoYuvFormatSelected
  succ AvifResultNoYuvFormatSelected = AvifResultReformatFailed
  succ AvifResultReformatFailed = AvifResultUnsupportedDepth
  succ AvifResultUnsupportedDepth = AvifResultEncodeColorFailed
  succ AvifResultEncodeColorFailed = AvifResultEncodeAlphaFailed
  succ AvifResultEncodeAlphaFailed = AvifResultBmffParseFailed
  succ AvifResultBmffParseFailed = AvifResultNoAv1ItemsFound
  succ AvifResultNoAv1ItemsFound = AvifResultDecodeColorFailed
  succ AvifResultDecodeColorFailed = AvifResultDecodeAlphaFailed
  succ AvifResultDecodeAlphaFailed = AvifResultColorAlphaSizeMismatch
  succ AvifResultColorAlphaSizeMismatch = AvifResultIspeSizeMismatch
  succ AvifResultIspeSizeMismatch = AvifResultNoCodecAvailable
  succ AvifResultNoCodecAvailable = AvifResultNoImagesRemaining
  succ AvifResultNoImagesRemaining = AvifResultInvalidExifPayload
  succ AvifResultInvalidExifPayload = AvifResultInvalidImageGrid
  succ AvifResultInvalidImageGrid = AvifResultInvalidCodecSpecificOption
  succ AvifResultInvalidCodecSpecificOption = AvifResultTruncatedData
  succ AvifResultTruncatedData = AvifResultIoNotSet
  succ AvifResultIoNotSet = AvifResultIoError
  succ AvifResultIoError = AvifResultWaitingOnIo
  succ AvifResultWaitingOnIo = AvifResultInvalidArgument
  succ AvifResultInvalidArgument = AvifResultNotImplemented
  succ AvifResultNotImplemented = AvifResultOutOfMemory
  succ AvifResultOutOfMemory = AvifResultCannotChangeSetting
  succ AvifResultCannotChangeSetting = AvifResultIncompatibleImage
  succ AvifResultIncompatibleImage = error "AvifResult.succ: AvifResultIncompatibleImage has no successor"

  pred :: AvifResult -> AvifResult
pred AvifResult
AvifResultUnknownError = AvifResult
AvifResultOk
  pred AvifResultInvalidFtyp = AvifResultUnknownError
  pred AvifResultNoContent = AvifResultInvalidFtyp
  pred AvifResult
AvifResultNoYuvFormatSelected = AvifResult
AvifResultNoContent
  pred AvifResultReformatFailed = AvifResultNoYuvFormatSelected
  pred AvifResultUnsupportedDepth = AvifResultReformatFailed
  pred AvifResult
AvifResultEncodeColorFailed = AvifResult
AvifResultUnsupportedDepth
  pred AvifResultEncodeAlphaFailed = AvifResultEncodeColorFailed
  pred AvifResultBmffParseFailed = AvifResultEncodeAlphaFailed
  pred AvifResult
AvifResultNoAv1ItemsFound = AvifResult
AvifResultBmffParseFailed
  pred AvifResultDecodeColorFailed = AvifResultNoAv1ItemsFound
  pred AvifResult
AvifResultDecodeAlphaFailed = AvifResult
AvifResultDecodeColorFailed
  pred AvifResult
AvifResultColorAlphaSizeMismatch = AvifResult
AvifResultDecodeAlphaFailed
  pred AvifResult
AvifResultIspeSizeMismatch = AvifResult
AvifResultColorAlphaSizeMismatch
  pred AvifResult
AvifResultNoCodecAvailable = AvifResult
AvifResultIspeSizeMismatch
  pred AvifResult
AvifResultNoImagesRemaining = AvifResult
AvifResultNoCodecAvailable
  pred AvifResult
AvifResultInvalidExifPayload = AvifResult
AvifResultNoImagesRemaining
  pred AvifResult
AvifResultInvalidImageGrid = AvifResult
AvifResultInvalidExifPayload
  pred AvifResult
AvifResultInvalidCodecSpecificOption = AvifResult
AvifResultInvalidImageGrid
  pred AvifResult
AvifResultTruncatedData = AvifResult
AvifResultInvalidCodecSpecificOption
  pred AvifResult
AvifResultIoNotSet = AvifResult
AvifResultTruncatedData
  pred AvifResult
AvifResultIoError = AvifResult
AvifResultIoNotSet
  pred AvifResult
AvifResultWaitingOnIo = AvifResult
AvifResultIoError
  pred AvifResult
AvifResultInvalidArgument = AvifResult
AvifResultWaitingOnIo
  pred AvifResult
AvifResultNotImplemented = AvifResult
AvifResultInvalidArgument
  pred AvifResult
AvifResultOutOfMemory = AvifResult
AvifResultNotImplemented
  pred AvifResult
AvifResultCannotChangeSetting = AvifResult
AvifResultOutOfMemory
  pred AvifResult
AvifResultIncompatibleImage = AvifResult
AvifResultCannotChangeSetting
  pred AvifResult
AvifResultOk = [Char] -> AvifResult
forall a. HasCallStack => [Char] -> a
error [Char]
"AvifResult.pred: AvifResultOk has no predecessor"

  enumFromTo :: AvifResult -> AvifResult -> [AvifResult]
enumFromTo AvifResult
from AvifResult
to = AvifResult -> [AvifResult]
forall {t}. Enum t => t -> [t]
go AvifResult
from
    where
      end :: Int
end = AvifResult -> Int
forall a. Enum a => a -> Int
fromEnum AvifResult
to
      go :: t -> [t]
go t
v = case Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (t -> Int
forall a. Enum a => a -> Int
fromEnum t
v) Int
end of
                 Ordering
LT -> t
v t -> [t] -> [t]
forall a. a -> [a] -> [a]
: t -> [t]
go (t -> t
forall a. Enum a => a -> a
succ t
v)
                 Ordering
EQ -> [t
v]
                 Ordering
GT -> []

  enumFrom :: AvifResult -> [AvifResult]
enumFrom AvifResult
from = AvifResult -> AvifResult -> [AvifResult]
forall a. Enum a => a -> a -> [a]
enumFromTo AvifResult
from AvifResult
AvifResultIncompatibleImage

  fromEnum :: AvifResult -> Int
fromEnum AvifResult
AvifResultOk = Int
0
  fromEnum AvifResult
AvifResultUnknownError = Int
1
  fromEnum AvifResult
AvifResultInvalidFtyp = Int
2
  fromEnum AvifResult
AvifResultNoContent = Int
3
  fromEnum AvifResult
AvifResultNoYuvFormatSelected = Int
4
  fromEnum AvifResult
AvifResultReformatFailed = Int
5
  fromEnum AvifResult
AvifResultUnsupportedDepth = Int
6
  fromEnum AvifResult
AvifResultEncodeColorFailed = Int
7
  fromEnum AvifResult
AvifResultEncodeAlphaFailed = Int
8
  fromEnum AvifResult
AvifResultBmffParseFailed = Int
9
  fromEnum AvifResult
AvifResultNoAv1ItemsFound = Int
10
  fromEnum AvifResult
AvifResultDecodeColorFailed = Int
11
  fromEnum AvifResult
AvifResultDecodeAlphaFailed = Int
12
  fromEnum AvifResult
AvifResultColorAlphaSizeMismatch = Int
13
  fromEnum AvifResult
AvifResultIspeSizeMismatch = Int
14
  fromEnum AvifResult
AvifResultNoCodecAvailable = Int
15
  fromEnum AvifResult
AvifResultNoImagesRemaining = Int
16
  fromEnum AvifResult
AvifResultInvalidExifPayload = Int
17
  fromEnum AvifResult
AvifResultInvalidImageGrid = Int
18
  fromEnum AvifResult
AvifResultInvalidCodecSpecificOption = Int
19
  fromEnum AvifResult
AvifResultTruncatedData = Int
20
  fromEnum AvifResult
AvifResultIoNotSet = Int
21
  fromEnum AvifResult
AvifResultIoError = Int
22
  fromEnum AvifResult
AvifResultWaitingOnIo = Int
23
  fromEnum AvifResult
AvifResultInvalidArgument = Int
24
  fromEnum AvifResult
AvifResultNotImplemented = Int
25
  fromEnum AvifResult
AvifResultOutOfMemory = Int
26
  fromEnum AvifResult
AvifResultCannotChangeSetting = Int
27
  fromEnum AvifResult
AvifResultIncompatibleImage = Int
28

  toEnum :: Int -> AvifResult
toEnum Int
0 = AvifResult
AvifResultOk
  toEnum Int
1 = AvifResult
AvifResultUnknownError
  toEnum Int
2 = AvifResult
AvifResultInvalidFtyp
  toEnum Int
3 = AvifResult
AvifResultNoContent
  toEnum Int
4 = AvifResult
AvifResultNoYuvFormatSelected
  toEnum Int
5 = AvifResult
AvifResultReformatFailed
  toEnum Int
6 = AvifResult
AvifResultUnsupportedDepth
  toEnum Int
7 = AvifResult
AvifResultEncodeColorFailed
  toEnum Int
8 = AvifResult
AvifResultEncodeAlphaFailed
  toEnum Int
9 = AvifResult
AvifResultBmffParseFailed
  toEnum Int
10 = AvifResult
AvifResultNoAv1ItemsFound
  toEnum Int
11 = AvifResult
AvifResultDecodeColorFailed
  toEnum Int
12 = AvifResult
AvifResultDecodeAlphaFailed
  toEnum Int
13 = AvifResult
AvifResultColorAlphaSizeMismatch
  toEnum Int
14 = AvifResult
AvifResultIspeSizeMismatch
  toEnum Int
15 = AvifResult
AvifResultNoCodecAvailable
  toEnum Int
16 = AvifResult
AvifResultNoImagesRemaining
  toEnum Int
17 = AvifResult
AvifResultInvalidExifPayload
  toEnum Int
18 = AvifResult
AvifResultInvalidImageGrid
  toEnum Int
19 = AvifResult
AvifResultInvalidCodecSpecificOption
  toEnum Int
20 = AvifResult
AvifResultTruncatedData
  toEnum Int
21 = AvifResult
AvifResultIoNotSet
  toEnum Int
22 = AvifResult
AvifResultIoError
  toEnum Int
23 = AvifResult
AvifResultWaitingOnIo
  toEnum Int
24 = AvifResult
AvifResultInvalidArgument
  toEnum Int
25 = AvifResult
AvifResultNotImplemented
  toEnum Int
26 = AvifResult
AvifResultOutOfMemory
  toEnum Int
27 = AvifResult
AvifResultCannotChangeSetting
  toEnum Int
28 = AvifResult
AvifResultIncompatibleImage
  toEnum Int
unmatched = [Char] -> AvifResult
forall a. HasCallStack => [Char] -> a
error ([Char]
"AvifResult.toEnum: Cannot match " [Char] -> [Char] -> [Char]
forall a. [a] -> [a] -> [a]
++ Int -> [Char]
forall a. Show a => a -> [Char]
show Int
unmatched)

{-# LINE 33 "src/Codec/Avif/FFI.chs" #-}


instance Exception AvifResult where

type AvifImagePtr = C2HSImp.ForeignPtr (AvifImage)
{-# LINE 37 "src/Codec/Avif/FFI.chs" #-}


data AvifImage; data AvifEncoder; data AvifDecoder; data AvifRwData; data AvifRGBImage

type AvifEncoderPtr = C2HSImp.ForeignPtr (AvifEncoder)
{-# LINE 41 "src/Codec/Avif/FFI.chs" #-}

type AvifDecoderPtr = C2HSImp.ForeignPtr (AvifDecoder)
{-# LINE 42 "src/Codec/Avif/FFI.chs" #-}


avifImageCreate :: (CInt) -> (CInt) -> (CInt) -> (AvifPixelFormat) -> IO ((Ptr AvifImage))
avifImageCreate a1 a2 a3 a4 =
  let {a1' = fromIntegral a1} in 
  let {a2' = fromIntegral a2} in 
  let {a3' = fromIntegral a3} in 
  let {a4' = (fromIntegral . fromEnum) a4} in 
  avifImageCreate'_ a1' a2' a3' a4' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 44 "src/Codec/Avif/FFI.chs" #-}

avifImageCreateEmpty :: IO ((Ptr AvifImage))
avifImageCreateEmpty =
  avifImageCreateEmpty'_ >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 45 "src/Codec/Avif/FFI.chs" #-}


avifEncoderCreate :: IO ((Ptr AvifEncoder))
avifEncoderCreate =
  avifEncoderCreate'_ >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 47 "src/Codec/Avif/FFI.chs" #-}

avifEncoderWrite :: (AvifEncoderPtr) -> (AvifImagePtr) -> (Ptr AvifRwData) -> IO ((AvifResult))
avifEncoderWrite a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  C2HSImp.withForeignPtr a2 $ \a2' -> 
  let {a3' = castPtr a3} in 
  avifEncoderWrite'_ a1' a2' a3' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 48 "src/Codec/Avif/FFI.chs" #-}


avifDecoderCreate :: IO ((Ptr AvifDecoder))
avifDecoderCreate =
  avifDecoderCreate'_ >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 50 "src/Codec/Avif/FFI.chs" #-}

avifDecoderReadMemory :: (AvifDecoderPtr) -> (AvifImagePtr) -> (Ptr UInt8) -> (CSize) -> IO ((AvifResult))
avifDecoderReadMemory a1 a2 a3 a4 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  C2HSImp.withForeignPtr a2 $ \a2' -> 
  let {a3' = castPtr a3} in 
  let {a4' = coerce a4} in 
  avifDecoderReadMemory'_ a1' a2' a3' a4' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 51 "src/Codec/Avif/FFI.chs" #-}


avifRGBImageSetDefaults :: (Ptr AvifRGBImage) -> (AvifImagePtr) -> IO ()
avifRGBImageSetDefaults a1 a2 =
  let {a1' = castPtr a1} in 
  C2HSImp.withForeignPtr a2 $ \a2' -> 
  avifRGBImageSetDefaults'_ a1' a2' >>
  return ()

{-# LINE 53 "src/Codec/Avif/FFI.chs" #-}

avifRGBImagePixelSize :: (Ptr AvifRGBImage) -> IO ((UInt32))
avifRGBImagePixelSize a1 =
  let {a1' = castPtr a1} in 
  avifRGBImagePixelSize'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 54 "src/Codec/Avif/FFI.chs" #-}


avifImageRGBToYUV :: (AvifImagePtr) -> (Ptr AvifRGBImage) -> IO ((AvifResult))
avifImageRGBToYUV a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  avifImageRGBToYUV'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 56 "src/Codec/Avif/FFI.chs" #-}

avifImageYUVToRGB :: (AvifImagePtr) -> (Ptr AvifRGBImage) -> IO ((AvifResult))
avifImageYUVToRGB a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  avifImageYUVToRGB'_ a1' a2' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 57 "src/Codec/Avif/FFI.chs" #-}


avifRGBImageAllocatePixels :: (Ptr AvifRGBImage) -> IO ()
avifRGBImageAllocatePixels a1 =
  let {a1' = castPtr a1} in 
  avifRGBImageAllocatePixels'_ a1' >>
  return ()

{-# LINE 59 "src/Codec/Avif/FFI.chs" #-}

avifRGBImageFreePixels :: (Ptr AvifRGBImage) -> IO ()
avifRGBImageFreePixels a1 =
  let {a1' = castPtr a1} in 
  avifRGBImageFreePixels'_ a1' >>
  return ()

{-# LINE 60 "src/Codec/Avif/FFI.chs" #-}


foreign import ccall "Codec/Avif/FFI.chs.h &avifImageDestroy"
  avifImageDestroy :: C2HSImp.FinalizerPtr ()

foreign import ccall "Codec/Avif/FFI.chs.h &avifEncoderDestroy"
  avifEncoderDestroy :: C2HSImp.FinalizerPtr ()

foreign import ccall "Codec/Avif/FFI.chs.h &avifDecoderDestroy"
  avifDecoderDestroy :: C2HSImp.FinalizerPtr ()

foreign import ccall safe "Codec/Avif/FFI.chs.h avifImageCreate"
  avifImageCreate'_ :: (C2HSImp.CUInt -> (C2HSImp.CUInt -> (C2HSImp.CUInt -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr (AvifImage)))))))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifImageCreateEmpty"
  avifImageCreateEmpty'_ :: (IO (C2HSImp.Ptr (AvifImage)))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifEncoderCreate"
  avifEncoderCreate'_ :: (IO (C2HSImp.Ptr (AvifEncoder)))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifEncoderWrite"
  avifEncoderWrite'_ :: ((C2HSImp.Ptr (AvifEncoder)) -> ((C2HSImp.Ptr (AvifImage)) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifDecoderCreate"
  avifDecoderCreate'_ :: (IO (C2HSImp.Ptr (AvifDecoder)))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifDecoderReadMemory"
  avifDecoderReadMemory'_ :: ((C2HSImp.Ptr (AvifDecoder)) -> ((C2HSImp.Ptr (AvifImage)) -> ((C2HSImp.Ptr C2HSImp.CUChar) -> (C2HSImp.CULong -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifRGBImageSetDefaults"
  avifRGBImageSetDefaults'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr (AvifImage)) -> (IO ())))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifRGBImagePixelSize"
  avifRGBImagePixelSize'_ :: ((C2HSImp.Ptr ()) -> (IO C2HSImp.CUInt))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifImageRGBToYUV"
  avifImageRGBToYUV'_ :: ((C2HSImp.Ptr (AvifImage)) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifImageYUVToRGB"
  avifImageYUVToRGB'_ :: ((C2HSImp.Ptr (AvifImage)) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifRGBImageAllocatePixels"
  avifRGBImageAllocatePixels'_ :: ((C2HSImp.Ptr ()) -> (IO ()))

foreign import ccall safe "Codec/Avif/FFI.chs.h avifRGBImageFreePixels"
  avifRGBImageFreePixels'_ :: ((C2HSImp.Ptr ()) -> (IO ()))