!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          Safe-InferredA four-component vector A three-component vector A two-component vector !Quadrance between two 3D points. None  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~! "#$%&'()*+,-./0123456A7B8C9D:E;F<G=HL>IM?JN@OKPQRSWTXUYVZ[\]^_`abcdefghijklmnopqrstuvwx yz{| }~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneOsizeof the  structure in bytes. Q Convert an  to a  R2Rescale an integer from one time base to another.       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRLMJKFGHIBCDE>?@A:;<=8945670123,-./()*+$%&' !"#     OPNQRW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRNone^<Catch an IOException from an IO action and re-throw it in a  wrapping monad transformer. _Throw an error with a  message. ` Allocate an ' and set its fields to default values. aAAllocate new buffer(s) for audio or video data with the required 2 alignment. Note, for video frames, pixel format, width, and  height5 must be set before calling this function. For audio  frames, sample format,  nb_samples, and channel_layout must be  set. bBytes-per-pixel for an  STUVWXYZ[\]^_`abSTUVWXYZ[\]^_`ab]\[ZYXWVUTS^_`abSTUVWXYZ[\]^_`abNonec,A common interface required of arguments to o (a higher  level wrapper for the S function from  libswscale). lswsInit srcInfo dstInfo alg initializations an  to  scale and convert from srcInfo to dstInfo using the algorithm  alg when scaling. m:Obtain a context for converting the source to destination E format. If the given context is already configured for the required C conversion, it is returned. Otherwise, the given context is freed 0 and a new, configured context is returned. See l for a  description of the arguments. n<Supplies a continuation with all components provided by the  c class. oswsScale ctx src dst scales the entire src image to dst " using the previously initialized ctx. cdefghijklmno cdefghijklmno ghijklmcdefno cdefghijklmnoNonep8Minimal parameters describing the desired video output. uIf ", then the codec is inferred from  the output file name. If , then this codec  is manually chosen. vIf %, automatically chose a pixel format  based on the output codec. If  , force the  selected pixel format. w.Encoder-specific hints. For h264, the default  preset is "medium" (other options are  "fast", "slow", etc.). For the GIF codec,  setting this to "dither" will enable dithering - during the palettization process. This will / improve image quality, but result in a larger  file. :Use default parameters for a video of the given width and 1 height, forcing the choice of the h264 encoder. :Use default parameters for a video of the given width and B height. The output format is determined by the output file name. ADetermine if the bitwise intersection of two values is non-zero. BFind and initialize the requested encoder, and add a video stream  to the output container. ?Initialize a temporary YUV frame of the same resolution as the E output video stream. We well convert RGB frames using this frame as 0 a destination before encoding the video frame. >Allocate an output context inferring the codec from the given  file name. !Open the given file for writing. Close an open IO context. Returns  if the  was updated with new output  data;  otherwise. @Allocate the stream private data and write the stream header to  an output media file. (Write a packet to an output media file. >Write the stream trailer to an output media file and free the = private data. May only be called after a successful call to  . @Quantize RGB24 pixels to the systematic RGB8 color palette. The B image data has space for a palette appended to be compliant with  av_image_fill_arrays's expectations. This is slow. 0High quality dithered, median cut palette using . The 9 result is packed such that the BGRA palette is laid out 3 contiguously following the palettized image data. <Open a target file for writing a video stream. The function B returned may be used to write image frames (specified by a pixel E format, resolution, and pixel data). If this function is applied to  ., then the output stream is closed. Note that   must3 be provided to properly terminate video encoding. >Support for source images that are of a different size to the D output resolution is limited to non-palettized destination formats ! (i.e. those that are handled by  libswscaler). Practically, this D means that animated gif output only works if the source images are  of the target resolution. <Open a target file for writing a video stream. The function E returned may be used to write RGB images of the resolution given by  the provided p" (i.e. the same resolution as the / output video). If this function is applied to  , then the $ output stream is closed. Note that  must be provided to $ properly terminate video encoding. *pqrstuvwxyz{|}~*pqrstuvwxyz{|}~*~}|{zyxpqrstuvw#pqrstuvwxyz{|}~None Open an input media file. AVFrame is a superset of  AVPicture, so we can upcast an   to an . Find a codec given by name. @Read packets of a media file to get stream information. This is 7 useful for file formats with no headers such as MPEG. "Searches for a video stream in an J . If one is B found, returns the index of the stream in the container, and its  associated 8 and . AFind a registered decoder with a codec ID matching that found in  the given 8. Initialize the given 8 to use the given  .. **NOTE**: This function is not thread safe! #Return the next frame of a stream. Read frames of the given  from a video stream. 'Read RGB frames with the result in the  transformer. 2 frameReaderT = fmap (first MaybeT) . frameReader &Read time stamped frames of the given  from a > video stream. Time is given in seconds from the start of the  stream. 4Read time stamped RGB frames with the result in the   transformer. 2 frameReaderT = fmap (first MaybeT) . frameReader ?Construct an action that gets the next available frame, and an D action to release all resources associated with this video stream. None  Mapping of  JuicyPixels& pixel types to FFmpeg pixel formats.  Convert an  to a  with the result in the   transformer.  toJuicyT = MaybeT . toJuicy  Convert an  to a .  Convert an  to an . Save an 0 to a PNG file on disk assuming the frame could  be converted to a  using . "Bytes-per-pixel for a JuicyPixels  type. !Read frames from a video stream. ?Read time stamped frames from a video stream. Time is given in ' seconds from the start of the stream. AOpen a target file for writing a video stream. When the returned  function is applied to $, the output stream is closed. Note  that  must( be provided when finishing in order to $ properly terminate video encoding. >Support for source images that are of a different size to the D output resolution is limited to non-palettized destination formats ! (i.e. those that are handled by  libswscaler). Practically, this @ means that animated gif output is only supported if the source & images are of the target resolution.     NoneFFmpeg' s built-in format debug utlity. 4Print the short name, long name, and ID of a codec. Print various codec settings. -Print all pixel formats supported by a given . Get the name of a codec.  None8Initialize FFmpeg by registering all known codecs. This must 0 be called before using other FFmpeg functions. Y  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRpqrstuvw pqrstuvw       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*++,-./0123456789:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXXYZ[\]^_``abcdefghijklmnopqrstuvwxyz{|}~G          ffmpeg-light-0.7Codec.FFmpeg.Internal.LinearCodec.FFmpeg.EnumsCodec.FFmpeg.TypesCodec.FFmpeg.CommonCodec.FFmpeg.ScalerCodec.FFmpeg.EncodeCodec.FFmpeg.DecodeCodec.FFmpeg.JuicyCodec.FFmpeg.Internal.Debug Codec.FFmpegV4V3V2qd PacketFlag FormatFlag CodecFlag AVRoundModeAVIOFlag FFProfile SwsAlgorithm AVCodecID AVPixelFormat AVMediaTypeavmediaTypeVideoavmediaTypeAudioavmediaTypeDataavmediaTypeSubtitleavmediaTypeAttachment avmediaTypeNb avPixFmtNone avPixFmtRgb24 avPixFmtRgba avPixFmtY400a avPixFmtRgb32avPixFmtRgb321 avPixFmtBgr32avPixFmtBgr321 avPixFmtRgb8 avPixFmtBgr8avPixFmtRgb4ByteavPixFmtBgr4Byte avPixFmtGray8avPixFmtGray16avPixFmtGray8a avPixFmtPal8avPixFmtRgb565avPixFmtRgb555avPixFmtYuv420pavPixFmtYuv420p9avPixFmtYuv420p10avPixFmtYuv420p12avPixFmtYuv422p12avPixFmtYuv444p12avPixFmtYuv420p14avPixFmtYuv422p14avPixFmtYuv444p14avPixFmtYuv420p16avPixFmtYuv422p16avPixFmtYuv444p16avPixFmtRgba64avPixFmtBgra64 avCodecIdH264 avCodecIdHevcavCodecIdTheora avCodecIdVc1avCodecIdMpeg4avCodecIdMpeg2videoavCodecIdRawvideo avCodecIdGif avCodecIdAac avCodecIdMp3 avCodecIdDtsswsFastBilinear swsBilinear swsBicubicswsXswsPointswsArea swsBicublinswsGaussswsSinc swsLanczos swsSplineffProfileAacMainffProfileAacLowffProfileAacSsrffProfileAacLtpffProfileAacHeffProfileAacHeV2ffProfileAacLdffProfileAacEldffProfileMpeg2AacLowffProfileMpeg2AacHe ffProfileDtsffProfileDtsEsffProfileDts9624ffProfileDtsHdHraffProfileDtsHdMaffProfileMpeg2422ffProfileMpeg2HighffProfileMpeg2SsffProfileMpeg2SnrScalableffProfileMpeg2MainffProfileMpeg2SimpleffProfileH264ConstrainedffProfileH264IntraffProfileH264Baseline ffProfileH264ConstrainedBaselineffProfileH264MainffProfileH264ExtendedffProfileH264HighffProfileH264High10ffProfileH264High10IntraffProfileH264High422ffProfileH264High422IntraffProfileH264High444ffProfileH264High444PredictiveffProfileH264High444IntraffProfileH264Cavlc444ffProfileVc1SimpleffProfileVc1MainffProfileVc1ComplexffProfileVc1AdvancedffProfileMpeg4SimpleffProfileMpeg4SimpleScalableffProfileMpeg4CoreffProfileMpeg4MainffProfileMpeg4NBitffProfileMpeg4ScalableTexture!ffProfileMpeg4SimpleFaceAnimation"ffProfileMpeg4BasicAnimatedTextureffProfileMpeg4HybridffProfileMpeg4AdvancedRealTimeffProfileMpeg4CoreScalableffProfileMpeg4AdvancedCodingffProfileMpeg4AdvancedCore%ffProfileMpeg4AdvancedScalableTextureffProfileMpeg4SimpleStudioffProfileMpeg4AdvancedSimple avioFlagRead avioFlagWriteavioFlagReadWriteavioFlagNonblockavioFlagDirect avRoundZero avRoundInf avRoundDown avRoundUpavRoundNearInfavRoundPassMinmaxcodecFlagUnalignedcodecFlagQscale codecFlag4mvcodecFlagOutputCorrupt codecFlagQpel codecFlagGmc codecFlagMv0codecFlagInputPreservedcodecFlagPass1codecFlagPass2 codecFlagGraycodecFlagEmuEdge codecFlagPsnrcodecFlagTruncatedcodecFlagNormalizeAqpcodecFlagInterlacedDctcodecFlagLowDelaycodecFlagGlobalHeadercodecFlagBitexactcodecFlagAcPredcodecFlagLoopFiltercodecFlagInterlacedMecodecFlagClosedGop avfmtNofileavfmtNeednumberavfmtRawpictureavfmtGlobalheaderavfmtNotimestampsavfmtVariableFpsavfmtNodimensionsavfmtNostreamsavfmtAllowFlushavfmtTsNonstrict avPktFlagKeyavPktFlagCorruptAVFracfracValfracNumfracDen AVRational numerator denomenatorHasDtsgetDtssetDtshasDtsHasPacketFlagsgetPacketFlagssetPacketFlagshasPacketFlagsHasSizegetSizesetSizehasSizeHasDatagetDatasetDatahasDataAVPacket AVIOContextHasVideoCodecIDgetVideoCodecIDsetVideoCodecIDhasVideoCodecIDHasFormatFlagsgetFormatFlagssetFormatFlagshasFormatFlagsAVOutputFormat SwsContext AVPicture HasLineSize getLineSize setLineSize hasLineSize HasPktPts getPktPts setPktPts hasPktPtsHasPtsgetPtssetPtshasPtsAVFrame AVDictionaryHasPixelFormatsgetPixelFormatssetPixelFormatshasPixelFormatsHasNamegetNamesetNamehasName HasLongName getLongName setLongName hasLongNameAVCodecHasStreamIndexgetStreamIndexsetStreamIndexhasStreamIndexHasCodecContextgetCodecContextsetCodecContexthasCodecContextHasIdgetIdsetIdhasIdAVStream HasPrivData getPrivData setPrivData hasPrivData HasCodecID getCodecID setCodecID hasCodecID HasCodecFlags getCodecFlags setCodecFlags hasCodecFlagsHasPixelFormatgetPixelFormatsetPixelFormathasPixelFormat HasGopSize getGopSize setGopSize hasGopSize HasTimeBase getTimeBase setTimeBase hasTimeBase HasHeight getHeight setHeight hasHeightHasWidthgetWidthsetWidthhasWidth HasBitRate getBitRate setBitRate hasBitRateAVCodecContext HasIOContext getIOContext setIOContext hasIOContextHasOutputFormatgetOutputFormatsetOutputFormathasOutputFormat HasStreams getStreams setStreams hasStreams HasNumStreams getNumStreams setNumStreams hasNumStreamsAVFormatContextHasPtrgetPtrav_rescale_rnd packetSize pictureSizeav_q2d av_rescale_q sws_scalesws_getCachedContextav_free av_malloc free_packet init_packet codec_close av_frame_freeav_frame_get_bufferav_frame_alloc open_codec wrapIOErrorerrMsgframe_alloc_checkframe_get_buffer_check avPixelStride SwsCompatible swsPlanes swsStrides sliceHeight ImageInfoimgWidth imgHeight imgFormatswsInitswsResetwithSwsswsScaleEncodingParamsepWidthepHeightepFpsepCodec epPixelFormatepPresetav_image_fill_linesizesav_image_fill_arraysavformat_free_context avio_close avio_openav_write_traileravformat_write_headerav_interleaved_write_frameav_write_frameavformat_new_streamavformat_alloc_output_contextav_guess_formatav_freepav_image_allocavcodec_encode_video2 av_opt_setavcodec_find_encoder_by_nameavcodec_find_encoder defaultH264 defaultParams checkFlag initStream initTempFrameallocOutputContextavio_open_checkavio_close_checkencode_video_checkwrite_header_checkwrite_frame_checkwrite_trailer_check palettizeRGB8palettizeJuicy frameWriterframeWriterRgb close_input decode_video av_read_frameavpicture_get_sizeavcodec_get_frame_defaultsavcodec_find_decoder_by_nameavcodec_find_decoderav_find_best_streamavformat_find_stream_infoavformat_open_input openInputframeAsPicture findDecoder checkStreamsfindVideoStream getDecoder openCodecread_frame_check frameReader frameReaderTframeReaderTimeframeReaderTimeT prepareReaderJuicyPixelFormatjuicyPixelFormattoJuicyTtoJuicy toJuicyImage saveJuicyjuicyPixelStride imageReaderimageReaderTime imageWriteravcodec_get_nameav_get_pix_fmt_nameav_dump_format debugCodecdebugCodecContext pixFmtNamedebugPixelFormatsdebugCodecName initFFmpeg $fStorableV4 $fFunctorV4 $fStorableV3 $fFunctorV3$fShowAVPixelFormatghc-prim GHC.TypesDouble$fStorableAVFrac$fStorableAVRational$fHasDtsAVPacket$fHasPtsAVPacket$fHasStreamIndexAVPacket$fHasPacketFlagsAVPacket$fHasSizeAVPacket$fHasDataAVPacket$fHasVideoCodecIDAVOutputFormat$fHasFormatFlagsAVOutputFormat$fHasDataAVPicture$fHasDataAVFrame$fHasPktPtsAVFrame$fHasPtsAVFrame$fHasLineSizeAVFrame$fHasHeightAVFrame$fHasWidthAVFrame$fHasPixelFormatAVFrame$fHasPixelFormatsAVCodec$fHasCodecIDAVCodec$fHasNameAVCodec$fHasLongNameAVCodec$fHasStreamIndexAVStream$fHasCodecContextAVStream$fHasTimeBaseAVStream$fHasIdAVStream$fHasPrivDataAVCodecContext$fHasCodecIDAVCodecContext$fHasCodecFlagsAVCodecContext$fHasPixelFormatAVCodecContext$fHasGopSizeAVCodecContext$fHasTimeBaseAVCodecContext$fHasHeightAVCodecContext$fHasWidthAVCodecContext$fHasBitRateAVCodecContext$fHasIOContextAVFormatContext $fHasOutputFormatAVFormatContext$fHasStreamsAVFormatContext$fHasNumStreamsAVFormatContext $fHasPtrPtrbaseGHC.BaseString$fSwsCompatible(,,)$fSwsCompatibleImage$fSwsCompatibleAVFrame Data.MaybeNothingJustTrueFalseJuicyPixels-3.1.5Codec.Picture.ColorQuant palettizetransformers-0.3.0.0Control.Monad.Trans.MaybeMaybeTCodec.Picture.Types DynamicImageImagePixel$fJuicyPixelFormatPixelRGBA8$fJuicyPixelFormatPixelRGB8$fJuicyPixelFormatWord8av_register_all