5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          Safe-InferredMA four-component vectorA three-component vectorA two-component vector Quadrance between two 3D points.     NoneB  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#%$&'()*+,-./0123456789:;F<G=H>I?J@KALBMQCNRDOSETPUVWX\Y]Z^[_`abcdefghijklmnopqrstuvwxyz{|}~    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None24BUsizeof the  structure in bytes.W Convert an  to a X1Rescale an integer from one time base to another.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXRSPQLMNOHIJKDEFG@ABC~}|>?:;<={67892345./01*+,-&'()"#$% !zyxwvuts  rqpo   nmlkjihgfedcba`_^]\[UVZTWXYW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None3XCatch an IOException from an IO action and re-throw it in a wrapping monad transformer. Allocate an & and set its fields to default values.sAllocate new buffer(s) for audio or video data with the required alignment. Note, for video frames, pixel format, width, and heightE must be set before calling this function. For audio frames, sample format,  nb_samples, and channel_layout must be set.Bytes-per-pixel for an None234M,A common interface required of arguments to " (a higher level wrapper for the  function from  libswscale).swsInit srcInfo dstInfo alg initializations an  to scale and convert from srcInfo to dstInfo using the algorithm alg when scaling.Obtain a context for converting the source to destination format. If the given context is already configured for the required conversion, it is returned. Otherwise, the given context is freed and a new, configured context is returned. See % for a description of the arguments.=Supplies a continuation with all components provided by the  class.swsScale ctx src dst scales the entire src image to dst# using the previously initialized ctx.  None7Minimal parameters describing the desired video output.If <, then the codec is inferred from the output file name. If &, then this codec is manually chosen.If D, automatically chose a pixel format based on the output codec. If #, force the selected pixel format.9Encoder-specific hints. For h264, the default preset is "medium" (other options are "fast", "slow"-, etc.). For the GIF codec, setting this to "dither"y will enable dithering during the palettization process. This will improve image quality, but result in a larger file.jUse default parameters for a video of the given width and height, forcing the choice of the h264 encoder.{Use default parameters for a video of the given width and height. The output format is determined by the output file name.@Determine if the bitwise intersection of two values is non-zero.[Find 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 output video stream. We well convert RGB frames using this frame as a destination before encoding the video frame.IAllocate 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.VAllocate 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 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 q. The result is packed such that the BGRA palette is laid out contiguously following the palettized image data.Open a target file for writing a video stream. The function returned may be used to write image frames (specified by a pixel format, resolution, and pixel data). If this function is applied to ., then the output stream is closed. Note that  must2 be provided to properly terminate video encoding.Support for source images that are of a different size to the output resolution is limited to non-palettized destination formats (i.e. those that are handled by  libswscalers). Practically, this 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 returned may be used to write RGB images of the resolution given by the provided Q (i.e. the same resolution as the output video). If this function is applied to /, then the output stream is closed. Note that  must3 be provided to properly terminate video encoding.***#None3 Open an input media file.AVFrame is a superset of  AVPicture, so we can upcast an  to an .Find a codec given by name.vRead packets of a media file to get stream information. This is useful for file formats with no headers such as MPEG."Searches for a video stream in an PZ. If one is found, returns the index of the stream in the container, and its associated > and  .LFind a registered decoder with a codec ID matching that found in the given >.Initialize the given > 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. 0frameReaderT = fmap (first MaybeT) . frameReader&Read time stamped frames of the given N 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. 0frameReaderT = fmap (first MaybeT) . frameReaderConstruct an action that gets the next available frame, and an action to release all resources associated with this video stream.None23M  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 C 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.7Read frames from a video stream. Errors are thrown as  IOExceptions.eRead time stamped frames from a video stream. Time is given in seconds from the start of the stream.|Read time stamped frames from a video stream. Time is given in seconds from the start of the stream. Errors are thrown as  IOExceptions.YOpen a target file for writing a video stream. When the returned function is applied to *, the output stream is closed. Note that  mustK be provided when finishing in order to properly terminate video encoding.Support for source images that are of a different size to the output resolution is limited to non-palettized destination formats (i.e. those that are handled by  libswscalerz). Practically, this means that animated gif output is only supported if the source images are of the target resolution.  None&FFmpeg's built-in format debug utlity.3Print 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. None38Initialize FFmpeg by registering all known codecs. This must0 be called before using other FFmpeg functions.\  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./01123456789:;<=>?@ABBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~u          ffmpeg-light-0.8Codec.FFmpeg.Internal.LinearCodec.FFmpeg.EnumsCodec.FFmpeg.TypesCodec.FFmpeg.CommonCodec.FFmpeg.ScalerCodec.FFmpeg.EncodeCodec.FFmpeg.DecodeCodec.FFmpeg.JuicyCodec.FFmpeg.Internal.Debug Codec.FFmpegV4V3V2qd $fStorableV4 $fFunctorV4 $fStorableV3 $fFunctorV3 PacketFlag FormatFlag CodecFlag AVRoundModeAVIOFlag FFProfile SwsAlgorithm AVCodecID AVPixelFormat AVMediaTypeavmediaTypeVideoavmediaTypeAudioavmediaTypeDataavmediaTypeSubtitleavmediaTypeAttachment avmediaTypeNb avPixFmtNone avPixFmtRgb24 avPixFmtRgba avPixFmtBgra 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 avPktFlagKeyavPktFlagCorrupt$fShowAVPixelFormatAVFracfracValfracNumfracDen 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$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 $fHasPtrPtr sws_scalesws_getCachedContextav_free av_malloc free_packet init_packet codec_close av_frame_freeav_frame_get_bufferav_frame_alloc open_codec wrapIOErrorframe_alloc_checkframe_get_buffer_check avPixelStride SwsCompatible swsPlanes swsStrides sliceHeight ImageInfoimgWidth imgHeight imgFormatswsInitswsResetwithSwsswsScale$fSwsCompatible(,,)$fSwsCompatibleImage$fSwsCompatibleAVFrameEncodingParamsepWidthepHeightepFpsepCodec 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 imageReaderT imageReaderimageReaderTimeTimageReaderTime imageWriter$fJuicyPixelFormatPixelRGBA8$fJuicyPixelFormatPixelRGB8$fJuicyPixelFormatWord8avcodec_get_nameav_get_pix_fmt_nameav_dump_format debugCodecdebugCodecContext pixFmtNamedebugPixelFormatsdebugCodecName initFFmpegghc-prim GHC.TypesDoublebase Data.MaybeNothingJustTrueFalseJuicyPixels-3.1.5.2Codec.Picture.ColorQuant palettizetransformers-0.4.1.0Control.Monad.Trans.MaybeMaybeTCodec.Picture.Types DynamicImageImagePixelav_register_all