Cap

public struct Cap : OptionSet

Codec capabilities

  • Decoder can use draw_horiz_band callback.

    Declaration

    Swift

    public static let drawHorizBand: AVCodec.Cap
  • dr1

    Codec uses get_buffer() for allocating buffers and supports custom allocators. If not set, it might not use get_buffer() at all or use operations that assume the buffer was allocated by avcodec_default_get_buffer.

    Declaration

    Swift

    public static let dr1: AVCodec.Cap
  • Undocumented

    Declaration

    Swift

    public static let truncated: AVCodec.Cap
  • Encoder or decoder requires flushing with NULL input at the end in order to give the complete and correct output.

    Note

    If this flag is not set, the codec is guaranteed to never be fed with with NULL data. The user can still send NULL data to the public encode or decode function, but libavcodec will not pass it along to the codec unless this flag is set.

    Decoders: The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL, avpkt->size=0 at the end to get the delayed data until the decoder no longer returns frames.

    Encoders: The encoder needs to be fed with NULL data at the end of encoding until the encoder no longer returns data.

    Note

    For encoders implementing the AVCodec.encode2() function, setting this flag also means that the encoder must set the pts and duration for each output packet. If this flag is not set, the pts and duration will be determined by libavcodec from the input frame.

    Declaration

    Swift

    public static let delay: AVCodec.Cap
  • Codec can be fed a final frame with a smaller size. This can be used to prevent truncation of the last audio samples.

    Declaration

    Swift

    public static let smallLastFrame: AVCodec.Cap
  • Codec can output multiple frames per AVPacket. Normally demuxers return one frame at a time, demuxers which do not do are connected to a parser to split what they return into proper frames. This flag is reserved to the very rare category of codecs which have a bitstream that cannot be split into frames without timeconsuming operations like full decoding. Demuxers carrying such bitstreams thus may return multiple frames in a packet. This has many disadvantages like prohibiting stream copy in many cases thus it should only be considered as a last resort.

    Declaration

    Swift

    public static let subframes: AVCodec.Cap
  • Codec is experimental and is thus avoided in favor of non experimental encoders.

    Declaration

    Swift

    public static let experimental: AVCodec.Cap
  • Codec should fill in channel configuration and samplerate instead of container.

    Declaration

    Swift

    public static let channelConf: AVCodec.Cap
  • Codec supports frame-level multithreading.

    Declaration

    Swift

    public static let frameThreads: AVCodec.Cap
  • Codec supports slice-based (or partition-based) multithreading.

    Declaration

    Swift

    public static let sliceThreads: AVCodec.Cap
  • Codec supports changed parameters at any point.

    Declaration

    Swift

    public static let paramChange: AVCodec.Cap
  • Codec supports avctx->thread_count == 0 (auto).

    Declaration

    Swift

    public static let autoThreads: AVCodec.Cap
  • Audio encoder supports receiving a different number of samples in each call.

    Declaration

    Swift

    public static let variableFrameSize: AVCodec.Cap
  • Decoder is not a preferred choice for probing. This indicates that the decoder is not a good choice for probing. It could for example be an expensive to spin up hardware decoder, or it could simply not provide a lot of useful information about the stream. A decoder marked with this flag should only be used as last resort choice for probing.

    Declaration

    Swift

    public static let avoidProbing: AVCodec.Cap
  • Codec is intra only.

    Declaration

    Swift

    public static let intraOnly: AVCodec.Cap
  • Codec is lossless.

    Declaration

    Swift

    public static let lossless: AVCodec.Cap
  • Codec is backed by a hardware implementation. Typically used to identify a non-hwaccel hardware decoder. For information about hwaccels, use hwConfig(at:) instead.

    Declaration

    Swift

    public static let hardware: AVCodec.Cap
  • Codec is potentially backed by a hardware implementation, but not necessarily. This is used instead of Cap.hardware, if the implementation provides some sort of internal fallback.

    Declaration

    Swift

    public static let hybrid: AVCodec.Cap
  • This codec takes the reordered_opaque field from input AVFrames and returns it in the corresponding field in AVCodecContext after encoding.

    Declaration

    Swift

    public static let encoderReorderedOpaque: AVCodec.Cap
  • Declaration

    Swift

    public let rawValue: UInt32
  • Declaration

    Swift

    public init(rawValue: UInt32)
  • Declaration

    Swift

    public var description: String { get }