ן6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 SafeNA four-component vectorA three-component vectorA two-component vector Quadrance between two 3D points.     NoneC  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#%$&'()*+,-./0123456789:;F<G=H>I?J@KALBMQCNRDOSETPUVWX\Y]Z^[_`abcdefghijklmnopqrstuvwxyz{|}~    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None35C8The input source can be a file or a camera. When using , frequently in the form  Camera "0:0"F, the first input video device enumerated by libavdevice is selected.~sizeof the  structure in bytes. Convert an  to a 61Rescale an integer from one time base to another.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~cdab]^_`YZ[\UVWXQRSTMNOPhgifjKLGHIJCDEF?@AB;<=>789:3456/012+,-.'()*%&!"#$      klmnopqrstuvw~xyz{|}ew      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None4XCatch 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 None345N,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 7<, then the codec is inferred from the output file name. If 8&, then this codec is manually chosen.If 7D, automatically chose a pixel format based on the output codec. If 8#, 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 9 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 7., then the output stream is closed. Note that 7 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 7/, then the output stream is closed. Note that 7 must3 be provided to properly terminate video encoding.***#None47Open the first video input device enumerated by FFMPEG.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 aZ. If one is found, returns the index of the stream in the container, and its associated K and . LFind a registered decoder with a codec ID matching that found in the given K. Initialize the given K 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.                    None34N  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 7*, the output stream is closed. Note that 7 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.  NoneC @ABCDEFG!"#$%&'()*+,H  !"#$%&'()*+, !"#$ %&)'*+(, @ABCDEFG!"#$%&'()*+,H None/&FFmpeg's built-in format debug utlity.03Print the short name, long name, and ID of a codec.1Print various codec settings.3-Print all pixel formats supported by a given .4Get the name of a codec.-./01234-./01234/01.23-4-./01234 None458Initialize FFmpeg by registering all known codecs. This must0 be called before using other FFmpeg functions.IJ5  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~55IJ5K     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<<=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                        !"#$%&'%&("#)"#*+,-./0+12+13+14  5 6 6 7 8  9 : ; <=ffmpe_Dk9b7UKhqskG3Yfxs3XyjyCodec.FFmpeg.Internal.LinearCodec.FFmpeg.EnumsCodec.FFmpeg.TypesCodec.FFmpeg.CommonCodec.FFmpeg.ScalerCodec.FFmpeg.EncodeCodec.FFmpeg.DecodeCodec.FFmpeg.JuicyCodec.FFmpeg.ProbeCodec.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$fShowAVPixelFormat InputSourceFileCameraAVFracfracValfracNumfracDen AVRational numerator denomenatorHasDtsgetDtssetDtshasDtsHasPacketFlagsgetPacketFlagssetPacketFlagshasPacketFlagsHasSizegetSizesetSizehasSizeHasDatagetDatasetDatahasDataAVPacket AVIOContextCategory HasAVClass getAVClass setAVClass hasAVClassAVClass AVInputFormatHasVideoCodecIDgetVideoCodecIDsetVideoCodecIDhasVideoCodecIDHasFormatFlagsgetFormatFlagssetFormatFlagshasFormatFlagsAVOutputFormat 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 hasBitRateAVCodecContextHasInputFormatgetInputFormatsetInputFormathasInputFormat HasIOContext getIOContext setIOContext hasIOContextHasOutputFormatgetOutputFormatsetOutputFormathasOutputFormat HasStreams getStreams setStreams hasStreams HasNumStreams getNumStreams setNumStreams hasNumStreamsAVFormatContextHasPtrgetPtrav_rescale_rndavformat_alloc_contextav_input_video_device_next setFilename setCameramallocAVFormatContext getAVCategoryavClassCategoryNaavClassCategoryInputavClassCategoryOutputavClassCategoryMuxeravClassCategoryDemuxeravClassCategoryEncoderavClassCategoryDecoderavClassCategoryFilteravClassCategoryBitstreamFilteravClassCategorySwscaleravClassCategorySwresampler avClassCategoryDeviceVideoOutputavClassCategoryDeviceVideoInput avClassCategoryDeviceAudioOutputavClassCategoryDeviceAudioInputavClassCategoryDeviceOutputavClassCategoryDeviceInputavClassCategoryNb packetSize pictureSizeav_q2d av_rescale_q$fStorableAVFrac$fStorableAVRational$fHasDtsAVPacket$fHasPtsAVPacket$fHasStreamIndexAVPacket$fHasPacketFlagsAVPacket$fHasSizeAVPacket$fHasDataAVPacket$fHasAVClassAVInputFormat$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$fHasInputFormatAVFormatContext $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 av_dict_set 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_inputdictSet openCamera openInputopenFileframeAsPicture findDecoder checkStreamsfindVideoStream getDecoder openCodecread_frame_check frameReader frameReaderTframeReaderTimeframeReaderTimeT prepareReaderJuicyPixelFormatjuicyPixelFormattoJuicyTtoJuicy toJuicyImage saveJuicyjuicyPixelStride imageReaderT imageReaderimageReaderTimeTimageReaderTime imageWriter$fJuicyPixelFormatPixelRGBA8$fJuicyPixelFormatPixelRGB8$fJuicyPixelFormatWord8 AvStreamT withAvFile nbStreams formatNameformatMetadata withStream codecContextcodecMediaTypeNamecodec codecName streamBitratestreamMetadata dictFoldM_avcodec_get_nameav_get_pix_fmt_nameav_dump_format debugCodecdebugCodecContext pixFmtNamedebugPixelFormatsdebugCodecName initFFmpegghc-prim GHC.TypesDoublebaseGHC.BaseNothingJustTrueFalseJuicy_G75rAJw1dXB7NJFJzfDGwVCodec.Picture.ColorQuant palettizetrans_3eG64VdP2vzGjP6wJiCp5XControl.Monad.Trans.MaybeMaybeTCodec.Picture.Types DynamicImageImagePixel unAvStreamTAvFormat unAvFormat av_dict_getav_get_media_type_stringavToIntavdevice_register_allav_register_all