Structs

Deprecated and unused struct to use for initializing an abuffersink context.

Buffer to print data progressively

The bitstream filter state.

A reference to a data buffer.

Deprecated and unused struct to use for initializing a buffersink context.

This structure contains the parameters describing the frames that will be passed to this filter.

This structure describes the bitrate properties of an encoded bitstream. It roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD parameters for H.264/HEVC.

Describe the class of an AVClass context structure. That is an arbitrary struct of which the first field is a pointer to an AVClass struct (e.g. AVCodecContext, AVFormatContext etc.).

AVCodec.

main external API structure. New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user applications. The name string for AVOptions options matches the associated command line parameter name and can be found in libavcodec/options_table.h The AVOption/command line parameter names differ in some cases from the C structure field names for historic reasons or brevity. sizeof(AVCodecContext) must not be used outside libav*.

This struct describes the properties of a single codec described by an AVCodecID. @see avcodec_descriptor_get()

Array of pointers to hardware configurations supported by the codec, or NULL if no hardware supported. The array is terminated by a NULL pointer.

This struct describes the properties of an encoded stream.

Structure describes device capabilities.

Structure describes basic parameters of the device.

List of devices.

This structure describes optional metadata relevant to a downmix procedure.

Filter definition. This defines the pads a filter contains, and all the callback functions used to interact with the filter.

An instance of a filter

Lists of formats / etc. supported by an end of a link.

A linked-list of the inputs/outputs of the filter chain.

A link between two filters. This contains pointers to the source and destination filters between which this link exists, and the indexes of the pads involved. In addition, this link also contains the parameters which have been negotiated and agreed upon between the filter, such as image dimensions, format, etc.

Format I/O context. New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. sizeof(AVFormatContext) must not be used outside libav*, use avformat_alloc_context() to create an AVFormatContext.

This structure describes decoded (raw) audio or video data.

Structure to hold side data for an AVFrame.

@defgroup lavc_hwaccel AVHWAccel

This struct aggregates all the (hardware/vendor-specific) “high-level” state, i.e. state that is not tied to a concrete processing configuration. E.g., in an API that supports hardware-accelerated encoding and decoding, this struct will (if possible) wrap the state that is common to both encoding and decoding and from which specific instances of encoders or decoders can be derived.

This struct describes the constraints on hardware frames attached to a given device with a hardware-specific configuration. This is returned by av_hwdevice_get_hwframe_constraints() and must be freed by av_hwframe_constraints_free() after use.

This struct describes a set or pool of “hardware” frames (i.e. those with data not located in normal system memory). All the frames in the pool are assumed to be allocated in the same way and interchangeable.

@example ffhash.c This example is a simple command line application that takes one or more arguments. It demonstrates a typical use of the hashing API with allocation, initialization, updating, and finalizing.

Bytestream IO Context. New public fields can be added with minor version bumps. Removal, reordering and changes to existing public fields require a major version bump. sizeof(AVIOContext) must not be used outside libav*.

Describes single entry of the directory.

Callback for checking whether to abort blocking functions. AVERROR_EXIT is returned in this case by the interrupted function. During blocking operations, callback is called with opaque as parameter. If the callback returns 1, the blocking operation will be aborted.

@addtogroup lavf_decoding @{

Context structure for the Lagged Fibonacci PRNG. The exact layout, types and content of this struct may change and should not be accessed directly. Only its sizeof() is guranteed to stay the same to allow easy instanciation.

AVOption

A single allowed range of values, or a single allowed value.

List of AVOptionRange structs.

@addtogroup lavf_encoding @{

This structure stores compressed data. It is typically exported by demuxers and then passed as input to decoders, or received as output from encoders and then passed to muxers.

Pan Scan area. This specifies the area which should be displayed. Note there may be multiple such areas for one frame.

Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes of an image. It also stores the subsampling factors and number of components.

This structure contains the data a format has to probe a file.

This structure supplies correlation between a packet timestamp and a wall clock production time. The definition follows the Producer Reference Time (‘prft’) as defined in ISO/IEC 14496-12

AVProfile.

New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. sizeof(AVProgram) must not be used outside libav*.

Rational number (pair of numerator and denominator).

Structure describing a single Region Of Interest.

ReplayGain information (see http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). The size of this struct is a part of the public ABI.

Stereo 3D type: this structure describes how two videos are packed within a single video surface, with additional information as needed.

Stream structure. New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. sizeof(AVStream) must not be used outside libav*.

@file @brief Public header for libavutil XTEA algorithm @defgroup lavu_xtea XTEA @ingroup lavu_crypto @{

@ingroup lavc_encoding

Constants

< MPEG-1 4:2:0, JPEG 4:2:0, H.263 4:2:0

< MPEG-2/4 4:2:0, H.264 default for 4:2:0

< ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2

< Dummy codec for streams containing only metadata information.

< A dummy id pointing at the start of audio codecs

< A dummy ID pointing at the start of subtitle codecs.

< A dummy ID pointing at the start of various fake codecs.

< as in Berlin toast format

< preferred ID for decoding MPEG audio layer 1, 2 or 3

< FAKE codec to indicate a raw MPEG-2 TS stream (only used by libavformat)

< preferred ID for MPEG-1/2 video decoding

< FAKE codec to indicate a MPEG-4 Systems stream (only used by libavformat)

< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it

< Contain timestamp estimated through PCR of program stream.

< Passthrough codec, AVFrames wrapped in AVPacket

< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM

< also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)

< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP 177 Annex B

< EBU Tech. 3213-E (nothing there) / one of JEDEC P22 group phosphors

< colour filters using Illuminant C

< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC

< identical to above, also called “SMPTE C” even though it uses D65

< SMPTE ST 428-1 (CIE 1931 XYZ)

< SMPTE ST 431-2 (2011) / DCI P3

< SMPTE ST 432-1 (2010) / P3 D65 / Display P3

Full range content.

Narrow or limited range content.

< Not part of ABI

< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601

< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / derived in SMPTE RP 177 Annex B

< ITU-R BT2020 constant luminance system

< ITU-R BT2020 non-constant luminance system

< Chromaticity-derived constant luminance system

< Chromaticity-derived non-constant luminance system

< FCC Title 47 Code of Federal Regulations 73.682 (a)(20)

< ITU-R BT.2100-0, ICtCp

< Not part of ABI

< reserved for future use by ITU-T and ISO/IEC just like 15-255 are

< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB), YZX and ST 428-1

< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above

< derived from 170M primaries and D65 white point, 170M is derived from BT470 System M’s primaries

< SMPTE 2085, Y’D’zD’x

< used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16

< ARIB STD-B67, known as “Hybrid log-gamma”

< ITU-R BT1361 Extended Colour Gamut

< ITU-R BT2020 for 10-bit system

< ITU-R BT2020 for 12-bit system

< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM

< “Linear transfer characteristics”

< “Logarithmic transfer characteristic (100:1 range)”

< “Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)”

< also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC

< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems

< discard all bidirectional frames

< discard useless packets like 0 size packets in avi

< discard nothing

< discard all non intra frames

< discard all frames except keyframes

< discard all non reference

< Lt/Rt 2-channel downmix, Dolby Pro Logic II compatible.

< Lo/Ro 2-channel downmix (Stereo).

< Lt/Rt 2-channel downmix, Dolby Surround compatible.

< Number of downmix types. Not part of ABI.

< Duration estimated from bitrate (less accurate)

< Duration accurately estimated from PTSes

< Duration estimated from a stream with a known duration

< Use auto-selected escaping mode.

< Use backslash escaping.

< Use single-quote escaping.

< Use XML non-markup character data escaping.

< all automatic conversions enabled

< all automatic conversions disabled

< started, but incomplete

ATSC A53 Part 4 Closed Captions. A53 CC bitstream is stored as uint8_t in AVFrameSideData.data. The number of bytes of CC data is AVFrameSideData.size.

Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVActiveFormatDescription enum.

This side data must be associated with an audio frame and corresponds to enum AVAudioServiceType defined in avcodec.h.

Content light level (based on CTA-861.3). This payload contains data in the form of the AVContentLightMetadata struct.

Bounding boxes for object detection and classification, as described by AVDetectionBBoxHeader.

This side data contains a 3x3 transformation matrix describing an affine transformation that needs to be applied to the frame for correct presentation.

Parsed Dolby Vision metadata, suitable for passing to a software implementation. The payload is the AVDOVIMetadata struct defined in libavutil/dovi_meta.h.

Dolby Vision RPU raw data, suitable for passing to x265 or other libraries. Array of uint8_t, with NAL emulation bytes intact.

Metadata relevant to a downmix procedure. The data is the AVDownmixInfo struct defined in libavutil/downmix_info.h.

HDR dynamic metadata associated with a video frame. The payload is an AVDynamicHDRPlus type and contains information for color volume transform - application 4 of SMPTE 2094-40:2016 standard.

Film grain parameters for a frame, described by AVFilmGrainParams. Must be present for every frame which should have film grain applied.

The GOP timecode in 25 bit timecode format. Data format is 64-bit integer. This is set on the first frame of a GOP that has a temporal reference of 0.

The data contains an ICC profile as an opaque octet buffer following the format described by ISO 15076-1 with an optional name defined in the metadata key entry “name”.

Mastering display metadata associated with a video frame. The payload is an AVMasteringDisplayMetadata type and contains information about the mastering display color volume.

The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h.

Motion vectors exported by some codecs (on demand through the export_mvs flag set in the libavcodec AVCodecContext flags2 option). The data is the AVMotionVector struct defined in libavutil/motion_vector.h.

The data is the AVPanScan struct defined in libavcodec.

Regions Of Interest, the data is an array of AVRegionOfInterest type, the number of array element is implied by AVFrameSideData.size / AVRegionOfInterest.self_size.

ReplayGain information in the form of the AVReplayGain struct.

Timecode which conforms to SMPTE ST 12-1. The data is an array of 4 uint32_t where the first uint32_t describes how many (1-3) of the other timecodes are used. The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum() function in libavutil/timecode.h.

User data unregistered metadata associated with a video frame. This is the H.26[45] UDU SEI message, and shouldn’t be used for any other purpose The data is stored as uint8_t in AVFrameSideData.data which is 16 bytes of uuid_iso_iec_11578 followed by AVFrameSideData.size - 16 bytes of user_data_payload_byte.

Recommmends skipping the specified number of samples. This is exported only if the “skip_manual” AVOption is set in libavcodec. This has the same format as AV_PKT_DATA_SKIP_SAMPLES. @code u32le number of samples to skip from start of this packet u32le number of samples to skip from end of this packet u8 reason for start skip u8 reason for end skip (0=padding silence, 1=convergence) @endcode

The data represents the AVSphericalMapping structure defined in libavutil/spherical.h.

Stereoscopic 3d metadata. The data is the AVStereo3D struct defined in libavutil/stereo3d.h.

Encoding parameters for a video frame, as described by AVVideoEncParams.

Transfer the data from the queried hw frame.

Transfer the data to the queried hw frame.

A point in the output bytestream where a demuxer can start parsing (for non self synchronizing bytestream formats). That is, any non-keyframe packet start point.

A point in the output bytestream where the underlying AVIOContext might flush the buffer depending on latency or buffering requirements. Typically means the end of a packet.

Header data; this needs to be present for the stream to be decodeable.

A point in the output bytestream where a decoder can start decoding (i.e. a keyframe). A demuxer/decoder given the data flagged with AVIO_DATA_MARKER_HEADER, followed by any AVIO_DATA_MARKER_SYNC_POINT, should give decodeable results.

Trailer data, which doesn’t contain actual content, but only for finalizing the output file.

This is any, unlabelled data. It can either be a muxer not marking any positions at all, it can be an actual boundary/sync point that the muxer chooses not to mark, or a later part of a packet/fragment that is cut into multiple write callbacks due to limited IO buffer size.

< Opaque data information usually sparse

< Opaque data information usually continuous

< Usually treated as AVMEDIA_TYPE_DATA

< offset must point to a pointer immediately followed by an int for the length

< offset must point to two consecutive integers

< offset must point to AVRational

ATSC A53 Part 4 Closed Captions. This metadata should be associated with a video stream. A53 CC bitstream is stored as uint8_t in AVPacketSideData.data. The number of bytes of CC data is AVPacketSideData.size.

Active Format Description data consisting of a single byte as specified in ETSI TS 101 154 using AVActiveFormatDescription enum.

This side data should be associated with an audio stream and corresponds to enum AVAudioServiceType.

Content light level (based on CTA-861.3). This metadata should be associated with a video stream and contains data in the form of the AVContentLightMetadata struct.

This side data corresponds to the AVCPBProperties struct.

This side data contains a 3x3 transformation matrix describing an affine transformation that needs to be applied to the decoded video frames for correct presentation.

DOVI configuration ref: dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2.1.2, section 2.2 dolby-vision-bitstreams-in-mpeg-2-transport-stream-multiplex-v1.2, section 3.3 Tags are stored in struct AVDOVIDecoderConfigurationRecord.

HDR10+ dynamic metadata associated with a video frame. The metadata is in the form of the AVDynamicHDRPlus struct and contains information for color volume transform - application 4 of SMPTE 2094-40:2016 standard.

This side data contains encryption info for how to decrypt the packet. The format is not part of ABI, use av_encryption_info_* methods to access.

This side data is encryption initialization data. The format is not part of ABI, use av_encryption_init_info_* methods to access.

This side data contains an integer value representing the stream index of a “fallback” track. A fallback track indicates an alternate track to use when the current track can not be decoded for some reason. e.g. no decoder available for codec.

An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of structures with info about macroblocks relevant to splitting the packet into smaller packets on macroblock edges (e.g. as for RFC 2190). That is, it does not necessarily contain info about all macroblocks, as long as the distance between macroblocks in the info is smaller than the target payload size. Each MB info structure is 12 bytes, and is laid out as follows: @code u32le bit offset from the start of the packet u8 current quantizer at the start of the macroblock u8 GOB number u16le macroblock address within the GOB u8 horizontal MV predictor u8 vertical MV predictor u8 horizontal MV predictor for block number 3 u8 vertical MV predictor for block number 3 @endcode

ICC profile data consisting of an opaque octet buffer following the format described by ISO 15076-1.

An AV_PKT_DATA_JP_DUALMONO side data packet indicates that the packet may contain “dual mono” audio specific to Japanese DTV and if it is true, recommends only the selected channel to be used. @code u8 selected channels (0=mail/left, 1=sub/right, 2=both) @endcode

Mastering display metadata (based on SMPTE-2086:2014). This metadata should be associated with a video stream and contains data in the form of the AVMasteringDisplayMetadata struct.

Data found in BlockAdditional element of matroska container. There is no end marker for the data, so it is required to rely on the side data size to recognize the end. 8 byte id (as found in BlockAddId) followed by data.

A list of zero terminated key/value strings. There is no end marker for the list, so it is required to rely on the side data size to stop. This side data includes updated metadata which appeared in the stream.

MPEGTS stream ID as uint8_t, this is required to pass the stream ID information from the demuxer to the corresponding muxer.

The number of side data types. This is not part of the public API/ABI in the sense that it may change when new side data types are added. This must stay the last enum value. If its value becomes huge, some code using it needs to be updated as it assumes it to be smaller than other limits.

The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format that the extradata buffer was changed and the receiving side should act upon it appropriately. The new extradata is embedded in the side data buffer and should be immediately used for processing the current frame or packet.

An AV_PKT_DATA_PALETTE side data packet contains exactly AVPALETTE_SIZE bytes worth of palette. This side data signals that a new palette is present.

An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows: @code u32le param_flags if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) s32le channel_count if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) u64le channel_layout if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) s32le sample_rate if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) s32le width s32le height @endcode

Producer Reference Time data corresponding to the AVProducerReferenceTime struct, usually exported by some encoders (on demand through the prft flag set in the AVCodecContext export_side_data field).

This side data contains quality related information from the encoder. @code u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad). u8 picture type u8 error count u16 reserved u64le[error count] sum of squared differences between encoder in and output @endcode

This side data should be associated with an audio stream and contains ReplayGain information in form of the AVReplayGain struct.

Timecode which conforms to SMPTE ST 12-1:2014. The data is an array of 4 uint32_t where the first uint32_t describes how many (1-3) of the other timecodes are used. The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum() function in libavutil/timecode.h.

Recommmends skipping the specified number of samples @code u32le number of samples to skip from start of this packet u32le number of samples to skip from end of this packet u8 reason for start skip u8 reason for end skip (0=padding silence, 1=convergence) @endcode

This side data should be associated with a video stream and corresponds to the AVSphericalMapping structure.

This side data should be associated with a video stream and contains Stereoscopic 3D information in form of the AVStereo3D struct.

A list of zero terminated key/value strings. There is no end marker for the list, so it is required to rely on the side data size to stop.

Subtitle event position @code u32le x1 u32le y1 u32le x2 u32le y2 @endcode

The optional first identifier line of a WebVTT cue.

The optional settings (rendering instructions) that immediately follow the timestamp specifier of a WebVTT cue.

< Switching Predicted

< packed BGR 8:8:8, 32bpp, XBGRXBGR… X=unused/undefined

< packed RGB 8:8:8, 32bpp, XRGBXRGB… X=unused/undefined

< packed ABGR 8:8:8:8, 32bpp, ABGRABGR…

< packed ARGB 8:8:8:8, 32bpp, ARGBARGB…

< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian

< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian

< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples

< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian

< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian

< bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples

< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian

< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian

< bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples

< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian

< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian

< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples

< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian

< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian

< packed BGR 8:8:8, 32bpp, BGRXBGRX… X=unused/undefined

< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits

< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)

< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)

< packed RGB 8:8:8, 24bpp, BGRBGR…

< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian

< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian

< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), big-endian, X=unused/undefined

< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), little-endian, X=unused/undefined

< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian , X=unused/undefined

< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, X=unused/undefined

< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian

< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian

< packed BGRA 8:8:8:8, 32bpp, BGRABGRA…

< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian

< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian

HW acceleration through CUDA. data[i] contain CUdeviceptr pointers exactly as for system memory frames.

Hardware surfaces for Direct3D11.

< HW decoding through Direct3D11 via old API, Picture.data[3] contains a ID3D11VideoDecoderOutputView pointer

DRM-managed buffers exposed through PRIME buffer sharing.

< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer

< planar GBRA 4:4:4:4 32bpp

< planar GBR 4:4:4:4 40bpp, big-endian

< planar GBR 4:4:4:4 40bpp, little-endian

< planar GBR 4:4:4:4 48bpp, big-endian

< planar GBR 4:4:4:4 48bpp, little-endian

< planar GBRA 4:4:4:4 64bpp, big-endian

< planar GBRA 4:4:4:4 64bpp, little-endian

< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, big-endian

< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, little-endian

< planar GBR 4:4:4 24bpp

< planar GBR 4:4:4 27bpp, big-endian

< planar GBR 4:4:4 27bpp, little-endian

< planar GBR 4:4:4 30bpp, big-endian

< planar GBR 4:4:4 30bpp, little-endian

< planar GBR 4:4:4 36bpp, big-endian

< planar GBR 4:4:4 36bpp, little-endian

< planar GBR 4:4:4 42bpp, big-endian

< planar GBR 4:4:4 42bpp, little-endian

< planar GBR 4:4:4 48bpp, big-endian

< planar GBR 4:4:4 48bpp, little-endian

< IEEE-754 single precision planar GBR 4:4:4, 96bpp, big-endian

< IEEE-754 single precision planar GBR 4:4:4, 96bpp, little-endian

< alias for AV_PIX_FMT_YA8

< Y , 9bpp, big-endian

< Y , 9bpp, little-endian

< Y , 10bpp, big-endian

< Y , 10bpp, little-endian

< Y , 12bpp, big-endian

< Y , 12bpp, little-endian

< Y , 14bpp, big-endian

< Y , 14bpp, little-endian

< Y , 16bpp, big-endian

< Y , 16bpp, little-endian

< IEEE-754 single precision Y, 32bpp, big-endian

< IEEE-754 single precision Y, 32bpp, little-endian

< hardware decoding through MediaCodec

HW acceleration though MMAL, data[3] contains a pointer to the MMAL_BUFFER_HEADER_T structure.

< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb

< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb

< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions

< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)

< interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)

< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian

< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian

< as above, but U and V bytes are swapped

< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)

< as above, but U and V bytes are swapped

Hardware surfaces for OpenCL.

< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-endian

< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian

< like NV12, with 16bpp per component, big-endian

< like NV12, with 16bpp per component, little-endian

< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, big-endian

< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, little-endian

< interleaved chroma YUV 4:2:2, 32bpp, big-endian

< interleaved chroma YUV 4:2:2, 32bpp, liddle-endian

< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, big-endian

< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, little-endian

< interleaved chroma YUV 4:4:4, 48bpp, big-endian

< interleaved chroma YUV 4:4:4, 48bpp, little-endian

< 8 bits with AV_PIX_FMT_RGB32 palette

HW acceleration through QSV, data[3] contains a pointer to the mfxFrameSurface1 structure.

< packed RGB 8:8:8, 32bpp, RGBXRGBX… X=unused/undefined

< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits

< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)

< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)

< packed RGB 8:8:8, 24bpp, RGBRGB…

< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian

< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian

< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian, X=unused/undefined

< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, X=unused/undefined

< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined

< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, X=unused/undefined

< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian

< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian

< packed RGBA 8:8:8:8, 32bpp, RGBARGBA…

< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian

< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian

< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1

< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3

Hardware acceleration through VA-API, data[3] contains a VASurfaceID.

< HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface

< hardware decoding through Videotoolbox

Vulkan hardware images.

< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), big-endian, X=unused/undefined

< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), little-endian, X=unused/undefined

< packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), big-endian, X=unused/undefined

< packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), little-endian, X=unused/undefined

< XVideo Motion Acceleration via common packet passing

< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as big-endian, the 4 lower bits are set to 0

< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as little-endian, the 4 lower bits are set to 0

< packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, big-endian

< packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, little-endian

< alias for AV_PIX_FMT_YA8

< 8 bits gray, 8 bits alpha

< 16 bits gray, 16 bits alpha (big-endian)

< 16 bits gray, 16 bits alpha (little-endian)

< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples)

< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)

< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)

< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian

< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian

< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian

< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian

< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian

< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian

< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian

< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian

< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian

< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian

< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)

< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian

< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian

< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian

< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian

< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian

< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian

< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian

< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian

< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian

< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian

< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)

< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian

< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian

< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian

< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian

< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)

< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian

< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian

< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian

< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian

< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian

< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian

< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian

< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian

< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian

< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian

< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)

< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), big-endian

< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), little-endian

< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian)

< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian)

< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian)

< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian)

< planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)

< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), big-endian

< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), little-endian

< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian)

< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian)

< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, big-endian

< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, little-endian

< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian)

< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian)

< planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)

< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), big-endian

< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), little-endian

< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian)

< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian)

< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, big-endian

< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, little-endian

< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian)

< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian)

< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV411P and setting color_range

< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range

< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range

< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range

< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range

< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr

< packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb

< Round toward -infinity.

< Round away from zero.

< Round to nearest and halfway cases away from zero.

Flag telling rescaling functions to pass INT64_MIN/MAX through unchanged, avoiding special cases for #AV_NOPTS_VALUE.

< Round toward +infinity.

< Round toward zero.

< Number of sample formats. DO NOT USE if linking dynamically

< signed 16 bits, planar

< signed 32 bits, planar

< signed 64 bits, planar

< unsigned 8 bits, planar

Video is not stereoscopic (and metadata has to be there).

Views are packed in a checkerboard-like structure per pixel.

Views are packed per column.

Views are alternated temporally.

Views are packed per line, as if interlaced.

Views are next to each other.

Views are next to each other, but when upscaling apply a checkerboard pattern.

Views are on top of each other.

Frame contains only the left view.

Frame contains two packed views.

Frame contains only the right view.

< full parsing and repack

< full parsing and repack of the first frame only, only implemented for H.264 currently

< full parsing and repack with timestamp and position generation by parser for raw this assumes that each packet in the file contains no demuxer level headers and just codec level data, otherwise position generation would fail

< Only parse headers, do not repack.

< full parsing and interpolation of timestamps for frames not starting on a packet boundary

Formatted text, the ass field must be set by the decoder and is authoritative. pict and text fields may contain approximations.

< A bitmap, pict will be set

Plain text, the text field must be set by the decoder and is authoritative. ass and pict fields may contain approximations.

Perform non-blocking operation. If this flag is set, send and recv operations are non-blocking and return AVERROR(EAGAIN) immediately if they can not proceed.

< timecode wraps after 24 hours

< negative time values are allowed

Keep a reference to the frame. If the frame if reference-counted, create a new reference; otherwise copy the frame data.

Do not check for format changes.

Immediately push the frame to the output.

The codec supports this format by some ad-hoc method.

The codec supports this format via the hw_device_ctx interface.

The codec supports this format via the hw_frames_ctx interface.

The codec supports this format by some internal method.

Apply the maximum possible cropping, even if it requires setting the AVFrame.data[] entries to unaligned pointers. Passing unaligned data to FFmpeg API is generally not allowed, and causes undefined behavior (such as crashes). You can pass unaligned data only to FFmpeg APIs that are explicitly documented to accept it. Use this flag only if you absolutely know what you are doing.

The mapping must be direct. That is, there must not be any copying in the map or unmap steps. Note that performance of direct mappings may be much lower than normal memory.

The mapped frame will be overwritten completely in subsequent operations, so the current frame data need not be loaded. Any values which are not overwritten are unspecified.

The mapping must be readable.

The mapping must be writeable.

Accept to parse a value without a key; the key will then be returned as NULL.

< not part of API/ABI

< not part of API/ABI

< not part of API/ABI

< Blackman Nuttall windowed sinc

Statics

@defgroup lavu_aes AES @ingroup lavu_crypto @{

@file @brief Public header for libavutil CAMELLIA algorithm @defgroup lavu_camellia CAMELLIA @ingroup lavu_crypto @{

@file @brief Public header for libavutil CAST5 algorithm @defgroup lavu_cast5 CAST5 @ingroup lavu_crypto @{

AVOption table used by devices to implement device capabilities API. Should not be used by a user.

@defgroup lavu_md5 MD5 @ingroup lavu_hash MD5 hash function implementation.

@defgroup lavu_ripemd RIPEMD @ingroup lavu_hash RIPEMD hash function implementation.

@defgroup lavu_sha512 SHA-512 @ingroup lavu_hash SHA-512 (Secure Hash Algorithm) hash function implementations.

@defgroup lavu_sha SHA @ingroup lavu_hash SHA-1 and SHA-256 (Secure Hash Algorithm) hash function implementations.

@file @brief Public header for libavutil TWOFISH algorithm @defgroup lavu_twofish TWOFISH @ingroup lavu_crypto @{

Functions

Create an AVABufferSinkParams structure.

Add an index entry into a sorted list. Update the entry if the list already contains it.

Add two rationals. @param b First rational @param c Second rational @return b+c

Add a value to a timestamp.

Calculate the Adler32 checksum of a buffer.

Allocate an AVAES context.

Encrypt or decrypt a buffer using a previously initialized context. @param count number of 16 byte blocks @param dst destination array, can be equal to src @param src source array, can be equal to dst @param iv initialization vector for CBC mode, if NULL then ECB will be used @param decrypt 0 for encryption, 1 for decryption

Initialize an AVAES context. @param key_bits 128, 192 or 256 @param decrypt 0 for encryption, 1 for decryption

Read data and append it to the current content of the AVPacket. If pkt->size is 0 this is identical to av_get_packet. Note that this uses av_grow_packet and thus involves a realloc which is inefficient. Thus this function should only be used when there is no reasonable way to know (an upper bound of) the final size.

Append path component to the existing path. Path separator ‘/’ is placed between when needed. Resulting string have to be freed with av_free(). @param path base path @param component component to be appended @return new path or NULL on error.

Print arguments following specified format into a large enough auto allocated buffer. It is similar to GNU asprintf(). @param fmt printf-compatible format string, specifying how the following parameters are used. @return the allocated string @note You have to free the string yourself with av_free().

Allocate an AVAudioFifo.

Drain data from an AVAudioFifo.

Free an AVAudioFifo.

Peek data from an AVAudioFifo.

Peek data from an AVAudioFifo.

Read data from an AVAudioFifo.

Reallocate an AVAudioFifo.

Reset the AVAudioFifo buffer.

Get the current number of samples in the AVAudioFifo available for reading.

Get the current number of samples in the AVAudioFifo available for writing.

Write data to an AVAudioFifo.

Decode a base64-encoded string.

Encode data to base64 and null-terminate.

Thread safe basename. @param path the string to parse, on DOS both \ and / are considered separators. @return pointer to the basename substring. If path does not contain a slash, the function returns a copy of path. If path is a NULL pointer or points to an empty string, a pointer to a string “.” is returned.

Allocate an AVBlowfish context.

Encrypt or decrypt a buffer using a previously initialized context.

Encrypt or decrypt a buffer using a previously initialized context.

Initialize an AVBlowfish context.

Get the next two numbers generated by a Box-Muller Gaussian generator using the random numbers issued by lfg.

Append data to a print buffer.

Append a description of a channel layout to a bprint buffer.

Append char c n times to a print buffer.

Reset the string to “” but keep internal allocated data.

Escape the content in src and append it to dstbuf.

Finalize a print buffer.

Allocate bytes in the buffer for external use.

Init a print buffer.

Init a print buffer using a pre-existing buffer.

Append a formatted date and time to a print buffer.

Append a formatted string to a print buffer.

Allocate a context for a given bitstream filter. The caller must fill in the context parameters as described in the documentation and then call av_bsf_init() before sending any data to the filter.

Reset the internal bitstream filter state. Should be called e.g. when seeking.

Free a bitstream filter context and everything associated with it; write NULL into the supplied pointer.

@return a bitstream filter with the specified name or NULL if no such bitstream filter exists.

Get the AVClass for AVBSFContext. It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

Get null/pass-through bitstream filter.

Prepare the filter for use, after all the parameters and options have been set.

Iterate over all registered bitstream filters.

Allocate empty list of bitstream filters. The list must be later freed by av_bsf_list_free() or finalized by av_bsf_list_finalize().

Append bitstream filter to the list of bitstream filters.

Construct new bitstream filter context given it’s name and options and append it to the list of bitstream filters.

Finalize list of bitstream filters.

Free list of bitstream filters.

Parse string describing list of bitstream filters and create single @ref AVBSFContext describing the whole chain of bitstream filters. Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly allocated by av_bsf_alloc().

Retrieve a filtered packet.

Submit a packet for filtering.

Allocate an AVBuffer of the given size using av_malloc().

Same as av_buffer_alloc(), except the returned buffer will be initialized to zero.

Create an AVBuffer from an existing array.

Default free callback, which calls av_free() on the buffer data. This function is meant to be passed to av_buffer_create(), not called directly.

@return the opaque parameter set by av_buffer_create.

@return 1 if the caller may write to the data referred to by buf (which is true if and only if buf is the only reference to the underlying AVBuffer). Return 0 otherwise. A positive answer is valid until av_buffer_ref() is called on buf.

Create a writable reference from a given buffer reference, avoiding data copy if possible.

Query the original opaque parameter of an allocated buffer in the pool.

Allocate a new AVBuffer, reusing an old buffer from the pool when available. This function may be called simultaneously from multiple threads.

Allocate and initialize a buffer pool.

Allocate and initialize a buffer pool with a more complex allocator.

Mark the pool as being available for freeing. It will actually be freed only once all the allocated buffers associated with the pool are released. Thus it is safe to call this function while some of the allocated buffers are still in use.

Reallocate a given buffer.

Create a new reference to an AVBuffer.

Ensure dst refers to the same data as src.

Free a given reference and automatically free the buffer if there are no more references to it.

Get a frame with filtered data from sink and put it in frame.

Get a frame with filtered data from sink and put it in frame.

Same as av_buffersink_get_frame(), but with the ability to specify the number of samples read. This function is less efficient than av_buffersink_get_frame(), because it copies the data around.

@defgroup lavfi_buffersink_accessors Buffer sink accessors Get the properties of the stream @{

Create an AVBufferSinkParams structure.

Set the frame size for an audio buffer sink.

Add a frame to the buffer source.

Add a frame to the buffer source.

Close the buffer source after EOF.

Get the number of failed requests.

Allocate a new AVBufferSrcParameters instance. It should be freed by the caller with av_free().

Initialize the buffersrc or abuffersrc filter with the provided parameters. This function may be called multiple times, the later calls override the previous ones. Some of the parameters may also be set through AVOptions, then whatever method is used last takes precedence.

Add a frame to the buffer source.

Allocate a memory block for an array with av_mallocz().

Allocate an AVCAMELLIA context To free the struct: av_free(ptr)

Encrypt or decrypt a buffer using a previously initialized context

Initialize an AVCAMELLIA context.

Allocate an AVCAST5 context To free the struct: av_free(ptr)

Encrypt or decrypt a buffer using a previously initialized context, ECB mode only

Encrypt or decrypt a buffer using a previously initialized context

Initialize an AVCAST5 context.

Get the channel with the given index in channel_layout.

@return the AVChromaLocation value for name or an AVError if not found.

@return the name for provided chroma location or NULL if unknown.

Compare two rationals.

Get the AVCodecID for the given codec tag tag. If no codec id is found returns AV_CODEC_ID_NONE.

Get the codec tag for the given codec id id. If no codec tag is found returns 0.

Get the codec tag for the given codec id.

@return a non-zero number if codec is a decoder, zero otherwise

@return a non-zero number if codec is an encoder, zero otherwise

Iterate over all registered codecs.

@return the AVColorPrimaries value for name or an AVError if not found.

@return the name for provided color primaries or NULL if unknown.

@return the AVColorRange value for name or an AVError if not found.

@return the name for provided color range or NULL if unknown.

@return the AVColorSpace value for name or an AVError if not found.

@return the name for provided color space or NULL if unknown.

@return the AVColorTransferCharacteristic value for name or an AVError if not found.

@return the name for provided color transfer or NULL if unknown.

Compare the remainders of two integer operands divided by a common divisor.

Compare two timestamps each in its own time base.

Allocate a CPB properties structure and initialize its fields to default values.

@return the number of logical CPU cores present.

Overrides cpu count detection and forces the specified count. Count < 1 disables forcing of specific count.

Get the maximum data alignment that may be required by FFmpeg.

Calculate the CRC of a block. @param crc CRC of previous blocks if any or initial value for CRC @return CRC updated with the data from the given block

Get an initialized standard CRC table. @param crc_id ID of a standard CRC @return a pointer to the CRC table or NULL on failure

Initialize a CRC table. @param ctx must be an array of size sizeof(AVCRC)*257 or sizeof(AVCRC)*1024 @param le If 1, the lowest bit represents the coefficient for the highest exponent of the corresponding polynomial (both for poly and actual CRC). If 0, you must swap the CRC parameter and the result of av_crc if you need the standard representation (can be simplified in most cases to e.g. bswap16): av_bswap32(crc << (32-bits)) @param bits number of bits for the CRC @param poly generator polynomial without the x**bits coefficient, in the representation as specified by le @param ctx_size size of ctx in bytes @return <0 on failure

Convert a double precision floating point number to a rational.

Convert a number to an av_malloced string. @deprecated use av_asprintf() with “%f” or a more specific format

Set up DCT.

Return the context name

Iterate over all registered demuxers.

Copy entries from one AVDictionary struct into another. @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL, this function will allocate a struct for you and put it in *dst @param src pointer to source AVDictionary struct @param flags flags to use when setting entries in *dst @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag @return 0 on success, negative AVERROR code on failure. If dst was allocated by this function, callers should free the associated memory.

Get number of entries in dictionary.

Free all the memory allocated for an AVDictionary struct and all keys and values.

Get a dictionary entry with matching key.

Get dictionary entries as a string.

Parse the key/value pairs list and add the parsed entries to a dictionary.

Set the given entry in *pm, overwriting an existing entry.

Convenience wrapper for av_dict_set that converts the value to a string and stores it.

Thread safe dirname. @param path the string to parse, on DOS both \ and / are considered separators. @return A pointer to a string that’s the parent directory of path. If path is a NULL pointer or points to an empty string, a pointer to a string “.” is returned. @note the function may modify the contents of the path, so copies should be passed.

Flip the input matrix horizontally and/or vertically.

Extract the rotation component of the transformation matrix.

Initialize a transformation matrix describing a pure clockwise rotation by the specified angle (in degrees).

@return The AV_DISPOSITION_* flag corresponding to disp or a negative error code if disp does not correspond to a known stream disposition.

@param disposition a combination of AV_DISPOSITION_* values @return The string description corresponding to the lowest set bit in disposition. NULL when the lowest set bit does not correspond to a known disposition or when disposition is 0.

Divide one rational by another. @param b First rational @param c Second rational @return b/c

Get a frame’s AV_FRAME_DATA_DOWNMIX_INFO side data for editing.

Print detailed information about the input or output format, such as duration, bitrate, streams, container, programs, metadata, side data, codec and time base.

Get a DV profile for the provided stream parameters.

Get a DV profile for the provided stream parameters. The frame rate is used as a best-effort parameter.

Get a DV profile for the provided compressed frame.

Add an element of size elem_size to a dynamic array.

Add the pointer to an element to a dynamic array.

Add an element to a dynamic array.

Escape string in src, and put the escaped string in an allocated string in *dst, which must be freed with av_free().

Track the presence of user provided functions and their number of occurrences in a parsed expression.

Track the presence of variables and their number of occurrences in a parsed expression

Evaluate a previously parsed expression.

Free a parsed expression previously created with av_expr_parse().

Parse an expression.

Parse and evaluate an expression. Note, this is significantly slower than av_expr_eval().

Allocate a buffer, reusing the given one if large enough.

Allocate and clear a buffer, reusing the given one if large enough.

Same behaviour av_fast_malloc but the buffer has additional AV_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0.

Same behaviour av_fast_padded_malloc except that buffer will always be 0-initialized after call.

Reallocate the given buffer if it is not large enough, otherwise do nothing.

Do a complex FFT with the parameters defined in av_fft_init(). The input data must be permuted before. No 1.0/sqrt(n) normalization is done.

Set up a complex FFT. @param nbits log2 of the length of the input array @param inverse if 0 perform the forward transform, if 1 perform the inverse

Do the permutation needed BEFORE calling ff_fft_calc().

Initialize an AVFifoBuffer. @param size of FIFO @return AVFifoBuffer or NULL in case of memory allocation failure

Initialize an AVFifoBuffer. @param nmemb number of elements @param size size of the single element @return AVFifoBuffer or NULL in case of memory allocation failure

Read and discard the specified amount of data from an AVFifoBuffer. @param f AVFifoBuffer to read from @param size amount of data to read in bytes

Free an AVFifoBuffer. @param f AVFifoBuffer to free

Free an AVFifoBuffer and reset pointer to NULL. @param f AVFifoBuffer to free

Feed data from an AVFifoBuffer to a user-supplied callback. Similar as av_fifo_gereric_read but without discarding data. @param f AVFifoBuffer to read from @param buf_size number of bytes to read @param func generic read function @param dest data destination

Feed data at specific position from an AVFifoBuffer to a user-supplied callback. Similar as av_fifo_gereric_read but without discarding data. @param f AVFifoBuffer to read from @param offset offset from current read position @param buf_size number of bytes to read @param func generic read function @param dest data destination

Feed data from an AVFifoBuffer to a user-supplied callback. @param f AVFifoBuffer to read from @param buf_size number of bytes to read @param func generic read function @param dest data destination

Feed data from a user-supplied callback to an AVFifoBuffer. @param f AVFifoBuffer to write to @param src data source; non-const since it may be used as a modifiable context by the function defined in func @param size number of bytes to write @param func generic write function; the first parameter is src, the second is dest_buf, the third is dest_buf_size. func must return the number of bytes written to dest_buf, or <= 0 to indicate no more data available to write. If func is NULL, src is interpreted as a simple byte array for source data. @return the number of bytes written to the FIFO

Enlarge an AVFifoBuffer. In case of reallocation failure, the old FIFO is kept unchanged. The new fifo size may be larger than the requested size.

Resize an AVFifoBuffer. In case of reallocation failure, the old FIFO is kept unchanged.

Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied. @param f AVFifoBuffer to reset

Return the amount of data in bytes in the AVFifoBuffer, that is the amount of data you can read from it. @param f AVFifoBuffer to read from @return size

Return the amount of space in bytes in the AVFifoBuffer, that is the amount of data you can write into it. @param f AVFifoBuffer to write into @return size

Read the file with name filename, and put its content in a newly allocated buffer or map it with mmap() when available. In case of success set *bufptr to the read or mmapped buffer, and *size to the size in bytes of the buffer in *bufptr. Unlike mmap this function succeeds with zero sized files, in this case *bufptr will be set to NULL and *size will be set to 0. The returned buffer must be released with av_file_unmap().

Unmap or free the buffer bufptr created by av_file_map().

Check whether filename actually is a numbered sequence generator.

Iterate over all registered filters.

Compute what kind of losses will occur when converting from one specific pixel format to another. When converting from one pixel format to another, information loss may occur. For example, when converting from RGB24 to GRAY, the color information will be lost. Similarly, other losses occur when converting from some formats to other formats. These losses can involve loss of chroma, but also loss of resolution, loss of color depth, loss due to the color space conversion, loss of the alpha bits or loss due to color quantization. av_get_fix_fmt_loss() informs you about the various types of losses which will occur when converting from one pixel format to another.

Find the “best” stream in the file. The best stream is determined according to various heuristics as the most likely to be what the user expects. If the decoder parameter is non-NULL, av_find_best_stream will find the default decoder for the stream’s codec; streams for which no decoder can be found are ignored.

Attempt to find a specific tag in a URL.

Find AVInputFormat based on the short name of the input format.

Find the value in a list of rationals nearest a given reference rational.

Find the programs which belong to a given stream.

Returns the method used to set ctx->duration.

Open a file using a UTF-8 filename. The API of this function matches POSIX fopen(), errors are returned through errno.

Disables cpu detection and forces the specified flags. -1 is a special case that disables forcing of specific flags.

This function will cause global side data to be injected in the next packet of each stream as well as after any subsequent seek.

Fill the provided buffer with a string containing a FourCC (four-character code) representation.

Allocate an AVFrame and set its fields to default values. The resulting struct must be freed using av_frame_free().

Crop the given video AVFrame according to its crop_left/crop_top/crop_right/ crop_bottom fields. If cropping is successful, the function will adjust the data pointers and the width/height fields, and set the crop fields to 0.

Create a new frame that references the same data as src.

Copy the frame data from src to dst.

Copy only “metadata” fields from src to dst.

Free the frame and any dynamically allocated objects in it, e.g. extended_data. If the frame is reference counted, it will be unreferenced first.

Allocate new buffer(s) for audio or video data.

Get the buffer reference a given data plane is stored in.

@return a pointer to the side data of a given type on success, NULL if there is no side data with such type in this frame.

Check if the frame data is writable.

Ensure that the frame data is writable, avoiding data copy if possible.

Move everything contained in src to dst and reset src.

Add a new side data to a frame.

Add a new side data to a frame from an existing AVBufferRef

Set up a new reference to the data described by the source frame.

Remove and free all side data instances of the given type.

@return a string identifying the side data type

Unreference all the buffers referenced by frame and reset the frame fields.

Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family.

Free a memory block which has been allocated with a function of av_malloc() or av_realloc() family, and set the pointer pointing to it to NULL.

Compute the greatest common divisor of two integer operands.

Return the best rational so that a and b are multiple of it. If the resulting denominator is larger than max_den, return def.

Return the planar<->packed alternative form of the given sample format, or AV_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the requested planar/packed format, the format returned is the same as the input.

Return audio frame duration.

This function is the same as av_get_audio_frame_duration(), except it works with AVCodecParameters instead of an AVCodecContext.

Return the number of bits per pixel used by the pixel format described by pixdesc. Note that this is not the same as the number of bits per sample.

Return codec bits per sample.

Return number of bytes per sample.

Get the description of a given channel.

Return a channel layout id that matches name, or 0 if no match is found.

Get the index of a channel in channel_layout.

Return the number of channels in the channel layout.

Return a description of a channel layout. If nb_channels is <= 0, it is guessed from the channel_layout.

Get the name of a given channel.

Get the name of a colorspace. @return a static string identifying the colorspace; can be NULL. @deprecated use av_color_space_name()

Return the flags which specify extensions supported by the CPU. The returned value is affected by av_force_cpu_flags() if that was used before. So av_get_cpu_flags() can easily be used in an application to detect the enabled cpu flags.

Return default channel layout for a given number of channels.

Return codec bits per sample. Only return non-zero if the bits per sample is exactly correct, not an approximation.

Return a channel layout and the number of channels based on the specified name.

Return in ‘buf’ the path with ‘%d’ replaced by a number.

Get the name of a color from the internal table of hard-coded named colors.

Return a string describing the media_type enum, NULL if media_type is unknown.

Get timing information for the data currently output. The exact meaning of “currently output” depends on the format. It is mostly relevant for devices that have an internal buffer and/or work in real time. @param s media file handle @param stream stream in the media file @param[out] dts DTS of the last packet output for the stream, in stream time_base units @param[out] wall absolute time when that packet whas output, in microsecond @return 0 if OK, AVERROR(ENOSYS) if the format does not support it Note: some formats or devices may not allow to measure dts and wall atomically.

Get the packed alternative form of the given sample format.

Allocate and read the payload of a packet and initialize its fields with default values.

Return the number of bits per pixel for the pixel format described by pixdesc, including any padding or unused bits.

Return the PCM codec associated with a sample format. @param be endianness, 0 for little, 1 for big, -1 (or anything else) for native @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE

Return a single letter to describe the given picture type pict_type.

Return the pixel format corresponding to name.

Compute what kind of losses will occur when converting from one specific pixel format to another. When converting from one pixel format to another, information loss may occur. For example, when converting from RGB24 to GRAY, the color information will be lost. Similarly, other losses occur when converting from some formats to other formats. These losses can involve loss of chroma, but also loss of resolution, loss of color depth, loss due to the color space conversion, loss of the alpha bits or loss due to color quantization. av_get_fix_fmt_loss() informs you about the various types of losses which will occur when converting from one pixel format to another.

Return the short name for a pixel format, NULL in case pix_fmt is unknown.

Print in buf the string corresponding to the pixel format with number pix_fmt, or a header if pix_fmt is negative.

Get the planar alternative form of the given sample format.

Return a name for the specified profile, if available.

Get a seed to use in conjunction with random functions. This function tries to provide a good seed at a best effort bases. Its possible to call this function multiple times if more bits are needed. It can be quite slow, which is why it should only be used as seed for a faster PRNG. The quality of the seed depends on the platform.

Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE on error.

Return the name of sample_fmt, or NULL if sample_fmt is not recognized.

Generate a string corresponding to the sample format with sample_fmt, or a header if sample_fmt is negative.

Get the value and name of a standard channel layout.

Return the fractional representation of the internal time base.

Unescape the given string until a non escaped terminating char, and return the token corresponding to the unescaped string.

Get the current time in microseconds.

Get the current time in microseconds since some unspecified starting point. On platforms that support it, the time comes from a monotonic clock This property makes this time source ideal for measuring relative time. The returned values may not be monotonic on platforms where a monotonic clock is not available.

Indicates with a boolean result if the av_gettime_relative() time source is monotonic.

Increase packet size, correctly zeroing padding

Guess the codec ID based upon muxer and filename.

Return the output format in the list of registered output formats which best matches the provided parameters, or return NULL if there is no match.

Guess the frame rate, based on both the container and codec information.

Guess the sample aspect ratio of a frame, based on both the stream and the frame aspect ratio.

Allocate a hash context for the algorithm specified by name.

Finalize a hash context and compute the actual hash value.

Finalize a hash context and store the Base64 representation of the actual hash value as a string.

Finalize a hash context and store the actual hash value in a buffer.

Finalize a hash context and store the hexadecimal representation of the actual hash value as a string.

Free hash context and set hash context pointer to NULL.

Get the name of the algorithm corresponding to the given hash context.

Get the size of the resulting hash value in bytes.

Initialize or reset a hash context.

Get the names of available hash algorithms.

Update a hash context with additional data.

Send a nice hexadecimal dump of a buffer to the specified file stream.

Send a nice hexadecimal dump of a buffer to the log.

Allocate an AVHMAC context. @param type The hash function used for the HMAC.

Hash an array of data with a key. @param ctx The HMAC context @param data The data to hash @param len The length of the data, in bytes @param key The authentication key @param keylen The length of the key, in bytes @param out The output buffer to write the digest into @param outlen The length of the out buffer, in bytes @return The number of bytes written to out, or a negative error code.

Finish hashing and output the HMAC digest. @param ctx The HMAC context @param out The output buffer to write the digest into @param outlen The length of the out buffer, in bytes @return The number of bytes written to out, or a negative error code.

Free an AVHMAC context. @param ctx The context to free, may be NULL

Initialize an AVHMAC context with an authentication key. @param ctx The HMAC context @param key The authentication key @param keylen The length of the key, in bytes

Hash data with the HMAC. @param ctx The HMAC context @param data The data to hash @param len The length of the data, in bytes

Allocate an AVHWDeviceContext for a given hardware type.

Open a device of the specified type and create an AVHWDeviceContext for it.

Create a new device of the specified type from an existing device.

Create a new device of the specified type from an existing device.

Finalize the device context before use. This function must be called after the context is filled with all the required information and before it is used in any way.

Look up an AVHWDeviceType by name.

Get the constraints on HW frames given a device and the HW-specific configuration to be used with that device. If no HW-specific configuration is provided, returns the maximum possible capabilities of the device.

Get the string name of an AVHWDeviceType.

Allocate a HW-specific configuration structure for a given HW device. After use, the user must free all members as required by the specific hardware structure being used, then free the structure itself with av_free().

Iterate over supported device types.

Free an AVHWFrameConstraints structure.

Allocate an AVHWFramesContext tied to a given device context.

Create and initialise an AVHWFramesContext as a mapping of another existing AVHWFramesContext on a different device.

Finalize the context before use. This function must be called after the context is filled with all the required information and before it is attached to any frames.

Allocate a new frame attached to the given AVHWFramesContext.

Map a hardware frame.

Copy data to or from a hw surface. At least one of dst/src must have an AVHWFramesContext attached.

Get a list of possible source or target formats usable in av_hwframe_transfer_data().

Allocate an image with size w and h and pixel format pix_fmt, and fill pointers and linesizes accordingly. The allocated image buffer has to be freed by using av_freep(&pointers[0]).

Check if the given sample aspect ratio of an image is valid.

Check if the given dimension of an image is valid, meaning that all bytes of the image can be addressed with a signed int.

Check if the given dimension of an image is valid, meaning that all bytes of a plane of an image with the specified pix_fmt can be addressed with a signed int.

Copy image in src_data to dst_data.

Copy image plane from src to dst. That is, copy “height” number of lines of “bytewidth” bytes each. The first byte of each successive line is separated by *_linesize bytes.

Copy image data located in uncacheable (e.g. GPU mapped) memory. Where available, this function will use special functionality for reading from such memory, which may result in greatly improved performance compared to plain av_image_copy_plane().

Copy image data from an image into a buffer.

Copy image data located in uncacheable (e.g. GPU mapped) memory. Where available, this function will use special functionality for reading from such memory, which may result in greatly improved performance compared to plain av_image_copy().

Setup the data pointers and linesizes based on the specified image parameters and the provided array.

Overwrite the image data with black. This is suitable for filling a sub-rectangle of an image, meaning the padding between the right most pixel and the left most pixel on the next line will not be overwritten. For some formats, the image size might be rounded up due to inherent alignment.

Fill plane linesizes for an image with pixel format pix_fmt and width width.

Compute the max pixel step for each plane of an image with a format described by pixdesc.

Fill plane sizes for an image with pixel format pix_fmt and height height.

Fill plane data pointers for an image with pixel format pix_fmt and height height.

Return the size in bytes of the amount of data required to store an image with the given parameters.

Compute the size of an image line with format pix_fmt and width width for the plane plane.

Get the index for a specific timestamp.

Initialize optional fields of a packet with default values.

Audio input devices iterator.

Video input devices iterator.

Compute the length of an integer list.

Write a packet to an output media file ensuring correct interleaving.

Write an uncoded frame to an output media file.

Invert a rational. @param q value @return 1 / q

Seed the state of the ALFG using binary data.

Send the specified message to the log if the level is less than or equal to the current av_log_level. By default, all logging messages are sent to stderr. This behavior can be altered by setting a different logging callback function. @see av_log_set_callback

Default logging callback

Format a line of log the same way as the default callback. @param line buffer to receive the formatted line @param line_size size of the buffer @param print_prefix used to store whether the prefix must be printed; must point to a persistent integer initially set to 1

Format a line of log the same way as the default callback. @param line buffer to receive the formatted line; may be NULL if line_size is 0 @param line_size size of the buffer; at most line_size-1 characters will be written to the buffer, plus one null terminator @param print_prefix used to store whether the prefix must be printed; must point to a persistent integer initially set to 1 @return Returns a negative value if an error occurred, otherwise returns the number of characters that would have been written for a sufficiently large buffer, not including the terminating null character. If the return value is not less than line_size, it means that the log message was truncated to fit the buffer.

Get the current log level

Send the specified message to the log once with the initial_level and then with the subsequent_level. By default, all logging messages are sent to stderr. This behavior can be altered by setting a different logging callback function. @see av_log

Set the logging callback

Set the log level

This function should not be called before the horsemen are ready. Fill the provided buffer with a string containing an error string corresponding to the AVERROR code errnum.

Create an AVRational.

Allocate a memory block with alignment suitable for all memory accesses (including vectors if available on the CPU).

Allocate a memory block for an array with av_malloc().

Allocate a memory block with alignment suitable for all memory accesses (including vectors if available on the CPU) and zero all the bytes of the block.

@deprecated use av_calloc()

Return a positive value if the given filename has one of the given extensions, 0 otherwise.

Check if a name is in a list. @returns 0 if not found, or the 1 based index where it has been found in the list.

Match instances of a name in a comma-separated list of names. List entries are checked from the start to the end of the names list, the first match ends further processing. If an entry prefixed with ‘-’ matches, then 0 is returned. The “ALL” list entry is considered to match all names.

Set the maximum size that may be allocated in one block.

Allocate an AVMD5 context.

Finish hashing and output digest value.

Initialize MD5 hashing.

Hash an array of data.

Update hash value.

Overlapping memcpy() implementation.

Duplicate a buffer with av_malloc().

Multiply two rationals. @param b First rational @param c Second rational @return b*c

Allocate an AVMurMur3 hash context.

Finish hashing and output digest value.

Initialize or reinitialize an AVMurMur3 hash context.

Initialize or reinitialize an AVMurMur3 hash context with a seed.

Update hash context with new data.

Iterate over all registered muxers.

Find which of the two rationals is closer to another rational.

Allocate the payload of a packet and initialize its fields with default values.

Iterate over potential AVOptions-enabled children of parent.

Iterate over AVOptions-enabled children of obj.

Copy options from src object into dest object.

@defgroup opt_eval_funcs Evaluating option strings @{ This group of functions can be used to evaluate option strings and get numbers out of them. They do the same thing as av_opt_set(), except the result is written into the caller-supplied pointer.

Look for an option in an object. Consider only options which have all the specified flags set.

Look for an option in an object. Consider only options which have all the specified flags set.

Check whether a particular flag is set in a flags field.

Free all allocated objects in obj.

Free an AVOptionRanges struct and set it to NULL.

@defgroup opt_get_funcs Option getting functions @{ Those functions get a value of the option with the given name from an object.

@param[out] out_val The returned dictionary is a copy of the actual value and must be freed with av_dict_free() by the caller

Extract a key-value pair from the beginning of a string.

Check if given option is set to its default value.

Check if given option is set to its default value.

Iterate over all AVOptions belonging to obj.

@} Gets a pointer to the requested field in a struct. This function allows accessing a struct even when its fields are moved or renamed since the application making the access has been compiled,

Get a list of allowed ranges for the given option.

Get a default list of allowed ranges for the given option.

Serialize object’s options.

@defgroup opt_set_funcs Option setting functions @{ Those functions set the field of obj with the given name to value.

Set the values of all AVOption fields to their default values.

Set the values of all AVOption fields to their default values. Only these AVOption fields for which (opt->flags & mask) == flags will have their default applied to s.

Set all the options from a given dictionary on an object.

Set all the options from a given dictionary on an object.

@note Any old dictionary present is discarded and replaced with a copy of the new one. The caller still owns val is and responsible for freeing it.

Parse the key-value pairs list in opts. For each key=value pair found, set the value of the corresponding option in ctx.

Show the obj options.

Audio output devices iterator.

Video output devices iterator.

Wrap an existing array as a packet side data.

Allocate an AVPacket and set its fields to default values. The resulting struct must be freed using av_packet_free().

Create a new packet that references the same data as src.

Copy only “properties” fields from src to dst.

Free the packet, if the packet is reference counted, it will be unreferenced first.

Convenience function to free all the side data stored. All the other fields stay untouched.

Initialize a reference-counted packet from av_malloc()ed data.

Get side information from packet.

Ensure the data described by a given packet is reference counted.

Create a writable reference for the data described by a given packet, avoiding data copy if possible.

Move every field in src to dst and reset src.

Allocate new information of a packet.

Pack a dictionary for use in side_data.

Setup a new reference to the data described by a given packet

Convert valid timing fields (timestamps / durations) in a packet from one timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be ignored.

Shrink the already allocated side data buffer

Unpack a dictionary from side_data.

Wipe the packet.

Put the RGBA values that correspond to color_string in rgba_color.

Parse CPU caps from a string and update the given AV_CPU_* flags based on that.

Parse str and store the parsed ratio in q.

Parse timestr and return in *time a corresponding number of microseconds.

Parse str and store the detected values in *rate.

Parse str and put in width_ptr and height_ptr the detected values.

Iterate over all registered codec parsers.

Parse a packet.

@return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a valid pixel format.

@return a pixel format descriptor for provided pixel format or NULL if this pixel format is unknown.

@return an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc is not a valid pointer to a pixel format descriptor.

Iterate over all pixel format descriptors known to libavutil.

Utility function to access log2_chroma_w log2_chroma_h from the pixel format AVPixFmtDescriptor.

Utility function to swap the endianness of a pixel format.

Send a nice dump of a packet to the specified file stream.

Send a nice dump of a packet to the log.

Like av_probe_input_buffer2() but returns 0 on success

Probe a bytestream to determine the input format. Each time a probe returns with a score that is too low, the probe buffer size is increased and another attempt is made. When the maximum probe size is reached, the input format with the highest score is returned.

Guess the file format.

Guess the file format.

Guess the file format.

Convert an AVRational to a double. @param a AVRational to convert @return a in floating-point form @see av_d2q()

Convert an AVRational to a IEEE 32-bit float expressed in fixed-point format.

Set up a real FFT. @param nbits log2 of the length of the input array @param trans the type of transform

Return the next frame of a stream. This function returns what is stored in the file, and does not validate that what is there are valid frames for the decoder. It will split what is stored in the file into frames and return one for each call. It will not omit invalid data between valid frames so as to give the decoder the maximum information possible for decoding.

Read a line from an image, and write the values of the pixel format component c to dst.

Pause a network-based stream (e.g. RTSP stream).

Start playing a network-based stream (e.g. RTSP stream) at the current position.

Allocate, reallocate, or free a block of memory.

Allocate, reallocate, or free an array.

Allocate, reallocate, or free a block of memory.

Allocate, reallocate, or free a block of memory through a pointer to a pointer.

Allocate, reallocate, or free an array through a pointer to a pointer.

Reduce a fraction.

Rescale a 64-bit integer with rounding to nearest.

Rescale a timestamp while preserving known durations.

Rescale a 64-bit integer by 2 rational numbers.

Rescale a 64-bit integer by 2 rational numbers with specified rounding.

Rescale a 64-bit integer with specified rounding.

Allocate an AVRIPEMD context.

Finish hashing and output digest value.

Initialize RIPEMD hashing.

Update hash value.

Check if the sample format is planar.

Allocate a samples buffer for nb_samples samples, and fill data pointers and linesize accordingly. The allocated samples buffer can be freed by using av_freep(&audio_data[0]) Allocated data will be initialized to silence.

Allocate a data pointers array, samples buffer for nb_samples samples, and fill data pointers and linesize accordingly.

Copy samples from src to dst.

Fill plane data pointers and linesize for samples with sample format sample_fmt.

Get the required buffer size for the given audio parameters.

Fill an audio buffer with silence.

Generate an SDP for an RTP session.

Seek to the keyframe at timestamp. ‘timestamp’ in ‘stream_index’.

Parse the key/value pairs list in opts. For each key/value pair found, stores the value in the field in ctx that is named like the key. ctx must be an AVClass context, storing is done using AVOptions.

Allocate an AVSHA512 context.

Finish hashing and output digest value.

Initialize SHA-2 512 hashing.

Update hash value.

Allocate an AVSHA context.

Finish hashing and output digest value.

Initialize SHA-1 or SHA-2 hashing.

Update hash value.

Reduce packet size, correctly zeroing padding

Multiply two size_t values checking for overflow.

Simplified version of strptime

See libc sscanf manual for more information. Locale-independent sscanf implementation.

Allocate an AVStereo3D structure and set its fields to default values. The resulting struct can be freed using av_freep().

Allocate a complete AVFrameSideData and add it to the frame.

Get the AVStereo3DType form a human-readable name.

Provide a human-readable name of a given stereo3d type.

Locale-independent case-insensitive compare. @note This means only ASCII-range characters are case-insensitive

Duplicate a string.

Wrap an existing array as stream side data.

Get the AVClass for AVStream. It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

Get the internal codec timebase from a stream.

Returns the pts of the last muxed packet + its duration

Get side information from stream.

Allocate new information from stream.

Put a description of the AVERROR code errnum in errbuf. In case of failure the global variable errno is set to indicate the error. Even in case of failure av_strerror() will print a generic error message indicating the errnum provided to errbuf.

Locale-independent strings replace. @note This means only ASCII-range characters are replace

Return non-zero if pfx is a prefix of str independent of case. If it is, *ptr is set to the address of the first character in str after the prefix.

Locate the first case-independent occurrence in the string haystack of the string needle. A zero-length string needle is considered to match at the start of haystack.

Append the string src to the string dst, but to a total length of no more than size - 1 bytes, and null-terminate dst.

Append output to a string, according to a format. Never write out of the destination buffer, and always put a terminating 0 within the buffer. @param dst destination buffer (string to which the output is appended) @param size total size of the destination buffer @param fmt printf-compatible format string, specifying how the following parameters are used @return the length of the string that would have been generated if enough space had been available

Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.

Locale-independent case-insensitive compare. @note This means only ASCII-range characters are case-insensitive

Duplicate a substring of a string.

Locate the first occurrence of the string needle in the string haystack where not more than hay_length characters are searched. A zero-length string needle is considered to match at the start of haystack.

Return non-zero if pfx is a prefix of str. If it is, *ptr is set to the address of the first character in str after the prefix.

Parse the string in numstr and return its value as a double. If the string is empty, contains only whitespaces, or does not contain an initial substring that has the expected syntax for a floating-point number, no conversion is performed. In this case, returns a value of zero and the value returned in tail is the value of numstr.

Split the string into several tokens which can be accessed by successive calls to av_strtok().

Subtract one rational from another. @param b First rational @param c Second rational @return b-c

Wrapper to work around the lack of mkstemp() on mingw. Also, tries to create file in /tmp first, if possible. *prefix can be a character constant; *filename will be allocated internally. @return file descriptor of opened file (or negative value corresponding to an AVERROR code on error) and opened file name in **filename. @note On very old libcs it is necessary to set a secure umask before calling this, av_tempfile() can’t call umask itself as it is used in libraries and could interfere with the calling application. @deprecated as fd numbers cannot be passed saftely between libs on some platforms

Flush the message queue

Allocate a new message queue.

Free a message queue.

Return the current number of messages in the queue.

Receive a message from the queue.

Send a message on the queue.

Set the receiving error code.

Set the sending error code.

Set the optional free message callback function which will be called if an operation is removing messages from the queue.

Adjust frame number for NTSC drop frame time code.

Check if the timecode feature is available for the given frame rate

Convert sei info to SMPTE 12M binary representation.

Convert frame number to SMPTE 12M binary representation.

Init a timecode struct with the passed parameters.

Init a timecode struct from the passed timecode components.

Parse timecode representation (hh:mm:ss[:;.]ff).

Get the timecode string from the 25-bit timecode format (MPEG GOP format).

Get the timecode string from the SMPTE timecode format.

Get the timecode string from the SMPTE timecode format.

Load timecode string in buf.

Convert the decomposed UTC time in tm to a time_t value.

Allocate an AVTWOFISH context To free the struct: av_free(ptr)

Encrypt or decrypt a buffer using a previously initialized context

Initialize an AVTWOFISH context.

Split a URL string into components.

Sleep for a period of time. Although the duration is expressed in microseconds, the actual delay may be rounded to the precision of the system timer.

Read and decode a single UTF-8 code point (character) from the buffer in *buf, and update *buf to point to the next byte to decode.

Append a formatted string to a print buffer.

Return an informative version string. This usually is the actual release version number or a git commit description. This string has no fixed format and can change any time. It should never be parsed by code.

Send the specified message to the log if the level is less than or equal to the current av_log_level. By default, all logging messages are sent to stderr. This behavior can be altered by setting a different logging callback function. @see av_log_set_callback

Get the duration for a Vorbis packet.

Get the duration for a Vorbis packet.

Free the parser and everything associated with it.

Allocate and initialize the Vorbis parser using headers in the extradata.

Write a packet to an output media file.

Write the values from src to the pixel format component c of an image line.

Write the stream trailer to an output media file and free the file private data.

Write an uncoded frame to an output media file.

Test whether a muxer supports uncoded frame.

Encode extradata length to a buffer. Used by xiph codecs.

Allocate an AVXTEA context.

Encrypt or decrypt a buffer using a previously initialized context, in big endian format.

Initialize an AVXTEA context.

Encrypt or decrypt a buffer using a previously initialized context, in little endian format.

Initialize an AVXTEA context.

Modify width and height values so that they will result in a memory buffer that is acceptable for the codec if you do not use any horizontal padding.

Modify width and height values so that they will result in a memory buffer that is acceptable for the codec if you also ensure that all line sizes are a multiple of the respective linesize_align[i].

Allocate an AVCodecContext and set its fields to default values. The resulting struct should be freed with avcodec_free_context().

Converts swscale x/y chroma position to AVChromaLocation.

Close a given AVCodecContext and free all the data associated with it (but not the AVCodecContext itself).

Return the libavcodec build-time configuration.

Decode a subtitle message. Return a negative value on error, otherwise return the number of bytes used. If no subtitle could be decompressed, got_sub_ptr is zero. Otherwise, the subtitle is stored in *sub. Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for simplicity, because the performance difference is expected to be negligible and reusing a get_buffer written for video codecs would probably perform badly due to a potentially very different allocation pattern.

The default callback for AVCodecContext.get_buffer2(). It is made public so it can be called by custom get_buffer2() implementations for decoders without AV_CODEC_CAP_DR1 set.

The default callback for AVCodecContext.get_encode_buffer(). It is made public so it can be called by custom get_encode_buffer() implementations for encoders without AV_CODEC_CAP_DR1 set.

@return descriptor for given codec ID or NULL if no descriptor exists.

@return codec descriptor with the given name or NULL if no such descriptor exists.

Iterate over all codec descriptors known to libavcodec.

@addtogroup lavc_encoding @{

Converts AVChromaLocation to swscale x/y chroma position.

Fill AVFrame audio data and linesize pointers.

Find the best pixel format to convert to given a certain source pixel format. When converting from one pixel format to another, information loss may occur. For example, when converting from RGB24 to GRAY, the color information will be lost. Similarly, other losses occur when converting from some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of the given pixel formats should be used to suffer the least amount of loss. The pixel formats from which it chooses one, are determined by the pix_fmt_list parameter.

Find a registered decoder with a matching codec ID.

Find a registered decoder with the specified name.

Find a registered encoder with a matching codec ID.

Find a registered encoder with the specified name.

Reset the internal codec state / flush internal buffers. Should be called e.g. when seeking or when switching to a different stream.

Free the codec context and everything associated with it and write NULL to the provided pointer.

Get the AVClass for AVCodecContext. It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

@deprecated This function should not be used.

Retrieve supported hardware configurations for a codec.

Create and return a AVHWFramesContext with values adequate for hardware decoding. This is meant to get called from the get_format callback, and is a helper for preparing a AVHWFramesContext for AVCodecContext.hw_frames_ctx. This API is for decoding with certain hardware acceleration modes/APIs only.

Get the name of a codec. @return a static string identifying the codec; never NULL

Get the AVClass for AVSubtitleRect. It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

Get the type of the given codec.

@return a positive value if s is open (i.e. avcodec_open2() was called on it with no corresponding avcodec_close()), 0 otherwise.

Return the libavcodec license.

Initialize the AVCodecContext to use the given AVCodec. Prior to using this function the context has to be allocated with avcodec_alloc_context3().

Allocate a new AVCodecParameters and set its fields to default values (unknown/invalid/0). The returned struct must be freed with avcodec_parameters_free().

Copy the contents of src to dst. Any allocated fields in dst are freed and replaced with newly allocated duplicates of the corresponding fields in src.

Free an AVCodecParameters instance and everything associated with it and write NULL to the supplied pointer.

Fill the parameters struct based on the values from the supplied codec context. Any allocated fields in par are freed and replaced with duplicates of the corresponding fields in codec.

Fill the codec context based on the values from the supplied codec parameters. Any allocated fields in codec that have a corresponding field in par are freed and replaced with duplicates of the corresponding field in par. Fields in codec that do not have a counterpart in par are not touched.

Return a value representing the fourCC code associated to the pixel format pix_fmt, or 0 if no associated fourCC code can be found.

Return a name for the specified profile, if available.

Return decoded output data from a decoder.

Read encoded data from the encoder.

Supply a raw video or audio frame to the encoder. Use avcodec_receive_packet() to retrieve buffered output packets.

Supply raw packet data as input to a decoder.

Return the LIBAVCODEC_VERSION_INT constant.

Send control message from application to device.

Initialize capabilities probing API based on AVOption API.

Free resources created by avdevice_capabilities_create()

Return the libavdevice build-time configuration.

Send control message from device to application.

Convenient function to free result of avdevice_list_devices().

Return the libavdevice license.

Initialize libavdevice and register all the input and output devices.

Return the LIBAVDEVICE_VERSION_INT constant.

Negotiate the media format, dimensions, etc of all inputs to a filter.

Return the libavfilter build-time configuration.

Get the number of elements in an AVFilter’s inputs or outputs array.

Free a filter context. This will also remove the filter from its filtergraph’s list of filters.

Get a filter definition matching the given name.

@return AVClass for AVFilterContext.

Allocate a filter graph.

Create a new filter instance in a filter graph.

Check validity and configure all the links and formats in the graph.

Create and add a filter instance into an existing graph. The filter instance is created from the filter filt and inited with the parameter args. opaque is currently ignored.

Dump a graph into a human-readable string representation.

Free a graph, destroy its links, and set *graph to NULL. If *graph is NULL, do nothing.

Get a filter instance identified by instance name from graph.

Add a graph described by a string to a graph.

Add a graph described by a string to a graph.

Add a graph described by a string to a graph.

Queue a command for one or more filter instances.

Request a frame on the oldest sink link.

Send a command to one or more filter instances.

Enable or disable automatic format conversion inside the graph.

Initialize a filter with the supplied dictionary of options.

Initialize a filter with the supplied parameters.

Allocate a single AVFilterInOut entry. Must be freed with avfilter_inout_free(). @return allocated AVFilterInOut on success, NULL on failure.

Free the supplied list of AVFilterInOut and set *inout to NULL. If *inout is NULL, do nothing.

Insert a filter in the middle of an existing link.

Return the libavfilter license.

Link two filters together.

Free the link in *link, and set its pointer to NULL.

Get the number of elements in an AVFilter’s inputs or outputs array.

Get the name of an AVFilterPad.

Get the type of an AVFilterPad.

Make the filter instance process a command. It is recommended to use avfilter_graph_send_command().

Return the LIBAVFILTER_VERSION_INT constant.

Allocate an AVFormatContext. avformat_free_context() can be used to free the context and everything allocated by the framework within it.

Allocate an AVFormatContext for an output format. avformat_free_context() can be used to free the context and everything allocated by the framework within it.

Close an opened input AVFormatContext. Free it and all its contents and set *s to NULL.

Return the libavformat build-time configuration.

Read packets of a media file to get stream information. This is useful for file formats with no headers such as MPEG. This function also computes the real framerate in case of MPEG-2 repeat frame mode. The logical file position is not changed by this function; examined packets may be buffered for later processing.

Discard all internally buffered data. This can be useful when dealing with discontinuities in the byte stream. Generally works only with formats that can resync. This includes headerless formats like MPEG-TS/TS but should also work with NUT, Ogg and in a limited way AVI for example.

Free an AVFormatContext and all its streams. @param s context to free

Get the AVClass for AVFormatContext. It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

@return the table mapping MOV FourCCs for audio to AVCodecID.

@return the table mapping MOV FourCCs for video to libavcodec AVCodecID.

@return the table mapping RIFF FourCCs for audio to AVCodecID.

@defgroup riff_fourcc RIFF FourCCs @{ Get the tables mapping RIFF FourCCs to libavcodec AVCodecIDs. The tables are meant to be passed to av_codec_get_id()/av_codec_get_tag() as in the following code: @code uint32_t tag = MKTAG(‘H’, ‘2’, ‘6’, ‘4’); const struct AVCodecTag *table[] = { avformat_get_riff_video_tags(), 0 }; enum AVCodecID id = av_codec_get_id(table, tag); @endcode @return the table mapping RIFF FourCCs for video to libavcodec AVCodecID.

Get the index entry count for the given AVStream.

Get the AVIndexEntry corresponding to the given index.

Get the AVIndexEntry corresponding to the given timestamp.

Allocate the stream private data and initialize the codec, but do not write the header. May optionally be used before avformat_write_header to initialize stream parameters before actually writing the header. If using this function, do not pass the same options to avformat_write_header.

Return the libavformat license.

Check if the stream st contained in s is matched by the stream specifier spec.

Undo the initialization done by avformat_network_init. Call it only once for each time you called avformat_network_init.

Do global initialization of network libraries. This is optional, and not recommended anymore.

Add a new stream to a media file.

Open an input stream and read the header. The codecs are not opened. The stream must be closed with avformat_close_input().

Test if the given container can store a codec.

Seek to timestamp ts. Seeking will be done so that the point from which all active streams can be presented successfully will be closest to ts and within min/max_ts. Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.

Transfer internal timing information from one stream to another.

Return the LIBAVFORMAT_VERSION_INT constant.

Allocate the stream private data and write the stream header to an output media file.

Accept and allocate a client context on a server context. @param s the server context @param c the client context, must be unallocated @return >= 0 on success or a negative value corresponding to an AVERROR on failure

Allocate and initialize an AVIOContext for buffered I/O. It must be later freed with avio_context_free().

Return AVIO_FLAG_* access flags corresponding to the access permissions of the resource in url, or a negative value corresponding to an AVERROR code in case of failure. The returned access flags are masked by the value in flags.

Close the resource accessed by the AVIOContext s and free it. This function can only be used if s was opened by avio_open().

Close directory.

Return the written size and a pointer to the buffer. The buffer must be freed with av_free(). Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer.

Close the resource accessed by the AVIOContext *s, free it and set the pointer pointing to it to NULL. This function can only be used if s was opened by avio_open().

Free the supplied IO context and everything associated with it.

Iterate through names of available protocols.

Similar to feof() but also returns nonzero on read errors. @return non zero if and only if at end of file or a read error happened when reading.

Return the name of the protocol that will handle the passed URL.

Force flushing of buffered data.

Free entry allocated by avio_read_dir().

Return the written size and a pointer to the buffer. The AVIOContext stream is left intact. The buffer must NOT be freed. No padding is added to the buffer.

Read a string from pb into buf. The reading will terminate when either a NULL character was encountered, maxlen bytes have been read, or nothing more can be read from pb. The result is guaranteed to be NULL-terminated, it will be truncated if buf is too small. Note that the string is not interpreted or validated in any way, it might get truncated in the middle of a sequence for multi-byte encodings.

Read a UTF-16 string from pb and convert it to UTF-8. The reading will terminate when either a null or invalid character was encountered or maxlen bytes have been read. @return number of bytes read (is always <= maxlen)

Perform one step of the protocol handshake to accept a new client. This function must be called on a client returned by avio_accept() before using it as a read/write context. It is separate from avio_accept() because it may block. A step of the handshake is defined by places where the application may decide to change the proceedings. For example, on a protocol with a request header and a reply header, each one can constitute a step because the application may use the parameters from the request to change parameters in the reply; or each individual chunk of the request can constitute a step. If the handshake is already finished, avio_handshake() does nothing and returns 0 immediately.

Create and initialize a AVIOContext for accessing the resource indicated by url. @note When the resource indicated by url has been opened in read+write mode, the AVIOContext can be used only for writing.

Create and initialize a AVIOContext for accessing the resource indicated by url. @note When the resource indicated by url has been opened in read+write mode, the AVIOContext can be used only for writing.

Open directory for reading.

Open a write only memory stream.

Pause and resume playing - only meaningful if using a network streaming protocol (e.g. MMS).

Write a NULL terminated array of strings to the context. Usually you don’t need to use this function directly but its macro wrapper, avio_print.

Writes a formatted string to the context. @return number of bytes written, < 0 on error.

Get AVClass by names of available protocols.

Write a NULL-terminated string. @return number of bytes written.

Convert an UTF-8 string to UTF-16BE and write it. @param s the AVIOContext @param str NULL-terminated UTF-8 string

Convert an UTF-8 string to UTF-16LE and write it. @param s the AVIOContext @param str NULL-terminated UTF-8 string

@name Functions for reading from AVIOContext @{

Read size bytes from AVIOContext into buf. @return number of bytes read or AVERROR

Get next directory entry.

Read size bytes from AVIOContext into buf. Unlike avio_read(), this is allowed to read fewer bytes than requested. The missing bytes can be read in the next call. This always tries to read at least 1 byte. Useful to reduce latency in certain cases. @return number of bytes read or AVERROR

Read contents of h into print buffer, up to max_size bytes, or up to EOF.

fseek() equivalent for AVIOContext. @return new position or AVERROR.

Seek to a given timestamp relative to some component stream. Only meaningful if using a network streaming protocol (e.g. MMS.).

Get the filesize. @return filesize or AVERROR

Skip given number of bytes forward @return new position or AVERROR.

Mark the written bytestream as a specific type.

Free all allocated data in the given subtitle struct.

Return the libavutil build-time configuration.

Return the libavutil license.

Return the LIBAVUTIL_VERSION_INT constant.

Allocate SwrContext.

Allocate SwrContext if needed and set/reset common parameters.

Generate a channel mixing matrix.

Closes the context so that swr_is_initialized() returns 0.

Configure or reconfigure the SwrContext using the information provided by the AVFrames.

Convert audio.

Convert the samples in the input AVFrame and write them to the output AVFrame.

Drops the specified number of output samples.

Free the given SwrContext and set the pointer to NULL.

Get the AVClass for SwrContext. It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

Gets the delay the next input sample will experience relative to the next output sample.

Find an upper bound on the number of samples that the next swr_convert call will output, if called with in_samples of input samples. This depends on the internal state, and anything changing the internal state (like further swr_convert() calls) will may change the number of samples swr_get_out_samples() returns for the same number of input samples.

Initialize context after user parameters have been set. @note The context must be configured using the AVOption API.

Injects the specified number of silence samples.

Check whether an swr context has been initialized or not.

Convert the next timestamp from input to output timestamps are in 1/(in_sample_rate * out_sample_rate) units.

Set a customized input channel mapping.

Activate resampling compensation (“soft” compensation). This function is internally called when needed in swr_next_pts().

Set a customized remix matrix.

Return the swr build-time configuration.

Return the swr license.

Return the @ref LIBSWRESAMPLE_VERSION_INT constant.

Allocate and return an uninitialized vector with length coefficients.

Allocate an empty SwsContext. This must be filled and passed to sws_init_context(). For filling see AVOptions, options.c and sws_setColorspaceDetails().

Convert an 8-bit paletted frame into a frame with a color depth of 24 bits.

Convert an 8-bit paletted frame into a frame with a color depth of 32 bits.

Finish the scaling process for a pair of source/destination frames previously submitted with sws_frame_start(). Must be called after all sws_send_slice() and sws_receive_slice() calls are done, before any new sws_frame_start() calls.

Initialize the scaling process for a given pair of source/destination frames. Must be called before any calls to sws_send_slice() and sws_receive_slice().

Free the swscaler context swsContext. If swsContext is NULL, then does nothing.

Check if context can be reused, otherwise reallocate a new one.

Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDetails().

#if LIBSWSCALE_VERSION_MAJOR > 6 @return negative error code on error, non negative otherwise #else @return -1 if not supported #endif

Allocate and return an SwsContext. You need it to perform scaling/conversion operations using sws_scale().

Return a normalized Gaussian curve used to filter stuff quality = 3 is high quality, lower is lower quality.

Get the AVClass for swsContext. It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

Initialize the swscaler context sws_context.

@param[in] pix_fmt the pixel format @return a positive value if an endianness conversion for pix_fmt is supported, 0 otherwise.

Return a positive value if pix_fmt is a supported input format, 0 otherwise.

Return a positive value if pix_fmt is a supported output format, 0 otherwise.

Scale all the coefficients of a so that their sum equals height.

Request a horizontal slice of the output data to be written into the frame previously provided to sws_frame_start().

@return alignment required for output slices requested with sws_receive_slice(). Slice offsets and sizes passed to sws_receive_slice() must be multiples of the value returned from this function.

Scale the image slice in srcSlice and put the resulting scaled slice in the image in dst. A slice is a sequence of consecutive rows in an image.

Scale all the coefficients of a by the scalar value.

Scale source data from src and write the output to dst.

Indicate that a horizontal slice of input data is available in the source frame previously provided to sws_frame_start(). The slices may be provided in any order, but may not overlap. For vertically subsampled pixel formats, the slices must be aligned according to subsampling.

@param dstRange flag indicating the while-black range of the output (1=jpeg / 0=mpeg) @param srcRange flag indicating the while-black range of the input (1=jpeg / 0=mpeg) @param table the yuv2rgb coefficients describing the output yuv space, normally ff_yuv2rgb_coeffs[x] @param inv_table the yuv2rgb coefficients describing the input yuv space, normally ff_yuv2rgb_coeffs[x] @param brightness 16.16 fixed point brightness correction @param contrast 16.16 fixed point contrast correction @param saturation 16.16 fixed point saturation correction #if LIBSWSCALE_VERSION_MAJOR > 6 @return negative error code on error, non negative otherwise #else @return -1 if not supported #endif

Return the libswscale build-time configuration.

Return the libswscale license.

@defgroup libsws libswscale Color conversion and scaling library.

Type Definitions

@defgroup lavu_adler32 Adler-32 @ingroup lavu_hash Adler-32 hash function implementation.

Message types used by avdevice_app_to_dev_control_message().

@defgroup lavu_crc32 CRC @ingroup lavu_hash CRC (Cyclic Redundancy Check) hash function implementation.

Location of chroma samples.

Identify the syntax and semantics of the bitstream. The principle is roughly: Two decoders with the same ID can decode the same streams. Two encoders with the same ID can encode compatible streams. There may be slight deviations from the principle due to implementation details.

Chromaticity coordinates of the source primaries. These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.1 and ITU-T H.273.

Visual content value range.

YUV colorspace type. These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.3.

Color Transfer Characteristic. These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.2.

Message types used by avdevice_dev_to_app_control_message().

@ingroup lavc_decoding

Possible downmix types.

The duration of a video can be estimated through various ways, and this enum can be used to know how the duration was estimated.

@addtogroup lavc_core

stage of the initialization of the link properties (dimensions, etc)

@defgroup lavu_frame AVFrame @ingroup lavu_data

@defgroup lavu_hmac HMAC @ingroup lavu_crypto @{

Different data types that can be returned via the AVIO write_data_type callback.

Directory entry types.

@addtogroup lavu_media Media Type @brief Media Type

@defgroup avoptions AVOptions @ingroup lavu_data @{ AVOptions provide a generic system to declare options on arbitrary structs (“objects”). An option can have a help text, a type and a range of possible values. Options may then be enumerated, read and written to.

@defgroup lavc_packet AVPacket

@defgroup lavc_parsing Frame parsing @{

@} @} @defgroup lavu_picture Image related

Pixel format.

Rounding methods.

Audio sample formats

List of possible 3D Types

List of possible view types.

@defgroup lavc_fft FFT functions @ingroup lavc_misc

Dithering algorithms

Resampling Engines

Resampling Filter Types

Flags for frame cropping.

Flags to apply to frame mappings.

@defgroup lavfi_buffersrc Buffer source API @ingroup lavfi @{

Callback used by devices to communicate with application.

A function pointer passed to the @ref AVFilterGraph.execute callback to be executed multiple times, possibly in parallel.

A function executing multiple jobs, possibly in parallel.

Unions

The state of the following union is determined by formats_state. See the documentation of enum FilterFormatsState in internal.h.

the default value for scalar options